/* Self-hosted fonts (2026-11-01, page speed). Before this the two Google Fonts families arrived after every
   third-party tag (the stylesheet was deferred behind window.load), so on a slow phone the swap landed seconds
   after first paint: the whole hero moved (field CLS 0.17) and Lighthouse put LCP past 10 s on the lead-in text.
   Now: two files preloaded from this origin, one variable file for every Outfit weight, and fallback faces
   whose metrics are adjusted to the web fonts (computed with fontTools against Liberation Sans / Serif, which
   share Arial's and Times New Roman's metrics) so the swap itself moves nothing. Latin subset only, the same
   range Google serves; anything outside it falls through to the system font. */

@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/outfit-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 Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-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 Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-italic-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;
}

/* Fallbacks sized to the web fonts: Outfit 400 is 0.16% wider than Arial, Outfit 700 is 4.2% narrower than
   Arial Bold, DM Serif Display is 11.5% wider than Times. Android has neither Arial nor Times; Roboto and the
   system serif take the same adjustments, which is close, not exact. */
@font-face {
  font-family: 'Outfit Fallback';
  font-style: normal;
  font-weight: 100 500;
  src: local('Arial'), local('ArialMT'), local('Roboto'), local('Helvetica Neue'), local('Helvetica');
  size-adjust: 100.16%;
  ascent-override: 99.84%;
  descent-override: 25.96%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Outfit Fallback';
  font-style: normal;
  font-weight: 600 900;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Roboto Bold'), local('Helvetica Neue Bold'), local('Helvetica-Bold');
  size-adjust: 95.77%;
  ascent-override: 104.41%;
  descent-override: 27.15%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'DM Serif Display Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Times New Roman'), local('TimesNewRomanPSMT'), local('Times'), local('Noto Serif'), local('Droid Serif');
  size-adjust: 111.45%;
  ascent-override: 92.96%;
  descent-override: 30.06%;
  line-gap-override: 0%;
}
