@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-16px)}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 scaleIn{from{opacity:0;transform:scale(0.92)}to{opacity:1;transform:scale(1)}}
@keyframes slideInRight{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes spin360{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes borderGlow{0%,100%{box-shadow:0 0 0 0 rgba(220,101,23,0)}50%{box-shadow:0 0 12px 2px rgba(220,101,23,0.35)}}
@keyframes numberTick{0%{transform:translateY(0)}50%{transform:translateY(-50%)}100%{transform:translateY(0)}}

.vs-hero-content{animation:fadeInLeft .8s ease both}
.vs-hero-content .btn{animation:fadeInUp .6s ease .3s both}
.vs-site-header{animation:fadeInDown .4s ease both}

.vs-adv-card{animation:none}
.vs-adv-card:hover .vs-adv-icon{animation:floatY .6s ease infinite}

.vs-tournament-card:hover{animation:borderGlow .6s ease infinite}
.vs-dot.active{animation:none}

.vs-slot-btn{animation:pulse 2.5s ease infinite}
.vs-slot-btn:hover{animation:none}
.vs-slot-btn:disabled{animation:none}

.vs-widget{animation:fadeInUp .5s ease .4s both}

.vs-skeleton{background:linear-gradient(90deg,rgba(255,255,255,0.04) 25%,rgba(255,255,255,0.08) 50%,rgba(255,255,255,0.04) 75%);background-size:200% 100%;animation:shimmer 1.8s infinite}

.xf84k-hidden-anim{animation:spin360 1s linear infinite;display:none}
.m2p7-ghost{animation:fadeIn 0.1s ease;visibility:hidden}
