:root{--bg:#07080b;--panel:#11141a;--panel2:#181d24;--text:#eceff4;--muted:#9aa3ad;--red:#bd1f2d;--red2:#ff3048;--green:#69d391;--gold:#e0b64b;--cyan:#70d7ff}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(circle at top,#1a1013,#050608 60%);color:var(--text);font-family:Consolas,Monaco,'Courier New',monospace;min-height:100%;overflow-x:hidden}button{font:inherit;background:#151922;color:var(--text);border:1px solid #424956;padding:.65rem .8rem;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}button:hover,button:focus{border-color:var(--red2);box-shadow:0 0 14px rgba(255,48,72,.35);outline:none}.hidden{display:none!important}.avos-crt{position:relative;box-shadow:0 0 40px rgba(189,31,45,.18),inset 0 0 60px rgba(0,0,0,.65);border:1px solid rgba(255,255,255,.12)}.avos-crt:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035),rgba(255,255,255,.035) 1px,transparent 1px,transparent 4px);mix-blend-mode:overlay}.boot-screen,.main-menu{min-height:100vh;display:grid;place-items:center;padding:20px}.boot-terminal,.menu-card{width:min(980px,94vw);min-height:620px;background:linear-gradient(145deg,#080b0f,#11141a);padding:28px;border-radius:8px}.boot-header,.db-header,.topbar{display:flex;justify-content:space-between;gap:12px;color:#fff;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:12px;margin-bottom:16px}.boot-lines{min-height:300px;line-height:1.7;color:#c7d0d9;white-space:pre-wrap}.boot-progress{height:12px;border:1px solid #39414a;margin:14px 0;background:#050608}.boot-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),#fff);transition:width .35s}.boot-logo{text-align:center;margin-top:24px}.boot-logo img,.menu-logo{max-width:min(720px,90%);height:auto}.classified{color:var(--red2);font-weight:bold}.main-menu{background:linear-gradient(rgba(5,6,8,.70),rgba(5,6,8,.94)),url("../assets/ui/menu_background.png"),radial-gradient(circle at 70% 0,rgba(189,31,45,.22),transparent 45%);background-size:cover,cover,auto;background-position:center,center,center}.menu-card{text-align:center}.menu-card h1{font-size:clamp(44px,9vw,96px);line-height:.9;margin:.2em 0}.menu-card h1 span{color:#fff;text-shadow:0 0 24px rgba(255,48,72,.8)}.menu-subtitle,.menu-info,.ui-kit-note{color:var(--muted)}.menu-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:20px auto;max-width:760px}.topbar{position:sticky;top:0;z-index:20;background:rgba(8,10,14,.96);padding:10px 14px;align-items:center;border-bottom:1px solid #2b3138}.brand{display:flex;align-items:center;gap:10px;font-weight:bold}.brand img{height:34px}.top-actions{display:flex;flex-wrap:wrap;gap:6px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;padding:14px;max-width:1420px;margin:auto}.game-card,.panel,.database-modal{background:rgba(14,17,23,.94);border:1px solid #2b3138;border-radius:8px;padding:12px}.mission-strip,.objective-tracker{background:#0b0d11;border:1px solid #29313b;padding:10px;margin-bottom:10px;color:#cbd3dc}.objective-tracker b{color:var(--gold)}canvas#game{width:100%;max-height:72vh;background:#030405;border:1px solid #3b444e;image-rendering:pixelated;display:block}.panel{display:flex;flex-direction:column;gap:12px}.hero-card{display:flex;gap:10px;align-items:center}.hero-card img{width:72px;height:72px;object-fit:cover;border:1px solid var(--red)}.hero-card h2{margin:0}.hero-card p{margin:.2rem 0;color:var(--muted);font-size:.82rem}.stats,.mini-db,#log,#inventory,#roster,.mission-checklist{display:grid;gap:7px}.statrow,.invrow,.logrow,.mission-row{background:#0b0d11;border:1px solid #27303a;padding:8px}.bar{height:12px;background:#050608;border:1px solid #29313b;margin-top:4px}.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--red),#f76)}.bar.ep span{background:linear-gradient(90deg,#3867ff,#70d7ff)}.bar.xp span{background:linear-gradient(90deg,#6f42c1,#d2a8ff)}.minimap{width:100%;border:1px solid #29313b;background:#050608;image-rendering:pixelated}.mini-hint{font-size:.75rem;color:var(--muted)}.mobile-pad{text-align:center;margin-top:10px;display:none}.mobile-pad button{min-width:58px;margin:3px}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:50;display:grid;place-items:center;padding:16px}.database-modal{width:min(1100px,96vw);max-height:92vh;overflow:auto}.modal-close{float:right}.operator-file,.fracture-grid,.inventory-db-layout,.anomaly-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.operator-art img{width:100%;max-height:620px;object-fit:cover;border:1px solid #3b444e}.record-kicker{color:var(--red2);font-weight:bold;letter-spacing:.1em}.record-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.record-grid div,.protocol-list div,.legend span{background:#0b0d11;border:1px solid #2b3138;padding:8px}.record-grid b,.protocol-list b{display:block;color:#fff}.record-grid span,.protocol-list span{color:var(--muted)}.protocol-list,.legend{display:grid;gap:7px}.asset-code{display:block;white-space:pre-wrap;background:#050608;color:#cbd3dc;border:1px solid #29313b;padding:10px}.anomaly-list{display:grid;gap:8px}.battle{width:min(1100px,96vw);min-height:660px;background-size:cover;background-position:center;border:1px solid #3b444e;padding:18px;display:flex;flex-direction:column;justify-content:space-between}.battle-tag{color:#fff;background:rgba(189,31,45,.85);padding:8px 12px;width:max-content}.battle-stage{display:flex;align-items:end;justify-content:space-around;min-height:330px}.battle-sprite{max-width:36%;max-height:320px;filter:drop-shadow(0 20px 18px rgba(0,0,0,.8))}.battle-ui{background:rgba(8,10,14,.94);border:1px solid #39414a;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.attacks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.damage-pop{animation:pop .6s ease}@keyframes pop{0%{transform:scale(.8);opacity:.4}50%{transform:scale(1.06);opacity:1}100%{transform:scale(1);opacity:1}}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#11141a;border:1px solid var(--red);padding:12px 16px;z-index:100;box-shadow:0 0 18px rgba(189,31,45,.35)}body.reduced-motion *{transition:none!important;animation:none!important}body.no-crt .avos-crt:after{display:none}body.large-text{font-size:18px}@media(max-width:980px){.layout{grid-template-columns:1fr}.panel{order:2}.topbar{position:static}.operator-file,.fracture-grid,.inventory-db-layout,.anomaly-layout,.battle-ui{grid-template-columns:1fr}.mobile-pad{display:block}.battle-sprite{max-width:45%}} 


/* v26: gameplay viewport + responsive text fixes */
html, body { width:100%; max-width:100%; }
body.game-active { overflow:hidden; height:100dvh; }
body.game-active #app { height:100dvh; overflow:hidden; display:flex; flex-direction:column; }
body.game-active .topbar { flex:0 0 auto; }
body.game-active .layout { flex:1 1 auto; min-height:0; overflow:hidden; }
body.game-active .game-card, body.game-active .panel { min-height:0; overflow:auto; }
body.game-active .game-card { display:flex; flex-direction:column; }
body.game-active canvas#game { flex:1 1 auto; height:auto; max-height:none; min-height:240px; }

/* Stop text from forcing the page wider/taller than the viewport. */
body { font-size:clamp(13px, 1.55vw, 16px); line-height:1.35; }
button { white-space:normal; overflow-wrap:anywhere; line-height:1.15; }
h1,h2,h3,p,div,span,button,code { overflow-wrap:anywhere; }
.asset-code, code { max-width:100%; overflow:auto; }
.topbar { gap:8px; }
.top-actions button { padding:.5rem .55rem; font-size:clamp(11px, 1.4vw, 14px); }
.menu-card h1 { font-size:clamp(38px, 8vw, 92px); }
.panel h3, .game-card h3 { margin:.35rem 0; }
.statrow,.invrow,.logrow,.mission-row { padding:7px; }

@media (max-width: 980px){
  body.game-active { overflow:auto; height:auto; min-height:100dvh; }
  body.game-active #app { height:auto; min-height:100dvh; overflow:visible; }
  body.game-active .layout { overflow:visible; }
  body.game-active .game-card, body.game-active .panel { overflow:visible; }
  canvas#game { max-height:58vh; }
  .top-actions { width:100%; }
  .top-actions button { flex:1 1 120px; }
  .layout { padding:8px; gap:8px; }
}

@media (max-width: 560px){
  .boot-screen,.main-menu{ padding:10px; }
  .boot-terminal,.menu-card{ width:100%; min-height:auto; padding:16px; }
  .boot-lines{ min-height:220px; font-size:12px; }
  .brand img{ height:28px; }
  .brand{ font-size:12px; }
  .menu-buttons{ grid-template-columns:1fr; }
  .battle{ min-height:560px; }
  .attacks{ grid-template-columns:1fr; }
  .record-grid{ grid-template-columns:1fr; }
}

/* v28: Battle UI polish + searchable creature database */
#battleOverlay{padding:12px;align-items:center;justify-items:center;}
.battle{
  width:min(1180px,96vw);
  min-height:auto;
  aspect-ratio:16/9;
  max-height:92vh;
  position:relative;
  overflow:hidden;
  background-color:#06080b;
  border:1px solid rgba(255,48,72,.55);
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 0 34px rgba(189,31,45,.35);
  padding:0;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.battle:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.08) 45%,rgba(0,0,0,.65));pointer-events:none;}
.battle-tag{position:relative;z-index:2;margin:12px 12px 0;font-size:clamp(11px,1.2vw,14px);letter-spacing:.1em;border:1px solid rgba(255,255,255,.18);}
.battle-stage{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:18px;min-height:0;padding:8px 34px 4px;}
.battle-sprite{max-width:100%;width:100%;height:min(38vh,310px);object-fit:contain;object-position:center bottom;}
.battle-sprite.hero{justify-self:start;transform:scaleX(1);}
.battle-sprite.enemy{justify-self:end;}
.battle-ui{position:relative;z-index:3;margin:0 12px 12px;background:rgba(8,10,14,.94);border:1px solid rgba(255,255,255,.18);grid-template-columns:minmax(280px,1fr) minmax(330px,1fr);}
.battle-ui h2{margin:.1rem 0 .35rem;font-size:clamp(18px,2vw,28px);line-height:1.05;color:#fff;text-shadow:0 0 12px rgba(255,48,72,.45);}
#battleText{min-height:2.6em;color:#dfe5ec;}
.attacks button{min-height:74px;display:flex;align-items:center;justify-content:center;text-align:center;border-color:#38414c;background:linear-gradient(180deg,#1a202b,#111620);}
.attacks button:first-child{border-color:rgba(255,48,72,.8);}
#battleHp .statrow{padding:6px;margin-bottom:5px;}
#battleHp .bar{height:10px;}
.creature-tools{display:grid;gap:8px;position:sticky;top:0;background:rgba(14,17,23,.98);z-index:2;padding-bottom:8px;}
.creature-tools input,.creature-tools select{width:100%;background:#080b0f;color:var(--text);border:1px solid #39414a;padding:9px;font:inherit;}
.creature-count{color:var(--muted);font-size:.85rem;}
.creature-list-buttons{display:grid;gap:7px;max-height:62vh;overflow:auto;padding-right:4px;}
.creature-list-buttons button{text-align:left;display:grid;grid-template-columns:76px 1fr;gap:8px;align-items:center;padding:.55rem .65rem;}
.creature-list-buttons button span{color:var(--red2);font-weight:bold;}
.creature-list-buttons button b{font-size:.9em;}
.creature-card-file h2{font-size:clamp(24px,3vw,42px);margin:.25rem 0 .75rem;}
.creature-preview{height:clamp(220px,40vh,420px);display:grid;place-items:center;background:radial-gradient(circle at center,rgba(189,31,45,.15),rgba(0,0,0,.45));border:1px solid #343c46;margin-bottom:12px;}
.creature-preview img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.85));}
.fineprint{color:var(--muted);font-size:.86rem;}
@media(max-width:760px){.battle{aspect-ratio:auto;min-height:620px}.battle-stage{grid-template-columns:1fr;padding:6px 18px}.battle-sprite{height:170px}.battle-ui{grid-template-columns:1fr}.attacks{grid-template-columns:1fr 1fr}.creature-list-buttons button{grid-template-columns:1fr}}

/* v29: Imported item library database */
.item-tools{display:grid;gap:8px;margin-bottom:10px;position:sticky;top:0;background:rgba(14,17,23,.98);z-index:2;padding-bottom:8px;}
.item-tools input,.item-tools select{width:100%;background:#080b0f;color:var(--text);border:1px solid #39414a;padding:9px;font:inherit;}
.item-count{color:var(--muted);font-size:.85rem;}
.owned-items{margin-bottom:14px;}
.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:62vh;overflow:auto;padding-right:4px;}
.item-card{text-align:left;display:grid;gap:5px;padding:10px;min-height:178px;}
.item-card img{width:64px;height:64px;object-fit:contain;background:#050608;border:1px solid #343c46;image-rendering:auto;}
.item-card span{color:var(--red2);font-size:.78rem;font-weight:bold;}
.item-card b{font-size:.9rem;line-height:1.15;}
.item-card em{color:var(--gold);font-style:normal;font-size:.76rem;}
.item-card small{color:var(--muted);font-size:.7rem;}

/* v30: fixed game screen + database scroll containment */
html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  overscroll-behavior: none;
}
body { min-height: 100dvh; }
body.game-active #app,
.boot-screen,
.main-menu,
.overlay {
  position: fixed;
  inset: 0;
  overflow: hidden;
}
body.game-active #app {
  height: 100dvh;
  max-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.topbar { flex: 0 0 auto; min-height: 54px; }
.layout {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: grid;
}
.game-card, .panel { min-height: 0; overflow: hidden; }
.game-card { display: flex; flex-direction: column; }
canvas#game {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  max-height: none !important;
}
.panel {
  overflow-y: auto;
  scrollbar-color: #bd1f2d #0b0d11;
}
.overlay {
  z-index: 80;
  padding: clamp(8px, 1.6vw, 18px);
  place-items: center;
}
.database-modal {
  width: min(1120px, calc(100vw - 28px));
  height: min(760px, calc(100dvh - 36px));
  max-height: none;
  overflow: hidden !important;
  display: flex;
  flex-direction: column;
}
.db-header { flex: 0 0 auto; }
.modal-close { flex: 0 0 auto; }
.operator-file,
.anomaly-layout,
.inventory-db-layout,
.database-modal > .fracture-grid {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.anomaly-list,
.anomaly-file,
.inventory-database-list,
.operator-data,
.operator-art,
.fracture-card,
.playtest-modal .fracture-grid,
.mission-modal .fracture-grid,
.config-modal .fracture-grid {
  min-height: 0;
  overflow-y: auto;
  scrollbar-color: #bd1f2d #0b0d11;
}
.creature-list-buttons,
.item-grid {
  max-height: none;
  flex: 1 1 auto;
  min-height: 0;
}
.creature-tools,
.item-tools { position: sticky; top: 0; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: #0b0d11; }
*::-webkit-scrollbar-thumb { background: #bd1f2d; border: 2px solid #0b0d11; }
*::-webkit-scrollbar-thumb:hover { background: #ff3048; }
@media (max-width: 980px){
  body.game-active, body.game-active #app, body.game-active .layout { overflow: hidden !important; height: 100dvh; }
  .layout { grid-template-columns: 1fr; }
  .panel { display: none; }
  .mobile-pad { flex: 0 0 auto; display: block; }
  canvas#game { min-height: 0; }
}


/* v32 legacy systems integration */
.progression-layout{display:grid;grid-template-columns:0.85fr 1.15fr;gap:14px;flex:1;min-height:0;overflow:hidden}
.style-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.style-card{display:flex;align-items:center;gap:10px;min-height:54px;text-align:left}
.style-card.active{border-color:#ff3048;background:linear-gradient(90deg,rgba(189,31,45,.25),rgba(255,48,72,.04))}
.style-card img,.skill-row img{width:32px;height:32px;image-rendering:auto;object-fit:contain}
.progression-list{display:grid;gap:8px;min-height:0;overflow-y:auto;padding-right:8px}
.skill-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.12);background:rgba(12,15,20,.72);padding:8px}
.skill-row b{display:block;color:#fff}.skill-row span{display:block;color:#aeb6c2;font-size:12px;margin:2px 0 4px}.skill-row.noncombat{opacity:.82}
@media(max-width:900px){.progression-layout{grid-template-columns:1fr}.style-picker{grid-template-columns:1fr}}

/* v33 code-only CIW reuse: CSS badge replaces legacy skill image dependencies */
.skill-glyph{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  min-width:34px;
  border:1px solid rgba(255,48,72,.65);
  background:linear-gradient(145deg, rgba(255,48,72,.18), rgba(10,14,20,.88));
  color:#ff3048;
  box-shadow:0 0 12px rgba(255,48,72,.18);
  font-weight:900;
  margin-right:10px;
}
.style-card .skill-glyph{margin-right:8px;}

/* v38: production item icon pipeline + polished inventory slots */
.owned-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.owned-item{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;background:linear-gradient(135deg,rgba(13,17,24,.96),rgba(5,7,10,.92));border:1px solid #343c46;padding:8px;position:relative;overflow:hidden}.owned-item:before,.item-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.05),transparent);opacity:0;transition:.18s}.owned-item:hover:before,.item-card:hover:before{opacity:1}.owned-item img{width:48px;height:48px;object-fit:contain;background:radial-gradient(circle,rgba(255,255,255,.08),rgba(0,0,0,.45));border:1px solid rgba(255,255,255,.15);padding:4px}.owned-item b{display:block}.owned-item span,.owned-item small{display:block;color:var(--muted);font-size:.78rem}.owned-item button{padding:.35rem .5rem;font-size:.75rem}.item-card{position:relative;overflow:hidden;background:linear-gradient(160deg,#111722,#080a0f);border:1px solid #39414a;transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease}.item-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.35)}.item-card img{width:76px;height:76px;border-radius:8px;padding:6px;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.08),rgba(0,0,0,.55));box-shadow:inset 0 0 18px rgba(0,0,0,.8)}.rarity-common{border-color:#646b73!important}.rarity-uncommon{border-color:#42c978!important}.rarity-rare{border-color:#4aa3ff!important}.rarity-epic{border-color:#aa62ff!important}.rarity-legendary{border-color:#ff9b2f!important}.rarity-mythic{border-color:#ff3048!important}.rarity-relic{border-color:#ffd166!important}.rarity-singularity{border-color:#ff3048!important;box-shadow:0 0 14px rgba(255,48,72,.25)}

/* v39: polished inventory/database icon UI */
.invrow-polished{
  display:grid;
  grid-template-columns:48px 1fr auto;
  gap:10px;
  align-items:center;
  min-height:60px;
  background:linear-gradient(135deg,rgba(17,23,32,.92),rgba(5,7,10,.86));
  border-left-width:3px;
}
.invrow-polished small{display:block;color:var(--muted);font-size:.72rem;margin-top:2px;line-height:1.15}
.item-icon-shell{
  width:54px;height:54px;display:grid;place-items:center;position:relative;flex:0 0 auto;
  border:1px solid #3a4350;border-radius:10px;
  background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.10),rgba(0,0,0,.55) 62%),linear-gradient(145deg,#151a22,#06080d);
  box-shadow:inset 0 0 18px rgba(0,0,0,.72),0 0 12px rgba(0,0,0,.25);
  overflow:hidden;
}
.item-icon-shell:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 28%,transparent 70%,rgba(255,255,255,.04));pointer-events:none}
.item-icon-shell img{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(0,0,0,.65));background:transparent!important;border:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}
.item-qty{position:absolute;right:3px;bottom:2px;min-width:20px;text-align:center;background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.18);padding:1px 4px;font-size:.68rem;color:#fff;font-weight:bold}
.item-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.inventory-layout-pro{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1.1fr);gap:14px;margin-bottom:14px}
.owned-items{background:rgba(6,8,12,.42);border:1px solid rgba(255,255,255,.08);padding:10px;max-height:34vh;overflow:auto}
.owned-grid{grid-template-columns:1fr!important}
.owned-item{width:100%;text-align:left;border-left-width:3px!important;border-radius:6px;grid-template-columns:60px 1fr 68px!important;min-height:72px}
.owned-item em{font-style:normal;color:var(--gold);font-size:.72rem;text-align:right;position:relative;z-index:1}
.owned-item small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.item-detail-panel{background:linear-gradient(145deg,rgba(12,16,22,.96),rgba(4,6,10,.92));border:1px solid #39414a;padding:14px;min-height:260px;position:sticky;top:70px;align-self:start;box-shadow:inset 0 0 30px rgba(0,0,0,.35)}
.item-detail-top{display:flex;align-items:center;gap:14px;margin:10px 0 12px}.item-detail-top .item-icon-shell{width:84px;height:84px}.item-detail-top .item-icon-shell img{width:70px;height:70px}.item-detail-top h2{margin:.1rem 0;color:#fff}.item-detail-top p{margin:.2rem 0;color:var(--muted)}
.item-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important;gap:12px!important;max-height:48vh!important}.item-card{min-height:212px!important;align-content:start;border-left-width:3px!important;border-radius:6px}.item-card .item-icon-shell{width:86px;height:86px;margin-bottom:6px}.item-card .item-icon-shell img{width:72px;height:72px}.item-card span{letter-spacing:.04em}.item-card b{font-size:.94rem!important}.item-card em,.item-card small{line-height:1.25}
.rarity-common .item-icon-shell,.item-icon-shell.rarity-common{border-color:#646b73}.rarity-uncommon .item-icon-shell,.item-icon-shell.rarity-uncommon{border-color:#42c978;box-shadow:inset 0 0 18px rgba(0,0,0,.72),0 0 12px rgba(66,201,120,.16)}.rarity-rare .item-icon-shell,.item-icon-shell.rarity-rare{border-color:#4aa3ff;box-shadow:inset 0 0 18px rgba(0,0,0,.72),0 0 12px rgba(74,163,255,.16)}.rarity-epic .item-icon-shell,.item-icon-shell.rarity-epic{border-color:#aa62ff;box-shadow:inset 0 0 18px rgba(0,0,0,.72),0 0 12px rgba(170,98,255,.18)}.rarity-legendary .item-icon-shell,.item-icon-shell.rarity-legendary{border-color:#ff9b2f;box-shadow:inset 0 0 18px rgba(0,0,0,.72),0 0 12px rgba(255,155,47,.20)}.rarity-mythic .item-icon-shell,.item-icon-shell.rarity-mythic{border-color:#ff3048;box-shadow:inset 0 0 18px rgba(0,0,0,.72),0 0 14px rgba(255,48,72,.22)}
@media(max-width:980px){.inventory-layout-pro{grid-template-columns:1fr}.item-detail-panel{position:static}.item-filter-row{grid-template-columns:1fr}.owned-grid{grid-template-columns:1fr!important}}

/* v40: combat UI polish + fixed JRPG-style battle presentation */
#battleOverlay{background:radial-gradient(circle at 50% 20%,rgba(189,31,45,.22),rgba(0,0,0,.88) 55%),rgba(0,0,0,.86)}
.battle{
  width:min(1180px,calc(100vw - 34px));
  height:min(720px,calc(100dvh - 34px));
  min-height:0!important;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,48,72,.46);
  border-radius:12px;
  padding:14px;
  background-size:cover!important;
  background-position:center!important;
  box-shadow:0 0 42px rgba(0,0,0,.82), inset 0 0 120px rgba(0,0,0,.70);
}
.battle:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,6,9,.25),rgba(4,6,9,.68)),radial-gradient(circle at 50% 45%,transparent 25%,rgba(0,0,0,.55) 84%);pointer-events:none;z-index:0}.battle>*{position:relative;z-index:1}
.battle-hud-top{display:flex;justify-content:space-between;align-items:center;gap:12px;background:rgba(5,7,10,.78);border:1px solid rgba(255,255,255,.13);padding:10px 12px;border-left:3px solid var(--red2);backdrop-filter:blur(4px)}
.battle-hud-top b{display:block;font-size:clamp(16px,2vw,24px);line-height:1.05;max-width:680px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-kicker,.battle-location{color:var(--muted);font-size:12px;letter-spacing:.12em}.battle-location{color:var(--cyan);text-align:right}
.battle-stage{flex:1 1 auto;min-height:0!important;height:calc(100% - 236px);display:grid!important;grid-template-columns:1fr 80px 1fr;align-items:end;justify-items:center;padding:12px 18px 0}.combatant{position:relative;display:grid;place-items:end center;width:100%;height:100%}.combatant-name{position:absolute;bottom:5px;background:rgba(5,7,10,.80);border:1px solid rgba(255,255,255,.13);padding:5px 9px;font-size:12px;color:#dce7f0}.hero-side .combatant-name{left:6%}.enemy-side .combatant-name{right:6%;color:#ff8b98}.battle-sprite{max-height:calc(100% - 34px)!important;max-width:min(42vw,420px)!important;object-fit:contain;transition:filter .16s ease,transform .16s ease}.battle-sprite.hero{transform:translateX(-4%) scale(1.02)}.battle-sprite.enemy{transform:translateX(4%) scale(1.05)}.battle-sprite.hit-flash{filter:brightness(2.1) contrast(1.45) drop-shadow(0 0 24px #fff)!important;transform:translateY(-4px) scale(1.08)}
.damage-layer{position:relative;width:100%;height:100%;pointer-events:none}.damage-number{position:absolute;top:38%;font-weight:900;font-size:clamp(22px,3vw,40px);text-shadow:0 3px 0 #000,0 0 18px rgba(255,255,255,.4);animation:damageFloat .9s ease forwards;white-space:nowrap}.damage-number.enemy{right:10%}.damage-number.hero{left:4%}.damage-number.hit{color:#fff}.damage-number.crit{color:#ff3048;font-size:clamp(28px,4vw,52px)}.damage-number.heal{color:#69d391}.damage-number.dodge{color:#70d7ff}@keyframes damageFloat{0%{opacity:0;transform:translateY(20px) scale(.8)}15%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(-54px) scale(1)}}
.battle-ui{flex:0 0 auto!important;background:linear-gradient(180deg,rgba(8,10,14,.96),rgba(4,6,10,.98));border:1px solid rgba(255,255,255,.13);border-left:3px solid var(--red);padding:12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.88fr);gap:12px;min-height:164px}.battle-status-panel{display:grid;gap:8px;min-width:0}.battle-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.battle-meter{background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.10);padding:7px}.battle-meter b{display:block;color:#fff;font-size:13px}.battle-meter span{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-meter.focus-meter{display:flex;align-items:center;justify-content:space-between;gap:8px}.bar.big{height:14px;border-color:rgba(255,255,255,.16);background:#050608}.bar.big span{box-shadow:0 0 12px rgba(255,48,72,.38)}.battle-log-line{margin:0;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);padding:9px;min-height:44px;color:#dce7f0}.battle-command-panel{display:grid;grid-template-rows:auto 1fr;gap:8px}.command-title{font-size:12px;color:var(--cyan);letter-spacing:.12em}.attacks{grid-template-columns:1fr 1fr!important;gap:8px}.attacks button{text-align:left;min-height:54px;background:linear-gradient(145deg,rgba(18,23,32,.96),rgba(7,9,13,.96));border-left:3px solid rgba(255,48,72,.72)}.attacks button b{display:block;font-size:13px}.attacks button span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.attacks button:disabled{opacity:.4;filter:grayscale(1)}
.battle-victory{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(0,0,0,.70);backdrop-filter:blur(5px)}.victory-card{width:min(620px,92%);background:linear-gradient(145deg,rgba(13,17,24,.98),rgba(4,6,10,.98));border:1px solid rgba(255,48,72,.55);border-left:4px solid var(--red2);box-shadow:0 0 48px rgba(0,0,0,.75);padding:20px}.victory-card h2{margin:.2rem 0 .5rem;color:#fff}.victory-loot{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0}.victory-loot-item{display:grid;place-items:center;text-align:center;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.10);padding:10px;gap:5px;border-left-width:3px!important}.victory-loot-item .item-icon-shell{width:70px;height:70px}.victory-loot-item .item-icon-shell img{width:58px;height:58px}.victory-loot-item span{font-size:12px;color:#dce7f0}
.battle-shake{animation:battleShake .28s linear}@keyframes battleShake{0%,100%{transform:translate(0)}20%{transform:translate(-5px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(3px,1px)}}
@media(max-width:760px){.battle{height:calc(100dvh - 20px);width:calc(100vw - 20px);padding:10px}.battle-stage{height:calc(100% - 310px);grid-template-columns:1fr 30px 1fr;padding:6px 0}.battle-ui{grid-template-columns:1fr;min-height:260px}.battle-bars{grid-template-columns:1fr}.attacks{grid-template-columns:1fr!important}.battle-hud-top{align-items:flex-start;flex-direction:column}.battle-location{text-align:left}.battle-sprite{max-width:48vw!important}.combatant-name{display:none}}


/* v41: true fullscreen / fixed 16:9 game presentation */
#fullscreenBtn,#menuFullscreenBtn{border-color:rgba(112,215,255,.55)}
body.fullscreen-mode{background:#000!important;overflow:hidden!important;width:100vw;height:100dvh;}
body.fullscreen-mode #app{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;background:#000;}
body.fullscreen-mode .topbar{position:absolute;top:8px;left:8px;right:8px;z-index:30;background:rgba(5,7,10,.62);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px);opacity:.18;transition:opacity .15s ease;}
body.fullscreen-mode .topbar:hover,body.fullscreen-mode .topbar:focus-within{opacity:1;}
body.fullscreen-mode .layout{position:absolute;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important;overflow:hidden!important;}
body.fullscreen-mode .game-card{position:absolute;inset:0!important;width:100vw!important;height:100dvh!important;border:0!important;border-radius:0!important;padding:0!important;background:#000!important;display:flex!important;overflow:hidden!important;}
body.fullscreen-mode .mission-strip,body.fullscreen-mode .objective-tracker{position:absolute;left:16px;z-index:12;width:min(760px,calc(100vw - 32px));background:rgba(5,7,10,.68);backdrop-filter:blur(6px);border-color:rgba(112,215,255,.22);font-size:12px;opacity:.18;transition:opacity .15s ease;}
body.fullscreen-mode .mission-strip{top:70px;}
body.fullscreen-mode .objective-tracker{top:124px;}
body.fullscreen-mode .mission-strip:hover,body.fullscreen-mode .objective-tracker:hover{opacity:1;}
body.fullscreen-mode canvas#game{width:100vw!important;height:100dvh!important;max-height:none!important;min-height:0!important;border:0!important;display:block!important;object-fit:contain;background:#000;}
body.fullscreen-mode .panel{display:none!important;}
body.fullscreen-mode .mobile-pad{position:absolute;left:16px;bottom:16px;z-index:20;background:rgba(5,7,10,.55);padding:8px;border:1px solid rgba(255,255,255,.12);border-radius:8px;opacity:.2;transition:opacity .15s ease;}
body.fullscreen-mode .mobile-pad:hover{opacity:1;}
.fullscreen-hint{position:fixed;right:12px;bottom:12px;z-index:120;background:rgba(5,7,10,.82);border:1px solid rgba(112,215,255,.45);color:#dce7f0;padding:8px 10px;font-size:12px;pointer-events:none;animation:fsHint 2.2s ease forwards;}
@keyframes fsHint{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:translateY(0)}80%{opacity:1}100%{opacity:0}}
body.fullscreen-mode .overlay{position:fixed!important;inset:0!important;}
body.fullscreen-mode .battle{width:100vw!important;height:100dvh!important;max-height:none!important;border-radius:0!important;border:0!important;}
@media(max-width:980px){body.fullscreen-mode .topbar{display:none!important}body.fullscreen-mode .mission-strip,body.fullscreen-mode .objective-tracker{display:none!important}body.fullscreen-mode .mobile-pad{display:block!important;opacity:.42}}

/* v42: launch directly into fullscreen-style app layout */
html, body { width:100%; height:100%; overflow:hidden !important; }
body { background:#000 !important; }
.boot-screen,.main-menu{position:fixed;inset:0;width:100vw;height:100dvh;min-height:0!important;overflow:hidden!important;padding:clamp(10px,2vw,20px)!important;}
.boot-terminal,.menu-card{height:min(760px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);overflow:hidden;display:flex;flex-direction:column;}
.boot-lines{flex:1;min-height:0;overflow:hidden;}
.menu-buttons{overflow:auto;min-height:0;padding-right:4px;}
body.fullscreen-mode .main-menu, body.fullscreen-mode .boot-screen{background-color:#000;}
body.fullscreen-mode .menu-card, body.fullscreen-mode .boot-terminal{width:min(1180px,calc(100vw - 24px));height:min(760px,calc(100dvh - 24px));}
body.fullscreen-mode #app:not(.hidden){display:flex!important;}
body.fullscreen-mode canvas#game{touch-action:none;}

/* v43 menu recovery / launch fix */
.main-menu .menu-card{
  overflow:auto !important;
  justify-content:flex-start !important;
  gap:10px;
}
.main-menu .menu-logo{
  max-height:36vh;
  object-fit:contain;
}
.main-menu .menu-card h1{
  font-size:clamp(32px,6vw,66px) !important;
  line-height:1 !important;
  margin:10px 0 !important;
}
.main-menu .menu-buttons{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important;
  gap:10px !important;
  max-height:none !important;
  overflow:visible !important;
  width:min(820px,100%);
  margin:12px auto !important;
  flex:0 0 auto;
}
.main-menu .menu-buttons button{
  min-height:44px;
}
.quick-start-hint{
  color:#70d7ff;
  border:1px solid rgba(112,215,255,.35);
  background:rgba(112,215,255,.08);
  padding:8px 10px;
  margin:8px auto;
  width:min(820px,100%);
  text-align:center;
}
@media(max-height:760px){
  .main-menu .menu-logo{max-height:28vh;}
  .main-menu .menu-card h1{font-size:clamp(28px,5vw,52px)!important;}
  .main-menu .menu-subtitle{margin:4px 0!important;}
}

/* v44 emergency menu launch recovery */
#mainMenu:not(.hidden) {
  pointer-events: auto !important;
  z-index: 999 !important;
}
#mainMenu:not(.hidden) .menu-card {
  overflow: auto !important;
  padding-bottom: 96px !important;
}
#mainMenu:not(.hidden) #newGameBtn {
  position: fixed !important;
  left: 50% !important;
  bottom: 28px !important;
  transform: translateX(-50%) !important;
  z-index: 2000 !important;
  min-width: min(420px, calc(100vw - 36px)) !important;
  min-height: 56px !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: linear-gradient(90deg, #7a1019, #bd1f2d) !important;
  border: 1px solid #ff3048 !important;
  box-shadow: 0 0 24px rgba(255,48,72,.45) !important;
  color: #fff !important;
  font-weight: 800 !important;
}
#mainMenu:not(.hidden) #newGameBtn::after {
  content: '  // PRESS ENTER';
  color: #70d7ff;
  font-weight: 400;
}
#mainMenu:not(.hidden) .menu-buttons {
  overflow: visible !important;
  max-height: none !important;
}

/* v45: fullscreen hotkey HUD and fixed in-game database access */
.fullscreen-quickbar{
  position:fixed;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  z-index:65;
  display:flex;
  gap:8px;
  padding:8px;
  background:rgba(5,7,10,.72);
  border:1px solid rgba(112,215,255,.28);
  border-radius:10px;
  backdrop-filter:blur(8px);
  box-shadow:0 0 28px rgba(0,217,255,.12);
  opacity:.32;
  transition:opacity .15s ease;
}
body:not(.fullscreen-mode) .fullscreen-quickbar{display:none!important;}
.fullscreen-quickbar:hover{opacity:1;}
.fullscreen-quickbar button{
  min-width:54px;
  padding:8px 10px;
  font-size:12px;
  border-color:rgba(112,215,255,.35);
  background:rgba(12,17,24,.92);
}
.fullscreen-quickbar button b{display:block;color:#70d7ff;font-size:14px;}
.fullscreen-sidehud{
  position:fixed;
  right:14px;
  top:74px;
  width:min(340px,calc(100vw - 28px));
  max-height:calc(100dvh - 110px);
  overflow:auto;
  z-index:64;
  padding:12px;
  background:linear-gradient(180deg,rgba(9,12,18,.92),rgba(4,6,10,.86));
  border:1px solid rgba(112,215,255,.28);
  border-left:3px solid rgba(112,215,255,.65);
  border-radius:8px;
  box-shadow:0 0 36px rgba(0,0,0,.55);
  backdrop-filter:blur(8px);
}
body:not(.fullscreen-mode) .fullscreen-sidehud{display:none!important;}
.fullscreen-sidehud.hidden{display:none!important;}
.fullscreen-sidehud h3{margin:.35rem 0 .55rem;color:#fff;}
.fullscreen-sidehud .mini-db,.fullscreen-sidehud .fs-mini-section{display:grid;gap:7px;margin-bottom:10px;}
.fullscreen-sidehud .fs-row{background:rgba(0,0,0,.36);border:1px solid rgba(255,255,255,.1);padding:8px;font-size:12px;}
.fullscreen-sidehud .minimap{height:110px;}
.fullscreen-help{
  position:fixed;
  left:14px;
  top:74px;
  z-index:64;
  width:min(360px,calc(100vw - 28px));
  background:rgba(5,7,10,.82);
  border:1px solid rgba(255,255,255,.16);
  border-left:3px solid var(--red2);
  padding:12px;
  border-radius:8px;
  color:#dce7f0;
  backdrop-filter:blur(8px);
}
body:not(.fullscreen-mode) .fullscreen-help{display:none!important;}
.fullscreen-help.hidden{display:none!important;}
.fullscreen-help kbd{display:inline-block;min-width:24px;text-align:center;background:#151922;border:1px solid #3b444e;padding:2px 5px;margin:2px;color:#fff;}
body.fullscreen-mode .database-modal{width:min(1180px,calc(100vw - 24px));height:min(820px,calc(100dvh - 24px));}
body.fullscreen-mode .overlay{z-index:90!important;}
@media(max-width:980px){.fullscreen-quickbar{left:8px;right:8px;transform:none;overflow-x:auto;justify-content:flex-start}.fullscreen-sidehud{left:8px;right:8px;top:58px;width:auto}.fullscreen-help{left:8px;right:8px;top:58px;width:auto}}

/* v46 menu protocol recovery: overlays must sit above the main menu and launch button */
.overlay{z-index:6000!important;}
.database-modal{z-index:6001!important;}
#mainMenu:not(.hidden){z-index:1000!important;}
#launchStart{z-index:1200!important;}
body.menu-protocol-open #mainMenu{filter:blur(2px) brightness(.55);pointer-events:none;}
body.menu-protocol-open .overlay{pointer-events:auto;filter:none;}
.menu-info.ok{color:var(--cyan)!important;}
.menu-info.warn{color:var(--gold)!important;}


/* v47 menu routing hard fix */
.protocol-quick-panel{z-index:7000!important;}
.protocol-quick-panel .database-modal{z-index:7001!important;}
#mainMenu:not(.hidden) .menu-buttons button{pointer-events:auto!important;position:relative;z-index:2100;}
#mainMenu:not(.hidden) #newGameBtn{pointer-events:auto!important;}
body.menu-protocol-open .protocol-quick-panel{filter:none!important;pointer-events:auto!important;}


/* v48 menu protocol hard recovery */
.overlay:not(.hidden){display:grid!important;z-index:9000!important;pointer-events:auto!important;}
body.menu-protocol-open #mainMenu.hidden + #app.hidden{display:none!important;}
.database-modal{position:relative;z-index:9001!important;}


/* v49 menu recovery / cache-bust patch */
#mainMenu:not(.hidden), #bootScreen:not(.hidden){z-index:9500!important;pointer-events:auto!important;}
#mainMenu button, #launchStart, .top-actions button{pointer-events:auto!important;position:relative!important;z-index:9600!important;}
.overlay:not(.hidden){z-index:9800!important;display:grid!important;pointer-events:auto!important;}
.database-modal{z-index:9801!important;}
.menu-card{overflow:auto!important;}
.menu-buttons button{min-height:44px;}
.boot-logo button{position:relative!important;z-index:9600!important;}
body.fullscreen-mode #app:not(.hidden){display:flex!important;}

/* v50: no-scroll main menu + contained database previews */
html, body { overflow: hidden !important; height: 100%; }
#mainMenu:not(.hidden){
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  display:grid!important;
  place-items:center!important;
  padding:clamp(8px,1.5vw,18px)!important;
  overflow:hidden!important;
}
#mainMenu:not(.hidden) .menu-card{
  width:min(1080px, calc(100vw - 28px))!important;
  height:auto!important;
  max-height:calc(100dvh - 28px)!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:clamp(14px,2vh,24px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:clamp(8px,1.2vh,14px)!important;
}
#mainMenu .menu-kicker{flex:0 0 auto;font-size:clamp(11px,1.4vw,15px);}
#mainMenu .menu-logo{
  display:block!important;
  width:min(560px,72vw)!important;
  max-width:100%!important;
  max-height:clamp(72px,18vh,150px)!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  border:0!important;
}
#mainMenu .menu-card h1{
  margin:0!important;
  font-size:clamp(34px,6.2vh,68px)!important;
  line-height:.95!important;
}
#mainMenu .menu-subtitle{margin:0!important;font-size:clamp(12px,1.6vh,15px)!important;}
#mainMenu .menu-buttons{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  width:min(760px,88vw)!important;
  max-width:100%!important;
  margin:0 auto!important;
}
#mainMenu .menu-buttons button{
  min-height:42px!important;
  padding:8px 10px!important;
  font-size:clamp(11px,1.45vh,14px)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#mainMenu .quick-start-hint,
#mainMenu .menu-info,
#mainMenu .ui-kit-note{
  margin:0!important;
  font-size:clamp(11px,1.45vh,14px)!important;
  line-height:1.25!important;
}
#mainMenu #launchStart{display:none!important;}

/* Keep database/operator artwork fully visible instead of cropping it. */
.operator-art{display:flex!important;flex-direction:column!important;min-height:0!important;}
.operator-art img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:linear-gradient(180deg,rgba(8,10,14,.8),rgba(0,0,0,.55));
}
.operator-file{align-items:stretch!important;}
.database-modal{overscroll-behavior:contain!important;}

