.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--line);width:2.75rem;height:2.75rem;color:var(--muted);transition:color var(--dur-1), border-color var(--dur-1), background var(--dur-1);border-radius:999px;place-items:center;display:inline-grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--accent-text);border-color:var(--accent);background:var(--accent-soft)}.theme-toggle[data-astro-cid-l6lhmie6] svg[data-astro-cid-l6lhmie6]{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;transition:opacity var(--dur-1), transform var(--dur-1) var(--ease-out);grid-area:1/1}.moon[data-astro-cid-l6lhmie6]{opacity:0;transform:rotate(-30deg)scale(.8)}html.is-dark .sun[data-astro-cid-l6lhmie6]{opacity:0;transform:rotate(30deg)scale(.8)}html.is-dark .moon[data-astro-cid-l6lhmie6]{opacity:1;transform:none}.nav[data-astro-cid-wpvy4v7s]{z-index:2;align-items:center;gap:clamp(1rem,3vw,3rem);padding-block:clamp(1.25rem,3vw,2.25rem);display:flex;position:relative}.brand[data-astro-cid-wpvy4v7s]{color:var(--ink);align-items:center;gap:.6rem;display:inline-flex}.wordmark[data-astro-cid-wpvy4v7s]{letter-spacing:-.04em;font-size:1.6rem;font-weight:600}.wordmark[data-astro-cid-wpvy4v7s] sup[data-astro-cid-wpvy4v7s]{color:var(--accent-text);vertical-align:.55em;margin-left:.04em;font-size:.58em;font-weight:600;line-height:0}nav[data-astro-cid-wpvy4v7s]{margin-left:auto}nav[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s]{gap:clamp(1rem,2.6vw,2.25rem);display:flex}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{font-size:var(--step-0);color:var(--muted);text-transform:lowercase;transition:color var(--dur-1);position:relative}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover,nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--ink)}nav[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]:after{content:"";background:var(--accent);height:1px;position:absolute;bottom:-.4em;left:0;right:0}nav[data-astro-cid-wpvy4v7s] sup[data-astro-cid-wpvy4v7s]{font-family:var(--font-mono);color:var(--accent-text);margin-left:.15em;font-size:.62em}.actions[data-astro-cid-wpvy4v7s]{align-items:center;gap:.8rem;display:flex}@media (width<=720px){.nav[data-astro-cid-wpvy4v7s]{flex-wrap:wrap}nav[data-astro-cid-wpvy4v7s]{order:3;width:100%;margin-left:0}nav[data-astro-cid-wpvy4v7s] ul[data-astro-cid-wpvy4v7s]{justify-content:space-between}.talk[data-astro-cid-wpvy4v7s]{display:none}.actions[data-astro-cid-wpvy4v7s]{margin-left:auto}}.footer[data-astro-cid-jo6i4kqk]{padding-block:calc(var(--section) * .6) 2.5rem}.cols[data-astro-cid-jo6i4kqk]{gap:var(--col-gap);grid-template-columns:2fr repeat(2,1fr);padding-block:2.5rem;display:grid}.col[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{font-size:var(--step-0);gap:.45rem;margin-top:.8rem;display:grid}.brand[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin-top:.9rem;line-height:1.5}.legal[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;padding-top:1.2rem;font-size:.9rem;display:flex}.zero[data-astro-cid-jo6i4kqk] b[data-astro-cid-jo6i4kqk]{color:var(--accent-text);font-weight:500}@media (width<=720px){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}.consent[data-astro-cid-5krk3x6l]{left:var(--gutter,1rem);z-index:20;background:var(--bg-raised);width:calc(100% - 2rem);max-width:22rem;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-lg);font-size:var(--step--1);animation:consentIn .5s var(--ease-out) both;gap:.55rem;padding:1rem 1.1rem;line-height:1.45;display:grid;position:fixed;bottom:1rem;box-shadow:0 12px 40px #0000002e}.consent[data-astro-cid-5krk3x6l][hidden]{display:none}.consent[data-astro-cid-5krk3x6l] b[data-astro-cid-5krk3x6l]{color:var(--accent-text);font-weight:500}.consent[data-astro-cid-5krk3x6l] p[data-astro-cid-5krk3x6l]{margin:0}.consent-btns[data-astro-cid-5krk3x6l]{flex-wrap:wrap;gap:.5rem;margin-top:.3rem;display:flex}.consent[data-astro-cid-5krk3x6l] .btn[data-astro-cid-5krk3x6l]{font-size:var(--step--1);padding:.5em 1.05em}@keyframes consentIn{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.consent[data-astro-cid-5krk3x6l]{animation:none}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/patrick-hand-vietnamese-400-normal.65jA92mZ.woff2)format("woff2"),url(/_astro/patrick-hand-vietnamese-400-normal.CZjY324Y.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/patrick-hand-latin-ext-400-normal.Dno5CMlI.woff2)format("woff2"),url(/_astro/patrick-hand-latin-ext-400-normal.C2ywpnn3.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/patrick-hand-latin-400-normal.B7HHA2Vw.woff2)format("woff2"),url(/_astro/patrick-hand-latin-400-normal.Df9_VoRQ.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--purple-50:#f5f3ff;--purple-100:#ede9fe;--purple-200:#d8b4fe;--purple-300:#c084fc;--purple-400:#a78bfa;--purple-500:#8b5cf6;--purple-600:#7c3aed;--purple-700:#6d28d9;--purple-800:#4c1d95;--purple-900:#2e1065;--purple-950:#170a2b;--lime:#c5fe00;--bg:#f7f5fb;--bg-raised:#efebf7;--ink:#15121b;--muted:#6b6676;--line:#15121b24;--line-strong:#15121b52;--accent:var(--purple-600);--accent-text:var(--purple-700);--accent-ink:#fff;--accent-soft:#7c3aed1a;--danger:#c02b24;--warn:#b45309;--ok:#4f6b00;--font-sans:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--font-hand:"Patrick Hand", "Segoe Print", cursive;--step--1:clamp(.9rem, .86rem + .2vw, 1rem);--step-0:clamp(1.0625rem, 1rem + .35vw, 1.25rem);--step-1:clamp(1.35rem, 1.2rem + .75vw, 1.85rem);--step-2:clamp(1.75rem, 1.4rem + 1.6vw, 2.75rem);--step-3:clamp(2.2rem, 1.6rem + 2.8vw, 3.9rem);--step-4:clamp(2.8rem, 1.7rem + 4.8vw, 5.6rem);--step-5:clamp(3.4rem, 1.6rem + 7.4vw, 8rem);--leading-tight:1.05;--leading-snug:1.25;--leading-normal:1.55;--track-display:-.04em;--track-mono:.02em;--columns:12;--gutter:clamp(16px, 2.2vw, 32px);--col-gap:clamp(12px, 1.4vw, 24px);--section:clamp(88px, 11vw, 180px);--measure:68ch;--max:1360px;--radius-sm:4px;--radius:8px;--radius-lg:14px;--dur-1:.4s;--dur-2:.8s;--dur-3:1.2s;--ease-out:cubic-bezier(.25, 1, .5, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0d11;--bg-raised:#18171c;--ink:#ece7f3;--muted:#8f8a9c;--line:#ece7f31f;--line-strong:#ece7f34d;--accent:var(--purple-300);--accent-text:var(--purple-200);--accent-ink:#15121b;--accent-soft:#c084fc24;--danger:#ff6b6b;--warn:#f5c451;--ok:var(--lime);color-scheme:dark}}:root[data-theme=dark]{--bg:#0e0d11;--bg-raised:#18171c;--ink:#ece7f3;--muted:#8f8a9c;--line:#ece7f31f;--line-strong:#ece7f34d;--accent:var(--purple-300);--accent-text:var(--purple-200);--accent-ink:#15121b;--accent-soft:#c084fc24;--danger:#ff6b6b;--warn:#f5c451;--ok:var(--lime);color-scheme:dark}@media (width<=720px){:root{--columns:4}}.fig{gap:.7rem;margin:2.2em 0;display:grid}.fig-frame{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-raised);overflow:hidden}.fig-head{border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:calc(var(--step--1) * .9);color:var(--muted);align-items:center;gap:.45rem;padding:.6rem .9rem;display:flex}.fig-dot{background:var(--line-strong);border-radius:50%;width:.6rem;height:.6rem}.fig-dot:first-child{background:var(--accent)}.fig-title{margin-left:.4rem}.fig-replay{font-family:var(--font-mono);font-size:calc(var(--step--1) * .85);color:var(--muted);border:1px solid var(--line);transition:color var(--dur-1), border-color var(--dur-1);border-radius:999px;margin-left:auto;padding:.1em .7em}.fig-replay:hover{color:var(--accent-text);border-color:var(--accent)}.fig-body{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink);min-height:3rem;padding:1rem 1.1rem;line-height:1.75}.fig-cap{font-family:var(--font-mono);font-size:calc(var(--step--1) * .9);color:var(--muted);letter-spacing:var(--track-mono)}.fig-cap b{color:var(--accent-text);font-weight:500}.t-prompt{color:var(--accent-text)}.t-cmd{color:var(--ink);font-weight:600}.t-sub{color:var(--accent-text)}.t-path{color:var(--ink)}.t-flag{color:var(--accent-text)}.t-val{color:var(--ok)}.t-cmt,.t-dim{color:var(--muted)}.t-info{color:var(--ink)}.t-ok{color:var(--ok)}.t-warn{color:var(--warn)}.t-err{color:var(--danger)}.t-cursor{background:var(--ink);vertical-align:text-bottom;width:.55em;height:1.1em;margin-left:2px;animation:.8s step-end infinite figBlink;display:inline-block}@keyframes figBlink{50%{opacity:0}}.fig-line{white-space:pre-wrap;overflow-wrap:anywhere}.fig-line.in{animation:figIn .3s var(--ease-out) both}@keyframes figIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.pipe{gap:.45rem;display:grid}.pipe-step{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);transition:border-color var(--dur-1), background var(--dur-1);align-items:flex-start;gap:.7rem;padding:.6rem .8rem;display:flex}.pipe-step.run{border-color:var(--accent);background:var(--accent-soft)}.pipe-step.done{border-color:color-mix(in oklab, var(--ok) 55%, var(--line))}.pipe-ico{width:1.2em;color:var(--muted);flex:none}.pipe-step.run .pipe-ico{color:var(--accent-text)}.pipe-step.done .pipe-ico{color:var(--ok)}.pipe-cmd{overflow-wrap:anywhere}.pipe-out{color:var(--muted);opacity:0;transition:opacity var(--dur-1), transform var(--dur-1) var(--ease-out);transform:translateY(3px)}.pipe-out.vis{opacity:1;color:var(--ok);transform:none}.pipe-step .n{color:var(--accent-text);margin-right:.5em}.tree-ind{color:var(--line-strong)}.tree-dir{color:var(--accent-text)}.tree-data{color:var(--ink)}.tree-seq{color:var(--ok)}.tree-doc{color:var(--warn)}.tree-root{font-weight:600}.heat{align-items:center;gap:4px;display:grid}.heat-hdr{font-size:calc(var(--step--1) * .8);color:var(--muted);text-align:center;letter-spacing:.04em;text-transform:lowercase;text-overflow:ellipsis;white-space:nowrap;padding-bottom:2px;overflow:hidden}.heat-row{font-size:calc(var(--step--1) * .85);color:var(--muted);white-space:nowrap;padding-right:.8rem}.heat-cell{opacity:0;height:1.6rem;transition:opacity .25s var(--ease-out);border-radius:4px}.heat-cell.in{opacity:1}.heat-cell:hover{outline:2px solid var(--accent);outline-offset:-2px}.heat-leg{font-size:calc(var(--step--1) * .8);color:var(--muted);justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.heat-leg i{background:linear-gradient(to right, var(--bg), var(--accent));border-radius:3px;width:90px;height:5px;display:block}.counters{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;display:grid}.counter{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);gap:.2rem;padding:.9rem 1rem;display:grid}.counter-num{font-family:var(--font-sans);font-size:var(--step-2);letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.counter-num.in{animation:counterIn .5s var(--ease-out) both}.counter-num b{color:var(--accent-text);font-weight:600}.counter-lbl{font-size:calc(var(--step--1) * .85);color:var(--muted);line-height:1.35}@keyframes counterIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.anat-cmd{border-bottom:1px dashed var(--line);flex-wrap:wrap;gap:.2em .45em;margin-bottom:.8rem;padding-bottom:.8rem;display:flex}.anat-tok{transition:color var(--dur-1), background var(--dur-1);border-radius:4px;padding:0 .2em}.anat-tok.hi{background:var(--accent-soft)}.anat-rows{gap:.35rem;display:grid}.anat-row{opacity:0;grid-template-columns:7.5em 1fr;align-items:baseline;gap:.8rem;display:grid;transform:translate(-6px)}.anat-row.in{animation:figIn .3s var(--ease-out) both;opacity:1;transform:none}.anat-badge{font-size:calc(var(--step--1) * .8);text-align:center;white-space:nowrap;border:1px solid;border-radius:999px;padding:0 .6em}.anat-desc{color:var(--muted)}.anat-desc b{color:var(--ink);margin-right:.4em;font-weight:500}.k-tool{color:var(--ink)}.k-sub{color:var(--accent-text)}.k-path{color:var(--ink)}.k-flag{color:var(--accent-text)}.k-value{color:var(--ok)}.k-tool.anat-badge,.k-path.anat-badge{border-color:var(--line-strong);color:var(--muted)}.k-sub.anat-badge,.k-flag.anat-badge{border-color:var(--accent)}.k-value.anat-badge{border-color:var(--ok)}@media (width<=720px){.anat-row{grid-template-columns:1fr;gap:.2rem}.heat-hdr{font-size:.65rem}}.fig-note{font-family:var(--font-hand);font-size:calc(var(--step-0) * 1.25);color:var(--accent-text);align-items:flex-end;gap:.6rem;margin-bottom:-.2rem;padding-left:.2rem;line-height:1.1;display:flex}.stats{font-family:var(--font-sans);gap:.8rem;display:grid}.stats-src{font-family:var(--font-mono);color:var(--muted);font-size:var(--step--1)}.stats-sum{border:1px solid color-mix(in oklab, var(--accent) 45%, var(--line));background:var(--accent-soft);border-radius:var(--radius);opacity:0;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);gap:.4rem;padding:1rem 1.2rem;display:grid;transform:translateY(6px)}.stats-sum.in{opacity:1;transform:none}.stats-sum .k{font-family:var(--font-mono);font-size:calc(var(--step--1) * .85);color:var(--accent-text);letter-spacing:.08em;text-transform:uppercase}.stats-sum .v{font-size:var(--step-1);letter-spacing:-.02em;font-weight:600;line-height:1.25}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;display:grid}.stat{border:1px solid var(--line);border-bottom:3px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);opacity:0;min-width:0;transition:opacity var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out);gap:.15rem;padding:.8rem .9rem;display:grid;transform:translateY(8px)}.stat.in{opacity:1;transform:none}.stat.ok{border-bottom-color:var(--ok);background:color-mix(in oklab, var(--ok) 6%, var(--bg))}.stat.bad{border-bottom-color:var(--danger);background:color-mix(in oklab, var(--danger) 7%, var(--bg))}.stat .k{font-family:var(--font-mono);font-size:calc(var(--step--1) * .8);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.stat .v{overflow-wrap:anywhere;font-size:var(--step-2);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.05}.stat .n{overflow-wrap:anywhere;font-size:calc(var(--step--1) * .9);color:var(--muted);line-height:1.3}.flow{font-family:var(--font-sans);grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem 1.4rem;padding:.4rem .2rem;display:grid}.flow-stage{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);transition:border-color var(--dur-1), background var(--dur-1), transform var(--dur-1) var(--ease-out);opacity:0;align-content:start;gap:.25rem;padding:.8rem .9rem;display:grid;position:relative;transform:translateY(6px)}.flow-stage.in{opacity:1;transform:none}.flow-stage.on{border-color:var(--accent);background:var(--accent-soft)}.flow-stage.done{border-color:color-mix(in oklab, var(--ok) 50%, var(--line))}.flow-stage .k{letter-spacing:-.01em;font-weight:600}.flow-stage.on .k{color:var(--accent-text)}.flow-stage .n{font-size:calc(var(--step--1) * .9);color:var(--muted);line-height:1.35}.flow-stage .i{font-family:var(--font-mono);font-size:calc(var(--step--1) * .75);color:var(--muted);position:absolute;top:.5rem;right:.7rem}.flow-stage[data-arrow]:after{color:var(--line-strong);font-size:1rem;position:absolute}.flow-stage[data-arrow=r]:after{content:"→";top:50%;right:-1.2rem;transform:translateY(-50%)}.flow-stage[data-arrow=l]:after{content:"←";top:50%;left:-1.2rem;transform:translateY(-50%)}.flow-stage[data-arrow=d]:after{content:"↓";bottom:-1.45rem;left:50%;transform:translate(-50%)}.flow-stage.on:after,.flow-stage.done:after{color:var(--accent)}@media (width<=720px){.flow{grid-template-columns:1fr 1fr}.flow-stage{grid-area:auto!important}.flow-stage:after{display:none}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:var(--leading-normal);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);margin:0}img,svg,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,h4,p,ul,ol,dl,figure{margin:0}ul,ol{padding:0;list-style:none}code,kbd,pre{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:var(--accent-ink)}.wrap{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}.grid{grid-template-columns:repeat(var(--columns), minmax(0, 1fr));column-gap:var(--col-gap);row-gap:var(--col-gap);display:grid}.section{padding-block:var(--section)}.section--tight{padding-block:calc(var(--section) * .6)}.prose{max-width:var(--measure);min-width:0}.prose p+p{margin-top:1em}.prose h2{font-size:var(--step-2);letter-spacing:var(--track-display);line-height:var(--leading-snug);margin:2.2em 0 .6em}.prose h3{font-size:var(--step-1);letter-spacing:-.02em;margin:1.8em 0 .5em}.prose ul{padding-left:1.2em;list-style:outside}.prose li+li{margin-top:.35em}.prose a,.link{transition:background-size var(--dur-1) var(--ease-out), color var(--dur-1);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px}.prose a:hover,.link:hover{color:var(--accent-text)}.prose code{background:var(--bg-raised);border-radius:var(--radius-sm);padding:.1em .35em}.prose pre{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);margin:1.2em 0;padding:1rem 1.2rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1);margin:1.2em 0}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.5em .8em .5em 0}.prose th{font-family:var(--font-mono);color:var(--muted);text-transform:lowercase;font-weight:500}.display{font-size:var(--step-4);letter-spacing:var(--track-display);font-weight:600;line-height:var(--leading-tight);text-wrap:balance}.display--xl{font-size:var(--step-5)}.h2{font-size:var(--step-3);letter-spacing:var(--track-display);font-weight:600;line-height:var(--leading-snug);text-wrap:balance}.h3{font-size:var(--step-1);letter-spacing:-.02em;font-weight:600;line-height:var(--leading-snug)}.lede{font-size:var(--step-1);color:var(--muted);text-wrap:pretty;max-width:44ch;line-height:1.35}.mono{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:var(--track-mono);font-weight:450}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:var(--track-mono);color:var(--muted);text-transform:lowercase}.eyebrow b{color:var(--accent-text);font-weight:500}.muted{color:var(--muted)}.accent{color:var(--accent-text)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rule{border:0;border-top:1px solid var(--line);margin:0}.hairline{box-shadow:0 1px 0 var(--line)}.btn{border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-weight:500;font-size:var(--step-0);letter-spacing:-.005em;transition:transform var(--dur-1) var(--ease-out), background var(--dur-1), color var(--dur-1), border-color var(--dur-1);border-radius:999px;align-items:center;gap:.55em;padding:.75em 1.3em;display:inline-flex}.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);transform:translateY(-1px)}.btn--ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn--ghost:hover{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--accent:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.tag{font-family:var(--font-mono);font-size:calc(var(--step--1) * .92);letter-spacing:var(--track-mono);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.15em .65em;line-height:1.5;display:inline-block}.tags{flex-wrap:wrap;gap:.45rem;display:flex}.tag--fill{background:var(--accent-soft);color:var(--accent-text);text-transform:uppercase;font-size:calc(var(--step--1) * .82);letter-spacing:.06em;border-color:#0000;padding:.3em .85em;font-weight:500}.status{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);align-items:center;gap:.55em;display:inline-flex}.status:before{content:"";background:var(--ok);width:.55em;height:.55em;box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 25%, transparent);border-radius:50%}.card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-raised);transition:border-color var(--dur-1), transform var(--dur-1) var(--ease-out);padding:clamp(1.3rem,2.2vw,2.1rem);display:block}a.card:hover{border-color:var(--accent);transform:translateY(-2px)}.annot{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);letter-spacing:var(--track-mono)}.annot:before{content:"— ";color:var(--accent-text)}.reveal{opacity:0;transition:opacity var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);transform:translateY(14px)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.skip{background:var(--ink);color:var(--bg);border-radius:var(--radius);z-index:10;padding:.5rem .8rem;position:absolute;top:-3rem;left:1rem}.skip:focus{top:1rem}
