/* ============================================================
   KATALYST · TYPOGRAPHY TOKENS
   Two families. Space Grotesk carries every heading, button,
   eyebrow, stat and nav label; DM Sans carries body copy.
   Headings run tight (-0.022 to -0.028em); eyebrows run wide
   (+0.16em) and uppercase. Body sits airy at 1.6 line-height.
   ============================================================ */
:root {
  /* ---- Families ---- */
  --font-display: 'Space Grotesk', system-ui, -apple-system, sans-serif;
  --font-body:    'DM Sans', system-ui, -apple-system, sans-serif;

  /* ---- Weights ---- */
  --fw-regular:  400; /* @kind font */
  --fw-medium:   500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold:     700; /* @kind font */

  /* ---- Display / heading scale (Space Grotesk) ---- */
  --fs-display:    52px;  /* hero / manifesto       lh 1.05  ls -0.028em */
  --fs-h1:         48px;  /* page hero              lh 1.05  ls -0.028em */
  --fs-h2:         43px;  /* section heading        lh 1.10  ls -0.022em */
  --fs-h2-sm:      40px;  /* section heading (alt)  lh 1.10           */
  --fs-h3:         34px;  /* sub-section            lh 1.12  ls -0.02em */
  --fs-h4:         26px;  /* card heading           lh 1.2   ls -0.01em */
  --fs-h5:         20px;  /* path / feature title   lh 1.2            */
  --fs-h6:         18px;  /* small heading                            */

  /* ---- Body scale (DM Sans) ---- */
  --fs-lede:       18.5px; /* lede paragraph         lh 1.62 */
  --fs-body-lg:    17px;   /* large body             lh 1.62 */
  --fs-body:       15px;   /* default body / input   lh 1.55 */
  --fs-body-sm:    14px;   /* dense body             lh 1.5  */
  --fs-caption:    13px;   /* card body / captions   lh 1.5  */
  --fs-micro:      12px;   /* meta                           */
  --fs-eyebrow:    13px;   /* section eyebrow (uppercase)    */
  --fs-overline:   10.5px; /* field overline (uppercase)     */

  /* ---- Line heights ---- */
  --lh-tight:   1.05; /* @kind other */
  --lh-heading: 1.12; /* @kind other */
  --lh-snug:    1.45; /* @kind other */
  --lh-body:    1.6;  /* @kind other */
  --lh-relaxed: 1.62; /* @kind other */

  /* ---- Letter spacing ---- */
  --ls-display: -0.028em;  /* @kind other */
  --ls-heading: -0.022em;  /* @kind other */
  --ls-tight:   -0.01em;   /* @kind other */
  --ls-eyebrow:  0.16em;   /* @kind other */
  --ls-overline: 0.08em;   /* @kind other */
  --ls-label:    0.1em;    /* @kind other */
}
