:root {
  --demeter-smooth-speed: 260ms;
  --demeter-smooth-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html,
body {
  scroll-behavior: smooth;
}

* {
  -webkit-tap-highlight-color: transparent;
}

:where(a, button, [role="button"], input, textarea, select) {
  transition:
    color var(--demeter-smooth-speed) var(--demeter-smooth-ease),
    background-color var(--demeter-smooth-speed) var(--demeter-smooth-ease),
    border-color var(--demeter-smooth-speed) var(--demeter-smooth-ease),
    transform var(--demeter-smooth-speed) var(--demeter-smooth-ease),
    box-shadow var(--demeter-smooth-speed) var(--demeter-smooth-ease),
    opacity var(--demeter-smooth-speed) var(--demeter-smooth-ease);
}

:where(a, button, [role="button"]):active {
  transform: translateY(0);
  transition-duration: 120ms;
}

:where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid #539933;
  outline-offset: 2px;
}

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

  * {
    animation: none !important;
    transition: none !important;
  }
}
