*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color .25s var(--ease-out),color .25s var(--ease-out)}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-weight:var(--weight-display);line-height:1.12;letter-spacing:var(--tracking-display);text-wrap:balance}p{text-wrap:pretty}code,pre{font-family:var(--font-mono);font-size:.8125rem;font-feature-settings:"ss01"}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:1.5px solid var(--accent);outline-offset:3px;border-radius:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,3rem)}.container--narrow{max-width:var(--container-narrow)}.section{padding-block:var(--section-gap)}.section--ruled{border-top:1px solid var(--border)}.section.invert{border-top:none;padding-block:calc(var(--section-gap) * 1.12)}.section.invert+.section--ruled{border-top:none}.skip-link{position:absolute;top:-3rem;left:1rem;z-index:100;padding:.6rem 1rem;border-radius:var(--radius-sm);background:var(--md-inverse-surface);color:var(--md-inverse-on-surface);font-size:.875rem;font-weight:var(--weight-label);transition:top var(--dur-short-out) var(--ease-out)}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.section-head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:1rem 3.5rem;align-items:end;margin-bottom:clamp(3rem,6vw,4.5rem);padding-bottom:1.75rem;border-bottom:1px solid var(--border)}.section-index{grid-column:1 / -1;display:block;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:var(--tracking-label);font-weight:var(--weight-label);color:var(--accent);margin-bottom:.75rem}.section-title{font-size:var(--fs-title);letter-spacing:var(--tracking-title)}.section-subtitle{font-size:1rem;color:var(--text-secondary);max-width:var(--measure);padding-bottom:.35rem}@media(max-width:860px){.section-head{grid-template-columns:1fr;gap:.85rem}.section-subtitle{padding-bottom:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.625rem 1.5rem;border-radius:var(--radius-full);font-size:.875rem;font-weight:var(--weight-label);letter-spacing:0;white-space:nowrap;transition:background-color var(--dur-short-out) var(--ease-out),border-color var(--dur-short-out) var(--ease-out),color var(--dur-short-out) var(--ease-out)}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{background:var(--accent-fill-hover)}.btn--ghost{border:1px solid var(--border-strong);color:var(--accent)}.btn--ghost:hover{border-color:var(--accent);background:var(--state-hover)}.btn--disabled,.btn--disabled:hover{border:none;color:color-mix(in srgb,var(--text) 38%,transparent);background:color-mix(in srgb,var(--text) 12%,transparent);cursor:not-allowed}.link-arrow{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;font-weight:520;color:var(--accent);transition:gap .18s var(--ease-out),color .18s var(--ease-out)}.link-arrow:hover{gap:.55rem;color:var(--accent-hover)}.reveal{opacity:0}.reveal[data-revealed]{animation:reveal-in .6s var(--ease-out) forwards}@keyframes reveal-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.aura-host{position:relative;isolation:isolate}.aura{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;overflow:hidden}.aura:before,.aura:after{content:"";position:absolute;border-radius:50%;filter:blur(30px)}.aura:before{width:78vmax;height:78vmax;top:-34vmax;left:-14vmax;background:radial-gradient(circle at center,var(--aura-warm, rgba(200, 145, 58, .13)) 0%,transparent 62%)}.aura:after{width:62vmax;height:62vmax;right:-22vmax;bottom:-30vmax;background:radial-gradient(circle at center,var(--aura-cool, rgba(47, 158, 127, .09)) 0%,transparent 60%)}[data-parallax]{translate:0 var(--parallax-y, 0px);will-change:translate}.reveal--rise[data-revealed]{animation:reveal-rise .85s var(--ease-glide) forwards}@keyframes reveal-rise{0%{opacity:0;transform:translateY(38px)}to{opacity:1;transform:none}}.reveal--mask{opacity:1;clip-path:inset(0 0 100% 0)}.reveal--mask[data-revealed]{animation:reveal-mask .95s var(--ease-glide) forwards}@keyframes reveal-mask{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.split__line{display:block}.split__char{display:inline-block;padding-top:.3em;margin-top:-.3em;clip-path:inset(0 0 0 0)}.split__char>span{display:inline-block;transform:translateY(110%);opacity:0;white-space:pre}.split--rise[data-revealed] .split__char>span{animation:char-rise .72s var(--ease-glide) forwards;animation-delay:calc(var(--i, 0) * var(--stagger, 1) * 26ms)}@keyframes char-rise{0%{transform:translateY(110%);opacity:0}to{transform:translateY(0);opacity:1}}.split--charge .split__char{clip-path:none;padding-top:0;margin-top:0}.split--charge .split__char>span{transform:none;opacity:1;color:var(--text-ghost)}.split--charge[data-revealed] .split__char>span{animation:char-charge .62s var(--ease-out) forwards;animation-delay:calc(var(--i, 0) * var(--stagger, 1) * 30ms)}@keyframes char-charge{0%{color:var(--text-ghost)}to{color:var(--charge-to, var(--text))}}.split--scrub .split__char>span{animation:char-charge 1s var(--ease-out) both;animation-play-state:paused;animation-delay:calc((var(--i, 0) / var(--n, 1)) * .55s - var(--go, 0) * 1s)}@media(prefers-reduced-motion:reduce){.reveal--mask{clip-path:none}.split__char>span{transform:none;opacity:1}.split--charge .split__char>span,.split--scrub .split__char>span{animation:none;color:var(--charge-to, var(--text))}}
