html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

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

body {
  min-height: 100vh;
  margin: 0;
}

:where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) {
  margin: 0;
}

:where(img, picture, svg, video, canvas) {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}

:where(button, input, select, textarea) {
  font: inherit;
  color: inherit;
}

:where(button, [type="button"], [type="submit"], [type="reset"]) {
  touch-action: manipulation;
}

:where(a, p, li, figcaption, td, th) {
  overflow-wrap: break-word;
}

:where(pre) {
  overflow: auto;
}

:where(:focus-visible) {
  outline: 3px solid #1f6d69;
  outline-offset: 3px;
}

@supports (outline-color: color-mix(in srgb, black, white)) {
  :where(:focus-visible) {
    outline-color: color-mix(in srgb, var(--teal-500, #1f6d69) 70%, white);
  }
}

@supports (min-height: 100svh) {
  body {
    min-height: 100svh;
  }
}

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