/* Full cards, woodland staging, and independent cosmetic presentation. */
.battle{max-width:1680px}.table{border-radius:18px;background:radial-gradient(ellipse at center,#52614180,#172920dc 80%);box-shadow:inset 0 0 70px #050e0dc9,0 15px 45px #0008;border:2px solid #9d8654;padding:14px 20px}.board{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:stretch}.board .card.unit{height:224px;min-height:224px;width:100%;padding:5px;display:flex;flex-direction:column;background:linear-gradient(135deg,#5a5137,#1e322b 55%,#111f1a);border:2px solid #aa9360;border-radius:10px;overflow:hidden}.board .unit .art{height:102px;flex:0 0 102px;width:100%;border-radius:6px}.board .unit strong{font-size:13px;line-height:1.1;min-height:29px;display:grid;place-items:center;padding:3px 0}.board .unit .card-text{font:11px/1.25 system-ui;min-height:40px;display:block;padding:2px;color:#efe5c9;flex:1}.unit-status{display:block;font:10px/1.2 system-ui;color:#b7d0c0;margin-top:3px}.board .unit .stats{font-size:17px;width:100%;margin-top:auto;padding:3px 6px;background:#10211cbf;border-radius:8px}.board .unit .cost{width:28px;height:28px;font-size:17px;background:#382c10 url('assets/fortune-ui/CardLayout_Frame_Cost_256x256.png') center/cover;border-color:#efd292;z-index:1}.board .empty-slot{height:246px;border:1px dashed #c5b99035;background:#11291d25;border-radius:12px;opacity:.55}.board .card.ready{border-color:#b3dfc0;box-shadow:0 0 12px #9edccc4a}.board .card[aria-pressed=true]{outline:3px solid #ffdf91;outline-offset:3px;box-shadow:0 0 22px #e9c15980}.board .card.guard{border-bottom:4px solid #dcc17a}.board .card:disabled{opacity:1}.board .card:disabled .art{filter:none}.inspect-card{font-size:11px;padding:4px}.board .inspect-card{border-radius:0 0 10px 10px}.enemy-staging{display:flex;align-items:center;gap:16px;margin-bottom:10px}.hero.enemy{margin:0;flex:1}.hero .portrait{width:64px;height:64px;flex:0 0 64px;display:grid;place-items:center;border:2px solid #c5a35e;border-radius:50%;background:#13221c;overflow:hidden}.opponent-portrait img{width:100%;height:100%;object-fit:cover}.portrait-fallback,.sleeve-fallback{display:none}.missing-art .portrait-fallback,.missing-art .sleeve-fallback{display:grid;place-items:center;height:100%;font-size:28px}.hero b{border:1px solid #b99558;border-radius:50% 50% 45% 45%;padding:8px 12px;background:linear-gradient(#693e32,#291c17);text-shadow:0 2px 2px black}.enemy-hand{display:flex;width:125px;padding-left:12px}.enemy-hand .sleeve{width:43px;height:59px;margin-left:-13px;transform:rotate(6deg)}.sleeve{position:relative;display:block;width:48px;height:65px;border:2px solid #c3a364;border-radius:5px;background:radial-gradient(#476156,#162820);overflow:hidden;box-shadow:0 2px 5px #0008;float:none}.sleeve img{width:100%;height:100%;object-fit:cover}.deck-stack{position:relative;flex:0 0 63px;text-align:center;filter:drop-shadow(2px 3px 2px #0009)}.deck-stack .sleeve{margin:auto;box-shadow:3px 3px #675a3c,5px 5px #16221b,7px 7px #675a3c}.deck-stack b{position:absolute;top:41px;right:0;border-radius:50%;padding:4px 7px;background:#10241c;border:1px solid #d3b576;font:14px Georgia;color:white}.deck-stack small{font:8px system-ui;letter-spacing:.7px;display:block;margin-top:9px;color:#dfcfa7}.deck-stack.exhausted .sleeve{opacity:.25}.turn-line{border-color:#c7b4775e;margin:10px 0;padding:10px 0}.turn-message{font-size:12px;letter-spacing:2px}.player-row{gap:14px;margin-top:10px}.player-row .hero{min-width:0;flex:1}.player-row .gold{border-radius:50%;background:radial-gradient(#80632375,#15251be0);border:1px solid #aa914d;padding:6px 13px}.battle-journal{max-height:720px;overflow:auto;background:#17251be0}.battle-journal ol{line-height:1.5}.hand .card{min-height:220px}.hand .card-wrap{flex-basis:155px}.hand .art{height:95px}.hand .card-text{font:11px/1.3 system-ui}.hand{padding-top:8px;scrollbar-width:thin}.moving-card{position:fixed;z-index:100;pointer-events:none;transform-origin:top left}.moving-card>.card,.moving-card>.sleeve,.moving-card>.card-wrap{width:100%;height:100%;margin:0}.moving-card .inspect-card{display:none}.moving-card .card{pointer-events:none;min-height:0}.event-banner{position:fixed;left:25%;right:25%;top:42%;z-index:101;background:linear-gradient(90deg,transparent,#10281af5 20%,#10281af5 80%,transparent);border-block:1px solid #e0c188;text-align:center;padding:22px;font:28px Georgia;color:#f4dfb2;pointer-events:none;text-shadow:0 2px 3px black}.impact-target{outline:3px solid #ffcb82;box-shadow:0 0 25px #ff9b55}.combat-number{z-index:102}.result{animation:result-arrive .55s ease-out}@keyframes result-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}#card-sleeve{background:#22362a;color:#f2e2bd;padding:10px;border:1px solid #ad915c;max-width:180px}[hidden]{display:none!important}
@media(max-width:1450px){.battle-grid{grid-template-columns:minmax(0,1fr)}.battle-journal{display:block;margin-top:8px;max-height:170px}.battle-journal h3,.battle-journal>p,.battle-journal>.eyebrow{display:none}.battle-journal h4{margin:0 0 5px}.battle-journal ol{margin:0;display:flex;flex-wrap:wrap;gap:4px 26px;font-size:11px}.battle{padding:10px 20px}.board .card.unit{height:210px;min-height:210px}.board .unit .art{height:88px;flex-basis:88px}.board .empty-slot{height:233px}.hand .card-wrap{flex-basis:145px}}
@media(max-width:700px){.battle{padding:10px;max-width:100vw}.table{padding:10px 8px}.board{grid-template-columns:repeat(6,138px);gap:9px;overflow-x:auto;padding:5px 4px 10px}.board .unit .art{height:90px;flex-basis:90px}.board .card.unit{height:222px;min-height:222px}.board .empty-slot{height:245px}.hero .portrait{width:44px;height:44px;flex-basis:44px}.hero b{font-size:18px;padding:7px}.hero strong{font-size:12px}.hero small{font-size:9px}.enemy-staging{gap:9px}.enemy-hand{display:none}.deck-stack{flex-basis:43px}.deck-stack .sleeve{width:35px;height:48px}.deck-stack b{top:29px;font-size:11px;padding:2px 5px}.deck-stack small{font-size:7px}.player-row{flex-wrap:wrap;gap:8px}.player-row .hero{flex:1;max-width:100%}.player-row #end-turn{flex:1}.player-row .gold{margin-left:50px}.battle-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.battle-actions button{font-size:10px;padding:6px}.battle-heading{gap:8px}.battle-heading h2{font-size:18px}.turn-line span:last-child{display:none}.event-banner{left:0;right:0;font-size:23px}.battle-journal{display:block}.hand .card-wrap{flex-basis:145px}.hint{font-size:12px}.hand-label{font-size:8px}.setting-row{gap:8px}#card-sleeve{max-width:140px}}
@media(prefers-reduced-motion:reduce){.result{animation:none}.moving-card,.event-banner{animation:none}.combat-number{animation:none}}
/* Preserve portrait proportions and keep the full board compact on desktop. */
@media(min-width:701px){.board{grid-template-columns:repeat(6,minmax(0,165px));justify-content:center}.board .card.unit{height:200px;min-height:200px}.board .unit .art{height:78px;flex-basis:78px}.board .unit strong{font-size:12px}.board .empty-slot{height:222px}.hero .portrait{width:46px;height:46px;flex-basis:46px}.hero{padding:5px 12px}.enemy-staging{margin-bottom:7px}.player-row{display:flex;margin-top:7px}.turn-line{margin:6px 0;padding:7px 0}.deck-stack .sleeve{height:51px;width:38px}.deck-stack b{top:29px}.deck-stack small{margin-top:7px}.hand .card{min-height:196px}.hand .art{height:78px}.table{padding:10px 15px}.enemy-hand .sleeve{height:48px;width:35px}.hero b{font-size:24px}.hero strong{font-size:15px}}
@media(max-width:700px){.player-row{display:flex}.player-row>.hero{flex:1 1 calc(100% - 65px)}.player-row>.gold{margin-left:50px;flex:0 0 78px}.player-row>#end-turn{flex:1 1 100px}.player-row .hero small{font-size:9px}.player-row .hero strong{font-size:12px}.battle-actions{flex-direction:row}.battle-journal ol{display:block}.hero b{flex-shrink:0}}
.sleeve[data-sleeve=fortune] img{width:140%;max-width:none;transform:translateX(-20%);object-fit:fill}
.premium-card[data-variant="albion:william-gold"] .premium-art{height:auto;aspect-ratio:2/3;border-radius:4px}.premium-card[data-variant="albion:william-gold"] .premium-art img{object-fit:contain}

body[data-screen=battle] .forest{background:linear-gradient(#151b189e,#101814b8),var(--saga-battle-background,url("assets/backgrounds/oakfield_battle.png")) center/cover}


.moving-card .card{width:100%;height:100%;overflow:hidden}
