/* =============================================================================
   MODERN CSS RESET
   Based on Andy Bell's reset — adapted to preserve accessible defaults.
   https://piccalil.li/blog/a-more-modern-css-reset/
   ============================================================================= */

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

* {
  margin: 0;
}

html {
  /* Prevent font size inflation on mobile */
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  /* Smooth scrolling — disabled for users who prefer reduced motion */
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  min-height: 100dvh;
  line-height: var(--leading-normal);
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

/* Do NOT zero out focus styles — maintain accessible defaults.
   Focus styles are set explicitly in base.css with :focus-visible. */

/* Remove list styling only when list is used as nav/role=list */
ul[role='list'],
ol[role='list'] {
  list-style: none;
  padding: 0;
}

/* Avoid text overflow on headings */
h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}
