/* ===== ANIMATIONS ===== */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInLeft {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes fadeInRight {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Animate on scroll */
[data-aos] { opacity: 0; transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
[data-aos="fade-up"] { transform: translateY(40px); }
[data-aos="fade-down"] { transform: translateY(-40px); }
[data-aos="fade-left"] { transform: translateX(-40px); }
[data-aos="fade-right"] { transform: translateX(40px); }
[data-aos="zoom-in"] { transform: scale(0.9); }
[data-aos].aos-animate { opacity: 1; transform: none; }

/* Hero entrance animations */
.hero-badge { animation: fadeInDown 0.8s ease both 0.2s; opacity: 0; }
.hero-title .hero-title-line:nth-child(1) { animation: fadeInUp 0.8s ease both 0.4s; opacity: 0; }
.hero-title .hero-title-line:nth-child(2) { animation: fadeInUp 0.8s ease both 0.6s; opacity: 0; }
.hero-desc { animation: fadeInUp 0.8s ease both 0.8s; opacity: 0; }
.hero-actions { animation: fadeInUp 0.8s ease both 1s; opacity: 0; }
.hero-stats { animation: fadeInUp 0.8s ease both 1.2s; opacity: 0; }

/* Particle animation */
.particle {
    position: absolute; border-radius: 50%; pointer-events: none;
    background: rgba(255,255,255,0.06);
    animation: floatParticle linear infinite;
}
@keyframes floatParticle {
    0% { transform: translateY(0) rotate(0deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translateY(-100vh) rotate(360deg); opacity: 0; }
}
