/* NeoGas — Typography tokens
   Personality (IBM Plex Serif) · Explanation (Hanken Grotesk) · Evidence (IBM Plex Sans) */
:root {
  /* ── Families ─────────────────────────────────── */
  --font-display: 'IBM Plex Serif', Georgia, 'Times New Roman', serif;
  --font-sans:    'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  --font-mono:    'IBM Plex Sans', system-ui, -apple-system, sans-serif;

  /* ── Weights ──────────────────────────────────── */
  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold: 600;
  --weight-bold:    700;

  /* ── Type scale (px) ──────────────────────────── */
  --text-xs:   12px;
  --text-sm:   14px;
  --text-base: 16px;
  --text-md:   18px;
  --text-lg:   21px;
  --text-xl:   26px;
  --text-2xl:  33px;
  --text-3xl:  42px;
  --text-4xl:  56px;
  --text-5xl:  72px;

  /* ── Line heights ─────────────────────────────── */
  --leading-tight:  1.1;
  --leading-snug:   1.25;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;

  /* ── Letter spacing ───────────────────────────── */
  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-mono:   0.02em;  /* labels / kickers in mono */

  /* ── Semantic roles ───────────────────────────── */
  --role-display-font: var(--font-display);
  --role-heading-font: var(--font-display);
  --role-body-font:    var(--font-sans);
  --role-label-font:   var(--font-sans);
  --role-data-font:    var(--font-mono);
  --role-kicker-font:  var(--font-mono);
}
