/* ============================================
   ANIMATION KEYFRAMES
   ============================================ */

/* Floating animations */
@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
}

/* Infinitive partner ticker marquee */
@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Micro pulse alert status indicator */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.2);
  }
}

/* Spark particle upward float */
@keyframes floatParticle {
  0% {
    transform: translateY(100vh) scale(0);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 0.5;
  }
  100% {
    transform: translateY(-100px) scale(1);
    opacity: 0;
  }
}

/* Viewport reveal entries */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ============================================
   ANIMATION TRIGGERS & DELAYS
   ============================================ */
.fadeInUp {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.fadeInLeft {
  animation: fadeInLeft 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.fadeInRight {
  animation: fadeInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.fadeIn {
  animation: fadeIn 1s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Stagger delays */
[data-delay="50"] { animation-delay: 50ms; transition-delay: 50ms; }
[data-delay="100"] { animation-delay: 100ms; transition-delay: 100ms; }
[data-delay="150"] { animation-delay: 150ms; transition-delay: 150ms; }
[data-delay="200"] { animation-delay: 200ms; transition-delay: 200ms; }
[data-delay="250"] { animation-delay: 250ms; transition-delay: 250ms; }
[data-delay="300"] { animation-delay: 300ms; transition-delay: 300ms; }
[data-delay="350"] { animation-delay: 350ms; transition-delay: 350ms; }
[data-delay="400"] { animation-delay: 400ms; transition-delay: 400ms; }
[data-delay="500"] { animation-delay: 500ms; transition-delay: 500ms; }
[data-delay="600"] { animation-delay: 600ms; transition-delay: 600ms; }
[data-delay="700"] { animation-delay: 700ms; transition-delay: 700ms; }
[data-delay="800"] { animation-delay: 800ms; transition-delay: 800ms; }
