/* A readable exchange sits above the piles; animation never owns game state. */
.action-banner{position:sticky;top:6px;z-index:12;display:grid;gap:3px;text-align:center;max-width:1000px;margin:0 auto 12px;padding:10px 20px;border:1px solid #e3ba65;border-radius:9px;background:#23170ff5;color:#ffe4a6;box-shadow:0 4px 12px #0008;min-height:45px;font-size:15px;line-height:1.4}.action-banner span{font-size:13px;color:#fff0d1}.has-exchange .ship-arena{grid-template-rows:132px 170px 170px}.exchange-stage{display:flex;justify-content:center;align-items:center;gap:13px;min-height:132px;width:100%;margin-top:8px;padding:6px 0;border-bottom:1px solid #6c481c44}.exchange-attack{width:82px;flex:0 0 82px;text-align:center;line-height:1.15}.exchange-attack img,.exchange-defense img{display:block;width:100%;aspect-ratio:650/910;object-fit:contain;border-radius:5px;box-shadow:0 3px 7px #321b0977}.exchange-attack span{font-size:10px;font-weight:bold}.exchange-context{display:grid;gap:5px;max-width:250px;line-height:1.35}.exchange-context strong{font:700 16px Georgia,serif}.exchange-context span{font-size:12px;text-transform:uppercase;letter-spacing:1px}.exchange-context small{font-size:12px}.exchange-defense{width:70px;flex:0 0 70px}.card-arriving{visibility:hidden}.flying-card{position:fixed;z-index:90;pointer-events:none;border-radius:7px;object-fit:contain;filter:drop-shadow(0 8px 12px #0008);transform-origin:center;will-change:transform}.ship-player.exchange-attacker{outline:2px solid #eaaa43;outline-offset:3px;border-radius:8px}.ship-player.exchange-target{outline:3px solid #8dd7dc;outline-offset:3px;border-radius:8px}.captains-hand.exchange-target .your-treasure{outline:3px solid #8dd7dc;outline-offset:2px}.captains-hand.exchange-attacker .your-treasure{outline:2px solid #eaaa43;outline-offset:2px}.defense-treasure{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#302014;color:#ffe19b;border:2px solid #cda452;border-radius:8px;padding:12px 15px;margin:0 0 18px;box-shadow:0 3px 9px #0004}.defense-treasure strong{font-size:22px}.defense-treasure small{font-size:13px}.defense-treasure span{font-size:13px}.table-move{padding-top:5px}.table-move strong{overflow-wrap:anywhere}.ship-table .table-center{padding-top:8px;padding-bottom:4px}
@media(min-width:1500px) and (min-height:900px){.has-exchange .ship-arena{grid-template-rows:155px 180px 180px}}
@media(max-width:1050px) and (min-width:701px){.has-exchange .ship-arena{grid-template-rows:120px 175px 175px}.exchange-context strong{font-size:14px}.exchange-context{max-width:160px}.exchange-stage{gap:8px}}
@media(max-height:720px) and (min-width:701px){.has-exchange .ship-arena{grid-template-rows:108px 162px 162px}}
@media(max-width:700px){.action-banner{top:4px;font-size:13px;padding:8px 10px;margin-bottom:10px}.action-banner span{font-size:12px}.exchange-stage{min-height:124px;gap:10px;margin-top:4px}.exchange-attack{width:70px;flex-basis:70px}.exchange-context{max-width:190px}.exchange-context strong{font-size:14px}.exchange-context small{font-size:11px}.exchange-defense{width:60px;flex-basis:60px}.defense-treasure{padding:10px;gap:7px}.defense-treasure strong{font-size:20px}.defense-treasure span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.flying-card{display:none}}
.reduced-motion .flying-card{display:none}
/* Face-down fans identify each bot's hand without revealing a single card. */
.opponent-hand{position:absolute;z-index:4;right:10%;top:12%;width:32px;height:43px;pointer-events:none}.opponent-hand i{position:absolute;inset:0;border:1px solid #e4c17a;border-radius:3px;background:radial-gradient(ellipse,#833226,#431510);box-shadow:0 2px 3px #0007;transform-origin:50% 95%;transform:rotate(-20deg)}.opponent-hand i:nth-child(2){transform:rotate(0deg)}.opponent-hand i:nth-child(3){transform:rotate(20deg);display:grid;place-items:center}.opponent-hand img{width:22px;height:22px;object-fit:contain;filter:sepia(1)}
@media(max-width:700px){.opponent-hand{right:auto;left:24px;top:18px;width:18px;height:26px}.opponent-hand img{width:13px;height:13px}}

.defense-treasure strong{white-space:nowrap;flex-shrink:0}.defense-treasure span{white-space:nowrap}

/* Coins slide along the actual public payment path, after the response reveal. */
.flying-coin{position:fixed;z-index:95;width:38px;height:38px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px #402000aa);will-change:transform,opacity}.coin-edge-anchor{position:fixed;z-index:94;transform:translate(-50%,-50%);max-width:42vw;padding:9px 13px;border:1px solid #edc56d;border-radius:18px;background:#302015f5;box-shadow:0 3px 12px #0007;color:#ffe6a3;font-size:12px;font-weight:bold;text-align:center;pointer-events:none}.gold-route{font-weight:bold!important;color:#ffe099!important;letter-spacing:.3px}.gold-received{outline:2px solid #ffe391!important;outline-offset:3px;box-shadow:0 0 18px #ffd45b99!important}.ship-player.eliminated.exchange-target,.ship-player.eliminated.exchange-attacker{opacity:.85}
@media(prefers-reduced-motion:reduce){.flying-coin,.coin-edge-anchor{display:none}}
.reduced-motion .flying-coin,.reduced-motion .coin-edge-anchor{display:none}
