/* ===== Design Tokens ===== */
/* All design decisions live here — colors, type, spacing, motion */

:root {
  /* ——— Colors: Light Mode ——— */
  --bg-primary: #FAFAFA;
  --bg-surface: #F4F4F5;
  --text-primary: #111111;
  --text-secondary: #6B7280;
  --text-tertiary: #9CA3AF;
  --accent: #2563EB;
  --accent-hover: #1D4ED8;
  --border: #E5E7EB;
  --nav-glass: rgba(250, 250, 250, 0.88);

  /* ——— Typography ——— */
  --font-display: 'Space Grotesk', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  /* Type Scale — fluid, responsive */
  --text-display: clamp(2.75rem, 5.5vw + 0.5rem, 5.5rem);
  --text-h1: clamp(2.25rem, 3.5vw + 0.5rem, 4rem);
  --text-h2: clamp(1.75rem, 2.5vw + 0.5rem, 3rem);
  --text-h3: clamp(1.25rem, 1.5vw + 0.5rem, 1.75rem);
  --text-body: clamp(1rem, 0.3vw + 0.85rem, 1.125rem);
  --text-body-lg: clamp(1.05rem, 0.5vw + 0.8rem, 1.25rem);
  --text-small: 0.875rem;
  --text-meta: 0.8125rem;

  /* Letter Spacing */
  --tracking-tighter: -0.04em;
  --tracking-tight: -0.025em;
  --tracking-normal: -0.011em;
  --tracking-wide: 0.06em;

  /* Line Heights */
  --leading-none: 1.0;
  --leading-tight: 1.1;
  --leading-snug: 1.3;
  --leading-normal: 1.65;
  --leading-relaxed: 1.8;

  /* ——— Spacing (8px grid) ——— */
  --space-1: 0.25rem;   /* 4px */
  --space-2: 0.5rem;    /* 8px */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px */
  --space-20: 5rem;     /* 80px */
  --space-24: 6rem;     /* 96px */
  --space-32: 8rem;     /* 128px */
  --space-40: 10rem;    /* 160px */
  --space-48: 12rem;    /* 192px */

  /* ——— Layout ——— */
  --container-max: 1200px;
  --content-max: 720px;
  --content-narrow: 650px;

  /* ——— Animation ——— */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);

  --duration-fast: 200ms;
  --duration-normal: 350ms;
  --duration-slow: 600ms;
  --duration-reveal: 900ms;
  --duration-hero: 1100ms;

  /* ——— Borders ——— */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
}

