/* ══════════════════════════════════════════════════════════════
   Schriften

   Inter für Fließtext, JetBrains Mono für Zahlen, Beschriftungen
   und Artikelnummern. Beide werden vom eigenen Server geliefert,
   nicht von Google. Das Lager hängt an Cloudflare Tunnel und
   Tailscale — eine externe Abhängigkeit fällt sonst genau dann
   aus, wenn man sie am wenigsten gebrauchen kann.

   Latin, drei Schnitte je Familie, zusammen rund 148 KB.
   Beide Schriften stehen unter der SIL Open Font License 1.1.

   Einbinden als ERSTE Formatvorlage im <head>, vor dem
   seiteneigenen <style> — dann bleiben dortige Werte wirksam.
   ══════════════════════════════════════════════════════════════ */

/* ── Inter ──────────────────────────────────────────────────── */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/schriften/inter-400.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/schriften/inter-500.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/schriften/inter-600.woff2") format("woff2");
}

/* ── JetBrains Mono ─────────────────────────────────────────── */

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/schriften/mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/schriften/mono-500.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/schriften/mono-600.woff2") format("woff2");
}

/* ── Weiterleitung der alten Namen ──────────────────────────────
   Die Seiten nennen bisher "IBM Plex Sans" und "IBM Plex Mono",
   geladen wurde beides nie. Statt jede Fundstelle einzeln zu
   ändern, zeigen die alten Namen hier auf die neuen Dateien.
   Eine Seite, die noch nicht angefasst wurde, bekommt damit
   trotzdem sofort die richtige Schrift.
   ─────────────────────────────────────────────────────────── */

@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/schriften/inter-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/schriften/inter-500.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/schriften/inter-600.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/schriften/mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/schriften/mono-500.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/schriften/mono-600.woff2") format("woff2");
}

/* ── Gemeinsame Werte ───────────────────────────────────────────
   Seiten, die var(--font) und var(--mono) verwenden, bekommen
   die neuen Familien hierüber. Der Wert steht in :root und
   damit unterhalb dessen, was eine Seite selbst in ihrem
   eigenen :root setzt — deshalb wird beim Angleichen die
   Schriftzeile aus den Seiten entfernt statt überschrieben.
   ─────────────────────────────────────────────────────────── */

:root {
  --font: "Inter", "Segoe UI", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "Courier New", monospace;
}

/* Inter läuft von Haus aus etwas eng in Versalien. Für die
   gesperrten Kleinbeschriftungen ist das erwünscht, im Fließtext
   nicht — deshalb nur ein leichter Ausgleich am Grundtext. */

body {
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Zahlen sollen in Tabellen untereinander stehen. JetBrains Mono
   ist ohnehin dicktengleich; die Angabe greift dort, wo Zahlen
   im Fließtext gesetzt sind. */

table, .kachel b, .b-kopf .wert {
  font-variant-numeric: tabular-nums;
}
