/* After Hours: a compact, persistent mobile game lobby. */
:root{--gold:#f3ca79;--night:#111726;--panel:#1d263a;--frost:#eaf1f8;--map-accent:#d2b6f5;--character-accent:#f8d878}
body{background:#111725;color:#e4e7f0}
.site-header{border-color:#2b3447}.brand small{color:#8c9bb3}.site-header .sound-button{border-color:#3c465b;color:#b8c4d7}.site-header .nav-item{color:#8493ac}.site-header .nav-item.active{color:#f2e9de}
.intro h1{color:#f4eee5}.intro p,.version-label{color:#8997b1}.intro .eyebrow{color:#95b6a6}
.mission-card{background:#202638;border-color:#3c3b52}.mission-card h3{color:#eddae6}.card-eyebrow{color:#b4a4bf}.mission-step strong{color:#d9d5e2}.mission-step small{color:#9297ad}.mission-divider{background:#38374b}.difficulty-card{background:#1a2433;border-color:#364052}.difficulty-card .difficulty{color:#a1adc0;background:#263047;border-color:#46516a}.difficulty-card .difficulty.active{color:#c8e9ad;background:#314735;border-color:#8aaf77}
.stat-card,.equipment{background:#1c2535;border-color:#354057}.stat-card strong,.equipment strong{color:#d9e5f0}.controls-strip{background:#1b2435}.section-heading h3{color:#e0dfe8}.secondary-view{color:#343b3b}.secondary-view .section-heading h3{color:#343b3b}.secondary-view{background:#f7f5ef;border-radius:10px;padding:28px}.game-shell{box-shadow:0 10px 45px #0004;border-color:#3b4560}.window-bar{background:#1c2436;border-color:#36415a;color:#9caac2}
body:not(.mobile-game)[data-game-state=ready] .arena-wrap{height:730px;aspect-ratio:auto}
.start-screen{padding:20px;display:flex;justify-content:center;align-items:stretch;overflow:hidden;background:radial-gradient(ellipse at 20% 0%,#5842637a,transparent 60%),linear-gradient(#121828ed,#141b2af2);color:var(--frost)}
.start-screen .campaign-lobby{display:flex;flex-direction:column;gap:0;max-width:590px;width:100%;height:100%;min-height:0;padding:0;position:relative;text-align:left}
.lobby-topline{display:flex;justify-content:space-between;align-items:center;min-height:32px;gap:8px}
.season-tag{font:7px var(--mono);letter-spacing:1px;color:#a4b0c2;display:flex;align-items:center;gap:6px}.season-tag i{display:block;width:5px;height:5px;background:#c1f29a;box-shadow:0 0 9px #c1f29a55}
.coin-wallet{display:flex;align-items:center;gap:8px;border:1px solid #92774870;border-radius:7px;background:#3b3229;padding:7px 10px;min-height:32px;color:var(--gold);font:11px var(--mono)}.coin-wallet>span:last-child{margin-left:3px;color:#b8a074}.coin-symbol{font-size:13px;text-shadow:0 2px #654c24}
.lobby-brand{display:flex;align-items:flex-end;justify-content:space-between;margin:13px 0 17px;gap:10px}
.campaign-lobby .lobby-brand h2{font-size:32px;line-height:1.2;letter-spacing:2px;margin:0;width:fit-content;text-shadow:0 3px #090d19}
.campaign-lobby .lobby-brand h2 span{display:inline;margin:0;color:#efa7c7}.campaign-lobby .lobby-brand h2 i{font-size:16px;right:-22px;top:1px;color:var(--gold)}
.campaign-lobby .pixel-subtitle{font:6px var(--mono);letter-spacing:1.1px;color:#8593aa;margin:0 0 4px;text-align:right;max-width:148px;line-height:1.8}
.lobby-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:#0e1422;border:1px solid #36405a;border-radius:8px;padding:4px;gap:4px;margin:0 0 13px;flex-shrink:0}
.lobby-tabs button{border:0;background:transparent;color:#788ba6;font:8px var(--mono);border-radius:5px;min-height:36px;display:flex;align-items:center;justify-content:center;gap:7px;letter-spacing:.3px}.lobby-tabs strong{font:600 11px var(--sans)}.lobby-tabs button.active{background:#34435b;color:#a7dcb9;box-shadow:inset 0 1px #ffffff13}.lobby-tabs button.active strong{color:#f1f3ec}
.lobby-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#58627a #172031;touch-action:pan-y;padding:1px 2px 5px}
.hero-stage{height:153px;position:relative;border:1px solid #64628177;border-radius:9px;overflow:hidden;background:#2a3045;margin-bottom:16px}
.hero-stage>canvas#lobby-map-scene{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.85}
.hero-stage-shade{position:absolute;inset:0;background:linear-gradient(90deg,#1b1c3655 10%,#1b203a55 55%,#111b2bd9),linear-gradient(0deg,#141b2ae8,transparent 55%)}
.hero-pedestal{position:absolute;bottom:18px;left:calc(28% - 48px);width:96px;height:20px;border:2px solid var(--character-accent);border-radius:50%;background:#181e32aa;box-shadow:0 0 24px #ffffff15}
.campaign-lobby .hero-stage .character-preview{position:absolute;display:block;left:calc(28% - 52px);bottom:24px;width:104px;height:104px;border:0;background:transparent;margin:0;box-shadow:none;transform:none;image-rendering:pixelated}
.hero-caption{position:absolute;left:50%;right:8px;top:39px}.hero-caption>span{display:block;font:6px var(--mono);letter-spacing:1.5px;color:#9db3be}.hero-caption strong{display:block;font-size:25px;letter-spacing:3px;margin:7px 0 6px;color:#fff4de}.hero-caption small{font-size:9px;color:#cccbdb}.hero-map-badge{position:absolute;right:10px;bottom:9px;font-size:7px;letter-spacing:1px;color:#a8c7cd;background:#152133aa;padding:3px 6px;border-radius:3px}
.campaign-lobby .starter-picker{margin:0 0 11px}.campaign-lobby .starter-label{margin-bottom:8px;color:#bcc8d8;font-size:10px}.campaign-lobby .starter-label>span{font-size:7px;color:#74859f}
.campaign-lobby .starting-weapons{gap:7px}.campaign-lobby .starter-weapon.character-option{background:#1e293d;border:1px solid #3a4860;border-radius:7px;min-height:87px;transition:transform .15s,border-color .15s,background .15s}.campaign-lobby .character-option canvas{width:40px;height:40px}.campaign-lobby .character-option strong{font-size:11px;color:#b7c3d4}.campaign-lobby .character-option small{font-size:7px;color:#7186a1}.campaign-lobby .character-option.selected{border-color:var(--weapon-color);background:#394055;box-shadow:inset 0 -2px var(--weapon-color),0 3px 10px #0002}.campaign-lobby .character-option.selected strong{color:var(--weapon-color)}.campaign-lobby .character-option.selected small{color:#d7d5d6}
.campaign-lobby .starter-description{color:#889db6!important;font-size:9px!important;letter-spacing:.1px!important;line-height:1.6!important;min-height:28px!important;margin:7px 0 0!important}
.selected-map-button{display:flex;align-items:center;gap:10px;width:100%;min-height:53px;border:1px solid #41506a;border-radius:7px;padding:9px 12px;color:#d5dfe8;background:linear-gradient(90deg,#25344a,#212c40);text-align:left;touch-action:manipulation}
.map-mini-icon{font-size:26px;color:var(--map-accent);line-height:1}.selected-map-button small{display:block;font-size:7px;color:#7e94ac;margin-bottom:3px;letter-spacing:1px}.selected-map-button strong{display:block;font-size:11px;letter-spacing:.5px}.selected-map-button .map-area{margin-left:auto;font:8px var(--mono);color:#b4c4d5;white-space:nowrap}.selected-map-button>b{font-size:22px;color:#8aa2be;margin-left:4px}
.campaign-lobby .mobile-modes{display:flex;gap:8px;margin:11px 0 0}.campaign-lobby .mobile-modes .difficulty{flex:1;min-height:39px;padding:8px;font-size:10px;border:1px solid #3d4d66;color:#8d9fb9;background:#172235;border-radius:6px}.campaign-lobby .mobile-modes .difficulty span{font:8px var(--mono);margin-left:8px}.campaign-lobby .mobile-modes .difficulty.active{background:#2e4340;border-color:#739e86;color:#d2efcd}
.lobby-launch{padding-top:12px;flex-shrink:0;background:linear-gradient(transparent,#141c2c 15%)}
.campaign-lobby #start-button{width:100%;min-height:51px;border:1px solid #dcffc5;border-radius:7px;background:linear-gradient(#d5f8b9,#b8e397);box-shadow:0 4px #638553;color:#30472f;justify-content:center;font-size:15px;letter-spacing:.8px;padding:12px;gap:12px;transform:none}.campaign-lobby #start-button:active{transform:translateY(2px);box-shadow:0 2px #638553}.campaign-lobby #start-button .button-arrow{font-size:18px;margin-left:6px}
.lobby-bottomline{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:8px;color:#627c98;gap:8px}.lobby-bottomline>div{display:flex;gap:14px}.lobby-bottomline button{border:0;background:transparent;color:#8ca1b9;padding:4px 0;font-size:9px;min-height:24px}
.panel-heading{margin:3px 0 15px}.panel-heading>span{font:7px var(--mono);letter-spacing:1.6px;color:#a9c0a8}.panel-heading h3{font-size:19px;margin:9px 0 7px;letter-spacing:.7px;color:#e8e9e1}.campaign-lobby .panel-heading p{font-size:10px;line-height:1.7;margin:0;color:#8197b3;letter-spacing:.2px}
.map-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.map-card{background:#202b3f;color:#e3dfdf;border:1px solid #42506a;border-radius:8px;padding:0;overflow:hidden;text-align:left;touch-action:manipulation;transition:transform .15s,border-color .15s}.map-card.selected{border-color:var(--district-color);box-shadow:0 0 0 1px var(--district-color)}.map-card-art{height:95px;position:relative;background:#233546;overflow:hidden}.map-card-art canvas{width:100%;height:100%;object-fit:cover}.map-card-art>span{position:absolute;left:9px;top:8px;font:9px var(--mono);color:#ecebdc;background:#11192bd9;border:1px solid #ffffff33;border-radius:3px;padding:4px 5px}.map-card-info{padding:11px 12px}.map-card-info>strong{display:block;font-size:13px;margin:0 0 4px}.map-card-info>small{display:block;color:#889cb7;font-size:8px;letter-spacing:.2px}.map-card-bottom{display:flex;justify-content:space-between;gap:4px;align-items:center;margin-top:12px}.map-card-bottom em{font-size:7px;color:#a4b1c4;font-style:normal}.map-card-status{font-size:7px;font-weight:500;color:#8799b1}.map-card.selected .map-card-status{color:var(--district-color)}.map-selection-note{border-left:2px solid var(--map-accent);color:#8fa3bb;font-size:10px;line-height:1.8;margin:15px 0 4px;padding:5px 12px}
.research-summary{display:flex;justify-content:space-between;background:#202d42;border:1px solid #3a4a65;border-radius:7px;padding:12px 16px}.research-summary small{display:block;font-size:8px;color:#7e94ae;margin-bottom:5px}.research-summary b{font:17px var(--mono);color:#f0d28f}.research-progress{height:3px;background:#3a4555;margin:8px 0 15px;border-radius:3px;overflow:hidden}.research-progress i{height:100%;display:block;width:0;background:var(--gold);transition:width .3s}
.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.meta-card{background:linear-gradient(#243047,#1d293d);border:1px solid #384a65;border-radius:8px;padding:12px}.meta-card-top{display:flex;gap:8px;align-items:center}.meta-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:#34435c;color:#b4d8d0;border-radius:7px;flex-shrink:0}.meta-icon svg{width:17px;height:17px}.meta-card h4{font-size:11px;margin:0 0 4px;color:#dce4eb}.meta-card-top small{font-size:7px;color:#8b9eb9}.meta-card-top>b{margin-left:auto;font:9px var(--mono);color:#e1c998;white-space:nowrap}.meta-card-top>b i{font-style:normal;color:#6d85a2;font-size:7px}.meta-pips{display:flex;gap:3px;margin:13px 0 11px}.meta-pips i{height:4px;flex:1;background:#3a485e;border-radius:1px}.meta-pips .filled{background:var(--gold)}.meta-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px}.meta-card-bottom>span{font-size:8px;color:#a9b6ca}.meta-card-bottom>button{border:1px solid #af9259;background:#493e2e;border-radius:4px;color:var(--gold);min-height:34px;min-width:65px;font:10px var(--mono);padding:7px 10px}.meta-card-bottom>button:disabled{border-color:#425069;color:#697e9e;background:#283449}.meta-card.maxed{border-color:#7d805c}.meta-card.maxed .meta-card-bottom>button{color:#cbdc9e}.campaign-lobby .economy-note{font-size:9px;line-height:1.8;color:#a09b89;letter-spacing:0;margin:14px 0 8px}.campaign-lobby .save-note{font-size:8px;line-height:1.7;letter-spacing:0;color:#667f9c;margin:8px 0}.save-warning{color:#e5b28b!important}
.game-modal{background:linear-gradient(#242c42,#172135);color:#e9e6e8;border-color:#6c6b86;border-radius:10px;box-shadow:0 16px 60px #070c24aa}.game-modal .modal-eyebrow{color:#b2c3c8}.game-modal>p{color:#9dabc5}.game-modal .primary-button{background:#c8eab0;color:#2b482d;border-color:#def2c8;box-shadow:0 3px #668553}.game-modal .secondary-button{color:#afbdd0;border-color:#61708b}.game-modal .upgrade-option{background:#2c364b;border-color:#526078;color:#edf0e9}.game-modal .upgrade-option:hover{background:#3b4158;border-color:#b8a6d4}.game-modal .upgrade-option small{color:#9cacc2}.game-modal .upgrade-option .upgrade-num{color:#cbb6d5}.game-modal .evolution-card{background:#45402e;border-color:#d3bd7a}.game-modal .evolution-card .upgrade-num{color:#f5da93}.game-modal .rank-dots i{background:#506077}.game-modal .rank-dots i.filled{background:#d7a8c7}.game-modal .weapon-next{background:#303b51;color:#acbed2}.game-modal .result-stats b{color:#d9e5eb}.game-modal .result-stats span{color:#8e9eb8}.game-modal .upgrade-footnote{color:#8398b3}
.coin-reward{border:1px solid #9a815452;background:radial-gradient(ellipse,#624f2d44,transparent 80%);border-radius:9px;padding:13px;margin-top:14px}.coin-reward>span{font-size:9px;letter-spacing:1px;color:#b6a784;display:block}.coin-reward strong{font:34px var(--mono);letter-spacing:1px;color:#ffe0a1;display:block;margin:5px 0}.coin-reward strong i{font-size:22px;font-style:normal;color:#d6b367}.coin-reward small{font-size:9px;color:#b8ac96}.reward-breakdown{display:flex;justify-content:space-between;padding:12px 3px 0;font-size:8px;color:#8196b2}.reward-breakdown b{font-weight:500;color:#cfc2a6;margin-left:4px}.result-lobby-link{border:0;background:transparent;color:#839bb8;font-size:10px;min-height:34px;margin-top:12px;padding:6px 12px}
.mobile-game .site-header{height:calc(54px + env(safe-area-inset-top));padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:8px;background:#111827;border-bottom:1px solid #2d3548}.mobile-game .brand strong{color:#e2e3e8;font-size:15px;letter-spacing:1px}.mobile-game .brand small{color:#65768f}.mobile-game .sound-button{height:34px;border-color:#37445b;color:#8d9db4;background:#1c273a}.mobile-game .window-bar{height:24px;min-height:24px;background:#171f30;color:#6f85a2}.mobile-game .floor-label{color:#a6a9be}.mobile-game .arena-wrap{background:#111827}
.mobile-game .start-screen{padding:12px 18px 13px;align-items:stretch;overflow:hidden;background:radial-gradient(ellipse at 5% 0%,#64517455,transparent 55%),linear-gradient(#141c2dee,#111929fa)}
.mobile-game .start-screen .campaign-lobby{display:flex;max-width:500px;width:100%;height:100%;padding:0;gap:0;text-align:left}
.mobile-game .campaign-lobby .lobby-brand h2{font-size:30px;margin:0;letter-spacing:2px;line-height:1.2}.mobile-game .campaign-lobby .lobby-brand h2 span{display:inline;margin:0}.mobile-game .campaign-lobby .lobby-brand h2 i{font-size:17px;right:-24px;top:0}.mobile-game .campaign-lobby .pixel-subtitle{display:none}
.mobile-game .lobby-brand{margin:12px 0 15px}.mobile-game .hero-stage{height:124px;margin-bottom:14px}.mobile-game .hero-caption{top:25px}.mobile-game .hero-caption strong{font-size:24px}.mobile-game .hero-stage .character-preview{width:89px;height:89px;left:calc(28% - 44px);bottom:20px}.mobile-game .hero-pedestal{width:80px;left:calc(28% - 40px);bottom:15px;height:17px}.mobile-game .hero-caption small{font-size:8px}
.mobile-game .campaign-lobby .starter-picker{margin:0 0 8px}.mobile-game .campaign-lobby .starter-weapon.character-option{min-height:80px;padding:4px 2px}.mobile-game .campaign-lobby .character-option canvas{width:35px;height:35px}.mobile-game .campaign-lobby .character-option strong{font-size:10px}.mobile-game .campaign-lobby .character-option small{font-size:7px}.mobile-game .campaign-lobby .starter-description{min-height:27px!important;font-size:8px!important;margin-top:7px!important}
.mobile-game .campaign-lobby #start-button{min-height:49px;padding:12px;font-size:14px}.mobile-game .lobby-launch{padding-top:10px}.mobile-game .lobby-bottomline{margin-top:10px}.mobile-game .lobby-tabs{margin-bottom:12px}.mobile-game .lobby-tabs button{min-height:35px}.mobile-game .lobby-tabs strong{font-size:10px}
.mobile-game .meta-grid{grid-template-columns:1fr}.mobile-game .meta-card{padding:12px}.mobile-game .meta-card h4{font-size:12px}.mobile-game .meta-card-top small{font-size:9px}.mobile-game .meta-card-top>b{font-size:12px}.mobile-game .meta-card-top>b i{font-size:9px}.mobile-game .meta-icon{width:34px;height:34px}.mobile-game .meta-pips{margin:10px 0}.mobile-game .meta-card-bottom>span{font-size:9px}.mobile-game .meta-card-bottom>button{min-height:40px;min-width:85px;font-size:11px}.mobile-game .map-card-art{height:92px}.mobile-game .map-card-info{padding:10px}.mobile-game .map-card-info>strong{font-size:12px}.mobile-game .map-card-info>small{font-size:7px}.mobile-game .map-card-bottom{margin-top:10px}.mobile-game .map-card-bottom em,.mobile-game .map-card-status{font-size:6px}.mobile-game .map-options{gap:10px}
.mobile-game .touch-controls{height:calc(132px + env(safe-area-inset-bottom));padding-top:10px;padding-bottom:calc(9px + env(safe-area-inset-bottom));background:linear-gradient(#202d42,#152033);border-color:#43516c}.mobile-game .joystick{width:86px;height:86px;background:radial-gradient(circle,#435c70,#2e3d56 65%,#263348 66%);border-color:#8ca9c77a}.mobile-game .joystick span{left:20px;top:20px;background:#a1becb;border-color:#d4e7e7aa}.mobile-game .joystick i{line-height:80px;color:#8ca7bd44}.mobile-game #touch-dash{width:72px;height:72px;background:linear-gradient(#9fc7bc,#658f94);border-color:#bce0cc;box-shadow:0 5px #345260,inset 0 0 0 5px #c9ffdf12;font-size:15px}.mobile-game .move-control>small,.mobile-game .dash-control>small{color:#7f97b0;font-size:9px}.mobile-game #game-canvas{top:130px;height:calc(100% - 262px - env(safe-area-inset-bottom))}.mobile-game[data-game-state=ready] #game-canvas{top:0;height:100%}.mobile-game .control-center{color:#9bafc4}.mobile-game .control-center b{color:#c0dba6}.mobile-game .weapon-slot{background:#263147;border-color:#65708b}.mobile-game .weapon-slot.owned{border-color:var(--weapon-color)}.mobile-game .weapon-slot span{background:#132036e0}.mobile-game .square-button{background:#27354c;border-color:#4e607c}.mobile-game .hud{color:#ced7e5}.mobile-game .mobile-objective{color:#819bb8}.mobile-game .toast{bottom:calc(142px + env(safe-area-inset-bottom));background:#26344bea;color:#d5e4dc;border-color:#92ad9a;max-width:92%;font-size:10px}.mobile-game[data-game-state=ready] .toast{bottom:100px}.mobile-game .game-modal{border-color:#687088;max-height:100%;padding:20px 17px}.mobile-game .game-modal .modal-eyebrow{font-size:7px}.mobile-game .result-stats{margin:15px 0 19px}.mobile-game .coin-reward strong{font-size:32px}.mobile-game .coin-reward{padding:11px}.mobile-game .modal-actions button{font-size:12px}.mobile-game .secondary-view{background:#f7f5ef;color:#343b3b;border-radius:0}
@media(max-height:730px){.mobile-game .start-screen{padding:8px 16px 10px}.mobile-game .lobby-brand{margin:8px 0 10px}.mobile-game .campaign-lobby .lobby-brand h2{font-size:27px}.mobile-game .lobby-tabs{margin-bottom:9px}.mobile-game .lobby-tabs button{min-height:31px}.mobile-game .hero-stage{height:100px;margin-bottom:10px}.mobile-game .hero-stage .character-preview{width:74px;height:74px;bottom:16px}.mobile-game .hero-caption{top:17px}.mobile-game .hero-caption strong{font-size:21px;margin:5px 0}.mobile-game .hero-pedestal{bottom:12px}.mobile-game .campaign-lobby .starter-weapon.character-option{min-height:70px}.mobile-game .campaign-lobby .character-option canvas{width:29px;height:29px}.mobile-game .campaign-lobby .starter-description{min-height:25px!important}.mobile-game .selected-map-button{min-height:47px;padding:7px 10px}.mobile-game .campaign-lobby .mobile-modes{margin-top:8px}.mobile-game .campaign-lobby .mobile-modes .difficulty{min-height:35px;font-size:9px}.mobile-game .campaign-lobby #start-button{min-height:45px;padding:10px}.mobile-game .lobby-launch{padding-top:8px}.mobile-game .lobby-bottomline{margin-top:8px}.mobile-game .game-modal .result-stats{margin:12px 0 15px}.mobile-game .coin-reward{margin-top:10px}.mobile-game .coin-reward strong{font-size:27px}.mobile-game .result-lobby-link{margin-top:9px}}
@media(max-height:610px) and (orientation:portrait){.mobile-game .hero-stage{display:none}.mobile-game .lobby-brand{margin:6px 0 8px}.mobile-game .season-tag{font-size:6px}.mobile-game .lobby-topline{min-height:29px}.mobile-game .coin-wallet{min-height:28px;padding:5px 8px}.mobile-game .campaign-lobby .starter-picker{margin-top:2px}.mobile-game .selected-map-button{min-height:44px}.mobile-game .panel-heading h3{font-size:16px}.mobile-game .map-card-art{height:66px}.mobile-game .map-options{gap:8px}.mobile-game .map-card-info{padding:8px}.mobile-game .map-card-info>strong{font-size:10px}.mobile-game .map-selection-note{font-size:9px;margin-top:11px}.mobile-game .game-modal{padding:14px}.mobile-game .game-modal .result-stats{margin:10px 0}.mobile-game .result-stats b{font-size:18px}.mobile-game .coin-reward strong{font-size:25px}.mobile-game .coin-reward{padding:7px}.mobile-game .result-lobby-link{margin-top:4px}.mobile-game .game-modal h2{font-size:18px}.mobile-game .game-modal>p{font-size:10px}}
@media(orientation:landscape) and (max-height:600px){
 .mobile-game .site-header{height:37px;padding:3px 16px}.mobile-game .start-screen{padding:10px 20px}.mobile-game .campaign-lobby{max-width:780px!important;display:grid!important;grid-template-columns:235px minmax(0,1fr);grid-template-rows:32px 1fr auto;column-gap:20px!important;align-items:stretch}
 .mobile-game .lobby-topline{grid-column:1;grid-row:1}.mobile-game .season-tag{font-size:6px;letter-spacing:.4px}.mobile-game .coin-wallet{font-size:9px;padding:5px 7px;gap:5px;min-height:28px}
 .mobile-game .lobby-brand{grid-column:1;grid-row:2;align-self:start;display:block;margin:16px 0 0}.mobile-game .campaign-lobby .lobby-brand h2{font-size:33px;line-height:1.2}.mobile-game .campaign-lobby .lobby-brand h2 span{display:block;margin:4px 0 0}.mobile-game .campaign-lobby .pixel-subtitle{display:block;text-align:left;margin-top:12px;font-size:6px;max-width:190px;letter-spacing:1px}
 .mobile-game .lobby-tabs{grid-column:2;grid-row:1;align-self:start;margin-bottom:0;padding:3px;height:33px}.mobile-game .lobby-tabs button{min-height:25px;font-size:6px;gap:4px}.mobile-game .lobby-tabs strong{font-size:9px}
 .mobile-game .lobby-panel{grid-column:2;grid-row:2/4;margin-top:10px}.mobile-game .lobby-launch{grid-column:1;grid-row:3;align-self:end;padding-top:0;background:transparent}.mobile-game .campaign-lobby #start-button{min-height:43px;font-size:12px;padding:9px;gap:6px}.mobile-game .lobby-bottomline{font-size:6px;gap:4px;flex-wrap:wrap}.mobile-game .lobby-bottomline button{font-size:8px}.mobile-game .lobby-bottomline>div{gap:10px}
 .mobile-game .hero-stage{display:none}.mobile-game .campaign-lobby .starter-picker{margin:0 0 5px}.mobile-game .campaign-lobby .starter-weapon.character-option{min-height:70px}.mobile-game .campaign-lobby .character-option canvas{width:31px;height:31px}.mobile-game .campaign-lobby .starter-description{min-height:22px!important}.mobile-game .selected-map-button{min-height:45px}.mobile-game .campaign-lobby .mobile-modes{margin:8px 0 0}.mobile-game .campaign-lobby .mobile-modes .difficulty{min-height:34px}.mobile-game .panel-heading{margin:3px 0 10px}.mobile-game .panel-heading h3{font-size:16px;margin:6px 0}.mobile-game .panel-heading>span{font-size:6px}.mobile-game .panel-heading p{font-size:9px}.mobile-game .map-card-art{height:65px}.mobile-game .map-card-info{padding:8px}.mobile-game .map-card-info>strong{font-size:11px}.mobile-game .map-card-info>small{font-size:7px}.mobile-game .meta-grid{grid-template-columns:1fr 1fr}.mobile-game .meta-card{padding:9px}.mobile-game .meta-card h4{font-size:10px}.mobile-game .meta-card-top small{font-size:7px}.mobile-game .meta-card-top>b{font-size:9px}.mobile-game .meta-icon{display:none}.mobile-game .meta-card-bottom>button{min-width:58px;min-height:34px;padding:6px;font-size:9px}.mobile-game .meta-card-bottom>span{font-size:7px}
 .mobile-game #game-canvas{top:0;height:100%}.mobile-game .touch-controls{height:110px;border:0;background:transparent}.mobile-game .joystick{height:76px;width:76px}.mobile-game .joystick span{left:15px;top:15px}.mobile-game .joystick i{line-height:70px}.mobile-game #touch-dash{width:66px;height:66px}.mobile-game .game-modal{max-width:610px;padding:12px 20px}.mobile-game .coin-reward{display:flex;align-items:center;justify-content:center;gap:18px;padding:9px;margin-top:8px}.mobile-game .coin-reward strong{font-size:24px;margin:0}.mobile-game .coin-reward>span,.mobile-game .coin-reward small{font-size:8px}.mobile-game .reward-breakdown{justify-content:center;gap:25px;padding-top:8px}.mobile-game .game-modal .result-stats{margin:10px 0}.mobile-game .game-modal .result-stats b{font-size:17px}.mobile-game .game-modal .modal-actions button{min-height:38px;padding:9px 14px}.mobile-game .result-lobby-link{min-height:25px;margin-top:5px}.mobile-game .game-modal>p{margin-bottom:7px}.mobile-game .game-modal h2{font-size:18px}
}
@media(prefers-reduced-motion:reduce){.map-card,.character-option,.research-progress i{transition:none}}

/* Permanent research: clear choices, grouped for one-thumb browsing. */
.campaign-lobby .starting-loadout{font-size:9px!important;line-height:1.6!important;letter-spacing:0!important;color:#c4deb3!important;margin:0 0 10px!important;padding:6px 8px;border-left:2px solid #a8c68e;background:#293b3544}
.starting-loadout[hidden]{display:none}
.meta-price-guide h4{font-size:9px;font-weight:500;margin:2px 0 8px;color:#d0bd9b}
.meta-price-tag{display:block;color:#c7b890;font:8px/1.7 var(--sans);overflow-wrap:anywhere}
.meta-price-guide section+section{margin-top:12px}
.collection-tabs{display:flex;gap:8px;margin:22px 0 0}.collection-tabs button{flex:1;min-height:44px;border:1px solid #cfc9bd;border-radius:6px;background:#eae7dd;color:#716c69;font-size:13px;font-weight:600}.collection-tabs button b{margin-left:8px;font:10px var(--mono);opacity:.6}.collection-tabs button[aria-pressed="true"]{color:#fff0e4;background:#403b50;border-color:#403b50}
#collection-view .bestiary{margin-top:18px}.encounter-art{position:relative;display:flex;justify-content:center;align-items:center;min-height:135px;margin:-5px -5px 17px;background:radial-gradient(ellipse,var(--encounter-color),#f5f0e5 70%);border-radius:8px}.encounter-art canvas{position:relative;z-index:1;margin:0!important;image-rendering:pixelated}.encounter-art>span{position:absolute;bottom:6px;right:7px;font-size:8px;letter-spacing:.4px;color:#65536b;background:#fffbefcc;padding:3px 6px;border-radius:3px}.boss-card{border-top:3px solid var(--encounter-color)}
.boss-route{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0;margin:20px 0 10px}.boss-route li{display:flex;align-items:center;gap:9px;border:1px solid #e2d8ca;border-top:3px solid var(--encounter-color);border-radius:5px;padding:11px 9px;background:#fffaf0}.boss-route b{font:17px var(--mono);color:#88768f}.boss-route span{font:9px var(--mono);color:#968471}.boss-route strong{display:block;margin-top:4px;font:600 11px var(--sans);color:#524c59}.boss-queue-note{font-size:11px;line-height:1.8;color:#8a7b76;margin:12px 0 20px}
@media(max-width:650px){.boss-route{grid-template-columns:repeat(2,minmax(0,1fr))}.boss-route li:last-child{grid-column:1/-1}.collection-tabs{margin-top:18px}.collection-tabs button{font-size:12px}.encounter-art{min-height:125px}.boss-queue-note{font-size:10px}.boss-card h3{line-height:1.5}#collection-view .bestiary{gap:10px}.boss-hud>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.meta-filters{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:8px 0;background:#151e2ff5;backdrop-filter:blur(8px)}
.meta-filters button{display:flex;justify-content:center;align-items:center;gap:5px;min-height:35px;padding:6px 4px;border:1px solid #3a4d64;border-radius:5px;background:#202d42;color:#9eafc6;font-size:10px;touch-action:manipulation}
.meta-filters button span{font:9px var(--mono);color:#6f879e}.meta-filters button[aria-pressed="true"]{background:#3e443b;border-color:#b8bb7e;color:#e2edbc}.meta-filters button[aria-pressed="true"] span{color:#d6d4a8}
.campaign-lobby .meta-category-status{margin:7px 0 10px!important;font-size:9px!important;color:#899fb7!important;letter-spacing:.4px!important}
.meta-price-guide{margin:2px 0 7px;border:1px solid #655940;border-radius:6px;background:#2c2c2b;color:#e1c48f;padding:0 11px;font-size:9px}
.meta-price-guide summary{cursor:pointer;min-height:35px;padding:10px 0;touch-action:manipulation}.meta-price-ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding-bottom:7px}.meta-price-ladder>span{display:flex;flex-direction:column;gap:5px;padding:8px 5px;border-radius:4px;background:#3b3830}.meta-price-ladder small{font:8px var(--mono);color:#a69b86}.meta-price-ladder b{font:11px var(--mono);color:#efd59d}
.campaign-lobby .meta-price-guide p{font-size:8px!important;letter-spacing:0!important;line-height:1.5!important;margin:0 0 10px!important;color:#b0a18c!important}
.campaign-lobby .meta-migration-note{font-size:9px!important;letter-spacing:0!important;line-height:1.6!important;margin:0 0 10px!important;border-left:2px solid #a2d6aa;padding:6px 9px;color:#b7dabb!important;background:#21393080}
.meta-card{--track-color:#b8d7c4;border-left:2px solid var(--track-color)}.meta-card[data-category="combat"]{--track-color:#e6b68e}.meta-card[data-category="mobility"]{--track-color:#a9bcee}.meta-card[data-category="utility"]{--track-color:#cfb8df}.meta-card[data-category="weapons"]{--track-color:#e5accb}
.meta-card .meta-icon{color:var(--track-color)}.meta-card-top>div{min-width:0;flex:1}.meta-card-top small{display:block;line-height:1.5}
.campaign-lobby .meta-description{font-size:9px!important;line-height:1.6!important;letter-spacing:0!important;color:#91a4bd!important;margin:8px 0!important;min-height:28px}
.meta-card-bottom>span{line-height:1.5}.meta-card-bottom>button{white-space:nowrap;flex-shrink:0}.defense-status{display:block;color:#a9dfe4;font:7px var(--mono);margin-top:4px;white-space:nowrap}.defense-status[hidden]{display:none}
.mobile-game .meta-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.mobile-game .meta-filters button{min-height:37px;font-size:10px}.mobile-game .meta-price-guide summary{min-height:37px}.mobile-game .meta-card .meta-description{font-size:10px!important;min-height:0}.mobile-game .meta-card-bottom>button{min-height:40px;font-size:11px}.mobile-game .defense-status{font-size:7px}
@media(orientation:portrait){.mobile-game .campaign-lobby[data-section="upgrades"] .lobby-brand{display:none}.mobile-game .campaign-lobby[data-section="upgrades"] .lobby-tabs{margin-top:10px}.mobile-game .campaign-lobby[data-section="upgrades"] .panel-heading{margin-bottom:12px}}
@media(orientation:landscape) and (max-height:600px){.mobile-game .meta-filters{grid-template-columns:repeat(6,minmax(0,1fr))}.mobile-game .meta-filters button{font-size:9px;gap:3px}.mobile-game .meta-card .meta-description{font-size:9px!important}}
