:root {
  --font-display: "Newsreader", "Iowan Old Style", Georgia, serif;
  --font-ui: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Fluid sizes — lower bound = mobile target, upper = desktop target (§8) */
  --fs-display: clamp(2.625rem, 5vw, 4rem);      /* @kind font */ /* 42 → 64 */
  --fs-h1:      clamp(2.375rem, 4.2vw, 3.5rem);  /* @kind font */ /* 38 → 56 */
  --fs-h2:      clamp(1.75rem, 2.8vw, 2.625rem); /* @kind font */ /* 28 → 42 */
  --fs-h3:      clamp(1.375rem, 1.7vw, 1.75rem); /* @kind font */ /* 22 → 28 */
  --fs-h4:      1.1875rem;                       /* @kind font */ /* 19 */
  --fs-body-lg: clamp(1.125rem, 1.2vw, 1.25rem); /* @kind font */ /* 18 → 20 */
  --fs-body:    1.0625rem;                       /* @kind font */ /* 17 */
  --fs-small:   0.9375rem;                       /* @kind font */ /* 15 */
  --fs-label:   0.8125rem;                       /* @kind font */ /* 13 — eyebrows, meta */

  --lh-display: 1.08; /* @kind font */
  --lh-heading: 1.18; /* @kind font */
  --lh-snug: 1.35; /* @kind font */
  --lh-body: 1.6; /* @kind font */
  --lh-loose: 1.75; /* @kind font */

  --fw-light: 300; /* @kind font */
  --fw-regular: 400; /* @kind font */
  --fw-medium: 500; /* @kind font */
  --fw-semibold: 600; /* @kind font */

  --ls-display: -0.015em; /* @kind font */
  --ls-heading: -0.008em; /* @kind font */
  --ls-body: 0; /* @kind font */
  --ls-eyebrow: 0.14em; /* @kind font */

  --measure-narrow: 34rem; /* @kind spacing */ /* ~56 chars — intro copy */
  --measure: 40rem;        /* @kind spacing */ /* ~66 chars — body columns */
}