@media(max-height:720px){
  #mainMenu .menu-logo{max-height:90px!important;}
  #mainMenu .menu-card h1{font-size:clamp(28px,5.4vh,46px)!important;}
  #mainMenu .menu-buttons button{min-height:36px!important;padding:6px 8px!important;}
  #mainMenu .menu-buttons{gap:6px!important;}
  #mainMenu .quick-start-hint,#mainMenu .menu-info,#mainMenu .ui-kit-note{font-size:11px!important;}
}
@media(max-width:700px){
  #mainMenu .menu-buttons{grid-template-columns:1fr!important;width:min(420px,90vw)!important;}
  #mainMenu .menu-logo{max-height:95px!important;}
}


/* v53: maze/fog/battle/menu rebuild polish */
:root{--av-build:"0.5.3"}
body{overflow:hidden!important;}
#app{height:100dvh;overflow:hidden!important;}
.layout{max-width:none!important;width:100vw!important;height:calc(100dvh - 55px)!important;margin:0!important;padding:10px!important;overflow:hidden!important;}
.game-card{overflow:hidden!important;}
canvas#game{filter:brightness(.94) saturate(.82) contrast(1.04);}
.game-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,14,20,.08),rgba(7,14,20,.02) 50%,rgba(0,0,0,.10));mix-blend-mode:multiply;}
.game-card{position:relative;}

/* Main menu: no scrollbar, logo fully contained, protocol buttons always visible. */
.main-menu{overflow:hidden!important;}
#mainMenu .menu-card{width:min(1040px,calc(100vw - 36px))!important;height:min(690px,calc(100dvh - 36px))!important;min-height:0!important;overflow:hidden!important;padding:18px 28px!important;display:grid!important;grid-template-rows:auto minmax(110px,150px) auto auto auto auto auto!important;align-content:center!important;gap:10px!important;}
#mainMenu .menu-logo{max-width:min(620px,72vw)!important;width:100%!important;max-height:150px!important;height:100%!important;object-fit:contain!important;object-position:center!important;margin:0 auto!important;display:block!important;}
#mainMenu .menu-card h1{font-size:clamp(34px,5.8vh,64px)!important;line-height:.9!important;margin:0!important;}
#mainMenu .menu-subtitle{margin:0!important;font-size:clamp(12px,1.4vh,15px)!important;}
#mainMenu .menu-buttons{margin:6px auto!important;gap:8px!important;max-width:760px!important;grid-template-columns:repeat(3,minmax(180px,1fr))!important;}
#mainMenu .menu-buttons button{min-height:38px!important;padding:8px 10px!important;font-size:clamp(11px,1.35vh,14px)!important;}
#mainMenu .quick-start-hint{margin-top:2px!important;padding:8px!important;}
#mainMenu .menu-info,#mainMenu .ui-kit-note{margin:0!important;font-size:clamp(11px,1.35vh,14px)!important;}

/* Battle: lower combatants so they stand closer to the command panel. */
.battle-stage{height:calc(100% - 204px)!important;padding:4px 30px 0!important;align-items:end!important;}
.battle-sprite{max-height:calc(100% - 4px)!important;object-position:center bottom!important;}
.battle-sprite.hero{transform:translate(-2%,10%) scale(1.08)!important;}
.battle-sprite.enemy{transform:translate(2%,10%) scale(1.12)!important;}
.battle-ui{min-height:176px!important;}
.combatant-name{bottom:-2px!important;}

@media(max-height:760px){
  #mainMenu .menu-card{height:calc(100dvh - 24px)!important;padding:12px 22px!important;grid-template-rows:auto minmax(80px,115px) auto auto auto auto auto!important;gap:7px!important;}
  #mainMenu .menu-logo{max-height:115px!important;}
  #mainMenu .menu-card h1{font-size:clamp(28px,5.2vh,48px)!important;}
  #mainMenu .menu-buttons button{min-height:34px!important;padding:6px 8px!important;}
}
@media(max-width:900px){#mainMenu .menu-buttons{grid-template-columns:repeat(2,minmax(150px,1fr))!important;}}

/* v54: battle composition + audio/state polish */
.battle-stage{
  height:calc(100% - 176px)!important;
  padding:0 36px 0!important;
  align-items:end!important;
  overflow:visible!important;
}
.combatant{align-items:end!important;place-items:end center!important;overflow:visible!important;}
.combatant:after{
  content:"";
  position:absolute;
  bottom:8px;
  width:min(190px,62%);
  height:20px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.72),rgba(0,0,0,0) 70%);
  filter:blur(2px);
  z-index:-1;
}
.battle-sprite{max-height:calc(100% + 24px)!important;object-position:center bottom!important;}
.battle-sprite.hero{transform:translate(-2%,18%) scale(1.13)!important;}
.battle-sprite.enemy{transform:translate(2%,18%) scale(1.16)!important;}
.battle-ui{min-height:172px!important;position:relative;z-index:3;}
.combatant-name{bottom:-10px!important;}
@media(max-height:760px){
  .battle-stage{height:calc(100% - 158px)!important;}
  .battle-sprite.hero{transform:translate(-2%,20%) scale(1.10)!important;}
  .battle-sprite.enemy{transform:translate(2%,20%) scale(1.13)!important;}
  .battle-ui{min-height:158px!important;}
}


/* v59: stable title screen sizing + no resize jump. Loaded last on purpose. */
html, body{
  width:100vw!important;
  height:100dvh!important;
  min-height:100dvh!important;
  overflow:hidden!important;
}
.boot-screen,
.main-menu{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:0!important;
  padding:clamp(8px,1.6vh,16px)!important;
  overflow:hidden!important;
  display:grid!important;
  place-items:center!important;
}
.boot-terminal,
#mainMenu .menu-card{
  width:min(1060px, calc(100vw - 32px))!important;
  height:min(704px, calc(100dvh - 32px))!important;
  min-height:0!important;
  max-height:calc(100dvh - 32px)!important;
  overflow:hidden!important;
  padding:clamp(12px,2vh,22px) clamp(18px,2.6vw,32px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:clamp(6px,1.15vh,11px)!important;
}
#mainMenu .menu-kicker,
#mainMenu .menu-subtitle,
#mainMenu .quick-start-hint,
#mainMenu .menu-info,
#mainMenu .ui-kit-note{
  flex:0 0 auto!important;
  max-width:960px!important;
  text-align:center!important;
}
#mainMenu .menu-logo{
  flex:0 1 auto!important;
  width:min(620px,78vw)!important;
  height:auto!important;
  max-height:min(165px,22dvh)!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:0 auto!important;
  display:block!important;
}
#mainMenu .menu-card h1{
  flex:0 0 auto!important;
  margin:0!important;
  font-size:clamp(30px,7.2dvh,68px)!important;
  line-height:.9!important;
}
#mainMenu .menu-subtitle{
  margin:0!important;
  font-size:clamp(12px,1.65dvh,15px)!important;
  line-height:1.25!important;
}
#mainMenu .menu-buttons{
  flex:0 1 auto!important;
  width:min(820px,92vw)!important;
  max-width:100%!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:clamp(5px,.9vh,9px)!important;
  overflow:hidden!important;
}
#mainMenu .menu-buttons button{
  min-height:clamp(32px,4.8dvh,43px)!important;
  padding:clamp(5px,.9vh,8px) 9px!important;
  font-size:clamp(10px,1.45dvh,14px)!important;
  line-height:1.1!important;
}
#mainMenu .quick-start-hint,
#mainMenu .menu-info,
#mainMenu .ui-kit-note{
  margin:0!important;
  padding:0!important;
  font-size:clamp(10px,1.45dvh,13px)!important;
  line-height:1.2!important;
}
.boot-logo img{
  max-width:min(720px,86vw)!important;
  max-height:min(230px,30dvh)!important;
  object-fit:contain!important;
}
@media(max-width:780px){
  #mainMenu .menu-buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:520px), (max-height:620px){
  #mainMenu .menu-logo{max-height:min(110px,18dvh)!important;}
  #mainMenu .menu-card h1{font-size:clamp(24px,5.8dvh,42px)!important;}
  #mainMenu .menu-buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;}
  #mainMenu .menu-buttons button{min-height:30px!important;font-size:10px!important;padding:4px 6px!important;}
  #mainMenu .menu-subtitle,.quick-start-hint,#mainMenu .menu-info,#mainMenu .ui-kit-note{font-size:10px!important;}
}


/* v60 Chapter 1 story flow */
.story-overlay{
  position:fixed;
  inset:0;
  z-index:9500;
  display:grid;
  place-items:end center;
  padding:clamp(14px,3vw,34px);
  background:linear-gradient(180deg, rgba(3,6,10,.18), rgba(3,6,10,.62));
  pointer-events:auto;
}
.story-overlay.hidden{display:none!important;}
.story-card{
  width:min(980px, 96vw);
  border:1px solid rgba(112,215,255,.34);
  background:linear-gradient(135deg, rgba(5,12,18,.95), rgba(15,27,36,.92));
  box-shadow:0 24px 90px rgba(0,0,0,.62), inset 0 0 35px rgba(83,227,255,.05);
  border-radius:18px;
  padding:18px;
}
.story-kicker{color:#70d7ff;letter-spacing:.18em;text-transform:uppercase;font-size:.78rem;margin-bottom:12px;}
.story-body{display:grid;grid-template-columns:minmax(72px,110px) 1fr;gap:16px;align-items:center;}
.story-body img{width:100%;max-height:120px;object-fit:contain;filter:drop-shadow(0 0 18px rgba(73,220,255,.35));}
.story-speaker{color:#ffec9d;font-weight:800;letter-spacing:.12em;margin-bottom:8px;}
.story-body p{font-size:clamp(1rem,2.1vw,1.25rem);line-height:1.45;margin:0;color:#ecfbff;}
.story-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap;}
.story-actions button{min-width:130px;}
body.story-open #game{filter:saturate(.9) brightness(.8);}
.objective-tracker.objective-pulse{animation:objectivePulse .9s ease both;}
@keyframes objectivePulse{0%{box-shadow:0 0 0 rgba(112,215,255,0);transform:translateY(0)}35%{box-shadow:0 0 28px rgba(112,215,255,.34);transform:translateY(-2px)}100%{box-shadow:0 0 0 rgba(112,215,255,0);transform:translateY(0)}}
.mission-active-hint{border:1px solid rgba(112,215,255,.28);background:rgba(112,215,255,.08);padding:10px 12px;border-radius:12px;color:#ecfbff;margin:12px 0;font-weight:800;}
.chapter-clear-overlay{display:grid;place-items:center;z-index:9400;background:radial-gradient(circle at 50% 40%, rgba(112,215,255,.18), rgba(0,0,0,.76));}
.chapter-clear-overlay.hidden{display:none!important;}
.chapter-clear-card{width:min(760px,94vw);border:1px solid rgba(255,236,157,.42);background:linear-gradient(145deg,rgba(10,18,26,.96),rgba(30,22,12,.92));border-radius:20px;padding:24px;box-shadow:0 24px 100px rgba(0,0,0,.72),0 0 55px rgba(255,236,157,.16);text-align:center;}
.chapter-clear-card h2{font-size:clamp(2rem,6vw,4.5rem);margin:.2em 0;color:#ffec9d;text-shadow:0 0 22px rgba(255,236,157,.35);}
.chapter-rewards{justify-content:center;margin:16px 0;}
@media (max-width:640px){.story-body{grid-template-columns:72px 1fr}.story-card{padding:14px}.story-actions{justify-content:stretch}.story-actions button{flex:1}}


/* v61/v62: compact title menu so the new background title art stays visible */
#mainMenu:not(.hidden){
  place-items:end center!important;
  padding:clamp(14px,2vw,26px)!important;
  padding-top:clamp(250px,43vh,430px)!important;
  background:
    linear-gradient(180deg,rgba(3,5,8,.18) 0%,rgba(3,5,8,.30) 34%,rgba(3,5,8,.82) 100%),
    url("../assets/ui/menu_background.png"),
    radial-gradient(circle at 70% 0,rgba(189,31,45,.22),transparent 45%)!important;
  background-size:cover,cover,auto!important;
  background-position:center,center,center!important;
}
#mainMenu .menu-card{
  width:min(840px,calc(100vw - 36px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - clamp(260px,44vh,430px))!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:auto auto auto auto!important;
  align-content:center!important;
  justify-content:stretch!important;
  align-items:stretch!important;
  gap:clamp(7px,1vh,10px)!important;
  padding:clamp(12px,1.7vh,18px) clamp(16px,2.3vw,26px)!important;
  margin:0 auto!important;
  border-color:rgba(112,215,255,.26)!important;
  background:linear-gradient(145deg,rgba(5,8,13,.72),rgba(10,14,21,.64))!important;
  box-shadow:0 0 34px rgba(189,31,45,.20),inset 0 0 42px rgba(0,0,0,.48)!important;
  backdrop-filter:blur(7px)!important;
  -webkit-backdrop-filter:blur(7px)!important;
  text-align:center!important;
}
#mainMenu .menu-logo,
#mainMenu .menu-card h1,
#mainMenu .menu-subtitle{
  display:none!important;
}
#mainMenu .menu-kicker{
  margin:0!important;
  font-size:clamp(11px,1.25vh,14px)!important;
  letter-spacing:.08em!important;
  color:rgba(236,239,244,.92)!important;
}
#mainMenu .menu-buttons{
  width:100%!important;
  max-width:780px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:clamp(5px,.8vh,8px)!important;
  overflow:visible!important;
}
#mainMenu .menu-buttons button,
#mainMenu:not(.hidden) #newGameBtn{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:0!important;
  min-height:clamp(34px,4.2dvh,42px)!important;
  padding:clamp(5px,.75vh,8px) 8px!important;
  font-size:clamp(10px,1.22dvh,13px)!important;
  line-height:1.08!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  z-index:9600!important;
}
#mainMenu:not(.hidden) #newGameBtn{
  background:linear-gradient(90deg,#7a1019,#bd1f2d)!important;
  border-color:#ff3048!important;
  box-shadow:0 0 18px rgba(255,48,72,.38)!important;
  font-weight:800!important;
}
#mainMenu:not(.hidden) #newGameBtn::after{
  content:""!important;
}
#mainMenu .quick-start-hint{
  width:100%!important;
  max-width:780px!important;
  margin:0 auto!important;
  padding:6px 10px!important;
  font-size:clamp(10px,1.18dvh,12px)!important;
  line-height:1.15!important;
}
#mainMenu .menu-info,
#mainMenu .ui-kit-note{
  margin:0!important;
  padding:0!important;
  font-size:clamp(10px,1.12dvh,12px)!important;
  line-height:1.15!important;
}
@media(max-width:1100px){
  #mainMenu .menu-buttons{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:700px){
  #mainMenu:not(.hidden){padding-top:clamp(210px,38vh,320px)!important;}
  #mainMenu .menu-card{max-height:calc(100dvh - clamp(220px,39vh,330px))!important;}
  #mainMenu .menu-buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-height:720px){
  #mainMenu:not(.hidden){padding-top:clamp(190px,37vh,270px)!important;}
  #mainMenu .menu-card{max-height:calc(100dvh - clamp(205px,38vh,285px))!important;}
  #mainMenu .quick-start-hint,#mainMenu .menu-info,#mainMenu .ui-kit-note{font-size:10px!important;}
}
@media(max-height:560px){
  #mainMenu:not(.hidden){padding-top:148px!important;}
  #mainMenu .menu-card{max-height:calc(100dvh - 160px)!important;overflow:auto!important;}
  #mainMenu .menu-buttons button,#mainMenu:not(.hidden) #newGameBtn{min-height:30px!important;font-size:10px!important;padding:4px 6px!important;}
}


