/* 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)}
}

/* The selected helper keeps a visible destination; a short link confirms work. */
.board[data-feedback="ready"] .crew-card.is-support-target{outline:2px dashed #a7dfcc;outline-offset:3px}
.board[data-feedback="ready"] .crew-card.is-support-target .card-rank{background:#b6e2ce;color:#153f38;border-radius:2px;padding:0 3px}
.board[data-feedback="ready"] .crew-card.is-supported::after{opacity:1;border-color:#bbffe2;box-shadow:0 0 0 2px #8ce5c766}
.support-links{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}
.support-links path{fill:none;stroke:#baffdf;stroke-width:3;stroke-linecap:round;opacity:0}
@media(max-width:360px){.board[data-feedback="ready"] .crew-card.is-support-target{outline-offset:2px}.support-links path{stroke-width:2}}

/* Brass edges carry urgency without moving the table or covering controls. */
#timer[data-tension]{color:#ffe0a1;border-color:#d69c45;background:#5b391d;box-shadow:inset 0 0 0 1px #f7c86b55}
#timer[data-tension="urgent"]{color:#fff1cf;background:#75451f;outline:2px solid #e8b65e;outline-offset:2px}
.enemy[data-tension]{box-shadow:inset 3px 0 #b88036}
.enemy[data-tension="urgent"]{box-shadow:inset 5px 0 #e8b65e}
.board[data-feedback="ready"] .crew-card.is-hit::after{border-color:#fff0b4;box-shadow:0 0 0 3px #e4b76466}
.board[data-feedback="ready"] .crew-card.is-charging::after{border-color:#b2dcf3;box-shadow:0 0 0 2px #90cbe766}
.enemy-portrait{position:relative}
.enemy-portrait.is-hit{filter:drop-shadow(0 3px 5px #dfb45c55)}
.enemy-portrait.is-finishing{filter:drop-shadow(0 4px 9px #ffe1a488)}
.production-impact{position:absolute;right:8%;top:22%;z-index:3;opacity:0;pointer-events:none;font:900 clamp(22px,3vw,38px)/1 'Barlow Condensed',sans-serif;font-variant-numeric:tabular-nums;color:#fff0bd;text-shadow:0 2px 0 #312113,0 0 9px #312113;padding:3px 6px;border-radius:3px;background:#312113d9;max-width:85%;overflow:hidden;white-space:nowrap}
.production-impact.is-activating{opacity:1}
@media(prefers-reduced-motion:reduce){.production-impact.is-activating{opacity:1}.enemy-portrait.is-hit{outline:2px solid #e4b764;outline-offset:2px}}
