/* Self-hosted Montserrat and Roboto Serif (October 27, 2026; replaces fonts.css, which stays for browsers
   that cached it). Source: Fontsource packages, which repackage the Google Fonts files. Latin and Latin
   Extended only.
   The four Latin files (-v2) keep every character and the default features, and drop the alternate
   figure sets (tnum, pnum, lnum) the site never asks for: about 65 KB less on every first visit.
   Abhaya Libre was dropped: no page uses it.
   /assets/fonts/ is cached for a year, so a changed font or this file gets a new name; never edit
   a published file in place. Every page preloads the two Latin files the Home hero uses
   (Montserrat normal, Roboto Serif italic); both are used on every page. Preloading Roboto Serif
   normal as well tested slower on mobile (Lighthouse, October 27, 2026). */

/* montserrat-latin-ext-wght-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./montserrat-latin-ext-wght-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* montserrat-latin-wght-normal */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./montserrat-latin-wght-normal-v2.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;
}

/* montserrat-latin-ext-wght-italic */
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(./montserrat-latin-ext-wght-italic.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* montserrat-latin-wght-italic */
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(./montserrat-latin-wght-italic-v2.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;
}

/* roboto-serif-latin-ext-opsz-normal */
@font-face {
  font-family: 'Roboto Serif';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./roboto-serif-latin-ext-opsz-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* roboto-serif-latin-opsz-normal */
@font-face {
  font-family: 'Roboto Serif';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(./roboto-serif-latin-opsz-normal-v2.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;
}

/* roboto-serif-latin-ext-opsz-italic */
@font-face {
  font-family: 'Roboto Serif';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(./roboto-serif-latin-ext-opsz-italic.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* roboto-serif-latin-opsz-italic */
@font-face {
  font-family: 'Roboto Serif';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(./roboto-serif-latin-opsz-italic-v2.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;
}

/* Fallback faces, added October 11, 2026 (performance). Until the web fonts arrive, text is drawn in
   Arial (or a metric twin) resized to the web font's width and line metrics, so nothing jumps when
   the real font swaps in. Sizes measured in the browser against the site's own text at each weight in
   use (October 11, 2026); line metrics from the font files. Re-measure if a web font file changes. */
@font-face { font-family: "Roboto Serif Fallback"; font-style: normal; font-weight: 300; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 105.9%; ascent-override: 87.54%; descent-override: 23.04%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: normal; font-weight: 400; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 113.31%; ascent-override: 81.81%; descent-override: 21.53%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: normal; font-weight: 500; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 115.45%; ascent-override: 80.29%; descent-override: 21.13%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: normal; font-weight: 700; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 119.6%; ascent-override: 77.51%; descent-override: 20.4%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: italic; font-weight: 300; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 103.0%; ascent-override: 90.0%; descent-override: 23.69%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: italic; font-weight: 400; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 110.73%; ascent-override: 83.72%; descent-override: 22.04%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: italic; font-weight: 500; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 113.04%; ascent-override: 82.0%; descent-override: 21.58%; line-gap-override: 0%; }
@font-face { font-family: "Roboto Serif Fallback"; font-style: italic; font-weight: 700; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 117.64%; ascent-override: 78.8%; descent-override: 20.74%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: normal; font-weight: 300; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 111.48%; ascent-override: 86.83%; descent-override: 22.51%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: normal; font-weight: 350; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 112.27%; ascent-override: 86.22%; descent-override: 22.36%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: normal; font-weight: 400; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 112.98%; ascent-override: 85.68%; descent-override: 22.22%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: normal; font-weight: 500; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 114.67%; ascent-override: 84.41%; descent-override: 21.89%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: normal; font-weight: 700; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Helvetica"); size-adjust: 118.88%; ascent-override: 81.43%; descent-override: 21.11%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: italic; font-weight: 300; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 112.81%; ascent-override: 85.81%; descent-override: 22.25%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: italic; font-weight: 350; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 113.43%; ascent-override: 85.34%; descent-override: 22.13%; line-gap-override: 0%; }
@font-face { font-family: "Montserrat Fallback"; font-style: italic; font-weight: 500; src: local("Arial Italic"), local("Arial-ItalicMT"), local("Liberation Sans Italic"), local("Helvetica Oblique"); size-adjust: 115.9%; ascent-override: 83.52%; descent-override: 21.66%; line-gap-override: 0%; }
