/* === Animation Keyframes === */

/* --- General Purpose Keyframes (from atc_keyframes.css) --- */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

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

@keyframes slideInUp {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

@keyframes slideOutDown {
    from { transform: translateY(0); opacity: 1; }
    to { transform: translateY(100%); opacity: 0; }
}

@keyframes bounceIn {
    0%, 20%, 40%, 60%, 80%, 100% { transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); }
    0% { opacity: 0; transform: scale3d(.3, .3, .3); }
    20% { transform: scale3d(1.1, 1.1, 1.1); }
    40% { transform: scale3d(.9, .9, .9); }
    60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
    80% { transform: scale3d(.97, .97, .97); }
    100% { opacity: 1; transform: scale3d(1, 1, 1); }
}

@keyframes pulse {
    from { transform: scale(1); }
    50% { transform: scale(1.05); }
    to { transform: scale(1); }
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes scaleUp {
    from { transform: scale(1); }
    to { transform: scale(1.1); }
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* --- Component Specific Keyframes --- */

/* Login Header Gradient (from login_aviation_theme.css & aviation_radar_styles.css) */
@keyframes gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Logo Radar Ping (from login_aviation_theme.css & aviation_radar_styles.css) */
@keyframes radar-ping {
    0% { transform: scale(0.3); opacity: 1; }
    100% { transform: scale(3); opacity: 0; }
}

/* Button Ripple (from login_aviation_theme.css & LoginStyles.css) */
@keyframes ripple {
    0% { transform: scale(0, 0) translate(-50%, -50%); opacity: 0.5; } /* Added translate */
    100% { transform: scale(20, 20) translate(-50%, -50%); opacity: 0; } /* Added translate */
}

/* Radar Screen Sweep & Blip (from aviation_radar_styles.css & pasted_content.txt) */
@keyframes radar-sweep {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes radar-blip {
    0%, 100% { opacity: 0.8; transform: scale(1); }
    50% { opacity: 0.3; transform: scale(0.8); }
}

/* Motivational Text Scroll (from pasted_content.txt & atc_keyframes.css) */
@keyframes scroll-text {
    from { transform: translateX(0); } /* Start from right edge */
    to { transform: translateX(-200%); } /* Scroll completely off-screen left */
}

/* Project Title Glow (from pasted_content.txt, LoginStyles.css & atc_keyframes.css) */
@keyframes glow {
    from { text-shadow: 0 0 5px rgba(255, 255, 255, 0.7), 0 0 10px rgba(0, 123, 255, 0.5); }
    to { text-shadow: 0 0 15px rgba(255, 255, 255, 0.9), 0 0 25px rgba(0, 123, 255, 0.8); }
}

/* Airplane Flight Paths (from atc_keyframes.css & pasted_content.txt) */
/* Note: These define complex paths. Ensure the target elements exist. */
@keyframes airplanePath1 {
    0% { top: 10%; left: -10%; transform: rotate(20deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { top: 60%; left: 110%; transform: rotate(10deg); opacity: 0; }
}

@keyframes airplanePath2 {
    0% { top: 70%; left: 110%; transform: rotate(-160deg) scaleX(-1); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { top: 20%; left: -10%; transform: rotate(-170deg) scaleX(-1); opacity: 0; }
}

@keyframes airplanePath3 {
    0% { bottom: 10%; left: -10%; transform: rotate(5deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { bottom: 5%; left: 110%; transform: rotate(-5deg); opacity: 0; }
}

/* Background Airplanes (from login_aviation_theme.css - Less complex) */
@keyframes fly-1 {
    0% { transform: translate(0, 0) rotate(45deg); }
    50% { transform: translate(50vw, 20vh) rotate(30deg); }
    100% { transform: translate(0, 0) rotate(45deg); }
}

@keyframes fly-2 {
    0% { transform: translate(0, 0) rotate(-30deg); }
    50% { transform: translate(-40vw, 10vh) rotate(-45deg); }
    100% { transform: translate(0, 0) rotate(-30deg); }
}

/* === Animation Application Classes (from atc_animations.css) === */
/* Apply these classes to elements in HTML to trigger animations */

.animate-fade-in { animation: fadeIn 1s ease-out forwards; }
.animate-fade-out { animation: fadeOut 1s ease-out forwards; }
.animate-slide-in-up { animation: slideInUp 0.8s ease-out forwards; }
.animate-slide-out-down { animation: slideOutDown 0.8s ease-out forwards; }
.animate-bounce-in { animation: bounceIn 1s ease-out forwards; }
.animate-pulse { animation: pulse 2s infinite; }
.animate-rotate { animation: rotate 10s linear infinite; }
.animate-scale-up { animation: scaleUp 0.5s ease-out forwards; }
.animate-glow { animation: glow 2s ease-in-out infinite alternate; }
.animate-blink { animation: blink 1.5s infinite; }
.animate-sweep { animation: radar-sweep 4s linear infinite; } /* Using radar-sweep keyframe */
.animate-airplane-1 { animation: airplanePath1 25s linear infinite; }
.animate-airplane-2 { animation: airplanePath2 30s linear infinite 1s; } /* Added delay */
.animate-airplane-3 { animation: airplanePath3 20s linear infinite 2s; } /* Added delay */
.animate-text-scroll { animation: scroll-text 20s linear infinite; }

/* Specific Element Animations (Apply directly or via classes) */

/* Login Header Gradient */
.login-header::after {
    /* animation: gradient-shift 3s ease infinite; */ /* Applied in components.css */
}

/* Logo Radar Ping */
.logo-container::before {
    /* animation: radar-ping 2s ease-out infinite; */ /* Applied in components.css */
}

/* Radar Screen Sweep */
.radar-sweep {
    /* animation: radar-sweep 4s linear infinite; */ /* Applied in components.css */
}

/* Radar Blips */
.radar-blip {
    /* animation: radar-blip 2s ease-in-out infinite; */ /* Applied in components.css */
}

/* Motivational Text */
#motivational-text {
    /* animation: scroll-text 20s linear infinite; */ /* Applied in login-page.css */
}

/* Project Title */
.project-title {
    /* animation: glow 2s ease-in-out infinite alternate; */ /* Applied in login-page.css */
}

/* Background Airplanes (if used) */
.airplane-bg-1 { animation: fly-1 60s linear infinite; }
.airplane-bg-2 { animation: fly-2 80s linear infinite; }


