@keyframes fadeInUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}
@keyframes pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(13,206,204,0.4)}50%{transform:scale(1.03);box-shadow:0 0 0 8px rgba(13,206,204,0)}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes slideDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounceIn{0%{opacity:0;transform:scale(0.75)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(0.97)}100%{opacity:1;transform:scale(1)}}
@keyframes barGrow{from{width:0}to{width:var(--bar-width,100%)}}
@keyframes spinOnce{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes blinkOnce{0%,100%{opacity:1}50%{opacity:0.5}}

.anim-fadeInUp{animation:fadeInUp 0.65s ease both}
.anim-fadeInLeft{animation:fadeInLeft 0.65s ease both}
.anim-fadeInRight{animation:fadeInRight 0.65s ease both}
.anim-bounceIn{animation:bounceIn 0.7s cubic-bezier(0.36,0.07,0.19,0.97) both}
.anim-slideDown{animation:slideDown 0.4s ease both}
.anim-pulse{animation:pulse 2s ease-in-out infinite}
.anim-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:400px 100%;animation:shimmer 1.5s infinite}

.hero-tile{animation:fadeInLeft 0.7s ease both}
.hero-dist{animation:fadeInUp 0.7s 0.15s ease both}
.hero-subratings{animation:fadeInRight 0.7s 0.3s ease both}
.hero-progress-bar{animation:barGrow 1.2s 0.5s ease both}

.review-card{transition:box-shadow 0.25s ease,transform 0.25s ease}
.review-card:hover{transform:translateY(-2px)}

.btn-primary:active{transform:scale(0.97)}
.btn-outline:active{transform:scale(0.97)}

.floating-widget{transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1),opacity 0.4s ease}

.dist-bar{animation:barGrow 1s ease both;animation-play-state:paused}
.dist-bar.animated{animation-play-state:running}

.subrating-bar{animation:barGrow 1.1s ease both;animation-play-state:paused}
.subrating-bar.animated{animation-play-state:running}

.faq-answer{transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1),padding 0.3s ease}

.tp-card{transition:box-shadow 0.25s ease,transform 0.25s ease}
.tp-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.12)}

.star-selector span{transition:color 0.15s ease,transform 0.15s ease}
.star-selector span:hover{transform:scale(1.25)}

.like-btn,.dislike-btn{transition:all 0.2s ease}
.like-btn.voted{animation:bounceIn 0.4s ease both}
.dislike-btn.voted{animation:bounceIn 0.4s ease both}

.anim-delay-1{animation-delay:0.1s}
.anim-delay-2{animation-delay:0.2s}
.anim-delay-3{animation-delay:0.3s}
.anim-delay-4{animation-delay:0.4s}
.anim-delay-5{animation-delay:0.5s}

@keyframes unused-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes unused-wave{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.unused-keyframe-class{animation:unused-spin 2s linear infinite;display:none}
.unused-wave-class{animation:unused-wave 1s ease infinite;visibility:hidden}
