@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 18px rgba(28,146,33,.55)}50%{box-shadow:0 0 34px rgba(28,146,33,.9),0 0 60px rgba(28,146,33,.35)}}
@keyframes tickerSlide{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-6px)}}
@keyframes countUp{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}

.hdr-winner-text{animation:tickerSlide 3.8s ease both}

.btn--glow{animation:glowPulse 2.4s ease-in-out infinite}

.hero-content{animation:fadeInUp .7s ease both}
.hero-rating{animation:fadeIn .5s .1s ease both}
.hero-cta-row{animation:fadeInUp .6s .25s ease both}

.anim-hidden{opacity:0;transform:translateY(20px);transition:opacity .45s ease,transform .45s ease}
.anim-visible{opacity:1;transform:translateY(0)}

.adv-tile-icon svg{transition:transform .3s ease}
.adv-tile:hover .adv-tile-icon svg{transform:scale(1.18) rotate(-5deg)}

.bonus-amount{animation:countUp .5s ease both}

.slider-btn{transition:background .2s,transform .15s}
.slider-btn:hover{transform:translateY(-50%) scale(1.1)}

.ftr-provider-logo{transition:filter .3s,transform .3s}
.ftr-provider-logo:hover{transform:scale(1.06)}

.hdr-scrolled{box-shadow:0 3px 18px rgba(0,0,0,.6)!important;transition:box-shadow .3s}

.faq-item{transition:border-color .2s,box-shadow .2s}
.faq-item:hover{box-shadow:0 4px 18px rgba(0,0,0,.3)}

.bonus-widget{transition:transform .4s cubic-bezier(.22,1,.36,1)}

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