/* ==========================================================================
   TwoTower Cyber Defense - Animations & Hi-Tech Visual Effects
   ========================================================================== */

/* Glow Ambient Pulse */
@keyframes floatGlow {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(40px, 30px) scale(1.05); }
    100% { transform: translate(-20px, 50px) scale(0.95); }
}

.float-glow-fast {
    animation: floatGlow 8s infinite alternate ease-in-out;
}

.float-glow-slow {
    animation: floatGlow 14s infinite alternate-reverse ease-in-out;
}

/* 2 Towers Energy Pulse Beam */
@keyframes beamPulsing {
    0%, 100% {
        box-shadow: 0 0 15px rgba(0, 240, 255, 0.4), 0 0 30px rgba(0, 240, 255, 0.2);
    }
    50% {
        box-shadow: 0 0 25px rgba(0, 240, 255, 0.8), 0 0 50px rgba(0, 240, 255, 0.4);
    }
}

.energy-perimeter-pulse {
    animation: beamPulsing 2s infinite ease-in-out;
}

/* Radar Sweeper */
@keyframes radarScan {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.radar-sweep-effect {
    transform-origin: 50% 50%;
    animation: radarScan 8s infinite linear;
}

/* Scanner beam overlay */
@keyframes scanline {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(100%);
    }
}

.scanline-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to bottom,
        rgba(0, 240, 255, 0),
        rgba(0, 240, 255, 0.05) 50%,
        rgba(0, 240, 255, 0)
    );
    animation: scanline 6s infinite linear;
    pointer-events: none;
}

/* Terminal Cursor Blink */
@keyframes cursorBlink {
    0%, 49% { background-color: var(--cyan); }
    50%, 100% { background-color: transparent; }
}

.cursor-active {
    display: inline-block;
    width: 8px;
    height: 15px;
    vertical-align: middle;
    margin-left: 2px;
    animation: cursorBlink 1s infinite;
}

/* Micro interaction pulses */
@keyframes statusBlink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.status-blink {
    animation: statusBlink 1.5s infinite ease-in-out;
}
