/* Self-hosted fonts (2026-09-27).
 *
 * Previously loaded from fonts.googleapis.com/fonts.gstatic.com. Removed
 * for two reasons: (1) a 2022 Munich regional court (LG München) ruling
 * held that loading Google Fonts remotely without consent violates GDPR,
 * since it transmits the visitor's IP address to Google with no legal
 * basis - this became the basis for a real wave of Abmahnungen against
 * German sites, so this is a genuine, well-known legal exposure for a
 * German company, not a theoretical one; (2) it also removes a
 * privacy-relevant third-party request from every page load regardless of
 * the legal question.
 *
 * Each font below is variable (a single file covers the whole weight -
 * and, for Public Sans, italic - axis); Google's own CSS served the exact
 * same file for every weight requested (confirmed by byte-identical
 * SHA256 hashes), so one physical file per family+style is correct here,
 * not a missing optimization. Only the "latin" (U+0000-00FF) Unicode
 * range was kept - it covers German umlauts (ä/ö/ü/ß all fall within
 * U+00E4-00DF) and everything else this site's copy uses; the other
 * subsets Google's CSS included (Vietnamese, Cyrillic, Greek, etc.) were
 * dropped as unused.
 */

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url("/static/fonts/Fraunces-variable.069cb90e11a3.woff2") format('woff2');
}

@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/static/fonts/PublicSans-variable-normal.e4c9b081863a.woff2") format('woff2');
}

@font-face {
  font-family: 'Public Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/static/fonts/PublicSans-variable-italic.3cbca8221b55.woff2") format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/static/fonts/JetBrainsMono-variable.b636a65da4f0.woff2") format('woff2');
}
