/* ═════════════════════════════════════════════════════════════════
   SKRIBE TYPESET — Geist (Vercel, SIL Open Font License)
   Self-hosted (DSGVO), ersetzt Söhne seit 2026-08-11.
   Schnitte: 300/400/500/600/700/900, Subsets latin + latin-ext.
   Dateien: /fonts/Geist/ · Eingebunden auf allen Seiten via diese Datei.
   Der Dateiname bleibt soehne.css, damit keine 62 Link-Tags angefasst
   werden muessen — Cache-Buster ?v=4.
   ═════════════════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-ext-300.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: 'Geist';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-300.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: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-ext-400.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: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-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: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-ext-500.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: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-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: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-ext-600.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: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-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: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-ext-700.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: 'Geist';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-700.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: 'Geist';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-ext-900.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: 'Geist';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/Geist/geist-latin-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;
}

/* ─── Token-Mapping ──────────────────────────────────────────────────
   Überschreibt die site-weit-vererbten Font-Tokens:
   --font-sans wird zu Geist (Body + Display)
   --font-serif wird auf var(--font-sans) gemappt (Italic-Serif-Em entfernt) */
:root {
  --font-sans: 'Geist', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
  --font-serif: var(--font-sans);
}

/* ─── Em-Konvention site-weit ────────────────────────────────────────
   Söhne Leicht 300 + Moss-Blau (--accent-600).
   Whisper-Em statt Bold-Akzent. Site-weit verbindlich.
   Voraussetzung: --accent-600 muss im :root jeder Page definiert sein
   (ist es per site-motion.css und page-spezifischem :root). */
em, .serif-em {
  font-family: var(--font-sans);
  font-style: normal;
  font-weight: 300;
  color: var(--accent-600);
  letter-spacing: -0.005em;
}

/* on-ink-Variante: Em wechselt auf Mint */
section.on-ink em,
.on-ink em {
  color: var(--mint-500, #7ed3a7);
}

/* ─── HTML-Element-Resets (browser-default-Italic neutralisieren) ─── */
address {
  font-style: normal;
}

/* ─── Typo-Tiles statt Foto-Dummies (site-weit, 2026-07-05) ─────── */
.typo-tile { width:100%; height:100%; display:flex; flex-direction:column; }
.typo-tile__canvas { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; justify-content:flex-end; gap:8px; padding:clamp(20px, 3.5vw, 40px); }
.typo-tile--ink  .typo-tile__canvas { background:var(--ink-900, #17191c); }
.typo-tile--blue .typo-tile__canvas { background:var(--accent-600, #0a4e8c); }
.typo-tile--sand .typo-tile__canvas { background:var(--sand, #eceae4); }
.typo-tile__eyebrow { font-family:var(--font-mono, 'JetBrains Mono', monospace); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; }
.typo-tile--ink  .typo-tile__eyebrow, .typo-tile--blue .typo-tile__eyebrow { color:rgba(250,251,250,0.6); }
.typo-tile--sand .typo-tile__eyebrow { color:var(--ink-500, #6f7371); }
.typo-tile__word { font-family:var(--font-sans, 'Geist', sans-serif); font-weight:600; font-size:clamp(30px, 3.4vw, 56px); line-height:1.02; letter-spacing:-0.025em; text-align:left; }
.typo-tile__word--sm { font-size:clamp(17px, 1.6vw, 24px); white-space:nowrap; }
.typo-tile--ink .typo-tile__word, .typo-tile--blue .typo-tile__word { color:#fff; }
.typo-tile--sand .typo-tile__word { color:var(--ink-900, #17191c); }
.typo-tile--ink  .typo-tile__dot { color:var(--ink-300, #cfd4e3); }
.typo-tile--blue .typo-tile__dot { color:var(--flame, #e0653a); }
.typo-tile--sand .typo-tile__dot { color:var(--accent-600, #0a4e8c); }
.typo-tile__foot { flex:0 0 auto; background:#fff; padding:14px clamp(20px, 3.5vw, 40px); font-family:var(--font-mono, 'JetBrains Mono', monospace); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-500, #6f7371); }
