/* Design tokens + reset */
:root {
  --bg: #06080f;
  --bg-elev: #0b0f1a;
  --bg-soft: #0e1421;
  --panel: rgba(255, 255, 255, 0.035);
  --line: rgba(255, 255, 255, 0.09);
  --line-strong: rgba(255, 255, 255, 0.16);
  --fg: #f2f5ff;
  --fg-muted: #adb6cc;
  --fg-dim: #8b95ad;
  --violet: #8b5cf6;
  --violet-soft: #a78bfa;
  --cyan: #22d3ee;
  --lime: #a3e635;
  --amber: #fbbf24;
  --red: #f87171;
  --grad-brand: linear-gradient(120deg, #a78bfa 0%, #22d3ee 100%);
  --grad-soft: linear-gradient(150deg, rgba(139, 92, 246, 0.16), rgba(34, 211, 238, 0.08));
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.85);
  --shadow-glow: 0 0 0 1px rgba(167, 139, 250, 0.35), 0 18px 50px -20px rgba(139, 92, 246, 0.55);
  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  --mono: "SFMono-Regular", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;
  --container: 1180px;
  --gutter: 24px;
  --section: 76px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1em; }
h1, h2, h3, h4, h5 { margin: 0 0 0.5em; line-height: 1.15; letter-spacing: -0.02em; font-weight: 600; }
h1 { font-size: clamp(2.4rem, 5.2vw, 4.1rem); letter-spacing: -0.035em; }
h2 { font-size: clamp(1.85rem, 3.4vw, 2.75rem); letter-spacing: -0.03em; }
h3 { font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
h4 { font-size: 1rem; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }
code, kbd, pre { font-family: var(--mono); font-size: 0.86em; }
button { font: inherit; color: inherit; }
::selection { background: rgba(139, 92, 246, 0.4); color: #fff; }
:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; border-radius: 4px; }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--violet); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; }
