*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg-0:#080808;--bg-1:#0d0d0d;--bg-2:#141414;
  --bg-card:rgba(18,18,18,0.92);--bg-card-hover:rgba(24,24,24,0.97);
  --border:rgba(255,255,255,0.09);--border-hover:rgba(255,255,255,0.22);
  --accent-faint:rgba(255,255,255,0.06);
  --blue:#00d4ff;--green:#22c55e;--red:#ef4444;--amber:#f59e0b;
  --text-0:#fff;--text-1:#e8e8e8;--text-2:#a0a0a0;--text-3:#555;
  --font-display:'Archivo Black',sans-serif;
  --font-hero:'Lilita One',cursive;
  --font-body:'Instrument Sans',sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --r:12px;--r-sm:8px;--ease:cubic-bezier(0.4,0,0.2,1);
  --nav-bg:rgba(8,8,8,0.88);--nav-border:rgba(255,255,255,0.1);
  --hh:56px;--bh:40px;
}
[data-theme="light"]{
  --bg-0:#f2f2f2;--bg-1:#e8e8e8;--bg-2:#ddd;
  --bg-card:rgba(235,235,235,0.95);--bg-card-hover:rgba(228,228,228,0.98);
  --border:rgba(0,0,0,0.1);--border-hover:rgba(0,0,0,0.2);
  --accent-faint:rgba(0,0,0,0.05);
  --text-0:#0a0a0a;--text-1:#333;--text-2:#666;--text-3:#bbb;
  --nav-bg:rgba(242,242,242,0.9);--nav-border:rgba(0,0,0,0.1);
}
html{overflow-x:hidden;scroll-behavior:auto;}
body{font-family:var(--font-body);background:var(--bg-0);color:var(--text-0);min-height:100vh;overflow-x:hidden;line-height:1.5;}
#app{width:100%;max-width:100vw;overflow-x:hidden;}
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.09) transparent;}
[data-theme="light"]*{scrollbar-color:rgba(0,0,0,.08) transparent;}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@keyframes titleReveal{from{opacity:0;transform:translateY(26px) scale(.96);filter:blur(3px);}to{opacity:1;transform:none;filter:none;}}
@keyframes popIn{from{opacity:0;transform:scale(.88);}to{opacity:1;transform:scale(1);}}
@keyframes cardIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
@keyframes slideIn{from{opacity:0;transform:translateX(-6px);}to{opacity:1;transform:translateX(0);}}
@keyframes dropIn{from{opacity:0;transform:translateY(-6px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes blink{0%,100%{opacity:1;box-shadow:0 0 6px var(--green);}50%{opacity:.35;box-shadow:none;}}
@keyframes spinOnce{to{transform:rotate(360deg);}}
@keyframes bgZoom{from{transform:scale(1);}to{transform:scale(1.06);}}
@keyframes sw{0%{transform:translateY(0);opacity:1;}60%{transform:translateY(9px);opacity:.1;}61%{opacity:0;transform:translateY(0);}100%{opacity:1;}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .hero-bg{animation:none!important;}
}
