.first-player-card.first-player-reveal-pending,
.result-card.first-player-reveal-pending {
    filter: drop-shadow(0 10px 18px rgba(15, 23, 42, 0.28));
}

.first-player-card.first-player-reveal-opening,
.result-card.first-player-reveal-opening {
    animation: first-player-reveal-pop 360ms ease both;
    z-index: 4;
}

.first-player-card.first-player-reveal-winner,
.result-card.first-player-reveal-winner {
    filter: drop-shadow(0 0 18px rgba(34, 197, 94, 0.7));
}

.first-player-card.first-player-reveal-winner .card-back,
.result-card.first-player-reveal-winner .card-back {
    border-color: #22c55e;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.2), 0 12px 26px rgba(15, 23, 42, 0.26);
}

.first-player-card.first-player-reveal-loser,
.result-card.first-player-reveal-loser {
    opacity: 0.84;
}

.first-player-card.first-player-reveal-tie .card-back,
.result-card.first-player-reveal-tie .card-back {
    border-color: #f59e0b;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.2), 0 12px 26px rgba(15, 23, 42, 0.24);
}

.first-player-reveal-banner {
    position: fixed;
    left: 50%;
    top: 14%;
    z-index: 2400;
    transform: translateX(-50%);
    padding: 12px 22px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.9);
    color: #fff;
    font-weight: 900;
    letter-spacing: 0.04em;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.28);
    animation: first-player-reveal-banner 900ms ease both;
    pointer-events: none;
}

@keyframes first-player-reveal-pop {
    0% {
        transform: translateY(0) scale(1);
    }

    42% {
        transform: translateY(-18px) scale(1.08);
    }

    100% {
        transform: translateY(-8px) scale(1.03);
    }
}

@keyframes first-player-reveal-banner {
    0% {
        opacity: 0;
        transform: translate(-50%, -10px) scale(0.96);
    }

    18%,
    78% {
        opacity: 1;
        transform: translate(-50%, 0) scale(1);
    }

    100% {
        opacity: 0;
        transform: translate(-50%, -8px) scale(0.98);
    }
}

@media (prefers-reduced-motion: reduce) {
    .first-player-card.first-player-reveal-opening,
    .result-card.first-player-reveal-opening,
    .first-player-reveal-banner {
        animation: none;
    }
}
