:root {
  /* Primitive color tokens */
  --primitive-white: oklch(99.7% 0.003 252);
  --primitive-slate-025: oklch(98.7% 0.004 252);
  --primitive-slate-050: oklch(97.2% 0.007 252);
  --primitive-slate-100: oklch(94.9% 0.011 252);
  --primitive-slate-200: oklch(89.1% 0.018 252);
  --primitive-slate-400: oklch(48.5% 0.031 252);
  --primitive-slate-600: oklch(44.2% 0.037 252);
  --primitive-navy-800: oklch(28.6% 0.057 253);
  --primitive-navy-900: oklch(21.8% 0.055 254);
  --primitive-navy-950: oklch(16.8% 0.044 254);
  --primitive-blue-500: oklch(55.6% 0.177 258);
  --primitive-blue-600: oklch(47.8% 0.183 258);
  --primitive-gold-500: oklch(72.5% 0.118 84);
  --primitive-red-500: oklch(58.4% 0.165 29);

  /* Semantic color tokens */
  --color-paper: var(--primitive-slate-025);
  --color-paper-subtle: var(--primitive-slate-050);
  --color-surface: var(--primitive-white);
  --color-ink: var(--primitive-navy-950);
  --color-ink-soft: var(--primitive-navy-800);
  --color-copy: var(--primitive-slate-600);
  --color-muted: var(--primitive-slate-400);
  --color-rule: var(--primitive-slate-200);
  --color-rule-strong: oklch(82.5% 0.024 252);
  --color-accent: var(--primitive-blue-600);
  --color-accent-hover: oklch(42.8% 0.19 258);
  --color-accent-soft: oklch(95.2% 0.028 255);
  --color-accent-ink: var(--primitive-white);
  --color-gold: var(--primitive-gold-500);
  --color-alert: var(--primitive-red-500);
  --color-dark-surface: var(--primitive-navy-950);
  --color-dark-rule: oklch(31% 0.04 254);
  --color-dark-copy: oklch(80% 0.024 252);
  --color-transparent: transparent;
  --color-mask: oklch(16.8% 0.044 254);
  --color-nav-glass: oklch(99.7% 0.003 252 / 0.94);
  --color-nav-solid: oklch(99.7% 0.003 252 / 0.98);
  --color-hero-side: oklch(97.8% 0.009 252);
  --color-grid-line: oklch(44.2% 0.037 252 / 0.065);
  --color-surface-wash: oklch(99.7% 0.003 252 / 0.72);
  --color-rule-wash: oklch(82.5% 0.024 252 / 0.75);
  --color-overlay-strong: oklch(16.8% 0.044 254 / 0.92);
  --color-overlay-soft: oklch(16.8% 0.044 254 / 0.08);
  --color-rule-inverse: oklch(99.7% 0.003 252 / 0.22);
  --color-caption-wash: oklch(99.7% 0.003 252 / 0.86);
  --color-modal-scrim: oklch(16.8% 0.044 254 / 0.76);

  /* Typography */
  --font-sans: "Noto Sans SC Variable", sans-serif;
  --font-mono: "JetBrains Mono Variable", ui-monospace, monospace;
  --text-2xs: 0.6875rem;
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: clamp(1.75rem, 3vw, 2.75rem);
  --text-hero: clamp(3rem, 5vw, 5.5rem);
  --leading-tight: 1.06;
  --leading-heading: 1.18;
  --leading-copy: 1.78;

  /* 4pt spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;
  --space-32: 8rem;

  /* Layout */
  --page-max: 84rem;
  --page-gutter: clamp(1.25rem, 4.6vw, 4.5rem);
  --nav-height: 4.75rem;
  --section-block: clamp(5.5rem, 9vw, 9rem);

  /* Component tokens */
  --button-height: 3.25rem;
  --button-padding: 1.5rem;
  --button-radius: 0.1875rem;
  --surface-radius: 0.25rem;
  --focus-ring: 0 0 0 0.1875rem var(--color-accent);
  --shadow-float: 0 1.75rem 4rem -2.5rem oklch(16.8% 0.044 254 / 0.35);
  --shadow-nav: 0 0.75rem 2rem -1.5rem oklch(16.8% 0.044 254 / 0.3);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 180ms;
  --duration-base: 320ms;

  /* Compatibility aliases for the copied shell */
  --bg: var(--color-paper);
  --surface: var(--color-surface);
  --text: var(--color-ink);
  --text2: var(--color-copy);
  --text3: var(--color-muted);
  --border: var(--color-rule);
  --cyan: var(--color-accent);
  --amber: var(--color-gold);
}
