
.aw-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

.aw-reveal-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.aw-reveal-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.aw-reveal-scale {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.aw-delay-1 { transition-delay: 0.1s; }
.aw-delay-2 { transition-delay: 0.2s; }
.aw-delay-3 { transition-delay: 0.3s; }
.aw-delay-4 { transition-delay: 0.4s; }

.aw-reveal.is-visible,
.aw-reveal-left.is-visible,
.aw-reveal-right.is-visible,
.aw-reveal-scale.is-visible {
    opacity: 1;
    transform: translate(0) scale(1);
}

@keyframes neonPulse {
    0%, 100% {
        box-shadow: 0 0 10px rgba(0,229,255,0.2), inset 0 0 10px rgba(0,229,255,0.2);
    }
    50% {
        box-shadow: 0 0 20px rgba(0,229,255,0.6), inset 0 0 10px rgba(0,229,255,0.4);
    }
}

.aw-pulse {
    animation: neonPulse 3s infinite ease-in-out;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}

.aw-float {
    animation: float 6s ease-in-out infinite;
}

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

.aw-fade-in {
    animation: fadeInOverlay 0.5s forwards;
}
