.post-layout{max-width:56rem;margin-inline:auto;padding:2rem 1.25rem 0}.post-layout.has-toc{grid-template-columns:minmax(0,56rem) minmax(0,14rem);align-items:start;gap:3rem;max-width:76rem;display:grid}.post-article{min-width:0}.post-title-word{vertical-align:baseline;max-width:100%;display:inline-block;position:relative}.post-title-original{opacity:0}.post-title-glitch{white-space:nowrap;transform-origin:0;width:max-content;position:absolute;top:0;left:0}.post-toc-wrap{max-height:calc(100dvh - 6rem);font-size:var(--text-meta);padding-top:.5rem;position:sticky;top:4.5rem;overflow-y:auto}.post-toc-label{font-family:var(--font-pixel);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-meta);color:var(--color-fg-faint);border-bottom:1px solid var(--color-line);margin-bottom:.75rem;padding-bottom:.5rem}.post-toc ul{margin:0;padding:0;list-style:none}.post-toc li{margin-block:.35rem;line-height:1.4}.post-toc a{color:var(--color-fg-dim);border-left:1px solid var(--color-line);min-height:32px;padding:.4rem .4rem .4rem .6rem;transition:color .12s,border-color .12s;display:block}.post-toc a:hover{color:var(--color-fg);border-left-color:var(--color-accent-hover)}.post-toc a.is-active{color:var(--color-accent);border-left-color:var(--color-accent)}.post-views-wrap{align-items:center;gap:.75rem;display:inline-flex}.post-views-wrap[hidden]{display:none}.post-views{vertical-align:middle;width:auto;height:1.2em;display:inline-block}.post-toc .toc-d3 a{font-size:var(--text-meta);padding-left:1.4rem}.post-toc .toc-d4 a{font-size:var(--text-meta);color:var(--color-fg-faint);padding-left:2.2rem}@media (width<=1024px){.post-layout.has-toc{max-width:56rem;display:block}.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:var(--text-section);margin-top:2.5rem}.prose-content h3{font-size:var(--text-card);margin-top:2rem}.prose-content a{color:var(--color-accent);text-decoration:underline;text-decoration-color:var(--color-accent-hover);text-underline-offset:3px}.prose-content a:hover{color:var(--color-accent-hover)}.prose-content a :is(strong,em,b,i,code,span){text-decoration:inherit;text-decoration-color:inherit;text-underline-offset:inherit}.prose-content code{background:var(--color-bg-elev);border:1px solid var(--color-line);padding:.1em .35em;font-family:inherit;font-size:1em}.prose-content pre{background:var(--color-bg-elev);border:1px solid var(--color-line);font-family:var(--font-mono);font-size:var(--text-meta);padding:1rem;line-height:1.5;overflow-x:auto}.prose-content pre code{font-family:var(--font-mono);background:0 0;border:0;padding:0}.prose-content pre:not(:has(code)),.prose-content pre[data-language=plaintext],.prose-content pre[data-language=plaintext] code,.prose-content pre[data-language=plaintext] .code{white-space:pre-wrap;overflow-wrap:anywhere}.prose-content img{max-width:100%;height:auto}.prose-content img.invert{filter:invert()hue-rotate(180deg)}.prose-content blockquote{border-left:2px solid var(--color-line-bright);color:var(--color-fg-dim);padding-left:1rem;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:inherit;font-size:var(--text-meta);background:var(--color-bg-elev);border:1px solid var(--color-line-bright);color:var(--color-fg);border-bottom-width:2px;padding:.1em .4em;line-height:1.2;display:inline-block}.prose-content .post-figure{flex-direction:column;align-items:center;margin-block:1.5rem;display:flex}.prose-content .post-figure img{display:block}.prose-content .post-figure figcaption{font-family:inherit;font-size:var(--text-meta);color:var(--color-fg-dim);text-align:center;max-width:90%;margin-top:.5rem}.prose-content .callout{border:1px solid var(--color-line);border-left:3px solid var(--color-fg-faint);background:var(--color-bg-panel);margin-block:1.5rem;padding:1rem 1.25rem;font-style:normal}.prose-content .callout>*+*{margin-top:.75rem}.prose-content .callout-indicator{font-size:var(--text-meta);color:var(--color-fg);align-items:flex-start;gap:.5rem;line-height:1.5;display:flex}.prose-content .callout-hint{flex:none;justify-content:center;align-items:center;width:1em;height:1lh;display:flex}.prose-content .callout-hint svg{width:1em;height:1em;display:block}.prose-content .callout-title{min-width:0;font-family:var(--font-pixel);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-meta);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,.prose-content .callout-warn,.prose-content .callout-deter{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,.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:var(--color-accent)}.prose-content .callout-commend{border-left-color:var(--color-fg)}.prose-content .callout-commend .callout-indicator,.prose-content .callout-commend .callout-title{color:var(--color-fg)}.prose-content .callout.callout-quote{border-left-color:var(--color-fg-dim);padding-left:1.25rem;font-style:italic}.prose-content .callout.callout-quote .callout-title,.prose-content .callout.callout-quote .callout-indicator{color:var(--color-fg-dim)}.prose-content iframe{aspect-ratio:16/9;max-width:100%;height:auto}.prose-content table{max-width:100%;display:block;overflow-x:auto}.image-zoom{cursor:zoom-in;max-width:100%;display:block}.image-dialog{width:100%;max-width:none;height:100dvh;max-height:none;color:var(--color-fg);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0}.image-dialog::backdrop{background:#000000f0}.image-dismiss{cursor:zoom-out;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.image-dismiss:focus-visible{outline-offset:-4px}.image-dialog img{object-fit:contain;width:100%;height:100%;display:block}.image-dialog img.invert{filter:invert()hue-rotate(180deg)}
