/* IMPORTACIÓN DE FUENTES E ICONOS (Antes estaban en el HTML) */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons+Round');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap');

/* CONFIGURACIÓN BASE */
html { scroll-behavior: smooth; }
body { min-height: max(884px, 100dvh); }

/* SCROLLBARS */
.hide-scrollbar::-webkit-scrollbar, .no-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar, .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* EFECTOS GLASSMORPHISM */
.glass-nav {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.dark .glass-nav {
    background: rgba(15, 27, 35, 0.7);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.glass-card, .glass {
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 32px 0 rgba(0, 51, 87, 0.1);
}
.dark .glass-card, .dark .glass {
    background: rgba(0, 51, 87, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
}

/* FONDOS Y PATRONES */
.bg-grid {
    background-size: 40px 40px;
    background-image: linear-gradient(to right, rgba(0, 51, 87, 0.05) 1px, transparent 1px),
                      linear-gradient(to bottom, rgba(0, 51, 87, 0.05) 1px, transparent 1px);
}
.bg-pattern {
    background-image: radial-gradient(#003357 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: 0.05;
}
.footer-lines {
    background: linear-gradient(90deg, transparent 49%, rgba(255, 255, 255, 0.03) 50%, transparent 51%),
                linear-gradient(0deg, transparent 49%, rgba(255, 255, 255, 0.03) 50%, transparent 51%);
    background-size: 100px 100px;
}

/* ANIMACIONES */
@keyframes float-center {
    0%, 100% { transform: translateY(0px) translateX(0px); }
    50% { transform: translateY(-5px) translateX(2px); }
}
@keyframes ripple {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 52, 88, 0.2); }
    70% { transform: scale(1.1); box-shadow: 0 0 0 20px rgba(0, 52, 88, 0); }
    100% { transform: scale(1.1); box-shadow: 0 0 0 0 rgba(0, 52, 88, 0); }
}
.animate-float-1 { animation: float-center 4s ease-in-out infinite; }
.animate-float-2 { animation: float-center 5s ease-in-out infinite reverse; }
.animate-float-slow { animation: float-center 6s ease-in-out infinite; }
.pulse-ring { animation: ripple 2s linear infinite; }


/* Efectos de hover para botones y enlaces de INICIO */

@keyframes bounce-slow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.animate-float {
    animation: float 6s ease-in-out infinite;
}

.animate-bounce-slow {
    animation: bounce-slow 4s ease-in-out infinite;
}

/* Efecto suave de entrada para el texto */
.animate-fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}


/* --- Keyframes Unificados --- */

/* Flotación suave */
@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}

/* Entrada desde abajo (Consolidada) */
@keyframes fadeInUp {
    from { 
        opacity: 0; 
        transform: translateY(30px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

/* Entrada desde la izquierda */
@keyframes fadeInLeft {
    from { opacity: 0; transform: translateX(-30px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Rotación continua */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Efecto de brillo */
@keyframes shine {
    100% { left: 125%; }
}

/* --- Clases de Animación --- */

.animate-float {
    animation: float 6s ease-in-out infinite;
}

.animate-fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-spin-slow {
    animation: spin 12s linear infinite;
}

.animate-on-scroll-left {
    animation: fadeInLeft 0.8s ease-out forwards;
}

.animate-shine {
    animation: shine 0.8s forwards;
}

/* --- Animaciones Escalonadas (Stagger) --- 
   Se usa 'both' para mantener el estado inicial oculto antes de empezar 
*/
.animate-stagger-1 { animation: fadeInUp 0.5s ease-out 0.10s both; }
.animate-stagger-2 { animation: fadeInUp 0.5s ease-out 0.15s both; }
.animate-stagger-3 { animation: fadeInUp 0.5s ease-out 0.20s both; }
.animate-stagger-4 { animation: fadeInUp 0.5s ease-out 0.25s both; }
.animate-stagger-5 { animation: fadeInUp 0.5s ease-out 0.30s both; }
.animate-stagger-6 { animation: fadeInUp 0.5s ease-out 0.35s both; }
.animate-stagger-7 { animation: fadeInUp 0.5s ease-out 0.40s both; }
.animate-stagger-8 { animation: fadeInUp 0.5s ease-out 0.45s both; }
