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

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(255,0,153,0.4);
    }
    70% {
        box-shadow: 0 0 0 20px rgba(255,0,153,0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(255,0,153,0);
    }
}

.stage {
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.stage:hover {
    transform: translateY(-10px);
    border-color: var(--primary-color);
    background: linear-gradient(145deg, #ffffff, #fff5fa);
}

.prediction-image img {
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.prediction-image img:hover {
    transform: scale(1.03);
}

.feature {
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.feature:hover {
    transform: translateY(-5px);
    border-color: var(--primary-color);
    background: linear-gradient(145deg, #ffffff, #fff5fa);
}

.cta-button {
    animation: pulse 2s infinite;
}