/* Self-hosted fonts (SIL Open Font License 1.1). Latin subset, variable woff2 as served by Google Fonts.
   Weight ranges match what the site previously requested, so heavier weights clamp the same way. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/dm-sans-latin-var.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: 'Fraunces';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url('../fonts/fraunces-latin-var.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: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/fraunces-italic-latin-var.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;
}

/* Metric-matched fallbacks (2026-11-03 flicker fix). While the web fonts load (font-display: swap),
   text renders in Georgia / Arial scaled to Fraunces / DM Sans widths and line metrics, so the swap
   doesn't re-wrap headings or shift the layout. size-adjust computed with HarfBuzz from this site's own
   heading and body copy; ascent/descent = web-font metric / size-adjust. Where the local font is
   missing (e.g. Android has no Georgia), the face is skipped and the normal stack applies. */
@font-face {
  font-family: 'Fraunces Fallback';
  font-style: normal;
  font-weight: 100 599;
  src: local('Georgia');
  size-adjust: 106.3%;
  ascent-override: 92%;
  descent-override: 24%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Fraunces Fallback';
  font-style: normal;
  font-weight: 600 900;
  src: local('Georgia Bold'), local('Georgia-Bold');
  size-adjust: 93.7%;
  ascent-override: 104.4%;
  descent-override: 27.2%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Fraunces Fallback';
  font-style: italic;
  font-weight: 100 900;
  src: local('Georgia Bold Italic'), local('Georgia-BoldItalic');
  size-adjust: 85.9%;
  ascent-override: 113.8%;
  descent-override: 29.7%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'DM Sans Fallback';
  font-style: normal;
  font-weight: 100 549;
  src: local('Arial'), local('ArialMT'), local('Helvetica'), local('Roboto');
  size-adjust: 103.7%;
  ascent-override: 95.7%;
  descent-override: 29.9%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'DM Sans Fallback';
  font-style: normal;
  font-weight: 550 900;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Helvetica Bold'), local('Roboto Bold');
  size-adjust: 101%;
  ascent-override: 98.3%;
  descent-override: 30.7%;
  line-gap-override: 0%;
}