/* v62: Operator upgrade matrix + checkpoint recovery */
.upgrade-station{
  margin-top:14px;
  padding:12px;
  border:1px solid rgba(112,215,255,.18);
  background:linear-gradient(145deg,rgba(4,9,14,.64),rgba(16,10,18,.48));
  border-radius:14px;
}
.upgrade-station h3{margin:0 0 6px;color:#70d7ff;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.upgrade-card{
  display:grid;
  grid-template-columns:1fr minmax(120px,auto);
  gap:10px;
  align-items:center;
  padding:10px;
  margin:8px 0;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(0,0,0,.28);
  border-radius:12px;
}
.upgrade-card b{display:block;color:#f4f7fb;margin-bottom:3px}
.upgrade-card span{display:block;color:rgba(236,239,244,.72);font-size:12px;line-height:1.35}
.upgrade-card button{min-height:36px;white-space:nowrap}
.upgrade-card.maxed{border-color:rgba(0,217,255,.28);box-shadow:inset 0 0 18px rgba(0,217,255,.06)}
.upgrade-pips{display:flex;gap:4px;margin-top:8px}
.upgrade-pips i{width:18px;height:5px;border-radius:999px;background:rgba(255,255,255,.13);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.upgrade-pips i.on{background:linear-gradient(90deg,#00d9ff,#ff3048);box-shadow:0 0 10px rgba(0,217,255,.35)}
.upgrade-statline{
  margin-top:10px;
  padding:8px 10px;
  border-radius:10px;
  color:#dceff8;
  background:rgba(112,215,255,.08);
  border:1px solid rgba(112,215,255,.12);
  font-size:12px;
  letter-spacing:.06em;
}
@media(max-width:760px){.upgrade-card{grid-template-columns:1fr}.upgrade-card button{width:100%}}


/* v63 skill/stage/inventory polish */
.skill-emblem{
  width:42px;height:42px;min-width:42px;border-radius:14px;display:inline-grid;place-items:center;
  border:1px solid rgba(91,214,255,.65);background:radial-gradient(circle at 30% 20%,rgba(114,238,255,.28),rgba(7,12,20,.92));
  box-shadow:0 0 18px rgba(46,204,255,.16), inset 0 0 14px rgba(255,255,255,.05); color:#e9fbff; font-family:inherit;
}
.skill-emblem b{font-size:18px;letter-spacing:.06em;text-shadow:0 0 10px rgba(87,223,255,.7)}
.skill-attack{border-color:rgba(255,80,96,.85);background:radial-gradient(circle at 30% 20%,rgba(255,80,96,.32),rgba(14,8,13,.95));}
.skill-strength{border-color:rgba(255,186,73,.85);background:radial-gradient(circle at 30% 20%,rgba(255,190,79,.32),rgba(18,12,5,.95));}
.skill-defense{border-color:rgba(92,255,171,.8);background:radial-gradient(circle at 30% 20%,rgba(92,255,171,.28),rgba(6,17,12,.95));}
.skill-health{border-color:rgba(255,93,151,.9);background:radial-gradient(circle at 30% 20%,rgba(255,93,151,.30),rgba(18,6,12,.95));}
.skill-magic,.skill-system_hacking{border-color:rgba(174,112,255,.85);background:radial-gradient(circle at 30% 20%,rgba(174,112,255,.30),rgba(12,7,22,.95));}
.skill-ranged,.skill-datafishing{border-color:rgba(83,255,242,.85);background:radial-gradient(circle at 30% 20%,rgba(83,255,242,.28),rgba(4,17,19,.95));}
.skill-row{display:flex;gap:12px;align-items:center}.skill-row small{display:block;color:rgba(219,246,255,.68);margin-top:4px}.skill-row em{font-style:normal;color:#67e8ff;font-size:11px;margin-left:5px}
.style-card{display:flex;align-items:center;gap:10px;text-align:left}.style-card span:last-child{display:flex;flex-direction:column;gap:2px}.style-card small{opacity:.72}
.inventory-hero-panel{display:grid;grid-template-columns:1.35fr .9fr;gap:14px;border:1px solid rgba(91,214,255,.22);background:rgba(5,12,20,.72);border-radius:18px;padding:14px;margin-bottom:14px;box-shadow:inset 0 0 30px rgba(51,213,255,.05)}
.inventory-hero-panel h2{margin:.1rem 0 .25rem}.inventory-skill-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inventory-skill-strip div{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.035)}.inventory-skill-strip .skill-emblem{width:32px;height:32px;min-width:32px;border-radius:10px}.inventory-skill-strip .skill-emblem b{font-size:14px}
.fs-persistent-stats{position:fixed;top:72px;right:18px;z-index:5200;display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid rgba(90,224,255,.38);border-radius:14px;background:rgba(3,7,12,.76);backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(0,0,0,.35);font-size:12px;letter-spacing:.04em}.fs-persistent-stats b{color:#e7fbff}.fs-persistent-stats span{color:#9eeaff}.fs-persistent-stats em{font-style:normal;color:#ff6978}
body:not(.game-active) .fs-persistent-stats{display:none}.stage-select-panel{grid-column:1/-1}.stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.stage-card{padding:13px;border-radius:16px;text-align:left;display:flex;flex-direction:column;gap:5px;border:1px solid rgba(91,214,255,.25);background:rgba(6,14,22,.72)}.stage-card b{font-size:20px;color:#eafcff}.stage-card span{font-weight:800}.stage-card small{opacity:.72}.stage-card em{font-style:normal;color:#67e8ff}.stage-card.active{box-shadow:0 0 0 1px rgba(91,214,255,.8),0 0 28px rgba(91,214,255,.12)}.stage-card.locked{opacity:.48;filter:grayscale(.55)}
.pre-battle-overlay{z-index:9300}.pre-battle-card{width:min(920px,94vw);max-height:88vh;overflow:auto;border-radius:24px;padding:20px;background:linear-gradient(180deg,rgba(8,13,23,.96),rgba(4,7,14,.98));border:1px solid rgba(91,214,255,.3);box-shadow:0 30px 100px rgba(0,0,0,.62)}.pre-battle-layout{display:grid;grid-template-columns:minmax(180px,320px) 1fr;gap:18px;align-items:center}.pre-battle-layout img{width:100%;max-height:360px;object-fit:contain;filter:drop-shadow(0 20px 30px rgba(0,0,0,.55))}.stat-hero-line{color:#e9fbff}
@media(max-width:780px){.inventory-hero-panel,.pre-battle-layout{grid-template-columns:1fr}.fs-persistent-stats{top:58px;left:12px;right:12px;justify-content:center}.inventory-skill-strip{grid-template-columns:1fr}}


/* v64: real skill emblem assets */
.skill-emblem{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.skill-emblem img{
  position:absolute;
  inset:3px;
  width:calc(100% - 6px);
  height:calc(100% - 6px);
  object-fit:contain;
  z-index:2;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.72));
}
.skill-emblem b{
  position:relative;
  z-index:1;
  opacity:.18;
}
.skill-emblem:not(.missing-icon) b{opacity:0;}
.skill-emblem.missing-icon b{opacity:1;}
.skill-row .skill-emblem{width:52px;height:52px;min-width:52px;border-radius:16px;}
.skill-row .skill-emblem img{inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);}
.style-card .skill-emblem{width:44px;height:44px;min-width:44px;}
.inventory-skill-strip .skill-emblem img{inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);}


/* v65 gear/equipment systems */
.equipment-panel,.workshop-panel{border:1px solid rgba(0,217,255,.22);background:rgba(3,12,18,.72);border-radius:16px;padding:14px;margin:12px 0;box-shadow:inset 0 0 22px rgba(0,217,255,.06)}
.equipment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin-top:10px}
.equip-slot{min-height:92px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.035);border-radius:12px;padding:9px;display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;position:relative;overflow:hidden}
.equip-slot.empty{opacity:.62;border-style:dashed;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.equip-slot b{color:#dff8ff;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em}
.equip-slot span{font-weight:800;color:#fff}.equip-slot small{grid-column:1/-1;color:#b8d9e8;font-size:.72rem}.equip-slot button{grid-column:1/-1;padding:6px 8px;font-size:.72rem}
.gear-statline{margin-top:10px;color:#8be9ff;font-weight:800;font-size:.85rem}.workshop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.workshop-grid>div{display:flex;flex-direction:column;gap:8px}.workshop-grid button{display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left}.gear-compare{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);border-radius:12px;padding:10px;margin:10px 0;display:grid;gap:5px}.gear-compare b{color:#8be9ff}.gear-compare span{color:#fff;font-weight:800}.operator-shard-panel{margin-top:14px}.operator-shard-panel button{width:100%;margin-top:8px}.rarity-legendary,.rarity-mythic,.rarity-relic,.rarity-singularity{box-shadow:0 0 18px rgba(255,195,74,.18), inset 0 0 16px rgba(255,195,74,.07)}
@media(max-width:760px){.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-grid{grid-template-columns:1fr}.equip-slot{min-height:84px}}


/* v66 stage route + collection log polish */
body[data-stage="f002"] canvas#game{box-shadow:0 0 0 1px rgba(255,163,77,.22),0 0 34px rgba(255,120,35,.08)}
body[data-stage="f003"] canvas#game{box-shadow:0 0 0 1px rgba(188,92,255,.28),0 0 34px rgba(188,92,255,.14)}
.drop-log-panel{border:1px solid rgba(255,236,157,.20);background:linear-gradient(145deg,rgba(17,13,9,.84),rgba(8,12,18,.88));padding:12px;border-radius:16px;margin:12px 0;}
.drop-log-list{display:grid;gap:7px;margin-top:10px;}
.drop-log-row{display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:8px;align-items:center;border:1px solid rgba(255,255,255,.10);background:rgba(5,7,10,.72);padding:9px;border-radius:12px;}
.drop-log-row b{color:#fff;}
.drop-log-row span{color:var(--muted);font-size:.86rem;}
.drop-log-row.rarity-epic,.drop-log-row.rarity-legendary,.drop-log-row.rarity-relic{border-color:rgba(255,236,157,.38);box-shadow:inset 0 0 22px rgba(255,236,157,.06);}
.stage-card small+small{color:#9aa3ad;}
.stage-card:not(.locked):hover{transform:translateY(-1px);background:rgba(12,24,36,.88);}
@media(max-width:760px){.drop-log-row{grid-template-columns:1fr}.stage-card b{font-size:17px}}


/* v67 F-002 full-stage route polish */
body[data-stage="f002"] .mission-strip{border-color:rgba(255,163,77,.38);box-shadow:0 0 22px rgba(255,120,35,.08) inset;}
body[data-stage="f002"] .objective-tracker{background:linear-gradient(135deg,rgba(60,26,8,.82),rgba(8,14,20,.9));border-color:rgba(255,163,77,.32);}
.stage-card small:nth-of-type(3),.stage-card small:nth-of-type(4){font-size:11px;line-height:1.25;opacity:.84;}
.stage-card:not(.locked) small:nth-of-type(4){color:#eac27d;}
.pre-battle-card .record-grid div:last-child{border-color:rgba(255,163,77,.28);}


/* v82: phone scaling + playable mobile controls */
html,body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;}
body.mobile-play{touch-action:manipulation;}
.mobile-action-pad{display:none;}
@media (max-width: 900px), (pointer: coarse){
  .boot-screen,.main-menu{height:100svh!important;min-height:100svh!important;overflow:hidden!important;padding:8px!important;}
  .boot-terminal,.menu-card{width:calc(100vw - 16px)!important;height:calc(100svh - 16px)!important;min-height:0!important;overflow:auto!important;padding:clamp(12px,3vw,18px)!important;}
  .boot-logo img,.menu-logo{max-height:22svh!important;object-fit:contain!important;}
  .menu-card h1{font-size:clamp(28px,10vw,56px)!important;line-height:.88!important;margin:4px 0!important;}
  .menu-subtitle,.quick-start-hint,.menu-info,.ui-kit-note{font-size:12px!important;margin:6px 0!important;}
  .menu-buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin:10px auto!important;max-width:100%!important;}
  .menu-buttons button{min-height:42px!important;padding:8px 6px!important;font-size:11px!important;}

  body.game-active{position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;overflow:hidden!important;background:#000!important;touch-action:none!important;}
  body.game-active #app{position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;display:block!important;overflow:hidden!important;}
  body.game-active .topbar,body.game-active .panel,body.game-active .mission-strip{display:none!important;}
  body.game-active .layout{position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important;overflow:hidden!important;}
  body.game-active .game-card{position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#000!important;display:block!important;overflow:hidden!important;}
  body.game-active canvas#game{position:absolute!important;inset:0!important;width:100vw!important;height:100svh!important;max-width:none!important;max-height:none!important;min-height:0!important;border:0!important;background:#000!important;display:block!important;touch-action:none!important;image-rendering:auto!important;}
  body.game-active .objective-tracker{position:fixed!important;top:calc(env(safe-area-inset-top) + 8px)!important;left:8px!important;right:8px!important;z-index:5600!important;margin:0!important;padding:7px 9px!important;border-radius:12px!important;background:rgba(3,7,12,.64)!important;backdrop-filter:blur(8px)!important;font-size:11px!important;line-height:1.2!important;max-height:48px!important;overflow:hidden!important;}
  body.game-active .mobile-pad{display:grid!important;position:fixed!important;left:calc(env(safe-area-inset-left) + 12px)!important;bottom:calc(env(safe-area-inset-bottom) + 18px)!important;z-index:5700!important;grid-template-rows:auto auto!important;gap:4px!important;margin:0!important;padding:6px!important;border-radius:16px!important;border:1px solid rgba(112,215,255,.25)!important;background:rgba(3,7,12,.52)!important;backdrop-filter:blur(9px)!important;opacity:.82!important;touch-action:none!important;}
  body.game-active .mobile-pad>button{grid-column:2!important;}
  body.game-active .mobile-pad>div{display:grid!important;grid-template-columns:repeat(3,42px)!important;gap:4px!important;}
  body.game-active .mobile-pad button{width:42px!important;height:38px!important;min-width:0!important;margin:0!important;padding:0!important;border-radius:13px!important;font-size:15px!important;font-weight:900!important;background:rgba(10,17,25,.76)!important;border-color:rgba(112,215,255,.35)!important;box-shadow:0 8px 20px rgba(0,0,0,.24)!important;touch-action:none!important;user-select:none!important;}
  .mobile-action-pad{position:fixed;right:calc(env(safe-area-inset-right) + 12px);bottom:calc(env(safe-area-inset-bottom) + 18px);z-index:5700;display:grid;grid-template-columns:repeat(2,52px);gap:5px;padding:7px;border-radius:18px;border:1px solid rgba(255,48,72,.30);background:rgba(3,7,12,.55);backdrop-filter:blur(9px);touch-action:none;}
  .mobile-action-pad button{width:52px;height:44px;min-width:0;padding:0;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:rgba(15,21,30,.82);border-color:rgba(255,255,255,.16);font-size:9px;touch-action:none;user-select:none;}
  .mobile-action-pad button b{display:block;color:#7ce7ff;font-size:15px;line-height:1;}
  .mobile-action-pad button span{font-size:9px;line-height:1;text-transform:uppercase;}
  body:not(.game-active) .mobile-action-pad{display:none!important;}
  body.game-active .fullscreen-quickbar{left:6px!important;right:6px!important;bottom:auto!important;top:calc(env(safe-area-inset-top) + 58px)!important;transform:none!important;justify-content:flex-start!important;overflow-x:auto!important;max-width:calc(100vw - 12px)!important;padding:6px!important;background:rgba(3,7,12,.44)!important;}
  body.game-active .fullscreen-quickbar button{min-width:54px!important;padding:5px!important;font-size:9px!important;}
  body.game-active .fs-persistent-stats{top:calc(env(safe-area-inset-top) + 58px)!important;left:8px!important;right:8px!important;justify-content:center!important;flex-wrap:wrap!important;font-size:11px!important;padding:6px 8px!important;z-index:5650!important;pointer-events:none!important;}
  body.game-active .fullscreen-sidehud,body.game-active .fullscreen-help{left:8px!important;right:8px!important;top:calc(env(safe-area-inset-top) + 92px)!important;width:auto!important;max-height:58svh!important;overflow:auto!important;z-index:5800!important;}
  .overlay{padding:6px!important;align-items:center!important;justify-items:center!important;}
  .database-modal{width:calc(100vw - 12px)!important;max-height:calc(100svh - 12px)!important;padding:12px!important;border-radius:16px!important;overflow:auto!important;}
  .db-header{font-size:12px!important;gap:6px!important;align-items:flex-start!important;}
  .operator-file,.fracture-grid,.inventory-db-layout,.anomaly-layout,.progression-layout,.inventory-layout-pro{grid-template-columns:1fr!important;gap:10px!important;}
  .record-grid{grid-template-columns:1fr!important;}
  button,.modal-close{min-height:42px;}
  .battle{width:100vw!important;height:100svh!important;max-height:none!important;aspect-ratio:auto!important;border:0!important;border-radius:0!important;padding:0!important;grid-template-rows:auto minmax(0,1fr) auto!important;}
  .battle-hud-top{padding:8px!important;font-size:11px!important;}
  .battle-stage{min-height:0!important;height:auto!important;padding:0 4px!important;}
  .battle-sprite{max-height:31svh!important;max-width:46vw!important;}
  .battle-ui{grid-template-columns:1fr!important;gap:6px!important;padding:8px!important;max-height:43svh!important;overflow:auto!important;}
  .battle-bars{grid-template-columns:1fr!important;gap:5px!important;}
  .attacks{grid-template-columns:1fr 1fr!important;gap:6px!important;}
  .attacks button{min-height:44px!important;padding:6px!important;font-size:10px!important;}
  .battle-log-line{font-size:11px!important;margin:5px 0!important;}
  .toast{left:8px!important;right:8px!important;bottom:calc(env(safe-area-inset-bottom) + 110px)!important;transform:none!important;text-align:center!important;font-size:12px!important;z-index:9900!important;}
}
@media (max-width: 900px) and (orientation: portrait), (pointer: coarse) and (orientation: portrait){
  body.game-active canvas#game{height:calc(100svh - 122px)!important;bottom:122px!important;}
  body.game-active .objective-tracker{font-size:10px!important;}
  body.game-active .mobile-pad{bottom:calc(env(safe-area-inset-bottom) + 8px)!important;}
  .mobile-action-pad{bottom:calc(env(safe-area-inset-bottom) + 10px)!important;}
  body.game-active::after{content:'Rotate phone sideways for best view';position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 58px);transform:translateX(-50%);z-index:5601;padding:4px 8px;border-radius:999px;background:rgba(3,7,12,.58);border:1px solid rgba(112,215,255,.16);color:#bdefff;font-size:10px;pointer-events:none;}
}
@media (max-width: 900px) and (orientation: landscape), (pointer: coarse) and (orientation: landscape){
  body.game-active canvas#game{height:100svh!important;}
  body.game-active .objective-tracker{right:auto!important;width:min(52vw,520px)!important;}
  body.game-active .mobile-pad button{width:46px!important;height:40px!important;font-size:16px!important;}
  body.game-active .mobile-pad>div{grid-template-columns:repeat(3,46px)!important;}
  .mobile-action-pad{grid-template-columns:repeat(5,48px);}
  .mobile-action-pad button{width:48px;height:42px;}
  .mobile-action-pad button b{font-size:14px;}
  .mobile-action-pad button span{font-size:8px;}
}


/* v83: smaller mobile arrows + mobile battle quick pad */
.mobile-battle-pad{display:none;}
body.battle-mode .mobile-action-pad{display:none!important;}
@media (max-width: 900px), (pointer: coarse){
  body.game-active .mobile-pad{transform:translate(-2px,2px)!important;}
  body.battle-mode .mobile-pad{display:none!important;}
  body.battle-mode .mobile-battle-pad{position:fixed;left:calc(env(safe-area-inset-left) + 6px);right:calc(env(safe-area-inset-right) + 6px);bottom:calc(env(safe-area-inset-bottom) + 6px);z-index:5900;display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:5px;padding:6px;border-radius:16px;border:1px solid rgba(112,215,255,.24);background:rgba(3,7,12,.62);backdrop-filter:blur(9px);touch-action:none;}
  body.battle-mode .mobile-battle-pad button{height:40px;min-width:0;padding:0 3px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9px;background:rgba(10,17,25,.82);border-color:rgba(112,215,255,.22);touch-action:none;user-select:none;}
  body.battle-mode .mobile-battle-pad button b{font-size:14px;line-height:1;color:#7ce7ff;}
  body.battle-mode .mobile-battle-pad button span{font-size:8px;line-height:1;text-transform:uppercase;white-space:nowrap;}
  body.battle-mode .battle-ui{padding-bottom:58px!important;}
}
@media (max-width: 420px) and (orientation: portrait){
  body.game-active .mobile-pad button{width:44px!important;height:38px!important;font-size:15px!important;}
  body.game-active .mobile-pad>div{grid-template-columns:repeat(3,44px)!important;}
  body.battle-mode .mobile-battle-pad{grid-template-columns:repeat(4,minmax(44px,1fr));}
  body.battle-mode .mobile-battle-pad button{height:38px;}
}


/* v84: objective beacon + mobile path ping */
.objective-compass{
  display:none;
  position:fixed;
  top:118px;
  right:16px;
  z-index:5660;
  min-width:170px;
  max-width:230px;
  padding:9px 12px;
  border-radius:16px;
  border:1px solid rgba(0,217,255,.34);
  background:linear-gradient(145deg,rgba(3,7,12,.82),rgba(10,18,28,.68));
  backdrop-filter:blur(10px);
  box-shadow:0 14px 34px rgba(0,0,0,.38), inset 0 0 18px rgba(0,217,255,.05);
  color:#e8fbff;
  text-align:left;
  grid-template-columns:auto 1fr;
  gap:1px 9px;
  align-items:center;
  pointer-events:auto;
}
body.game-active .objective-compass:not(.hidden){display:grid;}
.objective-compass b{grid-row:1/3;font-size:28px;line-height:1;color:#00d9ff;text-shadow:0 0 14px rgba(0,217,255,.65);}
.objective-compass span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.objective-compass em{font-style:normal;font-size:11px;color:#a9dff0;}
.objective-compass[data-kind="boss"]{border-color:rgba(255,48,72,.45);box-shadow:0 14px 34px rgba(0,0,0,.38), inset 0 0 22px rgba(255,48,72,.07);}
.objective-compass[data-kind="boss"] b{color:#ff3048;text-shadow:0 0 14px rgba(255,48,72,.65);}
.objective-compass[data-kind="exit"] b,.objective-compass[data-kind="complete"] b{color:#fff;text-shadow:0 0 14px rgba(255,255,255,.55);}
.objective-compass.objective-ping{animation:objectivePing .65s ease-out 1;}
@keyframes objectivePing{0%{transform:scale(1);filter:brightness(1)}45%{transform:scale(1.06);filter:brightness(1.55)}100%{transform:scale(1);filter:brightness(1)}}
body:not(.game-active) .objective-compass,body.battle-mode .objective-compass{display:none!important;}
@media (max-width:900px), (pointer:coarse){
  body.game-active .objective-compass{top:calc(env(safe-area-inset-top) + 106px)!important;right:8px!important;min-width:132px!important;max-width:40vw!important;padding:7px 9px!important;border-radius:14px!important;background:rgba(3,7,12,.60)!important;}
  .objective-compass b{font-size:21px!important;}
  .objective-compass span,.objective-compass em{font-size:9px!important;}
  .mobile-action-pad{grid-template-columns:repeat(2,58px);}
}
@media (max-width:420px) and (orientation:portrait){
  body.game-active .objective-compass{top:calc(env(safe-area-inset-top) + 82px)!important;right:6px!important;max-width:34vw!important;min-width:112px!important;padding:6px 7px!important;}
  .objective-compass b{font-size:18px!important;}
  .objective-compass span{max-width:82px;}
}


/* v85: save slots + backup/transfer terminal */
.save-hub-panel{grid-column:1/-1;border-color:rgba(112,215,255,.22)!important;background:linear-gradient(145deg,rgba(3,9,15,.92),rgba(18,13,20,.88))!important;}
.save-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0;}
.save-slot{background:#070b10;border:1px solid rgba(112,215,255,.20);border-radius:12px;padding:10px;display:grid;gap:8px;box-shadow:inset 0 0 18px rgba(112,215,255,.03);}
.save-slot b{color:#fff;letter-spacing:.04em;}
.save-slot span,.save-slot small{color:#a9b8c8;font-size:12px;line-height:1.35;}
.save-slot>div{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.save-slot button,.save-hub-actions button,.save-code-actions button{min-height:34px;padding:7px 9px;font-size:11px;}
.save-hub-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.save-code-modal{width:min(880px,96vw)!important;}
#saveCodeText{width:100%;min-height:240px;resize:vertical;background:#030609;color:#d7f7ff;border:1px solid rgba(112,215,255,.28);border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.35;box-sizing:border-box;}
.save-code-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
@media(max-width:900px),(pointer:coarse){.save-slot-grid{grid-template-columns:1fr}.save-slot>div{grid-template-columns:1fr 1fr 1fr}.save-code-modal{max-height:88vh!important}#saveCodeText{min-height:180px;font-size:10px}}


/* v86: audio mixer + persistent sound settings */
.audio-mixer-panel{grid-column:1/-1;border-color:rgba(0,217,255,.26)!important;background:linear-gradient(145deg,rgba(3,9,15,.94),rgba(8,18,28,.88))!important;}
.audio-mixer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;}
.audio-row{display:grid;grid-template-columns:118px 1fr 48px;align-items:center;gap:10px;background:#070b10;border:1px solid rgba(112,215,255,.18);border-radius:12px;padding:10px;}
.audio-row span{font-size:12px;color:#dff8ff;text-transform:uppercase;letter-spacing:.06em;font-weight:900;}
.audio-row b{font-size:12px;color:#7ce7ff;text-align:right;}
.audio-row input[type="range"]{width:100%;accent-color:#00d9ff;}
.audio-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.audio-actions button{min-height:34px;padding:7px 10px;font-size:11px;}
@media(max-width:900px),(pointer:coarse){.audio-mixer-grid{grid-template-columns:1fr}.audio-row{grid-template-columns:94px 1fr 42px;padding:8px}.audio-row span,.audio-row b{font-size:10px}.audio-actions button{flex:1 1 130px}}


/* v90: mobile control polish — smaller pads moved inward/up so they cover less map art. */


/* v91: QA level picker + mobile top HUD placement */
.qa-stage-picker{display:grid;gap:9px;margin:10px 0 14px;padding:10px;border:1px solid rgba(112,215,255,.22);border-radius:14px;background:rgba(3,7,12,.55)}
.qa-stage-picker label{display:grid;gap:3px;color:#eafcff}
.qa-stage-picker label span{color:var(--muted);font-size:.82rem}
.qa-stage-picker select{width:100%;min-height:42px;background:#05080d;color:#edfaff;border:1px solid rgba(112,215,255,.35);border-radius:10px;padding:8px;font:inherit}
@media (max-width:900px), (pointer:coarse){
  body.game-active .fs-persistent-stats{top:calc(env(safe-area-inset-top) + 2px)!important;left:auto!important;right:calc(env(safe-area-inset-right) + 6px)!important;width:auto!important;max-width:calc(100vw - 12px)!important;justify-content:flex-end!important;flex-wrap:nowrap!important;font-size:10px!important;padding:4px 7px!important;border-radius:11px!important;background:rgba(3,7,12,.58)!important;backdrop-filter:blur(7px)!important;opacity:.92!important;line-height:1!important}
  body.game-active .fs-persistent-stats span,body.game-active .fs-persistent-stats em,body.game-active .fs-persistent-stats b{white-space:nowrap}
  body.game-active .fullscreen-quickbar{top:calc(env(safe-area-inset-top) + 40px)!important}
  body.game-active .objective-tracker{top:calc(env(safe-area-inset-top) + 34px)!important;max-height:44px!important}
}
@media (max-width:420px) and (orientation:portrait){
  body.game-active .fs-persistent-stats{font-size:9px!important;gap:5px!important;padding:4px 6px!important}
  body.game-active .objective-tracker{display:none!important}
}

/* v92: controller QA, level testing, and tighter mobile HUD */
.qa-level-picker{display:grid;gap:9px;margin:10px 0 14px;padding:10px;border:1px solid rgba(112,215,255,.22);border-radius:14px;background:rgba(3,7,12,.55)}
.qa-level-picker label{display:grid;gap:3px;color:#eafcff}
.qa-level-picker label span{color:var(--muted);font-size:.82rem}
.qa-level-row{display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:8px;align-items:center}
.qa-level-row input{width:100%;min-height:42px;background:#05080d;color:#edfaff;border:1px solid rgba(112,215,255,.35);border-radius:10px;padding:8px;font:inherit}
@media (max-width:900px), (pointer:coarse){
  body.game-active .fs-persistent-stats{top:env(safe-area-inset-top)!important;right:calc(env(safe-area-inset-right) + 4px)!important;left:auto!important;transform:scale(.94)!important;transform-origin:top right!important;opacity:.82!important;padding:3px 6px!important;gap:5px!important;border-radius:10px!important;pointer-events:none!important;background:rgba(3,7,12,.46)!important}
  body.game-active .fullscreen-quickbar{top:calc(env(safe-area-inset-top) + 31px)!important}
  body.game-active .objective-tracker{top:calc(env(safe-area-inset-top) + 28px)!important}
}
@media (max-width:420px) and (orientation:portrait){
  body.game-active .fs-persistent-stats{transform:scale(.88)!important;font-size:8px!important;max-width:calc(100vw - 8px)!important}
}

/* v93: controller-readable combat / pre-battle menu focus */
.controller-glyph{
  display:inline-grid;
  place-items:center;
  min-width:30px;
  height:24px;
  margin-right:8px;
  padding:0 7px;
  border:1px solid rgba(112,215,255,.55);
  border-radius:999px;
  background:rgba(0,217,255,.10);
  color:#8ff0ff;
  font-weight:800;
  font-size:11px;
  line-height:1;
  box-shadow:0 0 10px rgba(0,217,255,.15);
}
.attacks button{
  position:relative;
  display:grid!important;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:4px;
}
.attacks button .controller-glyph{grid-row:1 / span 2;}
.attacks button.controller-selected,
.story-actions button.controller-selected{
  border-color:#70d7ff!important;
  box-shadow:0 0 0 2px rgba(112,215,255,.25),0 0 22px rgba(112,215,255,.32)!important;
  transform:translateY(-1px);
}
.attacks button.controller-selected:before,
.story-actions button.controller-selected:before{
  content:'▶';
  position:absolute;
  left:-18px;
  top:50%;
  transform:translateY(-50%);
  color:#70d7ff;
  text-shadow:0 0 12px rgba(112,215,255,.9);
}
.battle-controller-hint,
.controller-menu-hint{
  grid-column:1 / -1;
  margin:4px 0 0;
  padding:8px 10px;
  border:1px solid rgba(112,215,255,.18);
  background:rgba(0,217,255,.06);
  color:#b9d8e6;
  font-size:11px;
  line-height:1.35;
}
.controller-menu-hint b,
.battle-controller-hint b{color:#70d7ff;}
.pre-battle-actions button{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.pre-battle-actions button b{font-size:inherit;}
@media(max-width:760px){
  .controller-glyph{min-width:25px;height:21px;font-size:9px;margin-right:4px;padding:0 5px;}
  .battle-controller-hint,.controller-menu-hint{font-size:10px;padding:6px;}
  .attacks button.controller-selected:before,.story-actions button.controller-selected:before{left:-12px;}
}

/* v94: controller hover focus for non-battle menus + brighter map readability */
.controller-menu-selected{border-color:#70d7ff!important;box-shadow:0 0 0 2px rgba(112,215,255,.28),0 0 18px rgba(112,215,255,.30)!important;outline:none!important;transform:translateY(-1px);}
select.controller-menu-selected,input.controller-menu-selected{background:#101924!important;color:#f6fbff!important;}
.qa-direct-stage-actions button{border-color:rgba(112,215,255,.28);}
body.game-active canvas#game{filter:brightness(.98) saturate(.88) contrast(1.05)!important;}
body[data-stage="f001"] canvas#game{box-shadow:0 0 0 1px rgba(112,215,255,.20),0 0 42px rgba(112,215,255,.11)}

/* v98: forced new-game opening story pass */
.story-overlay[data-variant="opening"]{
  place-items:center;
  background:
    radial-gradient(circle at 18% 28%, rgba(180,28,40,.24), transparent 34%),
    radial-gradient(circle at 82% 16%, rgba(0,217,255,.16), transparent 30%),
    linear-gradient(180deg, rgba(0,0,0,.58), rgba(3,6,10,.88));
}
.opening-story-card{
  width:min(1040px,96vw);
  min-height:min(520px,82dvh);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(3,7,12,.74), rgba(5,12,18,.96)),
    radial-gradient(circle at 50% 28%, rgba(255,48,72,.20), transparent 42%);
}
.opening-story-card:before{
  content:'ASH VECTOR';
  position:absolute;
  inset:auto 0 50%;
  text-align:center;
  transform:translateY(42%);
  font-size:clamp(3.4rem,12vw,9rem);
  line-height:.8;
  font-weight:900;
  letter-spacing:.06em;
  color:rgba(255,255,255,.035);
  pointer-events:none;
}
.opening-story-card:after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, transparent 0 8%, rgba(255,255,255,.035) 8.4% 8.8%, transparent 9.2% 100%);
  background-size:90px 100%;
  opacity:.45;
  pointer-events:none;
}
.story-scene-title{
  position:relative;
  z-index:1;
  font-size:clamp(2.1rem,6.8vw,5.8rem);
  font-weight:900;
  line-height:.86;
  color:#f2f7ff;
  letter-spacing:.055em;
  text-shadow:0 0 28px rgba(255,48,72,.34),0 0 42px rgba(0,217,255,.18);
  margin:0 0 10px;
}
.story-scene-tag{
  position:relative;
  z-index:1;
  max-width:760px;
  margin:0 0 16px;
  color:#ffc8cf;
  font-weight:800;
  letter-spacing:.045em;
}
.story-controller-tip{
  position:relative;
  z-index:1;
  margin-top:10px;
  color:#9fb6c2;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.story-controller-tip b{color:#70d7ff;}
.opening-story-card .story-body,
.opening-story-card .story-actions,
.opening-story-card .story-kicker{position:relative;z-index:1;}
.opening-story-card .story-body{
  border:1px solid rgba(112,215,255,.18);
  background:rgba(0,0,0,.22);
  border-radius:16px;
  padding:14px;
}
.opening-story-card .story-body p{min-height:3.2em;}
@media(max-width:640px){
  .opening-story-card{min-height:78dvh;padding:14px;}
  .story-scene-title{font-size:clamp(2rem,13vw,3.6rem);}
  .story-scene-tag{font-size:.82rem;}
  .story-controller-tip{font-size:10px;}
}

/* v98 story replay menu helper */
#openingStoryBtn{border-color:rgba(255,48,72,.55);box-shadow:0 0 16px rgba(255,48,72,.12);}
#openingStoryBtn:before{content:"STORY ";color:#ffec9d;}


/* v130: phone playability pass - final mobile overrides */
@media (max-width: 900px), (pointer: coarse){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden!important;
    touch-action:manipulation;
  }

  body.game-active{
    height:100svh!important;
    min-height:100svh!important;
    overflow:hidden!important;
    background:#000!important;
  }
  body.game-active #app{
    height:100svh!important;
    min-height:100svh!important;
    overflow:hidden!important;
  }
  body.game-active .topbar{
    min-height:40px!important;
    padding:5px 7px!important;
    gap:5px!important;
  }
  body.game-active .brand{
    min-width:0!important;
    font-size:10px!important;
    letter-spacing:.04em!important;
  }
  body.game-active .brand img{height:24px!important;width:24px!important;}
  body.game-active .top-actions{
    gap:4px!important;
    overflow-x:auto!important;
    flex-wrap:nowrap!important;
    -webkit-overflow-scrolling:touch;
    padding-bottom:2px!important;
  }
  body.game-active .top-actions button{
    flex:0 0 auto!important;
    min-height:30px!important;
    padding:4px 6px!important;
    font-size:9px!important;
    line-height:1!important;
  }
  body.game-active .layout{
    display:block!important;
    height:calc(100svh - 42px)!important;
    min-height:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body.game-active .game-card{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:0!important;
    border:0!important;
    background:#000!important;
    display:block!important;
  }
  body.game-active .panel{
    display:none!important;
  }
  body.game-active .mission-strip{
    position:fixed!important;
    left:6px!important;
    right:6px!important;
    top:calc(env(safe-area-inset-top) + 44px)!important;
    z-index:5602!important;
    max-height:32px!important;
    overflow:hidden!important;
    padding:5px 7px!important;
    border-radius:10px!important;
    background:rgba(3,7,12,.56)!important;
    backdrop-filter:blur(8px)!important;
    font-size:9px!important;
    line-height:1.1!important;
    opacity:.9!important;
  }
  body.game-active .objective-tracker{
    display:none!important;
  }
  body.game-active canvas#game{
    position:fixed!important;
    left:0!important;
    top:42px!important;
    width:100vw!important;
    height:calc(100svh - 42px)!important;
    max-height:none!important;
    min-height:0!important;
    display:block!important;
    border:0!important;
    border-radius:0!important;
    object-fit:cover!important;
    image-rendering:auto!important;
    touch-action:none!important;
  }

  /* D-pad: clean diamond, up centered above left/down/right. */
  body.game-active .mobile-pad{
    display:grid!important;
    position:fixed!important;
    left:calc(env(safe-area-inset-left) + 8px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 8px)!important;
    z-index:6200!important;
    grid-template-columns:repeat(3,38px)!important;
    grid-template-rows:38px 38px!important;
    gap:4px!important;
    width:auto!important;
    margin:0!important;
    padding:6px!important;
    border-radius:16px!important;
    border:1px solid rgba(112,215,255,.22)!important;
    background:rgba(3,7,12,.54)!important;
    backdrop-filter:blur(8px)!important;
    opacity:.88!important;
    transform:none!important;
    text-align:center!important;
    touch-action:none!important;
  }
  body.game-active .mobile-pad>button{
    grid-column:2!important;
    grid-row:1!important;
    justify-self:center!important;
  }
  body.game-active .mobile-pad>div{
    grid-column:1 / 4!important;
    grid-row:2!important;
    display:grid!important;
    grid-template-columns:repeat(3,38px)!important;
    grid-template-rows:38px!important;
    gap:4px!important;
    width:auto!important;
  }
  body.game-active .mobile-pad button{
    width:38px!important;
    height:38px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border-radius:12px!important;
    display:grid!important;
    place-items:center!important;
    font-size:14px!important;
    font-weight:900!important;
    line-height:1!important;
    background:rgba(10,17,25,.78)!important;
    border-color:rgba(112,215,255,.30)!important;
    box-shadow:0 6px 14px rgba(0,0,0,.24)!important;
    touch-action:none!important;
    user-select:none!important;
    -webkit-user-select:none!important;
  }

  .mobile-action-pad{
    position:fixed!important;
    right:calc(env(safe-area-inset-right) + 8px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 8px)!important;
    z-index:6200!important;
    display:grid!important;
    grid-template-columns:repeat(2,44px)!important;
    gap:4px!important;
    padding:6px!important;
    border-radius:16px!important;
    background:rgba(3,7,12,.54)!important;
    backdrop-filter:blur(8px)!important;
    border:1px solid rgba(255,48,72,.22)!important;
    touch-action:none!important;
  }
  .mobile-action-pad button{
    width:44px!important;
    height:38px!important;
    min-width:0!important;
    padding:0!important;
    border-radius:12px!important;
    font-size:8px!important;
    line-height:1!important;
    touch-action:none!important;
  }
  .mobile-action-pad button b{font-size:13px!important;line-height:1!important;}
  .mobile-action-pad button span{font-size:7px!important;line-height:1!important;white-space:nowrap!important;}

  .fs-persistent-stats{
    top:calc(env(safe-area-inset-top) + 2px)!important;
    right:calc(env(safe-area-inset-right) + 4px)!important;
    left:auto!important;
    transform:scale(.86)!important;
    transform-origin:top right!important;
    max-width:calc(100vw - 8px)!important;
    font-size:8px!important;
    opacity:.76!important;
    pointer-events:none!important;
  }
  .fullscreen-quickbar{
    display:none!important;
  }
}

/* v130: battle phone layout */
@media (max-width: 900px), (pointer: coarse){
  body.battle-mode{
    overflow:hidden!important;
  }
  #battleOverlay{
    padding:0!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    overflow:hidden!important;
    background:rgba(0,0,0,.92)!important;
  }
  #battleOverlay .battle{
    width:100vw!important;
    height:100svh!important;
    max-width:none!important;
    max-height:none!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    border:0!important;
    border-radius:0!important;
    display:grid!important;
    grid-template-rows:auto minmax(126px,30svh) 1fr!important;
    overflow:hidden!important;
  }
  #battleOverlay .battle-tag{
    margin:6px 7px 0!important;
    padding:5px 7px!important;
    font-size:9px!important;
    line-height:1!important;
    max-width:calc(100vw - 14px)!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
  }
  #battleOverlay .battle-stage{
    min-height:0!important;
    padding:2px 12px!important;
    gap:8px!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    align-items:end!important;
  }
  #battleOverlay .battle-sprite{
    width:100%!important;
    height:min(27svh,160px)!important;
    max-height:160px!important;
    max-width:100%!important;
    object-fit:contain!important;
    filter:drop-shadow(0 12px 10px rgba(0,0,0,.70))!important;
  }
  #battleOverlay .battle-ui{
    margin:0 6px calc(env(safe-area-inset-bottom) + 54px)!important;
    padding:7px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
    min-height:0!important;
    max-height:none!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    border-radius:12px!important;
  }
  #battleOverlay .battle-ui h2{
    font-size:16px!important;
    margin:0 0 3px!important;
    line-height:1!important;
  }
  #battleText{
    min-height:auto!important;
    max-height:42px!important;
    overflow:auto!important;
    font-size:10px!important;
    line-height:1.2!important;
    margin:0!important;
  }
  #battleHp{
    display:grid!important;
    gap:3px!important;
  }
  #battleHp .statrow,.battle-meter{
    padding:3px!important;
    margin:0!important;
    font-size:9px!important;
    line-height:1.1!important;
  }
  #battleHp .bar,.battle-meter .bar{
    height:7px!important;
    margin-top:2px!important;
  }
  .attacks{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .attacks button{
    min-height:42px!important;
    padding:4px 5px!important;
    font-size:9px!important;
    line-height:1.05!important;
    border-radius:10px!important;
    grid-template-columns:auto 1fr!important;
    column-gap:3px!important;
  }
  .attacks button .controller-glyph{
    min-width:20px!important;
    height:18px!important;
    font-size:8px!important;
    margin-right:1px!important;
    padding:0 3px!important;
  }
  .battle-controller-hint,.controller-menu-hint{
    display:none!important;
  }
  body.battle-mode .mobile-pad,
  body.battle-mode .mobile-action-pad{
    display:none!important;
  }
  body.battle-mode .mobile-battle-pad{
    position:fixed!important;
    left:calc(env(safe-area-inset-left) + 6px)!important;
    right:calc(env(safe-area-inset-right) + 6px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 6px)!important;
    z-index:9900!important;
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:4px!important;
    padding:5px!important;
    border-radius:14px!important;
    border:1px solid rgba(112,215,255,.22)!important;
    background:rgba(3,7,12,.78)!important;
    backdrop-filter:blur(8px)!important;
    touch-action:none!important;
  }
  body.battle-mode .mobile-battle-pad button{
    height:40px!important;
    min-width:0!important;
    padding:0 2px!important;
    border-radius:10px!important;
    font-size:8px!important;
    line-height:1!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:1px!important;
    touch-action:none!important;
  }
  body.battle-mode .mobile-battle-pad button b{
    font-size:13px!important;
    line-height:1!important;
  }
  body.battle-mode .mobile-battle-pad button span{
    font-size:7px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .pre-battle-overlay{
    padding:6px!important;
    align-items:center!important;
    justify-items:center!important;
  }
  .pre-battle-card{
    width:calc(100vw - 12px)!important;
    max-height:calc(100svh - 12px)!important;
    overflow:auto!important;
    padding:10px!important;
  }
  .pre-battle-layout{
    display:grid!important;
    grid-template-columns:92px 1fr!important;
    gap:8px!important;
    align-items:start!important;
  }
  .pre-battle-layout img{
    width:92px!important;
    height:92px!important;
    object-fit:contain!important;
  }
  .pre-battle-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
  }
  .pre-battle-actions button{
    min-height:42px!important;
    padding:6px!important;
    font-size:11px!important;
  }
}

/* v130: very narrow portrait cleanup */
@media (max-width: 430px) and (orientation: portrait){
  body.game-active canvas#game{
    top:38px!important;
    height:calc(100svh - 38px)!important;
  }
  body.game-active .topbar{
    min-height:38px!important;
  }
  body.game-active .mission-strip{
    display:none!important;
  }
  body.game-active .mobile-pad{
    grid-template-columns:repeat(3,34px)!important;
    grid-template-rows:34px 34px!important;
    gap:3px!important;
    padding:5px!important;
  }
  body.game-active .mobile-pad>div{
    grid-template-columns:repeat(3,34px)!important;
    grid-template-rows:34px!important;
    gap:3px!important;
  }
  body.game-active .mobile-pad button{
    width:34px!important;
    height:34px!important;
    font-size:12px!important;
    border-radius:10px!important;
  }
  .mobile-action-pad{
    grid-template-columns:repeat(2,40px)!important;
  }
  .mobile-action-pad button{
    width:40px!important;
    height:34px!important;
  }
  .mobile-action-pad button b{font-size:12px!important;}
  .mobile-action-pad button span{font-size:6px!important;}
  body.battle-mode .mobile-battle-pad{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  body.battle-mode .mobile-battle-pad button{
    height:36px!important;
  }
  #battleOverlay .battle{
    grid-template-rows:auto minmax(108px,25svh) 1fr!important;
  }
  #battleOverlay .battle-sprite{
    height:min(22svh,130px)!important;
  }
  #battleOverlay .battle-ui{
    margin-bottom:calc(env(safe-area-inset-bottom) + 92px)!important;
  }
  .attacks button{
    min-height:38px!important;
    font-size:8px!important;
  }
}



/* v131: phone battle sizing + enemy visibility fix */
@media (max-width: 900px), (pointer: coarse){
  #battleOverlay{
    position:fixed!important;
    inset:0!important;
    z-index:9400!important;
    padding:0!important;
    display:grid!important;
    place-items:stretch!important;
    overflow:hidden!important;
    background:rgba(0,0,0,.96)!important;
  }
  #battleOverlay.hidden{display:none!important;}
  #battlePanel.battle{
    width:100vw!important;
    height:100svh!important;
    max-width:none!important;
    max-height:none!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    border:0!important;
    border-radius:0!important;
    padding:5px!important;
    display:grid!important;
    grid-template-rows:38px minmax(112px,26svh) minmax(0,1fr)!important;
    gap:4px!important;
    overflow:hidden!important;
    background-size:cover!important;
    background-position:center!important;
  }
  #battleOverlay .battle-hud-top{
    min-height:0!important;
    height:38px!important;
    padding:4px 7px!important;
    gap:6px!important;
    align-items:center!important;
    border-radius:10px!important;
    overflow:hidden!important;
  }
  #battleOverlay .battle-hud-top b{
    font-size:12px!important;
    line-height:1!important;
    max-width:66vw!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #battleOverlay .battle-kicker,
  #battleOverlay .battle-location{
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.06em!important;
    white-space:nowrap!important;
  }
  #battleOverlay .battle-stage{
    grid-row:2!important;
    height:100%!important;
    min-height:0!important;
    padding:0 7px 2px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)!important;
    grid-template-rows:1fr!important;
    gap:0!important;
    align-items:end!important;
    justify-items:center!important;
    overflow:visible!important;
  }
  #battleOverlay .combatant{
    min-width:0!important;
    min-height:0!important;
    width:100%!important;
    height:100%!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:center!important;
    overflow:visible!important;
    position:relative!important;
  }
  #battleOverlay .hero-side{grid-column:1!important;grid-row:1!important;}
  #battleOverlay .damage-layer{grid-column:2!important;grid-row:1!important;position:relative!important;z-index:4!important;width:24px!important;height:100%!important;overflow:visible!important;}
  #battleOverlay .enemy-side{grid-column:3!important;grid-row:1!important;}
  #battleOverlay .battle-sprite,
  #battleOverlay #battleEnemy,
  #battleOverlay #battleHero{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:auto!important;
    height:clamp(82px,22svh,150px)!important;
    max-width:43vw!important;
    max-height:100%!important;
    min-width:0!important;
    object-fit:contain!important;
    object-position:center bottom!important;
    transform:none!important;
    filter:drop-shadow(0 10px 10px rgba(0,0,0,.78))!important;
  }
  #battleOverlay .combatant-name{
    bottom:0!important;
    max-width:88%!important;
    padding:2px 5px!important;
    border-radius:8px!important;
    font-size:7px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #battleOverlay .hero-side .combatant-name{left:4%!important;}
  #battleOverlay .enemy-side .combatant-name{right:4%!important;}
  #battleOverlay .battle-ui{
    grid-row:3!important;
    margin:0 3px calc(env(safe-area-inset-bottom) + 58px)!important;
    padding:6px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:5px!important;
    min-height:0!important;
    max-height:none!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    border-radius:12px!important;
  }
  #battleOverlay .battle-status-panel{
    display:grid!important;
    gap:4px!important;
    min-height:0!important;
  }
  #battleHp{
    display:grid!important;
    gap:3px!important;
  }
  #battleHp .battle-meter{
    padding:3px 4px!important;
    gap:2px!important;
    border-radius:8px!important;
  }
  #battleHp .battle-meter b{
    font-size:9px!important;
    line-height:1!important;
  }
  #battleHp .battle-meter span{
    font-size:7px!important;
    line-height:1!important;
  }
  #battleHp .bar.big{
    height:6px!important;
  }
  #battleText{
    min-height:26px!important;
    max-height:34px!important;
    overflow:auto!important;
    padding:5px!important;
    font-size:9px!important;
    line-height:1.12!important;
    border-radius:8px!important;
  }
  #battleOverlay .battle-command-panel{
    display:grid!important;
    grid-template-rows:auto auto!important;
    gap:4px!important;
    min-height:0!important;
  }
  #battleOverlay .command-title{
    font-size:8px!important;
    line-height:1!important;
  }
  #battleOverlay .attacks{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:4px!important;
  }
  #battleOverlay .attacks button{
    min-height:35px!important;
    height:auto!important;
    padding:3px 4px!important;
    border-radius:9px!important;
    font-size:8px!important;
    line-height:1!important;
    align-items:center!important;
  }
  #battleOverlay .attacks button b{
    font-size:9px!important;
    line-height:1!important;
  }
  #battleOverlay .attacks button span{
    font-size:7px!important;
    line-height:1!important;
    margin-top:1px!important;
  }
  #battleOverlay .attacks button .controller-glyph{
    min-width:18px!important;
    height:16px!important;
    font-size:7px!important;
    padding:0 2px!important;
  }
  body.battle-mode .mobile-battle-pad{
    z-index:9500!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:4px!important;
    padding:5px!important;
  }
  body.battle-mode .mobile-battle-pad button{
    height:34px!important;
    min-height:0!important;
    padding:0 2px!important;
    font-size:7px!important;
  }
  body.battle-mode .mobile-battle-pad button b{font-size:11px!important;}
  body.battle-mode .mobile-battle-pad button span{font-size:6px!important;}
}

