:root {
  /* ============================================
     COLORS
     ============================================ */

  /* Brand */
  --color-mist: #F7F8F6;
  --color-slate: #3E5773;
  --color-slate-dark: #2D4257;
  --color-sage: #8FA88A;
  --color-sage-dark: #6F8869;
  --color-steel: #5D7490;
  --color-midnight: #1E2A38;

  /* Semantic */
  --color-bg: #FFFFFF;
  --color-bg-alt: var(--color-mist);
  --color-text: var(--color-midnight);
  --color-text-muted: var(--color-steel);
  --color-text-inverse: #FFFFFF;
  --color-primary: var(--color-slate);
  --color-primary-hover: var(--color-slate-dark);
  --color-accent: var(--color-sage);
  --color-accent-hover: var(--color-sage-dark);
  --color-border: #E4E6E2;
  --color-border-strong: #C9CDC5;

  /* ============================================
     TYPOGRAPHY
     ============================================ */

  --font-heading: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

  /* Type scale — 1.25 ratio, 18px base */
  --text-xs: 0.75rem;     /* 12px */
  --text-sm: 0.875rem;    /* 14px */
  --text-base: 1.125rem;  /* 18px */
  --text-lg: 1.25rem;     /* 20px */
  --text-xl: 1.563rem;    /* 25px */
  --text-2xl: 1.953rem;   /* 31px */
  --text-3xl: 2.441rem;   /* 39px */
  --text-4xl: 3.052rem;   /* 49px */
  --text-5xl: 3.815rem;   /* 61px */

  /* Line heights */
  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-normal: 1.6;
  --leading-relaxed: 1.75;

  /* Weights */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;

  /* Letter spacing */
  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide: 0.05em;

  /* ============================================
     SPACING — 8px base
     ============================================ */

  --space-1: 0.5rem;   /* 8px */
  --space-2: 1rem;     /* 16px */
  --space-3: 1.5rem;   /* 24px */
  --space-4: 2rem;     /* 32px */
  --space-5: 3rem;     /* 48px */
  --space-6: 4rem;     /* 64px */
  --space-7: 6rem;     /* 96px */
  --space-8: 8rem;     /* 128px */

  /* ============================================
     LAYOUT
     ============================================ */

  --container-max: 1200px;
  --container-narrow: 720px;
  --container-wide: 1400px;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-full: 9999px;

  /* ============================================
     MOTION
     ============================================ */

  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;

  /* ============================================
     ELEVATION — use sparingly
     ============================================ */

  --shadow-sm: 0 1px 2px rgba(30, 42, 56, 0.06);
  --shadow-md: 0 4px 12px rgba(30, 42, 56, 0.08);
  --shadow-lg: 0 12px 32px rgba(30, 42, 56, 0.12);
}

/* ============================================
   MOTION PREFERENCES
   ============================================ */

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
    --transition-slow: 0ms;
  }
}