*, :before, :after {
  box-sizing: border-box;
  font-size-adjust: ex-height .5;
}

html {
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
  text-size-adjust: none;
  scrollbar-gutter: stable;
}

input:user-invalid {
  border-color: var(--error-color, red);
}

input:user-valid {
  border-color: var(--success-color, green);
}

textarea:not([rows]) {
  field-sizing: content;
  min-height: 5lh;
}

textarea:not([cols]) {
  width: 100%;
}

input, button, textarea, select {
  font-family: inherit;
  font-size: inherit;
}

img, picture {
  object-fit: cover;
  max-width: 100%;
  display: block;
}

h1, h2, h3, h4 {
  text-wrap: balance;
}

h1, h2, h3, h4, button, input, label {
  line-height: 1.1;
}

abbr[title] {
  cursor: help;
  text-decoration-line: underline;
  text-decoration-style: dotted;
}

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

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  margin-block-end: 0;
}

:target {
  scroll-margin-block: 5ex;
}

body {
  min-height: 100vh;
  line-height: 1.5;
}
