/* ---------------------------------------------------------------------------
 * Typography stack
 *
 * Default theme (legacy):
 *   - Fraunces (variable display serif)
 *   - IBM Plex Sans (humanist body)
 *   - IBM Plex Mono (counters / technical marks)
 *
 * Broadsheet + Jacket themes:
 *   - Helvetica Now Display (Black + ExtraBold)   — headlines
 *   - Helvetica Now (Regular + Bold)              — body
 *   - Helvetica Now Text Bold                     — inline bold in reading flow
 *   - Helvetica Now Micro Light                   — legal / caption / nav labels
 *   - EB Garamond                                 — pullquotes, editorial italics
 *
 * Monotype licence file for Helvetica Now is held by Do Your Bit Ltd (full
 * webfont kit, 2021). Self-hosted from /fonts/.
 * ------------------------------------------------------------------------- */

/* Legacy / default theme web fonts (kept for the existing stylesheet). */
/* Fraunces / IBM Plex Sans / IBM Plex Mono Google Fonts import removed 2026-06-10.
 * Every page sets data-theme="broadsheet" whose theme overrides --font-* to the
 * self-hosted Helvetica Now / Tiempos stack, so Fraunces and IBM Plex never
 * actually render. The import was a blocking cross-origin CSS fetch with no
 * visible benefit (same rationale as the EB Garamond removal above). */

/* Editorial italics / pullquotes used to load EB Garamond here, but
 * --font-quote in both themes was switched to Tiempos Text on
 * 2026-05-07 (see the @font-face below). EB Garamond import removed
 * to drop a dead Google Fonts request. */

/* -------------------------------------------------------------------------
 * Helvetica Now (Monotype) — self-hosted
 *
 * Installed cuts (as of latest kit):
 *   Display:  Bold (700), ExtraBold (800), Black (900)
 *   Text:     Regular (400), Bold (700)
 *   Body:     'Helvetica Now' Regular (400), Bold (700)
 *   Micro:    Light (300)
 *
 * NOT installed: any 500/600 (SemiBold) cut — the kit doesn't ship one.
 * A CSS font-weight of 500 or 600 will be synthesised by the browser or
 * resolved to the closest installed weight.
 * ------------------------------------------------------------------------- */
@font-face {
  font-family: 'Helvetica Now Display';
  font-style: normal;
  font-weight: 700;
  font-display: optional; /* LCP face: avoid the swap repaint that set LCP at font-arrival; fallback Helvetica Neue is visually adjacent (2026-06-10 perf pass) */
  src: url('/fonts/HelveticaNowDisplay-Bold.woff2') format('woff2');
}
@font-face {
  font-family: 'Helvetica Now Display';
  font-style: normal;
  font-weight: 800;
  font-display: optional; /* LCP face: avoid the swap repaint that set LCP at font-arrival; fallback Helvetica Neue is visually adjacent (2026-06-10 perf pass) */
  src: url('/fonts/HelveticaNowDisplay-XBd.woff2') format('woff2');
}
@font-face {
  font-family: 'Helvetica Now Display';
  font-style: normal;
  font-weight: 900;
  font-display: optional; /* LCP face: avoid the swap repaint that set LCP at font-arrival; fallback Helvetica Neue is visually adjacent (2026-06-10 perf pass) */
  src: url('/fonts/HelveticaNowDisplay-Blk.woff2') format('woff2');
}
@font-face {
  font-family: 'Helvetica Now';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/HelveticaNow-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Helvetica Now';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/HelveticaNow-Bold.woff2') format('woff2');
}
@font-face {
  /* Text-optical cut: wider counters, taller x-height — tuned for sustained
     reading. Prefer this over 'Helvetica Now' for body copy where the body
     text is below ~16px. */
  font-family: 'Helvetica Now Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/HelveticaNowText-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Helvetica Now Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/HelveticaNowText-Bold.woff2') format('woff2');
}
@font-face {
  /* Optical size tuned for very small text (≤ 11px): captions, legal, nav meta. */
  font-family: 'Helvetica Now Micro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/HelveticaNowMicro-Light.woff2') format('woff2');
}

/* -------------------------------------------------------------------------
 * Tiempos Text — italic-only cut, used for editorial italic emphasis
 * throughout the site (matches scaleatspeed.com's typography).
 *
 * Mirrored from scaleatspeed.com/fonts/ to public/fonts/ on 2026-05-07
 * because scaleatspeed.com doesn't serve Access-Control-Allow-Origin on
 * the font response, which would CORS-block a cross-origin @font-face
 * fetch from scaleatspeed.ai. Same-origin path = no CSP change needed.
 * ------------------------------------------------------------------------- */
@font-face {
  font-family: 'Tiempos Text';
  src: local('Tiempos Text Regular Italic'),
       local('TiemposText-RegularItalic'),
       url('/fonts/TiemposText-RegularItalic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
