:root{--bg:#07070c;--bg-elev:#0c0d14;--bg-card:#0f1019;--bg-card-2:#131524;--border:rgba(255, 255, 255, .08);--border-strong:rgba(255, 255, 255, .14);--fg:#e8e9f3;--fg-dim:#9ea0b8;--fg-mute:#5a5d78;--violet:#a78bfa;--violet-deep:#7c5cff;--violet-glow:rgba(124, 92, 255, .35);--amber:#fbbf24;--orange:#f97316;--signal-green:#4ade80;--signal-red:#f87171;--grid:rgba(255, 255, 255, .04);--f-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--f-body:"Inter", ui-sans-serif, system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, monospace;--container:1280px;--pad-x:clamp(20px, 4vw, 56px);color-scheme:dark}html[data-theme=light]{--bg:#f5f4ee;--bg-elev:#ffffff;--bg-card:#ffffff;--bg-card-2:#faf9f5;--border:rgba(15, 16, 25, .1);--border-strong:rgba(15, 16, 25, .18);--fg:#15161f;--fg-dim:#4a4d63;--fg-mute:#8a8da3;--violet-glow:rgba(124, 92, 255, .18);--grid:rgba(15, 16, 25, .04);color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .5s ease,color .5s ease}html{scroll-behavior:smooth}body{overflow-x:hidden;line-height:1.5;min-height:100vh}::selection{background:var(--violet-deep);color:#fff}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:0 0;border:0;color:inherit}img,svg,video{display:block;max-width:100%}.mono{font-family:var(--f-mono)}.display{font-family:var(--f-display)}.container{max-width:var(--container);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x)}.skip-link{position:absolute;top:-40px;left:8px;z-index:100;padding:8px 14px;background:var(--violet-deep);color:#fff;border-radius:8px;font-size:13px;transition:top .2s ease}.skip-link:focus{top:8px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}.bg-stage{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-grid{position:absolute;inset:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse 80% 60%at 50% 30%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 60%at 50% 30%,#000 30%,transparent 100%)}.bg-nebula{position:absolute;width:900px;height:900px;border-radius:50%;filter:blur(120px);opacity:.35;pointer-events:none}.bg-nebula.n1{background:radial-gradient(circle,var(--violet-deep),transparent 60%);top:-200px;left:-200px}.bg-nebula.n2{background:radial-gradient(circle,#ff6b9d,transparent 60%);top:30%;right:-300px;opacity:.18}.bg-nebula.n3{background:radial-gradient(circle,#22d3ee,transparent 60%);bottom:-200px;left:30%;opacity:.12}html[data-theme=light] .bg-nebula{opacity:.18}html[data-theme=light] .bg-nebula.n2{opacity:.1}html[data-theme=light] .bg-nebula.n3{opacity:.08}#starfield{position:absolute;inset:0;width:100%;height:100%}html[data-theme=light] #starfield{opacity:.35}#app,main,header.site-header,footer.site-footer{position:relative;z-index:1}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes float-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes drift{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(20px,-16px) rotate(-3deg)}}@keyframes ring-expand{0%{transform:scale(.6);opacity:.8}to{transform:scale(2.8);opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}}