/* Floating Animations for Hero Wireframes */
@keyframes float1 {
    0%, 100% {
        transform: translate(0, 0) rotate(0deg);
    }
    33% {
        transform: translate(30px, -50px) rotate(10deg);
    }
    66% {
        transform: translate(-20px, 20px) rotate(-5deg);
    }
}

@keyframes float2 {
    0%, 100% {
        transform: translate(0, 0) rotate(45deg);
    }
    33% {
        transform: translate(-40px, 30px) rotate(35deg);
    }
    66% {
        transform: translate(20px, -20px) rotate(55deg);
    }
}

.shape-1 {
    animation: float1 20s ease-in-out infinite;
}

.shape-2 {
    animation: float2 25s ease-in-out infinite;
}

/* Ambient Orb Drift Animations */
@keyframes orbDrift1 {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    50% {
        transform: translate(100px, 150px) scale(1.1);
    }
}

@keyframes orbDrift2 {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    50% {
        transform: translate(-150px, -100px) scale(1.05);
    }
}

@keyframes orbDrift3 {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    50% {
        transform: translate(150px, -150px) scale(1.2);
    }
}

.orb-1 {
    animation: orbDrift1 25s ease-in-out infinite;
}

.orb-2 {
    animation: orbDrift2 30s ease-in-out infinite;
}

.orb-3 {
    animation: orbDrift3 35s ease-in-out infinite;
}

/* Background Grid Animation */
@keyframes moveGrid {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(50px);
    }
}

.grid-background {
    animation: moveGrid 8s linear infinite;
}

/* Reveal Animations */
.section-reveal {
    opacity: 0;
    transform: translateY(40px) scale(0.98);
    transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.section-reveal.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Subtle fade in for hero text */
@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.hero-title {
    animation: fadeInScale 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both;
}

.hero-subtitle {
    animation: fadeInScale 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both;
}

.hero-actions {
    animation: fadeInScale 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both;
}
