/* animations.css — Keyframes & entrance animations */

/* Entrance classes */
.anim-fade-up{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .6s ease, transform .6s ease;
}
.anim-fade-up.visible{opacity:1;transform:translateY(0);}

.anim-scale-in{
  opacity:0;
  transform:scale(.92);
  transition:opacity .5s ease, transform .5s ease;
}
.anim-scale-in.visible{opacity:1;transform:scale(1);}

.anim-fade-left{
  opacity:0;transform:translateX(-30px);
  transition:opacity .6s ease, transform .6s ease;
}
.anim-fade-left.visible{opacity:1;transform:translateX(0);}

.anim-fade-right{
  opacity:0;transform:translateX(30px);
  transition:opacity .6s ease, transform .6s ease;
}
.anim-fade-right.visible{opacity:1;transform:translateX(0);}

/* Stagger delays */
.delay-1{transition-delay:.1s}
.delay-2{transition-delay:.2s}
.delay-3{transition-delay:.3s}
.delay-4{transition-delay:.4s}
.delay-5{transition-delay:.5s}
.delay-6{transition-delay:.6s}

/* Phone float */
@keyframes phoneFloat{
  0%,100%{transform:translateY(0) rotate(-3deg);}
  50%{transform:translateY(-16px) rotate(-3deg);}
}

/* Notification slide */
@keyframes notifSlide{
  0%{transform:translateX(120%);opacity:0;}
  15%{transform:translateX(0);opacity:1;}
  80%{transform:translateX(0);opacity:1;}
  100%{transform:translateX(120%);opacity:0;}
}

/* Glow pulse */
@keyframes glowPulse{
  0%,100%{box-shadow:0 0 20px var(--accent-glow);}
  50%{box-shadow:0 0 50px var(--accent-glow),0 0 80px var(--accent-glow-s);}
}

/* Shimmer */
@keyframes shimmer{
  0%{background-position:-200% center;}
  100%{background-position:200% center;}
}
.shimmer-text{
  background:linear-gradient(90deg,var(--text-primary) 0%,var(--accent-light) 40%,var(--text-primary) 60%,var(--text-primary) 100%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer 4s linear infinite;
}

/* Scan line */
@keyframes scanline{
  0%{top:-10%;}
  100%{top:110%;}
}

/* Progress bar fill */
@keyframes barFill{
  from{width:0;}
  to{width:var(--bar-w,80%);}
}
