/* Score animation */
.score-animation {
    position: absolute;
    font-size: 2em;
    font-weight: bold;
    color: #4CAF50;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    animation: scoreFloat 2s ease-out forwards;
    pointer-events: none;
    z-index: 20;
}

/* Foul flash overlay (gradient radial style matching success) */
.foul-flash {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at center, rgba(255, 68, 68, 0.5), rgba(0, 0, 0, 0));
    z-index: 1000;
    pointer-events: none;
    opacity: 0;
}

[data-theme="dark"] .foul-flash {
    background: radial-gradient(circle at center, rgba(255, 100, 100, 0.6), rgba(0, 0, 0, 0));
}

[data-theme="light"] .foul-flash {
    background: radial-gradient(circle at center, rgba(255, 0, 0, 0.8), rgba(255, 255, 255, 0));
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .foul-flash {
        background: radial-gradient(circle at center, rgba(255, 100, 100, 0.6), rgba(0, 0, 0, 0));
    }
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .foul-flash {
        background: radial-gradient(circle at center, rgba(255, 0, 0, 0.8), rgba(255, 255, 255, 0));
    }
}

.foul-flash.active {
    animation: foulFlash 0.28s ease-out;
}

/* Miss flash overlay (gradient radial style matching success) */
.miss-flash {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at center, rgba(255, 165, 68, 0.6), rgba(0, 0, 0, 0));
    z-index: 999;
    pointer-events: none;
    opacity: 0;
}

[data-theme="dark"] .miss-flash {
    background: radial-gradient(circle at center, rgba(255, 200, 100, 0.65), rgba(0, 0, 0, 0));
}

[data-theme="light"] .miss-flash {
    background: radial-gradient(circle at center, rgba(255, 140, 0, 0.85), rgba(255, 255, 255, 0));
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .miss-flash {
        background: radial-gradient(circle at center, rgba(255, 200, 100, 0.65), rgba(0, 0, 0, 0));
    }
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .miss-flash {
        background: radial-gradient(circle at center, rgba(255, 140, 0, 0.85), rgba(255, 255, 255, 0));
    }
}

.miss-flash.active {
    animation: missFlash 0.28s ease-out;
}

/* Success flash overlay (replaces particles) */
.success-flash {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at center, rgba(76, 220, 156, 0.45), rgba(0, 0, 0, 0));
    z-index: 1001;
    pointer-events: none;
    opacity: 0;
}

[data-theme="dark"] .success-flash {
    background: radial-gradient(circle at center, rgba(61, 245, 180, 0.55), rgba(0, 0, 0, 0));
}

[data-theme="light"] .success-flash {
    background: radial-gradient(circle at center, rgba(0, 180, 100, 0.75), rgba(255, 255, 255, 0));
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .success-flash {
        background: radial-gradient(circle at center, rgba(61, 245, 180, 0.55), rgba(0, 0, 0, 0));
    }
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .success-flash {
        background: radial-gradient(circle at center, rgba(0, 180, 100, 0.75), rgba(255, 255, 255, 0));
    }
}

.success-flash.active {
    animation: successFlash 0.28s ease-out;
}

@keyframes foulFlash {
    0% { opacity: 0; }
    40% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes missFlash {
    0% { opacity: 0; }
    40% { opacity: 1; }
    100% { opacity: 0; }
}

/* End transition overlay - covers screen before result */
.end-transition-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, #667eea, #764ba2, #f093fb);
    opacity: 0;
    pointer-events: none;
    z-index: 1000;
    transition: opacity 1.5s ease-in;
}

[data-theme="dark"] .end-transition-overlay {
    background: linear-gradient(45deg, #4c5fd5, #5a3a7a, #c084fc);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .end-transition-overlay {
        background: linear-gradient(45deg, #4c5fd5, #5a3a7a, #c084fc);
    }
}

.end-transition-overlay.active {
    opacity: 1;
}

@keyframes scoreFloat {
    0% {
        opacity: 1;
        transform: translateY(0) scale(0.5);
    }
    20% {
        transform: translateY(-10px) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(-80px) scale(0.8);
    }
}

@keyframes successFlash {
    0% {
        opacity: 0;
        transform: scale(0.9);
        filter: blur(4px);
    }
    40% {
        opacity: 1;
        transform: scale(1.02);
        filter: blur(0);
    }
    100% {
        opacity: 0;
        transform: scale(1.08);
        filter: blur(8px);
    }
}
