game/2d/ui/gridcellflash.razor.scss
root {
    position: absolute;
    pointer-events: none;
    border-radius: 14px;
    z-index: 8;
}

root.flash-direct       { animation: flash-origin-direct 0.6s ease-out forwards; }
root.flash-chain        { animation: flash-origin-chain  0.6s ease-out forwards; }
root.flash-blast-direct { animation: flash-blast-direct  0.5s ease-out forwards; }
root.flash-blast-chain  { animation: flash-blast-chain   0.5s ease-out forwards; }

@keyframes flash-origin-direct {
    0%   { background-color: rgba(251,191,36,0.9);  border: 3px solid #fbbf24; transform: scale(1.12); }
    40%  { background-color: rgba(251,191,36,0.5);  transform: scale(1.04); }
    100% { background-color: transparent; border-color: transparent; transform: scale(1.0); }
}
@keyframes flash-origin-chain {
    0%   { background-color: rgba(196,181,253,0.9); border: 3px solid #c4b5fd; transform: scale(1.12); }
    40%  { background-color: rgba(196,181,253,0.5); transform: scale(1.04); }
    100% { background-color: transparent; border-color: transparent; transform: scale(1.0); }
}
@keyframes flash-blast-direct {
    0%   { background-color: rgba(251,191,36,0.3); border: 1px solid rgba(251,191,36,0.5); }
    100% { background-color: transparent; border-color: transparent; }
}
@keyframes flash-blast-chain {
    0%   { background-color: rgba(196,181,253,0.3); border: 1px solid rgba(196,181,253,0.5); }
    100% { background-color: transparent; border-color: transparent; }
}