/* Self-hosted faces. Loaded before every other sheet so @font-face is known by
   the time anything asks for these families.

   Three families, three jobs:

   - **Newsreader** carries the prose. It is a Scotch-lineage text serif: vertical
     stress and a modest version of the same contrast the wordmark is built on, so
     the copy reads as the logo's relative rather than a stranger. What sat here
     before was Georgia — a screen serif drawn for 11px CRTs, low contrast, huge
     x-height, from the opposite end of the family tree.
   - **Inter** carries the interface: navbar, buttons, forms, catalog chrome. A
     grotesque that stays out of the way at 13-15px, where a serif starts asking
     for attention it should not have.
   - **TeX Gyre Schola** carries the fingering numerals on the score, and nothing
     else. It is a New Century Schoolbook clone, which is the hand engravers used
     for figures, so a "3" over a notehead looks engraved rather than typed.

   Schola is subsetted to U+0030-0039 — the ten digits and nothing more, 2.4KB
   against 140KB for the full face, because digits are all a fingering label ever
   contains. The arrows (↖↗↙↘) are NOT in this font and never were; they fall
   through to the system emoji/symbol face, as they always have.

   Roman only, no italic cut. The one italic in the app is the composer name on a
   catalog card, and that is interface type set in Inter — nothing asks Newsreader
   to slant. If prose ever gains an <em>, bring the italic file back rather than
   letting the browser synthesise one: a slanted high-contrast serif shears its
   hairlines and looks broken.

   Format note: Newsreader and Inter are woff2, Schola is woff. Not an
   inconsistency worth fixing — woff2 needs brotli at build time, and for a
   ten-glyph subset the difference is a few hundred bytes.

   These replace a jsDelivr stylesheet for Schola whose CSS returned 200 while
   every font file under it returned 404: the face never rendered, and the page
   paid a third-party round-trip and a CSP origin for a fallback to Georgia. */

@font-face {
  font-family: 'Newsreader';
  src: url("../fonts/newsreader-var.woff2") format("woff2-variations");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url("../fonts/inter-var.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'TeX Gyre Schola';
  src: url("../fonts/schola-digits.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0030-0039;
}

:root {
  --font-prose: 'Newsreader', Georgia, 'Times New Roman', serif;
  --font-ui: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-engraved: 'TeX Gyre Schola', Georgia, serif;
}

/* The interface is the default; prose opts in. The app is mostly controls, and a
   serif set as the global default would have to be undone in more places than it
   is wanted. */
body {
  font-family: var(--font-ui);
}
