@font-face{font-family:Geist;src:url(/fonts/geist-latin.woff2)format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0-24F,U+259,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1E??,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;src:url(/fonts/geist-cyrillic.woff2)format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+301,U+400-52F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:geist mono;src:url(/fonts/geist-mono-latin.woff2)format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0-24F,U+259,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1E??,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:geist mono;src:url(/fonts/geist-mono-cyrillic.woff2)format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+301,U+400-52F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}:root{--sans:Geist, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius:6px;--radius-sm:4px;--shell:860px}:root,[data-theme=dark]{--bg:#07090b;--surface:#0c0f12;--surface-2:#12171b;--border:#1e252c;--border-strong:#2b343d;--text:#e9edf0;--text-dim:#85909a;--accent:#2ff3b5;--accent-dim:#1fd69c;--on-accent:#02130c;--danger:#ff6b6b;--warn:#f0a04b;--grid-line:rgb(255 255 255 / .045);--glow:0 0 28px color-mix(in srgb, var(--accent) 28%, transparent);--app-bg:radial-gradient(900px 480px at 50% -12%, #0c2a21 0%, var(--bg) 62%);color-scheme:dark}[data-theme=light]{--bg:#f6f7f8;--surface:#ffffff;--surface-2:#f1f3f5;--border:#dfe3e7;--border-strong:#c9d0d6;--text:#0b0f12;--text-dim:#5b6670;--accent:#00a372;--accent-dim:#008a60;--on-accent:#ffffff;--danger:#d92d2d;--warn:#b5650d;--grid-line:rgb(0 0 0 / .05);--glow:0 6px 20px -6px color-mix(in srgb, var(--accent) 45%, transparent);--app-bg:radial-gradient(900px 480px at 50% -12%, #e2f5ee 0%, var(--bg) 62%);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-width:320px;min-height:100vh;background:var(--app-bg);color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.kinetic-grid{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgb(0 0 0/.35) 70%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,rgb(0 0 0/.35) 70%,transparent 100%)}h1,h2,h3{letter-spacing:-.025em;font-weight:650;text-wrap:balance}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-dim)}::selection{background:color-mix(in srgb,var(--accent) 35%,transparent);color:var(--text)}code,kbd,pre{font-family:var(--mono)}.mono{font-family:var(--mono)}.dim{color:var(--text-dim)}.brand{font-family:var(--mono);letter-spacing:-.02em}.label,.eyebrow{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim)}.card,.home-intro,.page{position:relative}.card::before,.home-intro::before,.page::before{content:"";position:absolute;top:-1px;left:-1px;width:14px;height:14px;border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-top-left-radius:var(--radius);pointer-events:none}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:36px;padding:0;background:0 0;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:1rem;font-family:var(--sans);font-weight:700;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.theme-toggle:hover{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}.theme-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.theme-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.theme-toggle[data-pref=system] .ti-light,.theme-toggle[data-pref=system] .ti-dark,.theme-toggle[data-pref=light] .ti-system,.theme-toggle[data-pref=light] .ti-dark,.theme-toggle[data-pref=dark] .ti-system,.theme-toggle[data-pref=dark] .ti-light{display:none}.lang-switch{display:flex;gap:.2rem;align-items:center;font-family:var(--mono);font-size:.72rem;letter-spacing:.05em}.lang-switch button,.lang-switch a{font:inherit;background:0 0;border:0;cursor:pointer;text-decoration:none;color:var(--text);opacity:.55;padding:.3rem .4rem;border-radius:var(--radius-sm)}.lang-switch button:hover,.lang-switch a:hover{opacity:.9;color:var(--text)}.lang-switch button.active,.lang-switch a.active,.lang-switch a[aria-current]{opacity:1;font-weight:600;background:var(--surface-2);color:var(--accent)}.lang-suggest{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.55rem 1rem;font-family:var(--mono);font-size:.8rem;background:var(--surface-2);border-bottom:1px solid var(--border)}.lang-suggest a{color:var(--accent);font-weight:600}.lang-suggest button{background:0 0;border:0;color:inherit;font-size:1.2rem;line-height:1;cursor:pointer;opacity:.7}.lang-suggest button:hover{opacity:1}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important}}.shell{width:min(var(--shell),calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 2.5rem}.site-head,.site-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-head{padding-bottom:1.1rem}.brand{color:var(--text);font-size:1.4rem;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.topnav,.foot-links{display:flex;gap:.25rem 1rem;flex-wrap:wrap;align-items:center}.topnav a,.foot-links a{color:var(--text-dim);font-family:var(--mono);font-size:.78rem;text-decoration:none}.topnav a:hover,.foot-links a:hover{color:var(--accent)}.doc-tools{display:flex;align-items:center;gap:.4rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.66rem 1rem;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-family:var(--mono);font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.1;text-decoration:none;box-shadow:var(--glow);transition:background .15s ease,border-color .15s ease}.btn:hover{background:var(--accent-dim);border-color:var(--accent-dim);color:var(--on-accent)}.topnav a.btn,.topnav a.btn:hover{color:var(--on-accent);text-decoration:none}.btn-ghost{background:0 0;border-color:var(--border-strong);color:var(--text);box-shadow:none}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--accent)}.page{margin-top:1.75rem;padding:1.75rem;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 92%,transparent)}.eyebrow{margin:0 0 .6rem;color:var(--accent);font-size:.72rem;letter-spacing:.14em}.eyebrow::before{content:'// ';opacity:.6}.page>.eyebrow{color:var(--accent)}h1,h2,h3,p,ul,ol{margin-top:0}h1{margin-bottom:.8rem;font-size:clamp(2rem,5.6vw,3.2rem);line-height:1.04}h2{margin:2.2rem 0 .6rem;font-size:1.45rem;line-height:1.18}h3{margin:1.4rem 0 .35rem;font-size:1.08rem;line-height:1.25}.lead{max-width:64ch;color:var(--text-dim);font-size:1.06rem}.cta-row{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.3rem 0 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem}.tile{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background:var(--surface-2)}.tile h2,.tile h3{margin-top:0}.tile p,li{color:var(--text-dim)}code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.05rem .3rem}.site-foot{margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--border);color:var(--text-dim);font-size:.85rem}@media(max-width:640px){.page{padding:1.1rem}.grid{grid-template-columns:1fr}.site-head{align-items:flex-start}}.page p,.page li{max-width:72ch}.page>p,.page>ul,.page>ol{color:var(--text-dim)}.page h2{max-width:46ch}table{width:100%;border-collapse:collapse;margin:1.1rem 0;font-size:.93rem;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}thead th{text-align:left;padding:.6rem .8rem;background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-dim);font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase}tbody td{padding:.6rem .8rem;border-bottom:1px solid var(--border);color:var(--text-dim);vertical-align:top}tbody td:first-child{color:var(--text)}tbody tr:last-child td{border-bottom:0}.scroll-x{overflow-x:auto}pre{margin:1.1rem 0;padding:.9rem 1rem;overflow-x:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);font-size:.84rem;line-height:1.55;color:var(--text)}pre code{background:0 0;border:0;padding:0}.note{margin:1.2rem 0;padding:.9rem 1.1rem;border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius);background:var(--surface-2)}.note p:last-child{margin-bottom:0}.note.caveat{border-left-color:var(--warn)}.sources{margin-top:2.2rem;padding-top:1.2rem;border-top:1px solid var(--border)}.sources h2{margin-top:0;font-size:1.05rem}.sources ol{padding-left:1.2rem;font-size:.9rem}.sources li{margin-bottom:.4rem}.pagemeta{margin:0 0 1.4rem;color:var(--text-dim);font-family:var(--mono);font-size:.74rem;letter-spacing:.05em}.guide h1{max-width:28ch;font-size:clamp(1.8rem,4.6vw,2.6rem);line-height:1.12}.guide .lead{margin-bottom:1.6rem}.crumb{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.1rem;color:var(--text-dim);font-family:var(--mono);font-size:.72rem;letter-spacing:.06em}.crumb a{color:var(--text-dim);text-decoration:none}.crumb a:hover{color:var(--accent)}.crumb .sep{opacity:.5}.byline{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .9rem;margin:0 0 1.6rem;color:var(--text-dim);font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.byline .dot-sep{width:3px;height:3px;border-radius:50%;background:var(--border)}.kicker{color:var(--accent);font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}.takeaways,.callout{margin:1.8rem 0;padding:1.2rem 1.3rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.takeaways h2,.callout h2{margin:0 0 .7rem;font-size:1rem}.takeaways .kicker,.callout .kicker{display:block;margin-bottom:.55rem}.takeaways ul{margin:0;padding-left:1.15rem}.takeaways li{color:var(--text-dim);font-size:.95rem}.callout{border-left:2px solid var(--accent)}.callout p:last-child{margin-bottom:0}.callout.warn{border-left-color:var(--warn)}.related{margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--border)}.related h2{margin:0 0 1rem;font-size:1rem}.related-list,.guide-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.guide-list li{margin:0;max-width:none}.related-list a,.guide-list a{display:grid;gap:.25rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);text-decoration:none}.related-list a:hover,.guide-list a:hover{border-color:var(--accent);color:var(--text)}.related-list strong,.guide-list .g-title{font-size:1rem;font-weight:700}.related-list span,.guide-list .g-desc{color:var(--text-dim);font-size:.88rem;line-height:1.5}.guide-list .g-meta{color:var(--text-dim);font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.lib-intro{margin:0 0 2rem}.lib-section-title{margin:2.2rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);color:var(--text-dim);font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.guide-cta{margin:2.2rem 0;padding:1.4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.guide-cta p{margin:0 0 1rem;color:var(--text-dim)}.guide figure{margin:1.6rem 0}.guide .fig-flow{padding:1rem 1.1rem;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text-dim);font-family:var(--mono);font-size:.82rem;line-height:1.9}.guide figcaption{margin-top:.5rem;color:var(--text-dim);font-size:.82rem}@media(max-width:560px){.guide table{display:block;overflow-x:auto;white-space:nowrap}}