/* Design tokens — the single source for palette, type, and spacing. Pages and
   base.css reference these custom properties; no scattered hex or magic numbers. */

:root {
  /* ── Palette (decided 2026-07-09; see docs/decisions.md, CLAUDE.md § Brand palette) ── */

  /* Primary — headers, nav, headings, links. White on --teal passes AA; --teal
     on --cream passes AA (~4.65:1). */
  --teal: #007868;

  /* Supporting — fills, tags, borders, illustration only. Fails WCAG AA as text on --cream. */
  --blue: #6DA7EC;

  /* Accent — button/badge fills; pair with --ink text, not white (white on --orange fails AA). */
  --orange: #F09978;

  /* Supporting — fills, tags, section backgrounds, hairlines. Fails WCAG AA as text on --cream. */
  --lightgreen: #BCD1CA;

  /* Background. */
  --cream: #F0EEE6;

  /* Body text, on --cream, --orange, or --lightgreen. Passes AA comfortably on any light fill. */
  --ink: #17241F;

  /* ── Type ──────────────────────────────────────────────────────────────────
     Durable system stacks — no web fonts this run (zero licensing/loading; the
     custom-typeface decision belongs to the brand pass). Serif display for
     headings (gravitas) over a system-ui sans for body (clean, fast). */
  --font-serif: 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
  --font-sans: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  /* Modular scale, ~1.25 (major third). Display sizes clamp for fluid headings. */
  --step--1: 0.833rem;                        /* fine print, captions */
  --step-0: 1rem;                             /* body */
  --step-1: 1.25rem;                          /* lede, large body */
  --step-2: clamp(1.4rem, 1.15rem + 1.1vw, 1.75rem);   /* h3 */
  --step-3: clamp(1.75rem, 1.4rem + 1.7vw, 2.35rem);   /* h2 */
  --step-4: clamp(2.2rem, 1.7rem + 2.6vw, 3.25rem);    /* h1 */

  --leading-body: 1.62;
  --leading-tight: 1.15;
  --tracking-tight: -0.01em;

  /* ── Spacing (rem rhythm) ── */
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  /* ── Layout ──────────────────────────────────────────────────────────────
     One centered column: --wrap is the shared container for header, main, and
     footer (so their left/right edges align and the whole layout centers on the
     page); --measure caps running text just inside it (~72ch) for readability. */
  --measure: 42rem;
  --wrap: 46rem;
  --gutter: var(--space-lg);
  --radius: 2px;
  --hairline: 1px solid color-mix(in srgb, var(--ink) 14%, transparent);
}
