/* ==========================================================================
   MUVICSA - ADVANCED MOTION & ANIMATION SYSTEM
   ========================================================================== */

/* 1. Pulse Dot Animation */
.pulse-dot {
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
    animation: livePulse 2s infinite ease-in-out;
}

@keyframes livePulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.35); opacity: 0.6; }
}

/* 2. Device Floating Effect */
.mockup-display {
    animation: floatDevice 6s ease-in-out infinite;
}

@keyframes floatDevice {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

/* 3. Button Shimmer Effect */
.btn-download-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
    transform: skewX(-20deg);
    animation: btnShimmer 4.5s infinite;
}

@keyframes btnShimmer {
    0%, 75% { left: -100%; }
    100% { left: 200%; }
}

/* 4. Scroll Reveal Classes */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger Delays */
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }

/* 5. Floating Orbs Drift */
.bg-ambient-orb-1 {
    animation: driftOne 12s ease-in-out infinite alternate;
}

.bg-ambient-orb-2 {
    animation: driftTwo 15s ease-in-out infinite alternate;
}

@keyframes driftOne {
    0% { transform: translate(-50%, 0) scale(1); }
    100% { transform: translate(-45%, 30px) scale(1.1); }
}

@keyframes driftTwo {
    0% { transform: translateY(0) scale(1); }
    100% { transform: translateY(-40px) scale(1.15); }
}