/* ============================================================
   fonts.css — lokal gehostete Schriften (DSGVO-konform)
   Muss als ERSTES Stylesheet eingebunden werden (vor tokens.css).
   Keine Verbindung zu Google-CDN mehr → keine IP-Übertragung.

   Alle drei Familien sind Variable Fonts (ein Datei-Satz deckt den
   gesamten genutzten Strichstärken-Bereich ab):
   - Inter        → woff2, Achsen: Strichstärke + optische Größe (opsz)
   - Roboto       → ttf (variabel), Achse: Strichstärke
   - Roboto Slab  → ttf (variabel), Achse: Strichstärke

   Lizenzen liegen daneben: Inter-LICENSE.txt, Roboto-OFL.txt,
   RobotoSlab-LICENSE.txt (SIL Open Font License).
   ============================================================ */

/* --- Inter (Fließtext + Headlines; opsz via font-optical-sizing:auto) --- */
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/InterVariable.woff2") format("woff2");
}
@font-face{
  font-family:"Inter";
  font-style:italic;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/InterVariable-Italic.woff2") format("woff2");
}

/* --- Roboto (Nav, Buttons, Captions) --- */
@font-face{
  font-family:"Roboto";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/Roboto-Variable.ttf") format("truetype");
}

/* --- Roboto Slab (technische Labels, IDs, Schriftfeld) --- */
@font-face{
  font-family:"Roboto Slab";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/RobotoSlab-Variable.ttf") format("truetype");
}

/* --- osifont (ISO-3098-Normschrift für den Zeichnungs-Look) ---------------
   Lizenz: GNU GPL v3 mit „GPL font exception" (die Nutzung der Schrift in
   diesem Dokument macht das Dokument NICHT GPL-pflichtig).
   Lizenztext: osifont-LICENSE.txt · FONTLOG: osifont-FONTLOG.txt
   Quelle: https://github.com/hikikomori82/osifont
   Nur ein Schnitt (Regular); Bold wird ggf. synthetisiert. */
/* Metrik-Override: osifont hat drei widersprüchliche Metriktabellen
   (hhea/win = 1,62 em Zeilenbox, OS/2 typo = 1,09 em). WebKit (iOS Safari) und
   Blink/Gecko (Desktop) legen sie unterschiedlich aus → die Glyphe sitzt je
   Engine woanders in ihrer Zeilenbox, und der handgetunte --tech-shift stimmt
   nur auf einer Engine (auf iOS lief die Eyebrow-Linie an die Schrift-Oberkante).
   Hier erzwingen wir EINE feste Zeilenbox für alle Engines und zentrieren sie
   auf die optische Versalienmitte:
     CapHeight = 1510/2048 = 0,737 em → Mitte = 0,3685 em über der Grundlinie.
     Box-Mitte = (ascent − descent)/2  ⇒  90,9% − 17,2% = 73,7% ⇒ Mitte 36,85%.
   Dadurch trifft `align-items:center` die Versalienmitte direkt; --tech-shift
   wird zu 0 (siehe tokens.css). Unterstützt ab Safari 17 / iOS 17; ältere
   Versionen ignorieren die Overrides und verhalten sich wie bisher. */
@font-face{
  font-family:"osifont";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  ascent-override:90.9%;
  descent-override:17.2%;
  line-gap-override:0%;
  src:url("../fonts/osifont.woff") format("woff"),
      url("../fonts/osifont.ttf") format("truetype");
}
