/* Explosion particle effect */
.explosion-particle {
    position: fixed;
    width: 8px;
    height: 8px;
    background: radial-gradient(circle, #ffd700 0%, #ff6b00 100%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 1000;
    animation: explode 0.6s ease-out forwards;
    box-shadow: 0 0 6px #ffd700;
}

/* Already found particles - gray/muted */
.explosion-particle.already-found {
    background: radial-gradient(circle, #888 0%, #555 100%);
    box-shadow: 0 0 4px #666;
    width: 6px;
    height: 6px;
}

@keyframes explode {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(var(--tx), var(--ty)) scale(0);
        opacity: 0;
    }
}

/* Floating score text */
.floating-score {
    position: fixed;
    font-size: 24px;
    font-weight: bold;
    color: #ffd700;
    text-shadow:
            0 0 10px #ff6b00,
            0 0 20px #ff6b00,
            2px 2px 4px rgba(0, 0, 0, 0.5);
    pointer-events: none;
    z-index: 1001;
    animation: floatUp 1s ease-out forwards;
    transform: translate(-50%, -50%);
    font-family: 'Arial Black', sans-serif;
}

/* Already found text - gray and smaller */
.floating-score.already-found {
    font-size: 16px;
    color: #888;
    text-shadow:
            0 0 5px #555,
            1px 1px 2px rgba(0, 0, 0, 0.5);
}

@keyframes floatUp {
    0% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(0.5);
    }
    20% {
        transform: translate(-50%, -50%) scale(1.2);
    }
    40% {
        transform: translate(-50%, -60%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -150%) scale(0.8);
    }
}

/* Cell flash when word is found */
.cell.word-flash {
    animation: cellFlash 0.5s ease-out;
}

@keyframes cellFlash {
    0% {
        background: #ffd700 !important;
        box-shadow: 0 0 20px #ffd700, inset 0 0 10px rgba(255, 255, 255, 0.8);
        transform: scale(1.1);
    }
    50% {
        background: #ffec8b !important;
        box-shadow: 0 0 15px #ffa500;
    }
    100% {
        transform: scale(1);
    }
}

/* Cell flash for duplicate/already found - muted gray */
.cell.word-flash-duplicate {
    animation: cellFlashDuplicate 0.4s ease-out;
}

@keyframes cellFlashDuplicate {
    0% {
        background: #777 !important;
        box-shadow: 0 0 10px #555;
        transform: scale(1.05);
    }
    50% {
        background: #999 !important;
    }
    100% {
        transform: scale(1);
    }
}