.wheel-stage {
    position: absolute;
    left: -41px;
    top: 117px;
    width: 474px;
    height: 461px;
    z-index: 2;
}

.wheel-plasma {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    animation: plasmaPulse 4.5s ease-in-out infinite;
    will-change: transform, opacity;
}

.wheel-rotor {
    position: absolute;
    inset: 0;
    transform-origin: 237px 235px;
    will-change: transform;
}

.wheel-disc {
    position: absolute;
    left: 52px;
    top: 50px;
    width: 370px;
    height: 370px;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 18px 34px rgba(20, 0, 35, 0.55));
}

.wheel-labels {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.wheel-label {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
}

.wheel-label span {
    display: inline-block;
    white-space: nowrap;
    font-weight: 700;
    font-size: 21px;
    line-height: normal;
    letter-spacing: 0.42px;
    text-transform: uppercase;
    text-align: center;
    color: #ffffff;
    -webkit-text-stroke: 1.2px #000000;
    paint-order: stroke fill;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.wheel-pointer {
    position: absolute;
    left: 219px;
    top: 40px;
    width: 36px;
    height: 54px;
    object-fit: contain;
    pointer-events: none;
    transform-origin: 50% 14%;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5));
    z-index: 3;
}

/* Pointer deflection is driven per-frame from JS (synced to cell crossings). */

.wheel-flash {
    position: absolute;
    left: 237px;
    top: 235px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(0);
    background: radial-gradient(circle, rgba(255, 245, 200, 0.95) 0%, rgba(255, 213, 80, 0.55) 35%, rgba(161, 1, 253, 0) 70%);
    pointer-events: none;
    opacity: 0;
    z-index: 2;
}

.wheel-flash.burst {
    animation: flashBurst 0.9s ease-out forwards;
}

.wheel-labels.swap-out {
    animation: labelFade 0.35s ease forwards;
}

.wheel-labels.swap-in {
    animation: labelFade 0.4s ease reverse;
}
