/*
 * Motion states are opt-in. The static page remains completely usable while
 * GSAP, Anime.js or Three.js are loading, or when the visitor requests less
 * motion.
 */

.motion-ready [data-reveal] {
  will-change: transform, opacity;
}

.motion-ready .split-line {
  overflow: hidden;
}

.split-word {
  display: inline-block;
  will-change: transform, opacity;
}

.motion-ready .hero-media img,
.motion-ready .hero-card,
.motion-ready .image-reveal img,
.motion-ready .stay-feature img,
.motion-ready .contact-image img {
  will-change: transform;
}

.motion-ready .hero-orbit--one {
  animation: orbit-float 13s ease-in-out infinite alternate;
}

.motion-ready .hero-orbit--two {
  animation: orbit-float-reverse 17s ease-in-out infinite alternate;
}

.motion-ready .experience-panel {
  transition: none;
}

.motion-ready .signal-track {
  animation-duration: 46s;
}

@keyframes orbit-float {
  from { margin-top: -8px; }
  to { margin-top: 15px; }
}

@keyframes orbit-float-reverse {
  from { margin-top: 12px; }
  to { margin-top: -16px; }
}

@media (prefers-reduced-motion: reduce) {
  .motion-ready [data-reveal] { opacity: 1 !important; transform: none !important; }
  .motion-ready .hero-orbit--one,
  .motion-ready .hero-orbit--two,
  .motion-ready .signal-track { animation: none !important; }
}
