/* ==========================================================================
   Blue Bell Studios — Motion
   Keep animation on transforms/opacity. Honour reduced motion.
   ========================================================================== */

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@keyframes float-y {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 10px 28px rgba(252, 75, 170, 0.28); }
  50% { box-shadow: 0 14px 36px rgba(212, 168, 250, 0.4); }
}

@keyframes rise-in {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes loader-breathe {
  0%, 100% { transform: scale(0.96); opacity: 0.85; }
  50% { transform: scale(1); opacity: 1; }
}

.page-loader img {
  animation: loader-breathe 1.6s ease-in-out infinite;
}

.btn-accent {
  animation: pulse-glow 3.4s ease-in-out infinite;
}

.float-card {
  animation: float-y 5.5s ease-in-out infinite;
}

.float-card:nth-child(2) { animation-duration: 6.2s; animation-delay: -1s; }
.float-card:nth-child(3) { animation-duration: 7s; animation-delay: -2s; }
.float-card:nth-child(4) { animation-duration: 5.8s; animation-delay: -0.6s; }
.float-card:nth-child(5) { animation-duration: 6.6s; animation-delay: -1.8s; }
.float-card:nth-child(6) { animation-duration: 7.4s; animation-delay: -2.4s; }

.hero-card img,
.project-media img,
.article-card img,
.split .media img,
.cs-hero-visual img,
.cs-gallery img,
.mission-visual img {
  will-change: transform;
}

.clip-reveal {
  overflow: hidden;
  display: block;
}

.js-split-line,
.js-split-word {
  overflow: hidden;
  display: inline-block;
  vertical-align: top;
}

.magnetic {
  display: inline-flex;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }

  .marquee-track {
    animation: none;
    flex-wrap: wrap;
    justify-content: center;
    width: auto;
    row-gap: 1rem;
  }

  .page-loader {
    display: none;
  }
}
