/*
 * fonts.css — Self-hosted brand typefaces (variable woff2).
 *
 * Replaces the former Google Fonts CDN <link> in www/app/index.html and
 * www/admin-v2/index.html. Self-hosting means:
 *   • No third-party request → no visitor IP sent to Google (GDPR).
 *   • No dependency on Google being reachable; identical on SPA + admin.
 *   • One 8px-rhythm cache hit (~170 KB total, all four faces).
 *
 * All three families are OFL 1.1 licensed (see README.md in this folder).
 * Files are variable fonts — a single woff2 covers the whole weight range,
 * so the token weights (400 / 500 / 600 / 700) all resolve from one file.
 *
 * Stacks that reference these families live in client/src/tokens.css
 * (--thg-font-sans / --thg-font-display / --thg-font-mono).
 */

/* Inter — body / UI workhorse (--thg-font-sans) */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/inter-variable.woff2") format("woff2");
}

/* Fraunces — editorial display / headline voice (--thg-font-display) */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/fraunces-variable.woff2") format("woff2");
}
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/fraunces-italic-variable.woff2") format("woff2");
}

/* JetBrains Mono — data / coordinates / code (--thg-font-mono) */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/jetbrains-mono-variable.woff2") format("woff2");
}
