/* ============================================================
   Christopher Wagner — Typography tokens
   Hanken Grotesk carries the brand: display headings (weight 800,
   tight tracking), body, labels, and all UI. Newsreader italic is
   reserved for the editorial pull-quote voice. Two families only.
   Values match Chris's live one-pager.
   ============================================================ */

:root {

  /* Families */
  --font-sans:    "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Helvetica, sans-serif;
  --font-display: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Helvetica, sans-serif;
  --font-serif:   "Newsreader", Georgia, "Times New Roman", serif;  /* italic pull-quote only */
  --font-accent:  "Instrument Serif", Georgia, serif;  /* decorative statement line — one per page, large sizes only */
  --font-mono:    ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Type scale — 1.250 (major third), base 16px */
  --text-2xs:  0.625rem;  /* 10px — mono micro-labels ONLY: uppercase eyebrows,
                             metric chips, dates, thumbnail captions. Never
                             sentence-case prose. One step below the scale on
                             purpose; there is no step below it.
                             CONTRAST: at this size every pairing must clear
                             4.5:1 — the faint/muted caption inks are built for
                             larger text and do not qualify on tinted washes. */
  --text-xs:   0.75rem;   /* 12px — captions, fine print */
  --text-sm:   0.875rem;  /* 14px — labels, secondary */
  --text-base: 1rem;      /* 16px — body */
  --text-lg:   1.25rem;   /* 20px — lead / subhead */
  --text-xl:   1.563rem;  /* 25px — H3 / pull-quote */
  --text-2xl:  1.953rem;  /* 31px — H2 */
  --text-3xl:  2.441rem;  /* 39px — H1 */
  --text-4xl:  3.052rem;  /* 49px — display name */

  /* Line height */
  --leading-tight:   1.1;    /* display headings */
  --leading-snug:    1.3;    /* the pull-quote */
  --leading-normal:  1.5;    /* body */
  --leading-relaxed: 1.6;    /* long-form */

  /* Weight (Hanken Grotesk ships 400–800) */
  --weight-light:     300;   /* Newsreader only — Hanken has no 300 and will fall back to 400 */
  --weight-regular:   400;
  --weight-medium:    500;
  --weight-semibold:  600;
  --weight-bold:      700;
  --weight-extrabold: 800;   /* display headings + stat numbers */

  /* Tracking */
  --tracking-label:  0.16em;   /* letter-spaced small-caps labels (--text-xs and up) */
  --tracking-micro:  0.09em;   /* the --text-2xs micro-label; 0.16em at 10px breaks words apart */
  --tracking-tight: -0.02em;   /* large display headings + numbers */
}
