/* ── Scene transition fade overlay ── */
.scene-transition-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: #0C0C0C;
    opacity: 0; pointer-events: none; display: none;
    z-index: 9999;
}

/* ── Speed lines boost canvas ── */
.speed-lines-canvas {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 10; display: none;
}

/* ── Minimap ── */
.hud-minimap {
    position: absolute; bottom: 60px; right: 20px;
    pointer-events: none;
    border-radius: 10px;
}

/* ── Turbo start flash ── */
.turbo-flash {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle, rgba(255,180,0,0.3) 0%, transparent 70%);
    pointer-events: none; z-index: 15;
    animation: turbo-flash-anim 0.4s ease-out forwards;
}

@keyframes turbo-flash-anim {
    from { opacity: 1; }
    to { opacity: 0; }
}

/* ── Results confetti ── */
.confetti-canvas {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 190;
}

/* ── Results entrance animations ── */
.results-row {
    opacity: 0; transform: translateX(-30px);
    animation: results-slide-in 0.4s ease-out forwards;
}
.results-row:nth-child(1) { animation-delay: 0.1s; }
.results-row:nth-child(2) { animation-delay: 0.3s; }
.results-row:nth-child(3) { animation-delay: 0.5s; }
.results-row:nth-child(4) { animation-delay: 0.7s; }

@keyframes results-slide-in {
    to { opacity: 1; transform: translateX(0); }
}

.results-title {
    animation: results-title-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    opacity: 0; transform: scale(0.7);
}

@keyframes results-title-pop {
    to { opacity: 1; transform: scale(1); }
}

/* ── Winner trophy glow pulse ── */
.results-row.winner {
    animation: results-slide-in 0.4s ease-out forwards, winner-glow 1.5s ease-in-out infinite alternate 0.5s;
}

@keyframes winner-glow {
    from { box-shadow: 0 0 10px rgba(255,215,0,0.2); }
    to { box-shadow: 0 0 25px rgba(255,215,0,0.5); }
}

/* ── Menu entrance animation ── */
.menu-screen .menu-logo { animation: menu-float-in 0.6s ease-out; }
.menu-screen .menu-title { animation: menu-float-in 0.6s ease-out 0.1s both; }
.menu-screen .menu-subtitle { animation: menu-float-in 0.6s ease-out 0.2s both; }
.menu-screen .menu-buttons { animation: menu-float-in 0.6s ease-out 0.3s both; }

@keyframes menu-float-in {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Select screen entrance ── */
.select-screen .select-title { animation: menu-float-in 0.4s ease-out both; }
.select-screen .select-cards { animation: menu-float-in 0.4s ease-out 0.1s both; }
.select-screen .select-confirm-btn { animation: menu-float-in 0.4s ease-out 0.2s both; }

