/* Short, transform/opacity-only presentation feedback. No game-state timers. */
@media (prefers-reduced-motion: no-preference) {
  button { transition: transform var(--motion-fast) var(--ease-out); }
  .card-cell:not(:disabled):hover { transform: translateY(-2px) scale(1.02); }
  .card-cell:not(:disabled):active { transform: scale(.97); }
  .card-cell.called .cell-check { animation: dauber-stamp var(--motion-stamp) var(--ease-out); }
  .card-cell.called::after { content: ''; position: absolute; inset: 6px; border: var(--border-control) solid var(--brand-ink); border-radius: 50%; pointer-events: none; animation: stamp-ring var(--motion-stamp) var(--ease-out) both; }
  .score-letters .lit, .called-board .latest { animation: tile-pop 180ms var(--ease-out); }
  .play-mat.my-turn::before { animation: turn-pulse 280ms var(--ease-out); }
  .game-status[data-turn="p1"] { animation: turn-in-one var(--motion-turn) var(--ease-out); }
  .game-status[data-turn="p2"] { animation: turn-in-two var(--motion-turn) var(--ease-out); }
  .confetti span { animation: confetti-fall var(--motion-stamp) var(--ease-out) both; animation-delay: calc(var(--i) * 3ms); }
}
@keyframes dauber-stamp { from { transform: scale(1.8); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes stamp-ring { from { transform: scale(.5); opacity: .8; } to { transform: scale(1.15); opacity: 0; } }
@keyframes tile-pop { from { transform: rotateX(45deg) scale(.8); opacity: .5; } to { transform: rotateX(0) scale(1); opacity: 1; } }
@keyframes turn-pulse { 50% { transform: scale(1.015); opacity: .5; } }
@keyframes turn-in-one { from { transform: translateY(-6px); opacity: .4; } to { transform: translateY(0); opacity: 1; } }
@keyframes turn-in-two { from { transform: translateY(-6px); opacity: .4; } to { transform: translateY(0); opacity: 1; } }
@keyframes confetti-fall { from { transform: translateY(-20px) rotate(0); opacity: 1; } to { transform: translateY(190px) rotate(270deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  button:hover:not(:disabled), button:active:not(:disabled) { transform: none; }
}
