.scene{padding-block:clamp(5rem,12vw,9rem) 0}.scene-head{max-width:40rem;margin-bottom:clamp(2rem,4vw,3rem)}.scene-title{letter-spacing:-.015em;font-size:clamp(1.75rem,3.4vw,2.625rem);line-height:1.12}.scene-intro{color:var(--dust);margin:1rem 0 0;font-size:1.0625rem;line-height:1.6}.scene-link{margin-top:1.5rem;font-size:.9375rem;display:inline-block}.slot-plate{border:1px dashed var(--sky-line);background:radial-gradient(circle, var(--sky-line) .75px, transparent 1px) center / 16px 16px;min-height:16rem;color:var(--dust);font-family:var(--font-mono);text-align:center;place-items:center;padding:2rem 1.5rem;font-size:.8125rem;display:grid;position:relative}.slot-plate p{background:var(--sky-0);max-width:28rem;margin:0;padding:.75rem 1rem}.hero:where(.astro-i3irphx7){--moon-size:clamp(560px, 60vw, 1120px);--moon-halo:color-mix(in srgb, var(--brand) 16%, transparent);--headline-glow:color-mix(in srgb, var(--brand) 26%, transparent);--limb-scatter:color-mix(in srgb, var(--brand) 14%, transparent);isolation:isolate;align-items:center;min-height:calc(100svh - 3.5rem);display:grid;position:relative;overflow:hidden}:root[data-theme=light] .hero:where(.astro-i3irphx7){--moon-halo:color-mix(in srgb, var(--brand) 9%, transparent);--headline-glow:color-mix(in srgb, var(--brand) 10%, transparent);--limb-scatter:color-mix(in srgb, var(--brand) 7%, transparent)}.sky:where(.astro-i3irphx7){z-index:-2;position:absolute;inset:0;mask-image:linear-gradient(#000 72%,#0000)}.sky:where(.astro-i3irphx7):before,.sky:where(.astro-i3irphx7):after{content:"";pointer-events:none;position:absolute}.sky:where(.astro-i3irphx7):before{background:radial-gradient(60% 55% at 72% 42%, var(--moon-halo), transparent 70%);inset:0}.sky:where(.astro-i3irphx7):after{background:radial-gradient(120% 100% at 50% 100%, color-mix(in srgb, var(--limb-rim) 24%, transparent), transparent 70%);height:45%;inset:auto 0 0}.layer:where(.astro-i3irphx7){will-change:transform;position:absolute;inset:-3%}.stars:where(.astro-i3irphx7){width:100%;height:110%;fill:var(--starfield);opacity:var(--starfield-opacity);animation:sky-drift var(--drift-period,160s) ease-in-out infinite;position:absolute;inset:-10% 0 0}.stars:where(.astro-i3irphx7) .t-b:where(.astro-i3irphx7){fill:var(--brand)}.stars:where(.astro-i3irphx7) .t-n:where(.astro-i3irphx7){fill:var(--nebula)}.stars-far:where(.astro-i3irphx7){--drift-x:6px;--drift-y:3px;--drift-period:190s;opacity:calc(var(--starfield-opacity) * .8)}.stars-middle:where(.astro-i3irphx7){--drift-x:14px;--drift-y:6px;--drift-period:150s}.stars-near:where(.astro-i3irphx7){--drift-x:30px;--drift-y:12px;--drift-period:120s}@keyframes sky-drift{0%,to{transform:translate(0,0)}25%{transform:translate3d(var(--drift-x), calc(var(--drift-y) * -1), 0)}50%{transform:translate3d(0, calc(var(--drift-y) * -2), 0)}75%{transform:translate3d(calc(var(--drift-x) * -1), calc(var(--drift-y) * -1), 0)}}.tw:where(.astro-i3irphx7){animation:5s ease-in-out infinite alternate twinkle}@keyframes twinkle{0%,40%{opacity:1}to{opacity:.2}}.limb:where(.astro-i3irphx7){aspect-ratio:1;background:radial-gradient(52% 6% at 50% 0%, color-mix(in srgb, var(--limb-rim) 70%, transparent), transparent), linear-gradient(180deg, color-mix(in srgb, var(--limb-rim) 55%, var(--limb)) 0, var(--limb) 11vh);width:240vw;box-shadow:0 0 0 1px color-mix(in srgb, var(--limb-rim) 85%, transparent), inset 0 10px 24px -12px color-mix(in srgb, var(--limb-rim) 90%, transparent), 0 -2px 26px -4px color-mix(in srgb, var(--limb-rim) 55%, transparent);border-radius:50%;position:absolute;top:calc(100% - 9svh - 4vw);left:50%;translate:-50%}.limb:where(.astro-i3irphx7):before,.limb:where(.astro-i3irphx7):after{content:"";pointer-events:none;border-radius:50%;position:absolute}.limb:where(.astro-i3irphx7):before{background:radial-gradient(closest-side, transparent 97.4%, color-mix(in srgb, var(--limb-rim) 32%, transparent) 98.8%, transparent);animation:9s ease-in-out infinite alternate breathe;inset:-1.6vw}.limb:where(.astro-i3irphx7):after{background:radial-gradient(closest-side, transparent 96.8%, var(--limb-scatter) 98.4%, transparent);animation:13s ease-in-out -4s infinite alternate breathe;inset:-3.2vw}@keyframes breathe{0%{opacity:.55}to{opacity:1}}.moon:where(.astro-i3irphx7){z-index:-1;top:50%;right:calc(var(--moon-size) * -.1);width:var(--moon-size);aspect-ratio:1;pointer-events:none;position:absolute;translate:0 -50%}.moon-static:where(.astro-i3irphx7),.hero-canvas:where(.astro-i3irphx7){width:100%;height:100%;position:absolute;inset:0}.moon-static:where(.astro-i3irphx7){fill:none;stroke-linecap:round;transition:opacity 1.4s var(--ease-out)}.occluder-core:where(.astro-i3irphx7){stop-color:var(--sky-0);stop-opacity:.92}.occluder-edge:where(.astro-i3irphx7){stop-color:var(--sky-0);stop-opacity:0}.wash-core:where(.astro-i3irphx7){stop-color:var(--brand-hi);stop-opacity:.2}.wash-edge:where(.astro-i3irphx7){stop-color:var(--brand-hi);stop-opacity:0}:root[data-theme=light] .moon-static:where(.astro-i3irphx7){display:none}.hero-canvas:where(.astro-i3irphx7){opacity:0;transition:opacity 1.4s var(--ease-out)}.hero:where(.astro-i3irphx7)[data-live] .hero-canvas:where(.astro-i3irphx7){opacity:1}.hero:where(.astro-i3irphx7)[data-live] .moon-static:where(.astro-i3irphx7){opacity:0}.hero-content:where(.astro-i3irphx7){padding-block:clamp(4rem,12vh,8rem) clamp(8rem,22vh,12rem);position:relative}.hero-copy:where(.astro-i3irphx7){max-width:44rem}h1:where(.astro-i3irphx7){letter-spacing:-.032em;filter:drop-shadow(0 0 28px var(--headline-glow));font-size:clamp(2.375rem,5.6vw,4.5rem);font-weight:500;line-height:1.04}.headline:where(.astro-i3irphx7){background:linear-gradient(90deg, var(--star) 0%, var(--star) 42%, color-mix(in srgb, var(--brand-hi) 80%, var(--star)) 72%, var(--brand) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.hero-line:where(.astro-i3irphx7){max-width:34rem;color:var(--dust);margin:1.5rem 0 0;font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.5}.hero-actions:where(.astro-i3irphx7){flex-wrap:wrap;gap:.75rem;margin-top:2.25rem;display:flex}.hero-line:where(.astro-i3irphx7){animation:rise .9s var(--ease-out) .16s both}h1:where(.astro-i3irphx7){animation:rise .9s var(--ease-out) both}.headline:where(.astro-i3irphx7){animation:uncover 1.4s var(--ease-out) both}.hero-actions:where(.astro-i3irphx7)>:where(.astro-i3irphx7){animation:rise .8s var(--ease-out) both}.hero-actions:where(.astro-i3irphx7)>:where(.astro-i3irphx7):first-child{animation-delay:.3s}.hero-actions:where(.astro-i3irphx7)>:where(.astro-i3irphx7):nth-child(2){animation-delay:.36s}.hero-actions:where(.astro-i3irphx7)>:where(.astro-i3irphx7):nth-child(3){animation-delay:.42s}@keyframes rise{0%{opacity:0;translate:0 14px}}@keyframes uncover{0%{mask-image:linear-gradient(90deg,#000 40%,#0000 60%);mask-position:100% 0;mask-size:250% 100%}to{mask-image:linear-gradient(90deg,#000 40%,#0000 60%);mask-position:0 0;mask-size:250% 100%}}@media (width<=820px){.hero:where(.astro-i3irphx7){--moon-size:min(132vw, 640px);align-items:end}.moon:where(.astro-i3irphx7){top:0;left:50%;right:auto;translate:-50% -4%}.sky:where(.astro-i3irphx7):before{background:radial-gradient(80% 40% at 50% 26%, var(--moon-halo), transparent 70%)}.hero-content:where(.astro-i3irphx7){padding-block:calc(var(--moon-size) * .62) clamp(6rem, 16vh, 9rem)}}@supports (animation-timeline:scroll()){.layer:where(.astro-i3irphx7){animation:linear both sink scroll(root);animation-range:0 100vh}.layer-far:where(.astro-i3irphx7){--sink:16vh}.layer-middle:where(.astro-i3irphx7){--sink:10vh}.layer-near:where(.astro-i3irphx7){--sink:5vh}@keyframes sink{to{translate:0 var(--sink)}}}@media (prefers-reduced-motion:reduce){.stars:where(.astro-i3irphx7),.tw:where(.astro-i3irphx7),.layer:where(.astro-i3irphx7),.limb:where(.astro-i3irphx7):before,.limb:where(.astro-i3irphx7):after,.hero-line:where(.astro-i3irphx7),.hero-actions:where(.astro-i3irphx7)>:where(.astro-i3irphx7),.headline:where(.astro-i3irphx7),h1:where(.astro-i3irphx7){animation:none}.moon-static:where(.astro-i3irphx7),.hero-canvas:where(.astro-i3irphx7){transition:none}}.tl:where(.astro-7oli6vs2){--tl-gap:clamp(1.25rem, 3vw, 2.5rem)}.tl-tabs:where(.astro-7oli6vs2){display:none}.tl-beats:where(.astro-7oli6vs2){gap:var(--tl-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tl-beat:where(.astro-7oli6vs2){flex-direction:column;gap:1rem;min-width:0;display:flex}.tl-title:where(.astro-7oli6vs2){color:var(--star);margin:0;font-size:1.0625rem;font-weight:600}.tl-stage:where(.astro-7oli6vs2){opacity:var(--stage-opacity,1);position:relative;container-type:inline-size}.tl-svg:where(.astro-7oli6vs2){width:100%;height:auto;display:block;overflow:visible}.tl-svg-over:where(.astro-7oli6vs2){position:absolute;inset:0}.tl-canvas:where(.astro-7oli6vs2){pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.tl:where(.astro-7oli6vs2)[data-live] .tl-canvas:where(.astro-7oli6vs2){display:block}.tl:where(.astro-7oli6vs2)[data-live] .tl-svg-over:where(.astro-7oli6vs2){visibility:hidden}.tl:where(.astro-7oli6vs2)[data-live] .tl-tabs:where(.astro-7oli6vs2){flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.tl:where(.astro-7oli6vs2)[data-live] .tl-beats:where(.astro-7oli6vs2){grid-template-columns:minmax(0,1fr)}.tl:where(.astro-7oli6vs2)[data-live] .tl-beat:where(.astro-7oli6vs2){align-items:center;gap:var(--tl-gap);grid-area:1/1;grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}.tl:where(.astro-7oli6vs2)[data-live] .tl-title:where(.astro-7oli6vs2){display:none}.tl:where(.astro-7oli6vs2)[data-live] .tl-beat:where(.astro-7oli6vs2):not(.is-active){pointer-events:none}.tl:where(.astro-7oli6vs2)[data-live] .tl-code:where(.astro-7oli6vs2){transition:opacity var(--dur-3) var(--ease-out), visibility 0s linear 0s}.tl:where(.astro-7oli6vs2)[data-live] .tl-beat:where(.astro-7oli6vs2):not(.is-active) .tl-code:where(.astro-7oli6vs2){opacity:0;visibility:hidden;transition:opacity var(--dur-2) var(--ease-out), visibility 0s linear var(--dur-2)}@media (width<=899px){.tl-beats:where(.astro-7oli6vs2){grid-template-columns:minmax(0,1fr)}.tl:where(.astro-7oli6vs2)[data-live] .tl-beat:where(.astro-7oli6vs2){grid-template-columns:minmax(0,1fr);align-items:start}}.tl-tab:where(.astro-7oli6vs2){border:1px solid var(--sky-line);color:var(--dust);font:inherit;cursor:pointer;transition:color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out);background:0 0;border-radius:999px;padding:.4rem .95rem;font-size:.875rem;position:relative;overflow:hidden}.tl-tab:where(.astro-7oli6vs2):hover{color:var(--star)}.tl-tab:where(.astro-7oli6vs2):focus-visible{outline:2px solid var(--brand);outline-offset:2px}.tl-tab:where(.astro-7oli6vs2)[aria-pressed=true]{border-color:color-mix(in srgb, var(--brand) 55%, var(--sky-line));background:var(--brand-fill);color:var(--star)}.tl-tab:where(.astro-7oli6vs2):after{content:"";background:var(--brand);opacity:.7;height:1px;transform:scaleX(var(--progress,0));transform-origin:0;position:absolute;inset:auto .95rem .2rem}.tl-tab:where(.astro-7oli6vs2)[aria-pressed=false]:after{opacity:0}.tl-floor:where(.astro-7oli6vs2){fill:var(--space-fill);fill-opacity:.55;stroke:var(--space);stroke-opacity:.32;stroke-width:1px;stroke-linejoin:round}.tl-guide:where(.astro-7oli6vs2){fill:none;stroke:var(--dust);stroke-opacity:.3;stroke-width:.8px;stroke-dasharray:2 4}.tl-dots:where(.astro-7oli6vs2){fill:none;stroke:var(--space);stroke-linecap:round}.tl-faint:where(.astro-7oli6vs2){stroke-opacity:.35}.tl-outline:where(.astro-7oli6vs2){fill:var(--space-fill-on);stroke:var(--space);stroke-width:1.2px;stroke-linejoin:round}.tl-outline:where(.astro-7oli6vs2).tl-faint{fill:none;stroke-dasharray:3 3}.tl-arc:where(.astro-7oli6vs2){fill:none;stroke:var(--space);stroke-width:.7px;stroke-opacity:.32}.tl-p:where(.astro-7oli6vs2){fill:var(--space)}.tl-glow-stop:where(.astro-7oli6vs2){stop-color:var(--space)}.tl-p:where(.astro-7oli6vs2).is-depth-1{fill:color-mix(in srgb, var(--space) 75%, var(--star))}.tl-p:where(.astro-7oli6vs2).is-depth-2{fill:color-mix(in srgb, var(--space) 50%, var(--star))}.tl-labels:where(.astro-7oli6vs2){pointer-events:none;position:absolute;inset:0}.tl-label:where(.astro-7oli6vs2){white-space:nowrap;color:color-mix(in srgb, var(--space) 70%, var(--dust));font-family:var(--font-mono);font-size:.75rem;line-height:1;position:absolute;translate:0 -50%}.tl-detail:where(.astro-7oli6vs2){color:var(--dust);opacity:.8;margin-top:.3rem;display:block}.tl-label:where(.astro-7oli6vs2).is-end .tl-detail:where(.astro-7oli6vs2){text-align:right}.tl-label:where(.astro-7oli6vs2).is-middle{translate:-50% -50%}.tl-label:where(.astro-7oli6vs2).is-end{translate:-100% -50%}.tl-code:where(.astro-7oli6vs2){min-width:0}.tl-code:where(.astro-7oli6vs2) pre:where(.astro-7oli6vs2){border:1px solid var(--sky-line);background:var(--sky-1);font-family:var(--font-mono);margin:0;padding:.85rem 0;font-size:.8125rem;line-height:1.75;overflow-x:auto}.tl-code:where(.astro-7oli6vs2) code:where(.astro-7oli6vs2){min-width:max-content;display:block}.tl-line:where(.astro-7oli6vs2){color:var(--dust);white-space:pre;transition:background-color var(--dur-3) var(--ease-out), border-color var(--dur-3) var(--ease-out), color var(--dur-3) var(--ease-out);border-left:2px solid #0000;padding:0 1rem;display:block}.tl-line:where(.astro-7oli6vs2).is-current{border-left-color:var(--brand);background:var(--brand-fill);color:var(--star)}.tk-kw:where(.astro-7oli6vs2){color:var(--nebula)}.tk-fn:where(.astro-7oli6vs2),.tk-ctx:where(.astro-7oli6vs2){color:var(--brand)}.tk-num:where(.astro-7oli6vs2){color:var(--mars)}.tl-meta:where(.astro-7oli6vs2){font-family:var(--font-mono);color:var(--dust);flex-wrap:wrap;gap:.35rem .9rem;margin:.85rem 0 0;font-size:.75rem;display:flex}.tl-meta:where(.astro-7oli6vs2) span:where(.astro-7oli6vs2){transition:color var(--dur-2) var(--ease-out)}.tl-meta:where(.astro-7oli6vs2) span:where(.astro-7oli6vs2).is-done{color:color-mix(in srgb, var(--dust) 55%, var(--star))}.tl-meta:where(.astro-7oli6vs2) span:where(.astro-7oli6vs2).is-current{color:var(--star)}.tl-note:where(.astro-7oli6vs2){font-family:var(--font-mono);color:var(--dust);margin:.35rem 0 0;font-size:.75rem}@media (width<=599px){.tl-code:where(.astro-7oli6vs2) pre:where(.astro-7oli6vs2){font-size:.6875rem}.tl-line:where(.astro-7oli6vs2){padding:0 .65rem}}@container (width<=460px){.tl-label:where(.astro-7oli6vs2){white-space:normal;width:max-content;max-width:9.5ch;font-size:.625rem;line-height:1.15}.tl-label:where(.astro-7oli6vs2).is-end{text-align:right}.tl-detail:where(.astro-7oli6vs2){margin-top:.15rem}}.tl-links:where(.astro-wxigcrln){flex-wrap:wrap;gap:.5rem 1.75rem;margin:1.75rem 0 0;font-size:.9375rem;display:flex}.pp:where(.astro-xttci2al){--p:0;container-type:inline-size}.pp-ring:where(.astro-xttci2al){max-width:52rem;height:7.5rem;margin:0 auto .5rem;position:relative}.pp-ring-svg:where(.astro-xttci2al){width:100%;height:100%;position:absolute;inset:0;overflow:visible}.pp-ring-back:where(.astro-xttci2al),.pp-ring-front:where(.astro-xttci2al){fill:none;vector-effect:non-scaling-stroke;stroke-width:1px}.pp-ring-back:where(.astro-xttci2al){stroke:var(--sky-line);stroke-dasharray:2 4}.pp-ring-front:where(.astro-xttci2al){stroke:color-mix(in srgb, var(--brand) 45%, var(--sky-line))}.pp-spots:where(.astro-xttci2al){margin:0;padding:0;list-style:none}.pp-spot:where(.astro-xttci2al){left:var(--x);top:var(--y);position:absolute;translate:-50% -10px}.pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al){font-family:var(--font-mono);white-space:nowrap;cursor:pointer;color:var(--dust);opacity:calc(.3 + .7 * var(--depth));background:0 0;border:0;justify-items:center;gap:.125rem;padding:0 .375rem .25rem;font-size:.8125rem;display:grid}.pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al):hover,.pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al):focus-visible{color:var(--star);opacity:1}.pp-dot:where(.astro-xttci2al){width:20px;height:20px;scale:calc(.6 + .4 * var(--depth));display:block}.pp-dot:where(.astro-xttci2al) svg:where(.astro-xttci2al){width:100%;height:100%;display:block;overflow:visible}.pp-dot-core:where(.astro-xttci2al){fill:var(--sky-0);stroke:var(--dust);stroke-width:1.2px}.pp-dot-progress:where(.astro-xttci2al){fill:none;stroke:var(--brand);stroke-width:1.2px;stroke-dasharray:1 1;stroke-dashoffset:1px;transform-origin:50%;opacity:0;transform:rotate(-90deg)}.pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al)[aria-pressed=true]{color:var(--star)}.pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al)[aria-pressed=true] .pp-dot-core:where(.astro-xttci2al){fill:var(--brand);stroke:var(--brand)}.pp:where(.astro-xttci2al)[data-live=motion] .pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al)[aria-pressed=true] .pp-dot-progress:where(.astro-xttci2al){opacity:1;stroke-dashoffset:calc(1 - var(--p))}.pp-stage:where(.astro-xttci2al){background:radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--brand) 7%, transparent), transparent 70%), radial-gradient(circle, var(--sky-line) .7px, transparent 1px) center / 20px 20px;margin:0;position:relative}.pp-canvas:where(.astro-xttci2al){width:100%;height:100%;display:none;position:absolute;inset:0}.pp:where(.astro-xttci2al)[data-live] .pp-canvas:where(.astro-xttci2al){display:block}.pp-svg:where(.astro-xttci2al){width:100%;height:auto;font-family:var(--font-mono);display:block;position:relative;overflow:visible}.pp-svg:where(.astro-xttci2al).is-narrow{display:none}@container (width<600px){.pp-svg:where(.astro-xttci2al).is-wide{display:none}.pp-svg:where(.astro-xttci2al).is-narrow{display:block}.pp-ring:where(.astro-xttci2al){height:6.5rem}.pp-spot:where(.astro-xttci2al) button:where(.astro-xttci2al){font-size:.75rem}.pp-spot:where(.astro-xttci2al):not(:has(button[aria-pressed=true])) .pp-name:where(.astro-xttci2al){opacity:calc((var(--depth) - .55) * 3)}}.pp-probes:where(.astro-xttci2al){display:none}.pp-probes:where(.astro-xttci2al) span:where(.astro-xttci2al){color:var(--c)}.pp-ticks:where(.astro-xttci2al){fill:none;stroke:var(--dust);stroke-width:1px}.pp-plate:where(.astro-xttci2al){fill:var(--dust);letter-spacing:.14em;font-size:12.5px}.pp-st:where(.astro-xttci2al){opacity:0;visibility:hidden;transition:opacity .28s var(--ease-out), visibility 0s linear .28s}.pp-st:where(.astro-xttci2al).is-on{opacity:1;visibility:visible;transition:opacity .28s var(--ease-out)}.pp:where(.astro-xttci2al) .t-global{--c:var(--brand)}.pp:where(.astro-xttci2al) .t-shared{--c:var(--nebula)}.pp:where(.astro-xttci2al) .t-reg{--c:var(--star)}.pp:where(.astro-xttci2al) .t-cost{--c:var(--mars)}.pp:where(.astro-xttci2al) .t-dust{--c:var(--dust)}.pp:where(.astro-xttci2al) .t-line{--c:var(--sky-line)}.pp:where(.astro-xttci2al) .t-hi{--c:var(--brand-hi)}.pp-svg:where(.astro-xttci2al) .pp-label{fill:var(--c,var(--dust));font-variant-numeric:tabular-nums;white-space:pre;paint-order:stroke;stroke:var(--sky-0);stroke-width:6px;stroke-linejoin:round;font-size:12.5px}.pp-svg:where(.astro-xttci2al) .pp-label.is-strong{fill:var(--c,var(--star))}.pp-svg:where(.astro-xttci2al) .is-faint{opacity:.72}.pp-svg:where(.astro-xttci2al) .pp-code{white-space:pre;font-size:17px}.pp-svg:where(.astro-xttci2al) .pp-code.is-small{font-size:12.5px}.pp-svg:where(.astro-xttci2al) .pp-code tspan{fill:var(--c)}.pp-svg:where(.astro-xttci2al) .pp-code .t-line{fill:none}.pp-svg:where(.astro-xttci2al) .pp-band{fill:var(--brand-fill)}.pp-svg:where(.astro-xttci2al) .pp-glyph{fill:var(--c);stroke:var(--c);stroke-width:1px}.pp-svg:where(.astro-xttci2al) .pp-glyph.is-ring{fill:var(--sky-0);stroke-width:1.3px}.pp-svg:where(.astro-xttci2al) .pp-wire{fill:none;stroke:color-mix(in srgb, var(--c,var(--dust)) 50%, transparent);stroke-width:1px}.pp-svg:where(.astro-xttci2al) .pp-wire.is-faint{stroke:color-mix(in srgb, var(--c,var(--dust)) 30%, transparent);opacity:1}.pp-svg:where(.astro-xttci2al) .pp-wire.is-strong,.pp-svg:where(.astro-xttci2al) .pp-wire.is-back{stroke:var(--c);stroke-width:1.4px}.pp-svg:where(.astro-xttci2al) .pp-region{fill:color-mix(in srgb, var(--star) 3%, transparent);stroke:color-mix(in srgb, var(--star) 35%, transparent);stroke-dasharray:3 4}.pp-svg:where(.astro-xttci2al) .pp-region-box{fill:color-mix(in srgb, var(--star) 2.5%, transparent);stroke:var(--sky-line)}.pp-svg:where(.astro-xttci2al) .pp-region-box.is-loop{stroke:color-mix(in srgb, var(--brand) 55%, transparent)}.pp-svg:where(.astro-xttci2al) .pp-region-box.is-contract{stroke:color-mix(in srgb, var(--star) 45%, transparent)}.pp-svg:where(.astro-xttci2al) .pp-region-box.is-copy{stroke:color-mix(in srgb, var(--nebula) 50%, transparent)}.pp-svg:where(.astro-xttci2al) .pp-region-box.is-guard{stroke:color-mix(in srgb, var(--mars) 50%, transparent)}.pp-svg:where(.astro-xttci2al) .pp-strip{fill:none;stroke:color-mix(in srgb, var(--nebula) 55%, transparent)}.pp-svg:where(.astro-xttci2al) .pp-op{stroke:color-mix(in srgb, var(--c) 75%, transparent);stroke-width:1.5px}.pp-svg:where(.astro-xttci2al) .pp-tick{stroke:var(--dust)}.pp-svg:where(.astro-xttci2al) .pp-buf{fill:var(--nebula-fill-on);stroke:var(--nebula)}.pp-svg:where(.astro-xttci2al) .pp-buf.is-retiring{fill-opacity:0;stroke-opacity:.55;stroke-dasharray:3 3}.pp-svg:where(.astro-xttci2al) .pp-buf-label{fill:var(--star);stroke:none}.pp-svg:where(.astro-xttci2al) .pp-buf-label.is-retiring{opacity:.5}.pp-svg:where(.astro-xttci2al) .pp-barrier{stroke-width:2px}.pp-svg:where(.astro-xttci2al) .pp-barrier.is-kept{stroke:var(--nebula)}.pp-svg:where(.astro-xttci2al) .pp-barrier.is-elided{stroke:var(--dust);stroke-dasharray:2 3;opacity:.45}.pp-svg:where(.astro-xttci2al) .pp-cursor{stroke:var(--star);stroke-width:1px;opacity:0}.pp-svg:where(.astro-xttci2al) .pp-bar{fill:color-mix(in srgb, var(--c) 12%, transparent)}.pp-svg:where(.astro-xttci2al) .pp-cta{fill:color-mix(in srgb, var(--brand) 3%, transparent);stroke:color-mix(in srgb, var(--brand) 40%, var(--sky-line))}.pp-svg:where(.astro-xttci2al) .pp-warp{fill:none;stroke:color-mix(in srgb, var(--brand) 30%, transparent)}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-in{animation:pp-fade .7s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-glyph.pp-in{transform-box:fill-box;transform-origin:50%;animation:pp-pop .6s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-draw{stroke-dasharray:1 1;animation:pp-draw .9s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-cursor{animation:pp-sweep 4.6s linear var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-barrier.is-kept:not(.is-static){animation:pp-kept .9s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-barrier.is-elided:not(.is-static){animation:pp-elided 1.1s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-buf{animation:pp-drop .7s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-buf.is-retiring{animation:pp-drop .7s var(--ease-out) var(--d,0s) both, pp-retire .6s var(--ease-out) var(--l,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-buf-label{animation:pp-fade .5s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-buf-label.is-retiring{animation:pp-fade .5s var(--ease-out) var(--d,0s) both, pp-label-retire .6s var(--ease-out) var(--l,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-grow{transform-box:fill-box;transform-origin:0;animation:pp-grow .9s var(--ease-out) var(--d,0s) both}.pp:where(.astro-xttci2al)[data-live=motion] .pp-st:where(.astro-xttci2al).is-on .pp-warp{animation:pp-fade .5s var(--ease-out) var(--d,0s) both, pp-warp-light .9s var(--ease-out) var(--l,0s) both}@keyframes pp-fade{0%{opacity:0}}@keyframes pp-pop{0%{opacity:0;transform:scale(.2)}}@keyframes pp-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes pp-sweep{0%{opacity:0;transform:translate(0)}4%,94%{opacity:.85}to{transform:translateX(var(--sweep));opacity:0}}@keyframes pp-kept{0%{opacity:.12;stroke-width:2px}30%{opacity:1;stroke-width:5px}to{opacity:1;stroke-width:2px}}@keyframes pp-elided{0%{opacity:.12}25%{opacity:.9}to{opacity:.45}}@keyframes pp-drop{0%{opacity:0;transform:translateY(-90px)}}@keyframes pp-retire{0%{fill-opacity:1;stroke-opacity:1;stroke-dasharray:none}to{fill-opacity:0;stroke-opacity:.55;stroke-dasharray:3 3}}@keyframes pp-label-retire{0%{opacity:1}to{opacity:.5}}@keyframes pp-grow{0%{transform:scaleX(0)}}@keyframes pp-warp-light{0%{stroke:color-mix(in srgb, var(--brand) 8%, transparent)}30%{stroke:color-mix(in srgb, var(--brand) 70%, transparent)}}.pp-caps:where(.astro-xttci2al){max-width:54rem;margin-top:1rem;display:grid}.pp-cap:where(.astro-xttci2al){color:var(--dust);opacity:0;visibility:hidden;transition:opacity var(--dur-2) var(--ease-out), visibility 0s linear var(--dur-2);grid-area:1/1;margin:0;font-size:.9375rem;line-height:1.55}.pp-cap:where(.astro-xttci2al).is-on{opacity:1;visibility:visible;transition:opacity var(--dur-3) var(--ease-out)}.pp-cap:where(.astro-xttci2al) strong:where(.astro-xttci2al){color:var(--star);font-family:var(--font-mono);margin-right:.75rem;font-size:.875rem;font-weight:500}.pp-sr:where(.astro-xttci2al){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.pp-st:where(.astro-xttci2al),.pp-cap:where(.astro-xttci2al){transition:none}}.kb-wrap:where(.astro-balul3fv){container:kb/inline-size}.kb:where(.astro-balul3fv){--series-phobos:var(--brand);font-family:var(--font-mono);color:var(--star);margin:0}.kb-head:where(.astro-balul3fv){gap:.375rem;margin-bottom:1.25rem;display:grid}.kb-title:where(.astro-balul3fv){font-family:var(--font-sans);margin:0;font-size:1rem;font-weight:600}.kb-meta:where(.astro-balul3fv),.kb-size:where(.astro-balul3fv),.kb-legend:where(.astro-balul3fv),.kb-value:where(.astro-balul3fv),.kb-aside:where(.astro-balul3fv){color:var(--dust);font-size:.75rem;line-height:1.5}.kb-meta:where(.astro-balul3fv){margin:0}.kb-legend:where(.astro-balul3fv){flex-wrap:wrap;gap:.25rem 1.25rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.kb-key:where(.astro-balul3fv){align-items:center;gap:.5rem;display:inline-flex}.kb-key:where(.astro-balul3fv):before{content:"";background:var(--series-phobos);width:1rem;height:6px}.kb-key:where(.astro-balul3fv).is-cublas:before{background:var(--series-cublas)}.kb-row:where(.astro-balul3fv){border-top:1px solid var(--sky-line);grid-template-columns:minmax(12rem,1fr) minmax(0,1.6fr);align-items:start;column-gap:2rem;padding-block:.875rem;display:grid}.kb-name:where(.astro-balul3fv){gap:.25rem;min-width:0;font-size:.8125rem;display:grid}.kb-name:where(.astro-balul3fv) a:where(.astro-balul3fv){color:var(--star);text-decoration-color:var(--sky-line);text-underline-offset:.2em}.kb-name:where(.astro-balul3fv) a:where(.astro-balul3fv):hover{text-decoration-color:var(--brand)}.kb-plot:where(.astro-balul3fv){row-gap:.3125rem;min-width:0;display:grid}.kb-headline:where(.astro-balul3fv){font-variant-numeric:tabular-nums;font-size:.8125rem}.kb-headline:where(.astro-balul3fv).is-quiet{color:var(--dust)}.kb-bar-row:where(.astro-balul3fv){grid-template-columns:minmax(0,1fr) 12rem;align-items:center;gap:.75rem;display:grid}.kb-track:where(.astro-balul3fv){background:linear-gradient(var(--sky-line), var(--sky-line)) left center / 100% 1px no-repeat;border-right:1px solid var(--sky-line);height:8px;position:relative}.kb-bar:where(.astro-balul3fv){background:var(--series-phobos);height:100%;display:block}.kb-bar:where(.astro-balul3fv).is-cublas{background:var(--series-cublas)}.kb-value:where(.astro-balul3fv){font-variant-numeric:tabular-nums;white-space:nowrap}.kb-aside:where(.astro-balul3fv){max-width:34rem;font-family:var(--font-sans)}.kb-note:where(.astro-balul3fv){max-width:52rem;color:var(--dust);font-family:var(--font-sans);text-wrap:pretty;margin:1rem 0 0;font-size:.8125rem;line-height:1.5}@container kb (width<640px){.kb-row:where(.astro-balul3fv){grid-template-columns:minmax(0,1fr);row-gap:.5rem}.kb-bar-row:where(.astro-balul3fv){grid-template-columns:minmax(0,1fr) auto}.kb-of-peak:where(.astro-balul3fv){display:none}}.cn:where(.astro-2x2yirhm){margin-top:clamp(3rem,6vw,4.5rem)}.cn-title:where(.astro-2x2yirhm){font-size:1.1875rem}.cn-facts:where(.astro-2x2yirhm){gap:2.25rem var(--grid-gap);grid-template-columns:repeat(3,minmax(0,1fr));margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.cn-fact:where(.astro-2x2yirhm){border-top:1px solid var(--sky-line);flex-direction:column;min-width:0;padding-top:1rem;display:flex}.cn-cue:where(.astro-2x2yirhm){width:100%;max-width:15rem;height:auto;margin-bottom:.875rem;display:block;overflow:visible}.cn-label:where(.astro-2x2yirhm){color:var(--dust);font-family:var(--font-mono);margin:0;font-size:.8125rem}.cn-figure:where(.astro-2x2yirhm){color:var(--star);font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.1875rem;font-weight:600;line-height:1.35}.cn-text:where(.astro-2x2yirhm){color:var(--dust);text-wrap:pretty;margin:.5rem 0 0;font-size:.875rem;line-height:1.55}.cn-link:where(.astro-2x2yirhm){margin-top:.625rem;font-size:.875rem}.cn-source:where(.astro-2x2yirhm){max-width:52rem;color:var(--dust);margin:2rem 0 0;font-size:.8125rem;line-height:1.5}.cn-cue:where(.astro-2x2yirhm) .cn-axis{stroke:var(--sky-line);stroke-width:1px}.cn-cue:where(.astro-2x2yirhm) .cn-sweep{stroke:var(--star);stroke-width:1px;opacity:0}.cn-cue:where(.astro-2x2yirhm) .cn-tile{fill:var(--nebula);fill-opacity:.3;stroke:var(--nebula);stroke-width:1px;vector-effect:non-scaling-stroke}.cn-cue:where(.astro-2x2yirhm) .cn-barrier{stroke-width:1.5px}.cn-cue:where(.astro-2x2yirhm) .cn-barrier.is-kept{stroke:var(--nebula)}.cn-cue:where(.astro-2x2yirhm) .cn-barrier.is-elided{stroke:var(--dust);stroke-dasharray:2 3;opacity:.6}.cn-cue:where(.astro-2x2yirhm) .cn-slot{fill:none;stroke:var(--nebula);stroke-width:1px}.cn-cue:where(.astro-2x2yirhm) .cn-fill{fill:var(--brand-fill-on);transform-box:fill-box;transform-origin:bottom}.cn-cue:where(.astro-2x2yirhm) .cn-fill.is-slot-1{transform:scaleY(.5)}.cn-cue:where(.astro-2x2yirhm) .cn-frag{fill:var(--brand-fill);stroke:color-mix(in srgb, var(--brand) 55%, transparent);stroke-width:1px}.cn-cue:where(.astro-2x2yirhm) .cn-config{fill:var(--dust);opacity:.6}.cn-cue:where(.astro-2x2yirhm) .cn-chip{fill:var(--sky-0);stroke:var(--brand);stroke-width:1.3px}.cn-cue:where(.astro-2x2yirhm) .cn-chip-name{fill:var(--dust);font-family:var(--font-mono);font-size:12.5px}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-sweep{animation:cn-sweep var(--cn-period) linear infinite}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-tile{animation-duration:var(--cn-period);animation-timing-function:linear;animation-iteration-count:infinite}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-barrier.is-kept{animation:cn-pulse var(--cn-period) var(--ease-out) infinite backwards}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-fill{animation:cn-stage calc(var(--cn-period) / 2) var(--ease-in-out) infinite}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-fill.is-slot-1{animation-delay:calc(var(--cn-period) / -4)}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-frag{animation:cn-frag calc(var(--cn-period) / 2) var(--ease-out) infinite backwards}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-config{animation:cn-visit var(--cn-period) var(--ease-out) infinite backwards}.cn:where(.astro-2x2yirhm)[data-live=motion] .cn-chip{animation:cn-warm var(--cn-period) var(--ease-out) infinite backwards}@keyframes cn-sweep{0%,5%{opacity:0;transform:translate(0)}8%,82%{opacity:.7}85%{opacity:0;transform:translate(184px)}to{opacity:0;transform:translate(184px)}}@keyframes cn-pulse{0%{stroke-width:1.5px;stroke:var(--nebula)}3%{stroke-width:3.5px;stroke:var(--star)}12%,to{stroke-width:1.5px;stroke:var(--nebula)}}@keyframes cn-stage{0%{fill:var(--brand-fill-on);transform:scaleY(0)}45%{fill:var(--brand-fill-on);transform:scaleY(1)}55%{fill:var(--nebula-fill-on);transform:scaleY(1)}to{fill:var(--nebula-fill);transform:scaleY(0)}}@keyframes cn-frag{0%,to{fill:var(--brand-fill)}12%{fill:color-mix(in srgb, var(--brand) 55%, transparent)}40%{fill:var(--brand-fill)}}@keyframes cn-visit{0%{fill:var(--dust);opacity:.6}2%{fill:var(--brand);opacity:1}30%,to{fill:var(--dust);opacity:.6}}@keyframes cn-warm{0%{fill:var(--sky-0)}4%,60%{fill:var(--brand)}80%,to{fill:var(--sky-0)}}@media (width<=1100px){.cn-facts:where(.astro-2x2yirhm){grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.cn-facts:where(.astro-2x2yirhm){grid-template-columns:minmax(0,1fr)}}.inference-figures:where(.astro-izgn2c7i){gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.inference-figure:where(.astro-izgn2c7i){border-top:1px solid var(--sky-line);flex-direction:column;min-width:0;padding-top:1.25rem;display:flex}.inference-figure:where(.astro-izgn2c7i) h3:where(.astro-izgn2c7i){font-size:1.1875rem}.inference-figure:where(.astro-izgn2c7i) p:where(.astro-izgn2c7i){max-width:34rem;color:var(--dust);margin:.5rem 0 0;font-size:.9375rem;line-height:1.55}.inference-figure:where(.astro-izgn2c7i) .chart{margin:1.25rem 0 0}.inference-numbers:where(.astro-izgn2c7i){min-width:0;margin-top:clamp(2.5rem,5vw,4rem)}.inference-numbers:where(.astro-izgn2c7i) .slot-plate:where(.astro-izgn2c7i){min-height:22rem}@media (width<=900px){.inference-figures:where(.astro-izgn2c7i){grid-template-columns:minmax(0,1fr);row-gap:2.5rem}}.steps:where(.astro-ba4qppgp){gap:var(--grid-gap);counter-reset:step;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.step:where(.astro-ba4qppgp){border-top:1px solid var(--sky-line);counter-increment:step;flex-direction:column;align-items:flex-start;gap:.75rem;min-width:0;padding-top:1.25rem;display:flex}.step:where(.astro-ba4qppgp) h3:where(.astro-ba4qppgp){align-items:baseline;gap:.75rem;font-size:1.1875rem;display:flex}.step:where(.astro-ba4qppgp) h3:where(.astro-ba4qppgp):before{content:counter(step);color:var(--brand);font-family:var(--font-mono);font-size:.875rem}.step:where(.astro-ba4qppgp) p:where(.astro-ba4qppgp){color:var(--dust);margin:0;font-size:.9375rem}.step:where(.astro-ba4qppgp) p:where(.astro-ba4qppgp) code:where(.astro-ba4qppgp){color:var(--star)}.step:where(.astro-ba4qppgp) pre:where(.astro-ba4qppgp){border:1px solid var(--sky-line);background:var(--sky-1);width:100%;color:var(--star);white-space:pre-wrap;overflow-wrap:anywhere;margin:.25rem 0 0;padding:.875rem 1rem;font-size:.8125rem;line-height:1.55;overflow-x:auto}.step:where(.astro-ba4qppgp) .button:where(.astro-ba4qppgp){margin-top:.25rem}@media (width<=900px){.steps:where(.astro-ba4qppgp){grid-template-columns:minmax(0,1fr);gap:2rem}}