@media (max-width: 390px) and (orientation: portrait){
  #battlePanel.battle{
    grid-template-rows:34px minmax(94px,22svh) minmax(0,1fr)!important;
    padding:4px!important;
  }
  #battleOverlay .battle-hud-top{height:34px!important;padding:3px 6px!important;}
  #battleOverlay .battle-sprite,
  #battleOverlay #battleEnemy,
  #battleOverlay #battleHero{
    height:clamp(70px,19svh,122px)!important;
    max-width:42vw!important;
  }
  #battleOverlay .battle-ui{
    margin-bottom:calc(env(safe-area-inset-bottom) + 82px)!important;
    padding:5px!important;
    gap:4px!important;
  }
  #battleOverlay .attacks button{
    min-height:31px!important;
    padding:2px 3px!important;
  }
}


/* V132: bank-style bag and field skilling polish */
.open-bag-btn{
  width:100%;
  margin:4px 0 8px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(224,182,75,.55);
  background:linear-gradient(180deg, rgba(43,30,13,.92), rgba(12,10,8,.92));
  color:#ffe7a3;
  font-weight:800;
  letter-spacing:.05em;
  cursor:pointer;
}
.quick-bag-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.quick-bag-slot{
  min-height:62px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(3,7,12,.72);
  border-radius:10px;
  padding:5px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.quick-bag-slot .item-icon-shell{width:30px;height:30px;margin:0;}
.quick-bag-slot span{
  font-size:9px;
  line-height:1.1;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#d8f6ff;
}
.runebank-panel{
  border:1px solid rgba(224,182,75,.42);
  background:
    linear-gradient(180deg, rgba(35,27,15,.94), rgba(8,10,14,.96)),
    radial-gradient(circle at 50% 0%, rgba(224,182,75,.16), transparent 45%);
  border-radius:16px;
  padding:14px;
  margin:12px 0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05), 0 10px 28px rgba(0,0,0,.28);
}
.bank-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.bank-title h3{margin:2px 0 0;color:#ffe7a3;}
.bank-stats{
  display:grid;
  grid-template-columns:auto auto;
  gap:2px 7px;
  text-align:right;
  color:#d8f6ff;
  font-size:12px;
}
.bank-stats b{color:#fff;}
.bank-grid-clean{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(82px,1fr));
  gap:7px;
}
.bank-slot{
  min-height:88px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(1,5,10,.72);
  border-radius:10px;
  padding:7px 5px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  color:#d8f6ff;
  cursor:pointer;
  position:relative;
}
.bank-slot:hover{transform:translateY(-1px); border-color:rgba(112,215,255,.55);}
.bank-slot .item-icon-shell{width:38px;height:38px;margin:0;}
.bank-slot b{
  font-size:11px;
  line-height:1.05;
  max-width:100%;
  text-align:center;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.bank-slot span{font-size:9px;color:#9fcfe2;}
.bank-slot em{
  position:absolute;
  top:4px;
  right:4px;
  font-size:8px;
  color:#94ff62;
  font-style:normal;
}
.bank-slot.empty{
  cursor:default;
  opacity:.35;
  border-style:dashed;
  background:rgba(255,255,255,.025);
}
.bank-slot.empty span{font-size:10px;color:#8aa;}
.xp-float{
  position:fixed;
  transform:translate(-50%,-50%);
  z-index:120000;
  pointer-events:none;
  color:#fff;
  font-weight:900;
  font-family:monospace;
  text-shadow:0 0 10px rgba(0,0,0,.9), 0 0 20px currentColor;
  animation:xpFloatRise 1.35s ease-out forwards;
  background:rgba(0,0,0,.48);
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  padding:6px 11px;
}
.xp-float-skill{color:#94ff62;}
.xp-float-sync{color:#70d7ff;}
@keyframes xpFloatRise{
  0%{opacity:0; transform:translate(-50%,-15%) scale(.88);}
  12%{opacity:1;}
  100%{opacity:0; transform:translate(-50%,-120%) scale(1.06);}
}
@media (max-width: 720px){
  .bank-grid-clean{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;}
  .bank-slot{min-height:72px;padding:5px 3px;}
  .bank-slot .item-icon-shell{width:30px;height:30px;}
  .bank-slot b{font-size:9px;}
  .bank-title{align-items:flex-start;flex-direction:column;}
  .quick-bag-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}


/* V133: medium skill level-up notification and skilling requirements */
.skill-levelup-notice{
  position:fixed;
  left:50%;
  top:18%;
  transform:translate(-50%,-20px) scale(.96);
  width:min(430px, calc(100vw - 28px));
  z-index:130000;
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(148,255,98,.72);
  background:
    radial-gradient(circle at 8% 20%, rgba(148,255,98,.20), transparent 38%),
    linear-gradient(180deg, rgba(9,18,18,.98), rgba(3,8,12,.98));
  box-shadow:0 0 34px rgba(148,255,98,.25), 0 18px 60px rgba(0,0,0,.52);
  color:#eafff4;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease, transform .28s ease;
}
.skill-levelup-notice.show{
  opacity:1;
  transform:translate(-50%,0) scale(1);
}
.levelup-icon{
  width:72px;
  height:72px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 0 16px rgba(255,255,255,.08);
}
.levelup-icon img{
  width:58px;
  height:58px;
  object-fit:contain;
  image-rendering:auto;
}
.levelup-icon b{
  font-size:34px;
  color:#94ff62;
}
.levelup-kicker{
  font-size:11px;
  letter-spacing:.18em;
  color:#94ff62;
  font-weight:900;
}
.skill-levelup-notice h2{
  margin:2px 0 3px;
  font-size:26px;
  line-height:1.05;
  color:#fff;
}
.skill-levelup-notice p{
  margin:0;
  color:#cceee6;
}
.skill-levelup-notice p b{
  color:#ffe7a3;
  font-size:20px;
}
.xp-float-locked{
  color:#ff8fa0;
  border-color:rgba(255,48,72,.45);
}
.bank-slot small{
  font-size:8px;
  line-height:1.05;
  text-align:center;
  max-width:100%;
}
.bank-slot small.ok{color:#94ff62;}
.bank-slot small.warn{color:#ffb840;}
.skilling-req-panel small.ok{color:#94ff62;}
.skilling-req-panel small.warn{color:#ffb840;}
@media (max-width: 720px){
  .skill-levelup-notice{
    top:14%;
    padding:13px 14px;
    gap:10px;
  }
  .levelup-icon{
    width:58px;
    height:58px;
  }
  .levelup-icon img{
    width:46px;
    height:46px;
  }
  .skill-levelup-notice h2{
    font-size:21px;
  }
}


/* V134: skill color identities for field nodes and level-up popups */
.skill-levelup-notice.skill-cryptomining{border-color:rgba(255,184,77,.78);box-shadow:0 0 34px rgba(255,184,77,.22),0 18px 60px rgba(0,0,0,.52);}
.skill-levelup-notice.skill-cryptomining .levelup-kicker,.skill-levelup-notice.skill-cryptomining .levelup-icon b{color:#ffb84d;}
.skill-levelup-notice.skill-datafishing{border-color:rgba(112,215,255,.78);box-shadow:0 0 34px rgba(112,215,255,.22),0 18px 60px rgba(0,0,0,.52);}
.skill-levelup-notice.skill-datafishing .levelup-kicker,.skill-levelup-notice.skill-datafishing .levelup-icon b{color:#70d7ff;}
.skill-levelup-notice.skill-codecraft{border-color:rgba(148,255,98,.78);box-shadow:0 0 34px rgba(148,255,98,.22),0 18px 60px rgba(0,0,0,.52);}
.skill-levelup-notice.skill-codecraft .levelup-kicker,.skill-levelup-notice.skill-codecraft .levelup-icon b{color:#94ff62;}
.skill-levelup-notice.skill-forgenetics{border-color:rgba(210,168,255,.78);box-shadow:0 0 34px rgba(210,168,255,.22),0 18px 60px rgba(0,0,0,.52);}
.skill-levelup-notice.skill-forgenetics .levelup-kicker,.skill-levelup-notice.skill-forgenetics .levelup-icon b{color:#d2a8ff;}
.skill-levelup-notice.skill-system_hacking{border-color:rgba(255,255,255,.78);box-shadow:0 0 34px rgba(255,255,255,.18),0 18px 60px rgba(0,0,0,.52);}
.skill-levelup-notice.skill-system_hacking .levelup-kicker,.skill-levelup-notice.skill-system_hacking .levelup-icon b{color:#ffffff;}


/* V135: mobile victory report fit + hide battle controls after win */
body.battle-victory-mode .mobile-battle-pad,
body.battle-victory-mode .mobile-action-pad,
body.battle-victory-mode .mobile-pad{
  display:none!important;
}
#battleOverlay .victory-hidden,
body.battle-victory-mode #battleOverlay .battle-command-panel,
body.battle-victory-mode #battleOverlay #attackButtons{
  display:none!important;
}
body.battle-victory-mode #battleOverlay .battle-ui{
  display:none!important;
}
#battleVictory:not(.hidden){
  overflow:auto!important;
  -webkit-overflow-scrolling:touch;
  align-items:start!important;
  justify-items:center!important;
  place-items:start center!important;
}
.mobile-fit-victory-card{
  max-height:calc(100svh - 28px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.victory-continue-sticky,
.victory-continue-bottom{
  width:100%;
  min-height:46px;
  margin:10px 0;
  border-color:rgba(148,255,98,.62)!important;
  color:#eafff4!important;
  background:linear-gradient(180deg,rgba(22,44,34,.96),rgba(7,16,14,.96))!important;
  box-shadow:0 0 20px rgba(148,255,98,.16);
}
.victory-continue-sticky{
  position:sticky;
  top:0;
  z-index:3;
}
@media (max-width: 900px), (pointer: coarse){
  body.battle-victory-mode #battleOverlay{
    padding:0!important;
    align-items:stretch!important;
    justify-items:stretch!important;
  }
  body.battle-victory-mode #battlePanel.battle{
    width:100vw!important;
    height:100svh!important;
    max-height:100svh!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    padding:0!important;
    border-width:0!important;
    overflow:hidden!important;
    display:block!important;
  }
  body.battle-victory-mode #battleVictory{
    position:fixed!important;
    inset:0!important;
    z-index:99999!important;
    display:block!important;
    padding:8px max(8px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))!important;
    background:rgba(0,0,0,.86)!important;
    overflow:auto!important;
  }
  body.battle-victory-mode .mobile-fit-victory-card{
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    min-height:auto!important;
    padding:12px!important;
    border-left-width:3px!important;
    border-radius:14px!important;
    overflow:visible!important;
  }
  body.battle-victory-mode .victory-card .record-kicker{
    font-size:12px!important;
    letter-spacing:.11em!important;
  }
  body.battle-victory-mode .victory-card h2{
    font-size:clamp(24px,7vw,36px)!important;
    line-height:1.02!important;
    margin:.15rem 0 .25rem!important;
  }
  body.battle-victory-mode .victory-card p{
    font-size:13px!important;
    line-height:1.25!important;
    margin:.25rem 0 .5rem!important;
  }
  body.battle-victory-mode .victory-card .record-grid{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  body.battle-victory-mode .victory-card .record-grid>div{
    padding:7px 8px!important;
    min-height:0!important;
  }
  body.battle-victory-mode .victory-card .record-grid b{
    font-size:12px!important;
  }
  body.battle-victory-mode .victory-card .record-grid span{
    font-size:12px!important;
    line-height:1.25!important;
  }
  body.battle-victory-mode .victory-loot{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    margin:8px 0!important;
  }
  body.battle-victory-mode .victory-loot-item{
    padding:6px!important;
    min-height:0!important;
  }
  body.battle-victory-mode .victory-loot-item .item-icon-shell{
    width:38px!important;
    height:38px!important;
  }
  body.battle-victory-mode .victory-loot-item .item-icon-shell img{
    width:30px!important;
    height:30px!important;
  }
  body.battle-victory-mode .victory-loot-item span{
    font-size:10px!important;
    line-height:1.15!important;
  }
  body.battle-victory-mode .victory-continue-sticky{
    position:sticky!important;
    top:0!important;
    min-height:44px!important;
    font-size:13px!important;
    margin:8px 0!important;
  }
  body.battle-victory-mode .victory-continue-bottom{
    min-height:44px!important;
    font-size:13px!important;
    margin:8px 0 4px!important;
  }
}
@media (max-width: 900px) and (orientation: landscape), (pointer: coarse) and (orientation: landscape){
  body.battle-victory-mode #battleVictory{
    padding:6px max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))!important;
  }
  body.battle-victory-mode .mobile-fit-victory-card{
    padding:10px!important;
  }
  body.battle-victory-mode .victory-card .record-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px!important;
  }
  body.battle-victory-mode .victory-card h2{
    font-size:24px!important;
  }
  body.battle-victory-mode .victory-card .record-grid>div:nth-child(n+6){
    display:none!important;
  }
  body.battle-victory-mode .victory-loot{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}


/* V136: all-map full skill node grid */
.skill-node-note{
  font-size:11px;
  color:#bdefff;
}
.bank-slot small.warn{color:#ffb840!important;}
.bank-slot small.ok{color:#94ff62!important;}


/* v183: Clean UI pass, character progression polish, fog, and Vector Lockdown HUD */
:root{--av-soft-panel:rgba(7,12,18,.82);--av-soft-border:rgba(112,215,255,.26);--av-fog:rgba(191,224,232,.13);}
body.game-active .layout{gap:12px;padding:12px;background:radial-gradient(circle at 50% 0%,rgba(0,217,255,.08),transparent 34%),#05070a;}
.topbar{border-bottom:1px solid rgba(112,215,255,.18);background:rgba(4,8,12,.94);backdrop-filter:blur(8px);}.top-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;}.top-actions button{border-radius:999px;min-height:34px;padding:8px 11px;background:linear-gradient(180deg,rgba(24,31,41,.96),rgba(10,14,20,.96));border:1px solid rgba(112,215,255,.22);}
.panel{display:grid;gap:12px;background:linear-gradient(180deg,rgba(12,16,22,.92),rgba(7,10,14,.92));border-left:1px solid rgba(112,215,255,.16);padding:12px;}.panel>div,.hero-card,.mission-strip,.objective-tracker{border-radius:16px;border:1px solid var(--av-soft-border);background:var(--av-soft-panel);box-shadow:inset 0 0 22px rgba(0,217,255,.035);}.panel>div{padding:10px;}.panel h3{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#70d7ff;margin:0 0 8px;}.hero-card{padding:10px;grid-template-columns:64px 1fr;align-items:center;}.hero-card img{width:64px;height:64px;border-radius:16px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);}
.statrow,.mission-row,.logrow,.invrow{border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.22);margin-bottom:6px;}.quick-bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:7px;}.quick-bag-slot{min-height:86px;border-radius:12px;padding:6px;display:grid;place-items:center;text-align:center;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);}.quick-bag-slot span{font-size:10px;line-height:1.1;color:#dcecff;}.objective-tracker{padding:10px;margin-bottom:8px;line-height:1.35;color:#dcecff;}.mission-strip{padding:9px 12px;margin-bottom:8px;color:#dcecff;}
.game-card{position:relative;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,rgba(7,12,18,.94),rgba(3,5,8,.94));border:1px solid rgba(112,215,255,.18);}.game-card:before{content:"";position:absolute;inset:54px 0 0;pointer-events:none;z-index:3;background:radial-gradient(circle at 30% 20%,rgba(180,220,225,.13),transparent 32%),linear-gradient(90deg,rgba(255,255,255,.035),transparent 18%,rgba(255,255,255,.025) 42%,transparent 68%);mix-blend-mode:screen;animation:avFogDrift 10s ease-in-out infinite alternate;}.game-card:after{content:"";position:absolute;inset:54px 0 0;pointer-events:none;z-index:4;background:linear-gradient(180deg,rgba(0,0,0,.05),transparent 42%,rgba(0,0,0,.42)),radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.48));}@keyframes avFogDrift{from{transform:translate3d(-1.5%,0,0);opacity:.6}to{transform:translate3d(1.5%,1%,0);opacity:1}}canvas#game{border-radius:14px;image-rendering:auto!important;background:#07090c;}
.character-layout{gap:14px;}.character-card-btn{border-radius:16px;background:rgba(4,9,14,.82)!important;border:1px solid rgba(112,215,255,.20)!important;}.character-card-btn.active{border-color:rgba(105,211,145,.85)!important;box-shadow:0 0 20px rgba(105,211,145,.16);}.character-file-card{display:grid;gap:12px;}.operator-level-card{border:1px solid rgba(112,215,255,.24);border-radius:16px;background:rgba(0,0,0,.24);padding:12px;display:grid;gap:6px;}.operator-level-card b{font-size:18px;color:#fff;}.operator-level-card em{font-style:normal;color:#9fb7c4;line-height:1.35;}.character-move-list div{border-radius:14px;background:rgba(0,0,0,.24);}.bar.operator-xp span{background:linear-gradient(90deg,#70d7ff,#94ff62)!important;}
.vector-lockdown-active canvas#game{filter:contrast(1.08) saturate(.92) brightness(.78);}.vector-lockdown-active .game-card:before{background:radial-gradient(circle at 50% 35%,rgba(255,48,72,.22),transparent 32%),linear-gradient(90deg,rgba(112,215,255,.10),transparent 24%,rgba(255,48,72,.08) 55%,transparent 78%);animation-duration:2.8s;}.vector-lockdown-hud{position:fixed;right:16px;top:78px;z-index:90000;width:min(340px,calc(100vw - 32px));pointer-events:none;}.vector-lockdown-hud.hidden{display:none!important;}.lockdown-card{border:1px solid rgba(255,48,72,.72);background:rgba(7,4,9,.92);border-radius:18px;padding:14px;box-shadow:0 0 34px rgba(255,48,72,.24),inset 0 0 24px rgba(112,215,255,.05);}.lockdown-card h2{font:900 clamp(34px,8vw,56px) monospace;margin:2px 0;color:#fff;text-shadow:0 0 16px rgba(255,48,72,.7);}.lockdown-card p{margin:0 0 10px;color:#dcecff;}.lockdown-upgrades{display:flex;flex-wrap:wrap;gap:6px;}.lockdown-upgrades span{font-size:11px;border:1px solid rgba(112,215,255,.24);border-radius:999px;padding:5px 8px;background:rgba(0,0,0,.24);color:#ecfbff;}.battle-ui,.battle-command-panel{border-radius:16px!important;}#attackButtons button{border-radius:14px;min-height:66px;}
@media(max-width:980px){body.game-active .layout{padding:8px;gap:8px;}.panel{border-left:0;border-top:1px solid rgba(112,215,255,.14);grid-template-columns:1fr;}.top-actions button{font-size:11px;min-height:32px;padding:7px 9px;}.vector-lockdown-hud{top:auto;right:10px;bottom:92px;width:calc(100vw - 20px);}}@media(max-width:560px){.top-actions{display:grid;grid-template-columns:repeat(3,1fr);width:100%;}.top-actions button{font-size:10px;padding:6px;}.hero-card{grid-template-columns:52px 1fr;}.hero-card img{width:52px;height:52px;}.quick-bag-grid{grid-template-columns:repeat(3,1fr);}.panel>div{padding:8px;}}


/* v191: phone scaling + lockdown visibility rescue */
@media (max-width:900px), (pointer:coarse){
  body.game-active canvas#game{
    object-fit:contain!important;
    image-rendering:auto!important;
    background:#000!important;
  }
  body.vector-lockdown-active canvas#game,
  body.vector-lockdown-warning canvas#game{
    filter:brightness(1.08) saturate(1.05) contrast(1.06)!important;
  }
  body.vector-lockdown-active .mobile-pad,
  body.vector-lockdown-warning .mobile-pad{
    transform:scale(.86)!important;
    transform-origin:bottom left!important;
    opacity:.70!important;
  }
  body.vector-lockdown-active .mobile-action-pad,
  body.vector-lockdown-warning .mobile-action-pad{
    transform:scale(.84)!important;
    transform-origin:bottom right!important;
    opacity:.62!important;
  }
  body.vector-lockdown-active .fs-persistent-stats,
  body.vector-lockdown-warning .fs-persistent-stats,
  body.vector-lockdown-active .fullscreen-quickbar,
  body.vector-lockdown-warning .fullscreen-quickbar{display:none!important;}
  body.vector-lockdown-active .toast,
  body.vector-lockdown-warning .toast{bottom:calc(env(safe-area-inset-bottom) + 86px)!important;font-size:10px!important;padding:8px 10px!important;}
}
@media (max-width:430px) and (orientation:portrait){
  body.vector-lockdown-active .vector-lockdown-hud,
  body.vector-lockdown-warning .vector-lockdown-hud{top:max(34px, calc(env(safe-area-inset-top, 0px) + 28px))!important;}
  body.vector-lockdown-active .mobile-pad,
  body.vector-lockdown-warning .mobile-pad{transform:scale(.78)!important;}
  body.vector-lockdown-active .mobile-action-pad,
  body.vector-lockdown-warning .mobile-action-pad{transform:scale(.76)!important;}
}
@media (max-width:720px) and (orientation:landscape){
  body.vector-lockdown-active .vector-lockdown-hud .lockdown-card,
  body.vector-lockdown-warning .vector-lockdown-hud .lockdown-card{max-height:28svh!important;}
}

/* V194: free-roam lockdown HUD + phone/desktop scale tightening */
body.vector-lockdown-active canvas#game{
  filter:contrast(1.08) saturate(.96) brightness(.90)!important;
}
.vector-lockdown-hud{
  width:min(285px,calc(100vw - 28px))!important;
  top:72px!important;
  right:12px!important;
}
.lockdown-card{
  padding:10px 11px!important;
  border-radius:14px!important;
}
.lockdown-card h2{
  font-size:clamp(26px,5.4vw,42px)!important;
  margin:0 0 2px!important;
  line-height:.95!important;
}
.lockdown-card p{
  font-size:11px!important;
  line-height:1.25!important;
  margin-bottom:7px!important;
}
.lockdown-stats{
  gap:5px!important;
}
.lockdown-stats span,
.lockdown-upgrades span{
  font-size:10px!important;
  padding:4px 6px!important;
}
#lockdownRoll{
  margin:6px 0!important;
  padding:6px 8px!important;
  font-size:10px!important;
}
body.vector-lockdown-active:after,
body.vector-lockdown-warning:after{
  content:"";
  position:fixed;
  inset:0;
  z-index:80000;
  pointer-events:none;
  box-shadow:inset 0 0 58px rgba(255,48,72,.34), inset 0 0 18px rgba(255,48,72,.28);
  animation:av-lockdown-red-edge-pulse 1.25s ease-in-out infinite alternate;
}
body.vector-lockdown-warning:after{
  box-shadow:inset 0 0 46px rgba(255,206,80,.27), inset 0 0 15px rgba(255,206,80,.22);
}
@keyframes av-lockdown-red-edge-pulse{
  from{opacity:.45;}
  to{opacity:.78;}
}
@media(max-width:720px), (pointer:coarse){
  .vector-lockdown-hud{
    width:min(244px,calc(100vw - 18px))!important;
    top:max(24px,calc(env(safe-area-inset-top,0px) + 20px))!important;
    right:8px!important;
    bottom:auto!important;
  }
  .lockdown-card{
    padding:7px 8px!important;
    max-height:22svh!important;
    overflow:hidden!important;
  }
  .lockdown-card h2{
    font-size:24px!important;
  }
  .lockdown-card p{
    font-size:9.5px!important;
    margin-bottom:4px!important;
  }
  #lockdownHpWrap{
    margin:4px 0 5px!important;
  }
  .lockdown-stats span,
  .lockdown-upgrades span{
    font-size:8.5px!important;
    padding:3px 5px!important;
  }
  .lockdown-upgrades span:nth-child(n+4){display:none!important;}
  #lockdownRoll{font-size:9px!important;padding:4px 6px!important;margin:4px 0!important;}
}


/* V198: lockdown icon strip for active projectile stats + buff stacks */
.lockdown-icon-strip{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 7px;}
.lockdown-icon-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:40px;min-height:38px;padding:4px 5px;border-radius:10px;border:1px solid color-mix(in srgb,var(--chip,#8af) 65%, white 10%);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.32));box-shadow:inset 0 0 10px rgba(255,255,255,.04),0 0 14px color-mix(in srgb,var(--chip,#8af) 28%, transparent);color:#f2fbff;}
.lockdown-icon-chip b{font:800 10px monospace;letter-spacing:.08em;color:var(--chip,#bff6ff);line-height:1;}
.lockdown-icon-chip small{font:700 9px monospace;letter-spacing:.03em;color:#e7fbff;line-height:1.1;margin-top:4px;white-space:nowrap;}
.lockdown-reward-card button,#lockdownRetryBtn,#lockdownContinueBtn{margin-top:12px;border-radius:12px;min-height:40px;padding:10px 14px;background:rgba(6,16,28,.94);border:1px solid rgba(112,215,255,.42);color:#f5fbff;font:800 12px monospace;letter-spacing:.08em;pointer-events:auto;cursor:pointer;}
.lockdown-reward-card h3{margin:10px 0 6px;font:800 12px monospace;letter-spacing:.1em;color:#bff6ff;text-transform:uppercase;}
@media(max-width:720px), (pointer:coarse){
  .lockdown-icon-strip{gap:4px;margin:4px 0 5px;}
  .lockdown-icon-chip{min-width:34px;min-height:31px;padding:3px 4px;border-radius:8px;}
  .lockdown-icon-chip b{font-size:8.5px;}
  .lockdown-icon-chip small{font-size:7.5px;margin-top:2px;}
}


.lockdown-icon-chip img{width:18px;height:18px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 0 6px rgba(255,255,255,.18));}
@media(max-width:720px), (pointer:coarse){ .lockdown-icon-chip img{width:14px;height:14px;} }


/* V201: bottom buff dock sits above the bottom menu/action buttons */
.lockdown-buff-dock{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 86px);transform:translateX(-50%);z-index:76000;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;max-width:min(760px,calc(100vw - 24px));padding:8px 10px;border:1px solid rgba(112,215,255,.32);border-radius:18px;background:rgba(2,7,12,.70);backdrop-filter:blur(8px);box-shadow:0 0 24px rgba(0,217,255,.18), inset 0 0 18px rgba(255,255,255,.04);pointer-events:none;}
.lockdown-buff-dock.hidden{display:none!important;}
.lockdown-buff-dock .lockdown-icon-chip.big{position:relative;min-width:58px;min-height:58px;padding:6px 7px;border-radius:14px;}
.lockdown-buff-dock .lockdown-icon-chip.big img{width:28px;height:28px;}
.lockdown-buff-dock .lockdown-icon-chip.big b{font-size:12px;}
.lockdown-buff-dock .lockdown-icon-chip.big small{font-size:10px;margin-top:4px;}
.lockdown-buff-dock .lockdown-icon-chip.big em{position:absolute;right:-5px;top:-6px;min-width:22px;height:22px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:rgba(255,48,72,.95);border:1px solid rgba(255,255,255,.68);box-shadow:0 0 10px rgba(255,48,72,.65);color:#fff;font:900 10px monospace;font-style:normal;}
@media(max-width:720px), (pointer:coarse){
  .lockdown-buff-dock{bottom:calc(env(safe-area-inset-bottom,0px) + 76px);gap:5px;padding:6px 7px;max-width:calc(100vw - 16px);border-radius:14px;}
  .lockdown-buff-dock .lockdown-icon-chip.big{min-width:48px;min-height:50px;padding:5px 5px;border-radius:12px;}
  .lockdown-buff-dock .lockdown-icon-chip.big img{width:24px;height:24px;}
  .lockdown-buff-dock .lockdown-icon-chip.big small{font-size:8.5px;}
  .lockdown-buff-dock .lockdown-icon-chip.big em{right:-4px;top:-5px;min-width:19px;height:19px;font-size:9px;}
}


/* V202: Playtest Lockdown buff QA buttons */
.qa-lockdown-buff-board{display:flex;flex-direction:column;gap:10px;margin:8px 0 14px;}
.qa-buff-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid rgba(112,215,255,.18);background:rgba(0,0,0,.22);border-radius:14px;padding:8px;}
.qa-buff-toolbar span{font:700 11px monospace;color:#bff6ff;opacity:.9;}
.qa-buff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:8px;}
.qa-buff-card{display:grid;grid-template-columns:44px 1fr;gap:9px;align-items:center;text-align:left;min-height:58px;border:1px solid rgba(112,215,255,.24);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(0,0,0,.34));border-radius:14px;padding:8px;color:#ecfbff;cursor:pointer;}
.qa-buff-card.ability{border-color:rgba(112,215,255,.42);box-shadow:inset 0 0 18px rgba(112,215,255,.05);}
.qa-buff-card:hover{border-color:rgba(255,227,110,.65);transform:translateY(-1px);}
.qa-buff-icon{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;background:rgba(0,0,0,.28);}
.qa-buff-icon img{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 0 7px rgba(112,215,255,.28));}
.qa-buff-copy strong{display:block;font:900 12px monospace;letter-spacing:.06em;color:#fff;}
.qa-buff-copy em{display:block;font:700 10px monospace;line-height:1.25;color:#a7c9d7;font-style:normal;margin-top:3px;}
@media(max-width:720px), (pointer:coarse){.qa-buff-grid{grid-template-columns:1fr;}.qa-buff-card{grid-template-columns:40px 1fr;min-height:54px}.qa-buff-icon{width:36px;height:36px}.qa-buff-icon img{width:28px;height:28px}}


/* V204: phone pause menu, landscape warning, and global mobile menu scaling */
.mobile-pause-menu{position:fixed;inset:0;z-index:98000;display:grid;place-items:center;background:rgba(0,0,0,.68);padding:14px;}
.mobile-pause-menu.hidden{display:none!important;}
.mobile-pause-card{width:min(92vw,620px)!important;max-height:88svh!important;overflow:auto!important;padding:14px!important;}
.mobile-pause-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;}
.mobile-pause-grid button{min-height:44px;border-radius:12px;font:800 12px monospace;letter-spacing:.06em;}
.phone-rotate-warning{position:fixed;inset:0;z-index:120000;display:grid;place-items:center;background:rgba(0,0,0,.82);padding:18px;}
.phone-rotate-warning.hidden{display:none!important;}
.phone-rotate-warning>div{width:min(92vw,520px);border:1px solid rgba(255,48,72,.65);border-radius:18px;background:rgba(5,8,13,.96);box-shadow:0 0 32px rgba(255,48,72,.28);padding:18px;text-align:center;}
.phone-rotate-warning b{display:block;font:900 clamp(20px,6vw,34px) monospace;color:#ff3652;text-transform:uppercase;margin-bottom:8px;}
.phone-rotate-warning span{display:block;color:#dcecff;line-height:1.35;margin-bottom:14px;}
.phone-rotate-warning button{min-height:42px;border-radius:12px;padding:9px 14px;}
body.mobile-play .overlay:not(.hidden){padding:8px!important;}
body.mobile-play .database-modal{width:min(96vw,880px)!important;max-height:90svh!important;overflow:auto!important;}
body.mobile-play .playtest-modal .fracture-grid,body.mobile-play .mission-modal .fracture-grid{grid-template-columns:1fr!important;}
body.mobile-play .playtest-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
body.mobile-play .playtest-actions button{min-height:40px!important;font-size:10px!important;padding:7px!important;}
body.mobile-play .qa-lockdown-buff-board{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
@media(max-width:720px),(pointer:coarse){
  .mobile-action-pad{grid-template-columns:repeat(2,52px)!important;right:calc(env(safe-area-inset-right) + 8px)!important;bottom:calc(env(safe-area-inset-bottom) + 10px)!important;}
  .mobile-action-pad button{width:52px!important;height:42px!important;}
  .vector-lockdown-hud{max-width:240px!important;}
  .lockdown-card{max-height:30svh!important;overflow:auto!important;}
}
@media(max-width:900px) and (orientation:landscape){
  .mobile-action-pad{grid-template-columns:repeat(7,44px)!important;left:50%!important;right:auto!important;bottom:calc(env(safe-area-inset-bottom) + 6px)!important;transform:translateX(-50%)!important;}
  .mobile-action-pad button{width:44px!important;height:38px!important;}
  .mobile-action-pad button span{font-size:6.5px!important;}
  .lockdown-buff-dock{bottom:calc(env(safe-area-inset-bottom,0px) + 58px)!important;}
}


/* V205: reliable Vector Lockdown reward modal */
.vector-lockdown-reward-modal{position:fixed;inset:0;z-index:120000;display:flex;align-items:center;justify-content:center;padding:18px;pointer-events:auto;}
.vector-lockdown-reward-modal.hidden{display:none!important;}
.lockdown-reward-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 35%,rgba(255,48,72,.22),rgba(0,0,0,.82) 62%,rgba(0,0,0,.92));backdrop-filter:blur(3px);}
.lockdown-reward-modal-card{position:relative;z-index:1;width:min(620px,calc(100vw - 28px));max-height:min(82vh,720px);overflow:auto;border:1px solid rgba(112,215,255,.58);border-radius:18px;background:rgba(5,8,14,.96);box-shadow:0 0 40px rgba(112,215,255,.22),0 0 70px rgba(255,48,72,.16);padding:18px;}
.lockdown-reward-modal-card h2{font:900 clamp(28px,5vw,44px) monospace;margin:4px 0 8px;color:#fff;text-shadow:0 0 18px rgba(112,215,255,.45);}
.lockdown-reward-modal-card p{color:#e8faff;line-height:1.45;}
.lockdown-reward-modal-card button{margin-top:14px;width:100%;min-height:46px;border-radius:12px;border:1px solid rgba(112,215,255,.55);background:rgba(12,22,36,.96);color:#fff;font:900 13px monospace;letter-spacing:.08em;cursor:pointer;}
@media(max-width:720px), (pointer:coarse){.vector-lockdown-reward-modal{align-items:flex-start;padding:calc(env(safe-area-inset-top,0px) + 10px) 10px 10px}.lockdown-reward-modal-card{max-height:calc(100svh - 22px);padding:12px;border-radius:14px}.lockdown-reward-modal-card h2{font-size:26px}.lockdown-reward-modal-card .lockdown-stats span,.lockdown-reward-modal-card .lockdown-upgrades span{font-size:10px!important}}


/* V206: forced center-screen reward popup guard */
body.lockdown-reward-open .vector-lockdown-reward-modal{display:flex!important;visibility:visible!important;opacity:1!important;z-index:2147483000!important;}
.vector-lockdown-reward-modal{background:rgba(0,0,0,.58)!important;}
.lockdown-reward-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(112,215,255,.12),rgba(0,0,0,.74));backdrop-filter:blur(3px);}
.lockdown-reward-modal-card{pointer-events:auto!important;}
.lockdown-reward-modal-card .lockdown-stats{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0;}
.lockdown-reward-modal-card .lockdown-stats span{border:1px solid rgba(112,215,255,.38);border-radius:999px;padding:6px 9px;background:rgba(0,0,0,.34);}


/* V207: safe-scroll polish so menus/reward panels never cut off */
:root{--av-safe-top:env(safe-area-inset-top,0px);--av-safe-bottom:env(safe-area-inset-bottom,0px);}
.overlay:not(.hidden),
.database-menu:not(.hidden),
#inventoryOverlay:not(.hidden),
#missionOverlay:not(.hidden),
#progressionOverlay:not(.hidden),
#operatorOverlay:not(.hidden),
#characterOverlay:not(.hidden),
#playtestOverlay:not(.hidden),
#configOverlay:not(.hidden){
  max-height:100svh!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  padding-top:max(10px,var(--av-safe-top))!important;
  padding-bottom:max(12px,var(--av-safe-bottom))!important;
  box-sizing:border-box!important;
}
.database-modal,
.modal-card,
.fracture-card,
.playtest-card,
.character-file-card,
.inventory-hero-panel,
.mobile-pause-card,
.lockdown-card,
.lockdown-reward-modal-card{
  box-sizing:border-box!important;
  max-height:calc(100svh - max(28px, var(--av-safe-top)) - max(28px, var(--av-safe-bottom)))!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  scrollbar-width:thin;
}
.lockdown-reward-modal-card{
  width:min(680px,calc(100vw - 24px))!important;
  max-height:calc(100svh - max(18px,var(--av-safe-top)) - max(18px,var(--av-safe-bottom)))!important;
  padding:clamp(12px,2.2vw,20px)!important;
}
.lockdown-reward-modal-card .lockdown-upgrades,
.lockdown-reward-modal-card .lockdown-reward-loot{
  max-height:28svh!important;
  overflow:auto!important;
  padding-right:3px!important;
  -webkit-overflow-scrolling:touch!important;
}
.lockdown-reward-modal-card h2{line-height:1.02!important;word-break:normal!important;}
.lockdown-reward-modal-card p{margin:6px 0 10px!important;}
.lockdown-reward-modal-card button,
#lockdownRewardContinueBtn,
#lockdownContinueBtn,
#lockdownRetryBtn{
  position:sticky!important;
  bottom:0!important;
  z-index:3!important;
  box-shadow:0 -10px 24px rgba(0,0,0,.36),0 0 14px rgba(112,215,255,.16)!important;
}
.lockdown-icon-strip,.lockdown-buff-dock{max-width:calc(100vw - 18px)!important;}
.story-actions,
.save-hub-actions,
.audio-actions,
.mobile-pause-grid,
.playtest-actions{max-width:100%!important;}
.story-actions button,
.save-hub-actions button,
.audio-actions button,
.mobile-pause-grid button,
.playtest-actions button{white-space:normal!important;min-width:0!important;}
@media(max-width:900px){
  .database-modal,
  .modal-card,
  .fracture-card,
  .playtest-card,
  .character-file-card,
  .inventory-hero-panel,
  .mobile-pause-card{
    width:calc(100vw - 18px)!important;
    max-width:calc(100vw - 18px)!important;
    max-height:calc(100svh - max(18px,var(--av-safe-top)) - max(18px,var(--av-safe-bottom)))!important;
    padding:10px!important;
  }
  .record-grid,.database-grid,.inventory-grid,.character-grid,.save-slot-grid,.mobile-pause-grid{grid-template-columns:1fr!important;}
  .top-actions{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;}
}
@media(max-width:820px) and (orientation:landscape){
  .lockdown-reward-modal-card{max-height:calc(100svh - 10px)!important;padding:10px!important;}
  .lockdown-reward-modal-card h2{font-size:22px!important;margin:2px 0 5px!important;}
  .lockdown-reward-modal-card p{font-size:10px!important;line-height:1.25!important;}
  .lockdown-reward-modal-card .lockdown-stats span,
  .lockdown-reward-modal-card .lockdown-upgrades span{font-size:9px!important;padding:4px 6px!important;}
  .lockdown-reward-modal-card .lockdown-upgrades,
  .lockdown-reward-modal-card .lockdown-reward-loot{max-height:18svh!important;}
  .lockdown-reward-modal-card button{min-height:36px!important;margin-top:8px!important;}
  .mobile-pause-card{max-height:calc(100svh - 10px)!important;}
}
@media(max-width:560px){
  .lockdown-reward-modal-card{width:calc(100vw - 14px)!important;border-radius:13px!important;}
  .lockdown-reward-modal-card h2{font-size:24px!important;}
  .lockdown-reward-modal-card .lockdown-upgrades,
  .lockdown-reward-modal-card .lockdown-reward-loot{max-height:24svh!important;}
}

/* V216 controller + menu UI polish */
:root{--av-menu-bg:rgba(5,10,17,.96);--av-panel-bg:linear-gradient(180deg,rgba(12,20,32,.98),rgba(4,7,12,.98));--av-line:rgba(112,215,255,.32);--av-hot:rgba(112,215,255,.78);--av-red:rgba(255,48,72,.55)}
.overlay:not(.hidden){place-items:center!important;align-items:center!important;justify-items:center!important;padding:clamp(10px,2vw,22px)!important;overflow:hidden!important;background:radial-gradient(circle at top,rgba(0,217,255,.08),transparent 42%),rgba(0,0,0,.72)!important;}
.database-modal,.protocol-quick-panel .database-modal,.mobile-pause-card,.pre-battle-card,.story-card,.lockdown-reward-modal-card{background:var(--av-panel-bg)!important;border:1px solid var(--av-line)!important;box-shadow:0 18px 70px rgba(0,0,0,.58),0 0 35px rgba(0,217,255,.14)!important;border-radius:18px!important;max-height:calc(100svh - 28px)!important;overflow:auto!important;scrollbar-width:thin;padding:clamp(12px,2vw,20px)!important;}
.database-modal{width:min(1040px,calc(100vw - 24px))!important;}
.db-header{position:sticky;top:0;z-index:3;margin:-4px -4px 12px!important;padding:10px 12px!important;border-radius:14px!important;background:rgba(3,8,14,.92)!important;backdrop-filter:blur(8px);border:1px solid rgba(112,215,255,.22)!important;display:flex!important;gap:10px!important;align-items:center!important;justify-content:space-between!important;}
.db-header>div:first-child{font-size:clamp(15px,2vw,23px)!important;line-height:1.05!important;}
.db-header>div:last-child{font-size:clamp(9px,1.4vw,12px)!important;opacity:.78!important;text-align:right!important;}
.modal-close,#mobilePauseClose,#lockdownRewardContinueBtn{position:sticky!important;top:6px!important;z-index:6!important;}
.overlay button,.database-modal button,.mobile-pause-menu button,.story-actions button,.pre-battle-actions button,.lockdown-reward-modal-card button{min-height:44px!important;border-radius:12px!important;padding:10px 12px!important;white-space:normal!important;line-height:1.1!important;text-align:center!important;}
.controller-menu-selected,.controller-selected,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--av-hot)!important;outline-offset:3px!important;box-shadow:0 0 0 1px rgba(255,255,255,.4),0 0 22px rgba(112,215,255,.35)!important;filter:brightness(1.1)!important;}
.controller-menu-hint,.battle-controller-hint,.story-controller-tip{border:1px solid rgba(112,215,255,.25)!important;border-radius:12px!important;background:rgba(0,0,0,.32)!important;padding:8px 10px!important;line-height:1.35!important;}
.mobile-pause-menu{z-index:2147482500!important;place-items:center!important;}
.mobile-pause-card{width:min(720px,calc(100vw - 18px))!important;}
.mobile-pause-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;gap:10px!important;margin:12px 0!important;}
.mobile-pause-grid button{font:900 12px monospace!important;letter-spacing:.06em!important;background:rgba(12,25,38,.94)!important;border:1px solid rgba(112,215,255,.34)!important;color:#eaffff!important;}
.lockdown-reward-modal-card{width:min(720px,calc(100vw - 18px))!important;max-height:calc(100svh - 18px)!important;display:flex!important;flex-direction:column!important;gap:8px!important;}
.lockdown-reward-modal-card .lockdown-stats{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;gap:8px!important;max-height:28svh!important;overflow:auto!important;}
.lockdown-reward-modal-card .lockdown-upgrades,.lockdown-reward-modal-card .lockdown-reward-loot{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:7px!important;max-height:24svh!important;overflow:auto!important;}
.lockdown-reward-modal-card #lockdownRewardContinueBtn{margin-top:auto!important;background:linear-gradient(135deg,rgba(0,217,255,.22),rgba(255,48,72,.18))!important;}
@media(max-width:820px),(pointer:coarse){
  .overlay:not(.hidden){padding:8px!important;align-items:flex-start!important;place-items:start center!important;}
  .database-modal,.mobile-pause-card,.story-card,.pre-battle-card,.lockdown-reward-modal-card{width:calc(100vw - 14px)!important;max-height:calc(100svh - 14px)!important;border-radius:14px!important;padding:10px!important;font-size:11px!important;}
  .db-header{margin:0 0 8px!important;padding:8px 9px!important;}
  .database-modal .record-grid,.database-modal .shop-grid,.database-modal .operator-grid,.database-modal .character-grid,.database-modal .creature-grid,.database-modal .inventory-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important;gap:8px!important;}
  .overlay button,.database-modal button,.mobile-pause-menu button,.story-actions button,.pre-battle-actions button,.lockdown-reward-modal-card button{min-height:38px!important;padding:8px!important;font-size:10px!important;}
  .lockdown-reward-modal-card .lockdown-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:26svh!important;}
  .lockdown-reward-modal-card .lockdown-upgrades,.lockdown-reward-modal-card .lockdown-reward-loot{grid-template-columns:1fr!important;max-height:22svh!important;}
}
@media(max-height:500px) and (orientation:landscape){
  .database-modal,.mobile-pause-card,.story-card,.pre-battle-card,.lockdown-reward-modal-card{max-height:calc(100svh - 8px)!important;padding:8px!important;}
  .db-header{position:relative!important;margin:0 0 6px!important;}
  .lockdown-reward-modal-card h2{font-size:22px!important;margin:0!important;}
  .lockdown-reward-modal-card p{font-size:10px!important;margin:2px 0!important;}
}


/* V217: true pause visual polish */
body.game-paused #app canvas{filter:saturate(.85) brightness(.78);}
body.game-paused #mobileActionPad{opacity:.92;}
body.game-paused .mobile-pause-card::before{
  content:'GAME PAUSED';
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin:0 0 10px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(255,216,108,.55);
  background:rgba(255,216,108,.12);
  color:#ffe3a3;
  font-weight:900;
  letter-spacing:.14em;
  font-size:.75rem;
}


/* v223: NPC reward popup polish */
.field-contact-reward-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;z-index:2147482500;background:rgba(2,4,10,.64);backdrop-filter:blur(5px);}
.field-contact-reward-modal.hidden{display:none!important;}
.field-reward-backdrop{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(0,217,255,.16),rgba(0,0,0,.72));}
.field-reward-card{position:relative;width:min(620px,96vw);max-height:min(86vh,720px);overflow:auto;padding:22px;border-radius:18px;border:1px solid rgba(0,217,255,.45);box-shadow:0 0 32px rgba(0,217,255,.2), inset 0 0 28px rgba(0,217,255,.05);background:linear-gradient(180deg,rgba(9,16,25,.98),rgba(2,5,12,.98));}
.field-reward-card h2{margin:.25rem 0 .5rem;font-size:clamp(1.25rem,3vw,2rem);}
.field-reward-stats{margin:12px 0;}
.field-reward-loot{max-height:180px;overflow:auto;}
.field-reward-card button{width:100%;margin-top:14px;min-height:46px;}
@media(max-width:760px){.field-contact-reward-modal{padding:10px}.field-reward-card{width:98vw;max-height:88vh;padding:16px}.field-reward-loot{max-height:128px}.field-reward-card button{min-height:44px}}


