@keyframes kenburns { from { transform: scale(1.14) translate3d(1.2%, .6%, 0); } to { transform: scale(1) translate3d(0, 0, 0); } }
@keyframes flare { 0% { opacity: .9; } 100% { opacity: 0; } }
@keyframes progress { to { transform: scaleX(1); } }
@keyframes goldpulse { 50% { text-shadow: 0 0 28px rgba(198,165,107,.7); } }
@keyframes sway { from { transform: rotate(calc(var(--r, 0deg) - 4deg)); opacity: .7; } to { transform: rotate(calc(var(--r, 0deg) + 4deg)); opacity: 1; } }
@keyframes float { from { transform: translateY(-10px); } to { transform: translateY(14px); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes drop { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes beat { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.045); } }
@keyframes sweep { to { transform: translateX(100%); } }
@keyframes flash { 0% { opacity: .9; } 100% { opacity: 0; } }
@keyframes pixel { 0% { opacity: 1; } 50% { opacity: .15; } }
@keyframes wave { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .25; transform: scale(1.18); } }
@keyframes swing { from { transform: rotate(-14deg); } to { transform: rotate(14deg); } }
@keyframes lens { to { transform: scale(1.35); } }
@keyframes blink { 50% { opacity: 0; } }

/* the marquee track holds two copies; one cycle = half its width */

/* Reduced motion: everything still works, nothing moves */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; }
  .marquee__track { animation: none; flex-wrap: wrap; width: auto; }
  .hero__beam { opacity: .8; }
  .hero__copy .line > span, .hero__copy .hero__sub { transition: none !important; }
  .hero__slide img { animation: none !important; transform: none; }
  .hero__dots button.is-active i { animation: none; transform: scaleX(1); }
  .curtain { display: none !important; }
}
