/* =========================================================================
   DragonInit — SELF-HOSTED WEB FONTS (DADBT-108)

   Loaded FIRST by both layouts, before every other sheet. Until S16 D1 both
   layouts instead pulled these three families from `fonts.googleapis.com`,
   which meant **every page load in the app blocked on a third party**.

   Why that mattered enough to fix:

     1. It was a real dependency on somebody else's uptime. When gstatic 404s
        — which it does, unpredictably — a page renders in a fallback face.
     2. It made the E2E suite look unreliable for THREE SPRINTS. A different
        single test went red most runs on a bare
        `Failed to load resource: ... 404 ()` with no URL, and it was written
        off as CPU contention twice. It was Google's CDN. See DADBT-108.
     3. It is a third-party request on every page, which is a privacy posture
        question and one more thing to disclose, on an app about to be
        marketed.
     4. It is a render-blocking round trip to another origin, on every page.

   ---------------------------------------------------------------------------
   ⚠️ THESE ARE VARIABLE FONTS, AND THE `font-weight` RANGE IS LOAD-BEARING.

   Google now serves Grenze Gotisch and Hanken Grotesk as a single variable
   woff2 per family spanning the whole weight axis — the CSS API emits one
   @font-face per requested weight, all pointing at the SAME file. Measured
   when fetching them: all six requested weights resolved to two URLs.

   So each family is declared ONCE here with a weight RANGE, and the browser
   instances whatever weight a rule asks for. Do not "helpfully" split these
   into one block per weight: it downloads the same bytes several times.

   Space Mono is NOT variable — 400 and 700 are genuinely separate files.
   ---------------------------------------------------------------------------
   ⚠️ THE SHARE CARD DOES NOT USE THIS FILE, AND MUST NOT BE CHANGED TO.

   `award-card.js` embeds `grenze-gotisch-700-latin.woff2` and the two Space
   Mono files as data URIs inside the SVG it rasterizes. A canvas render
   cannot use a font it merely *referenced* — S15 D1 measured a remote face
   producing 482px of ink where the real face gives 539px. Those three static
   files therefore stay in `wwwroot/fonts/` and are NOT redundant with the
   variable ones here, even though the family names overlap.
   ---------------------------------------------------------------------------

   WEIGHTS ACTUALLY USED, measured in a browser via `document.fonts` rather
   than assumed (S16 D1):
     Grenze Gotisch   400, 700   (+900 on the pricing tier, hidden until R3)
     Hanken Grotesk   400, 600, 700, 800
     Space Mono       400, 700
   The old CDN link also requested **500 of two families, which nothing uses**.

   LICENCE: all three are SIL Open Font License 1.1, which expressly permits
   self-hosting and redistribution. Files fetched from fonts.gstatic.com,
   latin subsets, 2026-08-17.
   ========================================================================= */

/* latin subset, matching what the CDN served: Basic Latin + a little punctuation */
@font-face {
  font-family: 'Grenze Gotisch';
  font-style: normal;
  font-weight: 400 900;              /* variable axis - see the note above */
  font-display: swap;
  src: url('../fonts/grenze-gotisch-var-latin.woff2') format('woff2-variations'),
       url('../fonts/grenze-gotisch-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+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 100 900;              /* variable axis - see the note above */
  font-display: swap;
  src: url('../fonts/hanken-grotesk-var-latin.woff2') format('woff2-variations'),
       url('../fonts/hanken-grotesk-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+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Space Mono ships as static instances - two files, two blocks, and that is correct. */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/space-mono-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+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/space-mono-700-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+2074, U+20AC,
                 U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
