/* ============================================
   B2BIzmir Animations — CSS-first, minimal JS
   ============================================ */

/* --- Keyframes --- */
@keyframes fade-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slide-in-right {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes pulse-glow {
    0%, 100% {
        box-shadow: 0 4px 15px rgba(232, 114, 58, 0.3);
    }
    50% {
        box-shadow: 0 4px 25px rgba(232, 114, 58, 0.5),
                    0 0 0 8px rgba(232, 114, 58, 0.08);
    }
}

@keyframes count-up-highlight {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* --- Animation Classes (applied via IntersectionObserver) --- */
.animate {
    opacity: 0;
}

.animate.visible {
    animation: fade-up 0.6s ease-out forwards;
}

.animate-fade {
    opacity: 0;
}

.animate-fade.visible {
    animation: fade-in 0.4s ease-out forwards;
}

/* Stagger children */
.stagger-children .animate.visible:nth-child(1) { animation-delay: 0ms; }
.stagger-children .animate.visible:nth-child(2) { animation-delay: 80ms; }
.stagger-children .animate.visible:nth-child(3) { animation-delay: 160ms; }
.stagger-children .animate.visible:nth-child(4) { animation-delay: 240ms; }
.stagger-children .animate.visible:nth-child(5) { animation-delay: 320ms; }
.stagger-children .animate.visible:nth-child(6) { animation-delay: 400ms; }
.stagger-children .animate.visible:nth-child(7) { animation-delay: 480ms; }
.stagger-children .animate.visible:nth-child(8) { animation-delay: 560ms; }

/* Stats animation */
.stat-item.visible .stat-number {
    animation: count-up-highlight 0.5s ease-out forwards;
}
