/* base.css — Reset, Schrift, Grundlayout, Fokus. Keine Sektions-Styles. */
@font-face {
  font-family: "Source Serif 4"; font-style: normal; font-weight: 300;
  font-display: swap; src: url("../fonts/source-serif-300.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4"; font-style: normal; font-weight: 400;
  font-display: swap; src: url("../fonts/source-serif-400.woff2") format("woff2");
}
@font-face {
  font-family: "Source Serif 4"; font-style: italic; font-weight: 400;
  font-display: swap; src: url("../fonts/source-serif-400i.woff2") format("woff2");
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--ground); color: var(--ink);
  font-family: var(--font-serif); font-weight: 400;
  font-size: var(--t-body); line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-weight: 300; line-height: 1.15; letter-spacing: -0.015em; margin: 0; }
h1 { font-size: var(--t-page); }
h2 { font-size: var(--t-section); }
p { margin: 0 0 1.1em; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
img, svg { max-width: 100%; height: auto; display: block; }

/* Gemessenes: Zahlen, Zeiten, Bildunterschriften */
.meta {
  font-family: var(--font-mono); font-size: var(--t-meta);
  font-variant-numeric: tabular-nums; color: var(--ink-2);
  letter-spacing: 0.01em;
}
/* Beobachtetes */
.obs { font-style: italic; color: var(--ink-2); }

.wrap { width: 100%; max-width: var(--measure-wide); margin-inline: auto; padding-inline: var(--pad-x); }
.wrap--text { max-width: var(--measure-text); }
section { padding-block: var(--gap-section); }

:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; border-radius: 2px; }

/* Sticky-Kopf (site.css): Anker-Ziele unter dem bleibenden Kopf freihalten —
   gilt für native #-Sprünge und scrollIntoView gleichermaßen. */
[id] { scroll-margin-top: 5.5rem; }
.skip-link {
  position: absolute; left: -9999px; top: 0; background: var(--ground);
  color: var(--ink); padding: 0.75rem 1rem; z-index: 100;
}
.skip-link:focus { left: 0; }
