:root{color-scheme:dark;--bg:#10141b;--panel:#19202b;--panel2:#222b39;--panel3:#141a23;--line:#344156;--text:#f3f6fb;--muted:#98a6ba;--accent:#e4b35f;--danger:#d86a6a;--good:#68c18d;--blue:#6aa5e5;--purple:#ab86e6}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,#243044 0,#111720 42%,#0e1218 100%);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}button,select{font:inherit}button{touch-action:manipulation}#app{width:min(1180px,100%);margin:0 auto;padding:12px}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(20px,3vw,30px);margin-bottom:0}.eyebrow,.label{color:var(--muted);font-size:11px;letter-spacing:.13em}.panel{background:rgba(25,32,43,.97);border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.22)}.pill{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);background:var(--panel);font-size:12px}.primary,.ghost{border:0;border-radius:10px;padding:11px 16px;cursor:pointer;font-weight:800}.primary{background:var(--accent);color:#17120a}.primary:disabled,.ghost:disabled{opacity:.42;cursor:not-allowed}.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.compact{padding:8px 11px;font-size:13px}.muted{color:var(--muted)}.tiny{font-size:10px;margin:0}.hidden{display:none!important}
.lobby,.result{padding:18px;max-width:1080px;margin:2vh auto}.lobby-hero{text-align:center;max-width:850px;margin:0 auto}.lobby-hero h2{margin-bottom:6px}.rule-strip{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:13px 0 16px}.rule-strip span{font-size:11px;color:#cbd3df;border:1px solid var(--line);background:#151b24;border-radius:999px;padding:6px 9px}.setup-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:12px}.setup-card{background:var(--panel3);border:1px solid var(--line);border-radius:12px;padding:12px}.section-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.section-head h3{margin-bottom:3px}.section-head p{margin-bottom:0}.formation-axis{display:grid;grid-template-columns:repeat(3,1fr);font-size:9px;letter-spacing:.1em;color:#68778d;text-align:center;margin:8px 0 5px}.formation-editor{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,74px);grid-auto-flow:column;gap:7px}.formation-card{border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);padding:8px;text-align:left;cursor:pointer;position:relative}.formation-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.formation-card strong{display:block;font-size:12px}.formation-card span{display:block;font-size:9px;color:var(--muted);margin-top:3px}.formation-card small{position:absolute;right:7px;bottom:6px;color:#68778d;font-size:9px}.loadout-builder{display:grid;gap:7px}.loadout-row{display:grid;grid-template-columns:125px 1fr 1fr;gap:7px;align-items:end;background:#171e28;border:1px solid var(--line);border-radius:10px;padding:8px;text-align:left}.loadout-unit{display:flex;flex-direction:column}.loadout-unit span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.loadout-row label{font-size:9px;color:var(--muted);display:grid;gap:4px}.gear-select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px}.queue-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}.queue-actions button{min-width:150px}.lobby-status{text-align:center;margin:10px 0 0}
.battle{display:grid;gap:12px}.battle-head{padding:10px 12px;display:grid;grid-template-columns:repeat(4,1fr) auto;align-items:center;gap:8px}.battle-head strong{display:block;font-size:17px}.arena{position:relative;padding:42px 12px;overflow:hidden}.formation{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;width:min(620px,100%);margin:0 auto}.enemy-grid{margin-bottom:26px}.player-grid{margin-top:26px}.unit{position:relative;min-height:112px;border:1px solid var(--line);border-radius:12px;padding:18px 9px 9px;background:var(--panel2);cursor:pointer;transition:.15s transform,.15s border-color,.15s box-shadow}.unit:hover{transform:translateY(-1px)}.unit.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.unit.targetable{border-color:var(--blue);box-shadow:0 0 0 1px rgba(106,165,229,.45) inset}.unit.dead{opacity:.24;filter:grayscale(1);cursor:not-allowed}.unit.enemy{background:#2a232a}.unit.direct:after{content:'DIRECT';position:absolute;right:7px;top:4px;font-size:8px;letter-spacing:.08em;color:#efc778}.unit.broken{border-color:#9a73d0;background:#262038}.unit.broken:before{content:'BROKEN';position:absolute;right:7px;bottom:5px;color:#c6a3ef;font-size:8px;letter-spacing:.08em}.slot-tag{position:absolute;left:8px;top:4px;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.unit .row{display:flex;justify-content:space-between;gap:8px}.unit-name{font-weight:800;font-size:13px}.role{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.hpbar,.stabbar{margin-top:7px;height:7px;border-radius:999px;background:#0d1016;overflow:hidden}.hpfill{height:100%;background:linear-gradient(90deg,#b34e58,#df7b64)}.stabfill{height:100%;background:linear-gradient(90deg,#6f6ec5,#a98adf)}.hptext,.stabtext{margin-top:3px;color:var(--muted);font-size:9px}.statuses{min-height:14px;margin-top:5px;font-size:9px;color:#e9cf91}.side-title{position:absolute;left:14px;font-size:10px;color:var(--muted);letter-spacing:.15em}.enemy-title{top:20px}.player-title{bottom:20px}.versus{text-align:center;color:#657286;font-size:9px;letter-spacing:.2em}.axis-label{position:absolute;right:14px;color:#647289;font-size:8px;letter-spacing:.09em}.enemy-axis{top:15px}.player-axis{bottom:15px}.combat-floats{position:absolute;inset:0;pointer-events:none;overflow:hidden}.float-event{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:7px 10px;border-radius:999px;background:rgba(12,16,22,.88);border:1px solid var(--line);font-weight:800;font-size:11px;animation:floatUp 1.2s ease forwards}.float-event.damage{color:#f3988f}.float-event.heal{color:#75d9a2}.float-event.break{color:#c9a8ef}.float-event.swap{color:#8fbae8}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,5px)}15%{opacity:1}100%{opacity:0;transform:translate(-50%,-38px)}}
.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.command-panel,.orders-panel{padding:14px;min-height:330px}.stats{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-bottom:8px}.stats span{padding:4px 7px;border:1px solid var(--line);border-radius:999px;background:#151b24}.items{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#151b24;color:var(--muted);font-size:11px;min-height:34px}.skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.skill{min-height:82px;text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:10px;border-radius:10px;cursor:pointer}.skill:last-child:nth-child(odd){grid-column:1/-1}.skill.active{border-color:var(--accent)}.skill:disabled{opacity:.38;cursor:not-allowed}.skill-name{display:flex;justify-content:space-between;gap:8px;font-weight:800}.skill-desc{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.hint{color:var(--muted);font-size:11px;margin-top:10px;line-height:1.45}.orders-title{display:flex;justify-content:space-between;align-items:flex-start}.orders-title h3{margin-bottom:2px}.orders{display:grid;gap:6px;min-height:86px}.order{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;background:#151b24;border:1px solid transparent;border-radius:8px;font-size:11px;cursor:pointer}.order:hover{border-color:var(--danger)}.log-title{margin-top:12px;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.battle-log{margin-top:6px;height:162px;overflow:auto;background:#11161e;border-radius:8px;padding:8px;color:#c7d0df;font-size:10px;line-height:1.5}.result{margin-top:6vh;text-align:center;max-width:760px}.result-badge{font-size:9px;color:var(--muted);letter-spacing:.16em;margin-bottom:8px}.result h2{font-size:30px;margin-bottom:8px}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.result-stat{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel3)}.result-stat strong{display:block;font-size:18px}.result-stat span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
@media(max-width:860px){.setup-grid{grid-template-columns:1fr}.battle-head{grid-template-columns:repeat(2,1fr)}.battle-head button{grid-column:1/-1;width:100%}.lower-grid{grid-template-columns:1fr}.result-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){#app{padding:8px}.topbar{align-items:flex-start}.lobby{padding:12px;margin-top:1vh}.loadout-row{grid-template-columns:1fr 1fr}.loadout-unit{grid-column:1/-1}.formation-editor{grid-template-rows:repeat(2,68px)}.formation{grid-template-columns:repeat(2,minmax(0,1fr))}.unit{min-height:108px;padding:17px 7px 7px}.unit-name{font-size:12px}.role{font-size:8px}.skills{grid-template-columns:1fr}.skill:last-child:nth-child(odd){grid-column:auto}.axis-label{display:none}.battle-head{grid-template-columns:repeat(2,1fr)}.battle-head strong{font-size:15px}}
.first-guide{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin:10px auto 14px;max-width:900px;padding:10px 12px;border:1px solid #5a4a2e;border-radius:11px;background:#241f17}.first-guide strong{color:#f0c877}.first-guide span{font-size:12px;color:#c9d1dc}.preset-row{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap;margin:0 0 12px}.coach{padding:9px 12px;border-color:#4c6280;background:#172233;color:#cdd9e8;font-size:12px;line-height:1.45}.coach strong{color:#8fc1ef}.danger-btn{border-color:#6a3535;color:#e29494}.danger-btn:hover{background:#382026}.result-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.result-actions button{min-width:150px}
@media(max-width:620px){.first-guide{grid-template-columns:1fr;text-align:center}.first-guide button{width:100%}.battle-head{grid-template-columns:repeat(2,1fr)}.battle-head .danger-btn{grid-column:auto}.battle-head #submitBtn{grid-column:auto}}
.panel-lite{border:1px solid var(--line);background:#141a23;border-radius:11px;padding:10px 12px}.friend-row{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;margin:0 0 12px}.friend-row>div:first-child{display:grid;gap:2px}.friend-row>div:first-child span{font-size:11px}.friend-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.room-code{width:118px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 9px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.room-status{grid-column:1/-1;font-size:11px;min-height:14px}.room-code-display{color:#f0c877;font-weight:900;letter-spacing:.16em}
@media(max-width:760px){.friend-row{grid-template-columns:1fr}.friend-actions{justify-content:flex-start}.room-status{grid-column:auto}}


/* v0.5 persistent profile summary */
.profile-strip{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr)) minmax(220px,2fr);gap:10px;align-items:stretch;margin:12px 0}
.profile-stat{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.025)}
.profile-stat span{font-size:10px;letter-spacing:.08em;color:#8391a5}.profile-stat strong{font-size:20px}
.profile-history{padding:9px 12px;border-left:1px solid rgba(255,255,255,.08)}
.history-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.history-chip{font-size:11px;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07)}
.history-chip.win{border-color:rgba(104,193,141,.5)}.history-chip.loss{border-color:rgba(216,106,106,.45)}.history-chip.draw{border-color:rgba(180,180,180,.35)}
@media(max-width:760px){.profile-strip{grid-template-columns:repeat(2,1fr)}.profile-history{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.08)}}

/* v0.6 playtest network/reconnect feedback */
.reconnect-banner{position:sticky;top:8px;z-index:20;margin:0 auto 10px;max-width:680px;padding:9px 12px;text-align:center;border:1px solid #806536;border-radius:10px;background:rgba(47,38,23,.97);color:#f0cc86;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.battle-head{grid-template-columns:repeat(7,minmax(86px,1fr)) auto auto}
#latency,#opponentLink{font-size:13px}.result-stats{grid-template-columns:repeat(6,1fr)}
@media(max-width:980px){.battle-head{grid-template-columns:repeat(3,1fr)}.battle-head button{grid-column:auto}.result-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.battle-head{grid-template-columns:repeat(2,1fr)}.result-stats{grid-template-columns:repeat(2,1fr)}}
/* CrazyGames mobile interaction hardening */
body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}
input,select,textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}
#app{padding-top:max(12px,env(safe-area-inset-top));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left))}


/* v0.6.1 LAN PC + phone playtest helper */
.lan-play{display:grid;gap:7px;margin:0 0 12px;border-color:#355d4c;background:rgba(25,48,40,.55)}
.lan-play>div:first-child{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.lan-play>div:first-child span{font-size:11px}
.lan-urls{display:flex;gap:7px;flex-wrap:wrap}.lan-url{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#9ee0bd;border-color:#376a55}
@media(max-width:620px){.lan-url{width:100%;overflow-wrap:anywhere}}


/* v0.7.0 — 3D-rendered character visual layer */
.visual-hero{
  max-width:none;min-height:300px;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);
  gap:18px;align-items:center;text-align:left;overflow:hidden;border:1px solid rgba(228,179,95,.28);
  border-radius:16px;background:linear-gradient(115deg,rgba(13,18,26,.98) 0%,rgba(18,25,36,.94) 45%,rgba(18,25,36,.3) 100%);
  padding:18px;margin-bottom:14px;position:relative
}
.visual-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(14,18,25,.2),transparent 65%)}
.hero-copy{position:relative;z-index:2;padding:8px 4px 8px 10px}
.hero-copy h2{font-size:clamp(24px,4vw,40px);margin:4px 0 8px}
.hero-copy p{color:#c3ccda;line-height:1.55;max-width:560px}
.hero-kicker{font-size:10px;letter-spacing:.18em;color:#efc778;font-weight:900}
.hero-party-art{position:relative;z-index:1;width:100%;height:280px;object-fit:cover;object-position:center 42%;border-radius:12px;
  box-shadow:0 18px 34px rgba(0,0,0,.34);border:1px solid rgba(255,255,255,.08)}

.formation-editor{grid-template-rows:repeat(2,104px)}
.formation-card{overflow:hidden;padding:0;background:#121923}
.formation-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03);transform:scale(1.02)}
.formation-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,11,17,.94) 0%,rgba(7,11,17,.34) 58%,rgba(7,11,17,.08) 100%)}
.formation-copy{position:absolute!important;left:8px;bottom:8px;z-index:2;margin:0!important}
.formation-copy strong{font-size:12px;text-shadow:0 1px 4px #000}
.formation-copy>span{font-size:8px!important;color:#c7d0de!important;margin-top:1px!important}
.formation-card small{z-index:2;right:7px;top:6px;bottom:auto;background:rgba(8,12,18,.76);padding:3px 5px;border-radius:999px;color:#cbd5e3}
.formation-card.active>img{filter:saturate(1.08) brightness(1.06)}
.formation-card.active:after{box-shadow:inset 0 0 0 2px var(--accent)}

.loadout-row{grid-template-columns:42px 110px 1fr 1fr}
.loadout-portrait{width:42px;height:42px;border-radius:9px;object-fit:cover;border:1px solid rgba(255,255,255,.11);align-self:center}

.arena{
  background:
    linear-gradient(180deg,rgba(13,18,25,.40),rgba(13,18,25,.82)),
    url("assets/battle-backdrop.webp") center/cover no-repeat;
  border-color:rgba(117,148,184,.35);box-shadow:inset 0 0 70px rgba(6,10,15,.65),0 14px 34px rgba(0,0,0,.22)
}
.formation{width:min(760px,100%);gap:10px}
.unit{
  min-height:142px;padding:16px 10px 9px;overflow:hidden;background:rgba(18,25,35,.91);
  border-color:rgba(126,151,184,.34);box-shadow:0 8px 18px rgba(0,0,0,.22)
}
.unit.enemy{background:rgba(45,26,30,.91);border-color:rgba(177,91,91,.34)}
.unit-art{position:absolute;right:0;top:0;width:48%;height:100%;object-fit:cover;object-position:center 30%;opacity:.82;z-index:0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 20%,#000 48%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.45) 20%,#000 48%)}
.unit.enemy .unit-art{filter:saturate(.82) sepia(.16) hue-rotate(320deg)}
.unit-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,17,24,.98) 0%,rgba(12,17,24,.92) 50%,rgba(12,17,24,.2) 100%);pointer-events:none}
.unit.enemy .unit-overlay{background:linear-gradient(90deg,rgba(35,19,23,.98) 0%,rgba(35,19,23,.9) 50%,rgba(35,19,23,.18) 100%)}
.unit-content{position:relative;z-index:2;width:70%}
.unit.selected{transform:translateY(-2px);box-shadow:0 0 0 1px var(--accent) inset,0 12px 24px rgba(0,0,0,.32)}
.unit.targetable{animation:targetPulse 1.05s ease-in-out infinite alternate}
@keyframes targetPulse{from{box-shadow:0 0 0 1px rgba(106,165,229,.48) inset}to{box-shadow:0 0 0 2px rgba(106,165,229,.92) inset,0 0 22px rgba(70,140,215,.22)}}
.unit.dead .unit-art{filter:grayscale(1)}
.unit.broken .unit-art{filter:saturate(.55) hue-rotate(245deg)}
.unit .row{align-items:flex-start;flex-direction:column;gap:1px}
.unit-name{font-size:14px;text-shadow:0 1px 4px #000}
.slot-tag{z-index:3;background:rgba(7,11,16,.6);padding:2px 5px;border-radius:999px}
.unit.direct:after,.unit.broken:before{z-index:4}

.selected-unit-visual{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:stretch;margin-bottom:10px}
.selected-portrait{width:112px;height:154px;object-fit:cover;object-position:center 18%;border-radius:12px;border:1px solid rgba(228,179,95,.28);
  box-shadow:0 10px 24px rgba(0,0,0,.28);background:#151b24}
.selected-unit-copy{min-width:0}
.selected-unit-copy h3{margin-bottom:8px}
.selected-unit-copy .items{margin-top:7px}

@media(max-width:860px){
  .visual-hero{grid-template-columns:1fr;min-height:0;text-align:center}
  .hero-copy p{margin-left:auto;margin-right:auto}.hero-party-art{height:250px}
  .rule-strip{justify-content:center}
}
@media(max-width:620px){
  .visual-hero{padding:10px}.hero-party-art{height:190px}.hero-copy h2{font-size:26px}
  .formation-editor{grid-template-rows:repeat(2,82px)}
  .loadout-row{grid-template-columns:38px 1fr 1fr}.loadout-portrait{width:38px;height:38px}.loadout-unit{grid-column:auto}
  .loadout-row label:first-of-type{grid-column:2}.loadout-row label:last-of-type{grid-column:3}
  .unit{min-height:132px;padding:16px 7px 7px}.unit-content{width:76%}.unit-art{width:54%;opacity:.72}
  .unit-name{font-size:12px}.hptext,.stabtext,.statuses{font-size:8px}.hpbar,.stabbar{height:6px;margin-top:5px}
  .selected-unit-visual{grid-template-columns:84px 1fr}.selected-portrait{width:84px;height:118px}
}


/* v0.7.1 — full-body battlefield clarity update */
.side-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;max-width:760px;margin:0 auto 8px;padding:8px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);position:relative;z-index:2}
.side-banner strong{font-size:14px;letter-spacing:.02em}
.side-banner-enemy{background:linear-gradient(90deg,rgba(91,35,40,.88),rgba(41,23,26,.65));border-color:rgba(205,106,114,.28)}
.side-banner-player{background:linear-gradient(90deg,rgba(28,53,87,.9),rgba(19,32,56,.68));border-color:rgba(106,165,229,.28);margin-top:8px}
.team-chip{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;border:1px solid rgba(255,255,255,.12)}
.enemy-chip{background:rgba(139,47,58,.72);color:#ffd7dc}
.player-chip{background:rgba(36,84,145,.76);color:#ddecff}
.enemy-field,.player-field{padding:8px 6px 0;border-radius:18px;position:relative}
.enemy-field:before,.player-field:before{content:"";position:absolute;inset:-4px -6px -2px;border-radius:20px;pointer-events:none;z-index:0}
.enemy-field:before{background:radial-gradient(circle at 50% 0%,rgba(200,90,102,.18),transparent 58%)}
.player-field:before{background:radial-gradient(circle at 50% 100%,rgba(95,160,235,.20),transparent 58%)}
.unit{min-height:190px;padding:14px 10px 10px}
.unit-art{right:auto;left:50%;top:8px;transform:translateX(-50%);width:auto;height:118px;max-width:88%;object-fit:contain;object-position:center bottom;opacity:.96;-webkit-mask-image:none;mask-image:none;filter:drop-shadow(0 12px 16px rgba(0,0,0,.28))}
.unit.enemy .unit-art{filter:saturate(.82) sepia(.16) hue-rotate(320deg) drop-shadow(0 12px 16px rgba(0,0,0,.28))}
.unit-overlay{background:linear-gradient(180deg,rgba(12,17,24,.14) 0%,rgba(12,17,24,0) 34%,rgba(12,17,24,.78) 64%,rgba(12,17,24,.96) 100%)}
.unit.enemy .unit-overlay{background:linear-gradient(180deg,rgba(35,19,23,.14) 0%,rgba(35,19,23,0) 34%,rgba(35,19,23,.80) 64%,rgba(35,19,23,.96) 100%)}
.unit-content{width:100%;padding-top:98px}
.unit .row{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:6px}
.unit-name{max-width:66%}
.owner-tag,.position-tag{position:absolute;top:7px;z-index:4;font-size:8px;letter-spacing:.12em;text-transform:uppercase;padding:3px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.09);font-weight:800}
.owner-tag{right:8px}
.position-tag{left:8px}
.unit.enemy .owner-tag{background:rgba(139,47,58,.76);color:#ffd7dc}
.unit.ally .owner-tag{background:rgba(36,84,145,.80);color:#ddecff}
.position-tag{background:rgba(7,11,16,.72);color:#d4dbe7}
.slot-tag{display:none}
.unit.direct:after{top:auto;bottom:42px;right:8px;background:rgba(239,199,120,.16);padding:3px 6px;border-radius:999px;border:1px solid rgba(239,199,120,.26)}
.unit.broken:before{bottom:42px;right:8px;background:rgba(122,79,171,.18);padding:3px 6px;border-radius:999px;border:1px solid rgba(198,163,239,.22)}
.selected-portrait{object-fit:contain;object-position:center bottom;background:linear-gradient(180deg,#18202b,#111722)}
@media(max-width:620px){.side-banner{padding:8px 10px}.side-banner strong{font-size:12px}.team-chip{min-width:86px}.unit{min-height:174px;padding:14px 7px 7px}.unit-art{height:102px}.unit-content{padding-top:86px}.unit-name{max-width:62%}.owner-tag,.position-tag{font-size:7px;padding:3px 5px}.unit.direct:after,.unit.broken:before{bottom:39px}}

/* v0.8.0 — realtime WebGL battlefield */
.arena-3d-shell{padding:10px;background:linear-gradient(180deg,#111925,#0c1119);overflow:hidden}
.battle3d-stage{position:relative;width:100%;height:clamp(460px,63vh,680px);border-radius:14px;overflow:hidden;background:radial-gradient(circle at 50% 38%,#26384d 0,#141d29 48%,#0a0f16 100%);border:1px solid rgba(117,148,184,.32);box-shadow:inset 0 0 80px rgba(0,0,0,.48)}
#battleCanvas3d{display:block;width:100%;height:100%;cursor:pointer;touch-action:manipulation;outline:none}
.world-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.world-unit-label{position:absolute;min-width:108px;max-width:132px;padding:4px 6px 5px;border-radius:8px;background:rgba(7,10,16,.72);border:1px solid rgba(255,255,255,.10);box-shadow:0 4px 12px rgba(0,0,0,.34);font-size:9px;will-change:transform;transition:border-color .15s,box-shadow .15s,opacity .15s}
.world-unit-label.ally{border-color:rgba(75,151,235,.42)}.world-unit-label.enemy{border-color:rgba(222,88,100,.42)}
.world-unit-label.selected{border-color:#e4b35f;box-shadow:0 0 0 1px rgba(228,179,95,.65),0 6px 16px rgba(0,0,0,.38)}
.world-unit-label.targetable{border-color:#e06c77;box-shadow:0 0 16px rgba(224,85,100,.28)}
.world-unit-label.dead{opacity:.25;filter:grayscale(1)}
.wl-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:3px}.wl-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.wl-top span{font-size:7px;font-weight:900;letter-spacing:.08em}.world-unit-label.ally .wl-top span{color:#86bfff}.world-unit-label.enemy .wl-top span{color:#ff9ca6}
.wl-hp,.wl-stb{height:4px;border-radius:999px;background:rgba(0,0,0,.66);overflow:hidden;margin-top:2px}.wl-hp i,.wl-stb i{display:block;height:100%;transition:width .25s ease}.wl-hp i{background:linear-gradient(90deg,#4aa86c,#73d28f)}.wl-stb i{background:linear-gradient(90deg,#6e64c8,#a889e4)}
.battle3d-corner{position:absolute;z-index:3;display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:10px;pointer-events:none;text-shadow:0 1px 3px #000}.battle3d-corner span{font-size:8px;letter-spacing:.16em;font-weight:900}.battle3d-corner b{font-size:12px}.enemy-corner{top:12px;right:12px;text-align:right;color:#ffd8dc;background:rgba(91,30,38,.58);border:1px solid rgba(218,92,105,.34)}.player-corner{bottom:12px;left:12px;color:#d9ebff;background:rgba(31,66,112,.64);border:1px solid rgba(83,151,230,.34)}
.render-fallback{position:absolute;inset:auto 12px 12px 12px;z-index:7;background:rgba(105,38,43,.94);border:1px solid #c45e66;color:#ffe5e7;padding:10px;border-radius:10px;font-size:12px}
.fallback-formation{margin:8px auto}.fallback-versus{text-align:center;margin:6px 0}
.arena-3d-shell .side-banner{max-width:none;margin-bottom:8px}
.arena-3d-shell .combat-floats{z-index:8}

/* keep 3D battle dominant; commands stay as tactical HUD below */
.lower-grid{grid-template-columns:1.05fr .95fr}.command-panel,.orders-panel{background:rgba(18,24,33,.98)}
.selected-unit-visual{grid-template-columns:96px 1fr}.selected-portrait{width:96px;height:136px}

@media(max-width:860px){.battle3d-stage{height:560px}.world-unit-label{min-width:94px;max-width:110px}.lower-grid{grid-template-columns:1fr}}
@media(max-width:620px){
  .arena-3d-shell{padding:6px}.battle3d-stage{height:430px;border-radius:10px}.world-unit-label{min-width:76px;max-width:88px;padding:3px 4px}.wl-top strong{font-size:8px}.wl-top span{font-size:6px}.battle3d-corner{padding:5px 7px}.battle3d-corner b{font-size:10px}.enemy-corner{top:7px;right:7px}.player-corner{bottom:7px;left:7px}
  .selected-unit-visual{grid-template-columns:72px 1fr}.selected-portrait{width:72px;height:102px}
}


/* v0.8.1 left-vs-right arena clarity */
.player-corner{left:12px;right:auto;top:12px;bottom:auto;text-align:left}
.enemy-corner{right:12px;left:auto;top:12px;bottom:auto;text-align:right}
.battle-orientation{max-width:none;margin-bottom:8px;background:linear-gradient(90deg,rgba(28,53,87,.82),rgba(24,27,34,.88) 42%,rgba(24,27,34,.88) 58%,rgba(91,35,40,.80));border-color:rgba(255,255,255,.08)}
.battle-orientation strong{font-size:11px;letter-spacing:.12em;color:#d6deea}
.battle3d-stage:before,.battle3d-stage:after{content:"";position:absolute;top:0;bottom:0;width:22%;pointer-events:none;z-index:1}
.battle3d-stage:before{left:0;background:linear-gradient(90deg,rgba(36,84,145,.16),transparent)}
.battle3d-stage:after{right:0;background:linear-gradient(270deg,rgba(139,47,58,.15),transparent)}
@media(max-width:620px){.player-corner{left:7px;top:7px}.enemy-corner{right:7px;top:7px}}

.rank-guide{position:absolute;left:8%;right:8%;bottom:10px;z-index:4;display:grid;grid-template-columns:repeat(3,1fr) .66fr repeat(3,1fr);gap:3px;align-items:center;pointer-events:none;color:#b9c6d8;font-size:7px;font-weight:900;letter-spacing:.08em;text-align:center;text-shadow:0 1px 3px #000}
.rank-guide span{padding:3px 2px;border-radius:5px;background:rgba(8,12,18,.44)}.rank-guide span:nth-child(-n+3){color:#9ac9ff}.rank-guide span:nth-last-child(-n+3){color:#ffadb5}.rank-guide i{font-style:normal;color:#e4b35f;font-size:6px}
@media(max-width:620px){.rank-guide{left:4%;right:4%;bottom:7px;font-size:5.5px;letter-spacing:.04em}.rank-guide i{font-size:5px}.battle-orientation strong{display:none}}


/* v0.8.2 camera control overlay */
#battleCanvas3d{touch-action:none}
.camera-panel{position:absolute;left:12px;bottom:12px;z-index:5;display:flex;flex-direction:column;gap:6px;max-width:220px;padding:8px 9px;border-radius:10px;background:rgba(7,10,16,.72);border:1px solid rgba(255,255,255,.10);box-shadow:0 4px 18px rgba(0,0,0,.28);backdrop-filter:blur(4px)}
.camera-title{font-size:9px;font-weight:900;letter-spacing:.16em;color:#dbe7f7}
.camera-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.cam-btn{appearance:none;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#223045,#182231);color:#ecf4ff;border-radius:8px;padding:7px 8px;font-weight:900;font-size:13px;cursor:pointer}
.cam-btn:hover{filter:brightness(1.08)}
.cam-btn:active{transform:translateY(1px)}
.camera-hint{font-size:9px;line-height:1.25;color:#adbacf}
@media(max-width:620px){.camera-panel{left:auto;right:7px;bottom:7px;max-width:168px;padding:6px 7px}.camera-title{font-size:8px}.cam-btn{padding:6px 6px;font-size:12px}.camera-hint{font-size:8px}}


/* v1.1.0 skinned-character camera / quality controls */
.camera-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.quality-btn{border:1px solid rgba(120,180,255,.24);background:rgba(41,78,120,.52);color:#cfe7ff;border-radius:999px;padding:3px 6px;font-size:7px;font-weight:900;letter-spacing:.08em;cursor:pointer}
.quality-btn.performance{color:#c8ffd5;border-color:rgba(91,205,128,.25);background:rgba(38,92,54,.48)}
.quality-btn.high{color:#ffe1a5;border-color:rgba(228,179,95,.28);background:rgba(99,72,31,.48)}
@media(max-width:620px){.camera-panel{max-width:158px}.camera-buttons{gap:3px}.cam-btn{padding:5px}.camera-hint{display:none}.quality-btn{font-size:6px}}


/* v1.3.0 production presentation */
.battle3d-stage{background:radial-gradient(ellipse at 50% 30%,#344458 0,#1c2734 38%,#0a1018 78%,#06090e 100%);box-shadow:inset 0 0 110px rgba(0,0,0,.54),0 18px 55px rgba(0,0,0,.28)}
.world-unit-label{backdrop-filter:blur(3px);background:linear-gradient(180deg,rgba(8,12,18,.82),rgba(6,9,14,.68))}
.world-unit-label.selected{transform-origin:center bottom}
.battle3d-corner{backdrop-filter:blur(4px)}
.camera-panel{background:linear-gradient(180deg,rgba(10,15,23,.80),rgba(6,9,14,.68));border-color:rgba(164,190,220,.16)}
@media(max-width:620px){.battle3d-stage{box-shadow:inset 0 0 70px rgba(0,0,0,.48)}}

/* v1.4.0 visual refinement / atmosphere */
.battle3d-stage{box-shadow:inset 0 0 105px rgba(0,0,0,.58),0 18px 46px rgba(0,0,0,.22)}
.battle3d-stage::before{mix-blend-mode:screen;opacity:.78}
.battle3d-stage::after{opacity:.88}
.camera-panel{border-color:rgba(221,190,126,.16);background:linear-gradient(180deg,rgba(8,12,18,.80),rgba(10,14,21,.68))}
.world-unit-label{backdrop-filter:blur(3px)}


/* v1.5.0 combat readability / presentation */
.action-callout{position:absolute;z-index:6;top:54px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;min-width:280px;max-width:70%;padding:8px 14px;border-radius:999px;background:linear-gradient(90deg,rgba(13,20,31,.86),rgba(28,31,39,.91),rgba(13,20,31,.86));border:1px solid rgba(227,191,119,.26);box-shadow:0 8px 28px rgba(0,0,0,.35),inset 0 0 24px rgba(227,191,119,.04);backdrop-filter:blur(5px);pointer-events:none;justify-content:center;text-shadow:0 1px 3px #000;animation:action-pop .18s ease-out}
.action-callout.hidden{display:none}.action-callout .action-actor,.action-callout .action-target{font-size:10px;color:#b9c9db;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-callout .action-skill{font-size:12px;color:#f0c979;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.action-callout.enemy{border-color:rgba(226,91,103,.30)}.action-callout.enemy .action-actor{color:#ffadb5}.action-callout.ally .action-actor{color:#9ac9ff}
@keyframes action-pop{from{opacity:0;transform:translateX(-50%) translateY(-7px) scale(.96)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
.battle3d-stage{isolation:isolate}.battle3d-stage:before,.battle3d-stage:after{filter:saturate(1.08)}
@media(max-width:620px){.action-callout{top:45px;min-width:210px;max-width:82%;gap:5px;padding:6px 9px}.action-callout .action-actor,.action-callout .action-target{font-size:8px}.action-callout .action-skill{font-size:9px}}


/* v1.6.0 combat-feel / additive cinematic polish */
.battle3d-stage.impact-pulse{animation:impactStagePulse .42s ease-out}
.battle3d-stage.impact-pulse #battleCanvas3d{animation:impactCanvasPulse .42s ease-out}
@keyframes impactStagePulse{0%{box-shadow:inset 0 0 80px rgba(0,0,0,.48),0 0 0 rgba(228,179,95,0)}35%{box-shadow:inset 0 0 62px rgba(0,0,0,.36),0 0 24px rgba(228,179,95,.12)}100%{box-shadow:inset 0 0 80px rgba(0,0,0,.48),0 0 0 rgba(228,179,95,0)}}
@keyframes impactCanvasPulse{0%{filter:brightness(1)}32%{filter:brightness(1.045) contrast(1.025)}100%{filter:brightness(1)}}

/* v1.7.0 animation/expression production pass */
.battle3d-stage{--impact-glow:0}.battle3d-stage.impact-pulse{box-shadow:inset 0 0 92px rgba(228,179,95,.16),0 0 22px rgba(228,179,95,.08)}
.world-unit-label.selected .wl-top strong{letter-spacing:.015em}.world-unit-label.targetable{backdrop-filter:blur(3px)}


/* v1.8.0 sensory/readability production pass */
.camera-modes{display:flex;align-items:center;gap:5px}.sound-btn{border:1px solid rgba(116,209,163,.22);background:rgba(35,91,68,.46);color:#c9f7df;border-radius:999px;padding:3px 6px;font-size:7px;font-weight:900;letter-spacing:.06em;cursor:pointer}.sound-btn.muted{color:#c0c8d1;background:rgba(67,73,82,.48);border-color:rgba(190,198,209,.16)}
.wl-status{display:flex;gap:2px;min-height:10px;margin-top:3px;justify-content:center}.wl-status b{display:inline-block;padding:1px 3px;border-radius:3px;font-size:6px;line-height:1.15;letter-spacing:.04em;background:rgba(255,255,255,.08);color:#d7dfeb}.wl-status b.broken{color:#d9b8ff;background:rgba(121,75,170,.28)}.wl-status b.burn{color:#ffb078;background:rgba(161,65,35,.28)}.wl-status b.slow{color:#9ec8ff;background:rgba(43,85,139,.28)}.wl-status b.guard{color:#aee0ff;background:rgba(45,93,127,.28)}.wl-status b.rally{color:#ffe39a;background:rgba(142,107,37,.28)}
.battle3d-stage.audio-impact #battleCanvas3d{animation:audioImpactFlash .18s ease-out}@keyframes audioImpactFlash{0%{filter:brightness(1)}45%{filter:brightness(1.035) saturate(1.07)}100%{filter:brightness(1)}}
.action-callout{transition:border-color .14s,box-shadow .14s}.action-callout.heavy{box-shadow:0 8px 32px rgba(0,0,0,.42),0 0 20px rgba(227,191,119,.10),inset 0 0 28px rgba(227,191,119,.06)}
@media(max-width:620px){.camera-modes{gap:3px}.sound-btn{font-size:6px;padding:3px 5px}.wl-status{margin-top:2px}.wl-status b{font-size:5px}}

/* v1.9.0 combat choreography + world feedback */
.world-unit-label{overflow:visible}
.world-unit-label.active-actor{border-color:#e8bd66;box-shadow:0 0 0 1px rgba(232,189,102,.72),0 0 20px rgba(232,189,102,.22),0 6px 16px rgba(0,0,0,.38)}
.world-unit-label.active-target{border-color:#ef7884;box-shadow:0 0 0 1px rgba(239,120,132,.62),0 0 18px rgba(239,120,132,.20),0 6px 16px rgba(0,0,0,.36)}
.world-unit-label.danger{animation:unitDangerPulse 1.05s ease-in-out infinite}
@keyframes unitDangerPulse{0%,100%{box-shadow:0 4px 12px rgba(0,0,0,.34)}50%{box-shadow:0 0 0 1px rgba(222,73,83,.40),0 0 18px rgba(222,73,83,.22)}}
.wl-phase{height:8px;margin-top:2px;text-align:center;font-size:6px;font-weight:900;letter-spacing:.14em;color:#f0c978}
.world-unit-label.active-target .wl-phase{color:#ff9ca6}
.wl-pop{position:absolute;left:50%;top:-11px;transform:translate(-50%,0) scale(.82);opacity:0;pointer-events:none;font-size:12px;font-weight:1000;letter-spacing:.03em;text-shadow:0 2px 5px #000,0 0 8px currentColor;white-space:nowrap}
.wl-pop.show{animation:worldPop .82s cubic-bezier(.16,.74,.22,1) forwards}
.wl-pop.damage{color:#ff7e86}.wl-pop.stability{color:#c7a6ff}.wl-pop.heal,.wl-pop.stabilityHeal{color:#7de7a5}.wl-pop.break{color:#d8b4ff;font-size:13px}.wl-pop.defeat{color:#f6d2d5;font-size:13px}
@keyframes worldPop{0%{opacity:0;transform:translate(-50%,7px) scale(.72)}18%{opacity:1;transform:translate(-50%,-3px) scale(1.12)}65%{opacity:1;transform:translate(-50%,-18px) scale(1)}100%{opacity:0;transform:translate(-50%,-31px) scale(.92)}}
.action-callout.sequence{box-shadow:0 0 0 1px rgba(232,189,102,.20),0 10px 30px rgba(0,0,0,.42)}
@media(max-width:620px){.wl-pop{font-size:10px}.wl-phase{font-size:5px;height:6px}}

/* v2.0.0 production milestone: resolution rail, cinematic framing, 3-tier quality and mobile HUD clarity */
.battle-phase strong{color:#9ec8ff;letter-spacing:.06em}.battle-phase strong.waiting{color:#e7c97c}.battle-phase strong.resolving{color:#f0b36c;text-shadow:0 0 10px rgba(240,179,108,.28)}
.resolution-rail{position:absolute;left:50%;top:48px;transform:translateX(-50%);z-index:6;display:flex;align-items:stretch;gap:4px;max-width:min(92%,760px);padding:5px;border-radius:11px;background:rgba(6,9,14,.72);border:1px solid rgba(232,189,102,.12);box-shadow:0 8px 24px rgba(0,0,0,.24);backdrop-filter:blur(5px);pointer-events:none}.res-step{min-width:84px;display:grid;grid-template-columns:19px 1fr;grid-template-rows:auto auto;column-gap:5px;align-items:center;padding:5px 7px;border-radius:7px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.035);opacity:.58;transition:opacity .14s,transform .14s,border-color .14s,background .14s}.res-step>span{grid-row:1/3;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;font-size:7px;font-weight:1000;background:rgba(255,255,255,.08)}.res-step b{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.res-step small{font-size:6px;color:#9eabba;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.res-step.ally{border-color:rgba(83,151,230,.14)}.res-step.enemy{border-color:rgba(218,92,105,.14)}.res-step.active{opacity:1;transform:translateY(-2px);border-color:#e8bd66;background:rgba(232,189,102,.10);box-shadow:0 0 16px rgba(232,189,102,.12)}.res-step.done{opacity:.34}.res-step.done>span{background:rgba(96,193,137,.18);color:#91e0b3}
.cinematic-frame{position:absolute;inset:10px;z-index:5;pointer-events:none;opacity:0;transition:opacity .14s}.cinematic-frame i{position:absolute;width:34px;height:34px;border-color:rgba(232,189,102,.58);border-style:solid}.cinematic-frame i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px}.cinematic-frame i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0}.cinematic-frame i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px}.cinematic-frame i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0}.battle3d-stage.cinematic-active .cinematic-frame{opacity:1}
.quality-btn.balanced{color:#dce8f8;background:rgba(62,85,116,.62);border-color:rgba(127,164,212,.26)}
.battle.resolving .command-panel,.battle.resolving .orders-panel{opacity:.86}.battle.resolving #submitBtn{filter:saturate(.7)}
@media(max-width:900px){.battle-head{grid-template-columns:repeat(4,1fr) auto auto}.battle-head .secondary-stat{font-size:9px}.resolution-rail{top:44px;max-width:96%;overflow:hidden}.res-step{min-width:66px;padding:4px 5px}.res-step b{font-size:7px}.res-step small{font-size:5.5px}}
@media(max-width:620px){.battle-head .secondary-stat{display:none}.battle-head{grid-template-columns:repeat(3,1fr) auto auto}.battle-phase{display:block}.resolution-rail{top:38px;left:5px;right:5px;transform:none;max-width:none;gap:2px;padding:4px}.res-step{min-width:0;flex:1;padding:4px 3px;grid-template-columns:15px 1fr;column-gap:3px}.res-step>span{width:14px;height:14px;font-size:6px}.res-step b{font-size:6px}.res-step small{display:none}.cinematic-frame{inset:6px}.cinematic-frame i{width:24px;height:24px}}


/* v2.1.0 — player comfort, accessibility and mobile production controls */
:root{--hud-scale:1}
.comfort-btn{border:1px solid rgba(170,191,219,.18);background:rgba(30,41,57,.66);color:#e7eff9;border-radius:999px;width:24px;height:24px;padding:0;font-size:12px;font-weight:900;cursor:pointer}
.comfort-btn.active{border-color:rgba(230,194,118,.55);color:#f4cf7c;background:rgba(85,65,31,.72)}
.comfort-panel{position:absolute;z-index:12;left:12px;bottom:12px;width:min(320px,calc(100% - 24px));padding:10px;border-radius:12px;background:linear-gradient(180deg,rgba(8,12,19,.96),rgba(11,16,24,.94));border:1px solid rgba(174,197,226,.18);box-shadow:0 16px 38px rgba(0,0,0,.46);backdrop-filter:blur(8px);color:#e9f0f9}
.comfort-panel.hidden{display:none}
.comfort-head,.comfort-row,.comfort-volume,.comfort-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.comfort-head{margin-bottom:9px;font-size:10px;letter-spacing:.14em}.comfort-head button{border:0;background:transparent;color:#cbd6e4;font-size:20px;line-height:1;cursor:pointer}
.comfort-group{display:grid;gap:5px;margin-bottom:8px}.comfort-group>span,.comfort-row>span,.comfort-volume>span{font-size:9px;font-weight:800;letter-spacing:.06em;color:#b9c7d9}
.comfort-segment{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.comfort-segment button,.comfort-cycle,.comfort-foot button{border:1px solid rgba(255,255,255,.10);background:#192332;color:#dce7f4;border-radius:7px;padding:6px 7px;font-size:8px;font-weight:900;letter-spacing:.04em;cursor:pointer}
.comfort-segment button.active{border-color:rgba(103,172,246,.62);background:#213d5e;color:#ddecff}.comfort-cycle.active{border-color:rgba(230,194,118,.48);color:#f5d588}
.comfort-row{min-height:32px;border-top:1px solid rgba(255,255,255,.055)}
.comfort-volume{min-height:38px;border-top:1px solid rgba(255,255,255,.055)}.comfort-volume input{width:150px;accent-color:#d8ad5f}
.comfort-foot{margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.07)}.comfort-foot small{font-size:8px;color:#8392a6}
.battle{font-size:calc(1em * var(--hud-scale))}.world-unit-label{min-width:calc(108px * var(--hud-scale));max-width:calc(132px * var(--hud-scale))}.camera-panel{font-size:calc(10px * var(--hud-scale))}
.battle.high-contrast .world-unit-label{background:rgba(0,0,0,.91);border-width:2px}.battle.high-contrast .world-unit-label.ally{border-color:#83c7ff}.battle.high-contrast .world-unit-label.enemy{border-color:#ff8290}.battle.high-contrast .wl-hp{outline:1px solid #d8ffe4}.battle.high-contrast .wl-stb{outline:1px dashed #d2c7ff}.battle.high-contrast .team-chip{outline:2px solid currentColor}.battle.high-contrast .res-step{border-width:2px}
.battle.reduced-vfx .cinematic-frame{opacity:.45}.battle.reduced-motion .action-callout,.battle.reduced-motion .res-step{transition-duration:.05s}
@media(max-width:620px){.comfort-panel{left:7px;right:7px;bottom:7px;width:auto;padding:9px}.comfort-segment button,.comfort-cycle,.comfort-foot button{min-height:34px;font-size:9px}.comfort-volume input{width:120px}.comfort-btn{width:28px;height:28px}.camera-panel.settings-open{display:none}}


/* v2.2.0 tactical information, onboarding, post-match clarity and mobile ergonomics */
.battle-brief{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(360px,2fr) auto;gap:12px;align-items:center;padding:10px 12px;border-color:rgba(99,155,215,.38);background:linear-gradient(90deg,rgba(22,35,52,.96),rgba(19,27,39,.96))}.battle-brief-kicker{display:block;font-size:8px;letter-spacing:.16em;color:#78b7ed;font-weight:900;margin-bottom:3px}.battle-brief strong{font-size:12px}.battle-brief-rules{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.battle-brief-rules span{font-size:9px;line-height:1.35;color:#b8c5d7;background:rgba(9,13,19,.42);border:1px solid rgba(255,255,255,.06);padding:6px 7px;border-radius:7px}.battle-brief-rules b{color:#e7edf6}
.tactical-strip{padding:9px 11px;background:linear-gradient(180deg,rgba(18,25,35,.98),rgba(13,18,26,.98))}.tactical-strip-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.tactical-strip-head strong{display:block;font-size:13px;margin-top:2px}.tactical-strip-chips{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.tactical-chip{font-size:8px;font-weight:900;letter-spacing:.08em;border:1px solid var(--line);background:#111923;border-radius:999px;padding:5px 8px;color:#aebbd0}.tactical-chip.screen{color:#8fc9ff;border-color:rgba(89,159,229,.45)}.tactical-chip.exposed{color:#f0bd7f;border-color:rgba(224,167,91,.42)}.tactical-chip.broken{color:#c8a7f0;border-color:rgba(156,112,211,.48)}.perf-chip.good{color:#79d69a}.perf-chip.warn{color:#efc778}.perf-chip.slow{color:#e98787}.tactical-intel{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(250px,1.4fr) minmax(180px,1fr);gap:8px;margin-top:7px}.intel-block{border:1px solid rgba(255,255,255,.07);background:#111822;border-radius:8px;padding:7px 8px;min-height:54px}.intel-block h4{font-size:8px;color:#718198;letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px}.intel-row{display:flex;gap:6px;flex-wrap:wrap;font-size:10px;color:#cbd5e3}.intel-row span{border-radius:999px;background:#182231;padding:3px 6px}.intel-skills{display:grid;gap:4px}.intel-skill{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:9px;color:#cbd5e3}.intel-skill small{grid-column:1/-1;color:#8594aa;line-height:1.25}.intel-last{font-size:10px;line-height:1.4;color:#c5cfdd}.intel-last strong{color:#eef3f9}.intel-side-enemy{color:#ffadb5}.intel-side-ally{color:#9ac9ff}
.mobile-battle-dock{display:none}.result-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.result-team{border:1px solid var(--line);background:var(--panel3);border-radius:11px;padding:10px;text-align:left}.result-team h3{font-size:11px;margin:0 0 7px}.result-team.enemy h3{color:#ff9ca6}.result-team.ally h3{color:#8bc5ff}.result-bars{display:grid;gap:6px}.result-bar{display:grid;grid-template-columns:82px 1fr auto;gap:7px;align-items:center;font-size:9px;color:var(--muted)}.result-bar-track{height:5px;background:#0d1118;border-radius:999px;overflow:hidden}.result-bar-track i{display:block;height:100%;background:#6b82a5}.result-team.ally .result-bar-track i{background:#528ed2}.result-team.enemy .result-bar-track i{background:#bd5d68}.result-factors{display:grid;gap:6px;margin:10px 0 14px;text-align:left}.result-factor{border-left:3px solid #657a96;background:#151c26;border-radius:7px;padding:7px 9px;font-size:10px;color:#c8d2e0;line-height:1.4}
.world-unit-label.inspected{border-color:#e7c66f;box-shadow:0 0 0 1px rgba(231,198,111,.55),0 6px 18px rgba(0,0,0,.42)}
@media(max-width:900px){.battle-brief{grid-template-columns:1fr auto}.battle-brief-rules{grid-column:1/-1;grid-template-columns:repeat(2,1fr)}.tactical-intel{grid-template-columns:1fr 1fr}.tactical-intel .intel-block:last-child{grid-column:1/-1}}
@media(max-width:620px){.battle-brief{grid-template-columns:1fr;padding:8px}.battle-brief-rules{grid-template-columns:1fr 1fr}.battle-brief button{width:100%}.tactical-strip{padding:7px}.tactical-strip-head{align-items:flex-start}.tactical-intel{grid-template-columns:1fr}.tactical-intel .intel-block:last-child{grid-column:auto}.mobile-battle-dock{position:sticky;bottom:6px;z-index:30;display:grid;grid-template-columns:52px 58px .7fr .7fr 1fr;gap:5px;align-items:center;background:rgba(9,13,19,.93);border:1px solid rgba(255,255,255,.10);box-shadow:0 8px 24px rgba(0,0,0,.42);backdrop-filter:blur(8px);border-radius:10px;padding:6px;margin:-4px 0 8px}.mobile-battle-dock>div{display:flex;flex-direction:column;align-items:center}.mobile-battle-dock small{font-size:6px;color:#77869b;letter-spacing:.12em}.mobile-battle-dock strong{font-size:12px}.mobile-battle-dock button{padding:8px 5px;min-width:0}.result-compare{grid-template-columns:1fr}.result-bar{grid-template-columns:74px 1fr auto}}


/* v2.3.0 — public playtest operations, network diagnostics, history and recovery UX */
.guide-actions{display:flex;gap:7px;flex-wrap:wrap}
.profile-history-head,.history-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.profile-history-head>div{display:flex;gap:4px}.ghost.micro{padding:3px 6px;font-size:7px;border-radius:6px}
.match-history-panel{margin-top:10px}.history-panel-head strong{display:block;margin-top:2px}.match-history-list{display:grid;gap:6px;margin-top:9px}.history-row{display:grid;grid-template-columns:58px minmax(110px,1.2fr) repeat(4,minmax(62px,.7fr));gap:6px;align-items:center;padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.065);font-size:9px}.history-row.win{border-left:3px solid #68c18d}.history-row.loss{border-left:3px solid #d86a6a}.history-row.draw{border-left:3px solid #97a1ae}.history-row.active{outline:1px solid rgba(222,190,111,.65);background:rgba(222,190,111,.07)}.history-row .history-outcome{font-weight:1000;letter-spacing:.08em}.history-row small{display:block;color:#8fa0b5}.history-row b{font-size:9px}.history-empty{padding:10px;color:#8fa0b5}
.net-chip.good{color:#a8e5c0;border-color:rgba(89,190,132,.35)}.net-chip.warn{color:#f0d28a;border-color:rgba(213,169,77,.35)}.net-chip.slow{color:#f0a0a6;border-color:rgba(212,92,104,.4)}
.reconnect-banner.recovered{border-color:#4f8a66;background:rgba(24,55,39,.97);color:#b9ebcc}.reconnect-banner strong{color:#fff}.reconnect-banner .resume-meta{opacity:.82;margin-left:5px}
.result-diagnostics{margin-top:9px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06);font-size:9px;color:#aebbd0;display:flex;gap:12px;flex-wrap:wrap}.result-diagnostics b{color:#e7edf6}
@media(max-width:760px){.history-row{grid-template-columns:52px 1fr 1fr;grid-auto-rows:auto}.history-row .history-extra{display:none}.profile-history-head{align-items:flex-start}.profile-history-head>div{flex-direction:column}.ghost.micro{min-height:28px}.guide-actions button{min-height:40px}.mobile-battle-dock button{min-height:44px;touch-action:manipulation}.battle button,.battle select{touch-action:manipulation}}

/* v2.14.0: keep world labels above headgear and compact enough for adjacent formation slots */
.world-unit-label{width:calc(88px * var(--hud-scale));min-width:calc(88px * var(--hud-scale));max-width:calc(88px * var(--hud-scale));padding:3px 4px}
.wl-top{gap:3px}.wl-top strong{font-size:8px}.wl-top span{font-size:6.5px}
