/* THE TWO FACES, SERVED FROM HERE.
   ═══════════════════════════════════════════════════════════════════════

   Every student page used to pull these from fonts.googleapis.com. On a
   school network or a filtered home connection that request can hang or be
   blocked outright, and the page then renders in the system serif — a brand
   page in Times, which is the single most "unfinished" a product can look.
   A test platform whose whole promise is that the exam feels like the real
   thing cannot have its typography depend on a third party answering.

   Self-hosted also means no third-party request carrying a student's IP and
   referring page while they sit an exam.

   ── VARIABLE FONTS, AND WHY IT MATTERS HERE ─────────────────────────────

   Both files are VARIABLE: one file per subset covering the whole 400-800
   range, rather than one file per weight.

   That fixed a real bug rather than merely saving requests. The old Google
   link asked for Source Sans 3 at 400, 600 and 700 only — but the CSS asks
   for `font-weight: 800` in eight files (uppercase micro-labels, mostly).
   With no 800 to load, browsers SYNTHESISE it: they smear the 700 outlines
   outward. Faux bold is heavier, muddier and slightly wider than a drawn
   weight, and it looks subtly wrong beside real bold on the same screen —
   which is exactly what John saw and described as "interesting bold, and
   thicker in size". Every one of those labels is now a real 800.

   Literata additionally carries an `opsz` (optical size) axis. Left to
   `auto`, the browser picks a different drawing at different sizes — which
   is correct and is why the face looks good both at 30px in a heading and
   at 15px in a paragraph.

   ── SUBSETS ─────────────────────────────────────────────────────────────

   latin and latin-ext, with Google's own unicode-ranges kept verbatim. The
   browser downloads latin-ext ONLY if a page actually contains a character
   in it, so an all-English page pays 28K for the sans and 84K for the
   serif, and a student whose name carries a diacritic gets the rest.
   Cyrillic, Greek and Vietnamese are deliberately not shipped.

   ── UPDATING ────────────────────────────────────────────────────────────

   These came from Google Fonts (Literata v40, Source Sans 3 v19), which is
   what SIL Open Font License allows and what it asks in return: the fonts
   stay OFL, and are not sold on their own. To refresh, re-request
   fonts.googleapis.com/css2 with a modern browser UA (it serves woff2 only
   to browsers that support it), take the latin and latin-ext URLs, and drop
   the files in beside this one under the same names.

   `font-display: swap` — text paints immediately in the fallback and
   re-renders when the face lands. On an exam clock, never showing the words
   is worse than showing them twice. */

/* ── Literata — everything a person READS ─────────────────────────────── */
@font-face {
  font-family: 'Literata';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/shared/fonts/literata-latin.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: 'Literata';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/shared/fonts/literata-latin-ext.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;
}

/* ── Source Sans 3 — every CONTROL and label ──────────────────────────── */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/shared/fonts/source-sans-3-latin.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: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/shared/fonts/source-sans-3-latin-ext.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;
}
