.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/syne-latin-800-normal.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-latin-700-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2)format("woff2")}:root{color-scheme:dark;--c-bg:#070709;--c-surface:#101014;--c-raised:#19181f;--c-text:#f1eff5;--c-muted:#9996a5;--c-line:#302c3a;--c-violet:#a78aff;--c-violet-deep:#33225a;--c-violet-soft:#a78aff24;--c-violet-line:#a78aff8c;--f-display:"Syne", "Space Grotesk", system-ui, sans-serif;--f-sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--t-mono:.75rem;--t-small:.875rem;--t-body:clamp(1rem, .95rem + .2vw, 1.125rem);--t-lead:clamp(1.125rem, 1rem + .6vw, 1.5rem);--t-h3:clamp(1.375rem, 1.1rem + 1vw, 2rem);--t-h2:clamp(2.5rem, 1.6rem + 4vw, 5.5rem);--t-h1:clamp(3rem, 1.5rem + 6.5vw, 8rem);--gutter:clamp(1rem, .4rem + 2.6vw, 3rem);--section:clamp(6rem, 4rem + 9vw, 12rem);--maxw:1440px;--nav-h:4.5rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--d-micro:.18s;--d-hover:.32s;--d-reveal:.5s;--d-hero:.7s;--d-stagger:40ms}@media (prefers-reduced-motion:reduce){:root{--d-micro:1ms;--d-hover:.15s;--d-reveal:.15s;--d-hero:.15s;--d-stagger:0s}}.artifact{width:100%;height:100%;overflow:visible}.artifact *{vector-effect:non-scaling-stroke}.artifact-canopy .a-ground{stroke:var(--c-line);stroke-width:1px}.artifact-canopy .a-branches path{stroke:#6b5a99;stroke-width:1.1px;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke var(--d-hover) ease}.artifact-canopy .a-nodes circle{fill:var(--c-bg);stroke:#6b5a99;stroke-width:1px;transition:fill var(--d-hover) ease, stroke var(--d-hover) ease}.artifact-canopy .a-nodes .is-root{fill:var(--c-violet);stroke:var(--c-violet)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-canopy .a-branches path{stroke:var(--c-violet);animation:art-grow .56s var(--ease-out) both;animation-delay:calc(var(--depth) * 90ms - 90ms)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-canopy .a-nodes circle{stroke:var(--c-violet)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-canopy .a-nodes .is-leaf{fill:var(--c-violet);animation:art-pop .4s var(--ease-out) both;animation-delay:calc(var(--depth) * 90ms)}@keyframes art-grow{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes art-pop{0%{opacity:0}}.artifact-cliptera .a-frame rect,.artifact-cliptera .a-frame line{stroke:var(--c-line);stroke-width:1px}.artifact-cliptera .a-frame-corner{stroke:#6b5a99;stroke-width:1.2px;transition:stroke var(--d-hover) ease}.artifact-cliptera .a-axis{stroke:var(--c-line)}.artifact-cliptera .a-bars rect{fill:#4a4357;transition:fill var(--d-hover) ease}.artifact-cliptera .a-bars rect.in{fill:#7d6ab8}.artifact-cliptera .a-range{fill:var(--c-violet);fill-opacity:.07;transition:fill-opacity var(--d-hover) ease}.artifact-cliptera .a-range-edges line{stroke:var(--c-violet);stroke-width:1px;stroke-opacity:.6}.artifact-cliptera .a-playhead{transform:translateX(calc(var(--from) + (var(--to) - var(--from)) * .3));transition:transform var(--d-hover) var(--ease-out)}.artifact-cliptera .a-playhead line{stroke:var(--c-text);stroke-width:1px}.artifact-cliptera .a-playhead path{fill:var(--c-text)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-cliptera .a-playhead{animation:2.2s linear infinite art-play}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-cliptera .a-bars rect.in{fill:var(--c-violet)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-cliptera .a-range{fill-opacity:.16}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-cliptera .a-frame-corner{stroke:var(--c-violet)}@keyframes art-play{0%{transform:translateX(var(--from))}to{transform:translateX(var(--to))}}.artifact-lens .a-ring{transform-box:view-box;transform-origin:120px 120px;transition:transform .4s var(--ease-out), opacity .4s ease}.artifact-lens .a-ring ellipse{stroke:#6b5a99;stroke-width:1px}.artifact-lens .a-lens-core{fill:var(--c-violet)}.artifact-lens .a-structure path{stroke:var(--c-line);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .5s var(--ease-out) .12s}.artifact-lens .a-marks rect{fill:var(--c-muted);transition:transform .52s var(--ease-out), fill var(--d-hover) ease;transition-delay:calc(var(--i) * 14ms);transform:translate(0)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-lens .a-ring{transform:scale(calc(1.06 + var(--k) * .07));opacity:.55}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-lens .a-marks rect{transform:translate(var(--dx), var(--dy));fill:var(--c-violet)}:where(.art-host:hover,.art-host:focus-visible,.art-on) .artifact-lens .a-structure path{stroke-dashoffset:0}@media (prefers-reduced-motion:reduce){.artifact *,.artifact{transition-duration:.15s!important;transition-delay:0s!important;animation:none!important}}.pv{gap:1rem;min-width:0;display:grid}.pv-stage{border:1px solid var(--c-line);background:radial-gradient(ellipse at 50% 100%, #33225a59, transparent 65%), var(--c-surface);border-radius:4px;position:relative;overflow:hidden}.pv-stage svg{width:100%;height:auto}.pv-controls{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.pv-toggle{gap:.375rem;display:inline-flex}.pv-hint{font-size:.6875rem}.pv-hint code{color:var(--c-text);font-family:var(--f-mono);text-transform:none}.pv-hud{color:var(--c-muted);pointer-events:none;margin:0;font-size:.625rem;position:absolute;top:.75rem;left:.875rem}.pv-readout{color:var(--c-text);font-variant-numeric:tabular-nums}.pv-stage--canopy{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}.pv-stage--canopy.is-dragging{cursor:grabbing}.canopy-svg text{font-family:var(--f-mono);fill:var(--c-muted);letter-spacing:.04em;font-size:12px}.canopy-svg .cv-file-label{font-size:11px}.cv-ground{stroke:var(--c-line)}.cv-edges path{stroke:#6b5a99;stroke-width:1.2px;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke var(--d-hover) ease, opacity var(--d-hover) ease}.cv-node circle{fill:var(--c-bg);stroke:var(--c-violet);stroke-width:1px;vector-effect:non-scaling-stroke}.cv-node{transition:opacity var(--d-hover) ease}.cv-root circle{fill:var(--c-violet)}.cv-root text{fill:var(--c-text)}.cv-crate{cursor:pointer;outline:none}.cv-crate .cv-hit{fill:#0000;stroke:none}.cv-crate text{fill:var(--c-text)}.cv-crate:hover circle:not(.cv-hit),.cv-crate:focus-visible circle:not(.cv-hit),.cv-crate.is-focus circle:not(.cv-hit){fill:var(--c-violet)}.cv-crate:focus-visible .cv-hit{stroke:var(--c-violet);stroke-width:1.5px;vector-effect:non-scaling-stroke}.canopy-svg[data-focus] .cv-edges path:not(.is-on),.canopy-svg[data-focus] .cv-node:not(.is-on){opacity:.22}.canopy-svg .cv-edges path.is-on{stroke:var(--c-violet)}.pv-stage--cliptera{touch-action:pan-y}.cliptera-svg text,.cl-text{font-family:var(--f-mono);fill:var(--c-muted);letter-spacing:.06em;font-size:11px}.cl-tc{fill:var(--c-text);font-variant-numeric:tabular-nums}.cl-frame line,.cl-frame-box{fill:none;stroke:var(--c-line)}.cl-horizon{stroke:#4a4357!important}.cl-corners{fill:none;stroke:var(--c-violet);stroke-width:1.4px}.cl-subject{fill:#a78aff0f;stroke:var(--c-violet);stroke-opacity:.7}.cl-subject-core{fill:var(--c-violet)}.cl-rec{fill:#4a4357}.pv-cliptera.is-playing .cl-rec{fill:var(--c-violet)}.cl-ruler line{stroke:var(--c-line)}.cl-range{fill:var(--c-violet);fill-opacity:.12}.cl-bars rect{fill:#4a4357;transition:fill .16s}.cl-bars rect.is-past{fill:#6b5a99}.cl-bars rect.in{fill:var(--c-violet)}.cl-in,.cl-out{stroke:var(--c-violet);stroke-width:1.5px;opacity:0}.cl-in.is-set,.cl-out.is-set{opacity:1}.cl-playhead line{stroke:var(--c-text)}.cl-playhead path{fill:var(--c-text)}.cl-hit{fill:#0000;cursor:pointer}.cl-steps{flex-wrap:wrap;gap:.375rem;display:flex}.cl-steps li{border:1px solid var(--c-line);color:var(--c-muted);transition:color var(--d-hover) ease, border-color var(--d-hover) ease;border-radius:999px;align-items:center;gap:.375rem;padding:.3rem .625rem;font-size:.6875rem;display:inline-flex}.cl-steps li+li:before{content:"→";color:var(--c-line);margin-right:.125rem}.cl-steps li.is-done{color:var(--c-text)}.cl-steps li[aria-current=step]{color:var(--c-bg);background:var(--c-violet);border-color:var(--c-violet)}.cl-clips{gap:.5rem;display:grid}.cl-clips>p{font-size:.6875rem}.cl-clip-list{text-transform:none;flex-wrap:wrap;gap:.375rem;display:flex}.cl-clip-list li{border:1px solid var(--c-violet-line);border-radius:2px;padding:.3rem .625rem;font-size:.75rem}.cl-clip-list li[data-cl-empty]{border:0;padding-inline:0}.lens-svg text{font-family:var(--f-mono);letter-spacing:.02em;font-size:11px}.lf-title{fill:var(--c-text);letter-spacing:.08em!important}.lf-sub{fill:var(--c-muted)}.lf-head line{stroke:var(--c-line)}.lf-ring{transform-box:view-box;transform-origin:400px 300px;opacity:0}.lf-ring ellipse{fill:none;stroke:#6b5a99;vector-effect:non-scaling-stroke}.lf-core{fill:var(--c-violet);opacity:0}.lf-mark,.lf-file[data-lang=Rust] .lf-mark{fill:var(--c-violet)}.lf-file:not([data-lang=Rust]) .lf-mark{fill:var(--c-muted)}.lf-label{fill:var(--c-text)}.lf-val{fill:var(--c-muted);font-variant-numeric:tabular-nums}.case-extra{margin-top:var(--section);gap:2.5rem;display:grid}.extra-head{gap:.75rem;display:grid}.lens-mobile-list{display:none}@media (width<=599px){.lens-svg text{display:none}.lens-mobile-list{border-top:1px solid var(--c-line);text-transform:none;letter-spacing:.02em;display:grid}.lens-mobile-list li{border-bottom:1px solid var(--c-line);justify-content:space-between;gap:1rem;padding-block:.5rem;font-size:.75rem;display:flex}}@media (prefers-reduced-motion:no-preference){.core-svg--build .cs-course{animation:cs-lay .56s var(--ease-out) both;animation-delay:calc(var(--f) * var(--bt))}.core-svg--build .cs-edge{transform-box:view-box;transform-origin:var(--ox) var(--oy);animation-name:cs-rise;animation-timing-function:linear;animation-fill-mode:both;animation-delay:calc(var(--f0) * var(--bt));animation-duration:calc((var(--f1) - var(--f0)) * var(--bt))}.core-svg--build .core-svg-dot{animation:cs-dot .9s var(--ease-out) both;animation-delay:calc(var(--bt) * .55)}}@keyframes cs-lay{0%{opacity:0;stroke:var(--c-text);transform:translateY(-6px)}38%{opacity:1;stroke:var(--c-text);transform:translateY(0)}to{opacity:1;stroke:var(--c-violet);transform:translateY(0)}}@keyframes cs-rise{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes cs-dot{0%{opacity:0}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.core-svg--build.human-core-svg{view-timeline:--core-build block}.core-svg--build.human-core-svg .cs-course,.core-svg--build.human-core-svg .cs-edge,.core-svg--build.human-core-svg .core-svg-dot{animation-duration:auto;animation-delay:0s;animation-timeline:--core-build}.core-svg--build.human-core-svg .cs-course{animation-range:contain calc(var(--f) * 42%) contain calc(var(--f) * 42% + 12%)}.core-svg--build.human-core-svg .cs-edge{animation-range:contain calc(var(--f0) * 42%) contain calc(var(--f1) * 42%)}.core-svg--build.human-core-svg .core-svg-dot{animation-range:contain 20% contain 50%}}}@media (prefers-reduced-motion:no-preference){[data-core][data-mode=svg] .core-fallback .core-svg-wires{transform-box:view-box;transform-origin:50% var(--base-y,70%);transform:translateY(calc(var(--sink,0) * 3%)) scaleY(calc(1 - var(--sink,0) * .82)) skewX(calc(var(--sink,0) * -10deg));opacity:calc(1 - var(--sink,0) * .9)}[data-core][data-mode=svg] .core-fallback .core-svg-orbits{opacity:calc(1 - var(--sink,0) * .9)}}@property --bt-b{syntax:"<number>";inherits:true;initial-value:1}@property --bt-s{syntax:"<number>";inherits:true;initial-value:0}.bt{isolation:isolate;--bt-d:.275em;--bt-y0:-.032em;--bt-h:.704em;--bt-c:calc(var(--bt-h) / 8);--bt-ghost:#a78affd9;--bt-mason:var(--c-violet);--bt-fresh:167 138 255;--bt-joint:max(1px, .011em)}.bt .violet{--bt-ghost:var(--c-violet);--bt-mason:var(--c-text);--bt-fresh:241 239 245}.bt-run,.bt-char,.bt-ghost{position:relative}.bt-char,.bt-ghost{--bt-f:calc(var(--bt-d) + var(--bt-y0) + var(--bt-b) * var(--bt-h));--bt-fx:calc(var(--bt-f) + max(0, var(--bt-b) - .999) * 1000em)}.bt-char[data-bt],html.js .bt[data-build=load]:not([data-bt-live]) .bt-char{-webkit-text-fill-color:transparent;background-image: repeating-linear-gradient(to top, transparent 0 calc(var(--bt-c) - var(--bt-joint)), rgb(7 7 9/calc(var(--bt-s) * .62)) 0 var(--bt-c)),  linear-gradient(to top, transparent calc(var(--bt-f) - var(--bt-c)), rgb(var(--bt-fresh) / calc(var(--bt-s) * .55)) 0 var(--bt-f), transparent 0),  linear-gradient(to top, currentColor var(--bt-fx), transparent 0);background-size:100% calc(var(--bt-b) * var(--bt-h)), 100% 100%, 100% 100%;background-position:left 0 bottom calc(var(--bt-d) + var(--bt-y0)), 0 0, 0 0;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text}.bt-scaffold{z-index:-1;white-space:pre;pointer-events:none;user-select:none;line-height:1.2;display:block;position:absolute;top:0;left:0}.bt-ghost:before{content:attr(data-c) / "";clip-path:inset(-.2em -.2em var(--bt-fx) -.2em);visibility:hidden;color:#0000;-webkit-text-fill-color:transparent;-webkit-text-stroke:max(1px, .008em) var(--bt-ghost);display:inline-block}.bt-ghost--gap:before{-webkit-text-stroke:0}.bt-ghost:after{content:"";left:-.06em;right:-.02em;bottom:var(--bt-f);border-inline:max(1px, .01em) solid var(--bt-mason);background:linear-gradient(var(--bt-mason), var(--bt-mason)) 0 100% / 100% max(1px, .008em) no-repeat;height:max(5px,.045em);opacity:var(--bt-s);display:none;position:absolute}.bt-ghost[data-bt]:before,html.js .bt[data-build=load]:not([data-bt-live]) .bt-ghost:before{visibility:visible}.bt-ghost[data-bt]:not(.bt-ghost--gap):after,html.js .bt[data-build=load]:not([data-bt-live]) .bt-ghost:not(.bt-ghost--gap):after{display:block}@media (prefers-reduced-motion:no-preference){html.js .bt[data-build=load]:not([data-bt-live]) :is(.bt-char,.bt-ghost){--bt-b:0;--bt-s:1;animation:.9s ease-out 3.6s both bt-failsafe}}@keyframes bt-failsafe{0%{--bt-b:0;--bt-s:1}75%{--bt-b:1;--bt-s:1}to{--bt-b:1;--bt-s:0}}.bt-rubble{opacity:.9;pointer-events:none;background:currentColor;display:block;position:absolute}.bt-rubble--dust{opacity:.6}.bt-xray{--bt-xe:96px;inset:calc(-1 * var(--bt-xe));z-index:1;padding:var(--bt-xe);white-space:pre;pointer-events:none;user-select:none;visibility:hidden;clip-path:circle(0);background: repeating-linear-gradient(to bottom, #a78aff57 0 1px, transparent 0 var(--bt-c)) left 0 top calc(var(--bt-xe) + .253em) / 100% calc(var(--bt-h) + 1px) no-repeat, linear-gradient(to right, #a78aff14 1px, transparent 0) 0 0 / 22px 22px, linear-gradient(to bottom, #a78aff14 1px, transparent 0) 0 0 / 22px 22px, #070709e6;line-height:1.2;display:block;position:absolute}.bt-xray.is-on{visibility:visible}.bt-twin{--bt-f:calc(var(--bt-d) + var(--bt-y0) + var(--bt-b) * var(--bt-h));background:linear-gradient(to top, transparent calc(var(--bt-f) - 1px), rgb(167 138 255/var(--bt-s)) 0 calc(var(--bt-f) + 1.5px), transparent 0) 0 0 / 100% 100% no-repeat, linear-gradient(to right, transparent calc(50% - .5px), #a78aff47 0 calc(50% + .5px), transparent 0) left 0 bottom calc(var(--bt-d) + var(--bt-y0) - .08em) / 100% calc(var(--bt-h) + .16em) no-repeat;position:relative}.bt-twin:before{content:attr(data-c) / "";color:#0000;-webkit-text-fill-color:transparent;-webkit-text-stroke:max(1px, .007em) var(--c-violet)}.bt-twin--gap{background:0 0}.bt-twin--gap:before{-webkit-text-stroke:0}.bt-twin:not(.bt-twin--gap):after{content:attr(data-c) / "";white-space:pre;color:#0000;-webkit-text-fill-color:transparent;background-image:repeating-linear-gradient(to bottom, #a78aff99 0 max(1px, .008em), transparent 0 var(--bt-c)), linear-gradient(to top, #a78aff4d var(--bt-f), transparent 0);background-size:100% var(--bt-h), 100% 100%;background-position:left 0 bottom calc(var(--bt-d) + var(--bt-y0)), 0 0;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;line-height:1.2;position:absolute;top:0;left:0}.bt-lens-ring{z-index:2;border:1px solid var(--c-violet-line);pointer-events:none;visibility:hidden;will-change:transform;border-radius:50%;width:140px;height:140px;margin:-70px 0 0 -70px;position:absolute;top:0;left:0}.bt-lens-ring.is-on{visibility:visible}.bt-lens-ring:before{content:"";background:linear-gradient(var(--c-violet), var(--c-violet)) 50% 50% / 1px 100% no-repeat, linear-gradient(var(--c-violet), var(--c-violet)) 50% 50% / 100% 1px no-repeat;opacity:.8;width:13px;height:13px;position:absolute;top:50%;left:50%;translate:-50% -50%}.bt-lens-tag{z-index:2;pointer-events:none;visibility:hidden;will-change:transform;display:block;position:absolute;top:0;left:0}.bt-lens-tag.is-on{visibility:visible}.bt-lens-tag:before{content:"";background:var(--c-violet-line);width:1px;height:10px;position:absolute;bottom:100%;left:0}.bt-lens-tag:after{content:attr(data-label) / "";font-family:var(--f-mono);letter-spacing:.14em;white-space:nowrap;color:var(--c-violet);font-size:10px;font-weight:500;line-height:1;position:absolute;top:2px;left:-.5em}@media (prefers-reduced-motion:reduce){.bt-xray,.bt-lens-ring,.bt-lens-tag,.bt-rubble{display:none}}@media (forced-colors:active){.bt-char[data-bt],html.js .bt[data-build=load]:not([data-bt-live]) .bt-char{-webkit-text-fill-color:currentColor;background:0 0}.bt-scaffold,.bt-xray,.bt-lens-ring,.bt-lens-tag{display:none!important}}.sand-canvas{z-index:290;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}[data-scan]{position:relative}[data-scan] .line{transform:skewX(var(--drift,0deg));transform-origin:0 100%}[data-scan].is-scanned .line{animation:.9s steps(9,end) both course-in}[data-scan].is-scanned .line+.line{animation-delay:.16s}[data-scan].is-scanned:after{content:"";background:var(--c-violet);pointer-events:none;height:1px;animation:1.1s steps(11,end) both mason-scan;position:absolute;left:-.5rem;right:-.5rem}@keyframes course-in{0%{clip-path:inset(100% -5% 0)}to{clip-path:inset(-10% -5%)}}@keyframes mason-scan{0%{opacity:1;bottom:0}85%{opacity:1}to{opacity:0;bottom:100%}}.u-pulse{fill:var(--c-violet)}.u-art.is-echo:after{content:"";border:1px solid var(--c-violet);pointer-events:none;border-radius:50%;animation:.9s ease-out forwards art-echo;position:absolute;inset:6%}@keyframes art-echo{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@media (prefers-reduced-motion:reduce){[data-scan] .line{transform:none}.sand-canvas,.u-pulse{display:none}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 1rem);background:var(--c-bg)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--c-bg);min-height:100vh;color:var(--c-text);font-family:var(--f-sans);font-size:var(--t-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.55;overflow-x:clip}img,svg,canvas{max-width:100%;display:block}a{color:inherit;text-decoration-color:var(--c-violet-line);text-underline-offset:.2em}h1,h2,h3,h4,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}button,input{font:inherit;color:inherit}::selection{background:var(--c-violet);color:var(--c-bg)}:focus-visible{outline:2px solid var(--c-violet);outline-offset:3px;border-radius:2px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:200;background:var(--c-text);color:var(--c-bg);font-family:var(--f-mono);font-size:var(--t-mono);letter-spacing:.08em;padding:.75rem 1rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section);position:relative}.rule{background:var(--c-line);border:0;height:1px;margin:0}.mono{font-family:var(--f-mono);font-size:var(--t-mono);letter-spacing:.08em;text-transform:uppercase;font-weight:400;line-height:1.5}.muted{color:var(--c-muted)}.violet{color:var(--c-violet)}.eyebrow{color:var(--c-muted);align-items:center;gap:.75rem;display:flex}.eyebrow:before{content:"";background:var(--c-violet);flex:none;width:1.5rem;height:1px}.display{font-family:var(--f-display);letter-spacing:-.02em;font-weight:800;line-height:.9}.h2{font-family:var(--f-sans);font-weight:500;font-size:var(--t-h2);letter-spacing:-.035em;text-wrap:balance;line-height:.98}.h3{font-family:var(--f-sans);font-weight:500;font-size:var(--t-h3);letter-spacing:-.02em;line-height:1.15}.lead{font-size:var(--t-lead);color:var(--c-text);line-height:1.4}.line{display:block}.tag{border:1px solid var(--c-line);min-height:1.75rem;color:var(--c-text);white-space:nowrap;border-radius:999px;align-items:center;padding:.25rem .625rem;display:inline-flex}.btn{--btn-bg:transparent;--btn-fg:var(--c-text);--btn-bd:var(--c-line);border:1px solid var(--btn-bd);background:var(--btn-bg);min-height:3rem;color:var(--btn-fg);font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color var(--d-micro) ease, color var(--d-micro) ease, border-color var(--d-micro) ease;touch-action:manipulation;border-radius:999px;justify-content:space-between;align-items:center;gap:1.25rem;padding:.875rem 1.25rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.btn .arrow{transition:transform var(--d-micro) var(--ease-out);display:inline-block}.btn:hover .arrow,.btn:focus-visible .arrow{transform:translate(6px)}.btn[data-arrow=back]:hover .arrow,.btn[data-arrow=back]:focus-visible .arrow{transform:translate(-6px)}.btn:hover,.btn:focus-visible{--btn-bd:var(--c-violet);--btn-fg:var(--c-text)}.btn--primary{--btn-bg:var(--c-text);--btn-fg:var(--c-bg);--btn-bd:var(--c-text)}.btn--primary:hover,.btn--primary:focus-visible{--btn-bg:var(--c-violet);--btn-fg:var(--c-bg);--btn-bd:var(--c-violet)}.btn--large{min-height:3.5rem;padding:1rem 1.5rem;font-size:.875rem}.btn--small{gap:.75rem;min-height:2.75rem;padding:.5rem 1rem;font-size:.75rem}.btn[aria-pressed=true]{--btn-bd:var(--c-violet);--btn-bg:var(--c-violet-soft)}.text-link{min-height:44px;font-family:var(--f-mono);font-size:var(--t-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);transition:color var(--d-micro) ease;align-items:center;gap:.625rem;text-decoration:none;display:inline-flex}.text-link:hover,.text-link:focus-visible{color:var(--c-text)}.text-link .arrow{transition:transform var(--d-micro) var(--ease-out)}.text-link:hover .arrow,.text-link:focus-visible .arrow{transform:translate(-6px)}.text-link[data-arrow=fwd]:hover .arrow,.text-link[data-arrow=fwd]:focus-visible .arrow{transform:translate(6px)}[data-reveal]{will-change:auto}.ambient{z-index:0;pointer-events:none;transition:opacity .6s;position:fixed;inset:0}.ambient svg{width:100%;height:100%}.ambient line{stroke:var(--c-line);stroke-width:1px;vector-effect:non-scaling-stroke}.ambient .guide{stroke:#302c3a73}main,.site-footer{z-index:1;position:relative}::view-transition-group(*){animation-duration:.7s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-old(root),::view-transition-new(root){animation-duration:.32s}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.15s!important}}.enter-seed{z-index:61;border:1px solid var(--c-violet);pointer-events:none;border-radius:50%;position:fixed}html.menu-open{overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.site-header[data-astro-cid-bkou4nwm]{z-index:50;-webkit-backdrop-filter:blur(10px);background:linear-gradient(#070709eb,#070709b8);position:sticky;top:0}.header-inner[data-astro-cid-bkou4nwm]{height:var(--nav-h);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.brand[data-astro-cid-bkou4nwm]{justify-self:start;align-items:center;gap:.75rem;min-height:44px;text-decoration:none;display:inline-flex}.brand-mark[data-astro-cid-bkou4nwm]{font-family:var(--f-display);letter-spacing:-.02em;transition:color var(--d-micro) ease;font-size:1.375rem;font-weight:800}.brand[data-astro-cid-bkou4nwm]:hover .brand-mark[data-astro-cid-bkou4nwm],.brand[data-astro-cid-bkou4nwm]:focus-visible .brand-mark[data-astro-cid-bkou4nwm]{color:var(--c-violet)}.brand-name[data-astro-cid-bkou4nwm]{color:var(--c-muted)}.primary-nav[data-astro-cid-bkou4nwm] ul[data-astro-cid-bkou4nwm]{gap:clamp(1.25rem,3vw,3rem);display:flex}.nav-link[data-astro-cid-bkou4nwm]{min-height:44px;color:var(--c-muted);transition:color var(--d-micro) ease;align-items:center;text-decoration:none;display:inline-flex;position:relative}.nav-link[data-astro-cid-bkou4nwm]:after{content:"";background:var(--c-violet);transform-origin:0;height:1px;transition:transform var(--d-hover) var(--ease-out);position:absolute;bottom:10px;left:0;right:0;transform:scaleX(0)}.nav-link[data-astro-cid-bkou4nwm]:hover,.nav-link[data-astro-cid-bkou4nwm]:focus-visible,.nav-link[data-astro-cid-bkou4nwm][aria-current=true]{color:var(--c-text)}.nav-link[data-astro-cid-bkou4nwm]:hover:after,.nav-link[data-astro-cid-bkou4nwm]:focus-visible:after,.nav-link[data-astro-cid-bkou4nwm][aria-current=true]:after{transform:scaleX(1)}.signal[data-astro-cid-bkou4nwm]{color:var(--c-muted);justify-self:end;align-items:center;gap:.625rem;margin:0;display:inline-flex}.signal-dot[data-astro-cid-bkou4nwm]{background:var(--c-violet);border-radius:50%;width:7px;height:7px;animation:3.2s ease-in-out infinite signal;box-shadow:0 0 #a78aff80}@keyframes signal{0%,to{box-shadow:0 0 #a78aff73}50%{box-shadow:0 0 0 5px #a78aff00}}.header-rule[data-astro-cid-bkou4nwm]{opacity:.8}.menu-toggle[data-astro-cid-bkou4nwm]{min-width:44px;min-height:44px;color:var(--c-text);justify-self:end;align-items:center;gap:.75rem;padding-inline:.25rem;text-decoration:none;display:none}.menu-glyph[data-astro-cid-bkou4nwm]{width:18px;height:8px;transition:transform var(--d-micro) ease;border-top:1px solid;border-bottom:1px solid;position:relative}.menu[data-astro-cid-bkou4nwm]{inset:var(--nav-h) 0 0 0;z-index:49;background:var(--c-bg);border-top:1px solid var(--c-line);display:none;position:fixed;overflow-y:auto}.menu[data-astro-cid-bkou4nwm]:target,.menu[data-astro-cid-bkou4nwm].is-open{display:block}.menu-inner[data-astro-cid-bkou4nwm]{gap:2.5rem;padding-block:2rem 4rem;display:grid}.menu-list[data-astro-cid-bkou4nwm]{border-top:1px solid var(--c-line);display:grid}.menu-link[data-astro-cid-bkou4nwm]{border-bottom:1px solid var(--c-line);min-height:64px;font-family:var(--f-display);align-items:baseline;gap:1rem;padding-block:.75rem;font-size:clamp(2rem,9vw,3.5rem);font-weight:800;line-height:1.1;text-decoration:none;display:flex}.menu-link[data-astro-cid-bkou4nwm]:hover,.menu-link[data-astro-cid-bkou4nwm]:focus-visible{color:var(--c-violet)}.menu-projects[data-astro-cid-bkou4nwm] ul[data-astro-cid-bkou4nwm]{gap:.25rem;margin-top:.75rem;display:grid}.menu-project[data-astro-cid-bkou4nwm]{align-items:center;gap:.75rem;min-height:44px;font-size:1.25rem;text-decoration:none;display:flex}.menu-gh[data-astro-cid-bkou4nwm],.menu-close[data-astro-cid-bkou4nwm]{justify-self:start}@media (width<=899px){.header-inner[data-astro-cid-bkou4nwm]{grid-template-columns:1fr auto}.primary-nav[data-astro-cid-bkou4nwm],.signal[data-astro-cid-bkou4nwm]{display:none}.menu-toggle[data-astro-cid-bkou4nwm]{display:inline-flex}}@media (width>=900px){.menu[data-astro-cid-bkou4nwm],.menu[data-astro-cid-bkou4nwm]:target,.menu[data-astro-cid-bkou4nwm].is-open{display:none}}@media (prefers-reduced-motion:reduce){.signal-dot[data-astro-cid-bkou4nwm]{animation:none}}.system-bar[data-astro-cid-v2ntwfoy]{z-index:40;padding:.875rem var(--gutter);color:var(--c-muted);pointer-events:none;font-variant-numeric:tabular-nums;background:linear-gradient(#07070900,#070709d9);justify-content:space-between;gap:1rem;font-size:.6875rem;display:flex;position:fixed;bottom:0;left:0;right:0}.sb-left[data-astro-cid-v2ntwfoy],.sb-right[data-astro-cid-v2ntwfoy]{white-space:nowrap;align-items:center;gap:1.5rem;display:flex}.sb-os[data-astro-cid-v2ntwfoy]{color:var(--c-text)}.sb-sep[data-astro-cid-v2ntwfoy]{background:var(--c-line);width:1.5rem;height:1px}.sb-state[data-astro-cid-v2ntwfoy]{color:var(--c-text);align-items:center;gap:.5rem;display:inline-flex}.sb-dot[data-astro-cid-v2ntwfoy]{background:var(--c-violet);border-radius:50%;width:5px;height:5px}@media (width<=899px){.system-bar[data-astro-cid-v2ntwfoy]{display:none}}.cursor[data-astro-cid-tejg73bv]{z-index:300;pointer-events:none;opacity:0;will-change:transform;transition:opacity .2s;position:fixed;top:0;left:0}html.has-cursor .cursor[data-astro-cid-tejg73bv].is-visible{opacity:1}.cursor-ring[data-astro-cid-tejg73bv]{border:1px solid var(--c-violet);width:12px;height:12px;transition:transform .25s var(--ease-out), background-color .25s ease;border-radius:50%;position:absolute;top:-6px;left:-6px}.cursor[data-astro-cid-tejg73bv].is-active .cursor-ring[data-astro-cid-tejg73bv]{background:#a78aff1f;transform:scale(2.4)}.cursor[data-astro-cid-tejg73bv].is-down .cursor-ring[data-astro-cid-tejg73bv]{transform:scale(.7)}.cursor-label[data-astro-cid-tejg73bv]{background:var(--c-violet);color:var(--c-bg);white-space:nowrap;opacity:0;transition:opacity .18s ease, transform .18s var(--ease-out);border-radius:999px;padding:.25rem .5rem;font-size:.625rem;font-weight:500;position:absolute;top:14px;left:22px;transform:translateY(4px)}.cursor[data-astro-cid-tejg73bv].has-label .cursor-label[data-astro-cid-tejg73bv]{opacity:1;transform:none}.site-footer[data-astro-cid-ybezn5ct]{border-top:1px solid var(--c-line);padding-block:1.5rem 4.5rem}.footer-inner[data-astro-cid-ybezn5ct]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem;display:flex}.footer-os[data-astro-cid-ybezn5ct]{color:var(--c-text)}.footer-built[data-astro-cid-ybezn5ct]{font-size:.6875rem}@media (width<=899px){.site-footer[data-astro-cid-ybezn5ct]{padding-bottom:2rem}}
