* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-bg);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, picture, video { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 1000;
  padding: .75rem 1rem;
  background: #fff;
  color: #111;
  transform: translateY(-220%);
  transition: transform var(--transition-fast);
}
.skip-link:not(:focus-visible) { transform: translateY(-220%); }
.skip-link:focus-visible { transform: translateY(0); }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.no-scroll { overflow: hidden; }
