/* ==========================================================================
   GSA — Typography tokens
   Playfair Display (display/headings) · Lato (body/UI) · IBM Plex Mono (code)
   ========================================================================== */
:root {
  /* ---- Families ----------------------------------------------------- */
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:    'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-mono:    'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;

  /* ---- Weights ------------------------------------------------------ */
  --fw-light:    300; /* @kind other */
  --fw-regular:  400; /* @kind other */
  --fw-medium:   500; /* @kind other */
  --fw-semibold: 600; /* @kind other */
  --fw-bold:     700; /* @kind other */
  --fw-black:    900; /* @kind other */

  /* ---- Type scale (rem, 16px base) — fluid display sizes ------------ */
  --fs-display:  clamp(2.75rem, 1.6rem + 4.4vw, 4.5rem); /* @kind spacing */
  --fs-h1:       clamp(2.25rem, 1.5rem + 2.6vw, 3.25rem); /* @kind spacing */
  --fs-h2:       clamp(1.85rem, 1.4rem + 1.7vw, 2.5rem); /* @kind spacing */
  --fs-h3:       clamp(1.45rem, 1.2rem + 1vw, 1.85rem); /* @kind spacing */
  --fs-h4:       1.3rem; /* @kind spacing */
  --fs-h5:       1.1rem; /* @kind spacing */
  --fs-lead:     1.2rem; /* @kind spacing */
  --fs-body:     1rem; /* @kind spacing */
  --fs-sm:       0.9rem; /* @kind spacing */
  --fs-xs:       0.8rem; /* @kind spacing */
  --fs-overline: 0.72rem; /* @kind spacing */

  /* ---- Line heights ------------------------------------------------- */
  --lh-tight:   1.08; /* @kind other */
  --lh-snug:    1.25; /* @kind other */
  --lh-normal:  1.55; /* @kind other */
  --lh-relaxed: 1.7; /* @kind other */

  /* ---- Letter spacing ----------------------------------------------- */
  --ls-tight:    -0.02em; /* @kind other */
  --ls-normal:   0; /* @kind other */
  --ls-wide:     0.04em; /* @kind other */
  --ls-overline: 0.18em; /* @kind other */
}
