/* ============================================================================
 * The three typefaces, served from this folder instead of from Google
 * ============================================================================
 *
 * ⚠ NOT ABOUT WORKING OFFLINE. The hub will be hosted, so it will have the web.
 * Self-hosting is here for three other reasons, and the first is the one that
 * matters to a UK company:
 *
 *   1. A page that fetches a Google font sends every visitor's IP address to
 *      Google before a word is drawn. That is a transfer of personal data to a
 *      third party with no consent and no contract, and it is a known GDPR
 *      item — a German court awarded damages over exactly it in January 2022,
 *      and it has been a standard compliance finding ever since. Thirty-five
 *      staff on an internal tool is not a big exposure. It is also a completely
 *      avoidable one.
 *
 *   2. It lets the CSP come back IN. Every page currently widens style-src to
 *      fonts.googleapis.com and font-src to fonts.gstatic.com purely to carry
 *      these. On a site that writes to the files everybody's grade is scored
 *      from, a narrower policy is worth having for free.
 *
 *   3. It is faster. A same-origin woff2 skips a DNS lookup and a TLS handshake
 *      to two more hosts, on every page load, for everyone.
 *
 * ⚠ THE FILES ARE NOT IN THE REPOSITORY. They are not mine to commit and this
 * container cannot reach Google to fetch them. README.md in this folder says
 * exactly which nine to download and where to put them. Until they are here
 * this stylesheet is not referenced by any page, and every family falls back to
 * the system stack — which is what the site has been rendering all along.
 *
 * ⚠ AND THE FALLBACK STACKS STAY. `font-display: swap` means text is drawn in
 * the fallback and re-drawn when the face arrives; the stacks in hub.css are
 * what a reader sees for that moment, and what they see permanently if one file
 * ever goes missing. Nothing here replaces them.
 * ==========================================================================*/

/* ---------- Archivo — headings, figures, anything that carries weight ------ */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("archivo-400.woff2") format("woff2");
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("archivo-500.woff2") format("woff2");
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("archivo-600.woff2") format("woff2");
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("archivo-700.woff2") format("woff2");
}

/* ---------- Instrument Sans — body copy, table cells, controls ------------- */
@font-face {
  font-family: "Instrument Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("instrument-sans-400.woff2") format("woff2");
}
@font-face {
  font-family: "Instrument Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("instrument-sans-500.woff2") format("woff2");
}
@font-face {
  font-family: "Instrument Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("instrument-sans-600.woff2") format("woff2");
}

/* ---------- IBM Plex Mono — column heads, eyebrows, anything tabular ------- */
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("ibm-plex-mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("ibm-plex-mono-500.woff2") format("woff2");
}
