/* Hausschrift des Rabenhofs, Richtung „Salon“ (Entscheidung vom 18.10.2026):
   Marcellus und Marcellus SC für Überschriften, Raumnamen und kleine Beschriftungen, Spectral für Dialoge, Notizbuch,
   Inventar und Bedienelemente. Alle Dateien liegen im Projekt (fonts/), es wird kein fremder Server angefragt.
   Marcellus: Astigmatic, SIL OFL 1.1, wegen Reserved Font Name intern als „Rabenhof Salon“ umbenannt (fonts/OFL-Marcellus.txt).
   Spectral: Production Type, SIL OFL 1.1 (fonts/OFL-Spectral.txt). Teilmengen: Latin, Latin-1, deutsche Anführungszeichen, €.

   Eingebunden über RhpView::typoLink() auf Lobby und Konto (RhpView::page), Spielseite (rabenhof-page-render.php) und
   Druckansicht des Notizbuchs (rhp-notebook-routes.php), jeweils mit Versionsnummer aus dem Dateiinhalt.
   Notschalter zum Vergleich: ?typo=0 lädt diese Datei nicht (alte Systemschriften, Cookie rh_typo=0 über alle Seiten),
   ?typo=1 hebt das wieder auf.

   Rollen:
   --ty-display  Überschriften, Kapitel, Raumnamen, besondere Einblendungen
   --ty-label    kleine Beschriftungen in Kapitälchen
   --ty-text     Dialoge, Notizbuch, Inventar, Bedienelemente
   Größen bleiben die der bestehenden Stilvorlagen, Unterschiede der x-Höhe gleicht size-adjust in @font-face aus.
   Spezifität: notebook.css wird auf der Spielseite nach dieser Datei geladen, deshalb :root:root und html-Präfix. */

