.companyList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.companyCard{min-width:0}.companyHead{display:flex;gap:18px;align-items:center}.companyHead>img{width:70px;height:100px;object-fit:contain}.companyHead h3 small{font-size:13px;color:#fce097}.companyHead label{font-size:14px}.companyHead input{width:18px;height:18px;vertical-align:middle;accent-color:#849eff}.companyBudget{font-size:13px;margin:8px 0;color:#a0e1ff}.overBudget,.casualtyWarning{color:#ffc69f}.overBudget{font-weight:bold;color:#ff9393}.leaderTrait{border-block:1px solid #586699;padding:12px 0;margin-top:15px;font-size:13px;color:#e6d6a8}.companyRank{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rankLabel{font-size:12px;color:#bacbf5;margin-top:12px}.memberSlot{min-width:0;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 80%,#6072a84a,transparent 70%);border-bottom:1px solid #6672a8;padding:5px 0 10px}.memberSlot>img{width:100%;height:100px;object-fit:contain;filter:drop-shadow(0 7px 4px #000a)}.memberSlot select{width:100%;font-size:11px;padding:6px 2px}.emptyMember{height:100px;display:grid;place-items:center;font-size:35px;color:#6d7bb6}.companyCard>label{display:flex;flex-direction:column;gap:6px;margin-top:18px;font-size:13px}.companyCard>.subtle{font-size:12px;margin:10px 0 0}.soldierList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.soldierCard{display:flex;gap:15px;align-items:center;min-width:0}.soldierCard>img{width:75px;height:125px;object-fit:contain}.soldierCard h3{font-size:15px;overflow-wrap:anywhere}.soldierCard p{font-size:12px}.soldierCard button{font-size:13px}.fallenLog{margin-top:20px}.fallenLog p{font-size:12px;margin:8px 0}.fieldMembers{display:flex;flex-direction:column;grid-column:1/-1;gap:5px;margin:8px 0 12px}.fieldMembers>div{display:flex;gap:8px;align-items:center;font-size:12px}.fieldMembers img{height:45px;width:30px;object-fit:contain}.fieldMembers small{display:block;color:#b4c9ef;font-size:10px}.fieldMembers .fallen{opacity:.4}.encounter{position:fixed;inset:0;z-index:1000;background:#030619;display:flex;flex-direction:column;isolation:isolate;overflow:hidden;user-select:none;-webkit-user-select:none}.encounterTop{padding:18px 25px;display:flex;align-items:center;justify-content:space-between;background:#07085e;border-bottom:3px solid #fff;gap:12px}.encounterTop h2{font-size:22px;margin:0}.encounterTop h2 span{color:#d7bd79;font-size:15px;margin:0 15px}.encounterTop button{font-size:13px}.encounterTop>div{display:flex;flex-shrink:0}.encounterArena{position:relative;flex:1;min-height:250px;background:linear-gradient(#03061920,#020315aa),url('assets/battle-plain-v36.webp') center 60%/cover;perspective:900px}.encounterArena:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#142524ac);pointer-events:none;z-index:-1}.duelTeam{position:absolute;top:0;bottom:0;width:48%;}.team0{left:0}.team1{right:0}.duelFighter{position:absolute;top:calc(15% + var(--lane)*23%);width:32%;height:31%;left:calc(53% - var(--rank)*38%);z-index:calc(10 + var(--lane));transition:filter .15s,opacity .2s}.team1 .duelFighter{left:auto;right:calc(53% - var(--rank)*38%)}.fighterArt{height:100%;position:relative;transform-origin:50% 90%;animation:none;filter:drop-shadow(0 10px 4px #000a)}.fighterArt:after{content:'';position:absolute;bottom:4%;left:10%;width:80%;height:10%;background:#0607198c;border-radius:50%;z-index:-1}.fighterArt img{width:100%;height:100%;object-fit:contain}.team1 .fighterArt img{transform:scaleX(-1)}.fighterStatus{position:absolute;bottom:-14px;left:-10%;width:120%;font-size:11px;text-align:center;text-shadow:1px 2px #000;pointer-events:none;line-height:1.3}.fighterStatus span{display:block}.fighterStatus progress{display:block;width:85%;margin:3px auto;height:6px;accent-color:#85e3bf}.team1 progress{accent-color:#f79da8}.fighterStatus small{font-size:10px}.duelFighter.attacking{z-index:100;filter:brightness(1.18)}.attacking .fighterArt{animation:none}.duelFighter.struck .fighterArt{animation:duelHurt .15s 2;filter:brightness(2.3) drop-shadow(0 0 10px #f95)}.duelFighter.healing{filter:drop-shadow(0 0 15px #9fffb6)}.duelFighter.dead .fighterArt{animation:none;transform:rotate(70deg) scale(.7);opacity:.25;filter:grayscale(1)}.duelFighter.dead .fighterStatus{color:#f8b2b2}.duelNumber{position:absolute;top:30%;left:45%;font:bold 32px Georgia,serif;color:#fff4c8;text-shadow:2px 2px #571600,-2px -2px #000;z-index:150;animation:duelNumber .65s ease-out}.duelNumber.healing{color:#a2ffce}.duelProjectile{position:fixed;width:32px;height:3px;background:#fff2a3;box-shadow:0 0 8px #ffa200;pointer-events:none;z-index:200}.duelProjectile.magic{width:22px;height:22px;border-radius:50%;background:#edc9ff;box-shadow:0 0 12px 8px #a564ffc9}.encounterCaption{background:#07085e;border:3px solid white;border-radius:6px;padding:17px 22px;margin:15px 20px 8px;font-size:16px;min-height:66px;box-shadow:inset 0 0 0 2px #6572b4}.encounterHint{font-size:12px;color:#a9bade;margin:0 20px 14px}body.busy .encounter button{pointer-events:auto}.encounter button:focus-visible{outline:2px solid #ffe393}@keyframes duelIdle{50%{translate:0 -3px}}@keyframes duelHurt{50%{translate:5px 0}}@keyframes duelNumber{to{translate:0 -25px;opacity:.2}}@media(max-width:700px){.companyList,.soldierList{grid-template-columns:1fr}.companyCard{padding:13px}.companyHead{gap:12px}.companyHead h3{font-size:18px}.memberSlot>img,.emptyMember{height:85px}.encounterTop{padding:12px;flex-wrap:wrap;gap:4px}.encounterTop h2{font-size:15px;width:100%;text-align:center}.encounterTop h2 span{margin:0 8px}.encounterTop>div{margin-left:auto}.encounterTop button{font-size:12px;padding:5px 10px 5px 23px}.encounterArena{background-position:50% center}.duelTeam{width:49%}.duelFighter{width:46%;left:calc(47% - var(--rank)*38%);height:26%;top:calc(10% + var(--lane)*27%)}.team1 .duelFighter{right:calc(47% - var(--rank)*38%)}.fighterStatus{font-size:9px;width:120%;left:-10%}.fighterStatus small{font-size:9px}.fighterStatus span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.encounterCaption{margin:10px 10px 7px;padding:12px;font-size:12px;min-height:68px}.encounterHint{font-size:10px;margin:0 10px 10px}.duelNumber{font-size:26px}.battleAside .fieldMembers{grid-row:auto}.battleAside .panel:first-child:has(.fieldMembers){display:flex;flex-direction:column}.fieldMembers{display:grid;grid-template-columns:1fr 1fr}.battleAside .panel:first-child:has(.fieldMembers) button{width:100%}}@media(prefers-reduced-motion:reduce){.fighterArt,.duelNumber{animation:none!important}}
/* Reserve separate art and status space for every member, including 6v6. */
.encounter{overflow-y:auto}.encounterArena{min-height:300px}.duelFighter{top:calc(2% + var(--lane)*32%);height:30%;width:44%;left:calc(52% - var(--rank)*50%)}.team1 .duelFighter{left:auto;right:calc(52% - var(--rank)*50%)}.fighterArt{height:calc(100% - 40px)}.fighterStatus{bottom:0;left:0;width:100%;height:40px;overflow:hidden;line-height:1.3}.fighterStatus span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fighterStatus progress{width:90%;height:6px;margin:3px auto}.fighterStatus small{white-space:nowrap}
.encounter[data-terrain="forest"] .encounterArena{background-image:linear-gradient(#03061920,#020315aa),url('assets/battle-forest-v36.webp')}