/* V224 Player Guide Pass */
.player-guide-board{border-color:rgba(0,217,255,.42);}
.player-guide-board .guide-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:12px 0;}
.player-guide-board .guide-flow>div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(0,0,0,.26);}
.player-guide-board .guide-flow b{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:rgba(0,217,255,.16);border:1px solid rgba(0,217,255,.45);font-size:13px;color:#dffcff;}
.player-guide-board .guide-flow span{font-size:12px;line-height:1.35;color:rgba(235,247,255,.86);}
.player-guide-board .guide-flow strong{display:block;color:#fff;font-size:13px;margin-bottom:2px;}
.compact-guide-list div span{font-size:12px;line-height:1.35;}
@media (max-width:760px){
  .player-guide-board .guide-flow{grid-template-columns:1fr;}
  .player-guide-board .guide-flow>div{padding:9px;}
}


/* V225 onboarding checklist polish */
.onboarding-checklist-board{border-color:rgba(148,255,98,.42);box-shadow:0 0 22px rgba(148,255,98,.08)}
.onboarding-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.onboarding-check-row{border:1px solid rgba(255,255,255,.12);background:rgba(3,8,13,.56);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:5px;min-height:76px}
.onboarding-check-row b{color:#fff;font-size:13px;letter-spacing:.03em}
.onboarding-check-row span{color:#b9d6e8;font-size:12px;line-height:1.35}
.onboarding-check-row.done{border-color:rgba(148,255,98,.36);background:rgba(38,78,38,.18)}
.onboarding-check-row.todo{border-color:rgba(0,217,255,.22)}
.onboarding-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.onboarding-mini-row{border-color:rgba(148,255,98,.2)!important;background:rgba(3,18,16,.34)}
@media(max-width:760px){.onboarding-check-grid{grid-template-columns:1fr}.onboarding-check-row{min-height:auto}.onboarding-actions button{flex:1 1 160px}}


/* V226 stage reward preview polish */
.stage-reward-preview-board{border-color:rgba(255,216,108,.44);box-shadow:0 0 24px rgba(255,216,108,.08)}
.stage-reward-preview-board h3{margin-bottom:6px}
.reward-preview-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:12px;max-height:220px;overflow:auto;padding-right:4px}
.reward-preview-item{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,216,108,.18);background:rgba(255,216,108,.08);border-radius:12px;padding:9px 10px;min-height:40px}
.reward-preview-item b{color:#ffe4a3;text-shadow:0 0 8px rgba(255,216,108,.4)}
.reward-preview-item span{font-size:12px;color:#edf7ff;line-height:1.25}
@media(max-width:760px){.reward-preview-list{grid-template-columns:1fr;max-height:170px}.reward-preview-item{padding:8px 9px}}


/* v227 Route Records archive */
.route-records-board{overflow:hidden;}
.route-record-list{display:grid;gap:8px;max-height:min(42vh,420px);overflow:auto;padding-right:4px;}
.route-record-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.6fr);gap:10px;align-items:center;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(4,8,12,.46);padding:10px 12px;}
.route-record-row b{display:block;color:#f4f7ff;letter-spacing:.02em;}
.route-record-row span{display:block;color:#b7c4cc;font-size:12px;line-height:1.35;}
.route-record-row.complete{border-color:rgba(89,255,160,.30);box-shadow:inset 3px 0 0 rgba(89,255,160,.65);}
.route-record-row.active{border-color:rgba(0,217,255,.28);box-shadow:inset 3px 0 0 rgba(0,217,255,.58);}
.route-record-row.locked{opacity:.72;filter:saturate(.75);}
@media(max-width:760px){.route-record-row{grid-template-columns:1fr;}.route-record-list{max-height:48vh;}}


/* v228 Boss Intel polish */
.boss-intel-board{position:relative;overflow:hidden;}
.boss-intel-board:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 12%,rgba(255,62,108,.13),transparent 34%),radial-gradient(circle at 8% 90%,rgba(0,217,255,.10),transparent 38%);}
.boss-intel-board h3{margin-bottom:8px;color:#fff;text-shadow:0 0 12px rgba(255,62,108,.22);}
.boss-intel-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;}
.boss-intel-stat{border:1px solid rgba(255,255,255,.12);background:rgba(4,10,16,.62);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:3px;min-width:0;}
.boss-intel-stat b{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#8be9ff;}
.boss-intel-stat span{font-size:13px;color:#f4fbff;overflow-wrap:anywhere;}
.boss-drop-list{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 12px;}
.boss-drop-list span{border:1px solid rgba(156,255,207,.25);background:rgba(31,255,163,.08);border-radius:999px;padding:6px 9px;color:#dfffee;font-size:12px;}
@media(max-width:760px){.boss-intel-layout{grid-template-columns:repeat(2,minmax(0,1fr));}.boss-intel-stat{padding:8px}.boss-drop-list span{font-size:11px;padding:5px 8px}}
@media(max-width:520px){.boss-intel-layout{grid-template-columns:1fr;}}


/* v229 Route Prep Mission Card */
.route-prep-board{border-color:rgba(224,182,75,.30);box-shadow:inset 0 0 0 1px rgba(224,182,75,.08),0 0 22px rgba(224,182,75,.07);}
.route-prep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0;}
.route-prep-check{border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(0,0,0,.28);padding:9px 10px;min-height:58px;}
.route-prep-check b{display:block;font-size:12px;color:#fff;margin-bottom:4px;}
.route-prep-check span{display:block;font-size:12px;color:rgba(225,235,242,.78);line-height:1.3;}
.route-prep-check.ready{border-color:rgba(105,211,145,.28);box-shadow:inset 3px 0 0 rgba(105,211,145,.55);}
.route-prep-check.warn{border-color:rgba(224,182,75,.34);box-shadow:inset 3px 0 0 rgba(224,182,75,.62);}
.route-prep-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:10px;}
.route-prep-actions button{min-height:44px;white-space:normal;line-height:1.15;}
@media(max-width:760px){.route-prep-grid,.route-prep-actions{grid-template-columns:1fr 1fr;gap:7px}.route-prep-actions button{font-size:12px;padding:.55rem .45rem;}}


/* v230: Portal guide card for return/exit portal rules. */
.portal-guide-board{border-color:rgba(0,217,255,.34);box-shadow:inset 0 0 0 1px rgba(0,217,255,.08),0 0 22px rgba(0,217,255,.07);}
.portal-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:10px 0 8px;}
.portal-guide-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:rgba(0,0,0,.27);padding:9px 10px;min-height:58px;}
.portal-guide-row>b{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;border:1px solid rgba(0,217,255,.48);background:rgba(0,217,255,.14);color:#e9fbff;font-size:16px;text-shadow:0 0 8px rgba(0,217,255,.55);}
.portal-guide-row span{display:block;font-size:12px;line-height:1.28;color:rgba(230,243,250,.82);}
.portal-guide-row strong{display:block;color:#fff;font-size:13px;margin-bottom:2px;}
@media(max-width:760px){.portal-guide-grid{grid-template-columns:1fr 1fr;gap:7px}.portal-guide-row{grid-template-columns:34px 1fr;padding:8px;min-height:54px}.portal-guide-row>b{width:30px;height:30px;font-size:14px}.portal-guide-row span{font-size:11px}}


/* v231: archive safety panel */
.archive-safety-panel{border-color:rgba(150,255,223,.28)!important;background:linear-gradient(180deg,rgba(8,18,20,.78),rgba(3,6,10,.72))!important;}
.archive-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0;}
.archive-health-row{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px;background:rgba(0,0,0,.26);display:grid;gap:4px;min-width:0;}
.archive-health-row b{font:900 12px monospace;color:#fff;text-transform:uppercase;letter-spacing:.08em;}
.archive-health-row span{font:900 13px monospace;color:#ffd36b;}
.archive-health-row small{color:#aecad8;line-height:1.35;overflow-wrap:anywhere;}
.archive-health-row.ok{border-color:rgba(150,255,223,.38);box-shadow:inset 0 0 18px rgba(150,255,223,.05);}
.archive-health-row.ok span{color:#96ffdf;}
.archive-health-row.bad{border-color:rgba(255,48,72,.46);}
.archive-health-row.bad span{color:#ff6b7d;}
.archive-safety-actions{align-items:stretch;}
.archive-safety-actions .danger-btn{border-color:rgba(255,48,72,.55)!important;color:#ffd6dc!important;}
@media(max-width:760px){.archive-health-grid{grid-template-columns:1fr}.archive-safety-actions button{width:100%;}}


/* v232: clean controls help card for Configuration */
.controls-help-card .control-status-panel{
  border:1px solid rgba(112,215,255,.35);
  background:rgba(0,217,255,.07);
  border-radius:14px;
  padding:10px 12px;
  margin:10px 0 12px;
  color:#eaffff;
  box-shadow:inset 0 0 18px rgba(0,217,255,.05);
}
.control-status-line{font-size:12px;line-height:1.45;margin:2px 0;color:#d9fbff;}
.controls-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0;}
.control-map{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.045);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:5px;min-width:0;}
.control-map b{color:#70d7ff;letter-spacing:.08em;text-transform:uppercase;font-size:12px;}
.control-map span{font-size:11px;line-height:1.25;color:#cfe8ee;overflow-wrap:anywhere;}
.controls-help-actions{margin-top:10px;}
.controls-help-actions button{min-height:38px;}
@media (max-width: 840px), (pointer: coarse){
  .controls-help-grid{grid-template-columns:1fr;gap:8px;}
  .control-map{padding:9px;}
  .control-map span,.control-status-line{font-size:12px;}
  .controls-help-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
}
@media (max-width: 520px){.controls-help-actions{grid-template-columns:1fr;}}


/* v233: compact route status strip for fast play/readability. */
.qol-route-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin:0 0 10px;
  padding:8px;
  border:1px solid rgba(0,217,255,.22);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(5,13,18,.72),rgba(0,0,0,.38));
  box-shadow:inset 0 0 18px rgba(0,217,255,.05);
}
.qol-pill{
  min-width:0;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  padding:7px 8px;
  background:rgba(255,255,255,.045);
  display:flex;
  flex-direction:column;
  gap:2px;
  overflow:hidden;
}
.qol-pill b{font:900 10px/1.1 monospace;letter-spacing:.1em;text-transform:uppercase;color:#70d7ff;white-space:nowrap;}
.qol-pill span{font:800 11px/1.2 monospace;color:#e8fbff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qol-pill.strong{background:rgba(0,217,255,.10);border-color:rgba(0,217,255,.32);}
.qol-pill.ok{border-color:rgba(150,255,223,.26);}
.qol-pill.ok b{color:#96ffdf;}
.qol-pill.warn{border-color:rgba(255,211,107,.36);}
.qol-pill.warn b{color:#ffd36b;}
.qol-pill.danger{border-color:rgba(255,48,72,.45);box-shadow:0 0 16px rgba(255,48,72,.08);}
.qol-pill.danger b{color:#ff6b7d;}
@media(max-width:900px){.qol-route-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:7px}.qol-pill{padding:6px 7px}.qol-pill b{font-size:9px}.qol-pill span{font-size:10px}}
@media(max-width:520px){.qol-route-strip{grid-template-columns:1fr 1fr}.qol-pill:nth-child(n+7){display:none}}


/* v234: Event Journal polish */
.event-journal-card{min-height:0;}
.event-journal-card p{color:rgba(221,245,255,.82);line-height:1.45;}
.event-journal-list{display:grid;gap:8px;max-height:min(360px,42vh);overflow:auto;padding-right:4px;scrollbar-width:thin;}
.event-journal-row{display:grid;grid-template-columns:70px 76px 1fr;gap:8px;align-items:start;padding:9px 10px;border:1px solid rgba(0,217,255,.16);border-radius:12px;background:rgba(0,0,0,.22);}
.event-journal-row b{color:#96ffdf;font-size:12px;white-space:nowrap;}
.event-journal-row span{color:#ffd37a;font-size:11px;letter-spacing:.08em;white-space:nowrap;}
.event-journal-row p{margin:0;color:#dff8ff;font-size:12px;line-height:1.35;overflow-wrap:anywhere;}
.event-journal-empty{padding:12px;border:1px dashed rgba(255,255,255,.22);border-radius:12px;color:rgba(221,245,255,.7);}
@media (max-width: 760px){
  .event-journal-list{max-height:34vh;}
  .event-journal-row{grid-template-columns:58px 64px 1fr;padding:8px;gap:6px;}
  .event-journal-row p{font-size:11px;}
}

/* V272: selected file is separate from active playable character. */
.character-card-btn.selected-file{border-color:rgba(0,217,255,.95)!important;box-shadow:0 0 22px rgba(0,217,255,.26)!important;}
.character-card-btn.selected-file em{color:#00d9ff;font-weight:900;}
.character-card-btn.active:not(.selected-file){border-color:rgba(105,211,145,.70)!important;}


/* V273: Character file scroll + Buy Now panel. */
#characterOverlay .character-modal{
  width:min(1180px,calc(100vw - 24px))!important;
  height:min(860px,calc(100svh - 24px))!important;
  max-height:calc(100svh - 24px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
#characterOverlay .character-layout{
  min-height:0!important;
  flex:1 1 auto!important;
  display:grid!important;
  grid-template-columns:minmax(180px,320px) minmax(0,1fr)!important;
  gap:14px!important;
  overflow:hidden!important;
}
#characterOverlay .character-list,
#characterOverlay .character-file{
  min-height:0!important;
  max-height:100%!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  padding-right:4px!important;
}
#characterOverlay .character-file-card{
  min-height:0!important;
  max-height:none!important;
  display:block!important;
  overflow:visible!important;
}
#characterOverlay .character-file-scroll{
  display:grid!important;
  gap:12px!important;
  padding-bottom:18px!important;
}
#characterOverlay .character-preview img{
  max-height:260px!important;
  object-fit:contain!important;
}
.character-buy-panel{
  border:1px solid rgba(255,211,106,.42)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,rgba(255,185,64,.13),rgba(0,0,0,.24))!important;
  padding:12px!important;
  display:grid!important;
  gap:8px!important;
}
.character-buy-panel b{color:#ffe36e!important;font-size:16px!important;letter-spacing:.08em;text-transform:uppercase;}
.character-buy-panel span{color:#d8c38a!important;line-height:1.35!important;}
.character-buy-panel .buy-now-btn{border-color:rgba(255,211,106,.8)!important;box-shadow:0 0 18px rgba(255,211,106,.16)!important;background:rgba(90,54,6,.42)!important;}
@media(max-width:780px){
  #characterOverlay .character-modal{height:calc(100svh - 12px)!important;max-height:calc(100svh - 12px)!important;}
  #characterOverlay .character-layout{grid-template-columns:1fr!important;overflow:auto!important;}
  #characterOverlay .character-list{max-height:160px!important;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:8px!important;}
  #characterOverlay .character-file{overflow:visible!important;}
  #characterOverlay .character-preview img{max-height:190px!important;}
}


/* V274: Character detail scroll lock fix. The detail panel is the scroll target,
   so locked character stats/moves can be read without snapping back to the top. */
#characterOverlay{
  overflow:hidden!important;
  overscroll-behavior:contain!important;
}
#characterOverlay .character-modal{
  overflow:hidden!important;
  min-height:0!important;
}
#characterOverlay .character-layout{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
}
#characterOverlay .character-file{
  min-height:0!important;
  height:100%!important;
  max-height:100%!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  padding-right:8px!important;
  padding-bottom:46px!important;
  scroll-behavior:auto!important;
}
#characterOverlay .character-file-scroll{
  min-height:max-content!important;
  overflow:visible!important;
  padding-bottom:90px!important;
}
#characterOverlay .character-file-card{
  overflow:visible!important;
  min-height:max-content!important;
}
#characterOverlay .character-list{
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
}
@media(max-width:780px){
  #characterOverlay .character-modal{
    height:calc(100svh - 12px)!important;
    max-height:calc(100svh - 12px)!important;
  }
  #characterOverlay .character-layout{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    overflow:hidden!important;
    min-height:0!important;
  }
  #characterOverlay .character-list{
    max-height:132px!important;
    overflow-y:auto!important;
  }
  #characterOverlay .character-file{
    overflow-y:auto!important;
    height:100%!important;
    max-height:100%!important;
  }
}


/* V275: character unlock roadmap polish. */
.character-unlock-summary{
  border:1px solid rgba(0,217,255,.28)!important;
  border-radius:14px!important;
  background:rgba(0,0,0,.28)!important;
  padding:10px 12px!important;
  display:grid!important;
  gap:4px!important;
  margin-bottom:8px!important;
}
.character-unlock-summary b{color:#fff!important;letter-spacing:.08em;text-transform:uppercase!important;}
.character-unlock-summary span{color:#9fb7c4!important;font-size:12px!important;line-height:1.35!important;}
.character-roadmap-panel{
  border:1px solid rgba(112,215,255,.28)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,rgba(0,217,255,.09),rgba(0,0,0,.25))!important;
  padding:12px!important;
  display:grid!important;
  gap:10px!important;
}
.character-roadmap-panel h3{margin:0!important;color:#fff!important;}
.character-roadmap-steps{display:grid!important;gap:8px!important;}
.character-roadmap-steps div{
  display:grid!important;
  grid-template-columns:42px 1fr!important;
  gap:8px!important;
  align-items:start!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:12px!important;
  background:rgba(0,0,0,.22)!important;
  padding:8px!important;
}
.character-roadmap-steps b{color:#ffe36e!important;text-align:center!important;}
.character-roadmap-steps span{color:#cfe6ef!important;line-height:1.35!important;}


/* V276: Character roster filter/search polish. */
.character-roster-controls{
  border:1px solid rgba(112,215,255,.22)!important;
  border-radius:16px!important;
  background:rgba(0,0,0,.25)!important;
  padding:10px!important;
  display:grid!important;
  gap:8px!important;
}
.character-filter-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;}
.character-filter-tabs button{font-size:11px!important;padding:8px 7px!important;border-radius:10px!important;}
.character-filter-tabs button.active{border-color:rgba(0,217,255,.95)!important;box-shadow:0 0 16px rgba(0,217,255,.18)!important;color:#fff!important;}
#characterRosterSearch{width:100%!important;box-sizing:border-box!important;border:1px solid rgba(255,255,255,.18)!important;background:rgba(0,0,0,.42)!important;color:#e9faff!important;border-radius:12px!important;padding:10px!important;font:800 12px monospace!important;outline:none!important;}
#characterRosterSearch:focus{border-color:rgba(0,217,255,.85)!important;box-shadow:0 0 14px rgba(0,217,255,.14)!important;}
.character-empty-state{border:1px dashed rgba(255,255,255,.22)!important;border-radius:16px!important;padding:14px!important;background:rgba(0,0,0,.22)!important;color:#9fb7c4!important;display:grid!important;gap:5px!important;}
.character-empty-state b{color:#fff!important;}


/* V277 Inventory Quick Actions */
.inventory-quick-actions{display:grid;grid-template-columns:minmax(180px,.9fr) 1.6fr;gap:14px;align-items:stretch;margin:12px 0 16px;padding:14px;border:1px solid rgba(0,217,255,.24);border-radius:18px;background:linear-gradient(135deg,rgba(0,217,255,.10),rgba(0,0,0,.42));box-shadow:0 0 24px rgba(0,217,255,.08) inset}
.inventory-quick-actions h3{margin:2px 0 4px;color:#fff;text-transform:uppercase;letter-spacing:.06em}
.inventory-quick-actions p{margin:0;color:rgba(255,255,255,.70);font-size:13px;line-height:1.35}
.inventory-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}
.inventory-quick-grid button{min-height:64px;border-radius:14px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px;white-space:normal;line-height:1.2;padding:10px 12px}
.inventory-quick-grid button b{font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.inventory-quick-grid button span{font-size:11px;color:rgba(255,255,255,.70)}
.inventory-quick-grid button:disabled{opacity:.48;filter:saturate(.55);cursor:not-allowed}
@media (max-width:900px){.inventory-quick-actions{grid-template-columns:1fr}.inventory-quick-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media (max-width:560px){.inventory-quick-grid{grid-template-columns:1fr}.inventory-quick-grid button{min-height:54px}}


/* V278: Bag / Inventory cleanup pass. The old inventory modal had a cramped two-column
   database layout and a developer reference panel that made the usable item area too small. */
#inventoryOverlay .database-modal{
  width:min(1280px,96vw);
  max-height:92vh;
  overflow:hidden;
  padding:14px 16px 16px;
  display:flex;
  flex-direction:column;
}
#inventoryOverlay .modal-close{
  float:none;
  order:-2;
  width:100%;
  margin:0 0 10px;
  border-radius:14px;
  padding:10px 12px;
  min-height:42px;
}
#inventoryOverlay .db-header{
  flex:0 0 auto;
  margin-bottom:10px;
  gap:8px;
  align-items:center;
}
#inventoryOverlay .inventory-db-layout{
  flex:1 1 auto;
  min-height:0;
  display:block!important;
  overflow:hidden;
}
#inventoryOverlay .inventory-db-layout>section:first-child{
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
#inventoryOverlay .inventory-db-layout>section:first-child>h2,
#inventoryOverlay .inventory-db-layout>section:first-child>p,
#inventoryOverlay .inventory-db-layout>section:first-child>.record-kicker{
  display:none;
}
#inventoryOverlay .inventory-reference-panel{
  display:none!important;
}
#inventoryOverlay .inventory-database-list{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding-right:6px;
}
#inventoryOverlay .inventory-hero-panel,
#inventoryOverlay .inventory-quick-actions{
  margin:0 0 10px;
}
#inventoryOverlay .inventory-hero-panel{
  grid-template-columns:1.15fr .85fr;
  padding:10px 12px;
}
#inventoryOverlay .inventory-quick-actions{
  grid-template-columns:minmax(160px,.65fr) 1.8fr;
  padding:10px 12px;
}
#inventoryOverlay .inventory-quick-grid{
  grid-template-columns:repeat(4,minmax(110px,1fr));
}
#inventoryOverlay .inventory-layout-pro{
  display:grid;
  grid-template-columns:minmax(330px,.95fr) minmax(390px,1.05fr);
  gap:12px;
  min-height:440px;
  max-height:58vh;
  overflow:hidden;
  margin-bottom:12px;
}
#inventoryOverlay .owned-items,
#inventoryOverlay .item-detail-panel{
  min-height:0;
  max-height:58vh;
  overflow:auto;
}
#inventoryOverlay .owned-items{
  padding-right:6px;
}
#inventoryOverlay .owned-grid{
  grid-template-columns:1fr!important;
  gap:8px;
}
#inventoryOverlay .owned-item{
  grid-template-columns:58px minmax(0,1fr) auto;
  min-height:74px;
}
#inventoryOverlay .owned-item div,
#inventoryOverlay .owned-item b,
#inventoryOverlay .owned-item span,
#inventoryOverlay .owned-item small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
#inventoryOverlay .item-detail-panel{
  position:static!important;
  top:auto!important;
  align-self:stretch;
  padding:12px;
}
#inventoryOverlay .item-detail-panel .record-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#inventoryOverlay .item-detail-panel .record-grid span{
  overflow-wrap:anywhere;
}
#inventoryOverlay .item-tools{
  position:sticky;
  top:0;
  z-index:2;
  background:rgba(4,8,14,.96);
  padding:8px 0 10px;
  border-bottom:1px solid rgba(112,215,255,.12);
}
#inventoryOverlay #itemRegistryButtons{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:8px;
  max-height:340px;
  overflow:auto;
  padding-right:6px;
}
#inventoryOverlay h3{
  margin:10px 0 8px;
}
@media(max-width:980px){
  #inventoryOverlay .database-modal{width:98vw;max-height:96vh;padding:10px;}
  #inventoryOverlay .db-header{font-size:12px;}
  #inventoryOverlay .inventory-hero-panel,
  #inventoryOverlay .inventory-quick-actions,
  #inventoryOverlay .inventory-layout-pro{grid-template-columns:1fr!important;}
  #inventoryOverlay .inventory-layout-pro{max-height:none;overflow:visible;}
  #inventoryOverlay .owned-items,
  #inventoryOverlay .item-detail-panel{max-height:none;overflow:visible;}
  #inventoryOverlay .inventory-database-list{overflow:auto;}
  #inventoryOverlay .inventory-quick-grid{grid-template-columns:repeat(2,minmax(110px,1fr));}
}
@media(max-width:640px){
  #inventoryOverlay .inventory-quick-grid{grid-template-columns:1fr;}
  #inventoryOverlay .owned-item{grid-template-columns:50px minmax(0,1fr);}
  #inventoryOverlay .owned-item em{grid-column:1/-1;}
}


