:root,[data-theme=dark]{color-scheme:dark;--sb-canvas:oklch(18% .014 255);--sb-surface:oklch(23% .016 255);--sb-well:oklch(20% .015 255);--sb-hover:oklch(29.5% .018 255);--sb-raised:oklch(34% .02 255);--sb-hairline:oklch(30% .018 255);--sb-hairline-strong:oklch(40% .02 255);--sb-control-edge:oklch(56% .02 255);--sb-focus:oklch(95% .01 255);--sb-fg:oklch(95% .01 255);--sb-fg-muted:oklch(76% .018 255);--sb-fg-faint:oklch(64% .016 255);--sb-brand:oklch(72% .12 152);--sb-brand-hover:oklch(77% .12 152);--sb-on-brand:oklch(20% .03 152);--sb-brand-fg:oklch(82% .13 152);--sb-brand-soft:oklch(31% .045 152);--sb-brand-dot:oklch(74% .15 152);--sb-warn-fg:oklch(88% .1 85);--sb-warn-soft:oklch(35% .06 80);--sb-warn-dot:oklch(80% .14 80);--sb-danger:oklch(68% .14 25);--sb-danger-hover:oklch(73% .13 25);--sb-on-danger:oklch(18% .04 25);--sb-danger-fg:oklch(85% .1 25);--sb-danger-soft:oklch(34% .08 25);--sb-danger-dot:oklch(74% .16 25);--sb-info-fg:oklch(84% .1 255);--sb-info-soft:oklch(33% .07 255);--sb-info-dot:oklch(76% .13 255);--sb-neutral-fg:oklch(85% .012 255);--sb-neutral-soft:oklch(33% .012 255);--sb-neutral-dot:oklch(72% .012 255);--sb-code-bg:oklch(15.5% .012 255);--sb-chart-requests:oklch(76% .13 255);--sb-chart-grid:oklch(34% .018 255);--sb-scrim:oklch(6% .012 255/.62);--ink:oklch(100% 0 0);--ink-shadow:oklch(0% 0 0);--sh-card:0 0 0 1px oklch(100% 0 0/.06), inset 0 1px 0 oklch(100% 0 0/.04), 0 10px 24px -14px oklch(0% 0 0/.5);--sh-card-hover:0 0 0 1px oklch(100% 0 0/.09), inset 0 1px 0 oklch(100% 0 0/.05), 0 18px 32px -14px oklch(0% 0 0/.6);--sh-btn:inset 0 0 0 1px oklch(100% 0 0/.09), inset 0 1px 0 oklch(100% 0 0/.04), 0 1px 2px oklch(0% 0 0/.3);--sh-btn-hover:inset 0 0 0 1px oklch(100% 0 0/.12), inset 0 1px 0 oklch(100% 0 0/.05), 0 3px 8px -2px oklch(0% 0 0/.45);--sh-primary:inset 0 1px 0 oklch(100% 0 0/.35), 0 1px 2px oklch(0% 0 0/.4), 0 6px 14px -6px oklch(60% .12 150/.4);--sh-primary-hover:inset 0 1px 0 oklch(100% 0 0/.4), 0 2px 4px oklch(0% 0 0/.4), 0 10px 20px -6px oklch(60% .12 150/.5);--sh-tray:inset 0 1px 2px oklch(0% 0 0/.35), inset 0 0 0 1px oklch(100% 0 0/.04);--sh-pill:0 0 0 1px oklch(100% 0 0/.1), inset 0 1px 0 oklch(100% 0 0/.08), 0 1px 3px oklch(0% 0 0/.4);--sh-float:0 0 0 1px oklch(100% 0 0/.11), inset 0 1px 0 oklch(100% 0 0/.08), 0 2px 4px oklch(0% 0 0/.35), 0 18px 44px -6px oklch(0% 0 0/.65);--sh-dialog:0 0 0 1px oklch(100% 0 0/.11), inset 0 1px 0 oklch(100% 0 0/.08), 0 4px 8px oklch(0% 0 0/.35), 0 28px 72px -8px oklch(0% 0 0/.75);--bg-secondary:var(--sb-hover);--bg-secondary-hover:var(--sb-raised)}[data-theme=light]{color-scheme:light;--sb-canvas:oklch(96.5% 0 0);--sb-surface:oklch(99.5% 0 0);--sb-well:oklch(96.2% 0 0);--sb-hover:oklch(92.5% 0 0);--sb-raised:oklch(100% 0 0);--sb-hairline:oklch(90% 0 0);--sb-hairline-strong:oklch(82% 0 0);--sb-control-edge:oklch(60% 0 0);--sb-focus:oklch(22% 0 0);--sb-fg:oklch(22% 0 0);--sb-fg-muted:oklch(44% 0 0);--sb-fg-faint:oklch(52% 0 0);--sb-brand:oklch(47% .12 152);--sb-brand-hover:oklch(42% .105 152);--sb-on-brand:oklch(99% .005 150);--sb-brand-fg:oklch(42% .11 152);--sb-brand-soft:oklch(94% .05 150);--sb-brand-dot:oklch(62% .16 150);--sb-warn-fg:oklch(43% .09 70);--sb-warn-soft:oklch(95% .06 85);--sb-warn-dot:oklch(63% .14 72);--sb-danger:oklch(48% .18 25);--sb-danger-hover:oklch(43% .18 25);--sb-on-danger:oklch(100% 0 0);--sb-danger-fg:oklch(46% .18 25);--sb-danger-soft:oklch(95% .035 25);--sb-danger-dot:oklch(58% .2 25);--sb-info-fg:oklch(42% .14 255);--sb-info-soft:oklch(94% .04 255);--sb-info-dot:oklch(58% .15 255);--sb-neutral-fg:oklch(42% 0 0);--sb-neutral-soft:oklch(93% 0 0);--sb-neutral-dot:oklch(55% 0 0);--sb-code-bg:oklch(95.5% 0 0);--sb-chart-requests:oklch(55% .15 255);--sb-chart-grid:oklch(88% 0 0);--sb-scrim:oklch(25% 0 260/.34);--ink:oklch(0% 0 0);--ink-shadow:oklch(30% 0 0);--sh-card:0 0 0 1px oklch(0% 0 0/.06), 0 1px 2px oklch(30% 0 0/.05), 0 10px 24px -14px oklch(30% 0 0/.18);--sh-card-hover:0 0 0 1px oklch(0% 0 0/.08), 0 2px 4px oklch(30% 0 0/.06), 0 18px 32px -14px oklch(30% 0 0/.26);--sh-btn:inset 0 0 0 1px oklch(0% 0 0/.09), 0 1px 2px oklch(30% 0 0/.06);--sh-btn-hover:inset 0 0 0 1px oklch(0% 0 0/.11), 0 3px 8px -2px oklch(30% 0 0/.14);--sh-primary:inset 0 1px 0 oklch(100% 0 0/.22), 0 1px 2px oklch(30% .08 150/.3), 0 6px 14px -6px oklch(30% .1 150/.45);--sh-primary-hover:inset 0 1px 0 oklch(100% 0 0/.26), 0 2px 4px oklch(30% .08 150/.3), 0 10px 20px -6px oklch(30% .1 150/.5);--sh-tray:inset 0 1px 2px oklch(30% 0 0/.08), inset 0 0 0 1px oklch(0% 0 0/.04);--sh-pill:0 0 0 1px oklch(0% 0 0/.07), 0 1px 2px oklch(30% 0 0/.1), 0 4px 8px -4px oklch(30% 0 0/.16);--sh-float:0 0 0 1px oklch(0% 0 0/.08), 0 2px 4px -1px oklch(30% 0 0/.1), 0 12px 28px -8px oklch(30% 0 0/.22), 0 24px 48px -16px oklch(30% 0 0/.22);--sh-dialog:0 0 0 1px oklch(0% 0 0/.08), 0 4px 8px -2px oklch(30% 0 0/.12), 0 24px 48px -12px oklch(30% 0 0/.28), 0 48px 96px -24px oklch(30% 0 0/.3);--bg-secondary:var(--sb-surface);--bg-secondary-hover:var(--sb-raised)}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-wght-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2")}@property --halo-w{syntax:"<length>";inherits:false;initial-value:0}:root{--font:"Figtree", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--move:1;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--spring-bob:linear(0, .0246 2.5%, .0874 5%, .1739 7.5%, .2731 10%, .3766 12.5%, .4783 15%, .5741 17.5%, .6611 20%, .738 22.5%, .8042 25%, .8598 27.5%, .9054 30%, .9418 32.5%, .9701 35%, .9913 37.5%, 1.0067 40%, 1.0171 42.5%, 1.0237 45%, 1.0272 47.5%, 1.0284 50%, 1.0279 52.5%, 1.0262 55%, 1.0239 57.5%, 1.0211 60%, 1.0182 62.5%, 1.0152 65%, 1.0125 67.5%, 1.01 70%, 1.0078 72.5%, 1.0058 75%, 1.0042 77.5%, 1.0029 80%, 1.0018 82.5%, 1.001 85%, 1.0003 87.5%, .9999 90%, .9996 92.5%, .9994 95%, .9992 97.5%, 1 100%);--spring-bob-ms:.675s;--spring-smooth:var(--ease-out);--spring-smooth-ms:.42s;--d-hover-in:.1s;--d-hover-out:.2s;--d-press:90ms;--press-scale:calc(1 - .03 * var(--move));--press-y:calc(1px * var(--move));--r-ctl:9px;--r-sm:7px;--r-card:14px;--r-panel:18px;--control-h:36px;--nav-h:60px;--nav-gutter:24px;--wrap:1200px;--gutter:32px;--ring-halo:0 0 0 var(--halo-w) color-mix(in oklch, var(--sb-focus) 16%, transparent)}@media (prefers-reduced-motion:reduce){:root{--move:0;--spring-bob:var(--ease-out);--spring-bob-ms:.16s;--spring-smooth-ms:.16s}}html[data-motion=reduce]{--move:0;--spring-bob:var(--ease-out);--spring-bob-ms:.16s;--spring-smooth-ms:.16s}@media (width<=720px){:root{--gutter:20px}}@media (width<=900px){:root{--nav-h:56px;--nav-gutter:16px}}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px);background:var(--sb-canvas)}body{color:var(--sb-fg);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-optical-sizing:auto;margin:0;font-size:16px;line-height:1.55;overflow-x:clip}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.1}p{text-wrap:pretty;margin:0}a{color:inherit}code,kbd,pre{font-family:var(--mono);font-variant-ligatures:none}img,svg{display:block}::selection{background:color-mix(in oklch, var(--sb-brand) 30%, transparent)}html.no-transitions *,html.no-transitions :before,html.no-transitions :after{transition:none!important}main{view-transition-name:page}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.i{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--sb-fg-muted)}.faint{color:var(--sb-fg-faint)}.mono{font-family:var(--mono)}:where(a,button,input,.btn,.ibtn,summary){outline-offset:2px;transition:outline-color .12s ease, --halo-w .26s var(--ease-out);outline:2px solid #0000}:where(a,button,input,.btn,.ibtn,summary):focus-visible{outline-color:var(--sb-focus);--halo-w:6px}.btn{height:var(--control-h);border-radius:var(--r-ctl);background:var(--bg-secondary);color:var(--sb-fg);font:inherit;cursor:pointer;white-space:nowrap;user-select:none;-webkit-tap-highlight-color:transparent;box-shadow:var(--sh-btn), var(--ring-halo);transition:background-color var(--d-hover-out) ease, color var(--d-hover-out) ease, box-shadow var(--d-hover-out) ease, scale var(--spring-bob-ms) var(--spring-bob), translate var(--spring-bob-ms) var(--spring-bob), outline-color .12s ease, --halo-w .26s var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:560;line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn.lg{border-radius:11px;height:44px;padding:0 18px;font-size:15px}.btn.primary{background:var(--sb-brand);color:var(--sb-on-brand);box-shadow:var(--sh-primary), var(--ring-halo)}.btn.ghost{color:var(--sb-fg-muted);box-shadow:var(--ring-halo);background:0 0}@media (hover:hover){.btn:hover{background:var(--bg-secondary-hover);box-shadow:var(--sh-btn-hover), var(--ring-halo);transition-duration:var(--d-hover-in), var(--d-hover-in), var(--d-hover-in), var(--spring-bob-ms), var(--spring-bob-ms), .12s, .26s}.btn.primary:hover{background:var(--sb-brand-hover);box-shadow:var(--sh-primary-hover), var(--ring-halo)}.btn.ghost:hover{background:var(--sb-hover);color:var(--sb-fg);box-shadow:var(--ring-halo)}}.btn:not(:disabled):active{scale:var(--press-scale);translate:0 var(--press-y);transition:background-color var(--d-hover-in) ease, box-shadow var(--d-hover-in) ease, scale var(--d-press) ease-out, translate var(--d-press) ease-out}.btn .i{width:15px;height:15px}.btn .arrow{transition:translate .24s var(--ease-out)}@media (hover:hover){.btn:hover .arrow,.link:hover .arrow{translate:2px}}.btn[aria-disabled=true],.btn:disabled{opacity:.5;cursor:not-allowed}.ibtn{width:34px;height:34px;color:var(--sb-fg-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:var(--ring-halo);transition:background-color var(--d-hover-out) ease, color var(--d-hover-out) ease, scale var(--spring-bob-ms) var(--spring-bob), outline-color .12s ease, --halo-w .26s var(--ease-out);background:0 0;border:0;border-radius:8px;place-items:center;text-decoration:none;display:inline-grid}@media (hover:hover){.ibtn:hover{background:var(--sb-hover);color:var(--sb-fg);transition-duration:var(--d-hover-in)}}.ibtn:active{scale:var(--press-scale);transition:scale var(--d-press) ease-out}.theme-moon,[data-theme=dark] .theme-sun{display:none}[data-theme=dark] .theme-moon{display:block}.link{color:var(--sb-brand-fg);border-radius:4px;align-items:center;gap:6px;font-size:15px;font-weight:560;text-decoration:none;display:inline-flex}.link .i{width:14px;height:14px}@media (hover:hover){.link:hover{text-underline-offset:3px;text-decoration:underline 1px}}.is-disabled{color:var(--sb-fg-faint);cursor:not-allowed;text-decoration:none}.soon{letter-spacing:.01em;background:var(--sb-neutral-soft);color:var(--sb-neutral-fg);vertical-align:1px;border-radius:99px;margin-inline-start:6px;padding:1px 6px;font-size:11px;font-weight:560;display:inline-block}.nav{z-index:50;height:var(--nav-h);position:fixed;inset:0 0 auto}.nav:before{content:"";background:color-mix(in oklch, var(--sb-canvas) 78%, transparent);backdrop-filter:blur(16px)saturate(160%);box-shadow:0 1px 0 var(--sb-hairline);opacity:0;transition:opacity .2s;position:absolute;inset:0}html.scrolled .nav:before{opacity:1}@media (prefers-reduced-transparency:reduce){.nav:before{background:var(--sb-canvas);backdrop-filter:none}}.nav-in{view-transition-name:site-nav;height:100%;padding-inline:var(--nav-gutter);align-items:center;gap:8px;display:flex;position:relative}.brand{height:40px;color:var(--sb-fg);letter-spacing:-.02em;border-radius:8px;align-items:center;gap:10px;padding-inline-end:6px;font-size:18px;font-weight:650;line-height:1;text-decoration:none;display:inline-flex}.brand .mark{view-transition-name:brand-mark;place-items:center;width:26px;height:26px;display:grid}.brand .mark svg{width:26px;height:26px}.brand .word{view-transition-name:brand-word}.mark-sprout{color:var(--sb-brand-fg)}.nav-links{view-transition-name:nav-links;align-items:center;gap:2px;margin-inline-start:18px;display:flex}.nav-links a{height:36px;color:var(--sb-fg-muted);transition:color var(--d-hover-out) ease, background-color var(--d-hover-out) ease;border-radius:8px;align-items:center;padding:0 11px;font-size:14.5px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.nav-links a[aria-current=page]{color:var(--sb-fg)}@media (hover:hover){.nav-links a:hover{color:var(--sb-fg);background:color-mix(in oklch, var(--sb-fg) 6%, transparent);transition-duration:var(--d-hover-in)}}.nav-links .ext:after{content:"↗";color:var(--sb-fg-faint);margin-inline-start:3px;font-size:.85em}.nav .spacer{flex:1}.nav-action{view-transition-name:nav-action;align-items:center;display:flex}.nav-action .btn{height:34px;font-size:14px}.nav-ctl{view-transition-name:nav-ctl;align-items:center;gap:2px;display:flex}.search{background:color-mix(in oklch, var(--sb-surface) 70%, transparent);height:34px;color:var(--sb-fg-faint);font:inherit;cursor:pointer;box-shadow:inset 0 0 0 1px var(--sb-hairline), var(--ring-halo);border:0;border-radius:9px;align-items:center;gap:8px;min-width:150px;padding:0 8px 0 10px;font-size:14px;display:inline-flex}.search kbd{color:var(--sb-fg-faint);box-shadow:inset 0 0 0 1px var(--sb-hairline);border-radius:5px;margin-inline-start:auto;padding:1px 6px;font-size:11px}.burger{display:none}@media (width<=900px){.nav-links,.nav .search,.nav-ctl .gh{display:none}.burger{display:inline-grid}}@media (width<=420px){.nav-action .btn .long{display:none}}.sheet{inset:var(--nav-h) 0 auto 0;z-index:49;padding:8px var(--nav-gutter) 20px;background:var(--sb-canvas);box-shadow:0 1px 0 var(--sb-hairline), 0 24px 48px -24px oklch(0% 0 0/.35);opacity:0;visibility:hidden;transition:opacity .18s var(--ease-out), translate .22s var(--ease-out), visibility 0s linear .22s;overscroll-behavior:contain;position:fixed;translate:0 -8px}.sheet.open{opacity:1;visibility:visible;transition:opacity .18s var(--ease-out), translate var(--spring-bob-ms) var(--spring-bob), visibility 0s;translate:0}.sheet a{border-bottom:1px solid var(--sb-hairline);min-height:48px;color:var(--sb-fg);justify-content:space-between;align-items:center;padding:0 4px;font-size:17px;font-weight:520;text-decoration:none;display:flex}.sheet a:last-child{border-bottom:0}@media (width>=901px){.sheet{display:none}}.h-em{color:var(--sb-fg-muted);font-style:normal}.cmd{background:color-mix(in oklch, var(--sb-code-bg) 92%, transparent);height:46px;box-shadow:inset 0 0 0 1px var(--sb-hairline);font-family:var(--mono);color:var(--sb-fg);border-radius:12px;align-items:center;gap:12px;max-width:100%;margin-top:18px;padding:0 6px 0 16px;font-size:14px;display:inline-flex}.cmd .p{color:var(--sb-fg-faint);user-select:none}.cmd code{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.copy{background:var(--sb-surface);height:32px;color:var(--sb-fg-muted);font:inherit;font-family:var(--font);cursor:pointer;box-shadow:var(--sh-btn), var(--ring-halo);transition:color var(--d-hover-out) ease, scale var(--spring-bob-ms) var(--spring-bob), outline-color .12s ease, --halo-w .26s var(--ease-out);border:0;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:520;display:inline-flex}.copy:active{scale:var(--press-scale);transition:scale var(--d-press) ease-out}.copy .ok{color:var(--sb-brand-fg);display:none}.copy.done .ok{display:block}.copy.done .cp{display:none}@media (hover:hover){.copy:hover{color:var(--sb-fg)}}@media (prefers-reduced-motion:no-preference){html:not(.arrived):not([data-motion=reduce]) .rise{animation:rise .64s var(--ease-out) both;animation-delay:calc(var(--i,0) * 1ms)}}@keyframes rise{0%{opacity:0;translate:0 calc(14px * var(--move));filter:blur(4px)}to{opacity:1;filter:blur();translate:0}}.section{padding:clamp(80px,11vw,140px) 0;position:relative}.section+.section{padding-top:0}.eyebrow{font-family:var(--mono);letter-spacing:.02em;color:var(--sb-fg-faint);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.eyebrow .dot{background:var(--sb-brand-dot);border-radius:50%;width:6px;height:6px}.h2{letter-spacing:-.034em;max-width:18ch;font-size:clamp(32px,4.2vw,54px);font-weight:600;line-height:1.02}.h2 em{color:var(--sb-fg-muted);font-style:normal}.sh{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:clamp(28px,4vw,44px);display:flex}.sh>div{max-width:60ch}.sh .h2{letter-spacing:-.032em;max-width:none;font-size:clamp(30px,3.3vw,44px);line-height:1.06}.sh .h2 em{display:block}.sh p{max-width:54ch;color:var(--sb-fg-muted);margin-top:14px;font-size:16.5px;line-height:1.55}.sh>.link{flex:none;margin-bottom:4px;font-size:14.5px}.sec-head{gap:18px;margin-bottom:clamp(36px,5vw,56px);display:grid}.sec-head .lede{max-width:58ch;color:var(--sb-fg-muted);font-size:18px}.sec-head.split{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:end;gap:40px}@media (width<=860px){.sec-head.split{grid-template-columns:1fr;gap:16px}}.card{border-radius:var(--r-card);background:var(--sb-surface);box-shadow:var(--sh-card);position:relative}.panel{border-radius:var(--r-panel);background:var(--sb-surface);box-shadow:var(--sh-float);position:relative;overflow:hidden}.win{border-radius:var(--r-panel);background:var(--sb-code-bg);box-shadow:var(--sh-float);min-width:0;position:relative;overflow:hidden}.win-bar{border-bottom:1px solid var(--sb-hairline);height:38px;font-family:var(--mono);color:var(--sb-fg-faint);align-items:center;gap:12px;min-width:0;padding:0 12px 0 14px;font-size:12px;display:flex}.win-bar .lights{gap:6px;display:flex}.win-bar .lights i{background:var(--sb-hairline-strong);border-radius:50%;width:10px;height:10px}.win-bar .lights{flex:none}.win-bar .title{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;min-width:0;display:flex;overflow:hidden}.win pre{color:var(--sb-fg);tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:16px 18px 18px;font-size:12.5px;line-height:1.7}.win pre .c{color:var(--sb-fg-faint)}.win pre .k{color:var(--sb-brand-fg)}.win pre .s{color:var(--sb-warn-fg)}.win pre .f{color:var(--sb-info-fg)}.term pre{font-size:12.5px;line-height:1.7}.term .p{color:var(--sb-fg-faint);user-select:none}.term .ok{color:var(--sb-brand-fg)}.term .dim{color:var(--sb-fg-faint)}.term .b{color:var(--sb-fg);font-weight:700}.term .leaf{color:var(--sb-brand-fg);font-weight:700}.term .url{color:var(--sb-fg);text-decoration:underline;text-decoration-color:color-mix(in oklch, var(--sb-brand-fg) 50%, transparent);text-underline-offset:3px}.term .line{min-height:1.7em;display:block}.term .wk{text-indent:0;vertical-align:-.1em;width:2ch;display:inline-grid}.term .wk>*{grid-area:1/1}.term .spin{border:1.5px solid color-mix(in oklch, var(--sb-brand-fg) 28%, transparent);border-top-color:var(--sb-brand-fg);border-radius:50%;width:.8em;height:.8em;margin-top:.05em;animation:.76s linear infinite spin}.term .wk .ok,.term .w-done{display:none}.term .work.done .wk .ok,.term .work.done .w-done{display:inline}.term .work.done .spin,.term .work.done .w-run{display:none}.term .w-run{color:var(--sb-fg-muted)}.term .typed:after{content:"";vertical-align:-.18em;background:var(--sb-brand-fg);opacity:0;width:.55em;height:1.05em;margin-inline-start:2px;display:inline-block}.term.typing .typed:after{opacity:1}@keyframes spin{to{rotate:360deg}}@media (prefers-reduced-motion:reduce){.term .spin{animation-duration:2.4s}}html:not(.no-js) .term[data-play] .line{opacity:0}html:not(.no-js) .term[data-play] .line.on{opacity:1;transition:opacity .16s ease-out}.caret{vertical-align:-2px;background:var(--sb-brand-fg);width:8px;height:1.1em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.caret{animation:none}}.src{color:var(--sb-fg-faint);max-width:72ch;margin-top:14px;font-size:13px;line-height:1.5}.src a{color:var(--sb-fg-muted);text-underline-offset:3px;text-decoration-thickness:1px}.src code{font-size:12px}.deploy{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;gap:20px;display:grid}@media (width<=960px){.deploy{grid-template-columns:1fr}}.steps{border-top:1px solid var(--sb-hairline);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:28px 0 0;padding:0;list-style:none;display:grid}.steps li{padding:20px 20px 0 0}.steps li+li{border-inline-start:1px solid var(--sb-hairline);padding-inline-start:20px}.steps .n{font-family:var(--mono);color:var(--sb-brand-fg);font-size:12px}.steps h3{letter-spacing:-.01em;margin-top:8px;font-size:17px}.steps p{color:var(--sb-fg-muted);margin-top:6px;font-size:14.5px}@media (width<=720px){.steps{grid-template-columns:1fr}.steps li,.steps li+li{border-inline-start:0;border-bottom:1px solid var(--sb-hairline);padding:16px 0}}.bind-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=1040px){.bind-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.bind-grid{grid-template-columns:1fr}}.bind{flex-direction:column;gap:6px;min-width:0;padding:20px 20px 16px;display:flex}.bind h3{letter-spacing:-.012em;font-size:16.5px;line-height:1.3}.bind p{color:var(--sb-fg-muted);font-size:14px;line-height:1.5}.bind code.call{background:var(--sb-well);box-shadow:inset 0 0 0 1px var(--sb-hairline);color:var(--sb-fg-muted);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin-top:auto;padding:7px 10px;font-size:12px;line-height:1.5;display:block}.bind>p{margin-bottom:14px}.also{flex-wrap:wrap;align-items:baseline;gap:10px 14px;margin-top:20px;display:flex}.also .lbl{color:var(--sb-fg-faint);font-size:13.5px}.also ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.also li{height:28px;color:var(--sb-fg-muted);box-shadow:inset 0 0 0 1px var(--sb-hairline);border-radius:99px;align-items:center;padding:0 10px;font-size:13px;display:inline-flex}.plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=860px){.plans{grid-template-columns:1fr}}.plan{flex-direction:column;gap:14px;padding:clamp(24px,3vw,34px);display:flex}.plan.raised{box-shadow:var(--sh-float)}.plan.raised:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(120% 70% at 100% 0%, color-mix(in oklch, var(--sb-brand) 12%, transparent), transparent 60%);position:absolute;inset:0}.plan-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.plan h3{letter-spacing:-.025em;font-size:24px}.badge{white-space:nowrap;border-radius:99px;align-items:center;gap:6px;height:24px;padding:0 9px;font-size:12.5px;font-weight:560;display:inline-flex}.badge.green{background:var(--sb-brand-soft);color:var(--sb-brand-fg)}.badge.neutral{background:var(--sb-neutral-soft);color:var(--sb-neutral-fg)}.badge.warn{background:var(--sb-warn-soft);color:var(--sb-warn-fg)}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.plan .who{color:var(--sb-fg-muted);font-size:16px}.plan .price{color:var(--sb-fg);border-block:1px solid var(--sb-hairline);padding-block:12px;font-size:15px}.plan .price small{color:var(--sb-fg-faint);font-size:13px;display:block}.ticks{gap:10px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}.ticks li{grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;display:grid}.ticks .i{width:16px;height:16px;color:var(--sb-brand-fg);stroke-width:2px;margin-top:3px}.ticks .x .i{color:var(--sb-fg-faint)}.ticks code{overflow-wrap:anywhere;font-size:13px}.plan .foot{flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:8px;display:flex}.binary{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 28px;margin-top:16px;padding:22px clamp(20px,3vw,30px);display:grid}.binary h3{font-size:18px}.binary p{color:var(--sb-fg-muted);margin-top:4px;font-size:15px}@media (width<=720px){.binary{grid-template-columns:1fr}}.stats{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat{align-content:start;gap:6px;min-width:0;padding:24px 28px 26px 0;display:grid}.stat+.stat{border-inline-start:1px solid var(--sb-hairline);padding-inline-start:28px}.stat .v{letter-spacing:-.045em;font-variant-numeric:tabular-nums;white-space:nowrap;margin-bottom:8px;font-size:clamp(40px,4.4vw,56px);font-weight:600;line-height:1}.stat .v small{letter-spacing:-.005em;color:var(--sb-fg-muted);margin-inline-start:6px;font-size:.36em;font-weight:560}.stat .k{color:var(--sb-fg);font-size:16px;font-weight:540;line-height:1.4}.stat .vs{color:var(--sb-fg-faint);font-size:14px;line-height:1.4}@media (width<=760px){.stats{grid-template-columns:1fr}.stat,.stat+.stat{border-inline-start:0;padding:20px 0}.stat+.stat{border-top:1px solid var(--sb-hairline)}}.compare{margin-top:12px;padding:clamp(20px,2.6vw,28px)}.cmp-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 20px;display:flex}.cmp-head h3{letter-spacing:-.012em;font-size:16.5px}.cmp-head span{color:var(--sb-fg-faint);font-size:13.5px}.cmp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 48px;margin-top:20px;display:grid}@media (width<=760px){.cmp-grid{grid-template-columns:1fr}}.cmp-t{color:var(--sb-fg-muted);margin-bottom:10px;font-size:13.5px;font-weight:540;display:block}.bars{gap:10px;margin-top:6px;display:grid}.bar{grid-template-columns:88px minmax(0,1fr) 72px;align-items:center;gap:12px;font-size:13.5px;display:grid}.bar .t{background:var(--sb-well);height:8px;box-shadow:inset 0 0 0 1px var(--sb-hairline);border-radius:99px;overflow:hidden}.bar .t i{height:100%;width:var(--w);border-radius:inherit;background:var(--sb-fg-faint);transform-origin:0;display:block}.bar.us .t i{background:var(--sb-brand-dot)}.bar .n{text-align:end;font-family:var(--mono);color:var(--sb-fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.bar.us .n,.bar.us .l{color:var(--sb-fg);font-weight:600}.ikada-teaser{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(24px,4vw,56px);padding:clamp(28px,4vw,48px);display:grid}@media (width<=900px){.ikada-teaser{grid-template-columns:1fr}}.ikada-teaser .raft{width:40px;height:40px;color:var(--sb-fg)}.ikada-teaser h2{letter-spacing:-.03em;margin-top:18px;font-size:clamp(28px,3.2vw,40px)}.ikada-teaser p{color:var(--sb-fg-muted);max-width:46ch;margin-top:12px;font-size:17px}.ikada-teaser .foot{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.plate{border-radius:var(--r-panel);background:var(--sb-canvas);box-shadow:inset 0 0 0 1px var(--sb-hairline);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px;display:grid;position:relative}.plate .tile{background:var(--sb-surface);box-shadow:var(--sh-card);border-radius:12px;align-content:start;gap:12px;min-width:0;padding:16px;display:grid}.plate .tl{font-family:var(--mono);color:var(--sb-fg-faint);font-size:11.5px}.sw{background:var(--sb-hover);width:38px;height:22px;box-shadow:inset 0 0 0 1px var(--sb-hairline-strong), var(--ring-halo);cursor:pointer;transition:background-color .16s ease, outline-color .12s ease, --halo-w .26s var(--ease-out);border:0;border-radius:99px;padding:0;position:relative}.sw:after{content:"";width:16px;height:16px;transition:translate var(--spring-bob-ms) var(--spring-bob), scale var(--d-press) ease-out;background:oklch(100% 0 0);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px oklch(0% 0 0/.3)}.sw[aria-checked=true]{background:var(--sb-brand);box-shadow:inset 0 0 0 1px transparent, var(--ring-halo)}.sw[aria-checked=true]:after{translate:16px}.sw:active:after{scale:1.12 .92}.row{justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.seg{background:var(--sb-well);box-shadow:var(--sh-tray);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:inline-grid;position:relative}.seg button{z-index:1;height:28px;color:var(--sb-fg-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:13px;font-weight:540;transition:color .16s;position:relative}.seg button[aria-checked=true]{color:var(--sb-fg)}.seg .ind{width:calc((100% - 6px) / var(--n,3));background:var(--sb-surface);box-shadow:var(--sh-btn);translate:calc(100% * var(--k,0)) 0;transition:translate var(--spring-bob-ms) var(--spring-bob);border-radius:7px;position:absolute;top:3px;bottom:3px;left:3px}[data-theme=light] .seg .ind{background:oklch(100% 0 0)}.toastc{background:var(--sb-raised);box-shadow:var(--sh-float);border-radius:12px;align-items:flex-start;gap:10px;padding:12px;font-size:13.5px;display:flex}.toastc .sprout{width:18px;height:18px;color:var(--sb-brand-fg);flex:none;margin-top:1px}.toastc b{font-weight:600;display:block}.toastc span{color:var(--sb-fg-muted)}.cta-band{background:var(--sb-surface);box-shadow:0 -1px 0 var(--sb-hairline), 0 1px 0 var(--sb-hairline);padding:clamp(72px,9vw,112px) 0;position:relative}.wl{text-align:center;justify-items:center;max-width:520px;margin-inline:auto;display:grid}.wl h2{letter-spacing:-.032em;font-size:clamp(30px,3.4vw,44px);line-height:1.06}.wl p.l{color:var(--sb-fg-muted);max-width:42ch;margin-top:14px;font-size:16.5px}.wl form{gap:10px;width:100%;max-width:460px;margin-top:28px;display:grid}.wl .row2{gap:10px;display:flex}.wl input{background:var(--sb-well);min-width:0;height:44px;color:var(--sb-fg);font:inherit;box-shadow:inset 0 0 0 1px var(--sb-control-edge), var(--ring-halo);transition:box-shadow .2s ease, outline-color .12s ease, --halo-w .26s var(--ease-out);border:0;border-radius:11px;flex:1;padding:0 14px;font-size:16px}.wl input::placeholder{color:var(--sb-fg-faint)}.wl input:focus-visible{outline:2px solid var(--sb-focus);outline-offset:2px;--halo-w:6px}.wl .note{color:var(--sb-fg-faint);min-height:1.5em;font-size:13px}.wl .note[data-state=err]{color:var(--sb-danger-fg)}.wl .done{background:var(--sb-brand-soft);color:var(--sb-fg);text-align:start;border-radius:12px;align-items:flex-start;gap:12px;margin-top:28px;padding:16px;display:none}.wl .done .i{width:20px;height:20px;color:var(--sb-brand-fg);stroke-width:2px;margin-top:1px}.wl.sent form{display:none}.wl.sent .done{animation:rise .52s var(--ease-out) both;display:flex}@media (width<=480px){.wl .row2{flex-direction:column}.wl .row2 .btn{width:100%}}main:has(>.cta-band:last-child)+.foot-site{border-top:0;margin-top:0}.foot-site{border-top:1px solid var(--sb-hairline);margin-top:clamp(40px,6vw,80px);padding:56px 0 40px;position:relative;overflow:hidden}.foot-grid{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px;display:grid}@media (width<=860px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-grid .fb{grid-column:1/-1}}.foot-grid .fb p{color:var(--sb-fg-muted);max-width:34ch;margin-top:12px;font-size:14.5px}.foot-grid h4{color:var(--sb-fg-faint);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:600}.foot-grid ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.foot-grid a,.foot-grid .is-disabled{min-height:32px;color:var(--sb-fg-muted);border-radius:4px;align-items:center;font-size:14.5px;text-decoration:none;display:inline-flex}@media (hover:hover){.foot-grid a:hover{color:var(--sb-fg)}}.foot-grid .is-disabled{color:var(--sb-fg-faint)}.foot-base{border-top:1px solid var(--sb-hairline);color:var(--sb-fg-faint);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:20px;font-size:13.5px;display:flex}.foot-base .dogfood{align-items:center;gap:8px;display:inline-flex}.foot-base .dogfood .dot{background:var(--sb-brand-dot);border-radius:50%;width:7px;height:7px}.wordmark-xl{letter-spacing:-.06em;color:#0000;-webkit-text-stroke:1px var(--sb-hairline-strong);user-select:none;white-space:nowrap;text-align:center;margin-top:40px;font-size:clamp(64px,17vw,236px);font-weight:700;line-height:.8;translate:0 18%}@media (width<=560px){.plate{grid-template-columns:1fr}.plate .tile[style]{grid-column:auto!important}.wl .row2 input{flex:none;width:100%;height:44px}}.term pre{white-space:pre-wrap;overflow-wrap:anywhere}.term .line{text-indent:-2ch;padding-inline-start:2ch}.foot-base .dogfood{align-items:baseline}.foot-base .dogfood .dot{flex:none;translate:0 -1px}.cmd{max-width:min(100%, calc(100vw - 2 * var(--gutter)));min-width:0}.cmd code{flex:auto;min-width:0}html:has(.sheet.open) .nav:before{opacity:1}@media (width<=560px){.bind-grid{gap:8px}.bind{padding:16px 16px 14px}.bind>p{margin-bottom:12px}}.foot-base .dogfood a{color:inherit;text-decoration:underline;text-decoration-color:var(--sb-hairline-strong);text-underline-offset:3px}@media (hover:hover){.foot-base .dogfood a:hover{color:var(--sb-fg)}}.nowrap{white-space:nowrap}@view-transition{navigation:auto}:root{--vt-out:.15s}::view-transition-group(chart-hero){z-index:0}::view-transition-group(page){z-index:1}::view-transition-group(site-nav){z-index:2}::view-transition-group(brand-mark),::view-transition-group(brand-word),::view-transition-group(nav-links),::view-transition-group(nav-action){z-index:3}::view-transition-old(root){opacity:0;animation:none}::view-transition-new(root){animation:none}::view-transition-old(page){animation:vt-out var(--vt-out) var(--ease-out) both}::view-transition-new(page){animation:vt-fade .26s var(--ease-out) 60ms both, vt-rise var(--spring-bob-ms) var(--spring-bob) 60ms both}html:active-view-transition-type(to-sproutboat)::view-transition-old(page){animation-name:vt-out-down}html:active-view-transition-type(to-sproutboat)::view-transition-new(page){animation-name:vt-fade,vt-drop}@keyframes vt-out{to{opacity:0;translate:0 -6px}}@keyframes vt-out-down{to{opacity:0;translate:0 6px}}@keyframes vt-fade{0%{opacity:0}}@keyframes vt-rise{0%{translate:0 16px}}@keyframes vt-drop{0%{translate:0 -12px}}::view-transition-group(site-nav){animation:none}::view-transition-old(site-nav){opacity:0;animation:none}::view-transition-new(site-nav){animation:none}::view-transition-group(chart-hero){animation-duration:0s}::view-transition-old(chart-hero),::view-transition-new(chart-hero){opacity:1;animation:none}::view-transition-new(chart-hero):only-child{animation:vt-fade .28s var(--ease-out) both}::view-transition-old(chart-hero):only-child{animation:vt-gone var(--vt-out) var(--ease-out) both}@keyframes vt-gone{to{opacity:0}}::view-transition-group(brand-mark){animation:none;overflow:visible}::view-transition-old(brand-mark),::view-transition-new(brand-mark){animation-duration:0s}html:active-view-transition-type(to-sproutboat)::view-transition-old(brand-mark),html:active-view-transition-type(to-ikada)::view-transition-old(brand-mark){animation:vt-sink .26s var(--ease-out) both}html:active-view-transition-type(to-sproutboat)::view-transition-new(brand-mark){animation:vt-grow var(--spring-bob-ms) var(--spring-bob) 60ms both}html:active-view-transition-type(to-ikada)::view-transition-new(brand-mark){animation:vt-surface var(--spring-bob-ms) var(--spring-bob) 60ms both}@keyframes vt-sink{0%{clip-path:inset(-4px -4px 0);translate:0}to{clip-path:inset(-4px -4px 26px);opacity:.6;translate:0 26px}}@keyframes vt-surface{0%{clip-path:inset(-4px -4px 18px);translate:0 18px}to{clip-path:inset(-4px);translate:0}}@keyframes vt-grow{0%{clip-path:inset(100% -4px -4px);transform-origin:50% 100%;scale:1 .55}to{clip-path:inset(-4px);transform-origin:50% 100%;scale:1}}::view-transition-group(brand-word),::view-transition-group(nav-links),::view-transition-group(nav-action){animation-duration:.42s;animation-timing-function:var(--ease-out)}::view-transition-old(brand-word),::view-transition-new(brand-word),::view-transition-old(nav-links),::view-transition-new(nav-links),::view-transition-old(nav-action),::view-transition-new(nav-action){width:auto;height:auto}::view-transition-old(nav-action),::view-transition-new(nav-action){inset-inline:auto 0}::view-transition-old(brand-word),::view-transition-old(nav-links),::view-transition-old(nav-action){animation:vt-chip-out .2s var(--ease-out) both}::view-transition-new(brand-word),::view-transition-new(nav-links),::view-transition-new(nav-action){animation:vt-chip-in .26s var(--ease-out) 20ms both}@keyframes vt-chip-out{to{opacity:0;filter:blur(3px);translate:0 -3px}}@keyframes vt-chip-in{0%{opacity:0;filter:blur(3px);translate:0 4px}}::view-transition-group(nav-ctl){z-index:3;animation:none}::view-transition-old(nav-ctl){opacity:0;animation:none}::view-transition-new(nav-ctl){animation:none}html:active-view-transition-type(within)::view-transition-old(brand-mark),html:active-view-transition-type(within)::view-transition-old(brand-word),html:active-view-transition-type(within)::view-transition-old(nav-links),html:active-view-transition-type(within)::view-transition-old(nav-action){opacity:0;animation:none}html:active-view-transition-type(within)::view-transition-new(brand-mark),html:active-view-transition-type(within)::view-transition-new(brand-word),html:active-view-transition-type(within)::view-transition-new(nav-links),html:active-view-transition-type(within)::view-transition-new(nav-action){animation:none}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media (prefers-reduced-motion:no-preference){html.vt-fallback-in main{animation:vt-fade .16s var(--ease-out) both}}
