/* Self-hosted Google Fonts (DSGVO) - generiert 10.06.2026
   ──────────────────────────────────────────────────────────────────────────
   Ueberarbeitet 07.08.2026: variable Schriften statt Einzelschnitte plus
   Subsetting. Vorher 354 KB Schriften auf der Startseite, jetzt rund 115 KB.

   Was sich geaendert hat:
   • Inter und Plus Jakarta Sans kommen jetzt als EINE variable Datei
     (Vorbild war Manrope). Aus 4 bzw. 5 Einzelschnitten wurde je eine Datei.
   • Alle latin-Dateien sind auf den Zeichenvorrat verkleinert, den die
     Website wirklich braucht: voller ASCII + deutsche Sonderzeichen +
     gaengige Akzentbuchstaben + Typografie (187 Zeichen).
   • Instrument Serif steht nur in Schlagzeilen (Hero) und
     hat einen etwas kleineren Vorrat (154 Zeichen).
   • Caveat traegt AUSSCHLIESSLICH die Signatur „David Rupa"
     (front-page.php und page-ueber-mich.php) und ist auf diese Zeichen
     verkleinert (18 Zeichen, 50,0 -> 6,1 KB).
     ►► Aendert sich der Signaturtext, muss caveat-600-latin-sub.woff2 neu
        erzeugt werden, sonst fehlen Buchstaben. ◄◄
   • Die -ext-Dateien (latin-ext) sind unveraendert. Gemessen ueber alle 35
     Seiten rendert keine ein Zeichen aus dieser Range, sie werden also nie
     geladen und bleiben als Sicherheitsnetz stehen.
   • Geloescht wurde nichts. Die alten Einzelschnitte liegen unveraendert
     weiter in diesem Ordner (…-latin.woff2 ohne "-sub") und zusaetzlich in
     _backup-theme-2026-08-06/fonts/. Sie werden nur von keiner Regel mehr
     angefordert und deshalb nie geladen.

   Die Gewichtsbereiche der variablen Dateien sind bewusst auf das begrenzt,
   was vorher als Einzelschnitt da war (Inter 300–600, Plus Jakarta 400–800).
   So rendert eine Regel mit font-weight:700 auf Inter genau wie bisher (600),
   statt sich durch die Umstellung ungefragt zu veraendern.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Inter — eine variable Datei fuer 300–600 (vorher 4 Einzelschnitte) ── */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('inter-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('inter-var-latin-sub.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;
}

/* ── Plus Jakarta Sans — eine variable Datei fuer 400–800
      (vorher 5 Einzelschnitte, 136,5 KB) ── */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('plusjakartasans-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('plusjakartasans-var-latin-sub.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;
}

/* ── Hero-Fonts (Claude-Design) – self-hosted, ergaenzt 05.08.2026 ──
   Poppins  = Headline/Buttons/Labels · Manrope = Fliesstext (Variable Font,
   eine Datei deckt 400–700 ab) · Instrument Serif italic = "Ihre neue Website."
   Poppins gibt es bei Google Fonts nur statisch, deshalb bleiben es hier drei
   Schnitte — sie sind aber subgesetzt und zusammen nur noch 18,4 KB. */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('poppins-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('poppins-500-latin-sub.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: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('poppins-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('poppins-600-latin-sub.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: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('poppins-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('poppins-700-latin-sub.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: 'Manrope';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('manrope-var-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('manrope-var-latin-sub.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: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('instrumentserif-400-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('instrumentserif-400-italic-latin-sub.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;
}

/* ── Caveat 600 — Handschrift-Signatur im Portrait (Ueber mich + Startseite)
   self-hosted, ergaenzt 05.08.2026 · subgesetzt 07.08.2026 auf „David Rupa"
   ►► Vorrat: Leerzeichen D R a d i p u v . - Ä Ö Ü ä ö ü ß
      Aendert sich die Signatur, Datei neu erzeugen! ◄◄ ── */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('caveat-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('caveat-600-latin-sub.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;
}

/* ── Metrisch angepasste Ersatzschrift für Manrope ──────────────────
   Sicht 26, 07.08.2026. Gemessen, nicht gerechnet: Chrome,
   canvas.measureText, 100 px, 137-Zeichen-Probe.

   Anlass: Kartenlayouts mit mehrzeiligen Unterzeilen springen beim
   Schriftwechsel. Live gemessen, mobil, acht Läufe — sechs davon mit
   CLS 0,19. Mit blockierten Schrift-Anfragen: null von acht. Der Moment
   ist abgetastet: bei etwa 2.240 ms wächst eine Karten-Unterzeile
   (Manrope 400) von 157 auf 179 px, bekommt also eine zusätzliche Zeile,
   und schiebt den 1.156 px hohen Kartenblock um 22 px nach unten.

   Diese Regeln laden NICHTS nach. Sie greifen auf Schriften zu, die auf
   dem Gerät ohnehin liegen, und ziehen deren Maße auf die von Manrope.
   Dadurch bricht der Text vor und nach dem Schriftwechsel an derselben
   Stelle um. Sie wirken nur, solange der Webfont fehlt — am fertig
   geladenen Schriftbild ändert sich nichts.

   Bewusst nur Manrope: drei Deklarationen gegen 196 insgesamt. Gemessen
   bringt dieser Schritt allein den mobilen Wert von 0,147 auf 0,092 und
   lässt den Kartenblock stehen (+22 px → −1 px). Poppins, Instrument
   Serif, Inter und Plus Jakarta Sans sind der zweite Schritt — erst
   nach Sichtprüfung dieses hier. */
@font-face { font-family: 'Manrope Ersatz W'; src: local('Segoe UI'); size-adjust: 102.83%; ascent-override: 103.67%; descent-override: 29.17%; line-gap-override: 0%; }
@font-face { font-family: 'Manrope Ersatz A'; src: local('Roboto');   size-adjust: 112.40%; ascent-override: 94.84%;  descent-override: 26.69%; line-gap-override: 0%; }
@font-face { font-family: 'Manrope Ersatz X'; src: local('Arial');    size-adjust: 100.72%; ascent-override: 105.84%; descent-override: 29.79%; line-gap-override: 0%; }
