/* css/animations.css */

/* Shimmer */
@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* Spin Reverse */
@keyframes spin-reverse {
    from { transform: rotate(360deg); }
    to { transform: rotate(0deg); }
}
.animate-spin-reverse {
    animation: spin-reverse 1.5s linear infinite;
}

/* Spin Slow */
.animate-spin-slow {
    animation: spin 3s linear infinite;
}
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Float Arrow */
@keyframes float-arrow {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(8px); opacity: 1; }
}
.animate-float-arrow {
    animation: float-arrow 2.5s ease-in-out infinite;
}
.animate-float-arrow-delay {
    animation: float-arrow 2.5s ease-in-out infinite 0.3s;
}

/* Sparkle Float */
@keyframes sparkle-float {
    0% {
        transform: translate(0, 0) scale(0);
        opacity: 0;
    }
    20% {
        opacity: 1;
        transform: translate(calc(var(--tx) * 0.2), calc(var(--ty) * 0.2)) scale(1);
    }
    80% {
        opacity: 0.8;
        transform: translate(calc(var(--tx) * 0.8), calc(var(--ty) * 0.8)) scale(0.8);
    }
    100% {
        transform: translate(var(--tx), var(--ty)) scale(0);
        opacity: 0;
    }
}

/* Dot Fill Animation (Timeline) */
@keyframes dot-fill {
    0% { background-color: #05020a; box-shadow: 0 0 10px rgba(232,121,249,0.2); border-color: #d946ef; }
    100% { background-color: #d946ef; box-shadow: 0 0 15px #d946ef; border-color: #d946ef; }
}
.animate-dot-fill {
    animation: dot-fill 0.5s ease-out forwards;
}

/* Fade In */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.animate-fade-in {
    animation: fadeIn 0.5s ease-out;
}

/* Slide Up (Cookie Banner) */
@keyframes slideUp { 
    from { transform: translateY(100%); opacity: 0; } 
    to { transform: translateY(0); opacity: 1; } 
}
.animate-slide-up {
    animation: slideUp 0.5s ease-out forwards;
}

/* Sponsor Carousel Scroll - True Infinite Scroll */
@keyframes scroll {
    0% { 
        transform: translate3d(0, 0, 0); 
    }
    100% { 
        transform: translate3d(-50%, 0, 0); 
    }
}

.animate-scroll-sponsor {
    animation: scroll 40s linear infinite;
    will-change: transform;
}

.animate-scroll-sponsor:hover {
    animation-play-state: paused;
}

