@font-face {
  font-family: "LifeMap Editorial Serif";
  src: url("../fonts/production-serif-notoserifsc-wght-subset.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; background: var(--color-bg); }
body {
  margin: 0;
  color: var(--color-text);
  background: linear-gradient(180deg, var(--color-surface) 0%, var(--color-bg) 100%);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
a { color: inherit; }
::selection { background: var(--color-accent-soft); color: var(--color-text); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-focus) 72%, transparent); outline-offset: 3px; }
.skip-link {
  position: fixed; top: .5rem; left: .5rem; z-index: 100;
  padding: .65rem .85rem; background: var(--color-text); color: var(--color-surface);
  transform: translateY(-150%); transition: transform var(--transition-fast);
}
.skip-link:focus { transform: translateY(0); }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.text-muted { color: var(--color-text-muted); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .82em; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
