.battle-theater{margin:16px 20px 0;padding:14px 18px;border:1px solid #8e784b;border-radius:10px;background:linear-gradient(110deg,#2a352e,#182e34);min-height:138px}.battle-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.battle-heading>span{font-weight:700;color:var(--gold)}.battle-heading label{font-size:11px;color:var(--muted)}.battle-heading select{padding:5px 8px;font-size:12px}.battle-theater p{margin:8px 0;font-size:14px;min-height:24px}.playback{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.playback button{font-size:11px;padding:7px 10px;min-height:36px}.playback span{font-variant-numeric:tabular-nums;font-size:11px;color:var(--gold);margin-left:auto}.unit{overflow:visible;transition:box-shadow .2s;touch-action:manipulation}.unit.acting{z-index:2;outline:2px solid #ffdc88;box-shadow:0 0 24px #e5bc7288;animation:attackPulse .65s ease-in-out}.unit.receiving{outline:2px solid #f78070;box-shadow:0 0 22px #e65a5966;animation:hitShake .4s}.damage-pop{position:absolute;left:50%;top:16px;z-index:5;font-size:28px!important;font-weight:900;color:#ffe5df;text-shadow:0 2px 4px #7e1717;animation:damageFloat .8s both;pointer-events:none}.fort-hit{animation:hitShake .4s;box-shadow:0 0 28px #ef8a6166}.card-detail{margin:12px 20px;padding:14px;display:flex;gap:15px;border:1px solid var(--gold);border-radius:10px;background:#22363c}.card-detail[hidden]{display:none}.card-detail>img{width:100px;object-fit:contain;align-self:start}.card-detail p{font-size:12px;margin:6px 0}.card-detail button{min-height:44px}.army.player{justify-content:unsafe flex-end}.army{scrollbar-width:thin;min-width:0}.card,.bridge,.primary{touch-action:manipulation}.unit:focus-visible{outline:3px solid white}.primary{min-height:46px}.unit img{pointer-events:none}#battleText{overflow-wrap:anywhere}select{min-height:38px}
@keyframes attackPulse{0%,100%{transform:translateY(0)}45%{transform:translateY(-9px) scale(1.05)}}@keyframes hitShake{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}@keyframes damageFloat{from{opacity:0;transform:translate(-50%,15px) scale(.6)}30%{opacity:1;transform:translate(-50%,-5px) scale(1.15)}to{opacity:1;transform:translate(-50%,-20px) scale(1)}}
@media(max-width:700px){body{overflow-x:hidden}header{padding:10px 12px;gap:8px}header small{font-size:8px}h1{font-size:17px}nav{gap:5px}nav button{min-height:40px;padding:7px 9px}main{padding:10px 8px calc(285px + env(safe-area-inset-bottom))}.top{margin-bottom:10px}.top>div{display:none}.top label{margin:0;max-width:none;font-size:10px;line-height:2.2}.top select{font-size:12px;padding:5px 8px}.status{padding:10px;grid-template-columns:1fr 78px 1fr}.status h3{font-size:12px;margin:0 0 4px}.status small{font-size:8px;letter-spacing:0}.turn b{font-size:12px}.sides{padding:7px 12px 0}.battle-theater{margin:8px 6px 0;padding:9px 10px;min-height:132px}.battle-theater p{font-size:12px;line-height:1.5;min-height:36px}.battle-heading>span{font-size:12px}.battle-heading select{min-height:32px;font-size:11px}.playback{gap:5px}.playback button{font-size:10px;padding:5px 7px;min-height:34px}.lane{min-height:150px;margin:8px 5px;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr)}.army{padding:7px 5px;gap:5px;scroll-snap-type:x proximity}.army.player{justify-content:flex-start;flex-direction:row-reverse}.unit{width:75px;min-height:128px;scroll-snap-align:center;padding:3px;min-width:75px}.unit img{width:65px;height:74px}.unit b{font-size:10px}.unit em{max-width:67px;font-size:8px}.unit small{font-size:10px}.bridge span{font-size:27px}.empty{font-size:10px}.controls{position:fixed;bottom:0;left:0;right:0;z-index:12;min-height:66px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#152a31f5;border-top:1px solid #74877b;box-shadow:0 -5px 20px #0005;gap:8px}.controls p{font-size:10px;max-width:52%;line-height:1.4;margin:0}.controls .primary{font-size:12px;padding:10px 12px;flex-shrink:0}.hand-section{position:fixed;bottom:calc(65px + env(safe-area-inset-bottom));left:0;right:0;z-index:11;height:210px;background:#14252bf7;border-top:1px solid #45606a;padding:7px 10px 0;box-shadow:0 -10px 25px #0004}.section-title{margin:0}.section-title h3{font-size:13px}.section-title span{font-size:13px}.hand-section>.muted{font-size:9px;margin:3px 0}.hand{height:162px;min-height:0;padding:7px 2px;gap:7px;scroll-snap-type:x mandatory;align-items:stretch}.card{flex:0 0 84px;min-height:0;padding:3px;scroll-snap-align:start;border-radius:6px}.original-art{height:101px;object-fit:cover;object-position:top}.card h3{font-size:10px;margin:2px 0}.card small{font-size:8px}.card p{font-size:8px;line-height:1.3;margin:2px 0;min-height:0}.card.selected{transform:translateY(-4px);box-shadow:0 0 15px #e5bc7244}.fort p{font-size:8px}.card-detail{margin:8px 6px;padding:10px;gap:10px}.card-detail>img{width:80px}.card-detail p{font-size:11px}.bottom{padding:5px 8px;margin-top:12px}dialog{width:calc(100% - 24px);padding:20px;max-height:85dvh}dialog li,dialog p{font-size:12px}.battle-heading{gap:4px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
.game-settings{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:390px}.game-settings label{font-size:11px;color:var(--muted)}.game-settings select{margin:0;padding:7px;font-size:12px}.game-settings small{width:100%;letter-spacing:0}.army.player{justify-content:flex-end}@media(max-width:700px){.game-settings{gap:6px;max-width:none;flex-wrap:nowrap}.game-settings small{display:none}.game-settings label{font-size:10px}.game-settings select{font-size:11px;min-height:36px;padding:5px}.sides{display:none}.status{padding:8px}.battle-theater{min-height:0}.lane{min-height:140px}.unit{min-height:122px}.hand-section{height:200px}.hand{height:154px}.army.player{justify-content:flex-start;flex-direction:row-reverse}.controls p{max-width:48%}}
@media(max-width:700px){.top>.game-settings{display:flex}header>div{min-width:0}header small{letter-spacing:.6px}header h1{font-size:15px}nav{flex-shrink:0}nav button{font-size:10px;padding:6px 7px}.arena{overflow:clip}.battle-theater{position:sticky;top:0;z-index:5;background:#203333}.original-art{max-width:100%}}
.mini-stats{display:block;font-size:11px;color:#e7dcbb}@media(max-width:700px){.hand{overflow-y:hidden}.card{max-height:140px;overflow:hidden}.original-art{height:76px}.card h3{font-size:10px;line-height:14px}.card small{font-size:8px;line-height:12px;display:block}.mini-stats{font-size:10px;line-height:12px}.card p{font-size:8px;line-height:10px}.fort .original-art{height:96px}}
#fxLayer{position:fixed;inset:0;pointer-events:none;z-index:25;filter:drop-shadow(0 0 6px #ffbb39);animation:beam .7s both}#fxLayer line{animation:flow .6s linear infinite}.arena{overflow:clip}.battle-theater{position:sticky;top:6px;z-index:5;background:#203333}.unit{scroll-margin-top:170px}@keyframes flow{to{stroke-dashoffset:-28}}@keyframes beam{0%{opacity:0}25%,80%{opacity:.95}100%{opacity:.35}}@media(max-width:700px){.unit{scroll-margin-top:150px;scroll-margin-bottom:280px}.battle-theater{top:0}}

.pack-badge{width:100%;padding:7px 10px;border:1px solid #52675d;border-radius:7px;font-size:11px;color:#a9bab5;background:#22342d}.pack-badge b{margin-left:8px;color:var(--gold)}.pack-badge span{margin-left:10px;font-size:10px}@media(max-width:700px){.game-settings{flex-wrap:wrap}.pack-badge{padding:4px 8px;font-size:10px}.pack-badge span{font-size:9px}}

#draftModal{width:min(880px,96vw);max-width:880px}#draftModal>button{width:auto;margin:10px 8px 0 0;min-height:44px}.draft-offers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.draft-card{min-width:0;padding:5px;background:#22363d;border:1px solid #587178;border-radius:7px;display:grid;align-content:start;text-align:center}.draft-card img{width:100%;border-radius:4px}.draft-card b{font-size:12px}.draft-card small{font-size:10px;letter-spacing:0}.draft-card p{font-size:10px;margin:4px 0}.draft-picked{display:flex;gap:5px;overflow-x:auto}.draft-picked .draft-card{flex:0 0 75px}.draft-picked .draft-card img{height:85px;object-fit:cover;object-position:top}.draft-picked .draft-card p{display:none}#draftStatus{color:var(--gold);font-weight:bold}@media(max-width:700px){#draftModal{padding:14px}.draft-offers{grid-template-columns:repeat(2,minmax(0,1fr))}.draft-offers img{height:150px;object-fit:contain}.draft-card p{font-size:9px}.draft-picked .draft-card{flex-basis:64px}.game-settings{flex-wrap:wrap}}
