@keyframes level-up-entry-animation {
    0% {
        opacity: 0;
        transform: scale(0.5) rotate(-15deg);
    }
    60% {
        opacity: 1;
        transform: scale(1.1) rotate(5deg);
    }
    100% {
        transform: scale(1) rotate(0deg);
    }
}

/* --- New Victory Particle Animation --- */
.victory-particle {
    position: absolute;
    top: 30%; /* Start around the title area */
    left: 50%;
    font-size: 24px;
    font-weight: bold;
    will-change: transform, opacity;
    animation: particle-burst-up var(--d) var(--delay) ease-out forwards;
    color: var(--c);
    text-shadow: 0 0 8px var(--c);
    user-select: none;
}

/* --- New Victory Matrix Rain Animation --- */
@keyframes matrix-fall {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(100vh);
    }
}

.matrix-column {
    position: absolute;
    top: 0;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-family: 'Roboto Mono', monospace;
    font-size: 16px;
    color: var(--price-green);
    text-shadow: 0 0 8px var(--price-green);
    animation: matrix-fall var(--duration) var(--delay) linear infinite;
    user-select: none;
}

.matrix-column > span:first-child {
    color: #c8ffe7;
    opacity: 1;
    text-shadow: 0 0 15px #c8ffe7;
}
