/* ════════════════════════════════════════════════════════════
   JACK DEMANCHE — typography.css
   Site-wide type calibration for the Plex Mono display system.
   Loaded LAST in every page head so it wins ties against the
   per-page inline styles. Adjust scale/labels here, not in page
   CSS. Mono is wider than the old display face, so headline
   sizes come down; labels and nav come up (Jack: they were too
   small).
   ════════════════════════════════════════════════════════════ */

/* ── Display: Plex Mono, honest weight ceiling (max 700) ── */
h1, .hero-headline, .hero h1,
.section-title, .sec-h, .sec-heading,
.section-title, .author-name, .author-wrap h2 {
  font-family: var(--font-display, 'IBM Plex Mono', ui-monospace, monospace);
  font-weight: 700;
}
.hero-headline, .hero h1 {
  font-size: clamp(2rem, 4.2vw, 3.25rem);
  line-height: 1.18;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.section-title, .sec-h {
  font-size: clamp(1.5rem, 2.8vw, 2.25rem);
  line-height: 1.22;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.stat-number, .bignum { font-size: 2.3rem; letter-spacing: -0.04em; }
.build-name, .card-title, .teaser-card-title, .pattern h3, .peercard h3, .action h3 {
  letter-spacing: -0.01em;
  line-height: 1.3;
}

/* ── Labels & nav: bigger than they ever were (was 0.68–0.72rem) ── */
.nav-links a        { font-size: 0.84rem; letter-spacing: 0.06em; }
.hero-eyebrow       { font-size: 0.88rem; letter-spacing: 0.12em; }
.card-tag, .build-tag, .teaser-card-tag, .related-label,
.author-label, .fr-head, .whats-next-label { font-size: 0.76rem; }
.hero-meta, .card-date, .teaser-card-date, .note-tag, .note-date { font-size: 0.78rem; }
.eyebrow, .page-eyebrow, .breadcrumb { font-size: 0.8rem; }
.btn { font-size: 0.84rem; }
footer { font-size: 0.85rem; }

/* ── Body baseline stays Inter via tokens; nothing below this line ── */
