@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes bounceIn{0%{opacity:0;transform:scale(0.7)}60%{transform:scale(1.05)}100%{opacity:1;transform:scale(1)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,155,31,0.4)}50%{box-shadow:0 0 20px 6px rgba(255,155,31,0.1)}}
@keyframes ripple{0%{transform:scale(0);opacity:0.6}100%{transform:scale(2.5);opacity:0}}
@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes starPop{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}

.hero-section{background-size:200% 200%;animation:gradientShift 12s ease infinite}
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.12) 50%,transparent 70%);transform:translateX(-100%);transition:transform 0.5s ease}
.btn-primary:hover::after{transform:translateX(100%)}
.hero-card{animation:bounceIn 0.6s ease 0.2s both}
.hero-content{animation:slideInLeft 0.6s ease both}
.float-widget-card{animation:glowPulse 3s ease infinite}
.review-stars .star-filled-anim{animation:starPop 0.3s ease}
.skeleton{background:linear-gradient(90deg,var(--c-surface) 25%,var(--c-surface2) 50%,var(--c-surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.section-transition{position:relative}
.section-transition::before{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,155,31,0.2),transparent)}
