:root {
  /* Surfaces — soft blue, darkest to lightest */
  --navy-950: #070d17;
  --navy-900: #0a1220;
  --navy-850: #0e1a2c;
  --navy-800: #132238;
  --navy-700: #1b3150;
  --navy-600: #24405f;

  /* Ink */
  --chalk: #cfdaea;
  --chalk-dim: #97a8c0;
  --white: #f6f9fd;

  /* Accents */
  --amber: #e0a33a;
  --amber-bright: #f4c86a;
  --cyan: #58b6f0;
  --cyan-dim: #2f80b8;

  /* Per-page override; game pages set this via a body class */
  --game-accent: var(--amber);

  /* Lines & glass */
  --line: rgb(207 218 234 / 12%);
  --line-strong: rgb(207 218 234 / 22%);
  --glass: rgb(207 218 234 / 4%);
  --glass-hover: rgb(207 218 234 / 7%);

  /* Type — system stack, no webfont request */
  --font-sans:
    ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Inter, "Helvetica Neue", Arial,
    sans-serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

  /* Fluid type scale */
  --fs-display: clamp(2.5rem, 1.6rem + 4.4vw, 5rem);
  --fs-h1: clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
  --fs-h2: clamp(1.625rem, 1.25rem + 1.6vw, 2.5rem);
  --fs-h3: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
  --fs-h4: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
  --fs-body-lg: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem);
  --fs-body: 1rem;
  --fs-sm: 0.9375rem;
  --fs-xs: 0.8125rem;

  --lh-tight: 1.1;
  --lh-snug: 1.28;
  --lh-body: 1.65;

  /* Space */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4rem;
  --sp-9: 6rem;
  --section-y: clamp(3.5rem, 2rem + 6vw, 7rem);

  /* Shape */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 16px;
  --r-xl: 24px;
  --r-pill: 999px;

  /* Depth */
  --shadow-md: 0 8px 24px rgb(3 8 18 / 38%);
  --shadow-lg: 0 20px 50px rgb(3 8 18 / 55%);

  /* Layout */
  --container: 1180px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --header-h: 68px;

  /* Motion */
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast: 140ms;
  --dur: 240ms;
  --dur-slow: 620ms;
}
