/* @font-face declarations for the reading-face catalog. Lazy by
   construction: the browser downloads only faces a page renders.
   Files + provenance: /static/fonts/ (see fonts/README.md); the
   catalog that references these families is reading/src/fonts.ts. */

/* TODO(perf): metric-match the fallback for each embedded face
   (size-adjust / ascent-override / descent-override) so font-display:swap
   doesn't shift line wrapping when the real face arrives. Today the swap
   reflows the text taller, forcing a corrective re-paginate on first load --
   on the paginated reader (esp. e-ink) that's a visible relayout. Matched
   metrics would make the pre-swap fallback occupy the same space, so the
   first paginate is already correct and no re-paginate is needed. See the
   document.fonts.ready re-paginate in wikireader/src/main.ts (the current
   stopgap). Per-face measurement work (Fontaine-style). */

/* Serifs ------------------------------------------------------------- */

@font-face {
  font-family: "Charter";
  src: url("/static/fonts/charter.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Charter";
  src: url("/static/fonts/charter-bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Charter";
  src: url("/static/fonts/charter-italic.woff2") format("woff2");
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: "Charter";
  src: url("/static/fonts/charter-bold-italic.woff2") format("woff2");
  font-weight: 700; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "Literata";
  src: url("/static/fonts/literata.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Literata";
  src: url("/static/fonts/literata-italic.woff2") format("woff2");
  font-weight: 400 700; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("/static/fonts/source-serif.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("/static/fonts/source-serif-italic.woff2") format("woff2");
  font-weight: 400 700; font-style: italic; font-display: swap;
}

/* Sans-serifs -------------------------------------------------------- */

@font-face {
  font-family: "Inter";
  src: url("/static/fonts/inter.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("/static/fonts/inter-italic.woff2") format("woff2");
  font-weight: 400 700; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "Atkinson Hyperlegible";
  src: url("/static/fonts/atkinson-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  src: url("/static/fonts/atkinson-700.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  src: url("/static/fonts/atkinson-400-italic.woff2") format("woff2");
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  src: url("/static/fonts/atkinson-700-italic.woff2") format("woff2");
  font-weight: 700; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "Source Sans 3";
  src: url("/static/fonts/source-sans.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Source Sans 3";
  src: url("/static/fonts/source-sans-italic.woff2") format("woff2");
  font-weight: 400 700; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "Lexend";
  src: url("/static/fonts/lexend.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}

/* Fixed-width -------------------------------------------------------- */

@font-face {
  font-family: "iA Writer Quattro";
  src: url("/static/fonts/quattro.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "iA Writer Quattro";
  src: url("/static/fonts/quattro-bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "iA Writer Quattro";
  src: url("/static/fonts/quattro-italic.woff2") format("woff2");
  font-weight: 400; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/static/fonts/jetbrains-mono.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/static/fonts/jetbrains-mono-italic.woff2") format("woff2");
  font-weight: 400 700; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("/static/fonts/plex-mono-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/static/fonts/plex-mono-600.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/static/fonts/plex-mono-400-italic.woff2") format("woff2");
  font-weight: 400; font-style: italic; font-display: swap;
}

@font-face {
  font-family: "Fira Code";
  src: url("/static/fonts/fira-code.woff2") format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap;
}
