:root {
  /* Brand palette — never alter */
  --color-dark-primary: #08211f;
  --color-dark-secondary: #155249;
  --color-gold: #c9973f;
  --color-gold-light: #dcae5c;
  --color-cream: #f6ead2;
  --color-text-light: #cfe0da;
  --color-bg-light: #faf7f0;
  --color-bg-lighter: #fffdf9;
  --color-text-dark: #1c2521;
  --color-text-muted: #4a544f;
  --color-divider: #e4ddc9;

  /* Semantic aliases */
  --bg-dark: var(--color-dark-primary);
  --bg-dark-elevated: var(--color-dark-secondary);
  --bg-light: var(--color-bg-light);
  --bg-surface: var(--color-bg-lighter);
  --accent: var(--color-gold);
  --accent-soft: var(--color-gold-light);
  --text-on-dark: var(--color-text-light);
  --text-on-dark-muted: rgba(207, 224, 218, 0.7);
  --text-primary: var(--color-text-dark);
  --text-secondary: var(--color-text-muted);
  --border: var(--color-divider);
  --cream: var(--color-cream);

  /* Typography */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;

  /* Type scale — editorial cover rhythm */
  --text-xs: clamp(0.6875rem, 0.65rem + 0.15vw, 0.75rem);
  --text-sm: clamp(0.875rem, 0.84rem + 0.2vw, 0.9375rem);
  --text-base: clamp(1rem, 0.97rem + 0.2vw, 1.0625rem);
  --text-lg: clamp(1.0625rem, 1.01rem + 0.3vw, 1.1875rem);
  --text-xl: clamp(1.375rem, 1.22rem + 0.65vw, 1.625rem);
  --text-2xl: clamp(1.75rem, 1.5rem + 1.15vw, 2.25rem);
  --text-3xl: clamp(2.5rem, 1.9rem + 2.1vw, 3.5rem);
  --text-hero: clamp(2.875rem, 2.15rem + 3.4vw, 4.85rem);

  /* Spacing — editorial breath */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.75rem;
  --space-9: 7rem;
  --space-10: 9.5rem;
  --section-y: clamp(6rem, 10vw, 10.5rem);
  --container: min(1080px, calc(100% - 3.5rem));
  --container-wide: min(1220px, calc(100% - 3.5rem));
  --measure: 33rem;
  --measure-narrow: 27rem;

  /* Motion — premium easing */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
  --duration-fast: 240ms;
  --duration: 520ms;
  --duration-slow: 900ms;
  --duration-enter: 1100ms;

  /* Layout */
  --header-h: 4.75rem;
  --radius-sm: 2px;
  --radius: 3px;
  --focus-ring: 0 0 0 2px var(--bg-dark), 0 0 0 4px var(--accent);

  /* Shadows — restrained */
  --shadow-soft: 0 24px 64px rgba(8, 33, 31, 0.07);
  --shadow-lift: 0 12px 40px rgba(8, 33, 31, 0.12);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration: 0ms;
    --duration-slow: 0ms;
    --duration-enter: 0ms;
  }
}
