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

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
dd,
ul,
ol {
  margin: 0;
}

/* Wrapped in :where() so the whole rule has zero specificity. Written plainly,
   `ul[role="list"]` is (0,1,1) — one type plus one attribute — which outranks
   any single-class (0,1,0) composition or block rule that sets padding on a
   list. :where() keeps it strong enough to clear a UA default and never strong
   enough to outrank a layer above it. */
:where(ul[role="list"], ol[role="list"]) {
  list-style: none;
  padding: 0;
}

html {
  text-size-adjust: none;
  -webkit-text-size-adjust: none;
}

html:focus-within {
  scroll-behavior: smooth;
}

html,
body {
  height: 100%;
}

body {
  text-rendering: optimizeSpeed;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

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

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

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

address {
  font-style: normal;
}
