/* Game icons (js/game-art.js): small motions on hover / focus / tap, always on in .ga-live (intro screen) */
.game-art { display: block; width: 100%; height: auto; overflow: visible; filter: drop-shadow(0 6px 10px rgba(107, 34, 22, .18)); transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
/* Only the animated parts turn and scale around their own centre */
.game-art [class*="ga-"] { transform-box: fill-box; transform-origin: center; }
:is(a, button):is(:hover, :focus-visible, :active) .game-art, .game-art.ga-live { transform: translateY(-3px) rotate(-3deg) scale(1.04); }
@media (prefers-reduced-motion: no-preference) {
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-beam, .ga-live .ga-beam { animation: ga-beam 1.6s ease-in-out infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-rays, .ga-live .ga-rays { animation: ga-spin 6s linear infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-spark, .ga-live .ga-spark { animation: ga-spark 1.2s ease-in-out infinite; }
  .ga-live .ga-spark2, :is(a, button):hover .game-art .ga-spark2 { animation-delay: .5s; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-ring, .ga-live .ga-ring { animation: ga-ring 1.6s ease-out infinite; }
  .ga-live .ga-ring2, :is(a, button):hover .game-art .ga-ring2 { animation-delay: .8s; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art :is(.ga-heart-l, .ga-heart-r), .ga-live :is(.ga-heart-l, .ga-heart-r) { animation: ga-beat .8s ease-in-out infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-eyes, .ga-live .ga-eyes { animation: ga-look 1.8s steps(1) infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-rec, .ga-live .ga-rec { animation: ga-blink 1s steps(1) infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-cap, .ga-live .ga-cap { animation: ga-toss 1.4s cubic-bezier(.3, 0, .3, 1) infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-confetti, .ga-live .ga-confetti { animation: ga-spark 1.4s ease-in-out infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-slide, .ga-live .ga-slide { animation: ga-slide 1.8s cubic-bezier(.34, 1.56, .64, 1) infinite; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-float, .ga-live .ga-float { animation: ga-float 1.6s ease-out infinite; }
  .ga-live .ga-float2, :is(a, button):hover .game-art .ga-float2 { animation-delay: .7s; }
  :is(a, button):is(:hover, :focus-visible, :active) .game-art .ga-flash, .ga-live .ga-flash { animation: ga-flash 1.4s ease-out infinite; }
}
@keyframes ga-spin { to { transform: rotate(360deg); } }
@keyframes ga-beam { 50% { opacity: .45; } }
@keyframes ga-spark { 50% { transform: scale(1.5) rotate(45deg); opacity: .6; } }
@keyframes ga-ring { from { transform: scale(.6); opacity: .6; } to { transform: scale(1.25); opacity: 0; } }
@keyframes ga-beat { 15% { transform: scale(1.14); } 30% { transform: scale(1); } }
@keyframes ga-look { 50% { transform: translateX(-6px); } }
@keyframes ga-blink { 50% { opacity: 0; } }
@keyframes ga-toss { 0%, 100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(-4px, -14px) rotate(-14deg); } }
@keyframes ga-slide { 0% { transform: translate(-30px, 14px) rotate(-12deg); opacity: .4; } 45%, 100% { transform: none; opacity: 1; } }
@keyframes ga-float { from { transform: translateY(8px); opacity: 0; } 30% { opacity: 1; } to { transform: translateY(-18px); opacity: 0; } }
@keyframes ga-flash { 0% { transform: scale(.3); opacity: 0; } 20% { opacity: 1; } 100% { transform: scale(1.3) rotate(30deg); opacity: 0; } }
