:root {
  /* Tier 1: primitives */
  --ink-950: #0b0b0a;
  --ink-900: #151513;
  --ink-800: #20201d;
  --stone-500: #77766f;
  --stone-300: #b8b6ad;
  --cream-100: #f1efe8;
  --cream-50: #faf9f5;
  --white: #ffffff;

  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --display-md: clamp(2.5rem, 1.7rem + 3.5vw, 4.5rem);

  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --leading-tight: 1.05;
  --leading-body: 1.6;
  --tracking-wide: 0.12em;

  --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-section: clamp(3rem, 8vw, 7rem);
  --space-gutter: clamp(1.25rem, 4vw, 3.5rem);

  --width-prose: 65ch;
  --width-content: 72rem;
  --col-min: 18rem;

  --radius-sm: 0.75rem;
  --radius-md: 1.25rem;
  --radius-full: 999px;
  --border-thin: 1px;
  --tap-target-min: 2.75rem;
  --icon-size: 4.5rem;
  --icon-size-small: 2.25rem;
  --focus-ring-width: 0.125rem;
  --focus-ring-offset: 0.25rem;
  --duration-fast: 160ms;
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);

  /* Tier 2: semantic */
  --color-surface: var(--cream-50);
  --color-surface-alt: var(--cream-100);
  --color-surface-dark: var(--ink-950);
  --color-card: var(--white);
  --color-text: var(--ink-950);
  --color-text-muted: var(--stone-500);
  --color-text-on-dark: var(--cream-50);
  --color-text-muted-on-dark: var(--stone-300);
  --color-border: color-mix(in srgb, var(--ink-950) 14%, transparent);
  --color-border-dark: color-mix(in srgb, var(--cream-50) 18%, transparent);
  --color-focus: var(--ink-950);
  --font-body: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;

  /* Tier 3: components */
  --card-padding: clamp(1.5rem, 4vw, 2.5rem);
  --card-radius: var(--radius-md);
  --card-border: var(--border-thin) solid var(--color-border);
  --nav-height: calc(var(--icon-size-small) + (var(--space-4) * 2));
}
