/* ============================================================
   FONTS — self-hosted DM Mono + Outfit.

   Previously both HTML files pulled these from fonts.googleapis.com. That
   sent every visitor's IP to Google before consent (a live GDPR complaint in
   the EU) and, worse for this app, meant the type never loaded offline —
   which contradicts the whole offline-first promise: a phone at a pitch with
   no signal fell back to system fonts.

   Subsets: latin + latin-ext only (English UI, accented player/club names).
   Regenerate with scripts described in BUSINESS-OPS-CHECKLIST.md if the
   weights in --sans / --mono (base.css) ever change.

   ── WEIGHT CEILINGS. Read before setting font-weight anywhere. ──
   Outfit is VARIABLE and covers 300–700. Ask for anything in that range.

   DM Mono is NOT. It ships 300/400/500 upstream and we carry 400 and 500 —
   there is no bold DM Mono to add, so 500 is the hard ceiling. Ask for 600
   or 700 on a mono element and the browser cannot find a face: it fakes one
   by smearing the 500, which on a monospace at 9–11px (where most of our
   mono lives — keyboard chips, timecodes, counts) reads as blurred, uneven
   strokes. 37 rules had drifted past it before this was written down.

   The trap that is easy to miss: <b> and <strong> default to 700, so a bold
   tag inside a mono container is synthesised even with no CSS weight at all.
   Set font-weight:500 explicitly on those.
   ============================================================ */
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../assets/fonts/dmmono-400-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../assets/fonts/dmmono-400-latin.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 Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../assets/fonts/dmmono-500-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../assets/fonts/dmmono-500-latin.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:'Outfit';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../assets/fonts/outfit-var-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Outfit';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../assets/fonts/outfit-var-latin.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;
}
