/* Simulation Animation Keyframes */

/* Cascade slide-in */
@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.cascade-item {
    animation: slideInLeft 0.3s ease-out;
}

/* Counter pulse */
@keyframes counterPulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

.sim-counter.pulsing {
    animation: counterPulse 0.3s ease-in-out;
}

/* Run button shimmer while running */
@keyframes shimmer {
    0% { background-position: -200% center; }
    100% { background-position: 200% center; }
}

.run-button.running {
    background: linear-gradient(90deg, #333 25%, #555 50%, #333 75%);
    background-size: 200% 100%;
    animation: shimmer 2s infinite linear;
    pointer-events: none;
}

/* Bar chart entry */
@keyframes barGrow {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

/* Final results fade-in */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

#final-results {
    animation: fadeIn 0.5s ease-out;
}

/* Probability bar animation */
.prob-fill {
    transition: width 0.3s ease-out;
}
