/* Self-hosted variable fonts (Latin subset). One file per family covers all weights. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(inter.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: 'Playfair Display';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(playfair.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;
}

/* ---------------------------------------------------------------------------
   Metric-matched fallbacks.

   font-display: swap paints a system font first and swaps when the webfont
   arrives. That swap moved text and was the site's main source of layout
   shift -- PageSpeed reported an intermittent CLS of 0.1-0.2, intermittent
   because it depends on whether the font was already cached.

   These faces re-shape the system font to the webfont's own measurements so
   the swap is invisible and nothing moves. The numbers were measured in the
   browser against the real fonts rather than estimated: Inter renders 7.1%
   wider than Arial at the same size, Playfair 7.7% wider than Times. The
   ascent and descent overrides are expressed against the size-adjusted em,
   which is why they are the real metric divided by the size-adjust factor.

   Chosen over font-display: optional, which also removes the shift but drops
   the webfont entirely on a slow first load. The headline serif is part of
   the brand, so losing it is the worse trade.
   --------------------------------------------------------------------------- */
@font-face {
  font-family: 'Inter Fallback';
  src: local('Arial'), local('Helvetica'), local('Roboto');
  size-adjust: 107.1%;
  ascent-override: 90.6%;
  descent-override: 22.4%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Playfair Fallback';
  src: local('Times New Roman'), local('Times'), local('Georgia');
  size-adjust: 107.7%;
  ascent-override: 100.3%;
  descent-override: 23.2%;
  line-gap-override: 0%;
}
