@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,p,figure,blockquote,dl,dd,ol,ul,pre{margin:0}ol,ul{padding:0;list-style:none}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}table{border-collapse:collapse}[hidden]{display:none!important}}@layer tokens{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--canvas:#f3f4ee;--card:#fff;--raised:#eceee6;--hairline:#e2e5db;--text:#0f1a16;--text-2:#5e6862;--text-3:#5f6b64;--flow:#2f7a1f;--flow-ink:#276318;--flow-muted:#e6f6cf;--on-flow:#fff;--on-button:#fff;--hero:#12302a;--hero-well:#1f4039;--hero-ink:#eef5ec;--hero-2:#a8bdb4;--lime:#b9f26b;--on-lime:#0f1a16;--direct:#178f62;--direct-ink:#126e4c;--direct-muted:#ddf3e8;--warn-ink:#8a5a00;--warn:#b87800;--reject-ink:#b8303a;--reject:#d43d47;--syn-kw:#8c2ec7;--syn-key:#00767f;--syn-param:#1a6bc7;--syn-string:#b8381a;--radius-lg:18px;--radius-sm:10px;--motion-press:.18s;--motion-quick:.25s;--motion-settle:.35s;--motion-crossfade:.15s}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--canvas:#0b110f;--card:#151d19;--raised:#1e2823;--hairline:#26322c;--text:#eef2ec;--text-2:#98a49c;--text-3:#8a9690;--flow:#b9f26b;--flow-ink:#c6f58a;--flow-muted:#223a1e;--on-flow:#0b110f;--on-button:#0b110f;--hero:#163a31;--hero-well:#234a41;--hero-ink:#eef5ec;--hero-2:#a8bdb4;--lime:#b9f26b;--on-lime:#0f1a16;--direct:#3ed09a;--direct-ink:#5bddb8;--direct-muted:#16302a;--warn-ink:#f0b84c;--warn:#f0b84c;--reject-ink:#f7707a;--reject:#f7707a;--syn-kw:#c78ffa;--syn-key:#6bdbcc;--syn-param:#8cccfa;--syn-string:#fa9e73}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#0b110f;--card:#151d19;--raised:#1e2823;--hairline:#26322c;--text:#eef2ec;--text-2:#98a49c;--text-3:#8a9690;--flow:#b9f26b;--flow-ink:#c6f58a;--flow-muted:#223a1e;--on-flow:#0b110f;--on-button:#0b110f;--hero:#163a31;--hero-well:#234a41;--hero-ink:#eef5ec;--hero-2:#a8bdb4;--lime:#b9f26b;--on-lime:#0f1a16;--direct:#3ed09a;--direct-ink:#5bddb8;--direct-muted:#16302a;--warn-ink:#f0b84c;--warn:#f0b84c;--reject-ink:#f7707a;--reject:#f7707a;--syn-kw:#c78ffa;--syn-key:#6bdbcc;--syn-param:#8cccfa;--syn-string:#fa9e73}:root{--text-2:#46524b;--text-3:#4b5750;--hairline:#d5d9cd;--hairline-2:#17181c38;--hero-2:#c4d5cb;--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--proxy:var(--flow);--proxy-ink:var(--flow-ink);--button:var(--text);--surface:#17181c06;--surface-2:#17181c0d;--well:#17181c08;--thumb:#fff;--thumb-shadow:0 1px 3px #17181c24, 0 0 0 .5px #17181c0f;--shadow-card:0 1px 2px #17181c0a;--shadow-lift:0 24px 48px -30px #17181c38, 0 2px 6px #17181c0a;--fs-micro:.6875rem;--fs-caption:.75rem;--fs-footnote:.8125rem;--fs-small:.875rem;--fs-sub:.9375rem;--fs-body:1rem;--fs-title:1.0625rem;--fs-lead:1.125rem;--radius-md:14px;--gutter:clamp(16px, 4.2vw, 44px);--content:1120px;--section-pad:clamp(80px, 10vw, 136px);--ease-out:cubic-bezier(.22, .75, .2, 1)}:root[data-theme=dark]{--text-2:#b3bfb7;--text-3:#a3afa8;--hairline:#313e37;--hairline-2:#fff3;--surface:#ffffff08;--surface-2:#ffffff0f;--well:#00000047;--thumb:#ffffff21;--thumb-shadow:0 1px 2px #00000059;--shadow-card:none;--shadow-lift:0 30px 60px -40px #000000b3}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--text-2:#b3bfb7;--text-3:#a3afa8;--hairline:#313e37;--hairline-2:#fff3;--surface:#ffffff08;--surface-2:#ffffff0f;--well:#00000047;--thumb:#ffffff21;--thumb-shadow:0 1px 2px #00000059;--shadow-card:none;--shadow-lift:0 30px 60px -40px #000000b3}}}@layer base{html{background:var(--canvas);scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--canvas);min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.6;overflow-x:clip}h1,h2,h3{text-wrap:balance;font-weight:600}p,li,dd,figcaption{text-wrap:pretty}code,pre{font-family:var(--font-mono)}code{letter-spacing:-.01em;font-size:.9em}p code,li code,figcaption code,span code{background:var(--surface-2);border:1px solid var(--hairline);white-space:nowrap;border-radius:6px;padding:.08em .38em}::selection{background:color-mix(in srgb, var(--flow) 32%, transparent);color:var(--text)}:focus-visible{outline:2px solid var(--flow);outline-offset:3px;border-radius:6px}.sprite{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.15em;height:1.15em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--flow);color:var(--on-flow);transition:transform var(--motion-press) var(--ease-out);border-radius:999px;padding:10px 16px;font-weight:600;position:fixed;top:12px;left:16px;transform:translateY(-160%)}.skip:focus-visible{transform:none}}@layer layout{.wrap{width:min(var(--content), 100% - 2 * var(--gutter));margin-inline:auto}.section{padding-block:var(--section-pad);position:relative}.section+.section:before{content:"";width:min(var(--content), 100% - 2 * var(--gutter));background:var(--hairline);height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.section-head{max-width:760px;margin-bottom:clamp(36px,5vw,60px)}.section-head h2{letter-spacing:-.03em;font-size:clamp(1.9rem,1.3rem + 2.1vw,2.9rem);line-height:1.06}.section-head>p:not(.eyebrow){max-width:620px;color:var(--text-2);margin-top:18px;font-size:clamp(1.02rem,.97rem + .25vw,1.12rem);line-height:1.65}.eyebrow{color:var(--text-3);font-size:var(--fs-caption);letter-spacing:.12em;text-transform:uppercase;align-items:center;margin-bottom:14px;font-weight:600;display:inline-flex}.label-caps{color:var(--text-2);font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:7px;font-weight:600;display:inline-flex}.label-caps .icon{width:1.25em;height:1.25em}}@layer components{.card{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-card);position:relative}@supports (corner-shape:squircle){.card,.tracer__panel,.terminal,.proto,.plan{corner-shape:squircle}}.button{height:44px;font-size:var(--fs-sub);letter-spacing:-.005em;white-space:nowrap;transition:background-color var(--motion-press), border-color var(--motion-press), color var(--motion-press);border-radius:10px;align-items:center;gap:9px;padding:0 20px;font-weight:560;display:inline-flex}.button .icon{width:1.05em;height:1.05em;transition:transform var(--motion-press) var(--ease-out)}.button:hover .icon{transform:translate(2px)}.button--primary{color:var(--on-button);background:var(--button)}.button--primary:hover{background:color-mix(in srgb, var(--button) 86%, var(--canvas))}.button--quiet{color:var(--text);border:1px solid var(--hairline-2);background:0 0}.button--quiet:hover{background:var(--surface-2)}.button--lime{color:var(--on-lime);background:var(--lime)}.button--lime:hover{background:color-mix(in srgb, var(--lime) 88%, #fff)}.segmented{background:var(--surface-2);border:1px solid var(--hairline);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--text-2);font-size:var(--fs-footnote);transition:color var(--motion-press), background-color var(--motion-press), box-shadow var(--motion-press);border-radius:999px;padding:6px 14px;font-weight:600;line-height:1.2}.segmented button:hover{color:var(--text)}.segmented button[aria-checked=true],.segmented button[aria-selected=true]{color:var(--text);background:var(--thumb);box-shadow:var(--thumb-shadow)}.segmented--small button{font-size:var(--fs-caption);padding:5px 11px}.tag{border:1px solid var(--hairline);background:var(--surface);color:var(--text-2);font-size:var(--fs-caption);border-radius:999px;align-items:center;padding:3px 9px;font-weight:600;display:inline-flex}.legend{align-items:center;gap:7px;display:inline-flex}.legend:before{content:"";background:var(--dot,var(--text-3));border-radius:3px;width:8px;height:8px}.legend--proxy{--dot:var(--proxy)}.legend--direct{--dot:var(--direct)}.legend--reject{--dot:var(--reject)}.split__bar{background:var(--surface-2);border-radius:99px;gap:2px;height:6px;display:flex;overflow:hidden}.split__seg{min-width:0;transition:flex-grow .6s var(--ease-out)}.split__seg--proxy{background:var(--proxy);flex-grow:1}.split__seg--direct{background:var(--direct);flex-grow:2}.split__seg--reject{background:var(--reject);flex-grow:1}.split__legend{color:var(--text-2);font-size:var(--fs-caption);flex-wrap:wrap;gap:6px 16px;margin-top:10px;display:flex}.split__legend b{color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.code-line{white-space:pre-wrap;overflow-wrap:anywhere;grid-template-columns:2.9em minmax(0,1fr) auto;align-items:center;min-height:1.95em;padding-inline:0 14px;display:grid}.ln{color:var(--text-3);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;justify-content:flex-end;align-items:center;gap:3px;padding-right:1.05em;font-size:.86em;display:inline-flex}.t-head,.t-kw{color:var(--syn-kw)}.t-head{font-weight:600}.t-key{color:var(--syn-key)}.t-param{color:var(--syn-param)}.region{background:var(--surface-2);border:1px solid var(--hairline);min-width:28px;height:20px;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;border-radius:6px;place-items:center;padding-inline:5px;font-weight:600;display:inline-grid}}@layer sections{.masthead{z-index:50;transition:background-color var(--motion-quick), border-color var(--motion-quick);border-bottom:1px solid #0000;position:sticky;top:0}.masthead__inner{align-items:center;gap:24px;height:68px;display:flex}.brand{border-radius:10px;align-items:center;gap:11px;margin-right:auto;display:inline-flex}.brand__mark{width:28px;height:28px;box-shadow:0 0 0 1px var(--hairline);border-radius:7px}.mark__bg{fill:#17392f}.mark__front{stroke:#b9f26b}.mark__back{stroke:#3ed09a}:root[data-theme=dark] .mark__bg{fill:#0f2621}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .mark__bg{fill:#0f2621}}.brand__name{font-size:var(--fs-title);letter-spacing:-.025em;font-weight:620}.nav{align-items:center;gap:4px;display:flex}.nav a{color:var(--text-2);font-size:var(--fs-small);transition:color var(--motion-press), background-color var(--motion-press);border-radius:999px;padding:8px 12px;font-weight:500;position:relative}.nav a:hover{color:var(--text);background:var(--surface)}.nav a[aria-current]{color:var(--text)}.nav a[aria-current]:after{content:"";background:var(--flow);border-radius:50%;width:4px;height:4px;position:absolute;bottom:2px;left:50%;translate:-50%}.masthead__get{height:38px;font-size:var(--fs-small);padding:0 16px}.theme-toggle{border:1px solid var(--hairline-2);background:var(--surface);width:38px;height:38px;color:var(--text-2);cursor:pointer;border-radius:999px;flex:none;place-items:center;display:inline-grid}.theme-toggle:hover{color:var(--text)}.theme-toggle .icon{width:18px;height:18px}.theme-toggle .theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle .theme-toggle__sun{display:block}:root[data-theme=dark] .theme-toggle .theme-toggle__moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .theme-toggle__sun{display:block}:root:not([data-theme=light]) .theme-toggle .theme-toggle__moon{display:none}}.lang{position:relative}.lang summary{border:1px solid var(--hairline-2);background:var(--surface);height:38px;color:var(--text-2);font-size:var(--fs-caption);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 12px 0 10px;font-weight:500;list-style:none;display:inline-flex}.lang summary::-webkit-details-marker{display:none}.lang summary:hover{color:var(--text)}.lang summary .icon{width:1.2em;height:1.2em}.lang__sheet{inset-inline-end:0;z-index:60;border:1px solid var(--hairline-2);background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.5);backdrop-filter:blur(24px)saturate(1.5);min-width:200px;box-shadow:var(--shadow-lift);border-radius:18px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px)}.lang__sheet a{font-size:var(--fs-small);border-radius:11px;padding:10px 14px;font-weight:500;display:block}.lang__sheet a:hover,.lang__sheet a:focus-visible{background:var(--surface-2)}.lang__sheet a[aria-current]{color:var(--flow-ink);font-weight:600}.menu{display:none;position:relative}.menu summary{border:1px solid var(--hairline-2);background:var(--surface);cursor:pointer;border-radius:12px;place-items:center;width:42px;height:42px;list-style:none;display:grid}.menu summary::-webkit-details-marker{display:none}.menu__bars,.menu__bars:before,.menu__bars:after{background:var(--text);width:16px;height:1.6px;transition:transform var(--motion-press) var(--ease-out), opacity var(--motion-press);border-radius:2px;display:block}.menu__bars{background:0 0;position:relative}.menu__bars:before,.menu__bars:after{content:"";position:absolute;left:0}.menu__bars:before{top:-3.5px}.menu__bars:after{top:3.5px}.menu[open] .menu__bars:before{transform:translateY(3.5px)rotate(45deg)}.menu[open] .menu__bars:after{transform:translateY(-3.5px)rotate(-45deg)}.menu__sheet{border:1px solid var(--hairline-2);background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.5);backdrop-filter:blur(24px)saturate(1.5);min-width:210px;box-shadow:var(--shadow-lift);border-radius:18px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px);right:0}.menu__sheet a{font-size:var(--fs-body);border-radius:11px;padding:11px 14px;font-weight:500}.menu__sheet a:hover,.menu__sheet a:focus-visible{background:var(--surface-2)}@media (width<=900px){.nav{display:none}.menu{display:block}.masthead__inner{gap:12px}}@media (width<=560px){.masthead__get,.lang summary span{display:none}.lang summary{justify-content:center;width:38px;padding:0}}.footer{padding:clamp(80px,10vw,130px) 0 36px;position:relative}.footer:before{content:"";width:min(var(--content), 100% - 2 * var(--gutter));background:var(--hairline);height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.footer__lead{text-align:center;flex-direction:column;align-items:center;display:flex}.footer__icon{filter:drop-shadow(0 14px 22px #00000024);width:96px;height:96px;margin-bottom:28px}.footer__title{letter-spacing:-.03em;font-size:clamp(1.9rem,1.3rem + 2.2vw,2.9rem);font-weight:600;line-height:1.06}.footer__text{max-width:46ch;color:var(--text-2);font-size:var(--fs-title);margin-top:14px}.footer__base{border-top:1px solid var(--hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(56px,8vw,96px);padding-top:22px;display:flex}.brand--small{margin-right:0}.brand--small .brand__mark{border-radius:6px;width:24px;height:24px}.brand--small .brand__name{font-size:var(--fs-body)}.footer__meta{color:var(--text-3);font-size:var(--fs-footnote);flex-wrap:wrap;gap:6px 22px;display:flex}.footer__note{flex-basis:100%}.footer__meta a{color:var(--text-2);text-decoration:underline;-webkit-text-decoration-color:var(--hairline-2);text-decoration-color:var(--hairline-2);text-underline-offset:3px}.footer__meta a:hover{color:var(--text);text-decoration-color:currentColor}.lost{flex-direction:column;min-height:100svh;display:flex}.lost__main{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;padding-block:40px 96px;display:flex}.lost__title{letter-spacing:-.05em;font-size:clamp(2.6rem,1.4rem + 4.4vw,5rem);line-height:1}.lost__text{max-width:46ch;color:var(--text-2);font-size:var(--fs-lead);margin-top:18px}.lost__terminal{width:min(680px,100%);margin:32px 0 34px}.lost__terminal .terminal__body{padding-top:18px}}@layer motion{@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}}@font-face{font-family:Geist;src:url(/assets/Geist-Variable-Bj2R_7yk.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/assets/GeistMono-Variable-Dispecij.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
