/* ═══════════════════════════════════════════════════════
   InMarket Digital — animations.css
   All CSS-only animation utilities
═══════════════════════════════════════════════════════ */

/* Shimmer on gradient text */
.im-shimmer {
  background-size: 300% auto;
  animation: im-shimmer 4s linear infinite;
}

/* Pulse ring (on primary buttons) */
@keyframes im-pulse-ring {
  0%   { transform: scale(.95); box-shadow: 0 0 0 0 rgba(168,85,247,.5); }
  70%  { transform: scale(1);   box-shadow: 0 0 0 14px rgba(168,85,247,0); }
  100% { transform: scale(.95); box-shadow: 0 0 0 0 rgba(168,85,247,0); }
}
.im-pulse { animation: im-pulse-ring 2.2s ease-out infinite; }

/* Slow spin */
.im-spin-slow { animation: im-spin 30s linear infinite; }

/* Float */
.im-float { animation: im-float-simple 5s ease-in-out infinite; }
@keyframes im-float-simple { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }

/* Fade in variants */
.im-fade-in    { animation: im-fade 1s ease forwards; }
.im-fade-in-up { animation: im-fade-up .8s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes im-fade { from{opacity:0} to{opacity:1} }

/* Counter number pop */
.im-counter-pop { animation: im-pop .3s cubic-bezier(.34,1.56,.64,1); }
@keyframes im-pop { 0%{transform:scale(1)} 50%{transform:scale(1.15)} 100%{transform:scale(1)} }

/* Card hover tilt — applied via JS */
.im-tilt { transform-style: preserve-3d; }

/* Gradient border animation */
.im-animated-border {
  position: relative;
  border: none !important;
}
.im-animated-border::before {
  content: '';
  position: absolute;
  inset: 0; border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, var(--im-purple), var(--im-sky), var(--im-pink));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  background-size: 300% auto;
  animation: im-border-spin 4s linear infinite;
}
@keyframes im-border-spin { to { background-position: 300% center; } }

/* Neon text glow */
.im-neon-purple {
  text-shadow:
    0 0 10px rgba(168,85,247,.8),
    0 0 30px rgba(168,85,247,.4),
    0 0 60px rgba(168,85,247,.2);
}
.im-neon-sky {
  text-shadow:
    0 0 10px rgba(56,189,248,.8),
    0 0 30px rgba(56,189,248,.4),
    0 0 60px rgba(56,189,248,.2);
}

/* Stagger delay helpers */
.im-d1  { --delay: .06s !important; }
.im-d2  { --delay: .12s !important; }
.im-d3  { --delay: .18s !important; }
.im-d4  { --delay: .24s !important; }
.im-d5  { --delay: .30s !important; }
.im-d6  { --delay: .36s !important; }
.im-d7  { --delay: .42s !important; }
.im-d8  { --delay: .48s !important; }

/* ─── Elementor animation override helpers ──────────── */
/* Prevent Elementor entrance animations from conflicting */
.elementor-invisible { visibility: hidden; }
