/* ── type scale ─────────────────────────────────────────────────────────────
   Two families, split by job: Archivo for anything the reader reads as language,
   JetBrains Mono for anything they read as a value — codes, ratios, tokens,
   figures. Display sizes are set at weight 500 with negative tracking so the
   size does the shouting instead of the weight.
   Each step ships size / line-height / weight / tracking as one fluid token.  */
:root {
  --lh-tight: 0.94; /* @kind font */
  --lh-snug: 1.08; /* @kind font */
  --lh-normal: 1.3; /* @kind font */
  --lh-copy: 1.62; /* @kind font */

  /* display-1 — one per page, the portfolio ledger name */
  --fs-d1: clamp(52px, 7.4vw, 96px); /* @kind font */
  --lh-d1: 0.94; /* @kind font */
  --tr-d1: -0.035em; /* @kind font */
  --fw-d1: 500; /* @kind font */

  /* display-2 — page title, product name in a ledger row */
  --fs-d2: clamp(40px, 5vw, 64px); /* @kind font */
  --lh-d2: 0.98; /* @kind font */
  --tr-d2: -0.03em; /* @kind font */
  --fw-d2: 500; /* @kind font */

  /* title-1 — section heading */
  --fs-t1: clamp(30px, 3.2vw, 40px); /* @kind font */
  --lh-t1: 1.08; /* @kind font */
  --tr-t1: -0.02em; /* @kind font */
  --fw-t1: 500; /* @kind font */

  /* title-2 — subsection, product entry name in a list */
  --fs-t2: clamp(23px, 2vw, 28px); /* @kind font */
  --lh-t2: 1.18; /* @kind font */
  --tr-t2: -0.015em; /* @kind font */
  --fw-t2: 500; /* @kind font */

  /* title-3 — card and block heading, the smallest heading */
  --fs-t3: 20px; /* @kind font */
  --lh-t3: 1.3; /* @kind font */
  --tr-t3: -0.01em; /* @kind font */
  --fw-t3: 600; /* @kind font */

  /* body-lg — standfirst, one paragraph directly under a title */
  --fs-body-lg: 19px; /* @kind font */
  --lh-body-lg: 1.55; /* @kind font */
  --fw-body-lg: 400; /* @kind font */

  /* body — running copy, 17px so a 68ch measure lands near 72 characters */
  --fs-body: 17px; /* @kind font */
  --lh-body: 1.62; /* @kind font */
  --fw-body: 400; /* @kind font */

  /* small — captions, footnotes, dense table copy */
  --fs-small: 15px; /* @kind font */
  --lh-small: 1.5; /* @kind font */
  --fw-small: 400; /* @kind font */

  /* meta — mono. inline labels, tickers, status text, table headers */
  --fs-meta: 13px; /* @kind font */
  --lh-meta: 1.35; /* @kind font */
  --tr-meta: 0.01em; /* @kind font */
  --fw-meta: 500; /* @kind font */

  /* micro — mono. token names, hex codes, ratios, legal line */
  --fs-micro: 11.5px; /* @kind font */
  --lh-micro: 1.2; /* @kind font */
  --tr-micro: 0.04em; /* @kind font */
  --fw-micro: 500; /* @kind font */

  --measure: 68ch;        /* max line length for --fs-body: ~72 characters */
  --measure-tight: 54ch;  /* standfirst */
}
