.post-layout{max-width:56rem;margin-inline:auto;padding:3rem 1.25rem 4rem}.post-layout.has-toc{display:grid;grid-template-columns:minmax(0,56rem) minmax(0,14rem);gap:3rem;max-width:76rem;align-items:start}.post-article{min-width:0}.post-toc-wrap{position:sticky;top:4.5rem;max-height:calc(100dvh - 6rem);overflow-y:auto;font-size:.85rem;padding-top:.5rem}.post-toc-label{font-family:var(--font-pixel);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;color:var(--color-fg-faint);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-line)}.post-toc ul{list-style:none;padding:0;margin:0}.post-toc li{line-height:1.4;margin-block:.35rem}.post-toc a{color:var(--color-fg-dim);display:block;border-left:1px solid var(--color-line);padding:.15rem 0 .15rem .6rem;transition:color .12s,border-color .12s}.post-toc a:hover{color:var(--color-fg);border-left-color:var(--color-accent-dim)}.post-toc a.is-active{color:var(--color-accent);border-left-color:var(--color-accent)}.post-views-wrap{display:inline-flex;align-items:center;gap:.75rem}.post-views-wrap[hidden]{display:none}.post-views{height:1.2em;width:auto;display:inline-block;vertical-align:middle}.post-toc .toc-d3 a{padding-left:1.4rem;font-size:.8rem}.post-toc .toc-d4 a{padding-left:2.2rem;font-size:.78rem;color:var(--color-fg-faint)}@media(max-width:1024px){.post-layout.has-toc{display:block;max-width:56rem}.post-toc-wrap{display:none}}.prose-content{color:var(--color-fg);line-height:1.7;font-family:var(--font-sans)}.prose-content>*+*{margin-top:1.25em}.prose-content h2{font-size:1.625rem;margin-top:2.5rem}.prose-content h3{font-size:1.25rem;margin-top:2rem}.prose-content a{color:var(--color-accent);text-decoration:underline;text-decoration-color:var(--color-accent-dim);text-underline-offset:3px}.prose-content a:hover{color:var(--color-accent-dim)}.prose-content code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-elev);border:1px solid var(--color-line);padding:.1em .35em}.prose-content pre{background:var(--color-bg-elev);border:1px solid var(--color-line);padding:1rem;overflow-x:auto;font-family:var(--font-mono);font-size:.875rem;line-height:1.5}.prose-content pre code{background:transparent;border:0;padding:0}.prose-content img{max-width:100%;cursor:zoom-in}.prose-content img.invert{filter:invert(1) hue-rotate(180deg)}.prose-content blockquote{border-left:2px solid var(--color-line-bright);padding-left:1rem;color:var(--color-fg-dim);font-style:italic}.prose-content ul,.prose-content ol{padding-left:1.5rem}.prose-content ul{list-style:square}.prose-content ol{list-style:decimal}.prose-content li::marker{color:var(--color-fg-faint)}.prose-content kbd{font-family:var(--font-mono);font-size:.8em;background:var(--color-bg-elev);border:1px solid var(--color-line-bright);border-bottom-width:2px;padding:.1em .4em;color:var(--color-fg);display:inline-block;line-height:1.2}.prose-content .post-figure{display:flex;flex-direction:column;align-items:center;margin-block:1.5rem}.prose-content .post-figure img{display:block}.prose-content .post-figure figcaption{font-family:var(--font-mono);font-size:.8rem;color:var(--color-fg-dim);text-align:center;margin-top:.5rem;max-width:90%}.prose-content .callout{border:1px solid var(--color-line);border-left:3px solid var(--color-fg-faint);background:var(--color-bg-panel);padding:1rem 1.25rem;margin-block:1.5rem;font-style:normal}.prose-content .callout>*+*{margin-top:.75rem}.prose-content .callout-indicator{display:flex;align-items:center;gap:.5rem;color:var(--color-fg)}.prose-content .callout-hint{display:inline-flex}.prose-content .callout-hint svg{width:1.1em;height:1.1em;display:block}.prose-content .callout-title{font-family:var(--font-pixel);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;color:var(--color-fg)}.prose-content .callout-content{color:var(--color-fg-dim)}.prose-content .callout-content>*+*{margin-top:.75rem}.prose-content .callout-content p{color:inherit}.prose-content .callout-assert,.prose-content .callout-note{border-left-color:var(--color-accent)}.prose-content .callout-assert .callout-indicator,.prose-content .callout-note .callout-indicator,.prose-content .callout-assert .callout-title,.prose-content .callout-note .callout-title{color:var(--color-accent)}.prose-content .callout-warn,.prose-content .callout-deter{border-left-color:#f5a524}.prose-content .callout-warn .callout-indicator,.prose-content .callout-warn .callout-title,.prose-content .callout-deter .callout-indicator,.prose-content .callout-deter .callout-title{color:#f5a524}.prose-content .callout-commend{border-left-color:#4ade80}.prose-content .callout-commend .callout-indicator,.prose-content .callout-commend .callout-title{color:#4ade80}.prose-content .callout.callout-quote{border-left-color:var(--color-fg-dim);font-style:italic;padding-left:1.25rem}.prose-content .callout.callout-quote .callout-title,.prose-content .callout.callout-quote .callout-indicator{color:var(--color-fg-dim)}.medium-zoom-overlay,.medium-zoom-image--opened{z-index:60}
