@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,h4,p,figure,blockquote,dl,dd,ol,ul,pre{margin:0}ol,ul{padding:0;list-style:none}img,svg{max-width:100%;display:block}picture{border-radius:inherit;display:contents}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]:not([hidden=until-found i]){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:var(--lightningcss-light,#46524b)var(--lightningcss-dark,#b3bfb7);--text-3:var(--lightningcss-light,#4b5750)var(--lightningcss-dark,#a3afa8);--hairline:var(--lightningcss-light,#d5d9cd)var(--lightningcss-dark,#313e37);--hairline-2:var(--lightningcss-light,#17181c38)var(--lightningcss-dark,#fff3);--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:var(--lightningcss-light,#17181c06)var(--lightningcss-dark,#ffffff08);--surface-2:var(--lightningcss-light,#17181c0d)var(--lightningcss-dark,#ffffff0f);--well:var(--lightningcss-light,#17181c08)var(--lightningcss-dark,#00000047);--thumb:var(--lightningcss-light,#fff)var(--lightningcss-dark,#ffffff21);--thumb-shadow:0 1px 3px var(--lightningcss-light,#17181c24)var(--lightningcss-dark,#00000059), 0 0 0 .5px var(--lightningcss-light,#17181c0f)var(--lightningcss-dark,#0000);--shadow-card:0 1px 2px var(--lightningcss-light,#17181c0a)var(--lightningcss-dark,#0000);--shadow-lift:0 24px 48px -30px var(--lightningcss-light,#17181c38)var(--lightningcss-dark,#000000b3), 0 2px 6px var(--lightningcss-light,#17181c0a)var(--lightningcss-dark,#0000);--edge:var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#ffffff1f);--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:1160px;--section-pad:clamp(80px, 10vw, 136px);--masthead:4.25rem;--ease-out:cubic-bezier(.22, .75, .2, 1)}}@layer base{html{background:var(--canvas);scroll-behavior:smooth;scroll-padding-top:calc(var(--masthead) + 1rem)}body{background:var(--canvas);min-height:100dvh;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,h4{text-wrap:balance;font-weight:600}:lang(ja) :is(h1,h2,h3,h4){word-break:auto-phrase}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{min-block-size: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 oklab, var(--lime) 88%, #fff)}.button--ghost{color:inherit;border:1px solid color-mix(in oklab, currentColor 30%, transparent)}.button--ghost:hover{background:color-mix(in oklab, currentColor 10%, transparent)}.button--large{min-block-size:3.125rem;font-size:var(--fs-body);border-radius:12px;padding:0 1.5rem}.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;padding-block-start:env(safe-area-inset-top,0px);position:sticky;top:0}.masthead__inner{min-block-size:var(--masthead);align-items:center;gap:24px;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}.masthead__get{min-block-size: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){.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}.footer__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px;display:flex}.footer__langs{color:var(--text-3);font-size:var(--fs-footnote);flex-wrap:wrap;flex-basis:100%;gap:4px 16px;display:flex}.footer__langs a[aria-current]{font-weight:600}.footer__langs a{color:var(--text-2)}.footer__langs a:hover,.footer__langs a[aria-current]{color:var(--text)}.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}
