.sw-landing{isolation:isolate;min-height:100vh;color:var(--sw-fg);background-color:var(--sw-surface-0);background-image:radial-gradient(60rem 32rem at 78% -6rem, color-mix(in srgb, var(--sw-accent) 12%, transparent), transparent 70%), linear-gradient(90deg, color-mix(in srgb, var(--sw-border) 24%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--sw-border) 24%, transparent) 1px, transparent 1px);background-position:0 0,top,top;background-repeat:no-repeat,repeat,repeat;background-size:auto,4rem 4rem,4rem 4rem;flex-direction:column;display:flex;overflow-x:clip}.sw-landing :is(a,button):focus-visible{outline:2px solid var(--sw-accent);outline-offset:2px}.sw-landing main{width:min(80rem, calc(100% - 2 * var(--sw-page-inset)));flex:1;margin:0 auto;padding:clamp(2rem,6vh,3.5rem) 0 clamp(2.5rem,7vh,4rem)}.sw-lp-eyebrow{color:var(--sw-accent-strong);font:650 var(--sw-type-xs) / 1.4 var(--sw-font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1rem}.sw-lp-actions{flex-wrap:wrap;gap:.75rem;display:flex}.sw-lp-button{border:1px solid var(--sw-accent-strong);background:var(--sw-accent-strong);min-height:2.75rem;color:var(--sw-accent-ink);font:650 .95rem / 1 var(--sw-font-body);transition:background var(--sw-demo-transition), border-color var(--sw-demo-transition);border-radius:.6rem;align-items:center;padding:0 1.35rem;text-decoration:none;display:inline-flex}.sw-lp-button:hover{background:color-mix(in srgb, var(--sw-accent-strong) 86%, var(--sw-fg-strong))}.sw-lp-button--ghost{border-color:var(--sw-border-strong);background:color-mix(in srgb, var(--sw-surface-1) 70%, transparent);color:var(--sw-fg-strong)}.sw-lp-button--ghost:hover{border-color:var(--sw-accent);background:var(--sw-surface-2)}.sw-lp-more{color:var(--sw-accent-strong);margin-top:1.5rem;font-weight:600;text-decoration:none;display:inline-block}.sw-lp-more:hover{text-underline-offset:.25em;text-decoration:underline}.sw-lp-section{padding-top:clamp(4.5rem,10vh,7rem)}.sw-lp-head{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;column-gap:clamp(2rem,6vw,6rem);margin-bottom:2.25rem;display:grid}.sw-lp-head .sw-lp-eyebrow{grid-column:1/-1}.sw-lp-head h2{color:var(--sw-fg-strong);font:650 clamp(1.8rem, 3.2vw, 2.75rem) / 1.12 var(--sw-font-display);letter-spacing:-.03em;margin:0}.sw-lp-head>p:not(.sw-lp-eyebrow){color:var(--sw-fg-muted);margin:0;font-size:1.02rem;line-height:1.65}.sw-lp-head a{color:var(--sw-accent-strong);font-weight:600}.sw-lp-note{color:var(--sw-fg-muted)}.sw-lp-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.sw-lp-hero h1{max-width:15ch;color:var(--sw-fg-strong);font:700 clamp(2.5rem, 4.6vw, 4rem) / 1.03 var(--sw-font-display);letter-spacing:-.045em;margin:0}.sw-lp-hero__lede{max-width:34rem;color:var(--sw-fg-muted);margin:1.4rem 0 2rem;font-size:1.12rem;line-height:1.65}.sw-lp-hero__install{max-width:24rem;margin-top:1.25rem}.sw-hero-scene{margin:0}.sw-hero-scene__frame{border:1px solid var(--sw-border-strong);background:radial-gradient(30rem 18rem at 70% 0, color-mix(in srgb, var(--sw-accent) 10%, transparent), transparent 70%), color-mix(in srgb, var(--sw-surface-1) 94%, transparent);box-shadow:var(--sw-shadow);border-radius:1rem;position:relative;overflow:hidden}.sw-hero-scene__captions{border-bottom:1px solid var(--sw-border);counter-reset:act;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.sw-hero-scene__captions li{min-width:0;color:var(--sw-fg-dim);font:550 var(--sw-type-sm) / 1.4 var(--sw-font-body);counter-increment:act;transition:color .4s;position:relative}.sw-hero-scene__captions li+li{border-left:1px solid var(--sw-border)}.sw-hero-scene__captions button:before{color:var(--sw-fg-dim);content:"0" counter(act);font:650 var(--sw-type-xs) / 1 var(--sw-font-mono);margin-bottom:.2rem;display:block}.sw-hero-scene__captions li:after{background:var(--sw-accent-strong);content:"";transform-origin:0;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.sw-hero-scene__captions li[data-current=true]{color:var(--sw-fg-strong)}.sw-hero-scene__captions li[data-current=true] button:before{color:var(--sw-accent-strong)}.sw-hero-scene__captions li[data-current=true]:after{transform:scaleX(1)}.sw-hero-scene__captions button,.sw-arch__steps button{width:100%;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-content:start;padding:.75rem 1rem .85rem;display:block}.sw-hero-scene__captions button:hover,.sw-arch__steps button:hover{background:color-mix(in srgb, var(--sw-accent) 7%, transparent);color:var(--sw-fg-strong)}.sw-hero-scene__captions button:focus-visible,.sw-arch__steps button:focus-visible{outline:2px solid var(--sw-accent-strong);outline-offset:-4px}.sw-hero-scene .hs{width:100%;height:auto;padding:.5rem .5rem .25rem;display:block}.sw-hero-scene figcaption{color:var(--sw-fg-dim);font-size:var(--sw-type-xs);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-top:.75rem;display:flex}.sw-hero-scene__replay{border:1px solid var(--sw-border-strong);color:var(--sw-fg-muted);font:600 var(--sw-type-xs) / 1 var(--sw-font-body);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem .75rem}.sw-hero-scene__replay:hover{border-color:var(--sw-accent);color:var(--sw-accent-strong)}.hs text{font-family:var(--sw-font-body);font-variant-numeric:tabular-nums}.hs-sheet,.hs-pointer,.hs-viewport,.hs-address,.hs-key g{transform-box:view-box;transform-origin:0 0}.hs-card{fill:var(--sw-surface-2);stroke:var(--sw-border-strong)}.hs-ref,.hs-input{fill:var(--sw-surface-0);stroke:var(--sw-border)}.hs .hs-ref-text{fill:var(--sw-fg);font:600 12px var(--sw-font-mono)}.hs .hs-fx{fill:var(--sw-accent-strong);font:italic 650 14px var(--sw-font-mono)}.hs .hs-formula{fill:var(--sw-fg-strong);font:500 14px var(--sw-font-mono)}.hs-caret{fill:var(--sw-accent-strong);opacity:0}.sw-hero-scene[data-editing=true] .hs-caret{animation:.8s step-end infinite hs-blink}@keyframes hs-blink{0%{opacity:1}50%{opacity:0}}.hs-headrow{fill:color-mix(in srgb, var(--sw-fg) 5%, transparent)}.hs-rule{stroke:var(--sw-border)}.hs .hs-letter,.hs .hs-rownum{fill:var(--sw-fg-dim);font:600 11px var(--sw-font-mono)}.hs .hs-letter[data-active],.hs .hs-rownum[data-active]{fill:var(--sw-accent-strong)}.hs .hs-cell{fill:var(--sw-fg);font-size:14px}.hs [data-head] .hs-cell{fill:var(--sw-fg-strong);font-weight:650}.hs-b3{fill:#0000}.hs-b3[data-state=editing]{fill:color-mix(in srgb, var(--sw-accent) 12%, var(--sw-surface-2))}.hs .hs-cell[data-part=b3],.hs [data-total] .hs-cell{fill:var(--sw-fg-strong);font-weight:650}.hs-pulse{fill:color-mix(in srgb, var(--sw-accent) 30%, transparent);opacity:0}.hs-path{fill:none;stroke:var(--sw-demo-warn);stroke-dasharray:1;stroke-dashoffset:0;stroke-linejoin:round;stroke-width:2px}.hs-selection{fill:none;stroke:var(--sw-accent-strong);stroke-width:2.5px}.hs-badge rect{fill:var(--sw-surface-0);stroke:color-mix(in srgb, var(--sw-accent) 45%, var(--sw-border))}.hs-badge circle{fill:var(--sw-accent-strong)}.hs .hs-badge text{fill:var(--sw-fg-strong);font:600 12px var(--sw-font-body)}.hs-pointer path{fill:var(--sw-fg-strong);stroke:var(--sw-surface-0);stroke-linejoin:round;stroke-width:1.5px}.hs-ripple{fill:none;stroke:var(--sw-accent-strong);stroke-width:2px}.hs-tile{fill:color-mix(in srgb, var(--sw-fg) 7%, transparent)}.hs-lit{fill:var(--sw-accent);opacity:0}.hs-lit[data-fetched]{fill:var(--sw-fg-strong)}.hs-key rect{fill:var(--sw-surface-0);stroke:var(--sw-border-strong);filter:drop-shadow(0 3px 0 var(--sw-border-strong))}.hs .hs-key text{fill:var(--sw-fg-strong);font:650 12px var(--sw-font-mono)}.hs-callout path{fill:none;stroke:var(--sw-accent);stroke-width:1.5px}.hs-callout rect{fill:color-mix(in srgb, var(--sw-accent) 14%, var(--sw-surface-0));stroke:color-mix(in srgb, var(--sw-accent) 50%, transparent)}.hs .hs-callout text{fill:var(--sw-accent-strong);font:600 12px var(--sw-font-body)}.hs-viewport-frame{fill:color-mix(in srgb, var(--sw-accent) 10%, transparent);stroke:var(--sw-accent-strong);stroke-width:2px}.hs-viewport-flash{fill:none;stroke:var(--sw-demo-warn);stroke-width:3px;opacity:0}.hs-address rect{fill:var(--sw-surface-0);stroke:var(--sw-accent)}.hs .hs-address text{fill:var(--sw-accent-strong);font:650 11px var(--sw-font-mono)}.hs-hud rect{fill:color-mix(in srgb, var(--sw-surface-0) 85%, transparent);stroke:var(--sw-border)}.hs .hs-hud text{fill:var(--sw-fg-muted);font:600 12px var(--sw-font-mono)}.hs .hs-hud .hs-hud-rows,.hs .hs-hud .hs-hud-resident{fill:var(--sw-fg-strong)}.hs-memory-card{fill:var(--sw-surface-2);stroke:var(--sw-border-strong)}.hs .hs-memory-label{fill:var(--sw-fg-muted);font-size:13px}.hs .hs-memory-value{fill:var(--sw-fg-strong);font:700 15px var(--sw-font-display)}.hs .hs-memory-value[data-kind=resident]{fill:var(--sw-accent-strong)}.hs-memory-track{fill:color-mix(in srgb, var(--sw-fg) 8%, transparent)}.hs-memory-bar[data-kind=all]{fill:color-mix(in srgb, var(--sw-fg) 30%, transparent)}.hs-memory-bar[data-kind=resident]{fill:var(--sw-accent-strong)}.hs .hs-memory-note{fill:var(--sw-fg-dim);font-size:12px}.hs-pointer,.hs-field,.hs-memory,.hs-key,.hs-callout{opacity:0}.sw-lp-facts{border:1px solid var(--sw-border);background:color-mix(in srgb, var(--sw-surface-1) 80%, transparent);border-radius:.9rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-top:clamp(2.5rem,6vh,4rem);padding:1.25rem 1.5rem;display:flex}.sw-lp-facts dl{flex:40rem;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 1.5rem;margin:0;display:grid}.sw-lp-facts dl>div{min-width:0}.sw-lp-facts dt{color:var(--sw-fg-strong);font:700 clamp(1.25rem, 2vw, 1.6rem) / 1.1 var(--sw-font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.sw-lp-facts dd{color:var(--sw-fg-muted);font-size:var(--sw-type-sm);margin:.3rem 0 0;line-height:1.4}.sw-lp-facts>a{color:var(--sw-accent-strong);white-space:nowrap;font-weight:600;text-decoration:none}.sw-arch{border:1px solid var(--sw-border-strong);background:radial-gradient(36rem 16rem at 50% 0, color-mix(in srgb, var(--sw-accent) 7%, transparent), transparent 70%), color-mix(in srgb, var(--sw-surface-1) 92%, transparent);border-radius:1rem;overflow:hidden}.sw-arch .as{width:100%;height:auto;padding:1.25rem 1.5rem .75rem;display:block}.as text{font-family:var(--sw-font-body);font-variant-numeric:tabular-nums}.as-box{fill:var(--sw-surface-2);stroke:var(--sw-border-strong)}.as-layer[data-layer=app] .as-box{stroke-dasharray:6 5}.as-glow{fill:none;stroke:var(--sw-accent);stroke-width:2px;opacity:0;filter:drop-shadow(0 0 10px color-mix(in srgb, var(--sw-accent) 55%, transparent))}.as .as-owner{fill:var(--sw-fg-dim);font:650 11px var(--sw-font-mono);letter-spacing:.08em;text-transform:uppercase}.as-layer:not([data-layer=app]) .as-owner{fill:var(--sw-accent-strong)}.as .as-title{fill:var(--sw-fg-strong);font:650 17px var(--sw-font-display)}.as .as-line{fill:var(--sw-fg-muted);font-size:13px}.as-divider{stroke:var(--sw-border)}.as-cell{fill:color-mix(in srgb, var(--sw-fg) 7%, transparent);transition:fill .25s}.as-cell[data-filled=true]{fill:color-mix(in srgb, var(--sw-accent) 34%, transparent)}.as-cell[data-painted=true]{fill:var(--sw-accent-strong);transition:none}.as-column{fill:color-mix(in srgb, var(--sw-accent) 55%, transparent)}.as .as-caption{fill:var(--sw-fg-dim);font:600 11px var(--sw-font-mono)}.as .as-log{fill:var(--sw-accent-strong);font:600 11.5px var(--sw-font-mono)}.as .as-log-detail{fill:var(--sw-fg-muted);font-weight:400}.sw-arch[data-landing-running=false] .as-lanes line{animation-play-state:paused}.as-lanes line{stroke:var(--sw-border-strong);stroke-dasharray:4 5;stroke-width:1.5px}.as-lanes line[data-flowing=true]{stroke:var(--sw-accent);animation:.5s linear infinite as-flow}@keyframes as-flow{to{stroke-dashoffset:-9px}}.as .as-lanes text{fill:var(--sw-fg-dim);font:600 11px var(--sw-font-mono);text-anchor:middle}.as-server>rect{fill:var(--sw-surface-2);stroke:var(--sw-border-strong);stroke-dasharray:6 5}.as .as-server>text{fill:var(--sw-fg);text-anchor:middle;font-size:13px;font-weight:600}.as-version rect{fill:var(--sw-accent-strong)}.as .as-version text{fill:var(--sw-accent-ink);font:700 11px var(--sw-font-mono);text-anchor:middle}.as-packet,.as-edit{transform-box:view-box;transform-origin:0 0}.as-version{transform-box:fill-box;transform-origin:50%}.as-packet rect{fill:var(--sw-accent-strong);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--sw-accent) 60%, transparent))}.as .as-packet text{fill:var(--sw-accent-ink);font:700 11px var(--sw-font-mono)}.as-edit{fill:var(--sw-accent-strong)}.as-packet,.as-edit{opacity:0}.sw-arch__steps{border-top:1px solid var(--sw-border);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.sw-arch__steps li{min-width:0;color:var(--sw-fg-dim);font-size:var(--sw-type-sm);line-height:1.5;transition:color .3s;position:relative}.sw-arch__steps button{padding:1rem 1.1rem 1.15rem}.sw-arch__steps li+li{border-left:1px solid var(--sw-border)}.sw-arch__steps li span{color:var(--sw-fg-dim);font:650 var(--sw-type-xs) / 1 var(--sw-font-mono);margin-bottom:.35rem;display:block}.sw-arch__steps li:before{background:var(--sw-accent-strong);content:"";transform-origin:0;height:2px;position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.sw-arch__steps li[data-current=true]{color:var(--sw-fg-strong)}.sw-arch__steps li[data-current=true] span{color:var(--sw-accent-strong)}.sw-arch__steps li[data-current=true]:before{transform:scaleX(1)}.sw-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.sw-features>li{min-width:0;display:flex}.sw-features a{border:1px solid var(--sw-border);background:color-mix(in srgb, var(--sw-surface-1) 92%, transparent);width:100%;color:var(--sw-fg);transition:border-color var(--sw-demo-transition), translate var(--sw-demo-transition);border-radius:.9rem;grid-template-rows:auto auto 1fr auto;text-decoration:none;display:grid;overflow:clip}.sw-features a:hover{border-color:var(--sw-accent);translate:0 -3px}.sw-features__art{border-bottom:1px solid var(--sw-border);background:color-mix(in srgb, var(--sw-surface-0) 70%, transparent);height:9.5rem;padding:.75rem 1rem;display:block}.sw-features__art .fg{width:100%;height:100%;display:block}.sw-features strong{color:var(--sw-fg-strong);font:650 1.15rem / 1.25 var(--sw-font-display);padding:1.15rem 1.25rem 0}.sw-features__summary{color:var(--sw-fg-muted);font-size:var(--sw-type-sm);padding:.5rem 1.25rem 0;line-height:1.55}.sw-features__cta{color:var(--sw-accent-strong);font-size:var(--sw-type-sm);padding:1rem 1.25rem 1.15rem;font-weight:650}.fg text{font:600 10px var(--sw-font-mono)}.fg .fg-result{fill:var(--sw-fg);font-size:8px}.fg-snapshot-lines{fill:none;stroke:var(--sw-accent-strong);stroke-width:2px;stroke-linecap:round}.fg-tile{fill:color-mix(in srgb, var(--sw-fg) 8%, transparent)}.fg-tile[data-path]{fill:color-mix(in srgb, var(--sw-accent) 30%, transparent)}.fg-viewport{fill:color-mix(in srgb, var(--sw-accent) 12%, transparent);stroke:var(--sw-accent-strong);stroke-width:2px;transform:translate(192px)}.fg-anchor{fill:color-mix(in srgb, var(--sw-accent) 18%, transparent);stroke:var(--sw-accent)}.fg .fg-code{fill:var(--sw-accent-strong);font-size:11px}.fg-spill-row rect{fill:color-mix(in srgb, var(--sw-fg) 10%, transparent)}.fg-spill-edge{fill:none;stroke:var(--sw-accent);stroke-dasharray:4 3}.fg .fg-tag{fill:var(--sw-fg-dim);text-anchor:middle}.fg-cell{fill:color-mix(in srgb, var(--sw-fg) 6%, transparent);stroke:var(--sw-border)}.fg-edit[data-client=a]{fill:color-mix(in srgb, var(--sw-accent) 34%, transparent)}.fg-edit[data-client=b]{fill:color-mix(in srgb, var(--sw-demo-danger) 34%, transparent)}.fg-cursor[data-client=a]{fill:var(--sw-accent-strong)}.fg-cursor[data-client=b]{fill:var(--sw-demo-danger)}.fg-version rect{fill:var(--sw-surface-2);stroke:var(--sw-border-strong)}.fg .fg-version text{fill:var(--sw-fg);text-anchor:middle}.fg-snapshot{fill:color-mix(in srgb, var(--sw-accent) 24%, transparent);stroke:var(--sw-accent)}.fg-commit rect{fill:color-mix(in srgb, var(--sw-demo-warn) 28%, transparent);stroke:var(--sw-demo-warn)}.fg-reload path{fill:none;stroke:var(--sw-fg-muted);stroke-linecap:round;stroke-width:2.5px}.fg-reload .fg-reload-head{fill:var(--sw-fg-muted);stroke:none}.fg-reload{transform-box:view-box;transform-origin:202px 54px}.fg-file path:first-child{fill:var(--sw-surface-2);stroke:var(--sw-fg-muted);stroke-width:1.5px}.fg .fg-file text{fill:var(--sw-fg);text-anchor:middle}.fg-arrow{fill:none;stroke:var(--sw-accent);stroke-linecap:round;stroke-width:2px}.fg-mini-grid rect{fill:color-mix(in srgb, var(--sw-accent) 22%, transparent)}.fg-check{fill:none;stroke:var(--sw-accent-strong);stroke-dasharray:30;stroke-dashoffset:0;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.fg-host-row{transform:translateY(var(--from))}.fg-id{fill:color-mix(in srgb, var(--sw-accent) 18%, transparent);stroke:var(--sw-accent)}.fg .fg-host-row text{fill:var(--sw-accent-strong);text-anchor:middle}.fg-bar{fill:color-mix(in srgb, var(--sw-fg) 16%, transparent)}.sw-features :where(.fg-tile[data-path],.fg-viewport,.fg-spill-row,.fg-spill-edge,.fg-cursor,.fg-edit,.fg-version,.fg-commit,.fg-reload,.fg-file,.fg-mini-grid,.fg-check,.fg-host-row){animation:none}.sw-features .fg-tile[data-path]{animation-name:fg-lit;animation-delay:calc(var(--i) * .5s)}.sw-features .fg-viewport{animation-name:fg-sweep}.sw-features .fg-spill-row{animation-name:fg-appear;animation-delay:calc(.6s + var(--i) * .3s)}.sw-features .fg-spill-edge{animation-name:fg-edge}.sw-features .fg-cursor[data-client=a]{animation-name:fg-cursor-a}.sw-features .fg-cursor[data-client=b]{animation-name:fg-cursor-b}.sw-features .fg-edit[data-client=a]{animation-name:fg-edit-a}.sw-features .fg-edit[data-client=b]{animation-name:fg-edit-b}.sw-features .fg-version{animation-name:fg-appear;animation-delay:calc(1.2s + var(--i) * .9s)}.sw-features .fg-commit{animation-name:fg-commit;animation-delay:calc(var(--i) * .35s)}.sw-features .fg-reload{animation-name:fg-reload}.sw-features .fg-file[data-side=in]{animation-name:fg-file-in}.sw-features .fg-mini-grid{animation-name:fg-grid-flash}.sw-features .fg-file[data-side=out]{animation-name:fg-file-out}.sw-features .fg-check{animation-name:fg-check}.sw-features .fg-host-row{animation-name:fg-sort}@keyframes fg-lit{0%{fill:color-mix(in srgb, var(--sw-fg) 8%, transparent)}4%{fill:var(--sw-accent)}20%{fill:color-mix(in srgb, var(--sw-accent) 30%, transparent)}60%,to{fill:color-mix(in srgb, var(--sw-fg) 8%, transparent)}}@keyframes fg-sweep{0%,6%{transform:none}80%,to{transform:translate(192px)}}@keyframes fg-appear{0%{opacity:.3}8%,80%{opacity:1}92%,to{opacity:.3}}@keyframes fg-edge{0%,40%{opacity:0}48%,85%{opacity:1}95%,to{opacity:0}}@keyframes fg-cursor-a{0%{transform:translate(-50px,30px)}20%,to{transform:none}}@keyframes fg-cursor-b{0%,30%{transform:translate(10px,-50px)}50%,to{transform:none}}@keyframes fg-edit-a{0%,20%{opacity:0}25%,90%{opacity:1}to{opacity:0}}@keyframes fg-edit-b{0%,50%{opacity:0}55%,90%{opacity:1}to{opacity:0}}@keyframes fg-commit{0%{opacity:.25;transform:none}8%,55%{opacity:1;transform:none}70%{opacity:.25;transform:none}to{opacity:.25;transform:none}}@keyframes fg-reload{0%,72%{transform:none}92%,to{transform:rotate(360deg)}}@keyframes fg-file-in{0%{opacity:.45;transform:translate(-4px)}10%,85%{opacity:1;transform:none}to{opacity:.45}}@keyframes fg-grid-flash{0%,22%{opacity:.4}30%,85%{opacity:1}to{opacity:.4}}@keyframes fg-file-out{0%,40%{opacity:0;transform:translate(-12px)}50%,85%{opacity:1;transform:none}to{opacity:0}}@keyframes fg-check{0%,55%{stroke-dashoffset:30px}65%,to{stroke-dashoffset:0}}@keyframes fg-sort{0%,18%{transform:translateY(var(--from))}36%,70%{transform:translateY(var(--to))}88%,to{transform:translateY(var(--from))}}.sw-lp-split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(2rem,5vw,4.5rem);display:grid}.sw-lp-split .sw-lp-head{margin:0;display:block}.sw-lp-split .sw-lp-head h2{margin-bottom:1rem}.sw-code-tabs{border:1px solid var(--sw-border-strong);background:color-mix(in srgb, var(--sw-surface-1) 94%, transparent);border-radius:1rem;min-width:0;overflow:hidden}.sw-code-tabs__list{border-bottom:1px solid var(--sw-border);gap:.25rem;padding:.5rem;display:flex}.sw-code-tabs__list button{color:var(--sw-fg-muted);font:600 var(--sw-type-sm) / 1 var(--sw-font-body);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.5rem;padding:.5rem .9rem}.sw-code-tabs__list button:hover{color:var(--sw-fg-strong)}.sw-code-tabs__list button[aria-selected=true]{border-color:var(--sw-border-strong);background:var(--sw-surface-2);color:var(--sw-fg-strong)}.sw-code-tabs__panel{min-height:25rem}.sw-code-tabs__panel .expressive-code .frame,.sw-code-tabs__panel .expressive-code .frame pre{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0}.sw-code-tabs__install{border-top:1px solid var(--sw-border);padding:.75rem}.sw-lp-engines__choices{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr);gap:1.25rem;display:grid}.sw-lp-engines__choices article{border:1px solid var(--sw-border);background:color-mix(in srgb, var(--sw-surface-1) 92%, transparent);border-radius:.9rem;align-content:start;gap:.6rem;padding:1.5rem;display:grid}.sw-lp-engines__choices article[data-variant=full]{border-color:color-mix(in srgb, var(--sw-accent) 45%, var(--sw-border));background:radial-gradient(20rem 10rem at 100% 0, color-mix(in srgb, var(--sw-accent) 10%, transparent), transparent 70%), color-mix(in srgb, var(--sw-surface-1) 92%, transparent)}.sw-lp-engines__choices article>span{color:var(--sw-accent-strong);font:650 var(--sw-type-xs) / 1 var(--sw-font-mono);letter-spacing:.08em;text-transform:uppercase}.sw-lp-engines__choices article strong{color:var(--sw-fg-strong);font:650 1.25rem / 1.2 var(--sw-font-mono)}.sw-lp-engines__choices article p{color:var(--sw-fg-muted);margin:0;line-height:1.6}.sw-lp-engines__choices article code{border:1px solid var(--sw-border);background:var(--sw-surface-0);color:var(--sw-fg);font-size:var(--sw-type-sm);border-radius:.45rem;justify-self:start;margin-top:.4rem;padding:.45rem .65rem}.sw-lp-engines__choices ul{align-content:start;gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.sw-lp-engines__choices li{color:var(--sw-fg);padding-left:1.4rem;line-height:1.5;position:relative}.sw-lp-engines__choices li:before{background:var(--sw-accent);content:"";border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.55em;left:.2rem}.sw-lp-engines__choices li:last-child:before{content:none}.sw-lp-engines__choices li a{color:var(--sw-accent-strong);font-weight:600}.sw-bench{border:1px solid var(--sw-border-strong);background:color-mix(in srgb, var(--sw-surface-1) 92%, transparent);border-radius:1rem;overflow:hidden}.sw-bench__bars{margin:0;padding:.5rem 1.5rem;list-style:none;display:grid}.sw-bench__bars li{grid-template-columns:7rem minmax(0,1fr) 5.5rem;align-items:center;gap:.4rem 1.25rem;padding:1rem 0;display:grid}.sw-bench__bars li+li{border-top:1px solid var(--sw-border)}.sw-bench__size{color:var(--sw-fg-muted);font:600 var(--sw-type-sm) / 1 var(--sw-font-mono)}.sw-bench__track{background:color-mix(in srgb, var(--sw-fg) 8%, transparent);border-radius:999px;height:.6rem;overflow:hidden}.sw-bench__track i{border-radius:inherit;background:linear-gradient(90deg, var(--sw-accent), var(--sw-accent-strong));height:100%;animation:1.4s cubic-bezier(.2,.7,.2,1) both sw-bench-grow;display:block}.sw-bench__bars strong{color:var(--sw-accent-strong);font:700 1.35rem / 1 var(--sw-font-display);font-variant-numeric:tabular-nums;text-align:right}.sw-bench__detail{color:var(--sw-fg-dim);font-size:var(--sw-type-xs);grid-column:2/-1}.sw-bench__scale{color:var(--sw-fg-dim);font-size:var(--sw-type-xs);margin:0;padding:0 1.5rem .9rem}.sw-bench__capture{border-top:1px solid var(--sw-border);background:color-mix(in srgb, var(--sw-surface-0) 60%, transparent);grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:1rem 1.5rem;display:grid}.sw-bench__capture dt{color:var(--sw-fg-dim);font:650 var(--sw-type-xs) / 1.3 var(--sw-font-mono);letter-spacing:.06em;text-transform:uppercase}.sw-bench__capture dd{color:var(--sw-fg);font-size:var(--sw-type-sm);margin:.25rem 0 0}@keyframes sw-bench-grow{0%{width:0}}.sw-lp-close{border:1px solid color-mix(in srgb, var(--sw-accent) 40%, var(--sw-border));background:radial-gradient(40rem 16rem at 0 0, color-mix(in srgb, var(--sw-accent) 14%, transparent), transparent 70%), color-mix(in srgb, var(--sw-surface-1) 94%, transparent);border-radius:1.25rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 3rem;margin-top:clamp(4.5rem,10vh,7rem);padding:clamp(2rem,4vw,3rem);display:flex}.sw-lp-close h2{color:var(--sw-fg-strong);font:700 clamp(1.8rem, 3.4vw, 2.6rem) / 1.1 var(--sw-font-display);letter-spacing:-.03em;margin:0}.sw-lp-close p{max-width:38rem;color:var(--sw-fg-muted);margin:.75rem 0 0;line-height:1.6}.sw-landing-footer{border-top:1px solid var(--sw-border);background:radial-gradient(40rem 14rem at 15% 0, color-mix(in srgb, var(--sw-accent) 7%, transparent), transparent 70%), color-mix(in srgb, var(--sw-surface-1) 82%, transparent);color:var(--sw-fg-dim);position:relative}.sw-landing-footer:before{background:linear-gradient(90deg, transparent, var(--sw-accent), transparent);content:"";width:min(36rem,70%);height:1px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.sw-landing-footer__inner{width:min(80rem, calc(100% - 2 * var(--sw-page-inset)));grid-template-columns:minmax(14rem,1fr) minmax(0,2fr);gap:2.5rem clamp(2rem,6vw,5rem);margin-inline:auto;padding-block:2.75rem 3rem;display:grid}.sw-landing-footer__brand strong{color:var(--sw-fg-strong);font:700 1.15rem / 1 var(--sw-font-display);letter-spacing:-.02em;display:block}.sw-landing-footer__brand p{max-width:22rem;color:var(--sw-fg-muted);font-size:var(--sw-type-sm);margin:.75rem 0 1rem;line-height:1.55}.sw-landing-footer__meta{border:1px solid var(--sw-border);color:var(--sw-fg-dim);font:600 var(--sw-type-xs) / 1 var(--sw-font-mono);border-radius:999px;padding:.3rem .65rem;display:inline-block}.sw-landing-footer__nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;display:grid}.sw-landing-footer__nav div{flex-direction:column;gap:.55rem;min-width:0;display:flex}.sw-landing-footer__title{color:var(--sw-fg-strong);font:650 var(--sw-type-xs) / 1.2 var(--sw-font-body);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .3rem}.sw-landing-footer__nav a{width:fit-content;color:var(--sw-fg-muted);font:500 var(--sw-type-sm) / 1.4 var(--sw-font-body);text-decoration:none}.sw-landing-footer__nav a:hover{color:var(--sw-accent-strong)}@media (width<=52rem){.sw-landing-footer__inner{grid-template-columns:1fr}}@media (width<=34rem){.sw-landing-footer__nav{grid-template-columns:repeat(2,minmax(0,1fr))}}.sw-landing__glow{z-index:-1;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.sw-reel{border:1px solid var(--sw-border-strong);background:color-mix(in srgb, var(--sw-surface-1) 92%, transparent);border-radius:1rem;overflow:hidden}.sw-reel__tabs{border-bottom:1px solid var(--sw-border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.sw-reel__tabs button{min-height:3.25rem;color:var(--sw-fg-muted);font:650 var(--sw-type-sm) / 1.2 var(--sw-font-body);text-align:left;cursor:pointer;background:0 0;border:0;padding:.9rem 1.25rem;position:relative}.sw-reel__tabs button+button{border-left:1px solid var(--sw-border)}.sw-reel__tabs button:hover{color:var(--sw-fg-strong)}.sw-reel__tabs button[aria-selected=true]{background:color-mix(in srgb, var(--sw-accent) 7%, transparent);color:var(--sw-fg-strong)}.sw-reel__tabs button[aria-selected=true]:after{background:color-mix(in srgb, var(--sw-accent) 25%, transparent);content:"";height:2px;position:absolute;bottom:0;left:0;right:0}.sw-reel__timer{z-index:1;background:var(--sw-accent-strong);transform-origin:0;width:100%;height:2px;animation:sr-timer var(--sr-loop,10s) linear 1 both;position:absolute;bottom:0;left:0}@keyframes sr-timer{0%{transform:scaleX(0)}}.sw-reel__panel{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:center;display:grid}.sw-reel__copy{padding:clamp(1.5rem,3vw,2.5rem)}.sw-reel__copy h3{color:var(--sw-fg-strong);font:650 clamp(1.35rem, 2.2vw, 1.75rem) / 1.2 var(--sw-font-display);letter-spacing:-.02em;margin:0}.sw-reel__copy p{color:var(--sw-fg-muted);margin:.9rem 0 1.25rem;line-height:1.6}.sw-reel__copy a{color:var(--sw-accent-strong);font-weight:650;text-decoration:none}.sw-reel__stage{border-left:1px solid var(--sw-border);background:color-mix(in srgb, var(--sw-surface-0) 55%, transparent);min-width:0;padding:1rem 1.25rem}.sr{width:100%;height:auto;display:block}.sr text{fill:var(--sw-fg);font:500 13px var(--sw-font-body);font-variant-numeric:tabular-nums}.sr text[data-num]{text-anchor:end}.sr text[data-center]{text-anchor:middle}.sr-panel{fill:var(--sw-surface-2);stroke:var(--sw-border-strong)}.sr .sr-head{fill:var(--sw-fg-dim);font-size:12px;font-weight:650}.sr-rule{stroke:var(--sw-border)}.sr .sr-formula{fill:var(--sw-accent-strong);font:600 13px var(--sw-font-mono)}.sr .sr-tag{fill:var(--sw-accent-strong);font:600 12px var(--sw-font-mono)}.sr .sr-count{fill:var(--sw-fg-strong);font:700 16px var(--sw-font-display)}.sr .sr-note,.sr .sr-sub,.sr .sr-block-sub{fill:var(--sw-fg-dim);font-size:12px}.sr .sr-name{fill:var(--sw-fg-strong);font:650 15px var(--sw-font-display)}.sr .sr-ver,.sr .sr-big{fill:var(--sw-accent-strong);font:700 13px var(--sw-font-mono)}.sr .sr-big{font-size:26px}.sr-spill-edge{fill:color-mix(in srgb, var(--sw-accent) 8%, transparent);stroke:var(--sw-accent);stroke-dasharray:5 4}.sr-flash{fill:var(--sw-demo-warn);opacity:0}.sr-before{opacity:0}.sr .sr-after{fill:var(--sw-fg-strong);font-weight:700}.sr-link{fill:none;stroke:var(--sw-demo-warn);stroke-dasharray:4 4;stroke-width:1.5px}.sr-mini{fill:color-mix(in srgb, var(--sw-fg) 7%, transparent);stroke:var(--sw-border)}.sr-mini[data-flash],.sr-ana-flash rect{fill:color-mix(in srgb, var(--sw-accent) 34%, transparent)}.sr-dot{fill:var(--sw-accent)}.sr-wire{stroke:var(--sw-accent);stroke-width:2px}.sr-state-offline,.sr-outbox,.sr-broadcast,.sr-v0,.sr-s0,.sr-s1,.sr-s2{opacity:0}.sr-outbox rect{fill:color-mix(in srgb, var(--sw-demo-warn) 26%, transparent);stroke:var(--sw-demo-warn)}.sr .sr-outbox text{font:650 11px var(--sw-font-mono)}.sr-broadcast{fill:var(--sw-accent-strong);stroke:color-mix(in srgb, var(--sw-accent) 35%, transparent);stroke-width:6px}.sr-data,.sr-restored rect{fill:var(--sw-accent);fill-opacity:var(--shade)}.sr-cleared,.sr-key,.sr-block{opacity:0}.sr-cleared rect{fill:var(--sw-surface-2);stroke:var(--sw-demo-warn)}.sr .sr-cleared text{fill:var(--sw-demo-warn);font:650 12px var(--sw-font-mono)}.sr-key rect{fill:var(--sw-surface-2);stroke:var(--sw-fg-muted);stroke-width:1.5px}.sr .sr-key text{fill:var(--sw-fg-strong);font:700 14px var(--sw-font-body)}.sr-block rect{fill:color-mix(in srgb, var(--sw-accent) 22%, var(--sw-surface-2));stroke:var(--sw-accent-strong)}.sr .sr-block text:first-of-type{fill:var(--sw-fg-strong);font-weight:700}.sr-peer-cells rect{fill:color-mix(in srgb, var(--sw-accent) 34%, transparent)}.sr .sr-batch{fill:var(--sw-accent-strong);font:650 12px var(--sw-font-mono)}.sw-reel__stage :where(*){animation-fill-mode:both}.sr-spill .sr-type{animation:2.2s steps(26,end) .2s both sr-type}.sr-spill .sr-spill-row{animation:.4s ease-out both sr-appear}.sr-spill .sr-spill-edge{animation:sr-edge var(--sr-loop,10s) linear both}.sr-spill .sr-change .sr-flash{animation:1.2s ease-out 6s both sr-flash}.sr-spill .sr-change .sr-before,.sr-spill .sr-change-count .sr-before{animation:.2s linear 6.1s both sr-hide}.sr-spill .sr-change .sr-after{animation:.2s linear 6.1s both sr-appear}.sr-spill .sr-change-count .sr-before{animation-delay:7s}.sr-spill .sr-change-count .sr-after{animation:.3s linear 7s both sr-appear}.sr-spill .sr-grow{animation:.4s ease-out 6.7s both sr-appear}.sr-spill .sr-link{animation:.5s ease-out 6.2s both sr-appear}.sr-spill :where(.sr-tag,.sr-change-count,.sr-note){animation:.4s ease-out 3.8s both sr-appear}.sr-offline .sr-dot-bram{animation:sr-dot-bram var(--sr-loop,10s) linear both}.sr-offline .sr-state-online{animation:sr-online var(--sr-loop,10s) linear both}.sr-offline .sr-state-offline{animation:sr-offline var(--sr-loop,10s) linear both}.sr-offline .sr-wire[data-side=bram]{animation:sr-wire var(--sr-loop,10s) linear both}.sr-offline .sr-mini[data-flash]{animation:.6s ease-out both sr-edit}.sr-offline .sr-outbox{animation:sr-outbox var(--sr-loop,10s) cubic-bezier(.45, 0, .25, 1) both;animation-delay:calc(var(--i) * .9s)}.sr-offline .sr-s0{animation:sr-s0 var(--sr-loop,10s) linear both}.sr-offline .sr-s1{animation:sr-s1 var(--sr-loop,10s) linear both}.sr-offline .sr-s2{animation:sr-s2 var(--sr-loop,10s) linear both}.sr-offline .sr-s3{animation:sr-s3 var(--sr-loop,10s) linear both}.sr-offline .sr-broadcast{animation:.9s cubic-bezier(.45,0,.25,1) both sr-broadcast;animation-delay:calc(7s + var(--i) * .4s)}.sr-offline .sr-ana-flash rect{animation:.3s ease-out both sr-appear}.sr-offline .sr-ana-flash rect:first-child{animation-delay:7.8s}.sr-offline .sr-ana-flash rect:nth-child(2){animation-delay:8.2s}.sr-offline .sr-ana-flash rect:nth-child(3){animation-delay:8.6s}.sr-offline .sr-v0{animation:.2s linear 8.8s both sr-hide}.sr-offline .sr-v1{animation:.2s linear 8.8s both sr-appear}.sr-undo .sr-data{animation:.35s ease-in both sr-wipe}.sr-undo .sr-restored{animation:.6s ease-out 6.6s both sr-restore}.sr-undo .sr-cleared{animation:sr-cleared var(--sr-loop,10s) linear both}.sr-undo .sr-key{transform-box:fill-box;transform-origin:50%;animation:sr-key var(--sr-loop,10s) ease-out both}.sr-undo .sr-block{transform-box:fill-box;transform-origin:50%;animation:sr-block var(--sr-loop,10s) cubic-bezier(.45, 0, .25, 1) both}.sr-undo .sr-server .sr-sub{animation:.3s ease-out 5.6s both sr-appear}.sr-undo .sr-peer-cells{animation:.4s ease-out 6.6s both sr-appear}.sr-undo .sr-batch{animation:.4s ease-out 6.4s both sr-appear}@keyframes sr-type{0%{width:0}}@keyframes sr-appear{0%{opacity:0}}@keyframes sr-hide{0%{opacity:1}to{opacity:0}}@keyframes sr-flash{0%{opacity:0}20%{opacity:.45}to{opacity:0}}@keyframes sr-edge{0%,27%{opacity:0;height:62px}30%,64%{opacity:1;height:62px}70%,to{opacity:1;height:92px}}@keyframes sr-dot-bram{0%,9%{fill:var(--sw-accent)}10%,49%{fill:var(--sw-demo-warn)}50%,to{fill:var(--sw-accent)}}@keyframes sr-online{0%,9%{opacity:1}10%,49%{opacity:0}50%,to{opacity:1}}@keyframes sr-offline{0%,9%{opacity:0}10%,49%{opacity:1}50%,to{opacity:0}}@keyframes sr-wire{0%,9%{stroke:var(--sw-accent);stroke-dasharray:none}10%,49%{stroke:var(--sw-fg-dim);stroke-dasharray:3 5}50%,to{stroke:var(--sw-accent);stroke-dasharray:none}}@keyframes sr-edit{0%{fill:color-mix(in srgb, var(--sw-fg) 7%, transparent)}15%{fill:var(--sw-demo-warn)}to{fill:color-mix(in srgb, var(--sw-accent) 34%, transparent)}}@keyframes sr-outbox{0%,18%{opacity:0;transform:none}21%,52%{opacity:1;transform:none}58%{opacity:.9;transform:translate(var(--dx), -145px)}60%,to{opacity:0;transform:translate(var(--dx), -145px)}}@keyframes sr-s0{0%,56.9%{opacity:1}57%,to{opacity:0}}@keyframes sr-s1{0%,56.9%{opacity:0}57%,65.9%{opacity:1}66%,to{opacity:0}}@keyframes sr-s2{0%,65.9%{opacity:0}66%,74.9%{opacity:1}75%,to{opacity:0}}@keyframes sr-s3{0%,74.9%{opacity:0}75%,to{opacity:1}}@keyframes sr-broadcast{0%{opacity:0;transform:none}15%{opacity:1}85%{opacity:1;transform:translate(-200px,20px)}to{opacity:0;transform:translate(-200px,20px)}}@keyframes sr-wipe{to{fill-opacity:.04}}@keyframes sr-restore{0%{opacity:0}40%{opacity:1;filter:brightness(1.6)}to{opacity:1}}@keyframes sr-cleared{0%,25%{opacity:0}28%,64%{opacity:1}68%,to{opacity:0}}@keyframes sr-key{0%,33%{opacity:0;transform:scale(.8)}36%{opacity:1;transform:scale(1)}38%{transform:scale(.92)}40%,44%{opacity:1;transform:scale(1)}48%,to{opacity:0;transform:scale(1)}}@keyframes sr-block{0%,43%{opacity:0;transform:translate(-200px)}47%{opacity:1;transform:none}53%{opacity:1;transform:none}58%{opacity:1;transform:translate(106px,-68px)scale(.6)}62%{opacity:1;transform:translate(106px,92px)scale(.6)}66%,to{opacity:0;transform:translate(106px,92px)scale(.6)}}@media (width<=72rem){.sw-lp-hero,.sw-lp-split{grid-template-columns:minmax(0,1fr)}.sw-lp-hero h1{max-width:16ch}.sw-lp-facts dl,.sw-features,.sw-lp-engines__choices{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-lp-engines__choices ul{grid-column:1/-1}.sw-arch__steps{grid-template-columns:minmax(0,1fr)}.sw-arch__steps li+li{border-top:1px solid var(--sw-border);border-left:0}.sw-reel__panel{grid-template-columns:minmax(0,1fr)}.sw-reel__stage{border-top:1px solid var(--sw-border);border-left:0}}@media (width<=48rem){.sw-lp-head{grid-template-columns:minmax(0,1fr);row-gap:1rem}.sw-hero-scene__captions button{padding:.75rem .5rem;font-size:.6875rem}.sw-arch .as{display:none}.sw-arch__steps{border-top:0}.sw-features,.sw-lp-engines__choices{grid-template-columns:minmax(0,1fr)}.sw-bench__bars li{grid-template-columns:5rem minmax(0,1fr) 4.5rem;gap:.4rem .75rem}.sw-bench__capture{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-lp-close .sw-lp-actions{width:100%}.sw-reel__tabs button{font-size:var(--sw-type-xs);padding:.75rem .6rem}}@media (width<=30rem){.sw-lp-facts dl{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.sw-landing :is(.hs,.as,.fg,.sr) *,.sw-landing .sw-bench__track i{animation:none!important}.sw-reel__timer{display:none}.sw-lp-button,.sw-features a{transition:none}.sw-features a:hover{translate:none}}
