.post-progress{transform-origin:0 50%;transform:scaleX(0)}@supports (animation-timeline:scroll()){.post-progress{animation:post-progress linear both;animation-timeline:scroll(root)}}@keyframes post-progress{to{transform:scaleX(1)}}.post-word{animation:post-rise 1s cubic-bezier(.2,.8,.2,1) both}.post-word,.wmask{display:inline-block}.wmask{overflow:hidden;vertical-align:top;padding-bottom:.08em}@keyframes post-rise{0%{transform:translateY(105%)}}.post-fade{animation:post-fade .9s ease both}@keyframes post-fade{0%{opacity:0;transform:translateY(10px)}}.navlink{transition:color .25s}@media (hover:hover){.navlink:hover{color:var(--accent)}}.toc a{display:block;padding:9px 0 9px 16px;border-left:2px solid var(--frame);font-size:15px;line-height:1.4;color:var(--muted);transition:color .25s,border-color .25s}.toc a.is-active{color:var(--ink);border-left-color:var(--accent)}@media (hover:hover){.toc a:hover{color:var(--ink);border-left-color:var(--ink)}}.chip-btn{transition:background .2s,color .2s}@media (hover:hover){.chip-btn:hover{background:var(--ink);color:var(--bg)}}.card-link{box-shadow:0 0 0 1px var(--rim);transition:transform .5s cubic-bezier(.34,1.4,.64,1),box-shadow .5s ease}@media (hover:hover){.card-link:hover{transform:translateY(-8px);box-shadow:0 0 0 1px var(--rim),0 28px 60px var(--shadow)}}.post-prose{font-size:17px;line-height:1.7;color:var(--prose)}.post-prose p{margin:0 0 22px}.post-prose h2{font-size:34px;line-height:1.02;letter-spacing:-.02em;margin:52px 0 18px;scroll-margin-top:32px}.post-prose h2,.post-prose h3{font-family:var(--font-instrument-serif),Georgia,serif;font-weight:400;color:var(--ink)}.post-prose h3{font-size:28px;line-height:1.1;margin:40px 0 14px}.post-prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}@media (hover:hover){.post-prose a:hover{color:var(--accent-hover)}}.post-prose ol,.post-prose ul{margin:0 0 22px;padding-left:26px}.post-prose ol{list-style:decimal}.post-prose ul{list-style:disc}.post-prose li{margin-bottom:8px}.post-prose strong{font-weight:600;color:var(--ink)}.post-prose blockquote{margin:0 0 22px;padding-left:18px;border-left:2px solid var(--accent);color:var(--body)}.post-prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.post-prose .ic{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:.86em;background:var(--ic-bg);border-radius:6px;padding:2px 7px;color:var(--ic-ink);overflow-wrap:anywhere}.post-prose figure{margin:8px 0 32px;display:flex;flex-direction:column;align-items:center;gap:14px}.post-prose figure img{display:block;max-width:min(100%,320px);max-height:640px;height:auto;border-radius:28px;border:1px solid var(--code-border);box-shadow:0 0 0 1px var(--rim),0 30px 70px var(--shadow)}.post-prose figcaption{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:12px;letter-spacing:.06em;color:var(--muted);text-align:center}.post-prose .code{position:relative;margin:0 0 28px;background:var(--code-bg);border:1px solid var(--code-border);border-radius:16px;overflow:hidden}.post-prose .code-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 20px;border-bottom:1px solid var(--code-line)}.post-prose .code-lang{color:var(--code-muted)}.post-prose .code-lang,.post-prose .copy{font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:12px}.post-prose .copy{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--copy-line);background:transparent;color:var(--code-ink);cursor:pointer;transition:background .2s,color .2s}@media (hover:hover){.post-prose .copy:hover{background:var(--code-ink);color:var(--code-bg)}}.post-prose .copy:focus-visible{outline-color:var(--inv-accent);outline-offset:2px}.post-prose pre{margin:0;padding:20px 22px 22px;overflow:auto;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:13.5px;line-height:1.7;color:var(--code-ink);white-space:pre}.post-prose pre code{font:inherit}.post-prose .token.cdata,.post-prose .token.comment,.post-prose .token.doctype,.post-prose .token.prolog{color:#8a7a63;font-style:italic}.post-prose .token.operator,.post-prose .token.punctuation{color:#a89a84}.post-prose .token.atrule,.post-prose .token.important,.post-prose .token.keyword,.post-prose .token.section,.post-prose .token.selector{color:#e0b066}.post-prose .token.attr-value,.post-prose .token.char,.post-prose .token.string,.post-prose .token.url{color:#c9cf9a}.post-prose .token.boolean,.post-prose .token.constant,.post-prose .token.number,.post-prose .token.parameter{color:#e8a37c}.post-prose .token.builtin,.post-prose .token.class-name,.post-prose .token.function{color:#f0d6a8}.post-prose .token.attr-name,.post-prose .token.key,.post-prose .token.property,.post-prose .token.variable{color:#e6dccb}@media (min-width:1024px){.post-prose{font-size:19px}.post-prose ol,.post-prose p,.post-prose ul{margin-bottom:26px}.post-prose h2{font-size:48px;margin:72px 0 22px}.post-prose pre{font-size:14.5px}}