/* Individual transforms leave card hover lifts and opponent poses intact. */
.board[data-feedback="ready"] .crew-card{transform-origin:50% 80%}
.board[data-feedback="ready"] .crew-card::after{content:"";position:absolute;inset:-1px;border:1px solid #ffe4a3;border-radius:inherit;box-shadow:0 0 0 2px #e4b76440;opacity:0;pointer-events:none;transition:opacity 180ms ease}
.board[data-feedback="ready"] .crew-card.is-activating::after{opacity:1}
.board[data-feedback="ready"] .card-spark{z-index:2;transform:translate(-50%,0);font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #152039,0 0 10px #152039}
.board[data-feedback="ready"] .crew-card.activated .card-spark{animation:none}
.enemy-portrait{transform-origin:50% 85%}
#output,#demand-left{transform-origin:50% 65%}

@media(prefers-reduced-motion:no-preference){
  #report[open] .result-stamp{animation:shift-stamp 240ms cubic-bezier(.2,.75,.25,1) 90ms both}
  #report[open] .report-opponent{animation:shift-portrait 280ms cubic-bezier(.2,.75,.25,1) both}
}
@keyframes shift-stamp{from{opacity:0;scale:1.12}to{opacity:1;scale:1}}
@keyframes shift-portrait{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){
  .board[data-feedback="ready"] .crew-card::after{transition:none}
  .board[data-feedback="ready"] .crew-card.is-activating .card-spark{opacity:1;transform:translate(-50%,0)}
}
