/* Self-hosted webfonts — replaces the fonts.googleapis.com stylesheet.
 *
 * Why this exists: the Google Fonts <link> was the single slowest thing on the
 * page. Measured cold TTFB from this machine:
 *
 *   fonts.googleapis.com/css2...   1.448s   (then a second DNS + TLS + fetch
 *                                               to fonts.gstatic.com for the
 *                                               actual font files)
 *   cdnjs font-awesome/all.min.css 0.834s
 *
 * Both are third-party origins, so every visitor paid that latency before any
 * text painted, and neither was cacheable under our control. Serving the files
 * from our own domain removes two third-party round trips from the critical path
 * and makes the fonts immutable-cacheable.
 *
 * The woff2 files are subsetted to the glyphs this site actually renders
 * (tools/collect-glyphs.mjs + tools/subset-fonts.py):
 *
 *   anton-latin.woff2    18,612 -> 16,168 bytes
 *   inter-latin.woff2    48,256 -> 39,452 bytes  (variable, wght 100-900 kept)
 *   lacquer-latin.woff2  75,464 -> 35,256 bytes
 *
 * Fonts are OFL-licensed, which explicitly permits self-hosting and subsetting.
 *
 * font-display: swap is deliberate. The original request already used
 * `&display=swap`, and swap avoids blocking first paint on a font fetch, which
 * matters more now that the file is same-origin but still not instant.
 *
 * `preload` is applied by the HTML for the two fonts used above the fold (Anton
 * for the hero headline, Inter for body copy) so the browser starts them during
 * HTML parse instead of after CSS is parsed. Lacquer is deliberately NOT preloaded:
 * it only paints the breadcrumb label far below the fold, so preloading it would
 * spend bandwidth ahead of content the visitor is more likely to see.
 */

@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/anton-latin.woff2?v=20261006') 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;
  /* The file is a variable font covering 100-900. Declaring a range lets the
     browser pick the right instance from the single file, so body copy at
     weights 300-800 all work without shipping six separate files. */
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/inter-latin.woff2?v=20261006') 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: 'Lacquer';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/lacquer-latin.woff2?v=20261006') 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;
}
