[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 520ms ease, transform 520ms ease;
  transition-delay: var(--reveal-delay, 0ms);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.button,
.nav-link,
.menu-toggle,
input,
textarea,
select {
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease,
    background-color 200ms ease;
}

.button:hover,
.button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.28);
}

.button-secondary:hover,
.button-secondary:focus-visible {
  border-color: rgba(182, 198, 222, 0.95);
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(135, 164, 234, 0.2);
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  .button,
  .nav-link,
  .menu-toggle,
  input,
  textarea,
  select {
    animation: none;
    transition: none;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}
