/*
 * Design tokens. Generated from design-tokens.json — do not edit by hand.
 * Change the JSON and re-run scripts/build_tokens.py.
 */

:root {
  /* color */
  --color-surface: #FDFAF4;
  --color-surface-raised: #F5EEE0;
  --color-surface-inverse: #0F2A38;
  --color-text: #231D18;
  --color-text-muted: #5A5047;
  --color-text-inverse: #F5EEE0;
  --color-border: #E7DDC9;
  --color-border-strong: #C9BBA0;
  --color-accent: #0B4F60;
  --color-accent-hover: #083D4B;
  --color-accent-active: #062E39;
  --color-accent-subtle: #DCE9ED;
  --color-accent-contrast: #FDFAF4;
  --color-success: #1F6B3F;
  --color-success-subtle: #E4F0E8;
  --color-error: #9A2B21;
  --color-error-subtle: #FAE9E7;

  /* font */
  --font-heading: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;

  /* text */
  --text-xs: clamp(0.75rem, 0.73rem + 0.1vw, 0.8rem);
  --text-sm: clamp(0.875rem, 0.85rem + 0.12vw, 0.9rem);
  --text-base: clamp(1rem, 0.97rem + 0.15vw, 1.06rem);
  --text-lg: clamp(1.2rem, 1.14rem + 0.3vw, 1.33rem);
  --text-xl: clamp(1.44rem, 1.34rem + 0.5vw, 1.66rem);
  --text-2xl: clamp(1.73rem, 1.56rem + 0.85vw, 2.07rem);
  --text-3xl: clamp(2.07rem, 1.82rem + 1.25vw, 2.59rem);
  --text-4xl: clamp(2.49rem, 2.11rem + 1.9vw, 3.24rem);
  --text-5xl: clamp(2.5rem, 1.9rem + 2.9vw, 4.4rem);

  /* leading */
  --leading-body: 1.65;
  --leading-heading: 1.12;

  /* space */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.5rem;
  --space-8: 3rem;
  --space-9: 4rem;
  --space-10: 6rem;
  --space-section: clamp(3.5rem, 8vw, 6.5rem);
  --space-hero: clamp(4rem, 10vw, 8rem);

  /* container */
  --container-max: 1200px;
  --container-narrow: 820px;
  --container-wide: 1360px;

  /* measure */
  --measure: 62ch;

  /* radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 18px;
  --radius-pill: 999px;

  /* shadow */
  --shadow-sm: 0 1px 2px rgba(35,29,24,0.06);
  --shadow-md: 0 4px 18px rgba(35,29,24,0.09);
  --shadow-lg: 0 18px 44px rgba(35,29,24,0.13);

  /* motion */
  --motion-fast: 150ms;
  --motion-base: 250ms;
  --motion-slow: 400ms;

  /* ease */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  /* header */
  --header-height: 74px;

  /* tap */
  --tap-target: 44px;

}

/* Contrast report
 * text on surface: 15.99:1 — PASS
 * text-muted on surface: 7.54:1 — PASS
 * accent-contrast on accent: 8.76:1 — PASS
 * text-inverse on surface-inverse: 12.91:1 — PASS
 * accent on surface: 8.76:1 — PASS
 * [sand-ocean] text on surface: 15.99:1 — PASS
 * [sand-ocean] text-muted on surface: 7.54:1 — PASS
 * [sand-ocean] accent-contrast on accent: 8.76:1 — PASS
 * [sand-ocean] text-inverse on surface-inverse: 12.91:1 — PASS
 * [sand-ocean] accent on surface: 8.76:1 — PASS
 * [indigo-night] text on surface: 15.99:1 — PASS
 * [indigo-night] text-muted on surface: 7.54:1 — PASS
 * [indigo-night] accent-contrast on accent: 9.21:1 — PASS
 * [indigo-night] text-inverse on surface-inverse: 14.25:1 — PASS
 * [indigo-night] accent on surface: 9.21:1 — PASS
 * [forest] text on surface: 15.99:1 — PASS
 * [forest] text-muted on surface: 7.54:1 — PASS
 * [forest] accent-contrast on accent: 7.46:1 — PASS
 * [forest] text-inverse on surface-inverse: 12.85:1 — PASS
 * [forest] accent on surface: 7.46:1 — PASS
 * [clay] text on surface: 15.99:1 — PASS
 * [clay] text-muted on surface: 7.54:1 — PASS
 * [clay] accent-contrast on accent: 7.70:1 — PASS
 * [clay] text-inverse on surface-inverse: 14.45:1 — PASS
 * [clay] accent on surface: 7.70:1 — PASS
 */
