/* ===== SCROLL REVEAL ANIMATIONS ===== */
.fade-in { opacity: 0; transform: translateY(30px); animation: fadeInUp 0.8s ease forwards; }
.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }
.delay-4 { animation-delay: 0.8s; }

@keyframes fadeInUp {
    to { opacity: 1; transform: translateY(0); }
}

.scroll-reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.7s ease, transform 0.7s ease; }
.scroll-reveal.revealed { opacity: 1; transform: translateY(0); }

/* Stagger children */
.services-grid .scroll-reveal:nth-child(1) { transition-delay: 0.05s; }
.services-grid .scroll-reveal:nth-child(2) { transition-delay: 0.1s; }
.services-grid .scroll-reveal:nth-child(3) { transition-delay: 0.15s; }
.services-grid .scroll-reveal:nth-child(4) { transition-delay: 0.2s; }
.services-grid .scroll-reveal:nth-child(5) { transition-delay: 0.25s; }
.services-grid .scroll-reveal:nth-child(6) { transition-delay: 0.3s; }

.why-grid .scroll-reveal:nth-child(1) { transition-delay: 0.05s; }
.why-grid .scroll-reveal:nth-child(2) { transition-delay: 0.1s; }
.why-grid .scroll-reveal:nth-child(3) { transition-delay: 0.15s; }
.why-grid .scroll-reveal:nth-child(4) { transition-delay: 0.2s; }
.why-grid .scroll-reveal:nth-child(5) { transition-delay: 0.25s; }
.why-grid .scroll-reveal:nth-child(6) { transition-delay: 0.3s; }

/* ===== HOVER EFFECTS ===== */
.service-card, .why-card, .pricing-card, .team-card, .gallery-item {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease;
}

/* ===== NAVBAR ANIMATION ===== */
.nav-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.nav-toggle.active span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* ===== FLOATING PARTICLES ===== */
.particle {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    animation: float linear infinite;
}

@keyframes float {
    0% { transform: translateY(100vh) rotate(0deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translateY(-100px) rotate(720deg); opacity: 0; }
}

/* ===== COUNTER ANIMATION ===== */
@keyframes countUp {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== LOADING ===== */
.page-loader {
    position: fixed; inset: 0; background: var(--white); display: flex; align-items: center; justify-content: center; z-index: 9999; transition: opacity 0.5s ease;
}
.page-loader.hidden { opacity: 0; pointer-events: none; }
.loader-spinner {
    width: 50px; height: 50px; border: 4px solid var(--gray-200); border-top-color: var(--primary); border-radius: 50%; animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
