@keyframes fadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounceIn{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes counterUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes wheelSpin{from{transform:rotate(var(--wheel-start,0deg))}to{transform:rotate(var(--wheel-end,1080deg))}}
@keyframes resultBounce{0%{opacity:0;transform:scale(.6) translateY(20px)}70%{transform:scale(1.1) translateY(-4px)}100%{opacity:1;transform:scale(1) translateY(0)}}

.anim-fade-in{animation:fadeIn .55s cubic-bezier(.4,0,.2,1) both}
.anim-fade-in-up{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1) both}
.anim-fade-in-left{animation:fadeInLeft .55s cubic-bezier(.4,0,.2,1) both}
.anim-fade-in-right{animation:fadeInRight .55s cubic-bezier(.4,0,.2,1) both}
.anim-scale-in{animation:scaleIn .45s cubic-bezier(.4,0,.2,1) both}
.anim-bounce-in{animation:bounceIn .6s cubic-bezier(.4,0,.2,1) both}
.float-anim{animation:float 3.5s ease-in-out infinite}
.pulse-anim{animation:pulse 2s ease-in-out infinite}
.spin-anim{animation:spin 1.2s linear infinite}

.anim-delay-1{animation-delay:.1s}
.anim-delay-2{animation-delay:.2s}
.anim-delay-3{animation-delay:.3s}
.anim-delay-4{animation-delay:.4s}
.anim-delay-5{animation-delay:.5s}
.anim-delay-6{animation-delay:.6s}
.anim-delay-7{animation-delay:.7s}
.anim-delay-8{animation-delay:.8s}

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