/* Basis: Reset, Grundtypografie, Fokus. */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { color-scheme: dark; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) {
  html:not(.motion-paused) { scroll-behavior: smooth; }
}
body {
  background: var(--ink);
  color: var(--bone);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: 1.55;
  font-weight: 380;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img, svg, canvas { display: block; max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
address { font-style: normal; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 560; line-height: 1.02; letter-spacing: -.012em; }
p { text-wrap: pretty; }
.nowrap { white-space: nowrap; }
.wrap { width: min(100% - 2 * var(--margin), var(--wrap)); margin-inline: auto; }
.icon { width: 1.15em; height: 1.15em; flex: none; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link {
  position: fixed; top: 12px; left: 12px; z-index: 200;
  background: var(--signal); color: var(--ink); font-weight: 700;
  padding: .75rem 1.1rem; border-radius: var(--radius);
  transform: translateY(calc(-100% - 24px));
}
.skip-link:focus { transform: none; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--signal); color: var(--ink); }
