/* ===========================================================================
   machado.group — Typography
   ---------------------------------------------------------------------------
   Families, weights, and a fixed type scale. Steps pair a size with a
   line-height and tracking; consume via the .h1 / .text-body / .mono-label
   utilities in components/type.css, or read the raw tokens directly.
   =========================================================================== */

:root {
  /* ---- families --------------------------------------------------------- */
  /* The system uses TWO faces: DISPLAY GROTESK (Aeonik-like — display,
     headings, the core brand face) and MONO (body, UI chrome, labels,
     numerals). Serif and sans are retired: --font-serif is kept as an alias
     to the grotesk so existing references resolve to the new face, and
     --font-sans is aliased to mono. Nothing new should reach for either. */
  --font-display: 'Hanken Grotesk', 'Aeonik', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif; /* geometric grotesk — display / headings / core */
  --font-serif: var(--font-display);  /* retired — aliased to the display grotesk */
  --font-mono:  'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --font-mono-tech: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace; /* technical mono — primary body face */
  --font-numeric: 'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace; /* ALL numerals — figures, data, stats, counters */
  --font-pixel: 'Doto', 'IBM Plex Mono', ui-monospace, monospace;  /* LCD numerals */
  --font-sans:  var(--font-mono-tech);   /* retired — aliased to mono */

  /* semantic body face — MONO. */
  --font-body:  var(--font-mono-tech);

  /* ---- weights (restrained: light→semibold, no black) ------------------- */
  --weight-light:    300; /* @kind font */
  --weight-regular:  400; /* @kind font */
  --weight-medium:   500; /* @kind font */
  --weight-semibold: 600; /* @kind font */

  /* ---- tracking --------------------------------------------------------- */
  --tracking-tight:  -0.02em;   /* @kind font */
  --tracking-snug:   -0.01em;   /* @kind font */
  --tracking-normal:  0em;      /* @kind font */
  --tracking-wide:    0.08em;   /* @kind font */
  --tracking-wider:   0.14em;   /* @kind font */
  --tracking-numeric: -2px;     /* @kind font */ /* numerals only (test) */

  /* ---- type scale : size / line-height ---------------------------------- */
  /* display — the big end. Titles live at 120px by default (`.title`); the
     4xl/mega steps are for posters, hero covers and full-bleed statements. */
  --fs-mega:        200px; --lh-mega:        0.90; /* @kind font */
  --fs-display-4xl: 160px; --lh-display-4xl: 0.92; /* @kind font */
  --fs-display-3xl: 120px; --lh-display-3xl: 0.96; /* @kind font */ /* = .title */
  --fs-display-2xl: 72px;  --lh-display-2xl: 1.04; /* @kind font */
  --fs-display-xl:  56px;  --lh-display-xl:  1.06; /* @kind font */
  --fs-display-lg:  44px;  --lh-display-lg:  1.08; /* @kind font */
  /* headings */
  --fs-h1: 34px;  --lh-h1: 1.12; /* @kind font */
  --fs-h2: 28px;  --lh-h2: 1.18; /* @kind font */
  --fs-h3: 22px;  --lh-h3: 1.25; /* @kind font */
  --fs-h4: 18px;  --lh-h4: 1.33; /* @kind font */
  /* body */
  --fs-lede:    24px;  --lh-lede:    1.45; /* @kind font */ /* standfirst / subhead */
  --fs-body-lg: 18px;  --lh-body-lg: 1.6;  /* @kind font */
  --fs-body:    16px;  --lh-body:    1.6;  /* @kind font */
  --fs-body-sm: 14px;  --lh-body-sm: 1.55; /* @kind font */
  --fs-caption: 13px;  --lh-caption: 1.45; /* @kind font */
  /* labels (mono) */
  --fs-label:    12px;  --lh-label:    1.2; /* @kind font */
  --fs-label-sm: 11px;  --lh-label-sm: 1.2; /* @kind font */
  /* data (pixel) */
  --fs-data-lg: 48px;  --lh-data-lg: 1.0; /* @kind font */
  --fs-data:    28px;  --lh-data:    1.0; /* @kind font */
}
