/* Schriften der Website, selbst ausgeliefert.
 *
 * Kein Google-Fonts-CDN: Das wuerde die IP jedes Besuchers an Google
 * uebertragen und aus dem geplanten Datenschutz-Hinweis einen Consent-Banner
 * machen. Der Styleguide haelt diese Entscheidung selbst fest.
 *
 * ABWEICHUNG VOM STYLEGUIDE v1.1: PETRONA STATT NEWSREADER.
 * Entschieden am 31.08.2026 (Issue #14). Der Styleguide nennt Newsreader als
 * Display-Schrift und Newsreader Italic als Ersatz fuer die nicht frei
 * lizenzierte Calendula. Die Vergleichsseite hat gezeigt, dass genau das
 * nicht traegt: Eine Akzentschrift, die dieselbe Schrift wie die
 * Ueberschrift ist, ist keine eigene Stimme. Und die naechstliegende
 * Ersatzschrift, Petrona, stand Newsreader so nah, dass eine vierte Schrift
 * den Unterschied nicht wert gewesen waere.
 *
 * Deshalb der andere Weg: Petrona uebernimmt BEIDE Rollen und Newsreader
 * faellt ganz weg. Die Marke bleibt bei drei Schriften statt vier, und
 * Petrona ist ohnehin die Schrift, in der Caros urspruengliches Logo
 * gesetzt war. Aufrecht traegt sie die Ueberschriften, kursiv die
 * Akzentzeilen -- der Unterschied ist damit bewusst der Schnitt und nicht
 * die Schriftfamilie.
 *
 * Nur das latin-Subset. Es deckt U+0000-00FF ab (also auch die Umlaute und
 * das scharfe s) sowie U+2000-206F (deutsche Anfuehrungszeichen, Gedanken-
 * strich, Auslassungspunkte). Fuer eine deutschsprachige Seite genuegt das;
 * latin-ext, cyrillic und vietnamese sind bewusst weggelassen.
 *
 * DM Sans und Petrona sind variable Schriften: EINE Datei deckt den ganzen
 * Gewichtsbereich ab. Deshalb steht in font-weight eine Spanne und nicht ein
 * Wert -- vier einzelne Schnitte waeren viermal dieselbe Datei. IBM Plex
 * Mono liefert Google dagegen als zwei statische Dateien.
 *
 * PETRONA IST MIT SEINER VOLLEN ACHSE ANGEMELDET (100 bis 900), obwohl das
 * Projekt nur 300 bis 600 fordert. Das ist die Lehre aus dem Fehler vom
 * 30.08.2026: Newsreader stand hier auf "300 500", die Datei trug aber 200
 * bis 800, und neun Regeln im Projekt fordern 600 -- Ueberschrift dritter
 * Ebene, Kartentitel, Preise, Vita-Zeilen, Ablaufschritte, Titellisten. Bei
 * einer zu eng angemeldeten Spanne klemmt der Browser auf den Rand oder
 * rechnet sich kuenstlich eine fettere Variante aus; das echte Gewicht aus
 * der Datei wird nie benutzt. Eine zu weit angemeldete Spanne kostet dagegen
 * nichts -- es ist dieselbe Datei.
 *
 * DM Sans steht bewusst weiter auf "300 600", obwohl die Datei 100 bis
 * 1000 traegt: Nichts im Projekt fordert etwas ausserhalb dieser Spanne,
 * und eine engere Angabe ist nur dann ein Fehler, wenn jemand darueber
 * hinaus greift.
 *
 * Petrona hat KEINE optische Achse -- anders als Newsreader, das eine
 * opsz-Achse von 6 bis 72 trug. Nachgesehen, nicht geschaetzt: Google weist
 * eine opsz-Anfrage fuer Petrona mit HTTP 400 ab. Es ist also nichts
 * einzustellen, und font-optical-sizing laeuft ins Leere.
 *
 * Petrona geholt am 31.08.2026 aus der Google-Fonts-CSS, die uebrigen am
 * 20.08.2026. Zum Aktualisieren die Dateien neu ziehen, nicht wieder auf die
 * CDN-URLs zeigen.
 */

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('/fonts/dm-sans-300-600.woff2') format('woff2-variations'), url('/fonts/dm-sans-300-600.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/ibm-plex-mono-400.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/ibm-plex-mono-500.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: 'Petrona';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/petrona-100-900-italic.woff2') format('woff2-variations'), url('/fonts/petrona-100-900-italic.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: 'Petrona';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/petrona-100-900.woff2') format('woff2-variations'), url('/fonts/petrona-100-900.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;
}
