/* Core Reveal Animations */
.fade-up {
    opacity: 0;
    transform: translateY(30px);
    animation: fadeUpAnim 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeUpAnim {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.stagger-1 { animation-delay: 0.1s; }
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; }
.stagger-4 { animation-delay: 0.4s; }

/* Ambient Network Background Motion */
.ambient-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: -1;
    overflow: hidden;
}

.line {
    position: absolute;
    background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.1), transparent);
    height: 1px;
    width: 100%;
    transform: translateX(-100%);
}

.line-1 { top: 20%; animation: scanline 8s linear infinite; }
.line-2 { top: 50%; animation: scanline 12s linear infinite 4s; }
.line-3 { top: 80%; animation: scanline 10s linear infinite 2s; }

@keyframes scanline {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* Node Pulsing */
.pulse-node {
    animation: pulse 3s infinite ease-in-out;
}

@keyframes pulse {
    0% { transform: scale(1); opacity: 0.8; }
    50% { transform: scale(1.5); opacity: 0.3; }
    100% { transform: scale(1); opacity: 0.8; }
}

/* Subtle Float for Images/Cards */
.float {
    animation: floating 6s ease-in-out infinite;
}

@keyframes floating {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}

/* Image overlay glow */
.glow-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    height: 60%;
    background: radial-gradient(circle, rgba(56,189,248,0.15) 0%, rgba(7,19,31,0) 70%);
    z-index: -1;
    animation: pulseGlow 8s infinite alternate ease-in-out;
}

@keyframes pulseGlow {
    0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}