/* Canonical Gwyddbwyll board interaction states. */
.game-board--animating { cursor: wait; }

/* A selected counter keeps its physical size; selection is an outline only. */
.game-cell--selected .game-piece {
  transform: translate(-50%, -50%);
  transition: none;
}

/* A legal origin is softly tinted before a counter is selected. */
.game-cell--selectable:not(.game-cell--selected) {
  background: color-mix(in srgb, var(--game-selection) 42%, transparent);
}

/* Empty destinations use the shared counter-sized circular outline. */
.game-cell--legal:not(:has(.game-piece))::after {
  width: var(--game-piece-size);
  border: 1.5px solid color-mix(in srgb, var(--game-legal-move) 50%, transparent);
  border-radius: 50%;
  background: transparent;
  opacity: 1;
}

/* Capturing an occupied counter keeps it visible inside a restrained target mark. */
.game-cell--legal:has(.game-piece) {
  background: color-mix(in srgb, var(--game-selection) 52%, transparent);
  box-shadow: inset 0 0 0 2px var(--game-legal-move);
}

.game-cell--moving-source .game-piece { visibility: hidden; }
.movement-token { transform: translate(-50%, -50%); transition: none; }
