@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes progressFill{from{width:0}to{width:var(--target-width,100%)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes ripple{to{transform:scale(4);opacity:0}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounceIn{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}

.anim-fade-in{animation:fadeIn .5s ease forwards}
.anim-fade-in-left{animation:fadeInLeft .5s ease forwards}
.anim-fade-in-right{animation:fadeInRight .5s ease forwards}
.anim-scale-in{animation:scaleIn .4s ease forwards}
.anim-float{animation:float 3s ease-in-out 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}

.btn{position:relative;overflow:hidden}
.btn::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.1);opacity:0;transition:opacity var(--transition)}
.btn:hover::after{opacity:1}
.btn:active{transform:translateY(0) scale(.98)}

.hero__tile{animation:bounceIn .6s ease .2s both}
.hero__content{animation:fadeInLeft .6s ease .1s both}
.hero__bottom{animation:fadeInUp .5s ease .3s both}

.rating-inputs .rating-input-group:nth-child(1){animation:fadeIn .3s ease .1s both}
.rating-inputs .rating-input-group:nth-child(2){animation:fadeIn .3s ease .15s both}
.rating-inputs .rating-input-group:nth-child(3){animation:fadeIn .3s ease .2s both}
.rating-inputs .rating-input-group:nth-child(4){animation:fadeIn .3s ease .25s both}
.rating-inputs .rating-input-group:nth-child(5){animation:fadeIn .3s ease .3s both}
.rating-inputs .rating-input-group:nth-child(6){animation:fadeIn .3s ease .35s both}

.faq-answer{animation:slideDown .2s ease}

.floating-widget__card{animation:slideDown .3s ease}
.floating-widget__trigger{animation:pulse 2s ease infinite}

.modal{animation:scaleIn .25s ease}

.skeleton{background:linear-gradient(90deg,#f0f0f5 25%,#e8e8f0 50%,#f0f0f5 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
