:root{--bg:#111113;--bg-2:#161618;--surface:#1c1c1f;--surface-2:#242428;--line:#2a2a2e;--line-2:#3b3b40;--text:#ededec;--text-2:#a3a3a8;--text-3:#8b8b91;--accent:#c9d1dc;--accent-soft:rgba(201,209,220,0.12);--ok:#7fc79a;--warn:#e3b35c;--bad:#e5776b;--paper:#ece8df;--ink:#141412;--ink-2:#57544d;--ink-line:#cfc9bc;--accent-ink:#3d4a5c;--nav-bg:rgba(17,17,19,0.72);--btn-hover:#fff;--focus:#8fb0ff;--selection:#3a4a63;--selection-text:#fff;--sans:var(--font-geist),ui-sans-serif,system-ui,sans-serif;--mono:var(--font-geist-mono),ui-monospace,"SFMono-Regular",monospace;--t-xs:0.75rem;--t-sm:0.875rem;--t-md:1rem;--t-lg:clamp(1.125rem,1.05rem + 0.35vw,1.3rem);--t-xl:clamp(1.5rem,1.25rem + 1vw,2.1rem);--t-2xl:clamp(2.1rem,1.5rem + 2.6vw,3.6rem);--t-hero:clamp(3.2rem,1.6rem + 7.4vw,8.4rem);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:72px;--s-9:clamp(80px,10vw,140px);--gutter:clamp(20px,4vw,56px);--max:1320px;--radius:6px;--ease:cubic-bezier(0.2,0.7,0.2,1);--fast:140ms;--mid:280ms;--slow:600ms;color-scheme:dark}:root[data-theme=light]{--bg:#f6f6f4;--bg-2:#ffffff;--surface:#efefec;--surface-2:#e5e5e1;--line:#e2e2de;--line-2:#cbcbc6;--text:#141416;--text-2:#52525a;--text-3:#66666e;--accent:#3d4a5c;--accent-soft:rgba(61,74,92,0.1);--ok:#2b7a4b;--warn:#85590a;--bad:#b3372b;--paper:#fbfaf6;--nav-bg:rgba(246,246,244,0.8);--btn-hover:#000;--focus:#2f55b8;--selection:#cdd8f0;--selection-text:#141416;color-scheme:light}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--t-md);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:0;cursor:pointer}ol,ul{list-style:none}::selection{background:var(--selection);color:var(--selection-text)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:fixed;top:8px;left:8px;z-index:200;padding:10px 14px;background:var(--text);color:var(--bg);font-weight:600;transform:translateY(-160%)}.skip:focus{transform:none}.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}.section{padding-block:var(--s-9);border-top:1px solid var(--line)}.section-head{display:grid;grid-gap:var(--s-4);gap:var(--s-4);margin-bottom:var(--s-8);max-width:62ch}@media (min-width:960px){.section-head--split{max-width:none;grid-template-columns:1fr 1fr;align-items:end;gap:var(--s-7)}}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-sm);color:var(--text-2)}.eyebrow b{color:var(--text)}.eyebrow b,.h2{font-weight:600}.h2{font-size:var(--t-2xl);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}.h3{font-size:var(--t-xl);font-weight:600;line-height:1.1;letter-spacing:-.02em}.lead{font-size:var(--t-lg);line-height:1.5;color:var(--text-2);max-width:58ch;text-wrap:pretty}.mono{font-family:var(--mono)}.muted{color:var(--text-2)}.btn{--btn-bg:transparent;--btn-fg:var(--text);--btn-line:var(--line-2);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid var(--btn-line);border-radius:var(--radius);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--t-sm);font-weight:550;letter-spacing:-.005em;white-space:nowrap;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease)}.btn:hover{--btn-line:var(--text-2)}.btn:active{transform:translateY(1px) scale(.99)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:default}.btn--primary{--btn-bg:var(--text);--btn-fg:var(--bg);--btn-line:var(--text)}.btn--primary:hover{--btn-bg:var(--btn-hover);--btn-line:var(--btn-hover)}.btn--accent{--btn-bg:var(--text);--btn-fg:var(--bg);--btn-line:var(--text)}.btn--accent:hover{--btn-bg:var(--btn-hover);--btn-line:var(--btn-hover)}.btn--sm{min-height:36px;padding:0 12px;font-size:var(--t-xs)}.kbd{gap:2px;padding:1px 6px;border:solid var(--line-2);border-width:1px 1px 2px;border-radius:4px;font-family:var(--mono);font-size:.7rem;color:var(--text-2)}.arrow-link,.kbd{display:inline-flex;align-items:center}.arrow-link{gap:8px;font-size:var(--t-sm);font-weight:550;color:var(--text);border-bottom:1px solid var(--line-2);padding-bottom:2px;transition:border-color var(--fast) var(--ease),color var(--fast) var(--ease)}.arrow-link:after{content:"\2192";transition:transform var(--fast) var(--ease)}.arrow-link:hover{border-color:var(--text)}.arrow-link:hover:after{transform:translateX(3px)}.dot{position:relative;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}@media (prefers-reduced-motion:no-preference){.dot--pulse:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--ok);animation:pulse 2.4s var(--ease) infinite}}@keyframes pulse{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}.tags{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--mono);font-size:var(--t-xs);color:var(--text-2)}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;background:var(--nav-bg);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);transition:border-color var(--mid) var(--ease)}.nav[data-scrolled=true]{border-color:var(--line)}.nav-inner{display:flex;align-items:center;gap:clamp(8px,2vw,24px);height:60px}.nav-brand{display:inline-flex;align-items:baseline;gap:10px;font-weight:600;letter-spacing:-.02em;margin-right:auto}.nav-links{display:none;gap:4px}.nav-links a{position:relative;padding:8px 10px;font-size:var(--t-sm);color:var(--text-2);transition:color var(--fast) var(--ease)}.nav-links a:hover,.nav-links a[aria-current=true]{color:var(--text)}.nav-links a[aria-current=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:1px;background:var(--accent)}.nav-cmd{display:none}.nav-menu-btn{display:inline-flex}@media (min-width:880px){.nav-links{display:flex}.nav-cmd{display:inline-flex}.nav-menu-btn{display:none}}.nav-sheet{border-top:1px solid var(--line);padding:var(--s-4) var(--gutter) var(--s-6);display:grid;grid-gap:2px;gap:2px}.nav-sheet a,.nav-sheet button{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid var(--line);font-size:var(--t-lg);text-align:left}.nav-sheet a span,.nav-sheet button span{font-family:var(--mono);font-size:var(--t-xs);color:var(--text-3)}.footer{border-top:1px solid var(--line);padding-block:var(--s-6);font-size:var(--t-sm);color:var(--text-3)}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3) var(--s-6)}.footer a:hover{color:var(--text)}@media (hover:none){.footer-kbd{display:none}}.footer nav{display:flex;flex-wrap:wrap;gap:var(--s-4)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.theme-toggle{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text);transition:background var(--fast) var(--ease)}.theme-toggle:hover{background:var(--surface)}.theme-toggle svg{width:18px;height:18px;overflow:visible}.theme-toggle .rays{transform-origin:12px 12px;transition:transform .5s var(--ease),opacity .3s var(--ease)}.theme-toggle .bite{transition:transform .5s var(--ease)}.theme-toggle .rays{transform:rotate(-60deg) scale(.4);opacity:0}:root[data-theme=light] .theme-toggle .rays{transform:none;opacity:1}:root[data-theme=light] .theme-toggle .bite{transform:translate(8px,-8px)}::view-transition-group(root),::view-transition-image-pair(root){animation-duration:1.1s}::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){z-index:2;mix-blend-mode:normal;animation:none}:root[data-theme-switching] *,:root[data-theme-switching] :after,:root[data-theme-switching] :before{transition:none!important}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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 Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}