.ls,.sc,.sf,.sg,.sn,.su{--s-bg:var(--bg);--s-ink:var(--fg);--s-muted:var(--fg-muted);--s-faint:var(--fg-faint);--s-line:var(--border);--s-line-strong:var(--border-strong);--s-card:var(--bg-elev);--s-card-alt:var(--bg-alt);--s-yellow:var(--yellow);--s-yellow-deep:var(--yellow-dark);--s-yellow-ink:#8a6a00;--s-green:#15803d;--s-red:#dc2626;--s-amber:#c2670a;--s-blue:#2563eb;--s-shadow:rgba(24,24,27,0.13);--sf-beat:52vh}.dark .ls,.dark .sc,.dark .sf,.dark .sg,.dark .sn,.dark .su{--s-yellow-ink:#ffd333;--s-green:#4ade80;--s-red:#f87171;--s-amber:#fbbf24;--s-blue:#60a5fa;--s-shadow:rgba(0,0,0,0.55)}.v2-kicker{margin:0;color:var(--fg-muted);font-family:var(--v2-mono);font-size:10px;font-weight:700;letter-spacing:.13em;line-height:1.4;text-transform:uppercase}.v2-kicker>span{display:inline-block;width:7px;height:7px;margin-right:9px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px color-mix(in oklab,var(--yellow) 14%,transparent)}.v2-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:0 20px;border:1px solid transparent;border-radius:999px;color:var(--fg);font-size:14px;font-weight:740;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}.v2-button:hover{transform:translateY(-2px)}.v2-button:focus-visible,.v21-field-result a:focus-visible,.v21-paths a:focus-visible,.v21-scene-copy a:focus-visible{outline:3px solid var(--yellow-ink);outline-offset:3px}.v2-button-primary{background:var(--yellow);color:#18181b}.v2-button-primary:hover{background:var(--yellow-light)}.v2-button-quiet{border-color:var(--border-strong);background:color-mix(in oklab,var(--bg-elev) 76%,transparent)}.v2-button-quiet:hover{border-color:var(--yellow-dark)}.sf{position:relative;padding-top:40px}.sf-canvas,.sf-hint,.sf-line,.sf-rail{display:none}.sf-caps,.sf-hero{max-width:760px;margin-inline:auto;padding-inline:var(--v2-pad)}.sf-hero{max-width:none;text-align:center}.sf-kicker{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 14px;color:var(--fg-muted);font-family:var(--v2-mono);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.sf-kicker>span{flex:none;width:7px;height:7px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 5px color-mix(in oklab,var(--yellow) 16%,transparent)}.sf-hero h1{margin:0;font-size:min(8.4vw,13svh,92px);font-weight:800;letter-spacing:-.042em;line-height:1.02;text-wrap:balance}.sf-hero h1 em{display:block;width:fit-content;margin-inline:auto;font-style:normal;background:linear-gradient(transparent 62%,color-mix(in oklab,var(--yellow) 70%,transparent) 62%)}.sf-lede{max-width:56ch;margin:18px auto 0;color:var(--fg-muted);font-size:clamp(16px,1.35vw,19px);line-height:1.45;text-wrap:pretty}.sf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px}.sf-hero .sf-actions{justify-content:center}.sf:not(.is-live) [data-film-play]{display:none}.sf-js .sf:not(.is-live):not(.is-still) .sf-hero [data-film-play]{display:inline-flex;visibility:hidden}.sf-caps{list-style:none;margin-block:26px 0}.sf-cap{padding-block:18px}.sf-cap h2{margin:4px 0 0;font-size:clamp(24px,3vw,40px);font-weight:760;letter-spacing:-.033em;line-height:1.08;text-wrap:balance}.sf-cap>p{margin:10px 0 0;color:var(--fg-muted);font-size:clamp(15.5px,1.25vw,18px);line-height:1.45;text-wrap:pretty}.sf-badge{display:inline-grid;place-items:center;width:38px;height:38px;margin-bottom:8px;border-radius:10px;background:var(--yellow);color:#18181b;font-size:22px;font-weight:900}.sf-next{display:flex;align-items:center;gap:9px;margin-top:12px;color:var(--s-yellow-ink);font-size:14px;font-weight:650;line-height:1.35}.sf-next b{display:inline-grid;flex:none;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--yellow);color:#18181b;font-size:14px;font-weight:900}.sf.is-live .sf-next{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}.sf.is-live .sf-cap.handoff .sf-next{opacity:1;transform:none;transition:opacity .4s,transform .4s}.sf.is-live .sf-cap.handoff .sf-next b{animation:sf-pulse 1.1s ease-in-out infinite}@keyframes sf-pulse{50%{transform:translateX(3px) scale(1.08)}}.sf.is-live .sf-stage.is-portrait .sf-next{margin-top:6px;font-size:12.5px}.sf-install{padding:9px 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg-elev);font-family:var(--v2-mono);font-size:12px;white-space:nowrap}.sf-cap-still{display:block;width:100%;height:auto;margin-top:14px;border-radius:14px}.sf .w{display:inline}.sf-js .sf:not(.is-live):not(.is-still){height:100vh;height:100svh;overflow:hidden}.sf-js .sf:not(.is-live):not(.is-still) .sf-caps{display:none}.sf-js .sf:not(.is-live):not(.is-still){padding-top:0}.sf-js .sf:not(.is-live):not(.is-still) .sf-stage{position:relative;height:calc(100svh - var(--fd-nav-height, 56px))}.sf-js .sf:not(.is-live):not(.is-still) .sf-hero{position:absolute;inset:46% clamp(14px,3.5vw,56px) auto;padding:0;transform:translateY(-50%)}.sf-js .sf:not(.is-still) .sf-hint{display:flex}.sf.is-live{--sf-rest:clamp(0,1 - var(--sf-t,0)/0.22,1);--sf-open:clamp(0,(var(--sf-t,0) - 0.04)/0.6,1);--sf-gone:clamp(0,(var(--sf-t,0) - 0.3)/0.22,1);--sf-in:clamp(0,(var(--sf-t,0) - 0.5)/0.2,1);height:calc(var(--sf-beats, 27.6) * var(--sf-beat));min-height:300vh;padding-top:0}.sf.is-live .sf-stage{position:sticky;top:var(--fd-nav-height,56px);height:calc(100vh - var(--fd-nav-height, 56px));height:calc(100svh - var(--fd-nav-height, 56px));overflow:hidden;background-image:radial-gradient(color-mix(in oklab,var(--fg) 9%,transparent) 1px,transparent 1.2px);background-size:24px 24px}.sf.is-live .sf-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;opacity:clamp(0,(var(--sf-t,0) - .44)/.32,1)}.sf.is-live .sf-caps,.sf.is-live .sf-hero{max-width:none;margin:0;padding:0}.sf.is-live .sf-hero{position:absolute;inset:46% var(--gutter) auto;opacity:calc(1 - var(--sf-gone));visibility:hidden;pointer-events:none;transform:translateY(calc(-50% - var(--sf-open) * 36svh)) scale(calc(1 - var(--sf-open) * .74));transition:visibility .24s;z-index:3}.sf.is-live .sf-hero.on{visibility:visible;pointer-events:auto}.sf.is-live .sf-hero>:not(h1){opacity:var(--sf-rest)}.sf.is-live .sf-line{display:block;position:absolute;inset:0 var(--gutter) auto;margin:0;color:var(--fg-muted);font-size:clamp(14px,1.5vw,21px);font-weight:720;letter-spacing:-.015em;line-height:var(--head);text-align:center;white-space:nowrap;opacity:var(--sf-in);pointer-events:none;transition:scale .4s ease-out;z-index:3}.sf-line span{background:linear-gradient(transparent 60%,color-mix(in oklab,var(--yellow) 70%,transparent) 60%) no-repeat 0 0 /0 100%;transition:color .24s,background-size .36s ease-out}.sf-line span.lit{color:var(--fg);background-size:100% 100%}.sf.is-live[data-chapter=finale] .sf-line{scale:1.14}.sf.is-live .sf-cap{position:absolute;left:var(--gutter);width:var(--cap-w);top:calc(var(--head) + (100% - var(--head) - 54px) / 2);transform:translateY(-50%);padding:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s,visibility .24s;z-index:3}.sf.is-live .sf-cap.on{opacity:1;visibility:visible;pointer-events:auto}.sf.is-live .sf-cap h2{font-size:clamp(26px,2.9vw,44px)}.sf.is-live .sf-cap .w{display:inline-block;overflow:hidden;padding-block:.08em;margin-block:-.08em;vertical-align:top}.sf.is-live .sf-cap .w>span{display:inline-block;transform:translateY(112%)}.sf.is-live .sf-cap.on .w>span{animation:sf-rise .56s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 26ms)}@keyframes sf-rise{to{transform:translateY(0)}}.sf.is-live .sf-cap>p{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}.sf.is-live .sf-cap.on>p{opacity:1;transform:none;transition:opacity .42s .2s,transform .42s .2s}.sf.is-live .sf-badge{transform:scale(.7) rotate(-8deg);transition:transform .2s}.sf.is-live .sf-cap.on .sf-badge{transform:none;transition:transform .46s cubic-bezier(.2,1.5,.4,1)}.sf-hint{align-items:center;justify-content:center;gap:10px;margin:26px 0 0;color:var(--fg-faint);font-family:var(--v2-mono);font-size:11.5px}.sf-steps{position:relative;flex:none;width:26px;height:36px}.sf-steps i{position:absolute;top:0;left:0;width:11px;height:17px;background:var(--yellow-dark);mask:var(--af-foot) center /contain no-repeat;transform:rotate(180deg) scaleX(-1);animation:sf-step 1.7s ease-in-out infinite}.sf-steps i+i{top:18px;left:14px;transform:rotate(180deg);animation-delay:.42s}@keyframes sf-step{0%,to{opacity:.14}28%,58%{opacity:1}}.sf-views{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:color-mix(in oklab,var(--bg-elev) 88%,transparent);backdrop-filter:blur(8px);font-size:12px}.sf-views-label{padding-inline:8px 6px;color:var(--fg-faint);font-size:11px;white-space:nowrap}.sf-views button{padding:4px 10px;border-radius:999px;color:var(--fg-muted);font-weight:600;white-space:nowrap;cursor:pointer}.sf-views button:hover{color:var(--fg)}.sf-views button.on{background:var(--fg);color:var(--bg)}.sf-views.sf-views-stage{display:none}.sf.is-still .sf-views.sf-views-stage{display:flex;width:fit-content;margin:0 auto 14px}.sf.is-live .sf-views.sf-views-stage{display:inline-flex;position:absolute;top:6px;right:var(--gutter);opacity:var(--sf-in);z-index:4}.sf.is-live[data-chapter=hero] .sf-rail,.sf.is-live[data-chapter=hero] .sf-views.sf-views-stage{pointer-events:none}.sf.is-live .sf-rail:focus-within,.sf.is-live .sf-views.sf-views-stage:focus-within{opacity:1}.sf.is-live .sf-rail{display:flex;position:absolute;left:var(--gutter);right:var(--gutter);bottom:0;height:54px;align-items:center;gap:14px;opacity:var(--sf-in);z-index:4}.sf-play{display:inline-flex;flex:none;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-elev);font-family:var(--v2-mono);font-size:11px;font-weight:650;cursor:pointer}.sf-play [data-play-label]{min-width:2.7em;text-align:left}.sf-skip{flex:none;color:var(--fg-muted);font-family:var(--v2-mono);font-size:11px;font-weight:650;white-space:nowrap;text-decoration:none}.sf-skip:hover{color:var(--fg)}.sf-play-icon{width:0;height:0;border-block:4.5px solid transparent;border-left:7px solid}.sf.is-playing .sf-play-icon{width:7px;height:9px;border:0;border-inline:2.5px solid currentColor}.sf-track{position:relative;flex:1;height:44px;cursor:ew-resize;touch-action:none}.sf-track-line{position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;border-radius:2px;background:var(--border)}.sf-track-fill{width:calc(var(--sf-p, 0) * 100%);height:100%;border-radius:2px;background:var(--yellow-dark)}.sf-stop{position:absolute;top:50%;display:grid;place-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;color:var(--fg-faint);font-size:10px;font-weight:650;cursor:pointer}.sf-stop>span{display:grid;place-items:center;min-width:8px;height:8px;overflow:visible;border-radius:50%;background:var(--border-strong);color:transparent;font-size:0}.sf-stop.is-letter>span{width:24px;height:24px;border:1.5px solid var(--border-strong);border-radius:7px;background:var(--bg-elev);color:var(--fg-muted);font-size:13px;font-weight:900;transition:transform .25s,background .25s,color .25s,border-color .25s}.sf-stop.is-letter.past>span{border-color:var(--yellow-dark);background:color-mix(in oklab,var(--yellow) 30%,var(--bg-elev));color:var(--fg)}.sf-stop.is-letter.on>span{transform:scale(1.22);border-color:var(--yellow-dark);background:var(--yellow);color:#18181b}.sf.is-live .sf-stage.is-portrait .sf-cap{left:var(--gutter);right:var(--gutter);width:auto;top:calc(var(--head) + 44px);transform:none}.sf.is-live .sf-stage.is-portrait .sf-cap .sf-actions{margin-top:10px}.sf.is-live .sf-stage.is-portrait .sf-cap .v2-button{flex:0 1 auto;width:auto;min-height:0;padding:7px 12px;font-size:12.5px;white-space:nowrap}.sf.is-live .sf-stage.is-portrait .sf-cap h2{font-size:clamp(21px,6vw,30px)}.sf.is-live .sf-stage.is-portrait .sf-cap>p{margin-top:6px;font-size:13.5px;line-height:1.36}.sf.is-live .sf-stage.is-portrait .sf-badge{float:left;width:30px;height:30px;margin:0 9px 0 0;font-size:18px}.sf.is-live .sf-stage.is-portrait .sf-views.sf-views-stage{left:var(--gutter);right:auto;top:calc(var(--head) + 6px);font-size:11px}.sf.is-live .sf-stage.is-portrait .sf-views-label{display:none}.sf.is-live .sf-stage.is-portrait .sf-rail{gap:8px}.sf.is-live .sf-stage.is-portrait .sf-play [data-play-label],.sf.is-live .sf-stage.is-portrait .sf-skip-more{display:none}.sf.is-live .sf-stage.is-portrait .sf-install{font-size:10.5px}.hw-all{padding-bottom:56px}.su{max-width:1000px;aspect-ratio:760/560;margin-inline:auto}.su,.su canvas{display:block;width:100%}.su canvas{height:100%}@media (max-width:560px){.su{aspect-ratio:360/470}}.hs-hero{max-width:860px;margin-inline:auto;padding:clamp(40px,7vh,72px) var(--v2-pad) 18px;text-align:center}.hs-hero h1{margin:10px 0 0;font-size:clamp(32px,4.4vw,58px);font-weight:800;letter-spacing:-.042em;line-height:1.04;text-wrap:balance}.hs-hero>p:not(.v2-kicker){margin:14px auto 0;color:var(--fg-muted);font-size:17px;line-height:1.5;text-wrap:pretty}.hs-hero>p.hs-def{margin-top:8px;color:var(--fg);font-weight:640}.ls-3{--ls-cycle:calc(3 * var(--ls-beat));padding-top:18px}.ls-3 ol{grid-template-columns:repeat(3,minmax(0,1fr))}.la-gate{fill:var(--yellow-dark)}.la-dash{stroke-dasharray:4 3}.la-red{stroke:var(--s-red)}.ls-art .la-strong-ink{fill:var(--fg);font-weight:750}.sg-tile-tech{color:var(--fg-faint);font-size:12.5px;line-height:1.4}.sg-key{margin:0;padding-block:18px 4px;border-top:1px solid var(--border);color:var(--fg-muted);font-size:14px}.sg-key strong{color:var(--fg)}.hs-place{margin-top:22px;scroll-margin-top:80px}.hs-place h4{display:flex;align-items:center;gap:9px;margin:0;font-size:18px;font-weight:740;letter-spacing:-.015em}.hs-place h4 span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--yellow);color:#18181b;font-size:13px;font-weight:800}.hs-place>p{margin:4px 0 8px;color:var(--fg-muted);font-size:14.5px}.hs-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45;text-align:left}.hs-table thead th{padding:8px 14px 8px 0;border-bottom:1px solid var(--border-strong);color:var(--fg-muted);font-size:12.5px;font-weight:650}.hs-table tbody th,.hs-table td{padding:10px 14px 10px 0;border-bottom:1px solid var(--border);vertical-align:top}.hs-table td{color:var(--fg-muted)}.hs-table tbody th{width:27%;font-weight:680}.hs-table tbody th code{color:var(--s-yellow-ink,var(--yellow-ink));font-weight:600;overflow-wrap:anywhere}.hs-place .hs-table tbody th code{display:block;margin-top:2px}.hs-table code{font-family:var(--v2-mono);font-size:12px}.hs-note{margin:10px 0 0;color:var(--fg-muted);font-size:14px;line-height:1.5}.hs-next,.hs-sec{width:min(var(--v2-wide),100%);margin:44px auto 0;padding-inline:var(--v2-pad);scroll-margin-top:80px}.hs-sec h2{margin:0 0 10px;font-size:clamp(23px,2.6vw,34px);font-weight:780;letter-spacing:-.03em}.hs-sec>p{margin:0 0 8px;color:var(--fg-muted);font-size:15px}.hs-sec>.hs-table thead th:first-child{width:34%}.hs-list{display:grid;gap:8px;max-width:860px;margin:0;padding:0;list-style:none;color:var(--fg-muted);font-size:15px;line-height:1.5}.hs-list strong{color:var(--fg)}.hs-next{padding-bottom:56px}@media (max-width:760px){.hs-table thead{display:none}.hs-table,.hs-table tbody,.hs-table td,.hs-table th,.hs-table tr{display:block;width:auto!important}.hs-table tr{padding:10px 0;border-bottom:1px solid var(--border)}.hs-table tbody th,.hs-table td{padding:2px 0;border:0}.hs-table td:before{content:attr(data-label) ": ";color:var(--fg);font-weight:620}}.ls{--ls-beat:2.4s;--ls-cycle:calc(4 * var(--ls-beat));width:min(var(--v2-max),100%);margin:0 auto;padding:6px var(--v2-pad) 12px}.ls-track{position:relative}.ls ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none}.ls-thread{position:absolute;inset:5px 0 auto;height:2px;background:var(--border-strong)}.ls-thread b{display:block;height:100%;background:var(--yellow-dark);transform-origin:left;transform:scaleX(0);animation:ls-fill var(--ls-cycle) linear infinite paused}.ls-spark{position:absolute;top:0;left:0;z-index:1;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 4px color-mix(in oklab,var(--yellow) 30%,transparent),0 0 18px var(--yellow);animation:ls-run var(--ls-cycle) linear infinite paused}.ls a{position:relative;display:grid;align-content:start;gap:6px;height:100%;padding:24px 18px 8px 0;color:var(--fg);text-decoration:none}.ls a:before{content:"";position:absolute;top:0;left:0;width:12px;height:12px;border:2px solid var(--border-strong);border-radius:50%;background:var(--bg);animation:ls-stop var(--ls-cycle) linear infinite paused;animation-delay:calc(var(--i) * var(--ls-beat))}.ls span{color:var(--v2-label);font-family:var(--v2-mono);font-size:12px}.ls strong{justify-self:start;padding:0 3px;margin:0 -3px;background:linear-gradient(var(--yellow),var(--yellow)) 0 88% /0 .5em no-repeat;font-size:clamp(17px,1.5vw,20px);font-weight:760;animation:ls-mark var(--ls-cycle) linear infinite paused;animation-delay:calc(var(--i) * var(--ls-beat))}.ls small{color:var(--fg-muted);font-family:var(--v2-mono);font-size:11px;font-weight:700;letter-spacing:.035em;line-height:1.4}.ls-art{aspect-ratio:200/72;max-width:250px}.ls-art svg{display:block;width:100%;height:100%;overflow:visible}.ls-art text{fill:var(--fg-muted);font-family:var(--v2-mono);font-size:8.5px;font-weight:650;text-anchor:middle}.ls-art .la-strong{fill:#18181b;font-size:12px;font-weight:800}.la-node{fill:var(--bg-elev);stroke:var(--border-strong)}.la-core{fill:var(--yellow)}.la-line{fill:none;stroke:var(--border-strong);stroke-width:1.5}.la-wire{fill:none;stroke:var(--yellow-dark);stroke-width:2;stroke-dasharray:1}.la-bar{fill:var(--yellow);transform-origin:bottom}.la-bar,.la-pop{transform-box:fill-box}.la-pop{transform-origin:center}.la-back,.la-flow{fill:var(--yellow-dark);opacity:0}.la-back,.la-bar,.la-flash,.la-flow,.la-pop,.la-wire{animation:var(--la) var(--ls-cycle) linear infinite paused;animation-delay:calc(var(--i) * var(--ls-beat) + var(--k, 0) * .26s)}.la-pop{--la:la-pop}.la-wire{--la:la-draw}.la-flash{--la:la-flash}.la-back{--la:la-back}.la-flow{--la:la-flow}.la-bar{--la:la-grow}.ls.is-in .ls-spark,.ls.is-in .ls-thread b,.ls.is-in a:before,.ls.is-in strong,.ls.is-in svg *{animation-play-state:running}.ls-apis{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}.ls-apis code{max-width:100%;padding:4px 7px;border:1px solid var(--border);border-radius:999px;background:color-mix(in oklab,var(--bg) 74%,transparent);font-family:var(--v2-mono);font-size:10px;font-weight:650;line-height:1.15;overflow-wrap:anywhere}.ls-apis sup{margin-left:3px;color:var(--yellow-ink);font-size:8px;font-weight:900}@keyframes ls-fill{to{transform:scaleX(1)}}@keyframes ls-run{to{left:100%}}@keyframes ls-stop{0%{transform:scale(1);border-color:var(--border-strong)}18%,3%{transform:scale(1.25);border-color:var(--yellow-dark);background:var(--yellow)}25%,to{transform:scale(1);border-color:var(--yellow-dark);background:var(--bg)}}@keyframes ls-mark{0%{background-size:0 .5em}22%,3%{background-size:100% .5em}27%,to{background-size:0 .5em}}@keyframes la-pop{0%{transform:scale(.72);opacity:.3}4%{transform:scale(1.06);opacity:1}7%,to{transform:scale(1);opacity:1}}@keyframes la-draw{0%{stroke-dashoffset:1}5%,to{stroke-dashoffset:0}}@keyframes la-flash{0%,to{fill:var(--bg-elev)}14%,3%{fill:var(--yellow)}22%{fill:var(--bg-elev)}}@keyframes la-back{0%{transform:translateX(0);opacity:1}12%{transform:translateX(-144px);opacity:1}13%,to{transform:translateX(-144px);opacity:0}}@keyframes la-flow{0%{transform:translateX(0);opacity:0}1%{opacity:1}8%{transform:translateX(84px);opacity:1}9%,to{transform:translateX(84px);opacity:0}}@keyframes la-grow{0%{transform:scaleY(.25)}6%,to{transform:scaleY(1)}}.ls-flow{position:relative}.ls-bar{position:sticky;top:var(--fd-nav-height,56px);z-index:20;margin-top:26px;border-block:1px solid var(--border);background:color-mix(in oklab,var(--bg) 90%,transparent);backdrop-filter:saturate(140%) blur(8px)}.ls-bar>div{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;width:min(var(--v2-max),100%);height:44px;margin:0 auto;padding-inline:var(--v2-pad)}.ls-bar a{justify-self:start;padding:2px 3px;margin-left:-3px;background:linear-gradient(var(--yellow),var(--yellow)) 0 88% /0 .5em no-repeat;color:var(--fg-muted);font-size:13.5px;font-weight:650;text-decoration:none;transition:background-size .22s ease,color .22s ease}.ls-bar a.is-on,.ls-bar a:hover{color:var(--fg)}.ls-bar a.is-on{background-size:100% .5em}.ls-bar i{position:absolute;left:var(--v2-pad);right:var(--v2-pad);bottom:-1px;height:2px;background:var(--yellow-dark);transform-origin:left;transform:scaleX(var(--p,0))}@media (max-width:900px){.ls ol,.ls-3 ol{grid-template-columns:minmax(0,1fr);gap:18px}.ls-thread{inset:0 auto 0 5px;width:2px;height:auto}.ls-thread b{transform-origin:top;transform:scaleY(0);animation-name:ls-fill-down}.ls-spark{animation-name:ls-run-down}.ls a{padding:0 0 0 26px}.ls-art{max-width:min(100%,280px)}}@media (max-width:560px){.ls-apis{display:none}}@keyframes ls-fill-down{to{transform:scaleY(1)}}@keyframes ls-run-down{to{top:100%}}@media (prefers-reduced-motion:reduce){.ls *,.ls a:before{animation:none!important}.ls-spark{display:none}.ls-thread b{transform:none}.ls strong{background-size:100% .5em}}.v21-lifecycle-bridge h1{margin:12px auto 0;font-size:clamp(32px,4vw,52px);font-weight:800;letter-spacing:-.05em;line-height:1;text-wrap:balance}.v21-lifecycle-bridge>p:not(.v2-kicker){max-width:640px;margin:14px auto 0;color:var(--fg-muted);font-size:17px;line-height:1.45}.v21-position>p.v21-guardrail{margin-top:22px}.v21-docs{max-width:76ch;margin-top:10px;color:var(--fg-muted);font-size:14.5px;line-height:1.6}.v21-docs summary{cursor:pointer;font-weight:650}.v21-docs p{margin:8px 0 0}.v21-position>p.v21-boundary{margin-top:12px}.v21-position tbody th{width:42%;padding-right:24px;vertical-align:top}.v21-position td code{font-family:var(--v2-mono);font-size:12.5px}#lenses .v21-paths{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.sc{width:min(var(--v2-wide),100%);margin:64px auto 0;padding-inline:var(--v2-pad)}.sc-head{max-width:820px;margin-bottom:22px}.sc-head h2{margin:10px 0 0;font-size:clamp(27px,3.4vw,46px);font-weight:780;letter-spacing:-.035em;line-height:1.06;text-wrap:balance}.sc-head>p:not(.v2-kicker){margin:12px 0 0;color:var(--fg-muted);font-size:16.5px;line-height:1.5}.sc-samples{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:14px}.sc-sample{display:flex;flex-direction:column;min-width:0;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--bg-elev)}.sc-sample h3{margin:0;font-size:18px;font-weight:740;letter-spacing:-.015em}.sc-sample>p{margin:6px 0 12px;color:var(--fg-muted);font-size:14.5px;line-height:1.45}.sc-code{margin:0;padding:12px 0;overflow-x:auto;border-radius:10px;background:var(--bg-alt);font-family:var(--v2-mono);font-size:12.5px;line-height:1.55}.sc-line{display:block;width:max-content;min-width:100%;padding-inline:12px;white-space:pre}.sc-line.is-mark{background:color-mix(in oklab,var(--yellow) 30%,transparent)}.sc-out{margin-top:10px;padding:10px 12px;border:1px dashed var(--border-strong);border-radius:10px}.sc-out span{color:var(--fg-muted);font-size:12.5px;font-weight:650}.sc-out pre{margin:6px 0 0;overflow-wrap:anywhere;font-family:var(--v2-mono);font-size:12px;line-height:1.5;white-space:pre-wrap}.sc-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.sg{width:min(var(--v2-wide),100%);margin:72px auto 0;padding-inline:var(--v2-pad)}.sg-head{max-width:820px;margin-bottom:26px}.sg-head h2{margin:10px 0 0;font-size:clamp(27px,3.4vw,46px);font-weight:780;letter-spacing:-.035em;line-height:1.06;text-wrap:balance}.sg-head>p:not(.v2-kicker){margin:12px 0 16px;color:var(--fg-muted);font-size:16.5px;line-height:1.5}.sg-letter{display:grid;grid-template-columns:clamp(64px,11vw,150px) 1fr;gap:clamp(14px,3vw,36px);padding-block:28px;border-top:1px solid var(--border);scroll-margin-top:80px}.sg-big{position:sticky;top:80px;align-self:start;font-size:clamp(64px,11vw,150px);font-weight:900;letter-spacing:-.04em;line-height:.8;background:linear-gradient(180deg,var(--fg) 40%,var(--yellow-dark));-webkit-background-clip:text;background-clip:text;color:transparent}.sg-body h3{margin:0;font-size:clamp(21px,2.2vw,28px);font-weight:760;letter-spacing:-.024em}.sg-body h3 small{margin-left:6px;color:var(--fg-faint);font-family:var(--v2-mono);font-size:11px;font-weight:600;letter-spacing:0;white-space:nowrap}.sg-line{margin:4px 0 14px;color:var(--fg-muted);font-size:15px;line-height:1.45}.sg-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,262px),1fr));gap:10px;margin:0;padding:0;list-style:none}.sg-tile,.sg-tiles>li{display:flex}.sg-tile{position:relative;flex:1;flex-direction:column;gap:6px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:var(--bg-elev);color:var(--fg);text-decoration:none;transition:border-color .2s,transform .2s}a.sg-tile:hover{border-color:var(--yellow-dark);transform:translateY(-2px)}.sg-tile-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 8px;font-size:14.5px}.sg-tile-top strong{font-weight:720}.sg-tile-text{color:var(--fg-muted);font-size:13.5px;line-height:1.42}.sg-tile code{align-self:flex-start;max-width:100%;margin-top:auto;overflow-wrap:anywhere;color:var(--s-yellow-ink);font-size:11.5px}.sg-tag,.sg-tile code{font-family:var(--v2-mono)}.sg-tag{flex:none;font-size:9.5px;font-style:normal;font-weight:650;white-space:nowrap}.sg-tag.is-standing{color:var(--s-green)}.sg-tag.is-finding{color:var(--s-amber)}.sg-more{margin-top:10px}.sg-more summary{width:fit-content;color:var(--fg-muted);cursor:pointer;font-size:13.5px;font-weight:650}.sg-more summary:hover{color:var(--fg)}.sg-more .sg-tiles{margin-top:10px}.sg-foot{display:grid;gap:12px;max-width:860px;padding-block:22px 8px;border-top:1px solid var(--border);color:var(--fg-muted);font-size:14px;line-height:1.5}.sg-foot p{margin:0}.sg-foot strong{color:var(--fg)}.sg-foot summary{cursor:pointer;font-weight:650}.sg-foot code{font-family:var(--v2-mono);font-size:12.5px}.sq{width:min(var(--v2-wide),100%);margin:56px auto 0;padding:0 var(--v2-pad) 64px}.sq h2{margin:0;font-size:clamp(25px,3vw,40px);font-weight:780;letter-spacing:-.033em;line-height:1.08}.sq-list{display:grid;gap:8px;max-width:860px;margin-top:18px}.sq details{border:1px solid var(--border);border-radius:12px;background:var(--bg-elev)}.sq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;cursor:pointer;list-style:none}.sq summary::-webkit-details-marker{display:none}.sq summary:after{content:"+";flex:none;color:var(--fg-muted);font-size:18px;line-height:1;transition:transform .2s}.sq details[open] summary:after{transform:rotate(45deg)}.sq h3{margin:0;font-size:15px;font-weight:660}.sq details p{margin:0;padding:0 16px 14px;color:var(--fg-muted);font-size:14.5px;line-height:1.5}.sq code{font-family:var(--v2-mono);font-size:12.5px}.sn{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:clamp(20px,4vw,56px);align-items:center;width:min(var(--v2-wide),100%);margin:64px auto 0;padding-inline:var(--v2-pad)}.sn-ring svg{display:block;width:100%;height:auto}.sn-track{stroke:var(--border)}.sn-track,.sn-wait{fill:none;stroke-width:6}.sn-wait{stroke-linecap:round;stroke-dasharray:20 80;transform-origin:120px 120px}.sn-wait-a{stroke:var(--yellow)}.sn-wait-b{stroke:var(--yellow-dark);transform:rotate(120deg)}.sn-wait-c{stroke:var(--fg-faint);transform:rotate(240deg)}.sn-spin{fill:var(--fg);transform-origin:120px 120px;animation:sn-orbit 5s linear infinite}@keyframes sn-orbit{to{transform:rotate(1turn)}}.sn-ring text{fill:var(--fg);font-size:18px;font-weight:750}.sn-ring .sn-sub{fill:var(--fg-faint);font-family:var(--v2-mono);font-size:10px;font-weight:600}.sn-body h2{margin:10px 0 0;font-size:clamp(25px,3vw,40px);font-weight:780;letter-spacing:-.033em;line-height:1.08;text-wrap:balance}.sn-lede{margin:12px 0 0;color:var(--fg-muted);font-size:16px;line-height:1.5}.sn-lede a{text-decoration:underline;text-underline-offset:3px}.sn-body ul{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none;font-size:15px;line-height:1.45}.sn-boundary{margin:14px 0 0;color:var(--fg-muted);font-size:13.5px;line-height:1.5}@media (max-width:720px){.sn{grid-template-columns:1fr}.sn-ring{max-width:170px}}@media (prefers-reduced-motion:reduce){.sn-spin{animation:none}.sf .w>span{animation:none!important;transform:none!important}}