@keyframes glitch {
    0% { transform: translate(0); } 
    20% { transform: translate(-2px, 2px); } 
    40% { transform: translate(-2px, -2px); } 
    60% { transform: translate(2px, 2px); } 
    80% { transform: translate(2px, -2px); } 
    100% { transform: translate(0); }
}

@keyframes ticker {
    from { transform: translateX(0); }
    to { transform: translateX(-33.333%); }
}

@keyframes slideUpFromBottom {
    0% { 
        transform: translateY(100%); 
        opacity: 0; 
    }
    100% { 
        transform: translateY(0); 
        opacity: 1; 
    }
}

/* Bouncy Arrow Animation */
@keyframes bounce { 
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 
    40% { transform: translateY(-15px); } 
    60% { transform: translateY(-7px); } 
}

.bouncy-arrow { 
    animation: bounce 2s infinite; 
}

/* Logo Flicker Animation */
@keyframes flickerIn {
    0% { opacity: 0; box-shadow: 0 0 2px var(--primary), inset 0 0 2px var(--primary); }
    20% { opacity: 0; }
    25% { opacity: 1; }
    30% { opacity: 0; box-shadow: 0 0 5px var(--primary), inset 0 0 5px var(--primary);}
    40% { opacity: 1; }
    60% { opacity: 1; }
    62% { opacity: 0; }
    65% { opacity: 1; box-shadow: none; }
    100% { opacity: 1; }
}

.flicker-in {
    animation: flickerIn 2s ease-in-out forwards;
}

.flicker-in:hover {
    animation: flickerIn 2s ease-in-out forwards, glitch 0.3s linear;
}

/* Floating Score Text */
@keyframes float-up {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-50px); }
}

/* Floating Image Animation */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

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

/* Hero Image Entrance Animation */
@keyframes slideInFromRight {
    0% {
        opacity: 0;
        transform: translateX(100px) scale(0.8) rotate(5deg);
        filter: blur(10px);
    }
    60% {
        transform: translateX(-10px) scale(1.05) rotate(-2deg);
    }
    100% {
        opacity: 1;
        transform: translateX(0) scale(1) rotate(0deg);
        filter: blur(0);
    }
}

.hero-image-entrance {
    animation: slideInFromRight 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Terminal Open Animation - Scale up with bounce */
@keyframes terminalOpen {
    0% {
        opacity: 0;
        transform: scale(0.8) translateY(20px);
    }
    60% {
        transform: scale(1.02) translateY(-5px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Terminal Close Animation - Scale down */
@keyframes terminalClose {
    0% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
    100% {
        opacity: 0;
        transform: scale(0.9) translateY(10px);
    }
}

/* Fade In Animation */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Typing Line Animation - For command lines */
@keyframes typingLine {
    0% {
        width: 0;
        opacity: 0;
    }
    1% {
        opacity: 1;
    }
    100% {
        width: 100%;
        opacity: 1;
    }
}

.typing-line {
    overflow: hidden;
    white-space: nowrap;
    animation: typingLine 0.4s steps(30, end) both;
}

/* Typing Content Animation - For content blocks */
@keyframes typingContent {
    0% {
        opacity: 0;
        transform: translateY(5px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.typing-content {
    animation: typingContent 0.3s ease-out both;
}

/* Toast Notification Animations */
@keyframes slideUpToast {
    0% {
        opacity: 0;
        transform: translateY(100px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes slideOutToast {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
}

.toast-enter {
    animation: slideUpToast 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.toast-exit {
    animation: slideOutToast 0.3s ease-out forwards;
}

