/* ================================================================
   ANIMATIONS CSS — Keyframes, reveal classes, motion utilities
   ================================================================ */

/* ── KEYFRAMES ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(40px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes scaleIn{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:scale(1);}}
@keyframes slideLeft{from{opacity:0;transform:translateX(60px);}to{opacity:1;transform:translateX(0);}}
@keyframes slideRight{from{opacity:0;transform:translateX(-60px);}to{opacity:1;transform:translateX(0);}}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-16px);}}
@keyframes floatX{0%,100%{transform:translateX(0);}50%{transform:translateX(12px);}}
@keyframes rotateSlow{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@keyframes shimmer{0%{background-position:200% center;}100%{background-position:-200% center;}}
@keyframes borderPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(44,76,253,.4);}
  50%{box-shadow:0 0 0 12px rgba(44,76,253,0);}
}
@keyframes gradMove{
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}
@keyframes blobMove{
  0%,100%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}
  50%{border-radius:30% 60% 70% 40%/50% 60% 30% 60%;}
}
@keyframes countUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@keyframes lineGrow{from{width:0;}to{width:100%;}}
@keyframes dotBounce{
  0%,80%,100%{transform:scale(0);}40%{transform:scale(1);}
}

/* ── REVEAL CLASSES (JS-triggered) ── */
.reveal{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.up{transform:translateY(48px);}
.reveal.left{transform:translateX(48px);}
.reveal.right{transform:translateX(-48px);}
.reveal.scale{transform:scale(.9);}
.reveal.in{opacity:1 !important;transform:none !important;}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.2s;}
.reveal-delay-3{transition-delay:.3s;}
.reveal-delay-4{transition-delay:.4s;}
.reveal-delay-5{transition-delay:.5s;}
.reveal-delay-6{transition-delay:.6s;}

/* ── TEXT SPLIT REVEAL ── */
.split-word{overflow:hidden;display:inline-block;vertical-align:top;}
.split-word span{
  display:inline-block;
  animation:slideUp .7s var(--ease) both;
}

/* ── CARD 3D TILT ── */
.tilt-card{transform-style:preserve-3d;transition:transform .1s var(--ease);}

/* ── FLOATING ── */
.float-1{animation:float 5s ease infinite;}
.float-2{animation:float 6s ease 1s infinite;}
.float-3{animation:float 7s ease .5s infinite;}
.floatX-1{animation:floatX 4s ease infinite;}

/* ── SHIMMER TEXT ── */
.shimmer-text{
  background:linear-gradient(90deg,var(--gold) 0%,var(--gold-3) 50%,var(--gold) 100%);
  background-size:200% auto;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:shimmer 3s linear infinite;
}

/* ── GRADIENT ANIMATED BG ── */
.grad-animated{
  background:linear-gradient(-45deg,#000000,#111111,#1a1a1a,#000000);
  background-size:400% 400%;
  animation:gradMove 12s ease infinite;
}

/* ── BLOB ── */
.blob{
  border-radius:60% 40% 30% 70%/60% 30% 70% 40%;
  animation:blobMove 8s ease infinite;
}

/* ── PROGRESS BARS ── */
.progress-bar-wrap{
  height:4px;background:var(--border);border-radius:4px;overflow:hidden;
}
.progress-bar-fill{
  height:100%;background:var(--grad-gold);border-radius:4px;
  width:0;transition:width 1.4s var(--ease);
}

/* ── COUNTER ── */
.stat-counter{
  font-family:'Inter',sans-serif;font-weight:800;
  font-size:clamp(2.4rem,4vw,3.5rem);line-height:1;
  color:var(--navy);
}
.stat-counter.light{color:var(--white);}

/* ── HOVER GLOW CARD ── */
.glow-card{
  position:relative;border-radius:var(--r-md);
  overflow:hidden;
}
.glow-card::before{
  content:'';position:absolute;
  top:var(--gy,50%);left:var(--gx,50%);
  width:400px;height:400px;
  background:radial-gradient(circle,rgba(44,76,253,.12) 0%,transparent 70%);
  transform:translate(-50%,-50%);
  opacity:0;transition:opacity .4s;pointer-events:none;
}
.glow-card:hover::before{opacity:1;}
