/* ============================================================
   ANIMATIONS
   ============================================================ */

@keyframes fadeInUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes popIn{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:scale(1);}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@keyframes ringPulse{0%{box-shadow:0 0 0 0 rgba(58,76,224,.4);}70%{box-shadow:0 0 0 14px rgba(58,76,224,0);}100%{box-shadow:0 0 0 0 rgba(58,76,224,0);}}
@keyframes shake{10%,90%{transform:translateX(-1px);}20%,80%{transform:translateX(2px);}30%,50%,70%{transform:translateX(-4px);}40%,60%{transform:translateX(4px);}}

.page-enter{animation:fadeInUp .4s ease both;}
.card{animation:fadeInUp .45s ease both;}
.modal2{animation:popIn .25s ease both;}
.toast2{animation:fadeInUp .3s ease both;}
.shake{animation:shake .5s;}
.spin{animation:spin 1s linear infinite;}
.float{animation:floaty 3s ease-in-out infinite;}
.lock-icon{animation:ringPulse 2.4s ease infinite;}

.stagger > *{animation:fadeInUp .45s ease both;}
.stagger > *:nth-child(1){animation-delay:.02s;}
.stagger > *:nth-child(2){animation-delay:.07s;}
.stagger > *:nth-child(3){animation-delay:.12s;}
.stagger > *:nth-child(4){animation-delay:.17s;}
.stagger > *:nth-child(5){animation-delay:.22s;}
.stagger > *:nth-child(6){animation-delay:.27s;}

.sidebar,.main-col,.card,.btn,.nav-item,.icon-btn{transition:all .25s ease;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
