:root {
  /* ---- Families ---- */
  --font-serif: "Spectral", Georgia, serif;          /* display + editorial */
  --font-sans: "IBM Plex Sans", system-ui, sans-serif; /* body copy, UI */
  --font-mono: "IBM Plex Mono", monospace;           /* eyebrow labels, meta */

  /* ---- Display / headings (Spectral, weight 400–500) ---- */
  --text-hero: clamp(2.1rem, 6.2vw, 4.1rem);         /* h1; lh 1.16; ls -0.012em; w400 */
  --text-h2: clamp(1.6rem, 3.6vw, 2.1rem);           /* lh 1.22; ls -0.01em; w500 */
  --text-h3: clamp(1.28rem, 2.7vw, 1.5rem);          /* lh 1.25; w500 */
  --text-list-title: clamp(1.3rem, 2.9vw, 1.6rem);   /* serif row titles; lh 1.3; w400 */
  --text-editorial-lede: clamp(1.28rem, 2.6vw, 1.62rem); /* serif lede; lh 1.6; ls -0.004em */

  /* ---- Body (IBM Plex Sans) ---- */
  --text-body-size: 1.06rem;      /* lh 1.75 */
  --text-body-sm: 1.02rem;        /* lh 1.72 */
  --text-desc: 0.98rem;           /* lh 1.6; color --ink-4 */

  /* ---- Mono labels (IBM Plex Mono) ---- */
  --text-eyebrow-size: 11.5px;    /* ls 0.2em; uppercase; color --stone-3 */
  --text-eyebrow-sm: 11px;        /* ls 0.16em; uppercase; color --stone-4 */
  --text-meta: 12.5px;            /* ls 0.04–0.14em */
  --text-meta-sm: 12px;

  /* ---- Line heights ---- */
  --lh-hero: 1.16; /* @kind other */
  --lh-heading: 1.22; /* @kind other */
  --lh-editorial: 1.6; /* @kind other */
  --lh-body: 1.75; /* @kind other */

  /* ---- Letter spacing ---- */
  --ls-hero: -0.012em;
  --ls-heading: -0.01em;
  --ls-eyebrow: 0.2em;
  --ls-wordmark: 0.14em;
}
