.home{--sec-y:clamp(88px, 10vw, 144px);--col-gap:clamp(28px, 4vw, 64px);--dim-on-dark:color-mix(in srgb, var(--island-ink) 68%, transparent)}.home .site-footer{margin-top:var(--sec-y)}.display,.h2{font-variation-settings:"opsz" 144;text-wrap:balance;margin:0;font-weight:500}.display{letter-spacing:-.012em;font-size:clamp(40px,4.6vw,68px);line-height:1.04}.h2{letter-spacing:-.015em;font-size:clamp(30px,3vw,44px);line-height:1.1}.h3{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:500;line-height:1.3}.sub{color:var(--ink-2);text-wrap:pretty;max-width:64ch;margin:20px 0 0;font-size:clamp(17px,1.4vw,20px);line-height:1.45}.more{color:var(--accent);text-underline-offset:4px;margin-top:32px;font-weight:500;text-decoration:underline 1px;display:inline-block}.more:hover{text-decoration-thickness:2px}.home main p code{color:var(--ink);background:var(--surface);white-space:nowrap;border-radius:4px;padding:.1em .35em;font-size:.86em}.sec{padding-top:var(--sec-y);scroll-margin-top:var(--header-h)}.sec-anchor{height:0;scroll-margin-top:var(--header-h);display:block}.visual{margin-top:clamp(48px,5vw,72px)}.split{grid-template-columns:minmax(0,1fr);align-items:start;row-gap:40px;display:grid}@media (width>=1101px){.split{column-gap:var(--col-gap);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.hero{isolation:isolate;padding:clamp(32px,6vh,64px) 0;position:relative;overflow:clip}.hero:before{content:"";z-index:-1;pointer-events:none;filter:blur(48px);background:radial-gradient(32% 42% at 22% 38%,#4285f452,#0000 70%),radial-gradient(30% 40% at 80% 30%,#34a8533d,#0000 70%),radial-gradient(26% 36% at 68% 72%,#fbbc0442,#0000 70%),radial-gradient(22% 30% at 34% 74%,#ea433529,#0000 70%);position:absolute;inset:-20% -10% 0;mask-image:linear-gradient(#000 60%,#0000)}[data-theme=dark] .hero:before{opacity:.8}@media (prefers-reduced-motion:no-preference){@keyframes hero-glow{0%,to{transform:translate(0)scale(1)}50%{transform:translate(2%,-3%)scale(1.06)}}.hero:before{animation:18s ease-in-out infinite hero-glow}}.lede .nw{white-space:nowrap}.lede{color:var(--ink-2);text-wrap:pretty;max-width:42ch;margin:0 0 24px;font-size:clamp(18px,1.4vw,20px);line-height:1.45}.hero-h1 .hl{color:var(--accent);font-style:normal}#session{padding-top:clamp(48px,6.5vh,64px)}.ss-head{margin-bottom:clamp(32px,3.4vw,44px)}.ss{--jr-mono:12.5px;--ss-gut:38px;column-gap:var(--col-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;min-width:0;display:grid}.home .ss p code,.home .ss .ss-oc code{font:.93em var(--code);color:inherit;white-space:nowrap;background:0 0;border-radius:0;padding:0}.jr-pre{font:var(--jr-mono)/1.5 var(--code);color:var(--code-foreground);background:0 0;margin:0;padding:0}.jr-pre code{font:inherit}.jr-ps{color:var(--ink-3);font-weight:400}.ss-steps{padding:0 0 0 var(--ss-gut);margin:0;list-style:none;position:relative}.ss-step{padding-bottom:22px;position:relative}.ss-step:nth-child(4){padding-bottom:0}.ss-step:before,.ss-step:after{content:"";background:var(--rule);border-radius:1px;width:2px;position:absolute;top:34px;bottom:-4px;left:13px}.ss-step:after{background:var(--accent);transform-origin:top;transform:scaleY(0)}.ss-step:nth-child(4):before,.ss-step:nth-child(4):after{display:none}.ss-step.is-done:after{transform:scaleY(1)}.ss-auto .ss-step.is-cur:after{animation:ss-fill var(--ss-t,5s) linear both}.ss-paused .ss-step:after{animation-play-state:paused}@keyframes ss-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.ss-hd{width:100%;min-height:44px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0 0 0 44px;display:block;position:relative}.ss-hd:focus{outline:none}.ss-hd:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:10px}.ss-node{z-index:1;border:1.5px solid var(--rule);background:var(--page);width:28px;height:28px;font:500 13px/1 var(--code);color:var(--ink-3);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0}.ss-step.is-done .ss-node{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--page));color:var(--accent)}.ss-step.is-cur .ss-node{border-color:var(--accent);background:var(--accent);color:var(--page);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent)}.ss-step.is-done .ss-node{font-size:0}.ss-step.is-done .ss-node:after{content:"";border:2px solid;border-width:0 2px 2px 0;width:5px;height:10px;margin-top:-2px;transform:rotate(45deg)}.ss-loop{pointer-events:none;margin:0;list-style:none;position:absolute;inset:0}.ss-ret{display:none;position:absolute;left:0;overflow:visible}.ss-js .ss-ret{display:block}.ss-looped .ss-ret-lbl{opacity:1}@media (width>=701px){.ss-js .ss-steps{padding-bottom:34px}}@media (width>=901px){.ss{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch}.ss-js .ss-wins{align-self:stretch;container-type:inline-size}.ss-js .ss-side{flex-direction:column;display:flex}.ss-js .ss-steps{flex-direction:column;flex:1;display:flex}.ss-js .ss-step{flex:1 0 auto;padding-bottom:14px}.ss-js .ss-step:nth-child(4){flex:none}.ss-js .ss-win{height:100%;min-height:max(520px,75cqw)}.ss-js .ss-body{flex:auto;min-height:0}}.ss-ret path{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.ss-ret-base{stroke:var(--ink-3);stroke-dasharray:0 6;opacity:.7}.ss-ret-fill{stroke-dasharray:1;stroke-dashoffset:1px;opacity:0}.ss-ret-head{stroke:var(--ink-3);opacity:.7}.ss-g-b,.ss-g-y{stop-color:var(--accent)}.ss-ret-lbl{color:var(--ink-3);white-space:nowrap;opacity:0;font-size:13px;line-height:18px;transition:color .3s,opacity .4s;display:none;position:absolute;left:0}.ss-js .ss-ret-lbl{display:block}.ss-ret-lbl:before{content:"↺ "}.ss-looped .ss-ret-lbl{color:var(--ink)}.ss-looped .ss-ret-fill{stroke-dashoffset:0;opacity:1}.ss-looped .ss-ret-head{stroke:var(--accent);opacity:1}.ss-nm{letter-spacing:-.01em;color:var(--ink-2);font-size:22px;font-weight:500;line-height:28px;display:block}.ss-oc{color:var(--ink-2);text-wrap:pretty;margin-top:2px;font-size:16px;line-height:1.4;display:block}.ss-step.is-cur .ss-nm,.ss-hd:hover .ss-nm{color:var(--ink)}.ss-step.is-cur .ss-oc{color:var(--ink);font-weight:500}.ss-more{display:grid}.ss-more-in{visibility:hidden;opacity:0;min-width:0;padding:0 4px 4px 44px}.ss-step.is-cur .ss-more-in{visibility:visible;opacity:1}.ss-guide{color:var(--accent);margin-top:10px;font-size:14px;font-weight:500;line-height:20px;text-decoration:none;display:inline-block}.ss-guide:hover{text-underline-offset:3px;text-decoration:underline 1px}.ss-guide:focus{outline:none}.ss-guide:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.ss-wins{min-width:0;display:grid}.ss-win{--ss-px:20px;--jr-mono:14px;--ss-line:var(--rule);--ss-fg:var(--ink);--ss-strong:var(--ink);--ss-soft:var(--ink-2);--ss-dim:var(--ink-3);--ss-ac:var(--accent);--ss-gn:var(--pass);--ss-yl:#f9ab00;min-width:0;color:var(--ss-fg);border:1px solid var(--rule);background:var(--page);border-radius:14px;flex-direction:column;grid-area:1/1;display:flex;overflow:hidden;box-shadow:0 24px 48px -28px #20212447}[data-theme=dark] .ss-win{--ss-yl:#fdd663;background:var(--surface);box-shadow:none}.ss-js .ss-win:not(.is-cur){visibility:hidden}.ss-chat{flex-direction:column;gap:10px;display:flex;-webkit-mask-image:linear-gradient(#0000,#000 18px);mask-image:linear-gradient(#0000,#000 18px)}.ss-chat>*{flex:none}.ss-msg p{color:var(--ss-fg);text-wrap:pretty;margin:0;font-size:15px;line-height:1.45}.ss-you{background:var(--surface);border-radius:16px 16px 4px;align-self:flex-end;max-width:85%;padding:9px 14px 10px}[data-theme=dark] .ss-you{background:var(--island-2)}.ss-ag{display:grid}.ss-ag p,.ss-dots{grid-area:1/1}.ss-dots{align-self:start;align-items:center;gap:4px;height:22px;display:none}.ss-dots i{background:var(--ink-3);border-radius:50%;width:5px;height:5px;animation:1s ease-in-out infinite ss-dot}.ss-dots i:nth-child(2){animation-delay:.15s}.ss-dots i:nth-child(3){animation-delay:.3s}.ss-ag.is-think .ss-dots{display:flex}.ss-skl{color:var(--ss-dim);align-items:center;gap:8px;margin:0;font-size:13px;line-height:18px;display:flex}.ss-skl-i{border:1.5px solid var(--ss-ac);background:color-mix(in srgb, var(--ss-ac) 14%, transparent);border-radius:4px;width:14px;height:14px}.ss-tool{--jr-mono:12.5px;border:1px solid var(--ss-line);border-radius:10px;min-width:0;position:relative;overflow:hidden}.ss-tl{font:11px/16px var(--code);color:var(--ss-dim);padding:8px 14px 0;display:block}.ss-tl:not(.sr-only)+.ss-tb,.ss-tl+.ss-code{padding-top:6px}.ss-tb{padding:10px 14px 12px}.ss-k{color:var(--ss-dim);font-size:12.5px;line-height:16px}.ss-ok{color:var(--ss-gn);align-items:center;gap:5px;font-size:13px;font-weight:500;line-height:18px;display:inline-flex}.ss-ev{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:12px 24px;padding-bottom:12px;display:grid}.ss-ev-l{gap:2px;display:grid}.ss-ev-n{letter-spacing:-.02em;color:var(--ss-gn);font-variant-numeric:tabular-nums;font-size:36px;font-weight:500;line-height:1.05}.ss-ev-of{letter-spacing:0;color:var(--ss-dim);font-size:16px;font-weight:400}.ss-ev-r{justify-items:end;gap:6px;display:grid}.ss-ev-cs{align-items:flex-end;gap:6px;height:50px;margin:0;padding:0;list-style:none;display:flex}.ss-ev-cs li{justify-items:center;gap:3px;display:grid}.ss-ev-c{width:16px;height:calc(var(--h) * 32px);background:var(--ss-gn);transform-origin:bottom;border-radius:3px;display:block}.ss-ev-cs .is-low .ss-ev-c{opacity:.55}.ss-ev-cn{font:11px/14px var(--code);color:var(--ss-dim)}.ss-svc{gap:10px;padding-bottom:12px;display:grid}.ss-tg{border-bottom:1px solid var(--ss-line);flex-wrap:wrap;gap:6px;margin:0;padding:0 0 10px;list-style:none;display:flex}.ss-tg li{border:1px solid var(--ss-line);color:var(--ss-dim);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12.5px;line-height:18px;display:inline-flex}.ss-tg li.is-sel{border-color:var(--ss-ac);color:var(--ss-ac);background:color-mix(in srgb, var(--ss-ac) 10%, transparent);font-weight:500}.ss-svc-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.ss-svc-n{font:500 17px/1.2 var(--code);color:var(--ss-strong)}.ss-svc-st{color:var(--ss-gn);background:color-mix(in srgb, var(--ss-gn) 12%, transparent);border-radius:999px;align-items:center;gap:7px;padding:2px 10px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.ss-svc-st i{width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ss-gn) 25%, transparent);background:currentColor;border-radius:50%}.ss-svc-kv{font:12.5px/18px var(--code);color:var(--ss-fg);margin:0}.ss-svc-kv .ss-k{font-family:var(--sans);margin-right:4px}.ss-svc-kv .ss-k:not(:first-child){margin-left:14px}.ss-svc-tr{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.ss-svc-bar{background:var(--rule);border-radius:5px;height:22px;display:block;overflow:hidden}.ss-svc-f{height:100%;width:calc(var(--t) * 100%);font:500 11.5px/1 var(--code);color:#fff;background:var(--ss-gn);transform-origin:0;align-items:center;padding-left:8px;display:flex}[data-theme=dark] .ss-svc-f{color:#0b2b16}.ss-svc-url{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:12.5px/18px var(--code);color:var(--ss-ac);overflow:hidden}.ss-svc-url:before{content:"↗ "}.ss-ask{border:1px solid var(--rule);height:44px;color:var(--ss-dim);border-radius:22px;flex:none;align-items:center;gap:10px;margin:0 12px 12px;padding:0 8px 0 16px;font-size:14.5px;display:flex}.ss-ask-t{color:var(--ss-fg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ss-ask-t:not(:empty)+.ss-ask-ph{display:none}.ss-ask-ph{flex:1}.ss-ask.is-typing .ss-ask-t:after{content:"";vertical-align:-.15em;background:var(--ss-ac);width:2px;height:1.1em;margin-left:1px;display:inline-block}.ss-ask.is-typing{border-color:var(--ss-ac)}.ss-send{background:var(--rule);border-radius:50%;flex:none;width:28px;height:28px;margin-left:auto;position:relative}.ss-send:after{content:"";border:solid var(--page);border-width:2px 0 0 2px;width:7px;height:7px;margin:-2px 0 0 -4px;position:absolute;top:50%;left:50%;transform:rotate(45deg)}.ss-ask-t:not(:empty)~.ss-send{background:var(--ss-ac)}.ss-sh{font:var(--jr-mono)/1.65 var(--code);color:var(--ss-fg);white-space:pre-wrap;margin:0}.ss-sh .ss-out{color:var(--ss-gn)}.ss-ln{vertical-align:top;text-indent:-2ch;width:100%;padding-left:2ch;display:inline-block;position:relative}.ss-nw{white-space:nowrap}.ss-win .jr-ps{color:var(--ss-gn)}.ss-win .jr-pre{line-height:1.65}.ss-body{padding:14px var(--ss-px);overflow:auto}.ss-body:focus-visible{outline:2px solid var(--ss-ac);outline-offset:-2px}.ss-code{--ss-px:20px;padding:10px 0;overflow-x:auto}.ss-code .jr-pre{white-space:pre}.ss-code code{width:max-content;min-width:100%;display:grid}.ss-code .line{height:1.65em;padding:0 var(--ss-px);display:block;position:relative}.ss-add{background:color-mix(in srgb, var(--ss-gn) 10%, transparent);box-shadow:inset 2px 0 var(--ss-gn);overflow:hidden}.ss-add:before{content:"+";content:"+" / "";color:var(--ss-gn);position:absolute;left:7px}.ss-lt{vertical-align:top;display:inline-block}.ss-term{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ss-soft)}.ss-term .ss-cmd{color:var(--ss-strong);font-weight:500}.ss-term .ss-key{color:var(--ss-gn);font-weight:600}.ss-term .ss-key:before{content:"";background:var(--ss-gn);border-radius:1px;width:2px;position:absolute;top:.25em;bottom:.25em;left:-10px}.ss-term .ss-ok{color:var(--ss-gn)}.ss-term .ss-dim{color:var(--ss-dim)}.ss-rule{vertical-align:top;letter-spacing:.08em;text-transform:uppercase;width:100%;color:var(--ss-dim);margin-top:.55em;font-size:11px;line-height:1.8;display:inline-block}.ss-trace{flex-direction:column;display:flex}.ss-trace>*{flex:none}.ss-th{color:var(--ss-dim);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding-bottom:12px;font-size:12px;display:flex}.ss-tt{font:500 12.5px var(--code);color:var(--ss-strong);margin-right:auto}.ss-axis{border-bottom:1px solid var(--ss-line);height:22px;color:var(--ss-dim);font-variant-numeric:tabular-nums;font-size:11px;position:relative}.ss-axis span{left:calc(var(--x) * 100%);white-space:nowrap;position:absolute;bottom:5px;transform:translate(-50%)}.ss-axis span:first-child{transform:none}.ss-axis span:last-child{transform:translate(-100%)}.ss-wf{margin:0;padding:0;list-style:none}.ss-span{border-bottom:1px solid color-mix(in srgb, var(--rule) 60%, transparent);grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:3px 0 4px;display:grid}.ss-span:last-child{border-bottom:0}.ss-sn{padding-left:calc(var(--d) * 14px);font:12px/16px var(--code);color:var(--ss-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ss-sd{color:var(--ss-dim);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:16px}.ss-track{grid-column:1/-1;height:5px;position:relative}.ss-sb{top:0;bottom:0;left:calc(var(--x) * 100%);width:max(3px, calc(var(--w) * 100%));background:var(--ink-3);border-radius:3px;position:absolute}.k-model .ss-sb{background:var(--ss-ac)}.k-tool .ss-sb{background:var(--ss-yl)}.k-tool .ss-sn{color:var(--ss-strong);font-weight:600}.ss:not(.ss-js) .ss-more-in{visibility:visible;opacity:1}.ss:not(.ss-js) .ss-hd{cursor:default;pointer-events:none}.ss:not(.ss-js) .ss-wins{gap:20px}.ss:not(.ss-js) .ss-win{grid-area:auto}.ss-run .ss-msg:not(.is-in,.is-think),.ss-run .ss-skl:not(.is-in),.ss-run .ss-tool:not(.is-in){opacity:0;transform:translateY(6px)}.ss-run .ss-msg:not(.is-in) p,.ss-run .ss-sh .ss-ln:not(.is-in),.ss-run .ss-code .line:not(.is-in),.ss-run .ss-term>:not(.is-in),.ss-run .ss-th:not(.is-in),.ss-run .ss-span:not(.is-in),.ss-run .ss-add:not(.is-in){opacity:0}.ss-run .ss-card:not(.is-on) .ss-svc-f{transform:scaleX(0)}.ss-run .ss-card:not(.is-on) .ss-ev-c{transform:scaleY(0)}.ss-run .ss-card:not(.is-on) :is(.ss-ok,.ss-svc-st){opacity:0}.ss-run .ss-card:not(.is-on) .ss-tg li.is-sel{border-color:var(--ss-line);color:var(--ss-dim);background:0 0}.ss-run .ss-span:not(.is-in) .ss-sb{transform:scaleX(0)}.ss-add.is-typing .ss-lt{clip-path:inset(0 max(0px, calc(100% - var(--n) * 1ch)) 0 0)}.ss-add.is-typing:after{content:"";top:.2em;bottom:.2em;left:calc(var(--ss-px) + var(--n) * 1ch);background:var(--ss-ac);border-radius:1px;width:2px;position:absolute}@media (prefers-reduced-motion:no-preference){.ss-more-in{transition:opacity .25s,visibility 0s .25s}.ss-step.is-cur .ss-more-in{transition-delay:0s}.ss-node,.ss-nm,.ss-oc{transition:color .2s,background-color .2s,border-color .2s}.ss-step:after,.ss-hd:after{transition:transform .35s ease-out}.ss-looped .ss-ret-fill{transition:stroke-dashoffset 1.3s cubic-bezier(.4,0,.2,1) .1s}.ss-looped .ss-ret-head{transition:stroke .2s 1.3s,opacity .2s 1.3s}.ss-msg,.ss-skl,.ss-tool{transition:opacity .3s,transform .35s cubic-bezier(.2,.7,.3,1)}.ss-msg p{transition:opacity .2s}.ss-svc-f{transition:transform .8s cubic-bezier(.2,.7,.3,1)}.ss-ev-c{transition:transform .45s calc(var(--k) * 60ms) cubic-bezier(.2, .7, .3, 1)}.ss-ok,.ss-svc-st{transition:opacity .3s .6s}.ss-tg li{transition:border-color .3s .2s,color .3s .2s,background-color .3s .2s}.ss-sh .ss-ln,.ss-code .line,.ss-term>*,.ss-th,.ss-span{transition:opacity .15s}.ss-code .ss-add{transition:opacity .14s}.ss-sb{transform-origin:0;transition:transform .5s cubic-bezier(.2,.7,.3,1)}.ss-add.is-rest:after{animation:1.1s step-end infinite ss-blink}.ss-snap,.ss-snap *{transition:none!important}}@keyframes ss-dot{0%,80%,to{opacity:.25}40%{opacity:1}}@keyframes ss-blink{50%{opacity:0}}.ss-oc2{display:none}@media (width<=900px){.ss{grid-template-columns:minmax(0,1fr);row-gap:28px}.ss-side{display:contents}}@media (width<=700px){.ss{--jr-mono:12px;--ss-gut:0px;row-gap:20px}.ss-steps{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ss-loop{grid-area:2/1/auto/-1;justify-content:flex-end;margin-top:4px;display:flex;position:static}.ss-ret{display:none!important}.ss-ret-lbl{background:0 0;padding:0;display:block;position:static;transform:none}.ss-step{display:contents}.ss-step:before,.ss-step:after{display:none}.ss-hd{text-align:center;grid-row:1;min-height:56px;padding:0 2px}.ss-node{margin:0 auto 6px;position:relative}.ss-nm{font-size:14px;line-height:20px}.ss-oc{display:none}.ss-hd:before,.ss-hd:after{content:"";background:var(--rule);border-radius:1px;height:2px;position:absolute;top:13px;left:calc(50% + 20px);right:calc(20px - 50%)}.ss-hd:after{background:var(--accent);transform-origin:0;transform:scaleX(0)}.ss-step:nth-child(4) .ss-hd:before,.ss-step:nth-child(4) .ss-hd:after{display:none}.ss-step.is-done .ss-hd:after{transform:scaleX(1)}.ss-auto .ss-step.is-cur .ss-hd:after{animation:ss-fillx var(--ss-t,5s) linear both}.ss-paused .ss-step .ss-hd:after{animation-play-state:paused}.ss-more{grid-area:3/1/auto/-1}.ss-more-in{padding:0}.ss-oc2{color:var(--ink);margin-top:18px;font-size:18px;font-weight:500;line-height:1.35;display:block}.ss-guide{margin-top:8px}.ss-win{--ss-px:14px}.ss-tool{--jr-mono:12px}.ss-tb{padding-inline:12px}.ss-msg p{font-size:14.5px}.ss-chat{max-height:560px}.ss:not(.ss-js) .ss-steps,.ss:not(.ss-js) .ss-step,.ss:not(.ss-js) .ss-step:before,.ss:not(.ss-js) .ss-step:after{display:block}.ss:not(.ss-js) .ss-step:nth-child(4):before,.ss:not(.ss-js) .ss-step:nth-child(4):after,.ss:not(.ss-js) .ss-loop,.ss:not(.ss-js) .ss-hd:before,.ss:not(.ss-js) .ss-hd:after{display:none}.ss:not(.ss-js) .ss-hd{text-align:left;padding-left:44px}.ss:not(.ss-js) .ss-node{margin:0;position:absolute}.ss:not(.ss-js) .ss-oc{display:block}.ss:not(.ss-js) .ss-oc2{display:none}.ss:not(.ss-js) .ss-more-in{padding-left:44px}}@media (width<=420px){.ss-ev{grid-template-columns:minmax(0,1fr)}.ss-ev-r{justify-items:start}}@keyframes ss-fillx{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.start-wrap{max-width:640px}.start{border:1px solid var(--rule);font:500 17px/1.45 var(--sans);color:var(--ink);text-wrap:balance;border-radius:10px;margin:0;padding:14px 18px 15px}.start-works{font:400 17px/1 var(--sans);color:var(--ink-3);justify-content:center;align-items:center;gap:16px;margin:22px 0 0;display:flex}.start-works img{width:22px;height:22px;display:block}[data-theme=dark] .start-mono{filter:invert()}.start-prompt a{color:inherit;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:3px;text-decoration-thickness:1px}.start-prompt a:hover{text-decoration-color:var(--accent)}.start-tail{white-space:nowrap}.start-row{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:14px;display:flex}.start-copy{border:1px solid var(--ink);background:var(--ink);height:40px;color:var(--page);font:500 15px var(--sans);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 18px;display:inline-flex}.start-copy:hover{background:color-mix(in srgb, var(--ink) 85%, var(--page))}.start-docs{border:1px solid var(--rule);height:40px;font:500 15px var(--sans);color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding:0 18px;text-decoration:none;transition:border-color .2s;display:inline-flex}.start-docs:hover{border-color:var(--ink-3)}.start-docs:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fw-cards.docs-cards{margin-top:clamp(32px,3.4vw,44px)}.start-docs span{margin-left:6px}@media (width>=1101px){.hero .start-wrap{max-width:none}}.rl-side .sub{text-wrap:pretty;max-width:46ch}.rl-uses{gap:14px;max-width:44ch;margin:36px 0 0;padding:0;list-style:none;display:grid}.rl-uses li{color:var(--ink-2);text-wrap:pretty;font-size:17px;line-height:1.45}.rl-uses b{color:var(--ink);font-weight:500}.rl-side .more{margin-top:36px}@media (width>=1101px){#rules .split{grid-template-columns:repeat(2,minmax(0,1fr))}.rl-side{align-self:center}}.rl{--rl-gn:var(--pass);--rl-ac:var(--accent);--jr-mono:12.5px;border:1px solid var(--rule);background:var(--page);border-radius:14px;align-self:center;min-width:0;max-width:640px;margin:0;position:relative;box-shadow:0 24px 48px -28px #20212447}.rl-stage{grid-template-columns:auto minmax(28px,1fr) auto minmax(28px,1fr) auto;align-items:stretch;padding:30px 26px;display:grid}.rl-src{grid-template-rows:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.rl-src li{align-items:center;padding-block:10px;display:grid}.rl-chip{border:1px solid var(--rule);background:var(--surface-2);border-radius:10px;gap:4px;padding:13px 16px;transition:border-color .3s,box-shadow .3s,background-color .3s;display:grid;position:relative}.rl-chip b{color:var(--ink);font-size:15px;font-weight:500;line-height:1.2}.rl-chip code,.home .rl-chip code{font:11.5px/1.3 var(--code);color:var(--ink-3);background:0 0;border-radius:0;padding:0}.rl-nw{white-space:nowrap}.rl-chip.is-on{border-color:var(--rl-ac);background:color-mix(in srgb, var(--rl-ac) 8%, var(--page));box-shadow:0 0 0 3px color-mix(in srgb, var(--rl-ac) 14%, transparent)}.rl-zone{min-width:0;position:relative}.rl-zone svg{fill:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.rl-zone path{stroke:color-mix(in srgb, var(--ink-3) 55%, var(--rule));stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:stroke .35s}.rl-zone path.on{stroke:var(--rl-ac)}.rl-v{display:none}.rl-dot{background:var(--rl-ac);opacity:0;pointer-events:none;width:9px;height:9px;box-shadow:0 0 0 4px color-mix(in srgb, var(--rl-ac) 22%, transparent), 0 0 14px 2px color-mix(in srgb, var(--rl-ac) 55%, transparent);border-radius:50%;margin:-4.5px 0 0 -4.5px;position:absolute;top:50%;left:0}.rl-zout .rl-dot{background:var(--rl-gn);box-shadow:0 0 0 4px color-mix(in srgb, var(--rl-gn) 22%, transparent), 0 0 14px 2px color-mix(in srgb, var(--rl-gn) 50%, transparent)}.rl-cpw{z-index:2;align-self:center;position:relative}.rl-cp{width:184px;font:inherit;color:inherit;text-align:center;cursor:pointer;border:1px solid color-mix(in srgb, var(--rl-ac) 40%, var(--rule));background:var(--page);box-shadow:0 0 0 1px color-mix(in srgb, var(--rl-ac) 10%, transparent), 0 14px 30px -18px color-mix(in srgb, var(--rl-ac) 45%, transparent);border-radius:14px;justify-items:center;gap:3px;padding:24px 14px 18px;transition:border-color .3s,box-shadow .4s;display:grid;position:relative}.rl-cp:hover,.rl-cp.lit,.rl.is-open .rl-cp{border-color:var(--rl-ac);box-shadow:0 0 0 4px color-mix(in srgb, var(--rl-ac) 14%, transparent), 0 18px 38px -16px color-mix(in srgb, var(--rl-ac) 60%, transparent)}.rl-cp:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.rl-shield{background:color-mix(in srgb, var(--rl-ac) 12%, transparent);width:40px;height:40px;color:var(--rl-ac);border-radius:12px;place-items:center;margin-bottom:8px;display:grid}.rl-shield svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.rl-cp-k{color:var(--ink-3);font-size:12px;line-height:16px}.rl-cp-n{color:var(--ink);font-size:18px;font-weight:500;line-height:1.25}.rl-cp-s,.home .rl-cp-s{font:12px var(--code);color:var(--ink-3);background:0 0;padding:0}.rl-st{border-top:1px solid var(--rule);width:100%;margin-top:12px;padding-top:12px;font-size:12.5px;line-height:18px;display:grid}.rl-st>span{grid-area:1/1;transition:opacity .3s}.rl-wait{color:var(--ink-3);opacity:0}.rl-ok{color:var(--rl-gn);font-weight:500}.rl[data-st=idle] .rl-ok{opacity:0}.rl[data-st=idle] .rl-wait{opacity:1}.rl-info{border:1px solid var(--rule);width:17px;height:17px;color:var(--ink-3);border-radius:50%;place-items:center;font:italic 500 11px/1 Georgia,serif;display:grid;position:absolute;top:9px;right:9px}.rl-cp:hover .rl-info,.rl.is-open .rl-info{color:var(--rl-ac);border-color:var(--rl-ac)}.rl-cp:before,.rl-cp:after,.rl-dest:before{content:"";border:1.5px solid var(--ink-3);background:var(--page);border-radius:50%;width:7px;height:7px;margin-top:-3.5px;position:absolute;top:50%}.rl-cp:before,.rl-dest:before{left:-4px}.rl-cp:after{right:-4px}.rl-pop{border:1px solid var(--rule);background:var(--page);z-index:5;text-align:left;opacity:0;visibility:hidden;border-radius:12px;width:300px;max-width:calc(100vw - 56px);padding:10px 0 12px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,-4px);box-shadow:0 22px 44px -18px #20212466}.rl-pop-f{border-bottom:1px solid var(--rule);font:12px var(--code);color:var(--ink-3);padding:0 14px 8px;display:block}.rl-pop .rl-pre{white-space:pre;padding:10px 14px 0;overflow-x:auto}.rl-js .rl-cpw:focus-within .rl-pop,.rl-js.is-open .rl-pop{opacity:1;visibility:visible;transform:translate(-50%)}@media (hover:hover){.rl-js .rl-cpw:hover .rl-pop{opacity:1;visibility:visible;transform:translate(-50%)}}.rl-snip{border:1px solid var(--rule);background:var(--surface-2);border-radius:12px;margin:0 26px 22px;padding:10px 0 12px}.rl-snip .rl-pre{padding:10px 14px 0;overflow-x:auto}.rl-dest{border:1px solid var(--rule);background:var(--surface-2);border-radius:12px;align-self:center;gap:6px;padding:15px 16px;transition:border-color .3s,background-color .3s,box-shadow .4s;display:grid;position:relative}.rl-dest-t{font:11.5px/1.2 var(--code);color:var(--ink-3);white-space:nowrap}.rl-dest-n{color:var(--ink);white-space:nowrap;align-items:center;gap:7px;font-size:16px;font-weight:500;line-height:1.2;display:flex}.rl-dest-n svg{fill:none;width:20px;height:20px;stroke:var(--rl-gn);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s cubic-bezier(.2,.7,.3,1)}.rl-dest.hit{border-color:var(--rl-gn);background:color-mix(in srgb, var(--rl-gn) 9%, var(--page));box-shadow:0 0 0 4px color-mix(in srgb, var(--rl-gn) 14%, transparent)}.rl-dest.hit svg{transform:translateY(-2px)scale(1.12)}[data-theme=dark] .rl{box-shadow:none;background:var(--surface)}[data-theme=dark] .rl-cp,[data-theme=dark] .rl-pop,[data-theme=dark] .rl-cp:before,[data-theme=dark] .rl-cp:after,[data-theme=dark] .rl-dest:before{background:var(--surface)}[data-theme=dark] .rl-pop{box-shadow:0 22px 44px -18px #000000b3}[data-theme=dark] .rl-chip,[data-theme=dark] .rl-dest{background:var(--surface-2)}[data-theme=dark] .rl-chip.is-on{background:color-mix(in srgb, var(--rl-ac) 12%, var(--surface-2))}@media (width<=560px){.rl-uses{margin-top:28px}.rl-uses li{font-size:16px}.rl-side .more{margin-top:28px}.rl-stage{grid-template-columns:minmax(0,1fr);padding:18px 14px 20px}.rl-src{grid-template-rows:none;grid-template-columns:repeat(3,minmax(0,1fr))}.rl-src li{padding:0 4px}.rl-chip{text-align:center;padding:9px 8px}.rl-chip code,.home .rl-chip code{font-size:10.5px}.rl-zin{height:64px}.rl-zout{height:40px}.rl-h{display:none}.rl-v{display:block}.rl-cpw,.rl-dest{justify-self:center}.rl-dest{padding-inline:18px}.rl-dot{margin-top:-4.5px}.rl-pop{max-width:calc(100vw - 48px)}.rl-snip{margin-inline:14px}.rl-cp:before,.rl-dest:before{margin:0 0 0 -3.5px;top:-4px;left:50%}.rl-cp:after{margin:0 0 0 -3.5px;inset:auto auto -4px 50%}}@media (prefers-reduced-motion:no-preference){.rl-anim .rl-zone svg{transition:clip-path 1s cubic-bezier(.4,0,.2,1) .15s}.rl-anim:not(.is-in) .rl-h{clip-path:inset(-6px 100% -6px 0)}.rl-anim:not(.is-in) .rl-v{clip-path:inset(0 -6px 100%)}.rl-anim:not(.is-in) .rl-chip,.rl-anim:not(.is-in) .rl-cp,.rl-anim:not(.is-in) .rl-dest{opacity:0}.rl-anim .rl-chip,.rl-anim .rl-cp,.rl-anim .rl-dest{transition-property:border-color,box-shadow,background-color,opacity;transition-duration:.3s,.4s,.3s,.6s}.rl-anim.is-in .rl-cp{transition-delay:0s,0s,0s,.3s}.rl-anim.is-in .rl-dest{transition-delay:0s,0s,0s,.6s}.rl-cp.hit{animation:.9s ease-out rl-ring}.rl-cp.hit .rl-shield{animation:.5s cubic-bezier(.2,.7,.3,1) rl-pop}}@keyframes rl-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--rl-ac) 30%, transparent)}to{box-shadow:0 0 0 14px #0000}}@keyframes rl-pop{40%{transform:scale(1.12)}}.fw{--wire:40px;margin:clamp(40px,4vw,52px) 0 0}.fw-cards{grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=900px){.fw-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}.fw-c{border:1px solid var(--rule);background:var(--page);border-radius:14px;flex-direction:column;align-items:flex-start;min-width:0;padding:22px 20px 20px;transition:border-color .25s,box-shadow .3s,transform .25s cubic-bezier(.2,.7,.3,1);display:flex;position:relative;box-shadow:0 18px 36px -30px #2021244d}.fw-c-own{box-shadow:none;border-style:dashed}.fw-c:hover{border-color:var(--accent);box-shadow:0 22px 44px -26px color-mix(in srgb, var(--accent) 55%, transparent);transform:translateY(-3px)}.fw-c-own:hover{box-shadow:none}.fw-mark{border:1px solid var(--rule);background:var(--surface-2);width:48px;height:48px;color:var(--ink-2);border-radius:12px;flex:none;place-items:center;margin-bottom:16px;transition:border-color .25s,color .25s;display:grid;overflow:hidden}.fw-mark img{border-radius:6px;width:32px;height:32px;display:block}.fw-mark svg{width:22px;height:22px}.fw-c-own .fw-mark{background:0 0;border-style:dashed}.fw-c:hover .fw-mark{border-color:color-mix(in srgb, var(--accent) 55%, var(--rule))}.fw-c-own:hover .fw-mark{color:var(--accent)}.fw-n{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:500;line-height:1.3}.fw-n a{color:var(--ink);text-decoration:none}.fw-n a:after{content:"";border-radius:14px;position:absolute;inset:0}.fw-c:hover .fw-n a{color:var(--accent)}.fw-n a:focus-visible{outline:none}.fw-n a:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.fw-d{color:var(--ink-2);text-wrap:pretty;margin:6px 0 0;font-size:15.5px;line-height:1.45}[data-theme=dark] .fw-c{background:var(--surface);box-shadow:none}[data-theme=dark] .fw-mark{background:var(--surface-2)}[data-theme=dark] .fw-c-own{background:0 0}.fw-wire,.fw-trunk{background:color-mix(in srgb, var(--accent) 40%, var(--rule));z-index:0;width:2px;display:block;position:absolute;overflow:hidden}.fw-wire{height:calc(var(--wire) + 6px);margin-left:-1px;top:100%;left:50%}.fw-wire i,.fw-trunk i{background:linear-gradient(transparent, var(--accent));opacity:0;border-radius:2px;width:2px;height:16px;position:absolute;top:0;left:0}.fw-trunk{height:26px;margin:0 auto;display:none;position:relative}.fw-slab{z-index:1;margin-top:var(--wire);border:1px solid color-mix(in srgb, var(--accent) 40%, var(--rule));background:var(--surface-2);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 14px;padding:24px;display:flex;position:relative;box-shadow:0 18px 36px -30px #2021244d}.fw-sl{border-right:1px solid var(--rule);letter-spacing:-.01em;color:var(--ink);white-space:nowrap;margin-right:10px;padding-right:24px;font-size:17px;font-weight:500}.fw-cmds{flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:0;list-style:none;display:flex}.fw-pill{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--rule));background:color-mix(in srgb, var(--accent) 8%, var(--page));font:15px/20px var(--code);color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:7px 14px;display:inline-flex}.fw-pill code{font:inherit;color:inherit;background:0 0;padding:0}.fw-arrow{width:24px;height:12px;color:var(--ink-3);flex:none}.fw-run{font-family:var(--sans);border-color:color-mix(in srgb, var(--pass) 50%, var(--rule));background:color-mix(in srgb, var(--pass) 8%, var(--page));font-size:15.5px}.fw-dot{background:var(--pass);border-radius:50%;width:7px;height:7px}[data-theme=dark] .fw-slab{background:var(--surface-2);box-shadow:none}[data-theme=dark] .fw-pill{background:color-mix(in srgb, var(--accent) 12%, var(--surface-2))}[data-theme=dark] .fw-run{background:color-mix(in srgb, var(--pass) 10%, var(--surface-2))}@media (width<=899px){.fw{--wire:0px}.fw-wire{display:none}.fw-trunk{display:block}.fw-slab{margin-top:0}.fw-c{flex-direction:row;align-items:center;gap:16px;padding:16px 18px}.docs-cards .fw-c{flex-direction:column;align-items:flex-start;gap:0}.fw-mark{margin:0}.fw-tx{min-width:0}.fw-d{margin-top:2px;font-size:15px}.fw-slab{justify-content:flex-start;padding:18px}.fw-sl{border:0;border-bottom:1px solid var(--rule);width:100%;margin:0;padding:0 0 12px}}@media (width<=480px){.fw-pill{padding:5px 10px;font-size:13px}.fw-cmds{gap:8px}}@media (width<=380px){.fw-pill{padding:5px 8px;font-size:12px}.fw-cmds{gap:6px}.fw-run{font-size:13px}}.fw-anim .fw-wire,.fw-anim .fw-trunk{background:var(--rule)}.fw-anim .fw-slab{border-color:var(--rule)}.fw-anim .fw-pill{border-color:var(--rule);background:var(--page)}.fw-anim .fw-run{background:var(--page)}.fw-anim .fw-dot{background:var(--ink-3)}[data-theme=dark] .fw-anim .fw-pill,[data-theme=dark] .fw-anim .fw-run{background:var(--surface-2)}.fw-anim .fw-c.on{border-color:color-mix(in srgb, var(--accent) 75%, var(--rule))}@media (prefers-reduced-motion:no-preference){@keyframes fw-drop{0%{opacity:1;transform:translateY(-16px)}to{transform:translateY(calc(var(--wire) + 8px));opacity:1}}@keyframes fw-drop-n{0%{opacity:1;transform:translateY(-16px)}to{opacity:1;transform:translateY(32px)}}@keyframes fw-glow{0%,to{border-color:var(--rule);box-shadow:0 0 #0000}25%,70%{border-color:color-mix(in srgb, var(--accent) 55%, var(--rule));box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 12%, transparent), 0 14px 40px -18px color-mix(in srgb, var(--accent) 55%, transparent)}}@keyframes fw-lit{0%{border-color:var(--rule);background:var(--page)}20%,65%{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, var(--page))}to{border-color:var(--rule);background:var(--page)}}@keyframes fw-lit-g{0%{border-color:var(--rule)}20%,60%{border-color:var(--pass);background:color-mix(in srgb, var(--pass) 16%, var(--page))}to{border-color:var(--rule)}}@keyframes fw-dot{0%,to{background:var(--ink-3)}20%,60%{background:var(--pass)}}.fw-anim .fw-c.on{box-shadow:0 20px 40px -26px color-mix(in srgb, var(--accent) 50%, transparent)}.fw.go .fw-c.on .fw-wire i{animation:.6s cubic-bezier(.4,0,.6,1) .1s both fw-drop}.fw.go .fw-trunk i{animation:.6s cubic-bezier(.4,0,.6,1) .1s both fw-drop-n}.fw.go .fw-slab{animation:1.5s ease-in-out .65s both fw-glow}.fw.go .fw-pill{animation:fw-lit .7s ease-in-out calc(.7s + var(--p,3) * .22s) both}.fw.go .fw-run{animation:fw-lit-g .7s ease-in-out calc(1.9s + var(--t,0) * .18s) both}.fw.go .fw-run .fw-dot{animation:fw-dot .7s ease-in-out calc(1.9s + var(--t,0) * .18s) both}}@media (width<=640px){.start{padding:13px 16px 14px;font-size:16px}.start-copy,.start-docs{height:44px}.hero{padding-top:28px}.display{font-size:clamp(32px,9vw,40px);line-height:1.06}.lede{font-size:18px}}@media (prefers-reduced-motion:no-preference){@keyframes hero-rise{0%{opacity:0;transform:translateY(14px)}}.hero-h1,.hero .lede,.hero .start-wrap{animation:.7s cubic-bezier(.2,.7,.2,1) both hero-rise}.hero .lede{animation-delay:.12s}.hero .start-wrap{animation-delay:.24s}}.hero-center{text-align:center;flex-direction:column;align-items:center;padding-top:clamp(8px,3vh,40px);display:flex;position:relative}.hero-center .hero-h1{letter-spacing:-.02em;font-size:clamp(40px,5.6vw,84px);line-height:1.02}.hero-center .hero-h1>*{display:block}.hero-center .lede{max-width:34ch;margin:28px auto 32px;font-size:clamp(18px,1.6vw,22px)}.hero-center .start-wrap{width:min(560px,100%);max-width:none}.hero-center .start{text-align:center;background:color-mix(in srgb, var(--page) 80%, transparent);backdrop-filter:blur(8px)}.hero-center .start-row{justify-content:center}.hero-center>:not(.ht-field){z-index:1;position:relative}.ht-field{pointer-events:none;position:absolute;inset:0}.ht{left:calc(50% + var(--x));top:var(--y);flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;translate:-50%}.ht-tile{width:var(--s);height:var(--s);rotate:var(--rot);background:var(--page);color:var(--c);border:1px solid var(--rule);border-radius:22%;place-items:center;display:grid;box-shadow:0 16px 32px -16px #20212440}[data-theme=dark] .ht-tile{background:var(--surface);box-shadow:0 16px 32px -12px #000000b3}.ht-tile img{width:58%;height:auto}.ht-tile svg{width:56%;height:auto}.ht-acli{--x:max(-500px, -36vw);--y:30px;--s:96px;--rot:-7deg;--d:.5s;--fx:-80px;--fy:-40px}.ht-gcp{--x:min(500px, 36vw);--y:250px;--s:96px;--rot:6deg;--d:.65s;--fx:80px;--fy:40px}@media (prefers-reduced-motion:no-preference){@keyframes ht-in{0%{opacity:0;translate:calc(-50% + var(--fx)) var(--fy);scale:.6}}.ht{animation:ht-in .9s cubic-bezier(.2, .8, .2, 1) var(--d) both}}@media (width<=900px){.ht-field{justify-content:center;gap:14px;margin-bottom:28px;display:flex;position:static}.ht{--s:60px;position:static;translate:none}@media (prefers-reduced-motion:no-preference){@keyframes ht-in-n{0%{opacity:0;translate:0 12px}}.ht{animation:ht-in-n .6s cubic-bezier(.2, .8, .2, 1) var(--d) both}}}