/* V282: phone overlay hotfix.
   Fixes mobile menu overlap by hiding gameplay HUD while a protocol menu is open,
   turning major menus into a single-column mobile stack, and restoring touch scroll. */
.setting-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  margin:8px 0;
  border:1px solid rgba(112,215,255,.18);
  border-radius:12px;
  background:rgba(255,255,255,.04);
}
.setting-row span{
  min-width:0;
  color:#e6fbff;
  font-size:12px;
  line-height:1.3;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:900;
}
.setting-row input[type="checkbox"]{
  width:22px;
  height:22px;
  accent-color:#00d9ff;
}
@media (max-width: 900px), (pointer: coarse){
  body.menu-protocol-open .objective-compass,
  body.menu-protocol-open .mobile-pad,
  body.menu-protocol-open .mobile-action-pad,
  body.menu-protocol-open .mobile-battle-pad,
  body.menu-protocol-open .fs-persistent-stats,
  body.menu-protocol-open .fullscreen-quickbar,
  body.menu-protocol-open .objective-tracker,
  body.menu-protocol-open .mission-strip{
    display:none !important;
  }

  .overlay:not(.hidden){
    padding:max(6px, env(safe-area-inset-top)) 6px max(6px, env(safe-area-inset-bottom)) !important;
    align-items:flex-start !important;
    place-items:start center !important;
    overflow:hidden !important;
  }

  #inventoryOverlay .database-modal,
  #missionOverlay .database-modal,
  #progressionOverlay .database-modal,
  #configOverlay .database-modal,
  #characterOverlay .character-modal{
    width:calc(100vw - 12px) !important;
    max-width:calc(100vw - 12px) !important;
    height:calc(100svh - 12px) !important;
    max-height:calc(100svh - 12px) !important;
    min-height:0 !important;
    border-radius:14px !important;
    padding:8px !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    touch-action:pan-y !important;
  }

  #inventoryOverlay .modal-close,
  #missionOverlay .modal-close,
  #progressionOverlay .modal-close,
  #configOverlay .modal-close,
  #characterOverlay .modal-close{
    position:sticky !important;
    top:0 !important;
    margin:0 0 8px !important;
    width:100% !important;
    min-height:40px !important;
    padding:9px 10px !important;
    font-size:12px !important;
    z-index:12 !important;
    background:rgba(5,11,18,.96) !important;
    backdrop-filter:blur(8px) !important;
  }

  #inventoryOverlay .db-header,
  #missionOverlay .db-header,
  #progressionOverlay .db-header,
  #configOverlay .db-header,
  #characterOverlay .db-header{
    position:relative !important;
    top:auto !important;
    margin:0 0 8px !important;
    padding:8px 10px !important;
    gap:8px !important;
    align-items:flex-start !important;
    flex-wrap:wrap !important;
  }
  #inventoryOverlay .db-header > div:first-child,
  #missionOverlay .db-header > div:first-child,
  #progressionOverlay .db-header > div:first-child,
  #configOverlay .db-header > div:first-child,
  #characterOverlay .db-header > div:first-child{
    min-width:0 !important;
    font-size:clamp(13px, 4.4vw, 22px) !important;
    line-height:1.1 !important;
  }
  #inventoryOverlay .db-header > div:last-child,
  #missionOverlay .db-header > div:last-child,
  #progressionOverlay .db-header > div:last-child,
  #configOverlay .db-header > div:last-child,
  #characterOverlay .db-header > div:last-child{
    min-width:0 !important;
    font-size:10px !important;
    line-height:1.2 !important;
    opacity:.78 !important;
    text-align:left !important;
  }

  #inventoryOverlay .inventory-db-layout,
  #missionOverlay .fracture-grid,
  #progressionOverlay .progression-layout,
  #configOverlay .fracture-grid,
  #characterOverlay .character-layout{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-auto-rows:auto !important;
    gap:8px !important;
    flex:none !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
  }

  #inventoryOverlay .fracture-card,
  #missionOverlay .fracture-card,
  #progressionOverlay .fracture-card,
  #configOverlay .fracture-card,
  #characterOverlay .character-list,
  #characterOverlay .character-file{
    min-width:0 !important;
    max-height:none !important;
    overflow:visible !important;
    padding:10px !important;
  }

  #inventoryOverlay .inventory-reference-panel{
    display:none !important;
  }

  #inventoryOverlay .inventory-database-list,
  #progressionOverlay .progression-list,
  #characterOverlay .character-list,
  #characterOverlay .character-file,
  #missionOverlay .event-journal-list,
  #missionOverlay .npc-contact-list{
    max-height:none !important;
    overflow:visible !important;
    padding-right:0 !important;
  }

  #inventoryOverlay .item-tools,
  #missionOverlay .record-kicker,
  #progressionOverlay .record-kicker,
  #configOverlay .record-kicker,
  #characterOverlay .record-kicker{
    word-break:break-word !important;
  }

  #inventoryOverlay .inventory-layout-pro,
  #inventoryOverlay .inventory-hero-panel,
  #inventoryOverlay .inventory-quick-actions{
    grid-template-columns:1fr !important;
    max-height:none !important;
    overflow:visible !important;
  }
  #inventoryOverlay .owned-grid,
  #inventoryOverlay .item-grid,
  #inventoryOverlay #itemRegistryButtons{
    grid-template-columns:1fr !important;
  }
  #inventoryOverlay .owned-item,
  #inventoryOverlay .bank-slot,
  #inventoryOverlay .item-card{
    min-width:0 !important;
  }
  #inventoryOverlay .item-tools{
    position:sticky !important;
    top:0 !important;
    z-index:4 !important;
    background:rgba(4,8,14,.96) !important;
    padding:8px !important;
    border-radius:12px !important;
    border:1px solid rgba(112,215,255,.15) !important;
  }
  #inventoryOverlay .item-filter-row,
  #inventoryOverlay .inventory-quick-grid{
    grid-template-columns:1fr !important;
  }

  #progressionOverlay .style-picker{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    gap:6px !important;
  }
  #progressionOverlay .style-card{
    min-height:48px !important;
    padding:8px !important;
  }
  #progressionOverlay .skill-row{
    grid-template-columns:34px 1fr !important;
    gap:8px !important;
    padding:8px !important;
    align-items:start !important;
  }
  #progressionOverlay .style-card img,
  #progressionOverlay .skill-row img,
  #progressionOverlay .skill-glyph{
    width:26px !important;
    height:26px !important;
    min-width:26px !important;
  }
  #progressionOverlay .skill-row span,
  #progressionOverlay .skill-row small,
  #progressionOverlay .upgrade-card span,
  #progressionOverlay .upgrade-card em{
    font-size:10px !important;
    line-height:1.3 !important;
  }

  #missionOverlay .fracture-grid{
    grid-template-columns:1fr !important;
  }
  #missionOverlay .protocol-list div,
  #missionOverlay .record-grid div,
  #missionOverlay .event-journal-row,
  #missionOverlay .npc-contact-row,
  #missionOverlay .route-record-row{
    min-width:0 !important;
  }
  #missionOverlay .record-grid{
    grid-template-columns:1fr !important;
  }
  #missionOverlay .event-journal-row p,
  #missionOverlay .npc-contact-row span,
  #missionOverlay .route-record-row span{
    font-size:10px !important;
    line-height:1.3 !important;
    overflow-wrap:anywhere !important;
  }

  #configOverlay .fracture-grid{
    grid-template-columns:1fr !important;
  }
  #configOverlay .save-slot-grid,
  #configOverlay .archive-health-grid,
  #configOverlay .audio-mixer-grid,
  #configOverlay .controls-help-grid{
    grid-template-columns:1fr !important;
  }
  #configOverlay .save-slot > div,
  #configOverlay .save-hub-actions,
  #configOverlay .audio-actions,
  #configOverlay .controls-help-actions,
  #configOverlay .archive-safety-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  #configOverlay .audio-row{
    grid-template-columns:84px minmax(0,1fr) 40px !important;
    gap:8px !important;
  }
  #configOverlay .audio-row span,
  #configOverlay .audio-row b,
  #configOverlay .control-map span,
  #configOverlay .control-status-line,
  #configOverlay .archive-health-row small,
  #configOverlay .save-slot span,
  #configOverlay .save-slot small,
  #configOverlay .fineprint,
  #configOverlay .menu-info{
    font-size:10px !important;
    line-height:1.35 !important;
    overflow-wrap:anywhere !important;
  }

  #characterOverlay .character-list{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  #characterOverlay .character-preview img{
    max-height:180px !important;
  }
}

