/* animations.css */

.orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    animation: float 20s ease-in-out infinite;
}

.orb-1 {
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, var(--glow-cyan) 0%, transparent 70%);
    top: -200px;
    left: -200px;
    animation-delay: 0s;
}

.orb-2 {
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, var(--glow-magenta) 0%, transparent 70%);
    bottom: -150px;
    right: -150px;
    animation-delay: -7s;
}

.orb-3 {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(157, 78, 221, 0.3) 0%, transparent 70%);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation-delay: -14s;
}

@keyframes float {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    25% {
        transform: translate(50px, -30px) scale(1.05);
    }

    50% {
        transform: translate(-30px, 50px) scale(0.95);
    }

    75% {
        transform: translate(-50px, -20px) scale(1.02);
    }
}

@keyframes fadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }

    from {
        transform: translateY(30px);
    }
}

.menu-item.initial-load {
    animation: menuAppear 0.5s ease-out forwards;
}

.menu-item.initial-load:nth-child(1) {
    animation-delay: 1.1s;
}

.menu-item.initial-load:nth-child(2) {
    animation-delay: 1.2s;
}

.menu-item.initial-load:nth-child(3) {
    animation-delay: 1.3s;
}

.menu-item.initial-load:nth-child(4) {
    animation-delay: 1.4s;
}

.menu-item.initial-load:nth-child(5) {
    animation-delay: 1.5s;
}

.menu-item.initial-load:nth-child(6) {
    animation-delay: 1.6s;
}

@keyframes menuAppear {
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes badgeSpin {
    to {
        transform: rotate(360deg);
    }
}

.content-section.active {
    animation: sectionIn 0.6s ease-out forwards;
}

@keyframes sectionIn {
    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.intro-orb {
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(0, 240, 255, 0.3), rgba(157, 78, 221, 0.2) 50%, transparent 70%);
    filter: blur(40px);
    animation: orbPulse 4s ease-in-out infinite;
}

@keyframes orbPulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.7;
    }

    50% {
        transform: scale(1.1);
        opacity: 1;
    }
}

@keyframes floatCard {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-15px);
    }
}

@keyframes floatCardAlt {

    0%,
    100% {
        transform: translateY(-50%);
    }

    50% {
        transform: translateY(calc(-50% - 15px));
    }
}

.tech-track {
    display: flex;
    gap: 40px;
    animation: marquee 20s linear infinite;
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.tab-pane.active {
    display: block;
    animation: tabFade 0.4s ease-out;
}

@keyframes tabFade {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Exit animations */
.menu-item.exit-up {
    animation: exitDown 0.5s ease-out forwards !important;
    pointer-events: none;
}

@keyframes exitDown {
    to {
        transform: translateY(50px);
        opacity: 0;
    }
}

.menu-item.return {
    animation: menuReturn 0.4s ease-out forwards !important;
}

@keyframes menuReturn {
    from {
        opacity: 0;
        transform: translateY(30px) scale(0.9);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Reveal Animation */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all .8s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}