/* ═══════════════════════════════════════════════════
   NUHA PRO THEME v2 – Animations
   ═══════════════════════════════════════════════════ */

@keyframes nuha-float {
    0%   { transform: translateY(0px); }
    50%  { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}
.nuha-animate-float { animation: nuha-float 6s ease-in-out infinite; }
.nuha-animate-float-delayed { animation: nuha-float 5s ease-in-out infinite 1s; }

@keyframes nuha-ping {
    75%, 100% { transform: scale(2); opacity: 0; }
}
.nuha-ping { position: relative; display: inline-flex; width: 8px; height: 8px; }
.nuha-ping__wave {
    position: absolute; inset: 0; border-radius: 50%;
    background: var(--nuha-primary); opacity: 0.75;
    animation: nuha-ping 1s cubic-bezier(0,0,0.2,1) infinite;
}
.nuha-ping__dot {
    position: relative; width: 8px; height: 8px;
    border-radius: 50%; background: var(--nuha-primary);
}

.nuha-reveal {
    opacity: 0; transform: translateY(24px);
    transition: opacity 0.6s var(--nuha-ease), transform 0.6s var(--nuha-ease);
}
.nuha-reveal.is-visible { opacity: 1; transform: translateY(0); }

.nuha-reveal-left {
    opacity: 0; transform: translateX(-32px);
    transition: opacity 0.6s var(--nuha-ease), transform 0.6s var(--nuha-ease);
}
.nuha-reveal-left.is-visible { opacity: 1; transform: translateX(0); }

.nuha-reveal-scale {
    opacity: 0; transform: scale(0.95);
    transition: opacity 0.6s var(--nuha-ease), transform 0.6s var(--nuha-ease);
}
.nuha-reveal-scale.is-visible { opacity: 1; transform: scale(1); }

.nuha-delay-1 { transition-delay: 100ms; }
.nuha-delay-2 { transition-delay: 200ms; }
.nuha-delay-3 { transition-delay: 300ms; }
.nuha-delay-4 { transition-delay: 400ms; }

.nuha-hover-lift {
    transition: transform var(--nuha-duration) var(--nuha-ease),
                box-shadow var(--nuha-duration) var(--nuha-ease);
}
.nuha-hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: var(--nuha-shadow-xl);
}

@media (prefers-reduced-motion: reduce) {
    .nuha-animate-float, .nuha-animate-float-delayed { animation: none; }
    .nuha-reveal, .nuha-reveal-left, .nuha-reveal-scale {
        opacity: 1; transform: none; transition: none;
    }
    .nuha-ping__wave { animation: none; }
}
