/**
 * Self-hosted webfonts.
 *
 * ── Why these are here and not on fonts.googleapis.com ──────────────────────
 * The site used to load all four families from
 * `https://fonts.googleapis.com/css2?family=…` via a `<link rel="stylesheet">`.
 * That is a *render-blocking* cross-origin stylesheet: the browser cannot paint
 * anything until it has (a) resolved DNS for a third-party domain, (b) completed
 * a TLS handshake, (c) downloaded the CSS, and only then (d) discovered and
 * requested the woff2 files. Measured with the font domain blackholed, first
 * paint slipped by **+648ms on /catalog/** and **+1656ms on a product page**.
 *
 * `display=swap` does not help with any of that: `swap` only decides what to do
 * with text once the CSS has already arrived and a font file is still missing.
 * The blocking happens one layer earlier, in the CSS request itself.
 *
 * Serving the files ourselves makes them same-origin, so they ride the existing
 * connection and inherit the `Cache-Control: public, max-age=31536000, immutable`
 * rule that `public/_headers` already applies to `/_astro/*` (Vite fingerprints
 * everything these `@import`s pull in). It also removes a third-party single
 * point of failure that was, in practice, always failing for visitors on
 * mainland-China networks and corporate intranets.
 *
 * ── The `@import` list is the whole font budget ─────────────────────────────
 * Each Fontsource entry point declares one family-weight across *every* subset
 * it ships, with a `unicode-range` per subset. The browser therefore downloads
 * only the slices a page actually renders: a German product page fetches the
 * Latin face and nothing else, while `/ru/` additionally pulls Cyrillic and
 * `/pl/` pulls Latin-Extended. Unused subsets cost a few files in `dist/` and
 * zero bytes over the wire.
 *
 * Coverage notes for the 14 locales (en de fr es it pt pl ru tr nl ro ar sv cs):
 *   • `ru` needs Cyrillic — Inter and JetBrains Mono both provide it.
 *   • `pl cs tr ro` need Latin-Extended diacritics — provided by all four.
 *   • `ar` has no Arabic coverage in any of these families. That is unchanged
 *     from the Google Fonts setup, which did not request an Arabic family
 *     either; Arabic text falls back to the system font exactly as before.
 *   • Barlow Condensed ships Latin/Latin-Extended/Vietnamese only, so `ru`
 *     headings already fell through to the next family in `--font-heading`.
 *
 * Italic is included for Inter only, and deliberately: the site renders
 * `<em>` from `*emphasis*` in 131 content files plus three `font-style: italic`
 * empty-state rules, so dropping the italic face would substitute a synthetic
 * oblique. It costs nothing on pages that have no italic text, because a
 * `font-style: italic` face is only fetched when italic text is actually laid
 * out. Barlow Condensed and JetBrains Mono italics are NOT loaded — nothing in
 * the codebase or the content ever asks for them.
 */

/* ── Body ─────────────────────────────────────────────────────────────────── */
/* Variable font: one file covers weights 100–900, so `font-weight: 700` on a
   paragraph costs no additional download. */
@import '@fontsource-variable/inter/wght.css';
@import '@fontsource-variable/inter/wght-italic.css';

/* ── Headings / display ───────────────────────────────────────────────────── */
/* Weights: 400 (labels/subtitles), 700 (headings/badges/cards), 800 (hero titles).
   600 is omitted: CSS font-weight matching cleanly falls back to 700 without an
   extra 30+ KiB download. */
@import '@fontsource/barlow-condensed/400.css';
@import '@fontsource/barlow-condensed/700.css';
@import '@fontsource/barlow-condensed/800.css';

/* ── Part numbers, codes, telemetry ───────────────────────────────────────── */
/* Streamlined to 400 (regular telemetry/tables) and 700 (prominent SKUs/codes).
   Intermediates (500, 600) naturally match 700 for optimal workshop legibility,
   saving multiple duplicate WOFF2 font downloads on mobile. */
@import '@fontsource/jetbrains-mono/400.css';
@import '@fontsource/jetbrains-mono/700.css';

/* ── Editorial hero titles ────────────────────────────────────────────────── */
/* Roboto Slab is the slab-serif face behind five hero titles
   (`.engine-hero-title`, `.rfq-title`, `.article-title` ×3). Only weight 800 is
   ever declared, so only 800 is loaded. Keeping it means the typography of
   those pages is byte-for-byte what it was before the migration. */
@import '@fontsource/roboto-slab/800.css';
