/*
 * Self-hosted web fonts.
 *
 * These were loaded from fonts.googleapis.com until 2026-08-05. Measured, ten
 * page loads on the same paths: with the Google request in place a load
 * intermittently stalled past the test timeout; with it blocked, 10/10 completed
 * at a 3069ms median with almost no variance. The cause is not Google being
 * slow — it answers in 0.77s over IPv4 and times out over IPv6, and Chrome tries
 * the AAAA record first.
 *
 * That was diagnosed on one developer machine with a broken NAT64 route, but the
 * exposure is not local: every user's first paint depended on a third party
 * being reachable. A customer behind a corporate proxy, on partial IPv6, or in a
 * region where Google is blocked would have seen the same stall. Making the
 * stylesheet non-render-blocking hid the symptom; it did not remove the request.
 *
 * ── One @font-face per family, not one per weight ──────────────────────────
 *
 * All five files are variable fonts, so a single rule with a `font-weight`
 * RANGE covers every weight the app uses; the browser interpolates along the
 * axis. The ranges below are the fonts' own `fvar` axes, read from the files
 * rather than assumed.
 *
 * The first version of this file had eleven rules, one per weight, each with a
 * per-weight filename. That is what Google's css2 endpoint appears to return,
 * but it is a misreading: for a variable family every weight it lists points at
 * the SAME url. The giveaway is the content hash, identical across all four
 * Inter rules. Downloading "each" file therefore produced five files for eleven
 * references, and six of them 404'd — silently, because `font-display: swap`
 * renders the fallback face and a missing font looks like a font that has not
 * arrived yet. Staging served it that way from v1.4.0 until it was measured.
 *
 * Latin subset only, woff2 only. `font-display: swap` keeps text visible in the
 * fallback face while a file loads.
 *
 * Regenerate: fetch the css2 URL with a Chrome user-agent, keep the /* latin */
 * blocks, and DEDUPLICATE BY URL before downloading — one file per family, not
 * one per weight. Name each file for the axis range it actually carries, and
 * check the result with `fonts.spec.ts`, which fails if any url() here has no
 * file behind it.
 */

@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url(/fonts/DMSans-100_1000-italic-16e131a9.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url(/fonts/DMSans-100_1000-normal-1c49a6eb.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/fonts/Inter-100_900-normal-6ab57b19.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/JetBrainsMono-400_800-normal-0a7197f9.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/fonts/Manrope-200_800-normal-bcbadccc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