@font-face { font-family: 'Rabenhof Salon'; src: url('../fonts/marcellus-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Rabenhof Salon SC'; src: url('../fonts/marcellus-sc-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
/* Zeilenhöhe „normal“ wie bei Segoe UI (1,33): ascent und descent fest, sonst werden Zeilen ohne eigene Zeilenhöhe
   bei Spectral (1,52) höher und bei vergrößerter Schrift rutscht die Szene. Bei Spectral teilt size-adjust die Werte mit. */
@font-face { font-family: 'Spectral'; src: url('../fonts/spectral-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; size-adjust: 106%; ascent-override: 98%; descent-override: 27.5%; line-gap-override: 0%; }
@font-face { font-family: 'Spectral'; src: url('../fonts/spectral-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; size-adjust: 106%; ascent-override: 98%; descent-override: 27.5%; line-gap-override: 0%; }
@font-face { font-family: 'Spectral'; src: url('../fonts/spectral-600.woff2') format('woff2'); font-weight: 500 800; font-style: normal; font-display: swap; size-adjust: 106%; ascent-override: 98%; descent-override: 27.5%; line-gap-override: 0%; }
/* Dieselben Dateien für Bedienelemente ohne Vergrößerung: Schaltflächen und Türen bleiben so breit wie mit der Systemschrift */
@font-face { font-family: 'Spectral UI'; src: url('../fonts/spectral-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; ascent-override: 104%; descent-override: 29%; line-gap-override: 0%; }
@font-face { font-family: 'Spectral UI'; src: url('../fonts/spectral-600.woff2') format('woff2'); font-weight: 500 800; font-style: normal; font-display: swap; ascent-override: 104%; descent-override: 29%; line-gap-override: 0%; }

:root:root {
  --ty-display: 'Rabenhof Salon', Georgia, 'Times New Roman', serif;
  --ty-label: 'Rabenhof Salon SC', 'Rabenhof Salon', Georgia, serif;
  --ty-label-case: none;
  --ty-label-track: 0.06em;
  --ty-text: 'Spectral', Georgia, 'Times New Roman', serif;
  --ty-ui: 'Spectral UI', 'Spectral', Georgia, serif;
  --ty-text-nums: oldstyle-nums proportional-nums;
  --ty-display-weight: 400;
  --ty-display-track: 0.02em;
}

:root:root {
  --rh-serif: var(--ty-text);
  --rh-sans: var(--ty-text);
  --nb-serif: var(--ty-text);
  --nb-hand: var(--ty-text);
}

/* ── Spielseite: Lesetext ────────────────────────────────────────────── */
html .fx-bubble, html .fx-find-text, html .fx-puff, html .fx-stamp-text, html .fx-mag-text, html .fx-rv-caption p,
html .fx-rv-card p, html .fx-ev-text, html .fx-prolog-line, html .rh-tut p, html .rh-accuse-sentence, html .rh-slot-torn {
  font-family: var(--ty-text);
}
/* Uhrzeiten, Zähler, Tabellen: Normalziffern mit fester Breite */
html .rh-clock, html .rh-log-entry time, html .rh-tl, html .rh-inv-more, html .rh-slot-n, html .rh-vote-row, html .nb-count, html .rh-dial-num {
  font-family: var(--ty-text);
  font-variant-numeric: lining-nums tabular-nums;
}
/* Fließtext: Mediävalziffern, wenn die Schrift sie hat (fällt sonst still auf Normalziffern zurück) */
html .rh-msg, html .rh-quote, html .rh-paper, html .fx-bubble, html .nb-page, html .rh-narr { font-variant-numeric: var(--ty-text-nums, normal); }

/* ── Spielseite: Auszeichnung ────────────────────────────────────────── */
html h1, html h2, html h3, html h4,
html .rh-brand, html .rh-room-title h2, html .rh-talk-head h3, html .rh-npc b, html .rh-opening h2, html .rh-start h1,
html .rh-accuse-confirm h3, html .rh-catchup summary, html .pc-head, html .rh-phone-panel h2, html .rh-vt-panel h3, html .rh-section h2,
html .fx-find-title, html .fx-ctitle, html .fx-mag-title, html .fx-rv-title, html .fx-rv-killer, html .fx-rv-stamp, html .fx-stamp-word,
html .fx-rv-card h3, html .fx-ev-body h3, html .fx-prolog-title, html .fx-claim b, html .rh-loading p {
  font-family: var(--ty-display);
  font-weight: var(--ty-display-weight, 400);
  letter-spacing: var(--ty-display-track, 0.01em);
  text-transform: var(--ty-display-case, none);
}
html .rh-room-title h2 { letter-spacing: var(--ty-room-track, var(--ty-display-track, 0.02em)); }
html .rh-brand small { font-family: var(--ty-ui); letter-spacing: 0; }
html .rh-inv-label, html .rh-personal-head, html .rh-map-floor h3, html .rh-tut small, html .pc-ev-k {
  font-family: var(--ty-label);
  letter-spacing: var(--ty-label-track, 0.08em);
  text-transform: var(--ty-label-case, uppercase);
  font-weight: 400;
}

/* ── Notizbuch ───────────────────────────────────────────────────────── */
html .nb-title, html .nb-h, html .nbp-cover h1, html .nbp-section h2 {
  font-family: var(--ty-display);
  font-weight: var(--ty-display-weight, 400);
  font-variant: normal;
  letter-spacing: var(--ty-display-track, 0.02em);
  text-transform: var(--ty-display-case, none);
}
html .nb-over, html .nb-label, html .nb-flag, html .nbp-over {
  font-family: var(--ty-label);
  letter-spacing: var(--ty-label-track, 0.08em);
  text-transform: var(--ty-label-case, uppercase);
  font-variant: normal;
}
html .nb-tab { font-family: var(--ty-text); }

/* ── Plattform: Lobby, Konto, Ermittlerausweis (rhp.css) ─────────────── */
html body:not(.rh-page) { font-family: var(--ty-text); }
html body:not(.rh-page) h1, html body:not(.rh-page) h2, html body:not(.rh-page) h3, html .brand, html .price,
html .av-stage__name, html .av-group legend, html .av-saved__name, html .id-card__type, html .id-card__data .id-card__name {
  font-family: var(--ty-display);
  font-weight: var(--ty-display-weight, 400);
  letter-spacing: var(--ty-display-track, 0.01em);
  text-transform: var(--ty-display-case, none);
}
html .brand { letter-spacing: 0.12em; text-transform: uppercase; }
html .id-card__org, html .id-card__data dt { font-family: var(--ty-label); }
/* Schaltflächen der Plattform wie im Spiel: Spectral ohne Vergrößerung */
html body:not(.rh-page) button, html body:not(.rh-page) .btn { font-family: var(--ty-ui); }

/* ── Bedienelemente: nicht breiter als mit der Systemschrift ──────────────
   Spectral läuft breiter als Segoe UI oder San Francisco. Damit die Kopfleiste nicht früher umbricht und Türen oder
   feste Schaltflächen keine Hotspots der Szene verdecken, nutzen Bedienelemente die Schrift ohne size-adjust und
   etwas weniger Innenabstand. Höhe und Mindestgröße der Tippflächen bleiben unverändert. */
html .rh-btn, html .rh-door, html .rh-listen-btn, html .pc-toggle, html .rh-vt-btn, html .rh-phone-btn,
html .rh-clock small, html .rh-progress small { font-family: var(--ty-ui); }
html .rh-btn { padding-left: 9px; padding-right: 9px; }
html .rh-door { padding-left: 9px; padding-right: 9px; }
html .rh-vt-btn { padding-right: 11px; }
html .rh-phone-btn { padding-right: 14px; }
@media (max-width: 960px) { html .rh-door { padding-left: 7px; padding-right: 7px; } }
@media (max-width: 700px) { html .rh-phone-btn { padding-right: 10px; } }
/* Gegenstände im Inventar: Spalte auf die Breite des Bereichs begrenzen, damit der Name kürzt statt die Schaltflächen abzuschneiden */
html .rh-obj-list { grid-template-columns: minmax(0, 1fr); }
/* Marke links oben: Marcellus läuft breiter als Georgia, ein Pixel kleiner hält die Breite */
html .rh-brand { font-size: 18px; line-height: 28.5px; letter-spacing: 0; }
/* Zeilenhöhen wie mit der Systemschrift, sonst ändert sich die Höhe der Kopfleiste und die Szene rutscht */
html .rh-clock small { line-height: 16px; }
html .rh-brand small { font-size: 11.5px; line-height: 18px; letter-spacing: -0.01em; }
