/* Self-hosted, OFL-licensed, subset and instanced to the axes this design uses.
   Latin and Latin-Ext are separate files: a page only fetches Latin-Ext if a
   glyph on it needs one, so accented place names cost nothing elsewhere. */

/* --- Bodoni Moda — display. Keeps its optical-size axis on purpose: it runs
       from a 68px headline down to a 16px numeral, which is what opsz is for. */
@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/BodoniModa-normal-latin.870fd5ab292e.woff2") format("woff2");
  font-weight: 400 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2190-2193, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/BodoniModa-normal-latin-ext.735443525c4f.woff2") format("woff2");
  font-weight: 400 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/BodoniModa-italic-latin.6a9eb8d8904e.woff2") format("woff2");
  font-weight: 400 500;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2122, U+2190-2193, U+2212, U+FEFF, U+FFFD;
}

/* --- Newsreader — body. Optical size pinned at 16: body is set at one size,
       and pinning it cut the file by 71%. */
@font-face {
  font-family: "Newsreader";
  src: url("../fonts/Newsreader-normal-latin.f3b5588293d4.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2190-2193, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Newsreader";
  src: url("../fonts/Newsreader-normal-latin-ext.4c41e8a201ca.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Newsreader";
  src: url("../fonts/Newsreader-italic-latin.3858a019cc29.woff2") format("woff2");
  font-weight: 400 600;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2122, U+2190-2193, U+2212, U+FEFF, U+FFFD;
}

/* --- Archivo — interface text, kickers, metadata. */
@font-face {
  font-family: "Archivo";
  src: url("../fonts/Archivo-normal-latin.60f4d2bc565d.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2190-2193, U+2212, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Archivo";
  src: url("../fonts/Archivo-normal-latin-ext.d6309787929d.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+2C60-2C7F, U+A720-A7FF;
}

/* --- Fallback metric overrides -------------------------------------------
   While a webfont is downloading the browser paints the local fallback, and
   the swap moves every line — layout shift the CLS ≤ 0.05 budget has to
   absorb. These faces are the SAME local fonts each stack already names,
   re-declared with metrics adjusted to match the webfont: size-adjust is the
   ratio of average lowercase advance, and the ascent/descent overrides stop
   the line box changing height.

   Measured from the actual files with fontTools, not guessed. Use them by
   naming the -fallback family after the webfont in the CSS font stack. */

@font-face {
  font-family: "Bodoni Fallback";
  src: local("Times New Roman"), local("Times");
  size-adjust: 115.6%;
  ascent-override: 97.3%;
  descent-override: 34.6%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Newsreader Fallback";
  src: local("Georgia"), local("Times New Roman");
  size-adjust: 97.2%;
  ascent-override: 75.6%;
  descent-override: 27.3%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Archivo Fallback";
  src: local("Helvetica Neue"), local("Helvetica"), local("Arial");
  size-adjust: 103.1%;
  ascent-override: 85.2%;
  descent-override: 20.4%;
  line-gap-override: 0%;
}