@media (max-width: 560px){
  #inventoryOverlay .db-header > div:last-child,
  #missionOverlay .db-header > div:last-child,
  #progressionOverlay .db-header > div:last-child,
  #configOverlay .db-header > div:last-child,
  #characterOverlay .db-header > div:last-child{
    display:none !important;
  }
  #progressionOverlay .style-picker{
    grid-template-columns:1fr !important;
  }
}


/* V283: phone menu hard override.
   This is intentionally mobile-only and placed last so older menu rules cannot win. */
@media (pointer: coarse), (max-width: 900px){
  body.menu-protocol-open{overflow:hidden!important;}
  body.menu-protocol-open .objective-compass,
  body.menu-protocol-open #objectiveCompass,
  body.menu-protocol-open .mobile-pad,
  body.menu-protocol-open .mobile-action-pad,
  body.menu-protocol-open .mobile-battle-pad,
  body.menu-protocol-open .fs-persistent-stats,
  body.menu-protocol-open .fullscreen-quickbar,
  body.menu-protocol-open .mission-strip,
  body.menu-protocol-open .objective-tracker,
  body.menu-protocol-open .qol-route-strip,
  body.menu-protocol-open .toast{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  body.menu-protocol-open .overlay:not(.hidden){
    display:flex!important;
    align-items:flex-start!important;
    justify-content:center!important;
    inset:0!important;
    width:100vw!important;
    height:100svh!important;
    padding:6px!important;
    overflow:hidden!important;
    z-index:2147482000!important;
    background:rgba(0,0,0,.82)!important;
  }
  body.menu-protocol-open .database-modal,
  body.menu-protocol-open .mobile-pause-card,
  body.menu-protocol-open .story-card,
  body.menu-protocol-open .pre-battle-card,
  body.menu-protocol-open .character-modal{
    position:relative!important;
    inset:auto!important;
    width:calc(100vw - 12px)!important;
    max-width:calc(100vw - 12px)!important;
    height:calc(100svh - 12px)!important;
    max-height:calc(100svh - 12px)!important;
    min-height:0!important;
    margin:0!important;
    padding:8px!important;
    border-radius:12px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    display:block!important;
    font-size:10px!important;
    line-height:1.28!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scrollbar-width:thin!important;
  }
  body.menu-protocol-open .database-modal::after,
  body.menu-protocol-open .character-modal::after,
  body.menu-protocol-open .fracture-card::after,
  body.menu-protocol-open .character-file-card::after{
    display:none!important;
  }
  body.menu-protocol-open .modal-close,
  body.menu-protocol-open #mobilePauseClose{
    position:sticky!important;
    top:0!important;
    left:0!important;
    z-index:999!important;
    width:100%!important;
    min-height:36px!important;
    margin:0 0 8px!important;
    padding:8px 10px!important;
    font-size:11px!important;
    line-height:1.1!important;
    border-radius:11px!important;
    background:rgba(7,14,22,.98)!important;
    color:#eaffff!important;
    box-shadow:0 8px 18px rgba(0,0,0,.44)!important;
  }
  body.menu-protocol-open .db-header{
    position:relative!important;
    top:auto!important;
    z-index:1!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:3px!important;
    margin:0 0 8px!important;
    padding:8px 10px!important;
    border-radius:12px!important;
    min-height:0!important;
  }
  body.menu-protocol-open .db-header>div:first-child{
    font-size:clamp(15px,3.3vw,20px)!important;
    line-height:1.1!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  body.menu-protocol-open .db-header>div:last-child{
    font-size:9px!important;
    line-height:1.15!important;
    opacity:.68!important;
    text-align:left!important;
    white-space:normal!important;
  }
  body.menu-protocol-open h1,
  body.menu-protocol-open h2,
  body.menu-protocol-open h3{
    margin:6px 0!important;
    line-height:1.1!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  body.menu-protocol-open h2{font-size:clamp(15px,3.1vw,20px)!important;}
  body.menu-protocol-open h3{font-size:clamp(12px,2.5vw,16px)!important;}
  body.menu-protocol-open p,
  body.menu-protocol-open span,
  body.menu-protocol-open small,
  body.menu-protocol-open em,
  body.menu-protocol-open label,
  body.menu-protocol-open .menu-info,
  body.menu-protocol-open .fineprint{
    line-height:1.3!important;
    overflow-wrap:anywhere!important;
  }
  body.menu-protocol-open button,
  body.menu-protocol-open input,
  body.menu-protocol-open select,
  body.menu-protocol-open textarea{
    max-width:100%!important;
    font-size:10px!important;
  }
  body.menu-protocol-open .fracture-grid,
  body.menu-protocol-open .progression-layout,
  body.menu-protocol-open .inventory-db-layout,
  body.menu-protocol-open .character-layout,
  body.menu-protocol-open .operator-file,
  body.menu-protocol-open .anomaly-layout,
  body.menu-protocol-open .battle-ui,
  body.menu-protocol-open .record-grid,
  body.menu-protocol-open .protocol-list,
  body.menu-protocol-open .save-slot-grid,
  body.menu-protocol-open .audio-mixer-grid,
  body.menu-protocol-open .controls-help-grid,
  body.menu-protocol-open .archive-health-grid,
  body.menu-protocol-open .inventory-layout-pro,
  body.menu-protocol-open .inventory-hero-panel,
  body.menu-protocol-open .inventory-quick-actions,
  body.menu-protocol-open .inventory-quick-grid,
  body.menu-protocol-open .item-filter-row,
  body.menu-protocol-open .owned-grid,
  body.menu-protocol-open .item-grid,
  body.menu-protocol-open #itemRegistryButtons{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-auto-flow:row!important;
    gap:8px!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body.menu-protocol-open .fracture-card,
  body.menu-protocol-open .character-file-card,
  body.menu-protocol-open .inventory-hero-panel,
  body.menu-protocol-open .item-detail-panel,
  body.menu-protocol-open .owned-items,
  body.menu-protocol-open .bank-panel,
  body.menu-protocol-open .upgrade-station,
  body.menu-protocol-open .save-hub-panel,
  body.menu-protocol-open .audio-mixer-panel,
  body.menu-protocol-open .archive-safety-panel,
  body.menu-protocol-open .controls-help-card{
    position:relative!important;
    top:auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:9px!important;
    border-radius:12px!important;
  }
  body.menu-protocol-open .inventory-reference-panel,
  body.menu-protocol-open .asset-code{
    display:none!important;
  }
  body.menu-protocol-open .inventory-database-list,
  body.menu-protocol-open .progression-list,
  body.menu-protocol-open .character-list,
  body.menu-protocol-open .character-file,
  body.menu-protocol-open .character-file-scroll,
  body.menu-protocol-open .creature-list-buttons,
  body.menu-protocol-open .anomaly-list,
  body.menu-protocol-open .anomaly-file,
  body.menu-protocol-open .operator-data,
  body.menu-protocol-open .operator-art{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding-right:0!important;
  }
  body.menu-protocol-open .item-tools{
    position:relative!important;
    top:auto!important;
    z-index:2!important;
    padding:8px!important;
    margin:0 0 8px!important;
    border:1px solid rgba(112,215,255,.18)!important;
    border-radius:12px!important;
    background:rgba(4,9,15,.94)!important;
  }
  body.menu-protocol-open .item-tools input,
  body.menu-protocol-open .item-tools select{
    width:100%!important;
    min-height:36px!important;
    border-radius:10px!important;
  }
  body.menu-protocol-open .skill-row,
  body.menu-protocol-open .upgrade-card,
  body.menu-protocol-open .owned-item,
  body.menu-protocol-open .bank-slot,
  body.menu-protocol-open .item-card,
  body.menu-protocol-open .save-slot,
  body.menu-protocol-open .archive-health-row,
  body.menu-protocol-open .control-map,
  body.menu-protocol-open .setting-row,
  body.menu-protocol-open .protocol-list div,
  body.menu-protocol-open .record-grid div{
    min-width:0!important;
    width:100%!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
  }
  body.menu-protocol-open .skill-row{
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    align-items:start!important;
    gap:8px!important;
    padding:8px!important;
  }
  body.menu-protocol-open .style-picker{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  body.menu-protocol-open .style-card{
    min-width:0!important;
    min-height:42px!important;
    padding:7px!important;
  }
  body.menu-protocol-open .skill-glyph,
  body.menu-protocol-open .style-card img,
  body.menu-protocol-open .skill-row img{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
  }
  body.menu-protocol-open .bar{
    max-width:100%!important;
    height:8px!important;
    margin-top:3px!important;
  }
  body.menu-protocol-open .save-slot>div,
  body.menu-protocol-open .save-hub-actions,
  body.menu-protocol-open .audio-actions,
  body.menu-protocol-open .controls-help-actions,
  body.menu-protocol-open .archive-safety-actions,
  body.menu-protocol-open .story-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  body.menu-protocol-open .audio-row{
    display:grid!important;
    grid-template-columns:74px minmax(0,1fr) 34px!important;
    gap:6px!important;
    padding:8px!important;
  }
  body.menu-protocol-open .setting-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 26px!important;
    align-items:center!important;
    gap:8px!important;
    padding:8px!important;
  }
  body.menu-protocol-open .setting-row input[type="checkbox"]{
    width:22px!important;
    height:22px!important;
  }
  body.menu-protocol-open .character-preview img,
  body.menu-protocol-open .operator-art img{
    max-height:160px!important;
    object-fit:contain!important;
  }
}
@media (pointer: coarse) and (orientation: landscape){
  body.menu-protocol-open .database-modal,
  body.menu-protocol-open .character-modal{
    font-size:9.5px!important;
    padding:7px!important;
  }
  body.menu-protocol-open .db-header>div:first-child{font-size:17px!important;}
  body.menu-protocol-open h2{font-size:16px!important;}
  body.menu-protocol-open h3{font-size:13px!important;}
  body.menu-protocol-open .modal-close{min-height:34px!important;}
  body.menu-protocol-open .style-picker{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  body.menu-protocol-open .inventory-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width: 520px), ((pointer: coarse) and (orientation: portrait)){
  body.menu-protocol-open .style-picker,
  body.menu-protocol-open .inventory-quick-grid{
    grid-template-columns:1fr!important;
  }
}


/* V284: Compact Quest HUD Pass.
   Keeps the tracker readable while playing and lets players tap/click to expand it. */
.objective-tracker.quest-compact{
  cursor:pointer;
  position:relative;
  overflow:hidden!important;
  max-height:118px;
  transition:max-height .18s ease, opacity .18s ease, background .18s ease;
}
.objective-tracker.quest-compact::after{
  content:'TAP TO EXPAND';
  position:absolute;
  right:10px;
  bottom:6px;
  font:900 9px/1 Consolas,monospace;
  color:rgba(112,215,255,.76);
  letter-spacing:.08em;
  background:rgba(3,7,12,.78);
  border:1px solid rgba(112,215,255,.22);
  border-radius:999px;
  padding:4px 7px;
  pointer-events:none;
}
.objective-tracker.quest-expanded{
  max-height:min(48vh,420px)!important;
  overflow:auto!important;
  opacity:1!important;
  cursor:pointer;
  -webkit-overflow-scrolling:touch;
}
.objective-tracker.quest-expanded::after{content:'TAP TO COLLAPSE';}
.objective-tracker .qol-route-strip{
  margin-bottom:6px!important;
}
@media (max-width:900px), (pointer:coarse){
  body.game-active .objective-tracker.quest-compact{
    display:block!important;
    max-height:54px!important;
    overflow:hidden!important;
    font-size:10px!important;
    line-height:1.18!important;
  }
  body.game-active .objective-tracker.quest-compact .qol-route-strip{
    display:none!important;
  }
  body.game-active .objective-tracker.quest-compact::after{
    content:'+';
    right:6px;
    bottom:5px;
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    padding:0;
    font-size:14px;
  }
  body.game-active .objective-tracker.quest-expanded{
    top:calc(env(safe-area-inset-top) + 8px)!important;
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-height:42svh!important;
    overflow:auto!important;
    font-size:10px!important;
    padding-bottom:28px!important;
  }
  body.game-active .objective-tracker.quest-expanded .qol-route-strip{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.game-active .objective-tracker.quest-expanded::after{content:'−';}
}


/* V285/V286: phone gameplay UI polish — scrollable AVOS tips, corrected skill emblems,
   right-side action buttons, and a transparent joystick replacing arrow buttons. */
@media (max-width:900px), (pointer:coarse){
  .tutorial-tip-overlay{
    position:fixed!important;
    left:auto!important;
    right:max(8px, env(safe-area-inset-right))!important;
    bottom:calc(env(safe-area-inset-bottom) + 74px)!important;
    top:auto!important;
    width:min(360px, calc(100vw - 18px))!important;
    max-width:calc(100vw - 18px)!important;
    max-height:min(52svh, 280px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    padding:12px 14px!important;
    border-radius:16px!important;
    z-index:6400!important;
    background:linear-gradient(180deg,rgba(3,8,14,.94),rgba(0,0,0,.88))!important;
    border:1px solid rgba(0,217,255,.42)!important;
    box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 22px rgba(0,217,255,.12)!important;
  }
  .tutorial-tip-overlay h3{font-size:18px!important;line-height:1.12!important;margin:0 0 7px!important;}
  .tutorial-tip-overlay p{font-size:12px!important;line-height:1.35!important;margin:0 0 8px!important;}
  .tutorial-tip-overlay button{min-height:34px!important;padding:7px 10px!important;font-size:10px!important;}
}
@media (max-width:900px) and (orientation:landscape), (pointer:coarse) and (orientation:landscape){
  .tutorial-tip-overlay{
    right:max(8px, env(safe-area-inset-right))!important;
    bottom:calc(env(safe-area-inset-bottom) + 54px)!important;
    width:min(330px, 42vw)!important;
    max-height:46svh!important;
  }
}

@media (max-width:900px), (pointer:coarse){
  #progressionOverlay .skill-row .skill-emblem{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    border-radius:12px!important;
    align-self:start!important;
    margin-top:1px!important;
  }
  #progressionOverlay .skill-row .skill-emblem img{
    inset:3px!important;
    width:calc(100% - 6px)!important;
    height:calc(100% - 6px)!important;
  }
  #progressionOverlay .style-card .skill-emblem{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    border-radius:11px!important;
  }
  #progressionOverlay .skill-row{
    grid-template-columns:42px minmax(0,1fr)!important;
    align-items:start!important;
    overflow:hidden!important;
  }
  #progressionOverlay .skill-row>div{min-width:0!important;}
  #progressionOverlay .skill-row b,
  #progressionOverlay .skill-row span,
  #progressionOverlay .skill-row small{overflow-wrap:anywhere!important;}
}

.mobile-joystick{display:none;}
@media (max-width:900px), (pointer:coarse){
  body.game-active .mobile-pad{display:none!important;}
  body.game-active .mobile-joystick{
    display:grid!important;
    position:fixed!important;
    left:calc(env(safe-area-inset-left) + 18px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 18px)!important;
    z-index:5700!important;
    place-items:center!important;
    gap:3px!important;
    width:116px!important;
    height:116px!important;
    opacity:.78!important;
    touch-action:none!important;
    user-select:none!important;
  }
  body.menu-protocol-open .mobile-joystick,
  body.battle-mode .mobile-joystick,
  body.battle-victory-mode .mobile-joystick{display:none!important;}
  .mobile-joystick-ring{
    position:relative!important;
    width:92px!important;
    height:92px!important;
    border-radius:999px!important;
    border:1px solid rgba(112,215,255,.32)!important;
    background:radial-gradient(circle,rgba(112,215,255,.10),rgba(0,0,0,.16) 55%,rgba(0,0,0,.06))!important;
    box-shadow:inset 0 0 22px rgba(0,217,255,.08),0 10px 28px rgba(0,0,0,.24)!important;
    backdrop-filter:blur(4px)!important;
  }
  .mobile-joystick-ring:before,.mobile-joystick-ring:after{
    content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:999px;pointer-events:none;
  }
  .mobile-joystick-ring:before{width:60px;height:60px;border:1px dashed rgba(255,255,255,.12);}
  .mobile-joystick-ring:after{width:8px;height:8px;background:rgba(112,215,255,.35);box-shadow:0 0 12px rgba(112,215,255,.38);}
  .mobile-joystick-knob{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:42px!important;
    height:42px!important;
    border-radius:999px!important;
    transform:translate(-50%,-50%)!important;
    border:1px solid rgba(112,215,255,.42)!important;
    background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.24),rgba(112,215,255,.18) 48%,rgba(0,0,0,.22))!important;
    box-shadow:0 0 22px rgba(0,217,255,.18)!important;
    transition:transform .045s linear!important;
    pointer-events:none!important;
  }
  .mobile-joystick small{
    color:rgba(220,250,255,.72)!important;
    font:900 9px/1 monospace!important;
    letter-spacing:.16em!important;
    text-shadow:0 0 8px rgba(0,217,255,.35)!important;
  }

  .mobile-action-pad{
    left:auto!important;
    right:calc(env(safe-area-inset-right) + 12px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 16px)!important;
    transform:none!important;
    display:grid!important;
    grid-template-columns:repeat(2,52px)!important;
    gap:6px!important;
    padding:7px!important;
    border-radius:18px!important;
    background:rgba(3,7,12,.46)!important;
    border:1px solid rgba(112,215,255,.24)!important;
    backdrop-filter:blur(8px)!important;
    opacity:.88!important;
  }
  .mobile-action-pad button{
    width:52px!important;
    height:42px!important;
    min-width:0!important;
    min-height:0!important;
    padding:0!important;
    border-radius:14px!important;
    background:rgba(12,18,27,.78)!important;
    border-color:rgba(112,215,255,.22)!important;
    box-shadow:none!important;
  }
  .mobile-action-pad [data-mobile-action="talk"]{
    grid-column:1 / -1!important;
    width:110px!important;
    height:48px!important;
    border-color:rgba(112,215,255,.62)!important;
    background:linear-gradient(135deg,rgba(0,217,255,.18),rgba(255,48,72,.10))!important;
    box-shadow:0 0 18px rgba(0,217,255,.15)!important;
  }
  .mobile-action-pad button b{font-size:14px!important;line-height:1!important;color:#7ce7ff!important;}
  .mobile-action-pad button span{font-size:7px!important;line-height:1!important;white-space:nowrap!important;}
}
@media (max-width:520px) and (orientation:portrait){
  body.game-active .mobile-joystick{left:calc(env(safe-area-inset-left) + 10px)!important;bottom:calc(env(safe-area-inset-bottom) + 12px)!important;transform:scale(.92)!important;transform-origin:bottom left!important;}
  .mobile-action-pad{right:calc(env(safe-area-inset-right) + 8px)!important;bottom:calc(env(safe-area-inset-bottom) + 10px)!important;transform:scale(.90)!important;transform-origin:bottom right!important;}
}


/* V286: stronger phone tutorial scroll + joystick cleanup. */
@media (max-width:900px), (pointer:coarse){
  .tutorial-tip-overlay{
    pointer-events:auto!important;
    overflow:hidden!important;
    touch-action:pan-y!important;
    max-height:min(58svh, 330px)!important;
    overscroll-behavior:contain!important;
  }
  .tutorial-tip-overlay .tutorial-tip-scroll{
    max-height:inherit!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    padding:12px 14px 14px!important;
    overscroll-behavior:contain!important;
  }
  .tutorial-tip-overlay .tutorial-tip-scroll p{
    overflow-wrap:anywhere!important;
  }
  body.game-active .mobile-joystick{
    width:142px!important;
    height:142px!important;
    opacity:.86!important;
    left:calc(env(safe-area-inset-left) + 12px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 12px)!important;
  }
  .mobile-joystick-ring{
    width:116px!important;
    height:116px!important;
    border-width:2px!important;
    background:radial-gradient(circle,rgba(112,215,255,.12),rgba(0,0,0,.14) 52%,rgba(0,0,0,.04))!important;
  }
  .mobile-joystick-ring:before{width:76px!important;height:76px!important;}
  .mobile-joystick-knob{
    width:48px!important;
    height:48px!important;
    transition:transform .025s linear!important;
    border-color:rgba(112,215,255,.62)!important;
  }
  .mobile-joystick small{display:none!important;}
}
@media (max-width:900px) and (orientation:landscape), (pointer:coarse) and (orientation:landscape){
  .tutorial-tip-overlay{
    right:max(8px, env(safe-area-inset-right))!important;
    bottom:calc(env(safe-area-inset-bottom) + 60px)!important;
    width:min(410px, 46vw)!important;
    max-height:52svh!important;
  }
  .tutorial-tip-overlay .tutorial-tip-scroll{max-height:52svh!important;}
  body.game-active .mobile-joystick{
    left:calc(env(safe-area-inset-left) + 10px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 8px)!important;
    transform:scale(.86)!important;
    transform-origin:bottom left!important;
  }
  .mobile-action-pad{
    right:calc(env(safe-area-inset-right) + 8px)!important;
    bottom:calc(env(safe-area-inset-bottom) + 8px)!important;
    transform:scale(.92)!important;
    transform-origin:bottom right!important;
  }
}


/* V287 — Immersive World Foundation */
.graphics-settings-panel{margin-top:14px;padding:12px;border:1px solid rgba(112,215,255,.24);border-radius:14px;background:linear-gradient(145deg,rgba(5,14,24,.84),rgba(12,8,22,.78));box-shadow:inset 0 0 28px rgba(0,217,255,.045)}
.setting-select-row select{min-width:150px;max-width:52%;border:1px solid rgba(112,215,255,.36);border-radius:10px;background:#07121c;color:#ecfbff;padding:8px 10px;font:800 12px monospace;outline:none}.setting-select-row select:focus{border-color:#70d7ff;box-shadow:0 0 0 3px rgba(112,215,255,.12)}
.graphics-profile-status{margin:10px 0 0;padding:9px 10px;border-radius:10px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);color:#9deaff;font:700 11px/1.35 monospace}
body.game-active .game-card{box-shadow:0 22px 70px rgba(0,0,0,.58),0 0 0 1px rgba(112,215,255,.06),inset 0 0 42px rgba(0,217,255,.035)}
body.game-active canvas#game{filter:saturate(1.07) contrast(1.035) brightness(1.015);transition:filter .3s ease;box-shadow:inset 0 0 38px rgba(0,0,0,.5)}
body[data-graphics-quality="cinematic"] canvas#game{filter:saturate(1.12) contrast(1.055) brightness(1.025)}
body[data-graphics-quality="performance"] canvas#game{filter:saturate(1.02) contrast(1.02)}
body[data-graphics-quality="cinematic"] .game-card:before{opacity:1;animation-duration:13s}
body[data-graphics-quality="performance"] .game-card:before{opacity:.48;animation:none}
body.reduced-motion .game-card:before{animation:none!important;transform:none!important}
@media(max-width:560px){.setting-select-row{align-items:flex-start}.setting-select-row select{max-width:58%;min-width:128px;font-size:11px}.graphics-settings-panel{padding:10px}}
@media (max-width:900px), (pointer:coarse){
  body.menu-protocol-open .setting-row.setting-select-row{grid-template-columns:minmax(0,1fr) minmax(138px,42%)!important;overflow:visible!important}
  body.menu-protocol-open .setting-row.setting-select-row select{width:100%!important;max-width:100%!important;min-width:0!important}
}

/* v289 // F-001 cinematic overhaul */
.field-cinematic-overlay{
  position:fixed;
  inset:0;
  z-index:95;
  display:grid;
  place-items:center;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(3,5,10,.18), rgba(3,5,10,.52));
  opacity:0;
  transition:opacity .28s ease;
}
.field-cinematic-overlay.visible{ opacity:1; }
.field-cinematic-overlay.hidden{ display:none; }
.field-cinematic-banner{
  width:min(92vw, 780px);
  padding:20px 24px;
  border:1px solid rgba(155,215,255,.28);
  background:linear-gradient(180deg, rgba(11,18,28,.90), rgba(16,10,24,.82));
  box-shadow:0 18px 60px rgba(0,0,0,.45), 0 0 28px rgba(120,210,255,.10);
  text-align:center;
  color:#eef7ff;
  backdrop-filter:blur(8px);
}
.field-cinematic-kicker{
  font:700 11px/1.2 "IBM Plex Mono", monospace;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#89e7ff;
  margin-bottom:8px;
}
.field-cinematic-banner h2{
  margin:0;
  font-size:clamp(26px,4vw,46px);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#ffffff;
}
.field-cinematic-banner p{
  margin:10px auto 0;
  max-width:62ch;
  color:rgba(232,242,255,.86);
  font-size:clamp(13px,2vw,16px);
  line-height:1.5;
}
body.boss-battle-active #battlePanel{
  box-shadow:0 0 0 1px rgba(255,92,118,.24), 0 22px 70px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.03);
}
body.boss-battle-active #battlePanel::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at center, rgba(255,86,122,0) 34%, rgba(255,86,122,.10) 100%);
  mix-blend-mode:screen;
}
@media (max-width: 768px){
  .field-cinematic-banner{ width:min(94vw, 680px); padding:16px 14px; }
  .field-cinematic-kicker{ letter-spacing:.16em; font-size:10px; }
}

