/* Flight ghosts never change card layout or intercept input. */
#gameStage .play-flight-layer { position: fixed; inset: 0; z-index: 300; pointer-events: none; overflow: visible; }
#gameStage .play-flight { position: absolute; transform-origin: top left; pointer-events: none; will-change: transform; }
#gameStage .play-flight .play-flight-card { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; transform: none !important; transition: none !important; animation: none !important; pointer-events: none !important; }
#gameStage #playerHand > .card { transition: transform 140ms cubic-bezier(.22,.8,.24,1), box-shadow 110ms, filter 70ms !important; }
#gameStage #playerHand > .card:first-child { margin-left: 0 !important; }
#gameStage #playerHand > .card.pressing { filter: brightness(1.08) !important; }
/* Reserve space above the cards: horizontal scrolling must not clip a selection. */
#gameStage .hand-scroll { box-sizing: border-box; height: calc(100% + 32px) !important; margin-top: -32px; padding-top: 32px; overflow-x: auto !important; overscroll-behavior-x: contain; scrollbar-width: none; }
#gameStage .hand-scroll::-webkit-scrollbar { display: none; }
@media (prefers-reduced-motion: reduce) {
  #gameStage #playerHand > .card { transition: none !important; }
  #gameStage .play-flight-layer { display: none; }
}
