/* ==========================================================================
   Base — reset and document defaults shared by every public page.
   The design system (tokens, type, components) lives in system.css.
   ========================================================================== */

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  /* clip (not hidden) keeps position: sticky working for descendants */
  overflow-x: clip;
  width: 100%;
  /* Reserve the scrollbar gutter so overlays never shift the page */
  scrollbar-gutter: stable;
  /* Anchor jumps land below the fixed navbar */
  scroll-padding-top: 96px;
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

/* Reduced motion: switch off animation and transitions site-wide */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
  }
}

body {
  overflow-x: clip;
  width: 100%;
  max-width: 100vw;
  font-family: 'Geist', -apple-system, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  cursor: pointer;
}