/* V297: compact Lockdown overlay, bottom buffs, simplified rewards, responsive joystick */
.vector-lockdown-hud{
  position:fixed!important;
  top:max(12px,calc(env(safe-area-inset-top,0px) + 10px))!important;
  right:max(12px,calc(env(safe-area-inset-right,0px) + 10px))!important;
  bottom:auto!important;
  left:auto!important;
  width:min(230px,calc(100vw - 24px))!important;
  max-width:230px!important;
  z-index:90000!important;
  pointer-events:none!important;
  contain:layout paint style!important;
  transform:none!important;
}
.vector-lockdown-hud .lockdown-compact-card{
  width:100%!important;
  max-width:100%!important;
  max-height:none!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding:9px 10px!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,rgba(6,10,17,.94),rgba(9,4,10,.92))!important;
  border:1px solid rgba(255,72,96,.70)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.40),0 0 22px rgba(255,48,72,.18)!important;
}
.lockdown-compact-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:8px!important;}
.lockdown-compact-head .record-kicker{font-size:9px!important;line-height:1.15!important;letter-spacing:.12em!important;color:#ff7789!important;max-width:135px!important;}
.lockdown-compact-head h2{font:900 31px/.88 monospace!important;margin:0!important;color:#fff!important;white-space:nowrap!important;text-shadow:0 0 12px rgba(255,48,72,.55)!important;}
.lockdown-compact-state{margin:5px 0 6px!important;font:900 9px/1.25 monospace!important;letter-spacing:.05em!important;color:#ecfaff!important;white-space:normal!important;}
.lockdown-compact-hp{margin:0 0 6px!important;}
.lockdown-compact-hp>div:first-child{display:flex!important;justify-content:space-between!important;font:800 8px/1 monospace!important;color:#dff7ff!important;letter-spacing:.07em!important;}
.lockdown-compact-hp-track{height:6px!important;margin-top:3px!important;border-radius:999px!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.19)!important;background:rgba(0,0,0,.62)!important;}
.lockdown-compact-hp-track span{display:block!important;height:100%!important;width:100%;background:linear-gradient(90deg,#37f7a5,#ffe36e,#ff3048)!important;transition:width .12s linear!important;}
.lockdown-compact-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;margin:0!important;}
.lockdown-compact-stats span{min-width:0!important;padding:3px 4px!important;border-radius:7px!important;border:1px solid rgba(112,215,255,.22)!important;background:rgba(0,0,0,.30)!important;color:#dff9ff!important;font:800 7.5px/1.1 monospace!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
#lockdownRoll,#lockdownIconStrip,#lockdownUpgrades{display:none!important;}

.lockdown-buff-dock{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:max(12px,calc(env(safe-area-inset-bottom,0px) + 10px))!important;
  transform:translateX(-50%)!important;
  z-index:76000!important;
  width:auto!important;
  max-width:min(900px,calc(100vw - 32px))!important;
  padding:6px 8px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  overflow:hidden!important;
  border-radius:16px!important;
  background:rgba(2,7,12,.76)!important;
  border:1px solid rgba(112,215,255,.28)!important;
  backdrop-filter:blur(8px)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.34),0 0 18px rgba(0,217,255,.12)!important;
  contain:layout paint style!important;
  pointer-events:none!important;
}
.lockdown-buff-dock.hidden{display:none!important;}
.lockdown-bottom-icons{display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;flex-wrap:nowrap!important;max-width:100%!important;overflow:hidden!important;}
.lockdown-buff-dock .lockdown-icon-chip.big{min-width:45px!important;width:45px!important;height:43px!important;min-height:43px!important;padding:3px!important;border-radius:10px!important;flex:0 0 auto!important;}
.lockdown-buff-dock .lockdown-icon-chip.big img{width:21px!important;height:21px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big b{font-size:9px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big small{font-size:7.5px!important;margin-top:2px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big em{right:-3px!important;top:-4px!important;min-width:17px!important;height:17px!important;font-size:8px!important;padding:0 3px!important;}
.lockdown-bottom-modifiers{display:flex!important;gap:4px!important;justify-content:center!important;max-width:100%!important;overflow:hidden!important;}
.lockdown-bottom-modifiers span{padding:3px 6px!important;border-radius:999px!important;font:800 7.5px/1 monospace!important;white-space:nowrap!important;border:1px solid rgba(112,215,255,.30)!important;background:rgba(0,0,0,.28)!important;color:#dffaff!important;}
.lockdown-bottom-modifiers span.buff{border-color:rgba(55,247,165,.46)!important;color:#baffdf!important;}
.lockdown-bottom-modifiers span.ability{border-color:rgba(112,215,255,.52)!important;color:#bff6ff!important;}
.lockdown-bottom-modifiers span.debuff{border-color:rgba(255,48,72,.62)!important;color:#ff9cab!important;}
.lockdown-dock-pulse{animation:v297DockPulse .42s ease-out!important;}
@keyframes v297DockPulse{0%{filter:brightness(1);transform:translateX(-50%) scale(1)}45%{filter:brightness(1.35);transform:translateX(-50%) scale(1.025)}100%{filter:brightness(1);transform:translateX(-50%) scale(1)}}

.vector-lockdown-reward-modal{padding:12px!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
.lockdown-reward-modal-card{
  width:min(680px,calc(100vw - 24px))!important;
  max-height:min(90dvh,760px)!important;
  padding:0!important;
  overflow:hidden!important;
  display:block!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,rgba(9,16,27,.98),rgba(4,8,14,.98))!important;
}
.lockdown-reward-summary{display:flex!important;flex-direction:column!important;gap:12px!important;max-height:min(90dvh,760px)!important;padding:18px!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;box-sizing:border-box!important;}
.lockdown-reward-summary header{display:block!important;}
.lockdown-reward-summary header h2{margin:3px 0 5px!important;font:900 clamp(27px,5vw,40px)/1 monospace!important;color:#fff!important;}
.lockdown-reward-summary header p{margin:0!important;color:#cde8f1!important;font:600 12px/1.45 monospace!important;}
.lockdown-reward-summary-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;}
.lockdown-reward-summary-grid>div{display:flex!important;flex-direction:column!important;gap:2px!important;padding:9px!important;border-radius:11px!important;border:1px solid rgba(112,215,255,.24)!important;background:rgba(0,0,0,.28)!important;min-width:0!important;}
.lockdown-reward-summary-grid b{font:900 17px/1 monospace!important;color:#fff!important;overflow-wrap:anywhere!important;}
.lockdown-reward-summary-grid span{font:800 8px/1.2 monospace!important;letter-spacing:.05em!important;color:#8fc6d8!important;text-transform:uppercase!important;}
.lockdown-reward-section{display:block!important;margin:0!important;}
.lockdown-reward-section h3{margin:0 0 7px!important;font:900 12px/1 monospace!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#bff6ff!important;}
.lockdown-reward-items{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;max-height:none!important;overflow:visible!important;}
.lockdown-reward-item{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;padding:8px 9px!important;border-radius:10px!important;border:1px solid rgba(112,215,255,.22)!important;background:rgba(0,0,0,.24)!important;}
.lockdown-reward-item b{flex:0 0 auto!important;color:#7ee8ff!important;font:900 10px/1 monospace!important;}
.lockdown-reward-item span{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#effcff!important;font:700 10px/1.2 monospace!important;}
.lockdown-reward-buffs>div{display:flex!important;flex-wrap:wrap!important;gap:5px!important;max-height:none!important;overflow:visible!important;}
.lockdown-reward-buffs span{padding:5px 7px!important;border-radius:999px!important;border:1px solid rgba(112,215,255,.24)!important;background:rgba(0,0,0,.24)!important;color:#dffaff!important;font:700 9px/1 monospace!important;}
.lockdown-reward-empty{padding:9px!important;border-radius:10px!important;background:rgba(0,0,0,.22)!important;color:#9db8c2!important;font:700 10px monospace!important;}
.lockdown-reward-summary #lockdownRewardContinueBtn{
  position:sticky!important;
  left:0!important;
  right:0!important;
  bottom:-1px!important;
  top:auto!important;
  width:100%!important;
  min-height:44px!important;
  margin:2px 0 0!important;
  border-radius:12px!important;
  border:1px solid rgba(112,215,255,.60)!important;
  background:linear-gradient(135deg,rgba(0,217,255,.24),rgba(255,48,72,.19))!important;
  color:#fff!important;
  font:900 12px monospace!important;
  letter-spacing:.08em!important;
  box-shadow:0 -10px 24px rgba(4,8,14,.92),0 0 18px rgba(112,215,255,.12)!important;
}

@media (max-width:900px),(pointer:coarse){
  .vector-lockdown-hud{top:max(7px,calc(env(safe-area-inset-top,0px) + 6px))!important;right:max(7px,calc(env(safe-area-inset-right,0px) + 6px))!important;width:178px!important;max-width:178px!important;}
  .vector-lockdown-hud .lockdown-compact-card{padding:6px 7px!important;border-radius:11px!important;}
  .lockdown-compact-head .record-kicker{font-size:7px!important;max-width:104px!important;}
  .lockdown-compact-head h2{font-size:24px!important;}
  .lockdown-compact-state{font-size:7px!important;margin:3px 0 4px!important;}
  .lockdown-compact-hp>div:first-child{font-size:6.5px!important;}
  .lockdown-compact-hp-track{height:5px!important;}
  .lockdown-compact-stats{gap:3px!important;}
  .lockdown-compact-stats span{font-size:6px!important;padding:2px 3px!important;}
  .lockdown-buff-dock{max-width:calc(100vw - 270px)!important;bottom:max(7px,calc(env(safe-area-inset-bottom,0px) + 6px))!important;padding:4px 5px!important;border-radius:12px!important;gap:3px!important;}
  .lockdown-bottom-icons{gap:3px!important;overflow-x:auto!important;scrollbar-width:none!important;justify-content:flex-start!important;}
  .lockdown-bottom-icons::-webkit-scrollbar{display:none!important;}
  .lockdown-buff-dock .lockdown-icon-chip.big{width:37px!important;min-width:37px!important;height:36px!important;min-height:36px!important;border-radius:8px!important;padding:2px!important;}
  .lockdown-buff-dock .lockdown-icon-chip.big img{width:18px!important;height:18px!important;}
  .lockdown-buff-dock .lockdown-icon-chip.big small{font-size:6.5px!important;}
  .lockdown-bottom-modifiers{display:none!important;}
  .vector-lockdown-reward-modal{padding:7px!important;align-items:center!important;}
  .lockdown-reward-modal-card{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important;border-radius:13px!important;}
  .lockdown-reward-summary{max-height:calc(100dvh - 14px)!important;padding:11px!important;gap:8px!important;}
  .lockdown-reward-summary header h2{font-size:24px!important;}
  .lockdown-reward-summary header p{font-size:9px!important;line-height:1.3!important;}
  .lockdown-reward-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;}
  .lockdown-reward-summary-grid>div{padding:6px!important;border-radius:8px!important;}
  .lockdown-reward-summary-grid b{font-size:13px!important;}
  .lockdown-reward-summary-grid span{font-size:6.5px!important;}
  .lockdown-reward-section h3{font-size:9px!important;margin-bottom:5px!important;}
  .lockdown-reward-items{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;}
  .lockdown-reward-item{padding:5px 6px!important;border-radius:7px!important;gap:5px!important;}
  .lockdown-reward-item b,.lockdown-reward-item span{font-size:8px!important;}
  .lockdown-reward-buffs span{font-size:7px!important;padding:3px 5px!important;}
  .lockdown-reward-summary #lockdownRewardContinueBtn{min-height:38px!important;font-size:10px!important;}
}
@media (max-width:900px) and (orientation:landscape),(pointer:coarse) and (orientation:landscape){
  .lockdown-buff-dock{left:50%!important;right:auto!important;max-width:calc(100vw - 290px)!important;}
  body.vector-lockdown-active .mobile-joystick,body.vector-lockdown-warning .mobile-joystick{opacity:.92!important;transform:none!important;}
  body.vector-lockdown-active .mobile-action-pad,body.vector-lockdown-warning .mobile-action-pad{opacity:.88!important;transform:none!important;}
}
@media (max-width:620px) and (orientation:portrait){
  .lockdown-buff-dock{max-width:calc(100vw - 22px)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 150px)!important;}
  .lockdown-reward-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .lockdown-reward-items{grid-template-columns:1fr!important;}
}

@media (max-width:900px),(pointer:coarse){
  .mobile-joystick{--joy-x:0px;--joy-y:0px;touch-action:none!important;}
  .mobile-joystick-knob{
    transform:translate(calc(-50% + var(--joy-x)),calc(-50% + var(--joy-y)))!important;
    transition:transform .018s linear!important;
    will-change:transform!important;
  }
  .mobile-joystick.active .mobile-joystick-ring{border-color:rgba(112,215,255,.72)!important;box-shadow:inset 0 0 24px rgba(0,217,255,.13),0 0 24px rgba(0,217,255,.20)!important;}
  .mobile-joystick.active .mobile-joystick-knob{border-color:rgba(190,247,255,.88)!important;box-shadow:0 0 24px rgba(0,217,255,.34)!important;}
}


/* V298: Lockdown overlays must fit the game, never shrink or letterbox it */
body.vector-lockdown-active,
body.vector-lockdown-warning{
  overflow:hidden!important;
}
body.vector-lockdown-active .game-card,
body.vector-lockdown-warning .game-card{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#000!important;
}
body.vector-lockdown-active canvas#game,
body.vector-lockdown-warning canvas#game{
  position:fixed!important;
  inset:0!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-width:100vw!important;
  min-height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  object-fit:fill!important;
  transform:none!important;
  z-index:1!important;
}
body.vector-lockdown-active .game-card:before,
body.vector-lockdown-active .game-card:after,
body.vector-lockdown-warning .game-card:before,
body.vector-lockdown-warning .game-card:after{
  inset:0!important;
}

/* Smaller top-right HUD that floats over the full game */
.vector-lockdown-hud{
  width:176px!important;
  max-width:176px!important;
  top:max(8px,calc(env(safe-area-inset-top,0px) + 6px))!important;
  right:max(8px,calc(env(safe-area-inset-right,0px) + 6px))!important;
  z-index:90000!important;
}
.vector-lockdown-hud .lockdown-compact-card{
  padding:6px 7px!important;
  border-radius:11px!important;
  background:rgba(5,8,14,.86)!important;
  backdrop-filter:blur(5px)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.34),0 0 12px rgba(255,48,72,.13)!important;
}
.lockdown-compact-head{align-items:center!important;gap:5px!important;}
.lockdown-compact-head .record-kicker{
  max-width:86px!important;
  font-size:6.5px!important;
  line-height:1.05!important;
  letter-spacing:.08em!important;
}
.lockdown-compact-head h2{
  font-size:22px!important;
  line-height:.9!important;
}
.lockdown-compact-state{
  margin:3px 0 4px!important;
  font-size:6.5px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.lockdown-compact-hp{margin-bottom:4px!important;}
.lockdown-compact-hp>div:first-child{font-size:6px!important;}
.lockdown-compact-hp-track{height:4px!important;margin-top:2px!important;}
.lockdown-compact-stats{gap:2px!important;}
.lockdown-compact-stats span{
  padding:2px 3px!important;
  border-radius:5px!important;
  font-size:5.5px!important;
}

/* Thin buff tray over the bottom edge; it never changes canvas size */
.lockdown-buff-dock{
  bottom:max(7px,calc(env(safe-area-inset-bottom,0px) + 5px))!important;
  max-width:min(610px,calc(100vw - 32px))!important;
  padding:3px 5px!important;
  gap:2px!important;
  border-radius:10px!important;
  background:rgba(2,7,12,.64)!important;
  backdrop-filter:blur(5px)!important;
  box-shadow:0 4px 14px rgba(0,0,0,.28),0 0 10px rgba(0,217,255,.08)!important;
}
.lockdown-bottom-icons{gap:2px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big{
  width:34px!important;
  min-width:34px!important;
  height:32px!important;
  min-height:32px!important;
  padding:2px!important;
  border-radius:7px!important;
}
.lockdown-buff-dock .lockdown-icon-chip.big img{width:16px!important;height:16px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big b{font-size:7px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big small{font-size:5.5px!important;margin-top:1px!important;}
.lockdown-buff-dock .lockdown-icon-chip.big em{
  right:-3px!important;
  top:-4px!important;
  min-width:14px!important;
  height:14px!important;
  font-size:6px!important;
}
.lockdown-bottom-modifiers{gap:2px!important;max-height:13px!important;}
.lockdown-bottom-modifiers span{padding:2px 4px!important;font-size:5.5px!important;}

@media (max-width:900px),(pointer:coarse){
  body.vector-lockdown-active canvas#game,
  body.vector-lockdown-warning canvas#game{
    object-fit:fill!important;
    width:100vw!important;
    height:100dvh!important;
  }
  .vector-lockdown-hud{
    width:132px!important;
    max-width:132px!important;
    top:max(5px,calc(env(safe-area-inset-top,0px) + 4px))!important;
    right:max(5px,calc(env(safe-area-inset-right,0px) + 4px))!important;
  }
  .vector-lockdown-hud .lockdown-compact-card{padding:4px 5px!important;border-radius:9px!important;}
  .lockdown-compact-head .record-kicker{max-width:62px!important;font-size:5px!important;}
  .lockdown-compact-head h2{font-size:18px!important;}
  .lockdown-compact-state{font-size:5px!important;margin:2px 0 3px!important;}
  .lockdown-compact-hp>div:first-child{font-size:5px!important;}
  .lockdown-compact-hp-track{height:3px!important;}
  .lockdown-compact-stats span{font-size:4.5px!important;padding:1px 2px!important;}
  .lockdown-buff-dock{
    max-width:calc(100vw - 360px)!important;
    padding:2px 4px!important;
    bottom:max(5px,calc(env(safe-area-inset-bottom,0px) + 4px))!important;
    border-radius:8px!important;
  }
  .lockdown-buff-dock .lockdown-icon-chip.big{
    width:29px!important;
    min-width:29px!important;
    height:28px!important;
    min-height:28px!important;
    border-radius:6px!important;
  }
  .lockdown-buff-dock .lockdown-icon-chip.big img{width:14px!important;height:14px!important;}
  .lockdown-buff-dock .lockdown-icon-chip.big small{font-size:5px!important;}
  .lockdown-bottom-modifiers{display:none!important;}
}

@media (max-width:720px) and (orientation:landscape), (pointer:coarse) and (orientation:landscape){
  .vector-lockdown-hud{
    width:118px!important;
    max-width:118px!important;
  }
  .lockdown-compact-head h2{font-size:16px!important;}
  .lockdown-compact-state{display:none!important;}
  .lockdown-compact-stats span:nth-child(n+3){display:none!important;}
  .lockdown-buff-dock{
    max-width:calc(100vw - 330px)!important;
  }
}

@media (max-width:620px) and (orientation:portrait){
  .lockdown-buff-dock{
    max-width:calc(100vw - 18px)!important;
    bottom:calc(env(safe-area-inset-bottom,0px) + 116px)!important;
  }
}


/* V299: ultra-compact transparent lockdown timer */
.vector-lockdown-hud{
  width:min(184px, calc(100vw - 16px)) !important;
  top:max(10px, calc(env(safe-area-inset-top, 0px) + 8px)) !important;
  right:max(8px, env(safe-area-inset-right, 0px)) !important;
  left:auto !important;
  bottom:auto !important;
  display:block !important;
}
.vector-lockdown-hud .lockdown-card{
  padding:7px 8px !important;
  border-radius:14px !important;
  background:rgba(3,8,16,.20) !important;
  backdrop-filter:blur(4px) saturate(120%) !important;
  -webkit-backdrop-filter:blur(4px) saturate(120%) !important;
  box-shadow:0 0 14px rgba(255,48,72,.12), inset 0 0 12px rgba(255,255,255,.03) !important;
  overflow:hidden !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:
    "kicker time"
    "status time"
    "hp hp"
    "stats stats" !important;
  column-gap:8px !important;
  row-gap:4px !important;
}
.vector-lockdown-hud .record-kicker{
  grid-area:kicker !important;
  margin:0 !important;
  font-size:8px !important;
  line-height:1.02 !important;
  letter-spacing:.06em !important;
  white-space:normal !important;
  max-width:none !important;
}
.vector-lockdown-hud h2{
  grid-area:time !important;
  margin:0 !important;
  font-size:clamp(22px, 5vw, 36px) !important;
  line-height:.9 !important;
  text-align:right !important;
  align-self:start !important;
}
.vector-lockdown-hud p{
  grid-area:status !important;
  margin:0 !important;
  font-size:8px !important;
  line-height:1.08 !important;
}
.vector-lockdown-hud #lockdownHpWrap{
  grid-area:hp !important;
  margin:1px 0 0 !important;
}
.vector-lockdown-hud #lockdownHpWrap > div:first-child{
  font-size:8px !important;
  margin-bottom:2px !important;
}
.vector-lockdown-hud #lockdownHpWrap .bar.big{height:6px !important;}
.vector-lockdown-hud .lockdown-stats{
  grid-area:stats !important;
  margin-top:1px !important;
  gap:4px !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.vector-lockdown-hud .lockdown-stats span{
  font-size:7.5px !important;
  line-height:1.05 !important;
  padding:3px 5px !important;
  border-radius:999px !important;
  background:rgba(0,0,0,.22) !important;
}
.vector-lockdown-hud #lockdownRoll,
.vector-lockdown-hud .lockdown-upgrades,
.vector-lockdown-hud .lockdown-upgrades span{
  display:none !important;
}
.vector-lockdown-warning .vector-lockdown-hud .lockdown-card{
  background:rgba(12,10,3,.18) !important;
  box-shadow:0 0 14px rgba(255,206,80,.10), inset 0 0 10px rgba(255,255,255,.03) !important;
}
@media (max-width: 900px), (pointer: coarse){
  .vector-lockdown-hud{
    width:min(154px, calc(100vw - 14px)) !important;
    top:max(8px, calc(env(safe-area-inset-top,0px) + 6px)) !important;
    right:max(6px, env(safe-area-inset-right,0px)) !important;
  }
  .vector-lockdown-hud .lockdown-card{
    padding:6px 7px !important;
    border-radius:12px !important;
    column-gap:6px !important;
    row-gap:3px !important;
  }
  .vector-lockdown-hud .record-kicker{font-size:7px !important; letter-spacing:.04em !important;}
  .vector-lockdown-hud h2{font-size:clamp(18px, 7vw, 28px) !important;}
  .vector-lockdown-hud p{font-size:7px !important;}
  .vector-lockdown-hud #lockdownHpWrap > div:first-child{font-size:7px !important;}
  .vector-lockdown-hud #lockdownHpWrap .bar.big{height:5px !important;}
  .vector-lockdown-hud .lockdown-stats{gap:3px !important;}
  .vector-lockdown-hud .lockdown-stats span{font-size:6.8px !important;padding:2px 4px !important;}
}
@media (max-width: 900px) and (orientation: landscape){
  .vector-lockdown-hud{width:142px !important;}
  .vector-lockdown-hud h2{font-size:clamp(18px, 6vw, 24px) !important;}
}


/* V300: minimal lockdown timer */
.vector-lockdown-hud{
  width:min(112px, calc(100vw - 12px)) !important;
  top:max(8px, calc(env(safe-area-inset-top, 0px) + 6px)) !important;
  right:max(6px, env(safe-area-inset-right, 0px)) !important;
}
.vector-lockdown-hud .lockdown-card{
  padding:6px 6px 5px !important;
  border-radius:12px !important;
  background:rgba(4,8,16,.08) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
  box-shadow:0 0 10px rgba(255,48,72,.10) !important;
  grid-template-columns:1fr !important;
  grid-template-areas:
    "time"
    "stats" !important;
  row-gap:2px !important;
  border-width:1px !important;
}
.vector-lockdown-hud .record-kicker,
.vector-lockdown-hud p,
.vector-lockdown-hud #lockdownHpWrap{
  display:none !important;
}
.vector-lockdown-hud h2{
  margin:0 !important;
  font-size:clamp(18px, 5vw, 28px) !important;
  line-height:.9 !important;
  letter-spacing:0 !important;
  text-align:right !important;
}
.vector-lockdown-hud .lockdown-stats{
  margin:0 !important;
  gap:0 !important;
  grid-template-columns:1fr !important;
  justify-items:end !important;
}
.vector-lockdown-hud .lockdown-stats span{
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  border-radius:0 !important;
  font-size:12px !important;
  line-height:1 !important;
  color:#f7fbff !important;
  min-height:auto !important;
}
.vector-lockdown-hud .lockdown-stats span::before{
  content:'✦ ';
  color:rgba(255,255,255,.75);
  font-size:10px;
}
@media (max-width: 900px), (pointer: coarse){
  .vector-lockdown-hud{width:96px !important; top:max(6px, calc(env(safe-area-inset-top, 0px) + 4px)) !important; right:max(5px, env(safe-area-inset-right,0px)) !important;}
  .vector-lockdown-hud .lockdown-card{padding:5px 5px 4px !important; border-radius:10px !important;}
  .vector-lockdown-hud h2{font-size:clamp(16px, 7vw, 24px) !important;}
  .vector-lockdown-hud .lockdown-stats span{font-size:10px !important;}
  .vector-lockdown-hud .lockdown-stats span::before{font-size:8px;}
}


/* V301: stable Lockdown buff dock and desktop-only menu clearance */
.lockdown-buff-dock,
.lockdown-bottom-icons,
.lockdown-icon-chip{
  animation:none !important;
  transition:none !important;
}
.lockdown-buff-dock img{
  opacity:1 !important;
  visibility:visible !important;
}
@media (min-width:901px) and (pointer:fine){
  body.vector-lockdown-active .lockdown-buff-dock,
  body.vector-lockdown-warning .lockdown-buff-dock{
    bottom:82px !important;
  }
}

/* V302: Combat and Boss Milestone */
#battleOverlay .battle-stage{isolation:isolate;}
.battle-fx-layer{
  position:absolute;
  inset:0;
  z-index:12;
  pointer-events:none;
  overflow:hidden;
}
.battle-fx-projectile{
  position:absolute;
  width:clamp(28px,4vw,58px);
  height:clamp(28px,4vw,58px);
  object-fit:contain;
  top:48%;
  filter:drop-shadow(0 0 9px rgba(112,215,255,.82)) drop-shadow(0 0 18px rgba(255,48,72,.42));
  will-change:left,transform,opacity;
}
.battle-fx-projectile.hero-to-enemy{
  left:23%;
  animation:avBattleProjectileHero .52s cubic-bezier(.15,.78,.28,1) forwards;
}
.battle-fx-projectile.enemy-to-hero{
  left:73%;
  animation:avBattleProjectileEnemy .52s cubic-bezier(.15,.78,.28,1) forwards;
}
@keyframes avBattleProjectileHero{
  0%{left:23%;transform:translate(-50%,-50%) scale(.55) rotate(-12deg);opacity:0;}
  12%{opacity:1;}
  82%{opacity:1;}
  100%{left:76%;transform:translate(-50%,-50%) scale(1.05) rotate(18deg);opacity:0;}
}
@keyframes avBattleProjectileEnemy{
  0%{left:76%;transform:translate(-50%,-50%) scale(.62) rotate(18deg);opacity:0;}
  12%{opacity:1;}
  82%{opacity:1;}
  100%{left:24%;transform:translate(-50%,-50%) scale(1.08) rotate(-18deg);opacity:0;}
}
.battle-fx-slash{
  position:absolute;
  top:42%;
  width:clamp(70px,10vw,150px);
  height:clamp(70px,10vw,150px);
  border:5px solid transparent;
  border-top-color:rgba(242,251,255,.94);
  border-right-color:rgba(112,215,255,.76);
  border-radius:50%;
  filter:drop-shadow(0 0 8px rgba(112,215,255,.86));
  opacity:0;
  animation:avBattleSlash .48s ease-out forwards;
}
.battle-fx-slash.target-enemy{left:69%;}
.battle-fx-slash.target-hero{left:18%;transform:scaleX(-1);}
.battle-fx-slash.crit{border-width:8px;border-top-color:#fff;border-right-color:#ff3048;filter:drop-shadow(0 0 14px rgba(255,48,72,.95));}
.battle-fx-slash.overdrive{border-width:7px;border-right-color:#ff3048;border-top-color:#70d7ff;}
.battle-fx-slash.slash-0{transform:rotate(-22deg);}
.battle-fx-slash.slash-1{transform:rotate(12deg) scale(.88);}
.battle-fx-slash.slash-2{transform:rotate(42deg) scale(1.12);}
@keyframes avBattleSlash{
  0%{opacity:0;clip-path:inset(0 100% 0 0);scale:.65;}
  18%{opacity:1;}
  62%{clip-path:inset(0 0 0 0);scale:1.05;}
  100%{opacity:0;scale:1.24;}
}
.battle-fx-impact{
  position:absolute;
  top:53%;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 18px #fff,0 0 34px rgba(112,215,255,.95),0 0 56px rgba(255,48,72,.72);
  transform:translate(-50%,-50%);
  animation:avBattleImpact .5s ease-out forwards;
}
.battle-fx-impact.target-enemy{left:76%;}
.battle-fx-impact.target-hero{left:24%;}
.battle-fx-impact.crit{box-shadow:0 0 22px #fff,0 0 44px rgba(255,48,72,1),0 0 82px rgba(255,206,80,.85);}
.battle-fx-impact i{
  position:absolute;
  left:50%;top:50%;
  width:2px;height:42px;
  background:linear-gradient(180deg,transparent,#fff,transparent);
  transform-origin:center;
}
.battle-fx-impact i:nth-child(1){transform:translate(-50%,-50%) rotate(0deg);}
.battle-fx-impact i:nth-child(2){transform:translate(-50%,-50%) rotate(60deg);}
.battle-fx-impact i:nth-child(3){transform:translate(-50%,-50%) rotate(120deg);}
@keyframes avBattleImpact{
  0%{opacity:0;scale:.2;}
  22%{opacity:1;scale:1;}
  100%{opacity:0;scale:2.4;}
}
.battle-fx-aura{
  position:absolute;
  top:52%;
  width:clamp(80px,13vw,170px);
  aspect-ratio:1;
  border-radius:50%;
  transform:translate(-50%,-50%);
  animation:avBattleAura .62s ease-out forwards;
}
.battle-fx-aura.target-hero{left:24%;}
.battle-fx-aura.target-enemy{left:76%;}
.battle-fx-aura.heal{border:4px solid rgba(93,255,122,.88);box-shadow:inset 0 0 32px rgba(93,255,122,.30),0 0 32px rgba(93,255,122,.44);}
.battle-fx-aura.guard{border:4px solid rgba(112,215,255,.92);box-shadow:inset 0 0 36px rgba(112,215,255,.32),0 0 34px rgba(112,215,255,.46);}
@keyframes avBattleAura{0%{opacity:0;scale:.35;}30%{opacity:1;}100%{opacity:0;scale:1.35;}}
#battleOverlay .combatant.battle-action-lunge{animation:avBattleLunge .42s cubic-bezier(.18,.82,.22,1);}
#battleOverlay .enemy-side.battle-action-lunge{animation-name:avBattleLungeEnemy;}
@keyframes avBattleLunge{0%,100%{transform:translateX(0)}38%{transform:translateX(clamp(12px,3vw,42px)) scale(1.035)}65%{transform:translateX(clamp(5px,1vw,16px))}}
@keyframes avBattleLungeEnemy{0%,100%{transform:translateX(0)}38%{transform:translateX(clamp(-42px,-3vw,-12px)) scale(1.035)}65%{transform:translateX(clamp(-16px,-1vw,-5px))}}
.battle-phase-banner{
  position:absolute;
  z-index:28;
  top:15%;
  left:50%;
  width:min(680px,86%);
  transform:translate(-50%,-12px) scale(.96);
  opacity:0;
  pointer-events:none;
  padding:12px 18px;
  text-align:center;
  border:1px solid rgba(255,48,72,.72);
  border-left-width:4px;
  border-right-width:4px;
  background:linear-gradient(90deg,rgba(3,7,13,.08),rgba(4,8,16,.92) 18%,rgba(4,8,16,.92) 82%,rgba(3,7,13,.08));
  box-shadow:0 0 32px rgba(255,48,72,.24);
  transition:opacity .2s ease,transform .24s ease;
}
.battle-phase-banner.visible{opacity:1;transform:translate(-50%,0) scale(1);}
.battle-phase-banner small{display:block;color:#ff7184;font:900 11px/1.15 monospace;letter-spacing:.18em;text-transform:uppercase;}
.battle-phase-banner b{display:block;margin-top:5px;color:#fff;font:900 clamp(13px,2vw,20px)/1.2 monospace;text-shadow:0 0 12px rgba(255,255,255,.22);}
.battle-phase-banner.phase{border-color:rgba(112,215,255,.76);box-shadow:0 0 36px rgba(112,215,255,.24);}
.battle-phase-banner.phase small{color:#8eeaff;}
.boss-protocol-meter{
  grid-column:1/-1;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border-color:rgba(255,48,72,.36)!important;
  background:linear-gradient(90deg,rgba(255,48,72,.08),rgba(0,0,0,.28))!important;
}
.boss-protocol-meter b{color:#ff8a98!important;letter-spacing:.07em;}
.boss-phase-dots{display:flex;gap:5px;align-items:center;}
.boss-phase-dots i{display:block;width:18px;height:6px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(0,0,0,.35);}
.boss-phase-dots i.active{background:linear-gradient(90deg,#ff3048,#ffd16f);border-color:rgba(255,255,255,.55);box-shadow:0 0 9px rgba(255,48,72,.55);}
#attackButtons button.boss-command-locked{
  border-color:rgba(180,90,255,.68)!important;
  background:repeating-linear-gradient(135deg,rgba(100,35,160,.28),rgba(100,35,160,.28) 7px,rgba(5,7,12,.88) 7px,rgba(5,7,12,.88) 14px)!important;
  color:rgba(230,205,255,.58)!important;
  filter:saturate(.6);
}
#battleEnemy.boss-phase-shift{animation:avBossPhaseShift .82s ease-in-out;}
#battleEnemy.battle-phase-dodge{animation:avBossDodge .48s ease-out;}
#battleEnemy.battle-defeated{animation:avBattleDefeated .72s ease-in forwards!important;}
@keyframes avBossPhaseShift{0%,100%{filter:drop-shadow(0 18px 18px rgba(0,0,0,.8));transform:translateX(4%) scale(1.05)}28%{filter:brightness(2.2) hue-rotate(110deg) drop-shadow(0 0 40px #70d7ff);transform:translateX(4%) scale(1.14)}62%{filter:brightness(.55) saturate(2.2) drop-shadow(0 0 32px #ff3048);transform:translateX(4%) scale(.96)}}
@keyframes avBossDodge{0%{opacity:1;transform:translateX(4%) scale(1.05)}35%{opacity:.12;transform:translateX(24%) scale(.88)}70%{opacity:.3;transform:translateX(-8%) scale(1.1)}100%{opacity:1;transform:translateX(4%) scale(1.05)}}
@keyframes avBattleDefeated{0%{opacity:1;filter:brightness(1);transform:translateX(4%) scale(1.05)}38%{opacity:1;filter:brightness(3) saturate(.2) drop-shadow(0 0 38px #fff);transform:translateX(4%) scale(1.12)}100%{opacity:0;filter:brightness(.1) blur(4px);transform:translateX(4%) translateY(24px) scale(.55) rotate(5deg)}}
#battlePanel.battle-overdrive-flash::after,
#battlePanel.battle-victory-flash::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:24;
  pointer-events:none;
  background:radial-gradient(circle at 70% 48%,rgba(255,255,255,.82),rgba(112,215,255,.32) 18%,rgba(255,48,72,.12) 46%,transparent 68%);
  animation:avBattleScreenFlash .62s ease-out forwards;
}
#battlePanel.battle-victory-flash::after{background:radial-gradient(circle at 72% 48%,rgba(255,255,255,.92),rgba(255,206,80,.38) 22%,rgba(255,48,72,.15) 52%,transparent 72%);}
@keyframes avBattleScreenFlash{0%{opacity:0}18%{opacity:1}100%{opacity:0}}
@media(max-width:900px),(pointer:coarse){
  .battle-phase-banner{top:9%;width:min(620px,92%);padding:8px 10px;}
  .battle-phase-banner small{font-size:8px;letter-spacing:.11em;}
  .battle-phase-banner b{font-size:11px;}
  .battle-fx-projectile{width:34px;height:34px;}
  .battle-fx-slash{width:74px;height:74px;border-width:4px;}
  .battle-fx-aura{width:92px;}
  .boss-protocol-meter{gap:5px!important;}
  .boss-protocol-meter span{font-size:7px!important;line-height:1.15!important;}
  .boss-phase-dots i{width:12px;height:4px;}
}
body.reduced-motion .battle-fx-projectile,
body.reduced-motion .battle-fx-slash,
body.reduced-motion .battle-fx-impact,
body.reduced-motion .battle-fx-aura,
body.reduced-motion #battleOverlay .combatant.battle-action-lunge,
body.reduced-motion #battleEnemy.boss-phase-shift,
body.reduced-motion #battleEnemy.battle-phase-dodge{
  animation-duration:.01ms!important;
  animation-iteration-count:1!important;
}

/* V302 mobile boss meter fit */
@media(max-width:900px),(pointer:coarse){
  .boss-protocol-meter{
    min-height:15px!important;
    padding:2px 4px!important;
    display:flex!important;
    justify-content:space-between!important;
    align-items:center!important;
  }
  .boss-protocol-meter b{font-size:6px!important;line-height:1!important;white-space:nowrap!important;}
  .boss-protocol-meter span{display:none!important;}
  .boss-phase-dots{gap:3px!important;}
  .boss-phase-dots i{width:9px!important;height:3px!important;}
}
