/* Motion is progressive enhancement; content remains visible without JavaScript. */
:root { --motion-ease: cubic-bezier(.22,1,.36,1); }
html { scroll-behavior: smooth; }
.button, .header-cta, .back-top {
  transition: background-color .25s ease, border-color .25s ease,
    box-shadow .25s ease, transform .3s var(--motion-ease);
}
.button > span, .header-cta > span {
  display: inline-block;
  transition: transform .3s var(--motion-ease);
}
@media (hover:hover) and (pointer:fine) {
  .button:hover { box-shadow: 0 8px 28px rgb(90 143 224 / 18%); }
  .button:hover > span, .header-cta:hover > span { transform: translate(3px,-3px); }
  .header-cta:hover { border-color: #8ab7ff; }
  .back-top:hover { transform: translateY(-3px); }
}
.button:focus-visible > span, .header-cta:focus-visible > span { transform: translate(3px,-3px); }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  .button:hover, .back-top:hover, .button > span, .header-cta > span {
    transform: none !important;
  }
}
