/* The typeface system. Loaded before every other stylesheet.
   Geist carries all Latin text, Projekt Blackbird carries display headlines, Hind
   Siliguri carries Bengali, and the exam player stays on Arial - see the note at the
   bottom, that one is not a style choice.

   Geist ships as a real variable font, so one 68KB file covers every weight from 100 to
   900. Self-hosted rather than pulled from a CDN: it removes a third-party request from
   the critical path, which matters more here than anywhere - most of these users are on
   4G in Bangladesh. */

@font-face {
  font-family: "Geist";
  src: url("/fonts/Geist-Variable.woff2") format("woff2-variations"),
       url("/fonts/Geist-Variable.woff2") format("woff2");
  font-weight: 100 900;          /* the whole axis from one file */
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("/fonts/GeistMono-Variable.woff2") format("woff2-variations"),
       url("/fonts/GeistMono-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Projekt Blackbird is a 116-glyph display face with no weight axis - basic Latin only,
   no Bengali, no extended punctuation. It is for headlines and the wordmark, never for
   running text, and every rule that uses it names a fallback for the glyphs it lacks. */
@font-face {
  font-family: "Projekt Blackbird";
  src: url("/fonts/ProjektBlackbird.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-sans:    "Geist", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  --font-display: "Projekt Blackbird", "Geist", "Segoe UI", system-ui, Arial, sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  /* Bengali is unchanged. Geist has no Bengali glyphs, so anything in .bn has to reach
     Hind Siliguri first or the browser falls back to whatever the OS offers. */
  --font-bn:      "Hind Siliguri", "Nirmala UI", "Bangla Sangam MN", Vrinda, sans-serif;
}

/* Bengali runs alongside English on nearly every page, so this is a global. */
.bn { font-family: var(--font-bn); }

/* Numbers that get compared - band scores, timers, raw scores, table columns - are
   easier to read when the digits line up, which is what the mono face is for. */
.tabular { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* The exam player deliberately does NOT use any of this. The official IELTS
   computer-delivered test renders in Arial, and the whole point of that screen is to be
   indistinguishable from the real thing on test day - a candidate who practised in Geist
   and sits the real test in Arial gets a surprise they did not need. public/style.css
   owns that screen and sets Arial itself; nothing here may override it. */
