/* Neural Network Logo Animations */
.neural-logo {
    width: 60px;
    height: 60px;
    position: relative;
}

.neural-node {
    position: absolute;
    width: 8px;
    height: 8px;
    background: var(--primary-red);
    border-radius: 50%;
    box-shadow: 0 0 15px var(--primary-red);
    animation: pulse 2s infinite;
}

.neural-connection {
    position: absolute;
    height: 2px;
    background: linear-gradient(90deg, var(--primary-red), var(--dark-red));
    box-shadow: 0 0 8px var(--primary-red);
    opacity: 0.8;
}

@keyframes pulse {
    0%, 100% { 
        box-shadow: 0 0 15px var(--primary-red);
        transform: scale(1);
    }
    50% { 
        box-shadow: 0 0 25px var(--primary-red), 0 0 35px var(--primary-red);
        transform: scale(1.1);
    }
}

/* Particle Animations */
.particles {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none;
}

.particle {
    position: absolute;
    width: 2px;
    height: 2px;
    background: var(--primary-red);
    border-radius: 50%;
    opacity: 0.5;
    animation: float 6s infinite linear;
}

@keyframes float {
    0% { 
        transform: translateY(100vh) translateX(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: 0.5;
    }
    90% {
        opacity: 0.5;
    }
    100% { 
        transform: translateY(-100px) translateX(100px) rotate(360deg);
        opacity: 0;
    }
}

/* Loading Animations */
@keyframes slideIn {
    from { 
        transform: translateX(100%); 
        opacity: 0; 
    }
    to { 
        transform: translateX(0); 
        opacity: 1; 
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideUp {
    from { 
        transform: translateY(30px); 
        opacity: 0; 
    }
    to { 
        transform: translateY(0); 
        opacity: 1; 
    }
}

/* Hover Effects */
.glow-on-hover {
    transition: all 0.3s ease;
}

.glow-on-hover:hover {
    box-shadow: 0 0 20px var(--primary-red);
    transform: translateY(-2px);
}

/* Notification Animation */
.notification {
    position: fixed;
    top: 100px;
    right: 20px;
    background: var(--primary-red);
    color: var(--text-light);
    padding: 15px 20px;
    border-radius: 8px;
    z-index: 3000;
    box-shadow: 0 0 20px var(--shadow-red);
    animation: slideIn 0.3s ease, fadeOut 0.3s ease 2.7s;
    font-weight: 500;
}

@keyframes fadeOut {
    to { 
        opacity: 0; 
        transform: translateX(100%); 
    }
}

/* Responsive Animations */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    .particle {
        display: none;
    }
}