.post__bg{z-index:-1;pointer-events:none;background:linear-gradient(to bottom, var(--accent-soft), transparent 70%);height:36rem;position:absolute;inset:0 0 auto;overflow:hidden}.post__mark{color:var(--line);position:absolute;top:6rem;right:-120px}@media (width<=700px){.post__mark{display:none}}.post{gap:var(--gap-l);flex-direction:column;padding-block:clamp(2.5rem,6vw,4rem) clamp(3rem,8vw,6rem);display:flex}.post__head{flex-direction:column;gap:.6rem;display:flex}.post__head h1{font-size:var(--step-3);letter-spacing:-.025em;max-width:24ch;line-height:1.1}.post__meta{align-items:center;gap:var(--gap-s);color:var(--muted);flex-wrap:wrap;margin-top:.4rem;font-size:.78rem;display:flex}.post__byline{color:var(--ink-soft);font-weight:600}.post__byline:after{content:"·";margin-left:var(--gap-s);color:var(--muted);font-weight:400}.post__tag{color:var(--product)}.post__tag:hover{text-underline-offset:2px;text-decoration:underline}.post__body h2{font-family:var(--display);font-size:var(--step-1);color:var(--ink);margin-top:2em;margin-bottom:.5em}.post__body h3{font-family:var(--display);font-size:var(--step-0);color:var(--ink);margin-top:1.6em;margin-bottom:.4em}.post__body ul,.post__body ol{list-style:revert;padding-left:1.4em}.post__body li+li{margin-top:.4em}.post__body table{width:max-content;max-width:100%;font-family:var(--display);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1.4em;display:block;overflow-x:auto}.post__body th,.post__body td{white-space:nowrap}.post__body pre{padding:var(--gap-s);font-family:var(--mono);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1.4em;font-size:.88em;overflow-x:auto}.post__body pre code{background:0 0;border:0;padding:0}.post__body figure{gap:var(--gap-xs);flex-direction:column;margin-bottom:1.4em;display:flex}.post__body figure :is(img,video){width:100%}.post__body :is(img,video){border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.post__body .theme-img--dark{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .post__body .theme-img--light{display:none}html:not([data-theme=light]) .post__body .theme-img--dark{display:block}}html[data-theme=dark] .post__body .theme-img--light{display:none}html[data-theme=dark] .post__body .theme-img--dark{display:block}.post__body .tldr{padding:var(--gap-s) var(--gap-m);border-left:3px solid var(--product);border-radius:0 var(--radius) var(--radius) 0;background:var(--product-soft);margin-bottom:1.6em}.post__body .tldr__label{font-family:var(--display);font-size:var(--step--1);color:var(--product);margin-bottom:.3em;font-weight:600;display:block}.post__body .tldr p{color:var(--ink);margin:0;font-style:italic}.post__body .diagram{overflow-x:auto}.post__body .diagram svg{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-width:560px;height:auto;display:block}.diagram text{font-family:var(--display);fill:var(--ink);font-size:13px}.diagram .d-title{fill:var(--muted);font-size:12px;font-weight:500}.diagram .d-mono{font-family:var(--mono);fill:var(--ink-soft);font-size:11.5px}.diagram .d-note{fill:var(--muted);font-size:12px}.diagram .d-strong{font-weight:600}.diagram .d-zone{fill:var(--surface-sunk);stroke:var(--line)}.diagram .d-box{fill:var(--surface);stroke:var(--muted)}.diagram .d-key{fill:var(--product-soft);stroke:var(--product)}.diagram .d-ok{fill:var(--signal-soft);stroke:var(--signal)}.diagram .d-line{fill:none;stroke:var(--ink-soft);stroke-width:1.5px}.diagram .d-line--token{stroke:var(--product);stroke-width:2px}.diagram .d-line--keys{stroke:var(--signal);stroke-dasharray:6 4}.diagram .d-head{fill:var(--ink-soft)}.diagram .d-head--token{fill:var(--product)}.diagram .d-head--keys{fill:var(--signal)}.diagram .d-text--token{fill:var(--product)}.diagram .d-text--keys{fill:var(--signal)}.post__body figcaption{max-width:var(--measure);font-family:var(--display);font-size:var(--step--1);color:var(--muted);line-height:1.5}.post__body blockquote{padding-left:var(--gap-s);border-left:2px solid var(--line);color:var(--muted)}.post__foot{padding-top:var(--gap-m);border-top:1px solid var(--line-soft)}
