/* Shared arcade language for every out-of-battle destination. */
body:has(#lobby.arena-hub:not([hidden])),body.arcade-page{--arcade-red:#cb2634;--arcade-blue:#125bb4;--arcade-pink:#b72676;--arcade-green:#078456;--arcade-gold:#d99b18;background:#101016;color:#fff;font-family:Arial,sans-serif}
body:has(#lobby.arena-hub:not([hidden])) .app{width:100%;max-width:none;padding:12px;gap:10px}
body:has(#lobby.arena-hub:not([hidden])) .topbar{display:none!important}
#lobby.arena-hub:not(.hub-home-screen):not([hidden]){grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;gap:12px;min-height:calc(100svh - 24px)}
#lobby.arena-hub:not(.hub-home-screen)>.hub-rail{display:none}
#lobby.arena-hub:not(.hub-home-screen)>.hub-nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:5px;padding:0;border:0;background:#101016}
#lobby.arena-hub .hub-nav-label,#lobby.arena-hub .hub-nav button span,#lobby.arena-hub .hub-nav a span{display:none}
#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a{font:800 italic 16px/1.3 Arial,sans-serif;min-height:46px;padding:12px 22px;justify-content:center;border:2px solid #4d5363;background:#242732;color:#fff;transform:skew(-5deg)}
#lobby.arena-hub .hub-nav .hub-home-back{margin:0;background:#f2f0e6;color:#15151a;border-color:white}
#lobby.arena-hub .hub-nav .hub-mastery{margin:0;font-size:14px;border:2px solid #4d5363;color:#fff}
#lobby.arena-hub .hub-nav [aria-current=page]{border-color:white;background:#c62332;color:white;box-shadow:3px 3px 0 #7a1620}
#lobby.arena-hub[data-section=party] .hub-nav [aria-current=page]{background:#078456}
#lobby.arena-hub[data-section=collection] .hub-nav [aria-current=page]{background:#b72676}
#lobby.arena-hub[data-section=settings] .hub-nav [aria-current=page]{background:#145fb9}
#lobby.arena-hub .hub-pane{border:0;background:repeating-linear-gradient(118deg,transparent 0 95px,#ffffff03 96px 100px),#181a23;padding:clamp(16px,2.5vw,38px);min-height:calc(100svh - 94px);box-shadow:inset 0 5px #c62332}
#lobby.arena-hub .hub-heading{background:linear-gradient(110deg,#e03836,#a71228);border:0;position:relative;padding:22px 30px;margin:-8px -8px 24px;clip-path:polygon(0 0,100% 0,98% 100%,0 100%)}
#lobby.arena-hub .hub-heading p{display:none}
#lobby.arena-hub .hub-heading h1{font:950 italic clamp(32px,4vw,62px)/1.1 Arial,sans-serif;letter-spacing:-.045em;color:white;text-shadow:3px 4px #0008;margin:0 0 6px}
#lobby.arena-hub .hub-heading span{color:#fff;font:600 15px/1.5 Arial,sans-serif}
#lobby.arena-hub[data-section=party] .hub-pane{box-shadow:inset 0 5px #078456}
#lobby.arena-hub[data-section=party] .hub-heading{background:linear-gradient(110deg,#0eb677,#036347)}
#lobby.arena-hub[data-section=collection] .hub-pane{box-shadow:inset 0 5px #b72676}
#lobby.arena-hub[data-section=collection] .hub-heading{background:linear-gradient(110deg,#e84591,#912060)}
#lobby.arena-hub[data-section=settings] .hub-heading{background:linear-gradient(110deg,#247ed9,#163e8b)}
#lobby.arena-hub .hub-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px}
#lobby.arena-hub .hub-categories button{position:relative;min-height:104px;padding:20px 28px;border:3px solid #ffffff55;background:linear-gradient(120deg,#de3e31,#9c1228);font:900 italic clamp(20px,2.2vw,34px)/1.15 Arial,sans-serif;color:white;box-shadow:5px 5px #07080d;transform:skew(-3deg)}
#lobby.arena-hub .hub-categories button:nth-child(2){background:linear-gradient(120deg,#2784d2,#174da4)}
#lobby.arena-hub .hub-categories button:nth-child(3){background:linear-gradient(120deg,#b677dd,#612691)}
#lobby.arena-hub .hub-categories button small{font:600 14px/1.5 Arial,sans-serif;color:white}
#lobby.arena-hub .hub-categories button[aria-pressed=true]{border-color:#ffe97e;box-shadow:5px 5px #07080d,inset 0 -5px #ffe97e}
#lobby.arena-hub .hub-mode-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}
#lobby.arena-hub .hub-mode-choices button{position:relative;isolation:isolate;min-height:clamp(230px,32svh,350px);overflow:hidden;border:3px solid #ffffff55;background:linear-gradient(125deg,#be2138,#43101b);padding:24px;text-align:left;color:#fff;box-shadow:6px 6px #06070c;transition:transform .16s,filter .16s}
#lobby.arena-hub .hub-mode-choices button:nth-child(3n+2){background:linear-gradient(125deg,#1675b0,#13305b)}
#lobby.arena-hub .hub-mode-choices button:nth-child(3n){background:linear-gradient(125deg,#8235b3,#321548)}
#lobby.arena-hub[data-category=adventures] .hub-mode-choices button{background:linear-gradient(125deg,#246dae,#182648)}
#lobby.arena-hub[data-category=adventures] .hub-mode-choices button:nth-child(2n){background:linear-gradient(125deg,#118b75,#133944)}
#lobby.arena-hub[data-category=tower] .hub-mode-choices{grid-template-columns:1fr}
#lobby.arena-hub[data-category=tower] .hub-mode-choices button{background:linear-gradient(110deg,#683298,#2c1744);min-height:360px}
#lobby.arena-hub .hub-mode-choices img{position:absolute;right:-4%;top:0;height:94%;width:75%;object-fit:contain;image-rendering:pixelated;z-index:-1;filter:drop-shadow(8px 10px 0 #0008);transition:transform .2s}
#lobby.arena-hub .hub-mode-choices button:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#080c18f5,transparent 75%)}
#lobby.arena-hub .hub-mode-choices button>span{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;height:100%;min-height:200px;padding-top:100px}
#lobby.arena-hub .hub-mode-choices strong{font:950 italic clamp(24px,2.6vw,40px)/1.05 Arial,sans-serif;text-shadow:3px 3px #000a;max-width:90%}
#lobby.arena-hub .hub-mode-choices small{font:600 14px/1.4 Arial,sans-serif;margin:8px 0 12px;color:#fff}
#lobby.arena-hub .hub-mode-choices b{font:900 13px Arial,sans-serif;background:#fff;color:#141720;padding:7px 12px;transform:skew(-7deg)}
#lobby.arena-hub .hub-mode-choices button[aria-pressed=true]{color:#fff;border-color:#ffdb69}
#lobby.arena-hub .hub-mode-choices button:hover img,#lobby.arena-hub .hub-mode-choices button:focus-visible img,#lobby.arena-hub .hub-mode-choices .moju-controller-focus img{transform:scale(1.08) rotate(-3deg)}
#lobby.arena-hub[data-play-stage=modes] .unified-setup,#lobby.arena-hub[data-play-stage=modes] .hub-play-details,#lobby.arena-hub[data-play-stage=modes] .hub-party-card,#lobby.arena-hub[data-play-stage=modes] .arcade-mode-back,#lobby.arena-hub[data-play-stage=modes] .hub-news{display:none!important}
#lobby.arena-hub[data-play-stage=setup] .hub-categories,#lobby.arena-hub[data-play-stage=setup] .hub-mode-choices,#lobby.arena-hub[data-play-stage=setup] .hub-news{display:none!important}
#lobby.arena-hub .arcade-mode-back{justify-self:start;margin:0 0 18px;background:#f1efe5;color:#13151d;padding:12px 22px;border:2px solid white;font:800 italic 16px Arial,sans-serif;cursor:pointer}
#lobby.arena-hub[data-play-stage=setup] .hub-pane[data-hub-pane=play]{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:18px;align-content:start}
#lobby.arena-hub[data-play-stage=setup] .hub-heading,#lobby.arena-hub[data-play-stage=setup] .arcade-mode-back{grid-column:1/-1}
#lobby.arena-hub[data-play-stage=setup] .hub-party-card{grid-column:1;grid-row:3/5;align-self:start}
#lobby.arena-hub[data-play-stage=setup] .unified-setup,#lobby.arena-hub[data-play-stage=setup] .hub-play-details{grid-column:2}
#lobby.arena-hub .hub-party-card,#lobby.arena-hub .setup-card{background:#242833;border:2px solid #727887;box-shadow:5px 5px #090b11;padding:20px}
#lobby.arena-hub .hub-party-card h2,#lobby.arena-hub .setup-card h2{font:900 italic 24px Arial,sans-serif;color:white}
#lobby.arena-hub .unified-setup>h2{font:950 italic clamp(28px,3vw,45px)/1.1 Arial,sans-serif;color:#ffe284;margin-bottom:20px}
#lobby.arena-hub #enterBattle,#lobby.arena-hub #start,#lobby.arena-hub .hub-primary{background:linear-gradient(115deg,#ec433a,#b3142d);color:#fff;border:3px solid #fff1bb;box-shadow:5px 5px #0b0c12;min-height:65px;font:950 italic 24px Arial,sans-serif}
#lobby.arena-hub .hub-mini-mon{padding:16px 10px;background:linear-gradient(130deg,#168f70,#11473d);border:2px solid #a6d1c2;font-size:17px;font-style:italic;box-shadow:4px 4px #0c1018}
#lobby.arena-hub .hub-mini-mon img{height:clamp(100px,16vw,230px)}
#lobby.arena-hub #lobbyParty,#lobby.arena-hub #party{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#lobby.arena-hub .preview-slot,#lobby.arena-hub .party-slot{display:flex;position:relative;flex-direction:column;align-items:stretch;text-align:center;background:linear-gradient(145deg,#116b56,#182c31);border:2px solid #79b5a0;padding:20px;gap:12px;box-shadow:5px 5px #0a0d13}
#lobby.arena-hub .preview-slot>img,#lobby.arena-hub .party-slot>img{width:100%;height:170px;object-fit:contain}
#lobby.arena-hub .preview-slot b,#lobby.arena-hub .party-slot b{font:900 italic 24px/1.2 Arial,sans-serif;text-align:center}
#lobby.arena-hub .gear-selector label{font:700 15px Arial,sans-serif}
#lobby.arena-hub .tamer-select,#lobby.arena-hub .tamers{grid-template-columns:repeat(5,minmax(0,1fr))}
#lobby.arena-hub:not([hidden]) .tamer-card,#lobby.arena-hub:not([hidden]) .tamer{background:linear-gradient(125deg,#128160,#14352c);border:3px solid #688b82;box-shadow:4px 4px #080e14}
#lobby.arena-hub .tamer.selected,#lobby.arena-hub .tamer-card.selected{border-color:#fff0a0;box-shadow:4px 4px #080e14,inset 0 -5px #fff0a0}
#lobby.arena-hub .roster-select,#lobby.arena-hub .roster{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
#lobby.arena-hub .roster-card{background:linear-gradient(130deg,#962363,#321f42);border:2px solid #a45d8e;box-shadow:5px 5px #090c14;min-height:245px}
#lobby.arena-hub .roster-card img{height:160px;transition:transform .18s}
#lobby.arena-hub .roster-card:hover img{transform:scale(1.08)}
#lobby.arena-hub .roster-card b{font:900 italic 20px/1.2 Arial,sans-serif;color:white}
#lobby.arena-hub .mode-tab,#lobby.arena-hub .tabs button{background:#312438;border:2px solid #8b6483;font:800 italic 16px Arial,sans-serif;padding:12px 20px;min-height:46px}
#lobby.arena-hub .mode-tab.active,#lobby.arena-hub .tabs button.selected{background:#c33081;color:#fff;border-color:#ffeba1}
#lobby.arena-hub .hub-settings{display:grid;grid-template-columns:1fr 2fr;gap:22px;align-items:center}
#lobby.arena-hub .hub-settings h2{padding:25px;background:#185aaf;font:900 italic 28px Arial,sans-serif;transform:skew(-4deg);margin:0}
#lobby.arena-hub .hub-settings button{margin:0;min-height:58px;padding:18px 25px;background:#263451;border:2px solid #8ba6cf;font:800 17px Arial,sans-serif}
#lobby.arena-hub .hub-settings p{grid-column:1/-1}
/* Friends, previews and co-op flow use the same frame. */
body:has(#lobby:not([hidden])) dialog,.arcade-page dialog{border:4px solid #f9f1cf;background:#212634;color:#fff;box-shadow:12px 12px #0009;max-height:90svh;border-radius:0}
body:has(#lobby:not([hidden])) dialog h2,.arcade-page dialog h2{font:950 italic 30px/1.1 Arial,sans-serif;color:white}
body:has(#lobby:not([hidden])) dialog button,.arcade-page dialog button{background:#a82467;color:#fff;border:2px solid #f5c4df;padding:12px 18px;font:800 15px Arial,sans-serif;min-height:44px}
#waiting:not([hidden]),#camp:not([hidden]),#countdownScreen:not([hidden]){background:linear-gradient(125deg,#164d90,#181727);color:#fff;border:4px solid #eee6c9;padding:clamp(20px,4vw,55px);box-shadow:8px 8px #06080c}
#waiting h1,#camp h1,#countdownScreen strong{font:950 italic clamp(30px,5vw,65px)/1.1 Arial,sans-serif;color:#fff;text-shadow:4px 4px #0008}
#waiting button,#camp button{min-height:50px;background:#c42b3d;color:#fff;border:2px solid #fff1b2;padding:14px 25px;font:900 italic 18px Arial,sans-serif}
/* Standalone shop, rivals and event screens. */
.arcade-page{min-height:100svh;background:repeating-linear-gradient(115deg,transparent 0 100px,#ffffff04 101px 105px),#171923}
.arcade-page>header,.arcade-page main{max-width:none;width:100%;padding:24px clamp(18px,4vw,64px)}
.arcade-page header a,.arcade-page nav>a{display:inline-block;background:#f5f1e6;color:#181820;border:2px solid white;padding:12px 20px;font:900 italic 16px Arial,sans-serif;box-shadow:4px 4px #080a11;transform:skew(-4deg)}
.arcade-page .shop-hero{padding:26px 35px;background:linear-gradient(110deg,#bf7e0d,#7e4110);border:3px solid #f5de9b;box-shadow:8px 8px #080a11}
.arcade-page h1,.arcade-page .shop-hero h1{font:950 italic clamp(34px,5vw,70px)/1.05 Arial,sans-serif;color:#fff;text-shadow:4px 4px #0008}
.arcade-page h1 span{color:#fff5cc}
.arcade-page .shop-hero p{color:#fff0cf}
.arcade-page #categories{gap:10px}
.arcade-page #categories button{background:#34303c;border:2px solid #9b8f9b;transform:skew(-4deg);font:900 italic 16px Arial,sans-serif}
.arcade-page #categories button[aria-pressed=true]{background:#d99b18;border-color:#fff;color:#15151d}
.arcade-page .shop-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.arcade-page .shop-item,.arcade-page .card{background:linear-gradient(130deg,#504225,#272532);border:3px solid #b6a274;box-shadow:6px 6px #090a11;padding:22px}
.arcade-page .shop-item img,.arcade-page .card img{height:200px;transition:transform .2s;filter:drop-shadow(5px 8px #0005)}
.arcade-page .shop-item:hover img,.arcade-page .card:hover img{transform:scale(1.07)}
.arcade-page .shop-item h2,.arcade-page .card h3{font:900 italic 26px/1.1 Arial,sans-serif;color:#fff}
.arcade-page .shop-item p,.arcade-page .card p{color:#e4dfd5;line-height:1.6}
.arcade-page button,.arcade-page .card a,.arcade-page .cta{background:#c52b3b;color:white;border:2px solid #ffe7b1;box-shadow:3px 3px #090b11;font:900 italic 16px/1.3 Arial,sans-serif;padding:14px 20px}
.arcade-page .mastery-brand{display:none}
.arcade-page .grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.arcade-page #rivals .card{background:linear-gradient(135deg,#a32e40,#312139)}
.arcade-page #mastery .card{background:linear-gradient(135deg,#185e8f,#20263d)}
.arcade-page .step{background:linear-gradient(125deg,#205c9a,#211e48);border:3px solid #87b8dd;box-shadow:7px 7px #090b11;padding:30px}
.arcade-page .step h2{font:950 italic 36px/1.1 Arial,sans-serif;color:white}
/* One selection animation vocabulary across all menus. */
#lobby.arena-hub button:not(.arena-tile):not(:disabled),#lobby.arena-hub a,.arcade-page button:not(:disabled),.arcade-page a{transition:filter .14s,translate .14s,box-shadow .14s}
#lobby.arena-hub button:not(.arena-tile):not(:disabled):hover,#lobby.arena-hub a:hover,.arcade-page button:not(:disabled):hover,.arcade-page a:hover{filter:brightness(1.18);translate:0 -3px}
#lobby.arena-hub button:not(.arena-tile):focus-visible,#lobby.arena-hub a:focus-visible,.arcade-page button:focus-visible,.arcade-page a:focus-visible,#lobby.arena-hub .moju-controller-focus,.arcade-page .moju-controller-focus{outline:4px solid #fff2a8!important;outline-offset:3px;animation:arcade-focus-pulse 1.3s ease-in-out infinite}
#lobby.arena-hub button:not(:disabled):active,.arcade-page button:not(:disabled):active{translate:0 2px;filter:brightness(1.4)}
.arcade-pressed{animation:arcade-press-flash .2s ease-out}
@keyframes arcade-focus-pulse{50%{filter:brightness(1.25)}}
@keyframes arcade-press-flash{from{filter:brightness(1.65)}to{filter:brightness(1)}}
@media(max-width:1050px){#lobby.arena-hub .hub-mode-choices{grid-template-columns:repeat(2,minmax(0,1fr))}#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a{padding:10px 14px;font-size:14px}#lobby.arena-hub .tamer-select,#lobby.arena-hub .tamers{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#lobby.arena-hub:not(.hub-home-screen):not([hidden]){display:block}#lobby.arena-hub .hub-nav{margin-bottom:12px}#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a{flex:1 1 28%;transform:none;min-height:44px}#lobby.arena-hub .hub-heading{padding:20px;clip-path:none}#lobby.arena-hub .hub-categories{grid-template-columns:1fr;gap:10px}#lobby.arena-hub .hub-categories button{min-height:75px;padding:14px 20px}#lobby.arena-hub .hub-mode-choices{grid-template-columns:1fr 1fr;gap:12px}#lobby.arena-hub .hub-mode-choices button{padding:14px;min-height:240px}#lobby.arena-hub .hub-mode-choices strong{font-size:24px}#lobby.arena-hub[data-play-stage=setup] .hub-pane[data-hub-pane=play]{display:block}#lobby.arena-hub #lobbyParty,#lobby.arena-hub #party{grid-template-columns:1fr}#lobby.arena-hub .tamer-select,#lobby.arena-hub .tamers{grid-template-columns:repeat(2,minmax(0,1fr))}#lobby.arena-hub .hub-settings{grid-template-columns:1fr}#lobby.arena-hub .hub-settings h2{font-size:24px;padding:16px}.arcade-page .shop-hero{padding:20px}.arcade-page .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.arcade-page .shop-item{padding:12px}.arcade-page .shop-item img{height:150px}.arcade-page .shop-item h2{font-size:21px}.arcade-page>header{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){#lobby.arena-hub *,#lobby.arena-hub *:after,.arcade-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
#lobby.arena-hub[data-section=play][data-category=adventures] .hub-heading{background:linear-gradient(110deg,#2288d7,#16428e)}
#lobby.arena-hub[data-section=play][data-category=tower] .hub-heading{background:linear-gradient(110deg,#a056d3,#572283)}
body:has(#lobby:not([hidden])) .friends-heading{background:linear-gradient(110deg,#bb8c15,#725019);padding:18px;margin:-8px -8px 20px}
body:has(#lobby:not([hidden])) .friend-row{border:2px solid #6e7789;background:#303746;margin:12px 0;padding:16px}
body:has(#lobby:not([hidden])) .friend-name{font:900 italic 21px Arial,sans-serif}
body:has(#lobby:not([hidden])) .friend-invite-popup{border:3px solid #ffe8ac;box-shadow:7px 7px #0009;background:linear-gradient(125deg,#b17719,#39221c)}
/* Five-card desktop collection; retain readable tablet and phone cards. */
@media(min-width:1100px){#lobby.arena-hub #rosterSelect,#lobby.arena-hub #arenaOwned,#lobby.arena-hub #roster{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:701px) and (max-width:1099px){#lobby.arena-hub #rosterSelect,#lobby.arena-hub #arenaOwned,#lobby.arena-hub #roster{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Character select: three active invitations instead of an empty panel. */
#lobby.arena-hub[data-play-stage=setup] .character-select{grid-column:1/-1;grid-row:auto}
#lobby.arena-hub .character-select{position:relative;overflow:hidden;padding:26px;background:repeating-linear-gradient(118deg,transparent 0 70px,#ffffff04 71px 75px),linear-gradient(120deg,#1c2440,#131623);border:3px solid #b8c3e0;box-shadow:7px 7px #080a12}
#lobby.arena-hub .character-select .select-eyebrow{font:900 13px Arial,sans-serif;letter-spacing:.16em;color:#ffe591;margin:0 0 8px}
#lobby.arena-hub .character-select h2{font:950 italic clamp(26px,3.6vw,48px)/1.1 Arial,sans-serif;color:white;text-shadow:3px 3px #0008}
#lobby.arena-hub .character-select .hub-section-title{margin-bottom:24px;align-items:center}
#lobby.arena-hub .character-select .hub-party-lineup{gap:20px}
#lobby.arena-hub .select-slot{position:relative;min-height:285px;border:3px solid #d7dbea;background:linear-gradient(130deg,#235eb8,#122b65);padding:22px 14px;gap:12px;box-shadow:6px 6px #070a13;overflow:hidden;justify-content:center;isolation:isolate}
#lobby.arena-hub .select-slot:nth-child(2){background:linear-gradient(130deg,#b72e70,#591846)}
#lobby.arena-hub .select-slot:nth-child(3){background:linear-gradient(130deg,#078d74,#093e42)}
#lobby.arena-hub .select-slot:before{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(125deg,transparent 0 36px,#ffffff08 37px 39px)}
#lobby.arena-hub .select-slot-number{align-self:flex-start;font:900 13px Arial,sans-serif;letter-spacing:.09em;background:#0c1129bd;padding:7px 10px;color:#fff4be}
#lobby.arena-hub .select-slot strong{font:950 italic clamp(21px,2.4vw,35px)/1.15 Arial,sans-serif;text-shadow:2px 3px #0009;overflow-wrap:anywhere}
#lobby.arena-hub .select-slot>small:last-child{font:800 12px/1.5 Arial,sans-serif;letter-spacing:.06em;color:#fff2c8}
#lobby.arena-hub .select-slot .select-plus{font:400 94px/1 Arial,sans-serif;color:#fff;transition:transform .18s;text-shadow:4px 5px #0007;animation:select-invite 2.4s ease-in-out infinite}
#lobby.arena-hub .select-slot:hover .select-plus,#lobby.arena-hub .select-slot:focus-visible .select-plus{transform:rotate(90deg) scale(1.12)}
#lobby.arena-hub .select-slot img{height:190px;width:100%;object-fit:contain;filter:drop-shadow(6px 9px #0007);transition:transform .2s}
#lobby.arena-hub .select-slot:hover img{transform:scale(1.08) translateY(-5px)}
#lobby.arena-hub .select-slot.just-picked{animation:mojumon-lock-in .4s ease-out}
#lobby.arena-hub .team-select-footer{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:24px;font:600 15px/1.5 Arial,sans-serif;color:#b9c8e5}
#lobby.arena-hub .team-select-footer strong{font:950 italic 24px Arial,sans-serif;color:#ffe291}
#lobby.arena-hub .team-select-footer button{margin-left:auto;border:2px solid #fff1bb;background:#c32943;color:#fff;padding:13px 20px;cursor:pointer;font:900 italic 17px Arial,sans-serif}
#lobby.arena-hub .team-complete{border-color:#ffe291}
#lobby.arena-hub .collection-team-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#151c30;border:2px solid #8494b6;padding:16px;margin:0 0 24px;box-shadow:5px 5px #070a12}
#lobby.arena-hub .collection-team-bar>div:first-child{display:flex;flex-direction:column;gap:5px;font:900 italic 18px Arial,sans-serif;color:#ffe291}
#lobby.arena-hub .collection-team-bar [data-draft-count]{font:600 14px Arial,sans-serif;color:#cad4eb}
#lobby.arena-hub .collection-team-slots{display:flex;flex:1;gap:10px;min-width:0}
#lobby.arena-hub .team-draft-chip{display:flex;align-items:center;gap:8px;justify-content:center;flex:1;min-width:0;min-height:66px;padding:8px;background:#283555;color:white;border:2px solid #7c8eae;font:800 14px Arial,sans-serif;cursor:pointer}
#lobby.arena-hub .team-draft-chip img{width:50px;height:50px;object-fit:contain;image-rendering:pixelated}
#lobby.arena-hub .team-draft-chip span{overflow-wrap:anywhere}
#lobby.arena-hub [data-team-done]{background:#c62943;border:2px solid #ffe7a6;color:white;padding:16px;min-height:52px;font:900 italic 16px Arial,sans-serif;cursor:pointer}
@keyframes select-invite{50%{opacity:.65;text-shadow:0 0 28px #fff8}}
@keyframes mojumon-lock-in{0%{transform:scale(.92);filter:brightness(2)}65%{transform:scale(1.03)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:700px){#lobby.arena-hub .character-select{padding:16px}#lobby.arena-hub .character-select .hub-party-lineup{grid-template-columns:1fr;gap:14px}#lobby.arena-hub .select-slot{min-height:190px}#lobby.arena-hub .select-slot img{height:160px}#lobby.arena-hub .select-slot .select-plus{font-size:65px}#lobby.arena-hub .collection-team-slots{flex-basis:100%}#lobby.arena-hub .team-draft-chip{flex-direction:column;font-size:12px}#lobby.arena-hub .collection-team-bar>button{width:100%}}
@media(prefers-reduced-motion:reduce){#lobby.arena-hub .select-slot,#lobby.arena-hub .select-plus{animation:none!important}}
/* Battle setup is a full-width launch panel, not a floating form. */
#lobby.arena-hub[data-play-stage=setup] .hub-pane[data-hub-pane=play]{grid-template-columns:minmax(0,1fr);gap:18px}
#lobby.arena-hub[data-play-stage=setup] .hub-heading,#lobby.arena-hub[data-play-stage=setup] .character-select,#lobby.arena-hub[data-play-stage=setup] .arcade-mode-back,#lobby.arena-hub[data-play-stage=setup] .unified-setup,#lobby.arena-hub[data-play-stage=setup] .hub-play-details{grid-column:1;grid-row:auto}
#lobby.arena-hub .unified-setup{position:relative;overflow:hidden;padding:26px;background:repeating-linear-gradient(120deg,transparent 0 65px,#ffffff08 66px 69px),linear-gradient(115deg,#194f9d,#182d5a 70%,#151c33);border:3px solid #b4ceef;box-shadow:7px 7px #090b12;margin:0}
#lobby.arena-hub .unified-setup>h2{font:950 italic clamp(32px,4vw,60px)/1.1 Arial,sans-serif;color:#fff;text-shadow:4px 4px #080c1b;margin:0 0 24px;border-bottom:3px solid #ffffff30;padding-bottom:18px}
#lobby.arena-hub .unified-setup .setup-choices{display:none}
#lobby.arena-hub .arcade-play-buttons{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:22px}
#lobby.arena-hub .arcade-play-option{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:9px;min-width:190px;min-height:105px;padding:20px 25px;cursor:pointer;background:linear-gradient(120deg,#233d67,#18243d);color:#fff;border:3px solid #8ea6cd;box-shadow:5px 5px #080d1c;text-align:left;transform:skew(-3deg)}
#lobby.arena-hub .arcade-play-option strong{font:950 italic clamp(22px,2.5vw,34px)/1.1 Arial,sans-serif}
#lobby.arena-hub .arcade-play-option small{font:800 12px/1.4 Arial,sans-serif;letter-spacing:.08em;color:#ccdcf5}
#lobby.arena-hub .arcade-play-option[aria-pressed=true]{background:linear-gradient(115deg,#eecc63,#cd901a);color:#1c1820;border-color:#fff3c5;box-shadow:5px 5px #080d1c,inset 0 -5px #fff2b2}
#lobby.arena-hub .arcade-play-option[aria-pressed=true] small{color:#4b3512}
#lobby.arena-hub .unified-setup .setup-description{color:#e2ebff;font-size:16px;line-height:1.6;margin:0 0 18px}
#lobby.arena-hub .unified-setup .setup-options{background:#0e1c36ad;border:2px solid #6a86b1;padding:16px 20px}
#lobby.arena-hub .unified-setup summary{font:900 italic 20px/1.4 Arial,sans-serif;color:#fff;min-height:30px}
#lobby.arena-hub .hub-play-details{padding:22px;border:3px solid #a44355;background:repeating-linear-gradient(120deg,transparent 0 75px,#ffffff05 76px 79px),linear-gradient(110deg,#3c1a2c,#181c2e);box-shadow:7px 7px #070a12}
#lobby.arena-hub #enterBattle,#lobby.arena-hub #start{min-height:88px;font:950 italic clamp(26px,3.6vw,46px)/1.1 Arial,sans-serif;letter-spacing:.01em;border:3px solid #fff1bb;box-shadow:6px 6px #080a12;background:linear-gradient(115deg,#f34938,#b41336);margin-bottom:16px}
#lobby.arena-hub #enterBattle:not(:disabled),#lobby.arena-hub #start:not(:disabled){animation:launch-ready 2s ease-in-out infinite}
#lobby.arena-hub #partyReadyHint{font:800 16px/1.5 Arial,sans-serif;color:#fff0c2;padding-bottom:12px}
#lobby.arena-hub .hub-extra summary{font:900 italic 18px/1.5 Arial,sans-serif;color:#ffe0a5}
@keyframes launch-ready{50%{box-shadow:6px 6px #080a12,0 0 22px #f8433b55}}
@media(max-width:700px){#lobby.arena-hub .unified-setup,#lobby.arena-hub .hub-play-details{padding:16px}#lobby.arena-hub .arcade-play-option{flex-basis:100%;min-width:0;transform:none}#lobby.arena-hub #enterBattle,#lobby.arena-hub #start{font-size:26px;min-height:74px}}
@media(prefers-reduced-motion:reduce){#lobby.arena-hub #enterBattle,#lobby.arena-hub #start{animation:none!important}}
/* Stage select and multiplayer are game menus with large, illustrated targets. */
#lobby.arena-hub .stage-gallery{margin:20px 0 26px}
#lobby.arena-hub .stage-gallery h3{font:900 italic clamp(24px,3vw,38px)/1.2 Arial,sans-serif;color:#ffe58a;margin:0 0 16px}
#lobby.arena-hub .stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#lobby.arena-hub .stage-tile{position:relative;isolation:isolate;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;overflow:hidden;border:3px solid #9faeca;padding:20px;text-align:left;color:white;background:#0d172a;box-shadow:5px 5px #070c19;cursor:pointer;transition:transform .18s,border-color .18s}
#lobby.arena-hub .stage-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .25s,filter .25s;filter:saturate(.8)}
#lobby.arena-hub .stage-tile:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#060919ee,transparent 95%)}
#lobby.arena-hub .stage-tile strong{font:950 italic clamp(19px,2vw,29px)/1.15 Arial,sans-serif;text-shadow:2px 3px #000}
#lobby.arena-hub .stage-tile small{font:900 12px Arial,sans-serif;letter-spacing:.12em;margin-top:10px;color:#ffe28b}
#lobby.arena-hub .stage-tile[aria-pressed=true]{border-color:#ffe472;box-shadow:5px 5px #070c19,inset 0 0 0 2px #ffe472}
#lobby.arena-hub .stage-tile:hover,#lobby.arena-hub .stage-tile.moju-controller-focus,#lobby.arena-hub .stage-tile:focus-visible{transform:translateY(-5px);border-color:#fff3a2}
#lobby.arena-hub .stage-tile:hover img,#lobby.arena-hub .stage-tile:focus-visible img,#lobby.arena-hub .stage-tile.moju-controller-focus img{transform:scale(1.08);filter:saturate(1.3)}
#lobby.arena-hub .stage-tile:disabled{filter:grayscale(.6);opacity:.55;cursor:default}
#lobby.arena-hub #joinPanel,#lobby.arena-hub #onlineSetup,#lobby.arena-hub #profileCard{padding:24px;margin:0 0 22px;background:linear-gradient(115deg,#121e3b,#192745);border:0;border-top:5px solid #4dc7ec;box-shadow:6px 6px #080b16}
#lobby.arena-hub #joinPanel h2,#lobby.arena-hub #onlineSetup h2,#lobby.arena-hub #profileCard h2{font:950 italic clamp(26px,3vw,40px)/1.1 Arial,sans-serif;margin:0 0 15px;color:#fff}
#lobby.arena-hub #joinPanel p,#lobby.arena-hub #profileText{font:500 15px/1.5 Arial,sans-serif;color:#cbdcf7}
#lobby.arena-hub #joinPanel>label,#lobby.arena-hub #onlineSetup>label{display:block;font:800 15px/1.5 Arial,sans-serif;color:#b8dfff;margin:20px 0}
#lobby.arena-hub #code,#lobby.arena-hub #roomCodeInput{max-width:520px;display:block;min-height:60px;font:900 22px Arial,sans-serif;letter-spacing:.15em;border:2px solid #6aa7d9;padding:14px;background:#08152b;color:white}
#lobby.arena-hub .arcade-connect-cards,#lobby.arena-hub .online-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
#lobby.arena-hub :is(#inviteFriend,#join,#watch,#createRoomBtn,#joinRoomBtn,#watchRoomBtn){position:relative;min-height:210px;min-width:0;width:100%;padding:105px 22px 22px;font:950 italic clamp(19px,2vw,28px)/1.2 Arial,sans-serif;text-align:left;white-space:normal;border:3px solid #e4f0ff;background:linear-gradient(130deg,#c8325b,#771b4f);box-shadow:5px 5px #070b17;overflow:hidden;cursor:pointer;transition:transform .18s,filter .18s}
#lobby.arena-hub :is(#join,#joinRoomBtn){background:linear-gradient(130deg,#176fa7,#173c73)}
#lobby.arena-hub :is(#watch,#watchRoomBtn){background:linear-gradient(130deg,#8052ad,#422363)}
#lobby.arena-hub :is(#inviteFriend,#join,#watch,#createRoomBtn,#joinRoomBtn,#watchRoomBtn):before{content:'';position:absolute;right:12px;top:5px;width:125px;height:115px;background:url('https://mojumon-artwork.senseicjdojo.workers.dev/assets/hibaran-front.png') center/contain no-repeat;filter:drop-shadow(4px 5px #0005);pointer-events:none;transition:transform .2s}
#lobby.arena-hub :is(#join,#joinRoomBtn):before{background-image:url('https://mojumon-artwork.senseicjdojo.workers.dev/assets/dispensaur-front.png')}
#lobby.arena-hub :is(#watch,#watchRoomBtn):before{background-image:url('https://mojumon-artwork.senseicjdojo.workers.dev/assets/astralong-front.webp')}
#lobby.arena-hub :is(#inviteFriend,#join,#watch,#createRoomBtn,#joinRoomBtn,#watchRoomBtn):is(:hover,:focus-visible,.moju-controller-focus){transform:translateY(-5px);filter:brightness(1.15)}
#lobby.arena-hub #profileCard{border-top-color:#ffcb67;background:linear-gradient(115deg,#392246,#181d35)}
#lobby.arena-hub #resumeRuns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#lobby.arena-hub #resumeRuns button{min-height:140px;width:100%;padding:24px;text-align:left;white-space:normal;font:900 italic clamp(18px,2vw,26px)/1.35 Arial,sans-serif;border:2px solid #e5bc77;border-left:8px solid #ffde8a;color:#fff5d7;background:linear-gradient(90deg,#241b38f5,#241b3880),url('https://mojumon-artwork.senseicjdojo.workers.dev/assets/arenas/ronin.png') center/cover;box-shadow:5px 5px #080b17}
#lobby.arena-hub .hub-extra{padding:18px 22px;border:2px solid #7c6896;background:linear-gradient(110deg,#352445,#161e34);margin-top:14px}
#lobby.arena-hub .hub-extra summary{font-size:22px;cursor:pointer}
#lobby.arena-hub .unified-setup .rule-row{font:500 16px/1.6 Arial,sans-serif;padding:12px 0}
@media(max-width:850px){#lobby.arena-hub .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#lobby.arena-hub .arcade-connect-cards,#lobby.arena-hub .online-actions{grid-template-columns:1fr}#lobby.arena-hub :is(#inviteFriend,#join,#watch,#createRoomBtn,#joinRoomBtn,#watchRoomBtn){min-height:140px;padding:40px 150px 35px 20px}#lobby.arena-hub #resumeRuns{grid-template-columns:1fr}}
@media(max-width:480px){#lobby.arena-hub .stage-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#lobby.arena-hub .stage-tile,#lobby.arena-hub .stage-tile img,#lobby.arena-hub .arcade-connect-cards button{transition:none;transform:none!important}}
#lobby.arena-hub .arcade-connect-cards>button,#lobby.arena-hub .online-actions>button{grid-column:auto}
#lobby.arena-hub .stage-tile[hidden],#lobby.arena-hub .arcade-connect-cards>button[hidden],#lobby.arena-hub .rule-row[hidden]{display:none!important}
/* One-screen lobby: options have their own controller-friendly dialogs. */
body:has(#lobby.arena-hub:not([hidden])){overflow:hidden}
body:has(#lobby.arena-hub:not([hidden])) .topbar,body:has(#lobby.arena-hub:not([hidden])) .app>footer{display:none!important}
#lobby.arena-hub{margin:0!important;padding:8px!important;max-width:none!important;transform-origin:top center}
#lobby .hub-heading{padding:12px 20px!important;margin:0 0 10px!important;min-height:0!important}
#lobby .hub-heading h1{font-size:32px!important;margin:0!important}
#lobby .hub-heading span,#lobby .hub-heading p{display:none}
#lobby .hub-nav{margin:0 0 8px!important;padding:0!important}
#lobby .hub-pane{padding:10px!important}
#lobby .character-select{padding:12px!important;margin:0!important}
#lobby .hub-section-title h2{font-size:25px!important;margin:0!important}
#lobby .select-eyebrow,#lobby .team-select-footer>span{display:none}
#lobby .hub-party-lineup{gap:10px!important;margin:8px 0!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
#lobby .select-slot{min-height:130px!important;padding:10px!important;gap:4px!important}
#lobby .select-slot img{height:90px!important;width:100%!important;object-fit:contain}
#lobby .select-slot strong{font-size:20px!important}
#lobby .select-plus{font-size:35px!important}
#lobby .select-slot-number{position:static!important}
#lobby .unified-setup{padding:12px!important;margin:8px 0!important}
#lobby .unified-setup h2{font-size:24px!important;margin:0 0 8px!important}
#lobby .arcade-play-buttons{margin:0!important;gap:8px!important}
#lobby .arcade-play-option{min-height:54px!important;padding:10px!important}
#lobby .arcade-play-option strong{font-size:20px!important}
#lobby .setup-description{margin:6px 0!important;font-size:12px!important}
#lobby .hub-play-details{padding:8px!important;margin:0!important;display:flex!important;flex-wrap:wrap;gap:8px}
#lobby .hub-play-details>button.screen-option{flex:1}
#lobby #enterBattle,#lobby #start{min-height:52px!important;flex-basis:100%;margin:0!important;font-size:24px!important}
#lobby .arcade-mode-back{margin:8px 0!important}
.screen-option{padding:12px 18px!important;margin:4px!important;background:linear-gradient(115deg,#23447b,#342449)!important;border:2px solid #b7d7ed!important;color:white!important;font:800 16px Arial!important;cursor:pointer}
.screen-option:focus-visible,.screen-option:hover{background:#b62065!important;transform:translateY(-2px)}
.screen-popup{width:min(1050px,92vw);max-height:none!important;overflow:visible!important;padding:20px;background:linear-gradient(125deg,#182744,#261c35);color:white;border:3px solid #fee58a;box-shadow:12px 12px 0 #0008}
.screen-popup::backdrop{background:#060a18db;backdrop-filter:blur(6px)}
.screen-popup h2{font:900 italic 30px Arial;margin:0 0 12px}
.screen-close{float:right;padding:10px;background:#d02a66;color:white;border:2px solid white}
.screen-popup .stage-gallery{margin:0;padding:0}.screen-popup .stage-gallery>h3{display:none}
.screen-popup .stage-grid{grid-template-columns:repeat(3,1fr)!important;gap:10px}
.screen-popup .stage-tile{min-height:120px!important;height:24vh;max-height:210px}
.screen-popup .arcade-connect-cards>button{min-height:120px!important;padding:14px!important}
.screen-popup .arcade-connect-cards>button::before{display:none}
.screen-popup details>summary[hidden]{display:none!important}
#lobby .collection-team-bar{padding:6px!important;margin:0 0 8px!important}
#lobby .team-draft-chip{min-height:42px!important;padding:4px!important}
#lobby .team-draft-chip img{height:38px!important;width:38px!important}
#lobby .mojumon-scroll{overflow:visible!important;max-height:none!important;padding:0!important}
#lobby .lobby-tip,#lobby .collection-team-bar~.select-head{display:none}
#lobby .roster-select,#lobby #roster{gap:8px!important;margin:6px 0!important}
#lobby .roster-card{min-height:0!important;height:clamp(130px,22vh,210px)!important;padding:8px 8px 32px!important}
#lobby .roster-card img{height:clamp(60px,12vh,115px)!important;max-width:100%!important}
#lobby .roster-card b{font-size:15px!important}
#lobby .roster-quick{width:auto!important;height:26px!important;font:700 12px Arial!important;padding:3px 8px!important}
#lobby .roster-pages{padding:6px!important;margin:6px 0!important}
#lobby .mode-tabs,#lobby .tabs{margin:5px 0!important}
#lobby .mode-tabs button,#lobby .tabs button{padding:8px 14px!important}
.screen-pad-hint{text-align:center;color:#ffe689;font:bold 13px Arial;padding:6px}
#lobby .hub-mode-choices{gap:10px!important}
#lobby .hub-mode-choices button{min-height:120px!important;padding:16px!important}

@media(max-width:699px){#lobby .roster-select,#lobby #roster{grid-template-columns:repeat(2,minmax(0,1fr))!important}.screen-popup .stage-grid{grid-template-columns:repeat(2,1fr)!important}#lobby .select-slot strong{font-size:14px!important}}

/* Keep menus at native scale. Allocate screen space to the active content. */
body:has(#lobby.arena-hub:not([hidden])) .app{padding:0!important;margin:0!important;max-width:none!important}
#lobby.arena-hub:not([hidden]):not(.hub-home-screen){height:100dvh;min-height:0!important;box-sizing:border-box;display:flex!important;flex-direction:column;gap:8px!important}
#lobby.arena-hub .lobby-main{flex:1;min-height:0;width:100%;padding:0!important}
#lobby.arena-hub .hub-pane:not([hidden]){box-sizing:border-box;height:100%;min-height:0}
#lobby.arena-hub .hub-nav{flex:none;min-height:44px;flex-wrap:nowrap;gap:6px}
#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a{font-size:16px;padding:10px 16px;white-space:nowrap}
#lobby.arena-hub .hub-heading h1{font-size:clamp(30px,3vw,44px)!important}
#lobby.arena-hub[data-play-stage=modes] [data-hub-pane=play]:not([hidden]){display:flex!important;flex-direction:column;gap:12px}
#lobby.arena-hub .hub-categories{flex:none;gap:12px}
#lobby.arena-hub .hub-categories button{min-height:60px;padding:10px 20px;font-size:22px}
#lobby.arena-hub .hub-mode-choices{flex:1;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));gap:16px!important}
#lobby.arena-hub[data-category=quick] .hub-mode-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
#lobby.arena-hub[data-category=tower] .hub-mode-choices{grid-template-rows:minmax(0,1fr)}
#lobby.arena-hub .hub-mode-choices button{min-height:0!important;padding:24px!important}
#lobby.arena-hub .hub-mode-choices button>span{min-height:0;padding-top:0;position:relative;z-index:1}
#lobby.arena-hub .hub-mode-choices img{max-height:none!important;height:96%!important;width:68%;right:0;top:2%}
#lobby.arena-hub .hub-mode-choices strong{font-size:clamp(26px,2.7vw,46px);max-width:75%}
#lobby.arena-hub .hub-mode-choices small{font-size:16px;margin:8px 0}
#lobby.arena-hub .hub-mode-choices b{font-size:16px;padding:8px 16px}
#lobby.arena-hub[data-play-stage=setup] [data-hub-pane=play]:not([hidden]){display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px}
#lobby.arena-hub[data-play-stage=setup] .hub-heading{grid-column:1/-1;grid-row:1}
#lobby.arena-hub[data-play-stage=setup] .character-select{grid-column:1;grid-row:2/5;display:flex;flex-direction:column}
#lobby.arena-hub[data-play-stage=setup] .arcade-mode-back{grid-column:2;grid-row:2;justify-self:start}
#lobby.arena-hub[data-play-stage=setup] .unified-setup{grid-column:2;grid-row:3}
#lobby.arena-hub[data-play-stage=setup] .hub-play-details{grid-column:2;grid-row:4}
#lobby.arena-hub .hub-party-lineup{flex:1;min-height:0;grid-template-columns:1fr!important;grid-template-rows:repeat(3,minmax(0,1fr))}
#lobby.arena-hub .select-slot{min-height:0!important;display:grid;grid-template-columns:100px 1fr;position:relative;text-align:left}
#lobby.arena-hub .select-slot img{height:clamp(90px,15vh,160px)!important;grid-row:1/4;grid-column:1}
#lobby.arena-hub .select-slot strong{font-size:clamp(20px,2vw,28px)!important}
#lobby.arena-hub .select-slot-number{grid-column:2}
#lobby.arena-hub .arcade-play-option{min-height:75px!important}
#lobby.arena-hub .arcade-play-option strong{font-size:26px!important}
#lobby.arena-hub .roster-card img{height:clamp(85px,14vh,150px)!important}
#lobby.arena-hub .roster-card b{font-size:18px!important}
#lobby.arena-hub .roster-card{height:clamp(175px,25vh,265px)!important}
.screen-popup{max-height:92dvh!important;overflow:auto!important}
#lobby.arena-hub [hidden]{display:none!important}
@media(max-width:900px){#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a{font-size:13px;padding:8px}#lobby.arena-hub .hub-nav{flex-wrap:wrap}#lobby.arena-hub .hub-categories{grid-template-columns:repeat(3,1fr)}#lobby.arena-hub .hub-categories button{font-size:16px;min-height:48px}#lobby.arena-hub .hub-categories small{display:none}#lobby.arena-hub .hub-mode-choices strong{font-size:24px}#lobby.arena-hub .hub-mode-choices small{font-size:13px}#lobby.arena-hub .hub-mode-choices button{padding:12px!important}}
@media(max-height:650px){#lobby.arena-hub .hub-heading{display:none}#lobby.arena-hub .hub-mode-choices b{padding:5px 10px;font-size:14px}#lobby.arena-hub .hub-categories button{min-height:42px}#lobby.arena-hub .roster-card{height:clamp(175px,40vh,245px)!important}}
/* Dialogs live outside #lobby: stage cards need their own complete styles. */
.screen-popup:has(.stage-gallery){width:min(1240px,94vw);box-sizing:border-box;padding:22px;overflow:hidden!important}
.screen-popup .stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px}
.screen-popup .stage-tile{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto auto;isolation:isolate;align-items:stretch;min-width:0;min-height:0!important;height:clamp(160px,32dvh,310px);max-height:none;overflow:hidden;padding:0;text-align:left;border:3px solid #91a2bd;background:#101d34;color:#fff;cursor:pointer;box-shadow:4px 4px #060c18;transition:border-color .16s,transform .16s}
.screen-popup .stage-tile img{position:static;display:block;inset:auto;width:100%;height:100%;min-height:0;object-fit:cover;z-index:auto;filter:none;transition:filter .18s}
.screen-popup .stage-tile strong{display:block;position:relative;background:#101d34;padding:12px 14px 4px;font:900 italic clamp(18px,1.7vw,26px)/1.15 Arial,sans-serif;color:white;white-space:normal;text-shadow:none}
.screen-popup .stage-tile small{display:block;background:#101d34;padding:4px 14px 12px;font:800 13px/1.2 Arial,sans-serif;letter-spacing:.05em;color:#ffe486}
.screen-popup .stage-tile[aria-pressed=true]{border-color:#ffe486}
.screen-popup .stage-tile[aria-pressed=true] strong,.screen-popup .stage-tile[aria-pressed=true] small{background:#453319}
.screen-popup .stage-tile:is(:hover,:focus-visible,.moju-controller-focus){border-color:#fff5a6;transform:translateY(-3px);outline:2px solid #fff5a6;outline-offset:2px}
.screen-popup .stage-tile:is(:hover,:focus-visible,.moju-controller-focus) img{filter:brightness(1.15)}
.screen-popup .stage-tile:disabled{opacity:.5;cursor:default}
.screen-popup [hidden]{display:none!important}
@media(max-width:700px){.screen-popup .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.screen-popup:has(.stage-gallery){padding:14px}.screen-popup .stage-tile{height:24dvh}.screen-popup .stage-tile strong{font-size:18px;padding:8px 10px 3px}.screen-popup .stage-tile small{padding:3px 10px 8px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.screen-popup .stage-tile,.screen-popup .stage-tile img{transition:none;transform:none!important}}
/* Reserve label and action space; only artwork flexes inside roster cards. */
#lobby.arena-hub .roster-card{box-sizing:border-box;display:flex!important;flex-direction:column;align-items:stretch;gap:5px;grid-template-columns:none;height:clamp(265px,calc(100dvh - 370px),420px)!important;min-height:265px!important;padding:12px 12px 42px!important;overflow:visible}
#lobby.arena-hub .roster-card img{flex:1 1 auto;min-height:80px;height:0!important;width:100%;object-fit:contain;margin:0}
#lobby.arena-hub .roster-card>span:not(.pick-state),#lobby.arena-hub .roster-card>b,#lobby.arena-hub .roster-card>small{flex:0 0 auto;min-height:0}
#lobby.arena-hub .roster-card b{font-size:20px!important;line-height:1.2!important;white-space:normal}
#lobby.arena-hub .roster-card small{line-height:1.45}
#lobby.arena-hub .roster-quick{height:30px!important;bottom:8px;right:10px;padding:4px 10px!important;font-size:14px!important}
#lobby.arena-hub .mode-tabs button,#lobby.arena-hub .tabs button{height:auto!important;min-height:40px;line-height:1.3!important;overflow:visible;padding:9px 16px!important}
@media(min-height:900px){#lobby.arena-hub .roster-card{height:calc((100dvh - 350px)/2)!important;min-height:265px!important}}
@media(max-height:650px){#lobby.arena-hub .collection-team-bar{min-height:0!important}#lobby.arena-hub .roster-card{height:260px!important;min-height:260px!important}}
/* Let the team occupy the full setup column, including the previously empty lower area. */
#lobby.arena-hub[data-play-stage=setup] .character-select{align-self:stretch;justify-self:stretch;min-height:0;box-sizing:border-box;height:100%;padding:18px!important}
#lobby.arena-hub .character-select .hub-section-title{flex:none;margin:0 0 12px}
#lobby.arena-hub .character-select .hub-party-lineup{flex:1 1 0;min-height:0;gap:16px!important;margin:0!important;align-items:stretch}
#lobby.arena-hub .character-select .select-slot{box-sizing:border-box;height:100%;min-height:0!important;grid-template-columns:minmax(100px,34%) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;align-items:center;padding:14px!important;column-gap:16px!important}
#lobby.arena-hub .character-select .select-slot img{grid-column:1;grid-row:1/4;width:100%!important;height:100%!important;min-height:0;max-height:100%;object-fit:contain}
#lobby.arena-hub .character-select .select-plus{grid-column:1;grid-row:1/4;justify-self:center;font-size:clamp(52px,7vh,90px)!important}
#lobby.arena-hub .character-select .select-slot-number{grid-column:2;grid-row:1;justify-self:start;align-self:start;font-size:14px}
#lobby.arena-hub .character-select .select-slot strong{grid-column:2;grid-row:2;align-self:center;font-size:clamp(24px,2.3vw,38px)!important;line-height:1.1;overflow-wrap:normal}
#lobby.arena-hub .character-select .select-slot>small:last-child{grid-column:2;grid-row:3;align-self:end;font-size:14px}
#lobby.arena-hub .character-select .team-select-footer{flex:none;flex-wrap:nowrap;margin-top:16px;gap:12px}
@media(max-height:650px){#lobby.arena-hub[data-play-stage=setup] .character-select{padding:10px!important}#lobby.arena-hub .character-select .hub-party-lineup{gap:8px!important}#lobby.arena-hub .character-select .select-slot{padding:8px!important}#lobby.arena-hub .character-select .select-slot-number{font-size:11px;padding:3px 6px}#lobby.arena-hub .character-select .select-slot strong{font-size:22px!important}#lobby.arena-hub .character-select .select-slot>small:last-child{font-size:11px}#lobby.arena-hub .character-select .team-select-footer{margin-top:8px}}
/* The setup column shows the chosen arena and the actual event carousel. */
#lobby.arena-hub .unified-setup{display:flex;flex-direction:column;min-height:0;gap:6px}
#lobby.arena-hub .unified-setup>h2,#lobby.arena-hub .unified-setup>.arcade-play-buttons,#lobby.arena-hub .unified-setup>.setup-description,#lobby.arena-hub .unified-setup>.screen-option{flex:none}
#lobby.arena-hub .setup-showcase{order:10;display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:12px;flex:1 1 0;min-height:0}
#lobby.arena-hub .selected-stage-preview{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;min-width:0;overflow:hidden;padding:0!important;margin:0!important;text-align:left;box-shadow:4px 4px #091224}
#lobby.arena-hub .selected-stage-preview img{width:100%;height:100%;min-height:0;object-fit:cover}
#lobby.arena-hub .selected-stage-preview span{display:block;padding:10px 14px;background:#0c192d;color:#ffec9b;font:800 18px/1.2 Arial,sans-serif}
#lobby.arena-hub .setup-showcase .promo-carousel{display:flex;flex-direction:column;min-height:0;width:100%;margin:0}
#lobby.arena-hub .setup-showcase .promo-stage{flex:1;min-height:0;height:auto}
#lobby.arena-hub .setup-showcase .promo-toolbar{flex:none;min-height:36px;padding:0 8px;gap:6px}
#lobby.arena-hub .setup-showcase .promo-toolbar>span{font:800 12px Arial,sans-serif;letter-spacing:.03em}
#lobby.arena-hub .setup-showcase .promo-toolbar button{min-height:32px;min-width:32px;padding:4px 7px;font:800 14px Arial,sans-serif}
#lobby.arena-hub .setup-showcase .promo-copy{padding:12px;width:72%;box-sizing:border-box}
#lobby.arena-hub .setup-showcase .promo-copy h2,#lobby.arena-hub .setup-showcase .promo-motto h2{font:900 italic clamp(18px,1.7vw,28px)/1.1 Arial,sans-serif;margin:5px 0}
#lobby.arena-hub .setup-showcase .promo-copy p{display:none}
#lobby.arena-hub .setup-showcase .promo-copy small,#lobby.arena-hub .setup-showcase .promo-motto small{font:800 12px Arial,sans-serif;letter-spacing:.03em}
#lobby.arena-hub .setup-showcase .promo-copy b{font:700 13px Arial,sans-serif}
@media(max-height:800px) and (min-width:1000px){#lobby.arena-hub .setup-showcase{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr)}#lobby.arena-hub .setup-showcase .promo-toolbar>span{display:none}#lobby.arena-hub .setup-showcase .promo-copy{width:100%;background:#09102166}#lobby.arena-hub .selected-stage-preview span{font-size:16px}}
/* Roster pages occupy a bounded viewport; overflow is handled by pagination. */
html:has(#lobby.arena-hub:not([hidden])),body:has(#lobby.arena-hub:not([hidden])){height:100%;min-height:0;overflow:hidden!important}
body:has(#lobby.arena-hub:not([hidden])) .app{height:100dvh!important;min-height:0!important;max-height:100dvh;overflow:hidden!important;display:block!important}
#lobby.arena-hub:not([hidden]){overflow:hidden!important;align-items:stretch}
#lobby.arena-hub .lobby-main{overflow:hidden!important;min-height:0!important}
#lobby.arena-hub [data-hub-pane=collection]:not([hidden]){display:flex;flex-direction:column;gap:5px;overflow:hidden;min-height:0}
#lobby.arena-hub [data-hub-pane=collection]>:not(.mojumon-scroll):not(#roster){flex:none}
#lobby.arena-hub [data-hub-pane=collection] .mojumon-scroll{display:flex;flex-direction:column;flex:1 1 0!important;min-height:0!important;overflow:hidden!important;height:auto!important;gap:5px}
#lobby.arena-hub #ownedRoster:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0;gap:4px;padding:0}
#lobby.arena-hub #ownedRoster>p,#lobby.arena-hub #ownedRoster>h3{margin:2px 0;font:13px/1.2 Arial,sans-serif}
#lobby.arena-hub #rosterSelect,#lobby.arena-hub #arenaOwned,#lobby.arena-hub #roster{display:grid;flex:1 1 0!important;min-height:0;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(var(--roster-rows,1),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-content:stretch;overflow:visible}
#lobby.arena-hub .roster-card-wrap{min-height:0}
#lobby.arena-hub .roster-card{height:100%!important;min-height:0!important}
#lobby.arena-hub .roster-card img{min-height:0!important}
#lobby.arena-hub .roster-pages{flex:none;min-height:44px;margin:4px 0!important;padding:4px 8px!important}
#lobby.arena-hub .roster-pages button{min-height:36px;font:700 14px Arial,sans-serif;padding:6px 12px}
#lobby.arena-hub #collectionHelp{display:none}
#lobby.arena-hub .screen-pad-hint{flex:none;padding:4px}
@media(min-width:700px) and (max-width:1099px){#lobby.arena-hub #rosterSelect,#lobby.arena-hub #arenaOwned,#lobby.arena-hub #roster{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:699px){#lobby.arena-hub #rosterSelect,#lobby.arena-hub #arenaOwned,#lobby.arena-hub #roster{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Battle actions belong inside the setup banner, never outside its width. */
#lobby.arena-hub[data-play-stage=setup] .unified-setup{grid-row:3/5;min-width:0;box-sizing:border-box}
#lobby.arena-hub .unified-setup>.hub-play-details{order:20;flex:none;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%;min-width:0;max-width:100%;box-sizing:border-box;padding:8px 0 0!important;border:0;border-top:1px solid #ffffff33;background:none;box-shadow:none;overflow:visible}
#lobby.arena-hub .unified-setup>.hub-play-details>.screen-option{min-width:0;width:auto;max-width:100%;box-sizing:border-box;margin:0!important;padding:9px 12px!important;font-size:14px!important;white-space:normal}
#lobby.arena-hub .unified-setup :is(#enterBattle,#start){grid-column:1/-1;box-sizing:border-box;min-width:0;width:100%!important;max-width:100%;min-height:56px!important;height:auto;margin:0!important;padding:12px 16px;transform:none!important;white-space:normal;line-height:1.2}
#lobby.arena-hub .unified-setup #partyReadyHint{grid-column:1/-1;margin:0}
#lobby.arena-hub .unified-setup .hub-play-details>p:empty{display:none}
/* Full-width navigation with larger, evenly distributed menu tabs. */
#lobby.arena-hub:not(.hub-home-screen)>.hub-nav{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr)) minmax(0,1.3fr);width:100%;box-sizing:border-box;gap:10px!important;padding:4px!important}
#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a,#lobby.arena-hub .hub-nav .hub-mastery{display:flex;align-items:center;justify-content:center;min-width:0;min-height:64px;padding:12px 8px;font-size:clamp(16px,1.35vw,24px);line-height:1.2;white-space:normal;text-align:center}
@media(max-width:1100px){#lobby.arena-hub:not(.hub-home-screen)>.hub-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px!important}#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a,#lobby.arena-hub .hub-nav .hub-mastery{min-height:48px;font-size:16px;padding:8px;display:flex}}
@media(max-height:650px) and (min-width:1101px){#lobby.arena-hub .hub-nav button,#lobby.arena-hub .hub-nav a,#lobby.arena-hub .hub-nav .hub-mastery{min-height:48px;font-size:18px;padding:8px}}
#lobby .arena-home-footer .home-tiers{background:linear-gradient(125deg,#d7ac48,#755019);border:2px solid #ffe499;color:#fff7d6;font-weight:900}
#lobby .arena-home-footer{flex-wrap:wrap}
/* Adventures use the same bounded collection and separate tier popup as singles. */
#lobby.arena-hub [data-hub-pane=collection]>.section-head{margin:0!important;min-height:24px;align-items:center}
#lobby.arena-hub [data-hub-pane=collection]>.section-head h2{margin:0;font:800 14px Arial,sans-serif}
#lobby.arena-hub [data-hub-pane=collection]>.section-head span{font:700 12px Arial,sans-serif}
#lobby.arena-hub [data-hub-pane=collection]>.tabs{margin:0!important;flex:none;gap:8px}
#lobby.arena-hub [data-hub-pane=collection]>.tabs button{min-height:38px;padding:8px!important;font:800 14px Arial,sans-serif!important}
#lobby.arena-hub [data-hub-pane=collection]>.screen-option{align-self:flex-start;margin:0!important;padding:8px 14px!important;min-height:36px}
.screen-popup.tier-popup{box-sizing:border-box;height:min(820px,94dvh);max-height:94dvh!important;overflow:hidden!important;padding:16px}
.screen-popup.tier-popup[open]{display:flex;flex-direction:column;gap:8px}
.tier-popup>.screen-close{position:absolute;top:12px;right:12px;z-index:1}
.tier-popup>h2{font-size:24px;margin:0;padding-right:120px;flex:none}
.tier-popup .screen-popup-body,.tier-popup .hub-tiers,.tier-popup #tierList{display:flex;flex-direction:column;flex:1;min-height:0;gap:8px;overflow:hidden}
.tier-popup .hub-tiers{margin:0;padding:0;border:0}
.tier-popup #tierList{padding:0;border:0;background:none}
.tier-popup .tier-heading{display:none}
.tier-popup #tierList>p{flex:none;margin:0;font:14px/1.35 Arial,sans-serif;max-width:none}
.tier-popup #tierList>.tier-footnote{font-size:12px}
.tier-popup .tier-filter,.tier-popup .tier-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}
.tier-popup .tier-filter button{flex:1}
.tier-popup .tier-filter [aria-pressed=true]{border-color:#ffe18b!important;background:#73561e!important}
.tier-popup .tier-row:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0;margin:0;border:0}
.tier-popup .tier-grid{flex:1;min-height:0;padding:3px;grid-auto-rows:minmax(0,1fr)}
.tier-popup .tier-card:not([hidden]){display:flex;flex-direction:column;min-height:0;overflow:hidden}
.tier-popup .tier-card .tier-pick{flex:1;min-height:0;height:auto;padding:8px!important}
.tier-popup .tier-pick img{height:70px;width:65px}
.tier-popup .tier-pick span>span{font:14px/1.3 Arial,sans-serif}
.tier-popup .tier-team-actions{flex:none;min-height:44px;padding:4px 8px}
.tier-popup .tier-team-actions button{padding:4px 12px!important;min-height:36px!important}
.tier-popup .tier-pager span{font:14px Arial,sans-serif}
@media(max-height:650px){.tier-popup #tierList>.tier-footnote{display:none}.tier-popup .tier-pick img{height:50px;width:48px}.tier-popup .tier-pick small,.tier-popup .tier-pick span>span{font-size:12px}.tier-popup .tier-pick b{font-size:15px}}
