/* ═══════════════════════════════════════════
   ANIMATIONS (GSAP managed, base states)
   ═══════════════════════════════════════════ */

/* ── Elements start hidden, GSAP reveals them ── */
[data-animate] {
  opacity: 0;
  transform: translateY(40px);
}

/* ── Micro-interactions ── */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

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

/* ── Hover micro ── */
.included-card,
.video-card,
.visual-card,
.pricing-card,
.contact-method {
  will-change: transform;
}

/* ── Pulse for CTA ── */
@keyframes ctaPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(108, 60, 225, 0.3); }
  50% { box-shadow: 0 4px 30px rgba(108, 60, 225, 0.5); }
}

.btn-primary {
  animation: ctaPulse 3s ease-in-out infinite;
}

.btn-primary:hover {
  animation: none;
}