/* ============================================================
   NEREO ANIMATIONS — Keyframes y efectos visuales
   ============================================================ */

/* ── Sonar / pulso oceánico ─────────────────────────────────── */
@keyframes nereo-sonar-pulse {
    0%   { transform: scale(0.4); opacity: 0.9; }
    100% { transform: scale(2.8); opacity: 0; }
}

/* ── Flotación suave (elementos decorativos) ────────────────── */
@keyframes nereo-float {
    0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.6; }
    33%       { transform: translateY(-18px) rotate(2deg); opacity: 0.9; }
    66%       { transform: translateY(-9px) rotate(-1.5deg); opacity: 0.7; }
}

/* ── Scan line ──────────────────────────────────────────────── */
@keyframes nereo-scan {
    0%   { top: -2px; opacity: 0; }
    5%   { opacity: 1; }
    90%  { opacity: 1; }
    100% { top: 100%; opacity: 0; }
}

/* ── Glow pulsante ──────────────────────────────────────────── */
@keyframes nereo-glow-pulse {
    0%, 100% { box-shadow: 0 0 8px rgba(0, 229, 255, 0.2); }
    50%       { box-shadow: 0 0 28px rgba(0, 229, 255, 0.65), 0 0 60px rgba(0, 229, 255, 0.25); }
}

/* ── Blink (cursor typing) ──────────────────────────────────── */
@keyframes nereo-blink {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0; }
}

/* ── Fade in up ─────────────────────────────────────────────── */
@keyframes nereo-fade-in-up {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Rotación lenta ─────────────────────────────────────────── */
@keyframes nereo-spin-slow {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ── Shimmer (skeleton / loading) ───────────────────────────── */
@keyframes nereo-shimmer {
    0%   { background-position: -200% center; }
    100% { background-position: 200% center; }
}

/* ── Dot blip (detección en sonar) ─────────────────────────── */
@keyframes nereo-blip {
    0%   { transform: scale(0); opacity: 1; }
    70%  { transform: scale(1.6); opacity: 0.5; }
    100% { transform: scale(2); opacity: 0; }
}

/* ── Slide in left ──────────────────────────────────────────── */
@keyframes nereo-slide-left {
    from { opacity: 0; transform: translateX(-32px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ── Slide in right ─────────────────────────────────────────── */
@keyframes nereo-slide-right {
    from { opacity: 0; transform: translateX(32px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ── Clases de animación reutilizables ──────────────────────── */
.nereo-anim-float {
    animation: nereo-float 6s ease-in-out infinite;
}

.nereo-anim-glow-pulse {
    animation: nereo-glow-pulse 2.5s ease-in-out infinite;
}

.nereo-anim-spin-slow {
    animation: nereo-spin-slow 18s linear infinite;
}

/* ── Reducción de movimiento (accesibilidad) ────────────────── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .nereo-reveal {
        opacity: 1;
        transform: none;
    }
}
