@charset "UTF-8";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--font-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Consolas, monospace;--leading-tight: 1.05;--leading-snug: 1.3;--leading-normal: 1.65;--tracking-tight: -.035em;--tracking-wide: .14em;--bg: #09090b;--bg-soft: #0e0e11;--surface: #111114;--surface-2: #18181c;--surface-glass: rgb(17 17 20 / .62);--line: rgb(255 255 255 / .08);--line-strong: rgb(255 255 255 / .15);--text: #fafafa;--text-muted: #a1a1aa;--text-dim: #8a8a94;--accent: #5b8cff;--accent-strong: #7aa2ff;--accent-soft: rgb(91 140 255 / .12);--on-accent: #ffffff;--accent-fill: #3b6cf6;--grad: linear-gradient(110deg, #5b8cff 0%, #a78bfa 45%, #22d3ee 100%);--success: #34d399;--orb-1: rgb(91 140 255 / .22);--orb-2: rgb(167 139 250 / .16);--grid-dot: rgb(255 255 255 / .07);--step--2: .75rem;--step--1: clamp(.84rem, .82rem + .1vw, .9rem);--step-0: clamp(1rem, .97rem + .15vw, 1.0625rem);--step-1: clamp(1.15rem, 1.08rem + .35vw, 1.35rem);--step-2: clamp(1.35rem, 1.2rem + .7vw, 1.75rem);--step-3: clamp(1.75rem, 1.45rem + 1.4vw, 2.6rem);--step-4: clamp(2.2rem, 1.7rem + 2.4vw, 3.6rem);--step-5: clamp(2.6rem, 1.8rem + 4vw, 5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--space-10: 8rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-pill: 999px;--shadow-1: 0 1px 2px rgb(0 0 0 / .4);--shadow-2: 0 24px 60px -24px rgb(0 0 0 / .75);--shadow-glow: 0 10px 40px -12px rgb(91 140 255 / .55);--container: 74rem;--container-narrow: 50rem;--gutter: clamp(1rem, 4vw, 2.5rem);--nav-h: 4.75rem;--page-top: clamp(var(--space-7), 7vw, var(--space-9));--page-bottom: clamp(var(--space-8), 9vw, var(--space-10));--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .16s;--dur: .28s;--dur-slow: .7s}:root[data-theme=light]{color-scheme:light;--bg: #fafafa;--bg-soft: #f4f4f5;--surface: #ffffff;--surface-2: #f4f4f5;--surface-glass: rgb(255 255 255 / .7);--line: rgb(9 9 11 / .08);--line-strong: rgb(9 9 11 / .16);--text: #09090b;--text-muted: #52525b;--text-dim: #6b6b74;--accent: #2557e6;--accent-strong: #1d47c4;--accent-soft: rgb(37 87 230 / .08);--accent-fill: #2557e6;--grad: linear-gradient(110deg, #2557e6 0%, #7c3aed 50%, #0891b2 100%);--success: #059669;--orb-1: rgb(37 87 230 / .12);--orb-2: rgb(124 58 237 / .08);--grid-dot: rgb(9 9 11 / .07);--shadow-1: 0 1px 2px rgb(9 9 11 / .06);--shadow-2: 0 24px 50px -28px rgb(9 9 11 / .25);--shadow-glow: 0 10px 30px -12px rgb(37 87 230 / .45)}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--space-4));-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--step-0);line-height:var(--leading-normal);color:var(--text-muted);background-color:var(--bg);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--text);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}*{scrollbar-width:thin;scrollbar-color:var(--surface-2) transparent}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:300;padding:var(--space-2) var(--space-4);background:var(--accent-fill);color:var(--on-accent);font-size:var(--step--1);font-weight:600;border-radius:var(--radius-sm);transform:translateY(-200%);transition:transform var(--dur) var(--ease)}.skip-link:focus{transform:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--step--2);font-weight:500;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);padding:.35rem .75rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-glass)}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.pulse-dot{position:relative;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);flex-shrink:0}.pulse-dot:after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;animation:pulse 2s var(--ease-out) infinite}@keyframes pulse{0%{transform:scale(1);opacity:.7}to{transform:scale(2.8);opacity:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.75rem;padding:.65rem 1.25rem;font-size:var(--step--1);font-weight:500;white-space:nowrap;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;transition:transform var(--dur-fast) var(--ease),background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn app-icon{transition:transform var(--dur) var(--ease)}.btn:hover app-icon.icon-shift{transform:translate(3px)}.btn:active{transform:scale(.98)}.btn--primary{background:var(--text);color:var(--bg)}.btn--primary:hover{box-shadow:var(--shadow-glow);background:var(--accent-fill);color:var(--on-accent)}.btn--ghost{background:var(--surface-glass);color:var(--text);border-color:var(--line-strong)}.btn--ghost:hover{border-color:var(--accent);background:var(--accent-soft)}.btn--sm{min-height:2.25rem;padding:.4rem .9rem}.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.tag{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--step--2);color:var(--text-muted);padding:.2rem .6rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);white-space:nowrap}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none}.section{padding-block:clamp(var(--space-8),8vw,var(--space-10))}.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:clamp(var(--space-6),4vw,var(--space-7))}.section-head .section-head{margin-bottom:0}.section-head--row{flex-direction:row;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}.section-title{font-size:var(--step-4);max-width:20ch}.section-lead{max-width:54ch;font-size:var(--step-1);line-height:1.55}.page-title{font-size:var(--step-5);max-width:16ch}.text-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--step--1);font-weight:500;color:var(--text);transition:color var(--dur) var(--ease),gap var(--dur) var(--ease)}.text-link:hover{color:var(--accent);gap:var(--space-3)}.backdrop{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.backdrop:before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--grid-dot) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 30%,transparent 75%)}.backdrop:after{content:"";position:absolute;top:-30%;left:50%;width:min(1100px,140vw);aspect-ratio:2/1;transform:translate(-50%);background:radial-gradient(closest-side,var(--orb-1),transparent),radial-gradient(closest-side at 70% 60%,var(--orb-2),transparent);filter:blur(20px)}.hero>.backdrop,.page>.backdrop{top:calc(var(--nav-h) * -1)}.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);transition-delay:var(--reveal-delay, 0s)}.reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}}
