
*{box-sizing:border-box}
:root{--ink:#101c2d;--gold:#e8bf72;--cream:#f5ecd2;--mint:#a8dd8b}
body{margin:0;background:#0c1421;color:var(--cream);font:14px "Trebuchet MS",system-ui,sans-serif}
button{font:inherit;cursor:pointer}button:focus-visible,[tabindex]:focus-visible{outline:3px solid #f4d887;outline-offset:4px}
header{padding:10px 20px;display:flex;align-items:center;justify-content:space-between}
.brand{font-size:21px;font-weight:1000;letter-spacing:3px;color:#f5d994;text-shadow:0 3px #050a12}.brand span{color:#b9e490}
.tag{font-size:9px;font-weight:800;letter-spacing:1.5px;color:#c5d1d9;background:#192737;border:2px solid #080e19;border-radius:20px;padding:6px 12px}
main{padding:0 14px 12px}.top{display:flex;justify-content:space-between;align-items:center;margin:0 4px 10px}
h1{font-size:22px;margin:2px 0;font-weight:900;letter-spacing:-.5px}.eyebrow{font-size:10px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:#adcaa7}.subtitle{color:#8dabae;font-size:12px;margin:3px 0}
.timer{text-align:right;font:bold 26px ui-monospace,monospace;color:#f2dda9}.timer small{display:block;font:800 9px "Trebuchet MS",sans-serif;letter-spacing:2px;color:#8fa8b3;margin-bottom:4px}
.arena{position:relative;height:calc(100dvh - 175px);min-height:420px;border:3px solid #091320;border-radius:18px;overflow:hidden;background:#101e27;box-shadow:0 0 0 2px #536476,0 8px 0 #070e19}
#game{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}
.hud{position:absolute;left:16px;right:16px;top:14px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;gap:12px}
.health{width:210px;background:#152334e8;border:3px solid #080f1c;border-radius:13px;padding:9px 12px;box-shadow:0 3px #0004}
.hudlabel{font-size:10px;font-weight:900;letter-spacing:.6px;display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;color:#f6e5bf}
.track{height:10px;background:#080e1b;border:2px solid #080e1b;border-radius:8px;overflow:hidden}
.fill{height:100%;background:#ef8d79;border-top:2px solid #ffc9a9;border-radius:5px;width:100%;transition:width .12s}
.hudright{font-size:11px;font-weight:900;color:#f8e2ac;background:#152334e8;border:3px solid #080f1c;border-radius:12px;padding:10px 13px;box-shadow:0 3px #0004}
.xp-track{position:absolute;bottom:0;left:0;right:0;height:10px;background:#0a1721;border-top:2px solid #07111b;pointer-events:none}
.xpbar{height:100%;width:0;background:#9eec8e;border-top:2px solid #ddffc4;box-shadow:0 0 14px #83f39b;transition:width .12s}
.overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background:#07111dda;padding:24px;overflow-y:auto}
.overlay.hidden{display:none}
.panel{max-width:800px;text-align:center;width:100%;margin:auto;background:#e8dfc4;color:#243142;border:5px solid #101b2b;border-radius:25px;padding:25px 28px 23px;box-shadow:0 0 0 2px #b7a987,0 12px 0 #050b1699,inset 0 3px #fff9e0;animation:panel-in .2s ease-out}
.panel .eyebrow{color:#658069}.panel p{color:#5a675f;line-height:1.5;max-width:560px;margin:0 auto 18px;font-size:13px}
h2{font-size:35px;letter-spacing:-1px;margin:7px 0 12px;font-weight:1000;line-height:1.05}
.menu-title{font-size:49px;letter-spacing:3px;color:#25384a;text-shadow:0 3px #fff6d6;margin:2px 0 8px}
.menu-emblem{display:flex;justify-content:center;height:48px;margin:-7px 0 7px}.menu-emblem .item-icon{width:58px;height:58px}
.primary{background:#a9d787;color:#1c3428;border:3px solid #263d32;border-radius:13px;padding:12px 28px;font-weight:1000;font-size:15px;box-shadow:0 5px #263d32,inset 0 3px #d4efb2;transition:transform .12s,box-shadow .12s}
.primary:hover{background:#bde699;transform:translateY(-2px);box-shadow:0 7px #263d32,inset 0 3px #e0f5bf}.primary:active{transform:translateY(3px);box-shadow:0 2px #263d32}
.quiet{border:2px solid #536675;background:#1a293b;color:#d2ddcc;border-radius:9px;padding:7px 12px;font-weight:800;box-shadow:0 2px #050c16}
.panel .quiet{border-color:#758575;background:#d4dabc;color:#37483c;box-shadow:0 2px #758575}
.quiet:disabled{opacity:.45;cursor:default}.hint{font-size:11px;color:#697b6a;margin-top:16px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.card{position:relative;text-align:left;background:#f4eedb;border:3px solid #a3ae92;padding:17px 15px;border-radius:17px;color:#253b3c;box-shadow:0 4px #8c987e;transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-4px);border-color:#55715c}.card:active{transform:translateY(1px)}
.card b{display:block;margin:8px 0;font-size:17px;font-weight:1000}.card span{display:block;font-size:12px;line-height:1.5;color:#65715e}
.card small{display:block;font-size:9px;line-height:1.4;font-weight:900;letter-spacing:.5px;color:#718466;margin-top:12px}
.hero-card{text-align:center;padding:10px 10px 15px;background:#dbe6c9}
.hero-card[data-hero="1"]{background:#d2e3e8}.hero-card[data-hero="2"]{background:#e0d7e9}
.hero-card[aria-pressed=true]{border-color:#806a37;box-shadow:0 4px #806a37,inset 0 0 0 2px #f6dc8c}
.hero-card canvas{width:124px;height:124px;max-width:100%;display:block;margin:0 auto;image-rendering:auto}
.hero-card .hero-status{font-size:8px;letter-spacing:.8px;font-weight:1000;color:#617666}.hero-card[aria-pressed=true] .hero-status{color:#896724}
.hero-card b{margin:0 0 4px}.hero-card small{margin-top:8px}
.menu-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:20px;font-size:11px;color:#647061;align-items:center}
kbd{font:800 10px "Trebuchet MS",sans-serif;border:2px solid #4b6259;border-bottom-width:3px;border-radius:5px;padding:3px 5px;color:#d4e2c1;background:#192b32}
.menu-controls kbd{background:#fbf4db;color:#53634d;border-color:#a6b29a}
.item-icon{display:inline-block;flex-shrink:0;width:48px;height:48px;object-fit:contain;vertical-align:middle}
.card .item-icon{width:64px;height:64px}.card .choice-key{position:absolute;right:12px;top:12px;width:23px;height:23px;background:#dce5c5;border:2px solid #a5b092;border-radius:8px;text-align:center;font-weight:1000;color:#5d7158}
.upgrade-stat{font-size:11px;font-weight:800;color:#72806b;margin-bottom:15px}
.bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 2px 10px;color:#8faba9;font-size:11px}.keys{display:flex;align-items:center;gap:5px}.actions{display:flex;gap:8px}
.build{display:flex;flex-wrap:wrap;gap:7px;min-height:30px;margin-bottom:8px;font-size:11px;color:#b7c5b6}.build span{display:inline-flex;align-items:center;gap:5px;background:#192939;border:2px solid #314555;border-radius:9px;padding:3px 7px}.build b{color:#d4e7a7}.build .item-icon{width:25px;height:25px}
.footer{display:flex;flex-wrap:wrap;gap:20px;font-size:10px;color:#789496;border-top:1px solid #263949;padding-top:8px}.footer strong{color:#afc1b0;font-weight:800}
.boss-hud{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:32%;min-width:180px;pointer-events:none;text-align:center;color:#f5c6a4;font-size:11px;font-weight:900;letter-spacing:.5px;text-shadow:0 2px #080c19}
.boss-hud .track{margin-top:7px;height:12px;border:3px solid #101528;background:#20152a}.boss-hud #bossHealth{height:100%;width:100%;background:#d58a9a;border-top:2px solid #f9b6ae}
.notice{position:absolute;bottom:23px;left:15%;right:15%;text-align:center;pointer-events:none;font-size:12px;font-weight:800;color:#eedcaa;background:#111d2ee8;border:2px solid #52614e;border-radius:12px;padding:9px}.notice:empty{display:none}
.equipment-rail{position:absolute;top:96px;left:15px;display:flex;flex-direction:column;gap:8px;z-index:2}
.equipment-slot{position:relative;width:51px;height:51px;border:3px solid #817049;border-radius:13px;background:#1b2c3cef;box-shadow:0 3px #0a101c,inset 0 1px #a29871}
.equipment-slot .item-icon{width:45px;height:45px}.equipment-slot>b{position:absolute;right:-3px;bottom:-3px;font:900 11px "Trebuchet MS",sans-serif;color:#223624;background:#d5de9c;border:2px solid #182827;border-radius:7px;padding:0 4px}
.equipment-tip{display:none;position:absolute;left:58px;top:0;width:205px;padding:10px;background:#ece3c9;border:3px solid #152438;border-radius:12px;color:#334c3f;font-size:12px;line-height:1.5;pointer-events:none}
.equipment-slot:hover .equipment-tip,.equipment-slot:focus .equipment-tip{display:block}.sigil{font-size:38px;color:#708954}
@keyframes panel-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:600px){header{padding:9px 12px}.brand{font-size:17px;letter-spacing:2px}.tag{font-size:8px;padding:5px 8px}.top .eyebrow,.subtitle,.top h1{display:none}.top{height:35px}.timer{font-size:21px;display:flex;align-items:center;gap:10px}.timer small{margin:0}.arena{height:calc(100dvh - 140px);min-height:360px;border-radius:13px}main{padding:0 6px}.overlay{padding:10px}.panel{padding:17px 10px;border-radius:19px;border-width:3px}.menu-title{font-size:34px}.menu-emblem{height:30px}.menu-emblem .item-icon{width:40px;height:40px}.panel p{font-size:11px;margin-bottom:10px}h2{font-size:27px}.cards{gap:7px;margin:14px 0}.card{padding:10px 7px;border-width:2px;border-radius:12px}.card b{font-size:13px}.card span{font-size:10px}.card small{font-size:8px;letter-spacing:0}.hero-card canvas{width:90px;height:90px}.hero-card .hero-status{font-size:6px;letter-spacing:0}.card .item-icon{width:46px;height:46px}.card .choice-key{right:5px;top:5px;width:19px;height:19px;font-size:10px}.menu-controls{gap:9px;font-size:9px;margin-top:15px}.primary{padding:10px 16px;font-size:13px}.hud{left:8px;right:8px;top:9px}.health{width:151px;padding:7px 8px}.hudlabel{font-size:8px}.hudright{font-size:9px;padding:9px 7px}.boss-hud{top:71px;width:45%;min-width:160px;font-size:9px}.equipment-rail{left:8px;top:81px;gap:6px}.equipment-slot{width:37px;height:37px;border-width:2px;border-radius:10px}.equipment-slot .item-icon{width:33px;height:33px}.equipment-tip{left:41px}.bottom{flex-wrap:wrap;gap:7px}.keys{font-size:10px}.footer{gap:10px}.notice{font-size:10px;left:17%;right:8%}}
@media(max-height:650px) and (min-width:601px){.panel{padding:14px 22px}.menu-emblem{display:none}.menu-title{font-size:36px}.hero-card canvas{width:92px;height:92px}.cards{margin:12px 0}.panel p{margin-bottom:10px}.menu-controls{margin-top:13px}}
@media(prefers-reduced-motion:reduce){.panel{animation:none}button,.fill,.xpbar{transition:none}}

.panel{position:relative}.panel-menu{max-width:760px;padding:20px 24px}.panel-menu .menu-title{font-size:42px}.panel-menu .menu-emblem{position:absolute;top:18px;left:24px;margin:0}.panel-menu .hero-card canvas{width:104px;height:104px}.panel-menu .cards{margin:14px 0 18px}.panel-menu .menu-controls{margin-top:17px}
@media(max-width:600px){.panel-menu{padding:17px 10px}.panel-menu .menu-title{font-size:34px}.panel-menu .menu-emblem{display:none}.panel-menu .hero-card canvas{width:85px;height:85px}.panel-menu .eyebrow{font-size:8px;letter-spacing:1px}}
@media(max-height:650px) and (min-width:601px){.panel-menu{padding:14px 22px}.panel-menu .menu-title{font-size:36px}.panel-menu .hero-card canvas{width:85px;height:85px}.panel-menu .menu-controls{margin-top:13px}}
.hero-cards{grid-template-columns:repeat(5,minmax(0,1fr))}.panel-menu{max-width:1030px}.hero-card[data-hero="3"]{background:#d8cde4}.hero-card[data-hero="4"]{background:#ece1bd}.hero-card[aria-pressed=true]{border-color:#806a37}.boss-hud #bossHp{font:900 11px ui-monospace,monospace;color:#ffe4a0;margin-top:4px}.boss-hud #bossHealth{background:#e8bf68;border-top-color:#ffeab1}.boss-hud .track{margin-top:4px}
@media(max-width:820px){.hero-cards{display:flex;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.hero-cards .hero-card{flex:0 0 139px;scroll-snap-align:center}.hero-cards::-webkit-scrollbar{height:7px}.hero-cards::-webkit-scrollbar-thumb{background:#899c7b;border-radius:5px}}

#talents{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:12px}#talents .item-icon{width:27px;height:27px;margin:0}.panel-talents{max-width:980px!important;max-height:calc(100% - 24px);overflow:auto}.talent-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;text-align:left}.talent-branches h3{text-align:center;color:#385847;margin:8px}.talent-node{display:block;width:100%;min-height:130px;text-align:left;border:3px solid #a2b897;border-radius:14px;background:#e9dfbc;color:#263d3a;padding:12px;box-shadow:0 4px 0 #162c32}.talent-node .item-icon{float:left;width:43px;height:43px;margin:0 8px 4px 0}.talent-node b,.talent-node span,.talent-node small{display:block}.talent-node span{clear:both;font-size:13px;padding-top:5px}.talent-node small{font-size:11px;margin-top:6px}.talent-node:disabled{opacity:.7;cursor:default}.talent-node.locked{background:#a8b4ae;border-color:#6b827a;opacity:.75}.talent-link{text-align:center;color:#7b6895;font-size:24px;line-height:28px}.talent-actions{margin-top:20px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}@media(max-width:650px){.talent-branches{gap:7px}.talent-node{padding:7px;min-height:170px}.talent-node b{font-size:12px}.talent-node span{font-size:11px}.panel-talents h2{font-size:25px}}

@media(max-width:650px){.talent-branches{grid-template-columns:1fr;gap:24px}.talent-node{min-height:104px;padding:12px}.talent-node b{font-size:14px}.talent-node span{font-size:13px}.talent-branches h3{font-size:19px}.talent-actions{position:sticky;bottom:-18px;background:#e8dfc4;border-top:2px solid #b8baa0;padding:12px 0;margin-bottom:0}}
.wave-badge{position:absolute;right:17px;top:56px;pointer-events:none;color:#ffe5ac;background:#172637eb;border:2px solid #817451;border-radius:9px;padding:6px 10px;font-weight:900;font-size:12px;letter-spacing:1px}
.upgrade-toast{position:absolute;top:112px;left:50%;transform:translateX(-50%);width:min(410px,calc(100% - 36px));display:flex;align-items:center;gap:12px;padding:12px 16px;background:#e9dfbf;color:#263c39;border:3px solid #17253a;border-radius:15px;box-shadow:0 0 0 2px #b6d19a,0 5px 0 #08121b99;pointer-events:none;visibility:hidden;opacity:0;z-index:2}.upgrade-toast .item-icon{width:48px;height:48px;flex-shrink:0;margin:0}.upgrade-toast small,.upgrade-toast strong,.upgrade-toast span{display:block}.upgrade-toast small{font-size:9px;letter-spacing:1px;color:#537249;font-weight:900}.upgrade-toast strong{font-size:16px;margin:3px 0}.upgrade-toast span{font-size:12px;line-height:1.4}
.wave-banner{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);text-align:center;color:#fff0c5;background:#142337ee;border:3px solid #d2b676;border-radius:16px;padding:14px 42px;min-width:240px;box-shadow:0 5px 0 #060c18aa;pointer-events:none;visibility:hidden;opacity:0;z-index:2}.wave-banner small,.wave-banner strong,.wave-banner span{display:block}.wave-banner small{font-size:10px;letter-spacing:3px;color:#badd9c}.wave-banner strong{font-size:38px;letter-spacing:3px;margin:3px 0}.wave-banner span{font-size:12px;color:#e7d9b7}.notice{top:auto;bottom:42px}
@media(max-width:600px){.wave-badge{right:8px;top:49px;font-size:10px;padding:4px 7px}.upgrade-toast{top:144px;padding:9px 12px;gap:8px}.upgrade-toast strong{font-size:14px}.upgrade-toast span{font-size:11px}.wave-banner{top:59%;padding:10px 25px}.wave-banner strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){.upgrade-toast{transform:translateX(-50%)!important}.wave-banner{transform:translate(-50%,-50%)!important}}
/* Keep announcements above the central combat view. */
.upgrade-toast{top:12px;width:min(410px,calc(100% - 500px))}
.wave-banner{top:88px;transform:translate(-50%,0)!important;padding:8px 26px;min-width:210px}
.wave-banner strong{font-size:26px;margin:1px 0}
@media(max-width:900px){.upgrade-toast{top:73px;width:min(410px,calc(100% - 36px))}.wave-banner{top:188px}}
@media(max-width:600px){.upgrade-toast{top:72px;padding:7px 10px}.upgrade-toast .item-icon{width:34px;height:34px}.wave-banner{top:176px;padding:6px 18px}.wave-banner strong{font-size:23px}}
.minimap-shell{position:absolute;right:12px;top:10px;width:166px;padding:7px;background:#152c30ed;border:3px solid #0a1824;border-radius:14px;box-shadow:0 0 0 1px #adbc86,0 4px 0 #07111d99;pointer-events:none;z-index:1}.minimap-heading{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.5px;color:#ecdcad;padding:0 2px 5px}.minimap-heading span{color:#b7d2ad;letter-spacing:0}.minimap-shell canvas{display:block;width:100%;height:auto;border:1px solid #668674;border-radius:7px;background:#233e35}.minimap-legend{display:flex;justify-content:space-between;font-size:7px;letter-spacing:1px;padding:5px 2px 0;color:#efffc4}.minimap-legend span+span{color:#df8c80}.hudright{margin-right:184px}.wave-badge{right:196px}
@media(max-width:600px){.minimap-shell{width:111px;right:8px;top:8px;padding:5px;border-width:2px;border-radius:11px}.minimap-heading{font-size:6px;letter-spacing:.7px}.minimap-legend{font-size:6px;letter-spacing:0}.hudright{position:absolute;left:0;top:62px;margin:0;padding:5px 7px}.wave-badge{right:auto;left:8px;top:107px}.boss-hud{top:149px}.upgrade-toast{top:210px}.wave-banner{top:316px}}
@media(max-width:600px){.upgrade-toast{position:fixed;top:8px;width:calc(100% - 24px);z-index:5}.wave-banner{top:176px}}
/* Moonlit interface: dark surfaces with readable, muted highlights. */
.panel{background:#111b2b;color:#d7e2dc;border-color:#080e19;box-shadow:0 0 0 2px #425466,0 12px 0 #03071199,inset 0 2px #2e4053}
.menu-title{color:#d8e5cf;text-shadow:0 3px #050a12}.panel .eyebrow{color:#9fbcaa}.panel p,.hint,.menu-controls,.upgrade-stat{color:#a7b8b1}
.card,.hero-card,.hero-card[data-hero],.talent-node{background:#1a2935;color:#dbe5da;border-color:#405463;box-shadow:0 4px #070e18}
.hero-card[data-hero="1"]{background:#192b38}.hero-card[data-hero="2"],.hero-card[data-hero="3"]{background:#262438}.hero-card[data-hero="4"]{background:#302d28}
.card:hover{border-color:#91bca0}.card span,.card small{color:#aabbaf}.hero-card .hero-status{color:#9bbca6}.hero-card[aria-pressed=true]{border-color:#b99c61;box-shadow:0 4px #060b13,inset 0 0 0 1px #806c46}.hero-card[aria-pressed=true] .hero-status{color:#dec68e}
.primary{background:#305546;color:#e1ecd4;border-color:#182b26;box-shadow:0 5px #091710,inset 0 2px #537863}.primary:hover{background:#3d6652;box-shadow:0 7px #091710,inset 0 2px #638a70}
.panel .quiet,.menu-controls kbd,.card .choice-key{background:#20313e;color:#c7dbcb;border-color:#52685d;box-shadow:0 2px #08111c}
.talent-node.locked{background:#18212c;border-color:#34404e;color:#9baca8}.talent-branches h3{color:#b1ccb6}.talent-actions{background:#111b2b;border-color:#354a50}
.equipment-tip,.upgrade-toast{background:#142330;color:#dae3d5;border-color:#415a5b}.upgrade-toast small{color:#9bc9a7}.equipment-slot>b{background:#314d41;color:#e0eacc}
.hudright{margin-right:0}.wave-badge{right:17px}
@media(max-width:600px){.hudright{position:static;margin:0;padding:9px 7px}.wave-badge{left:auto;right:8px;top:49px}.boss-hud{top:81px}.wave-banner{top:144px}}
/* Phone landscape: prioritize the arena and keep menus scrollable. */
@media(orientation:landscape) and (max-height:520px){
 body{overflow:hidden}header,.top,.build,.footer,.bottom .keys{display:none}main{padding:4px max(6px,env(safe-area-inset-right)) 0 max(6px,env(safe-area-inset-left))}
 .arena{height:calc(100dvh - 42px);min-height:0;border-radius:10px}.bottom{padding:5px 0;margin:0;justify-content:flex-end}.bottom .quiet{padding:3px 10px;font-size:10px}
 .hud{top:7px;left:8px;right:8px}.health{width:164px;padding:5px 8px}.hudlabel{font-size:8px;margin-bottom:4px}.track{height:8px}.hudright{position:static;margin:0;padding:6px 9px;font-size:9px}
 .wave-badge{top:39px;right:8px;left:auto;font-size:9px;padding:4px 6px}.equipment-rail{top:62px;left:8px;gap:4px}.equipment-slot{width:33px;height:33px;border-width:2px}.equipment-slot .item-icon{width:29px;height:29px}
 .boss-hud{top:7px;min-width:160px;width:28%}.upgrade-toast{position:absolute;top:53px;width:min(360px,calc(100% - 230px));padding:6px 9px}.upgrade-toast .item-icon{width:30px;height:30px}.upgrade-toast strong{font-size:12px}.upgrade-toast span{font-size:10px}.wave-banner{top:107px;padding:5px 18px}.wave-banner strong{font-size:20px}
 .overlay{padding:10px;align-items:flex-start}.panel{padding:12px 16px;margin:auto;max-height:none}.panel-menu .menu-emblem,.menu-controls{display:none}.panel-menu .menu-title{font-size:27px}.panel p{font-size:11px;margin-bottom:6px}.panel-menu .cards{margin:8px 0 12px}.panel-menu .hero-card canvas{width:62px;height:62px}.hero-cards .hero-card{flex-basis:125px}.card{padding:7px 9px}.card b{font-size:13px}.card span{font-size:10px}.card small{font-size:8px;margin-top:4px}.primary{padding:7px 16px;font-size:12px}#talents{margin:8px}.panel-talents{max-height:none!important}.talent-branches{grid-template-columns:repeat(3,minmax(0,1fr))}.talent-actions{position:static}
}
/* The same exit control stays visible in native and mobile viewport fullscreen. */
body.game-fullscreen{overflow:hidden;background:#07101b}body.game-fullscreen header,body.game-fullscreen .top,body.game-fullscreen .build,body.game-fullscreen .footer,body.game-fullscreen .keys{display:none}
body.game-fullscreen main{padding:0 max(0px,env(safe-area-inset-right)) 0 max(0px,env(safe-area-inset-left))}body.game-fullscreen .arena{height:calc(var(--game-viewport,100dvh) - 42px - env(safe-area-inset-bottom));min-height:0;border-radius:0}body.game-fullscreen .bottom{height:42px;margin:0;padding:5px 10px;justify-content:flex-end}body.game-fullscreen .bottom .quiet{padding:4px 10px;font-size:11px}
.account-dialog[hidden]{display:none}.account-dialog{position:fixed;inset:0;z-index:30;background:#030913e8;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}.account-panel{position:relative;width:min(510px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:28px;background:#142232;border:2px solid #536a69;border-radius:18px;box-shadow:0 15px 70px #0009;color:#d9e3d6}.account-panel h2{font-size:26px;margin-top:20px}.account-panel p{line-height:1.6;color:#aebfba}.account-close{position:absolute;right:12px;top:10px}.account-actions{display:flex;flex-wrap:wrap;gap:9px}.account-message{color:#d4c697!important;font-size:12px}.google-signin{min-height:45px;margin-top:20px}.continue-cloud{display:block;margin:12px auto}.actions{flex-wrap:wrap}.account-panel button{min-height:36px}
@media(orientation:landscape) and (max-height:520px){.account-panel{padding:18px;max-height:calc(100dvh - 16px)}.account-panel h2{font-size:22px}.account-panel p{font-size:12px}.actions{gap:4px}.bottom .quiet{font-size:9px;padding:4px 6px}}
@media(max-width:600px){.actions{gap:4px}.actions .quiet{font-size:10px;padding:6px 7px}.actions #accountButton{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom{justify-content:flex-end}body.game-fullscreen .actions .quiet{font-size:9px;padding:4px 5px}body.game-fullscreen .actions{flex-wrap:nowrap}}
/* Compact announcements stay above the combat focus in either phone orientation. */
@media(pointer:coarse){.upgrade-toast{position:absolute;top:58px;left:50%;width:min(310px,calc(100% - 90px));padding:5px 8px;gap:6px;border-width:2px;border-radius:9px}.upgrade-toast .item-icon{width:24px;height:24px}.upgrade-toast small{font-size:7px;letter-spacing:.4px}.upgrade-toast strong{font-size:11px;margin:1px 0}.upgrade-toast span{font-size:9px;line-height:1.25}.wave-banner{top:7px;min-width:0;padding:4px 10px;width:144px;border-width:2px;border-radius:9px}.wave-banner small{font-size:7px;letter-spacing:1px}.wave-banner strong{font-size:17px;letter-spacing:1px}.wave-banner span{font-size:8px}.notice{bottom:auto;top:112px;left:20%;right:8%;padding:4px 7px;font-size:9px}}
@media(pointer:coarse) and (orientation:portrait){.wave-banner{top:58px}.upgrade-toast{top:113px}.boss-hud{top:170px}}
body.game-fullscreen main{padding-top:env(safe-area-inset-top)}body.game-fullscreen .arena{height:calc(var(--game-viewport,100dvh) - 42px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}
.phone-install-hint{position:fixed;left:12px;right:12px;bottom:calc(48px + env(safe-area-inset-bottom));z-index:40;background:#172b3c;color:#e3eacb;border:2px solid #77948b;border-radius:12px;padding:12px;font-size:12px;line-height:1.5;display:flex;gap:10px;align-items:center}.phone-install-hint button{flex-shrink:0}
@media(pointer:coarse) and (orientation:portrait){.wave-banner{top:7px;right:8px;left:auto;width:132px;transform:none!important}.upgrade-toast{top:58px;width:calc(100% - 32px)}.boss-hud{top:114px}}

.damage-meter{position:absolute;right:12px;bottom:18px;width:260px;z-index:2;background:#101c29e8;border:1px solid #53626b;border-radius:8px;padding:7px;color:#dae6e8;font-size:11px;font-variant-numeric:tabular-nums;box-shadow:0 3px 12px #0007}.damage-meter summary{cursor:pointer;font-weight:bold;font-size:11px}.meter-total{font-size:10px;color:#e7cd8a}.meter-caption{font-size:9px;color:#8ea8b2;margin:5px 0}.meter-rows{max-height:155px;overflow:auto;overscroll-behavior:contain}.meter-row{display:grid;grid-template-columns:minmax(0,1fr) 42px 43px;gap:5px;padding:4px;margin:2px 0;border-radius:3px;background:linear-gradient(90deg,var(--tint) var(--bar),#1b2a37 var(--bar));text-shadow:0 1px 2px #000}.meter-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meter-row b,.meter-row small{text-align:right}.meter-row small{color:#c0cfdb}.meter-empty{color:#8ea8b2;padding:5px}
@media(pointer:coarse){.damage-meter{width:185px;right:6px;bottom:max(14px,env(safe-area-inset-bottom));padding:4px;font-size:9px;opacity:.87}.damage-meter summary,.meter-total{font-size:9px}.meter-caption{font-size:8px}.meter-row{grid-template-columns:minmax(0,1fr) 30px 32px;padding:3px;gap:3px}.meter-rows{max-height:85px}.upgrade-panel{padding:10px!important;border-width:2px!important;border-radius:14px!important;max-width:650px}.upgrade-panel h2{font-size:21px;margin:4px 0 7px}.upgrade-panel p{font-size:10px;margin-bottom:7px}.upgrade-panel .cards{gap:7px;margin:8px 0;grid-template-columns:repeat(3,minmax(0,1fr))}.upgrade-panel .card{padding:8px 7px;border-width:2px;border-radius:10px}.upgrade-panel .card .item-icon{width:34px;height:34px}.upgrade-panel .card b{font-size:12px;margin:4px 0}.upgrade-panel .card span{font-size:10px;line-height:1.25}.upgrade-panel .card small{font-size:8px;margin-top:5px;letter-spacing:0}.upgrade-panel .choice-key,.upgrade-panel .hint{display:none}.upgrade-panel .upgrade-stat{font-size:9px;margin:5px}.upgrade-panel .quiet{padding:6px 10px;font-size:11px}.overlay:has(.upgrade-panel){padding:8px}}
@media(pointer:coarse) and (orientation:portrait){.upgrade-panel .cards{grid-template-columns:1fr}.upgrade-panel .card{padding:8px 9px 8px 54px;min-height:75px}.upgrade-panel .card .item-icon{position:absolute;left:9px;top:12px}.upgrade-panel .card b{margin-top:0}}
.potion-buffs{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:6px;pointer-events:none;z-index:2}.potion-buffs span{background:#101c29ee;border:1px solid currentColor;border-radius:6px;padding:5px 7px;font-size:10px;font-weight:bold}
@media(pointer:coarse){.potion-buffs{left:8px;transform:none;bottom:18px;flex-direction:column;gap:3px}.potion-buffs span{font-size:8px;padding:3px 5px}}
.adventure-menu{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}.adventure-menu select{background:#172b32;color:#e3ead5;border:1px solid #69866e;border-radius:8px;padding:10px;max-width:100%}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;max-height:45vh;overflow:auto;margin:20px 0;text-align:left}.achievement{padding:12px;background:#192b32;color:#a2aaa4;border-radius:8px}.achievement.earned{color:#ebd29a;border:1px solid #9b885d}.lobby-players{display:grid;gap:8px;margin:16px 0}.lobby-player{background:#192b32;padding:12px;border-radius:8px}.lobby-code{font-size:30px;letter-spacing:6px;color:#ebd29a}.lobby-input{padding:12px;border-radius:8px;background:#16262d;border:1px solid #69866e;color:white;text-transform:uppercase}.lobby-status{min-height:24px;color:#edc08d}.coop-status{position:absolute;bottom:25px;left:16px;color:#b4e7d4;font:12px system-ui;pointer-events:none}

.party-pause-notice{position:absolute;top:78px;left:50%;transform:translateX(-50%);z-index:30;max-width:85%;width:max-content;padding:10px 16px;border:1px solid #e8c77c;border-radius:10px;background:#152032f2;color:#ffe4a5;text-align:center;font:600 14px/1.5 system-ui;pointer-events:none;box-shadow:0 3px 16px #0006}.party-pause-notice[hidden]{display:none}

.partyFrames{pointer-events:none}
#partyFrames{position:absolute;top:76px;left:14px;width:230px;z-index:5;display:grid;gap:5px;pointer-events:none}
#partyFrames[hidden]{display:none}.party-frame{padding:7px 9px;background:#0c1927ed;border:1px solid #446356;border-radius:8px;color:#dbeedb}.party-frame strong{font-size:11px}.party-frame .track{height:7px;margin:4px 0}.party-stats{display:block;font-size:10px;line-height:1.4}.party-frame button{pointer-events:auto;font-size:10px;padding:4px;margin-top:4px}
.expedition-ready{position:absolute;z-index:8;left:50%;top:38%;transform:translate(-50%,-50%);display:grid;gap:12px;padding:20px;background:#102332f5;border:1px solid #7caa89;border-radius:14px;text-align:center;max-width:90%}.expedition-ready[hidden],.ability-bar[hidden]{display:none}
.ability-bar{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;gap:7px;z-index:7}.ability-button{background:#132538eF;border:1px solid #66877d;border-radius:8px;color:#e4f0dc;display:grid;justify-items:center;width:140px;padding:6px;font-size:11px}.ability-button img{width:35px;height:35px}.ability-button small{color:#d4c596}.ability-button.selected{outline:2px solid #eacd89}.mode-select{display:block;margin:12px}.mode-select select,.expedition-lobby-extra select{padding:9px;background:#122433;color:#dcead9;border:1px solid #66877d;border-radius:7px}.expedition-lobby-extra details{margin-top:15px;font-size:13px}.expedition-lobby-extra summary{cursor:pointer}
@media(max-width:650px){#partyFrames{width:155px;left:7px;gap:3px}.party-frame{padding:4px}.party-stats{font-size:9px}.ability-button{width:95px;font-size:9px}.ability-bar{bottom:28px}.party-pause-notice{top:52px;font-size:11px}}

/* Illustrated lobby: one coherent layout with raster frames and buttons. */
.panel.nightfall-lobby{max-width:1120px;padding:22px 26px;background:#111714;color:#d8dedb;border:1px solid #39433e;border-radius:12px;box-shadow:none;text-align:left}
.nightfall-lobby .lobby-heading{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 14px}.lobby-heading>img{width:68px;height:68px;object-fit:contain}.nightfall-lobby .lobby-heading h2{margin:0 0 6px;color:#dce2df;font-size:30px;letter-spacing:2px}.nightfall-lobby .lobby-heading p{margin:0;color:#bdccbc;font-size:12px}
.nightfall-lobby h3{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#aebbb3;margin:0 0 9px}.nightfall-lobby .hero-cards{gap:8px;margin:0 0 18px;grid-template-columns:repeat(5,minmax(0,1fr))}.nightfall-lobby .hero-card{background:#171d1a!important;border:1px solid #38433d;border-radius:8px;box-shadow:none;color:#d8dedb;padding:12px 8px;min-height:154px;text-align:center}.nightfall-lobby .hero-card[aria-pressed=true]{background:#25332b!important;border-color:#91a99a;outline:1px solid #91a99a;outline-offset:-1px}.nightfall-lobby .hero-card canvas{display:block;width:76px;height:76px;margin:auto}.nightfall-lobby .hero-status{font-size:8px;color:#9eb2a5}.nightfall-lobby .hero-card b{font-size:14px;margin:2px 0;display:block}.nightfall-lobby .hero-card span{font-size:10px;color:#bfcebf}.nightfall-lobby .hero-card small{font-size:9px;color:#a5b7aa;line-height:1.4;margin-top:4px}
.lobby-settings{display:grid;grid-template-columns:minmax(0,2fr) minmax(235px,1fr);gap:20px;align-items:start;margin:6px 0 18px}.lobby-expeditions,.lobby-combat{min-width:0}.lobby-biomes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.lobby-biome{padding:4px;border:1px solid #64796c;border-radius:7px;background:#121b16;color:#c7d1ca;min-width:0;overflow:hidden}.lobby-biome .lobby-biome-art{width:100%;height:58px;object-fit:cover;display:block;border-radius:4px}.lobby-biome b{display:block;font-size:10px;line-height:1.3;margin:5px 0;min-height:26px}.lobby-biome small{font-size:8px;color:#97ab9c;display:block;line-height:1.3}.lobby-biome[aria-pressed=true]{border-color:#728b7a;background:#25382d;box-shadow:inset 0 0 0 1px #728b7a}.lobby-biome:disabled{opacity:.48;cursor:not-allowed}.lobby-biome:disabled[aria-pressed=true]{opacity:1}
.lobby-attack-toggle{display:flex;align-items:center;gap:7px;width:100%;padding:5px 0;border:0;background:transparent;color:#dce2df;text-align:left}.lobby-attack-toggle>img{width:58px;height:58px;object-fit:contain}.lobby-toggle-label{display:grid;gap:5px;flex:1}.lobby-toggle-label b{font-size:14px}.lobby-toggle-label strong{font-size:10px;color:#a9beb0}.lobby-toggle-track{display:block;position:relative;flex:0 0 55px;height:31px;border-radius:20px;background:#19292c;box-shadow:inset 0 0 0 2px #555f59}.lobby-toggle-knob{position:absolute;width:21px;height:21px;left:5px;top:5px;border-radius:50%;background:#d7dfd9;transition:transform .18s}.lobby-attack-toggle[aria-checked=true] .lobby-toggle-track{background:#30483a}.lobby-attack-toggle[aria-checked=true] .lobby-toggle-knob{transform:translateX(24px)}.lobby-attack-toggle:disabled{cursor:default}.nightfall-lobby .lobby-combat p{font-size:11px;line-height:1.5;color:#b4c7b7;margin:6px 0 0;text-align:left}
.nightfall-lobby .lobby-sprite-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin:0!important;padding:12px 22px;border:1px solid #46524b;border-radius:7px;box-shadow:none;background:#232b26;color:#dce2df;text-shadow:none;font-weight:900;font-size:14px;line-height:1.2;transition:filter .12s,transform .12s}.lobby-sprite-button img{width:34px;height:34px;object-fit:contain;flex-shrink:0}.nightfall-lobby .lobby-sprite-button:hover{filter:brightness(1.16);transform:translateY(-1px)}.nightfall-lobby .lobby-sprite-button:active{transform:translateY(1px)}.lobby-main-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}.lobby-main-actions #start{font-size:16px}.lobby-secondary{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:10px}.nightfall-lobby .lobby-secondary .quiet:not(.lobby-sprite-button){display:flex;align-items:center;gap:6px;background:transparent;border:0;box-shadow:none;color:#c7d5bb;font-size:11px}.lobby-secondary img{width:25px;height:25px;object-fit:contain}.lobby-secondary .lobby-sprite-button{min-width:200px}
.lobby-invite{display:flex;align-items:center;justify-content:center;gap:20px;margin:10px 0 18px}.lobby-invite>span{font-size:10px;letter-spacing:2px;color:#b1c3b2}.lobby-invite .lobby-code{font-size:28px;color:#c6d3cb;user-select:all}.nightfall-lobby .lobby-invite button{background:#202b24;color:#d4dcd7;border-color:#698169}
.lobby-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.lobby-member{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;padding:10px;border:1px solid #38433d;border-radius:8px;background:#171d1a}.lobby-member canvas{width:90px;height:90px}.lobby-member b{font-size:14px}.lobby-member small{font-size:9px;color:#afc4af;margin-top:5px}.lobby-member.empty{opacity:.5}.lobby-member.empty img{width:76px;height:76px;object-fit:contain}
.lobby-party-settings{display:grid;grid-template-columns:1fr 1fr;max-width:700px;margin:0 auto 16px;gap:25px}.lobby-destination{display:flex;align-items:center;gap:12px}.lobby-destination canvas{width:115px;height:75px;object-fit:cover;border-radius:6px}.lobby-destination b{font-size:13px}.lobby-party-actions{display:flex;justify-content:center;gap:24px;align-items:center}.lobby-host-block{flex:1}.lobby-host-block button{width:100%}.lobby-join-block{display:grid;grid-template-columns:minmax(110px,1fr) minmax(130px,1fr);gap:7px;align-items:center;flex:1}.lobby-join-block label{grid-column:1/-1;font-size:11px;color:#c5d4ba}.lobby-join-block input{width:100%;min-width:0;min-height:44px}.lobby-party-actions #launchParty{min-width:330px}.nightfall-lobby .lobby-status{margin:4px auto;min-height:0;color:#cbb7b0}.nightfall-lobby .lobby-waiting{color:#bdc8c1;margin:14px auto}.lobby-history{margin:12px auto 0;max-width:750px;color:#bdcdbb;font-size:11px}.lobby-history summary{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.lobby-history summary img{width:26px;height:26px}.nightfall-lobby .lobby-history p{color:#bdcdbb;font-size:11px;margin:7px 0}
@media(max-width:900px){.lobby-settings{grid-template-columns:1fr}.lobby-combat{max-width:420px;width:100%;margin:auto}.nightfall-lobby .hero-cards{display:flex;overflow-x:auto}.nightfall-lobby .hero-card{flex:0 0 145px}.panel.nightfall-lobby{padding:18px;border-width:1px}.lobby-biome .lobby-biome-art{height:68px}}
@media(max-width:560px){.panel.nightfall-lobby{padding:10px 7px}.nightfall-lobby .lobby-heading h2{font-size:24px}.nightfall-lobby .lobby-heading p{font-size:10px}.lobby-heading>img{width:46px;height:46px}.nightfall-lobby .hero-card{flex-basis:125px;min-height:143px}.nightfall-lobby .hero-card canvas{width:64px;height:64px}.lobby-biomes{display:flex;overflow-x:auto;padding-bottom:7px}.lobby-biome{flex:0 0 95px}.lobby-main-actions{grid-template-columns:1fr 1fr;gap:5px}.nightfall-lobby .lobby-sprite-button{font-size:11px;min-height:58px;padding:10px 12px;gap:4px}.lobby-sprite-button img{width:27px;height:27px}.lobby-main-actions #start{font-size:15px}.lobby-roster{grid-template-columns:repeat(2,1fr);gap:6px}.lobby-member{min-height:135px}.lobby-member canvas{width:72px;height:72px}.lobby-party-settings{grid-template-columns:1fr;gap:12px}.lobby-destination{justify-content:center}.lobby-party-actions{flex-direction:column;gap:10px;align-items:stretch}.lobby-join-block{grid-template-columns:1fr 1fr}.lobby-invite{gap:10px;flex-wrap:wrap}.lobby-invite .lobby-code{font-size:24px}.lobby-party-actions #launchParty{min-width:0;width:100%}}

.nightfall-lobby .hero-card[aria-pressed=true] .hero-status{color:#b6c9bc}.nightfall-lobby .lobby-input{background:#101612;border-color:#4b5d50}.overlay:has(.nightfall-lobby){background:#050907a8}.nightfall-lobby button:focus-visible{outline:2px solid #a1b7a8;outline-offset:2px}

body:has(.nightfall-lobby) .brand,body:has(.nightfall-lobby) .top h1,body:has(.nightfall-lobby) .timer{color:#c8d2cc}body:has(.nightfall-lobby){background:#0b100e}.nightfall-lobby .lobby-heading>img{display:none}

.nightfall-lobby #start{background:#30483a;border-color:#667f6d}.nightfall-lobby #achievements{min-width:0;max-width:100%;overflow-wrap:anywhere;min-height:44px;font-size:13px}.nightfall-lobby .lobby-combat{padding:14px;border:1px solid #38433d;border-radius:8px;background:#171d1a}.nightfall-lobby .lobby-attack-toggle{box-shadow:none;min-height:44px}.nightfall-lobby .lobby-heading{padding-bottom:18px;margin-bottom:20px;border-bottom:1px solid #303a34}

/* Raised triangular ability controls with radial cooldowns. */
.ability-bar{bottom:90px;display:grid;grid-template-columns:64px 64px;grid-template-rows:64px 64px;gap:6px 14px;pointer-events:none}.ability-button{position:relative;display:block;width:64px;height:64px;padding:0;border-radius:50%;border:2px solid #65796c;background:#111b16;box-shadow:0 3px 10px #0008;pointer-events:auto;overflow:visible}.ability-button:first-child{grid-column:1/3;justify-self:center}.ability-button img{position:absolute;inset:4px;width:52px;height:52px;object-fit:contain;border-radius:50%}.ability-cooldown{position:absolute;inset:0;border-radius:50%;background:conic-gradient(#050a0de0 var(--cooldown,0deg),transparent 0deg);pointer-events:none}.ability-button .ability-timer{position:absolute;inset:0;display:grid;place-items:center;color:white;font:bold 21px/1 system-ui;text-shadow:0 1px 4px #000,0 0 5px #000;z-index:1}.ability-key{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);border:1px solid #7a8d80;border-radius:5px;background:#111a15;color:#e6eee8;min-width:20px;padding:2px 4px;font:700 11px/1 system-ui;z-index:2}.ability-button:disabled{opacity:1;cursor:default}.ability-button.selected{outline:2px solid #c4dfcd;outline-offset:3px}.ability-button:not(.cooling):disabled img{opacity:.5}
@media(max-width:650px),(max-height:650px){.ability-bar{bottom:72px;grid-template-columns:52px 52px;grid-template-rows:52px 52px;gap:5px 10px}.ability-button{width:52px;height:52px}.ability-button img{width:40px;height:40px}.ability-button .ability-timer{font-size:18px}}
@media(orientation:landscape) and (max-height:520px){.ability-bar{left:auto;right:18px;bottom:45px;transform:none}}

/* Party setup uses aligned headings and a shared action baseline. */
.nightfall-lobby .lobby-settings{align-items:start}.nightfall-lobby .lobby-settings .lobby-combat{padding:0;border:0;background:transparent;border-radius:0}.nightfall-lobby .lobby-settings .lobby-combat h3{margin:0 0 9px}.nightfall-party-lobby .lobby-party-actions{align-items:flex-end}.nightfall-party-lobby .lobby-join-block input{height:48px;min-height:48px}.nightfall-party-lobby .lobby-secondary{justify-content:flex-start;margin-top:24px;padding-top:16px;border-top:1px solid #303a34}.nightfall-party-lobby .lobby-secondary .lobby-sprite-button{min-width:0}.nightfall-party-lobby .lobby-join-block .lobby-sprite-button{min-height:48px;height:48px}
@media(max-width:560px){.nightfall-party-lobby .lobby-party-actions{align-items:stretch}}
.connection-debug{margin:10px 0;padding:10px 14px;border:1px solid #35433c;border-radius:8px;background:#111815;color:#c8d5cc;font-size:12px}.connection-debug summary{cursor:pointer}.connection-debug p{max-width:750px}.connection-debug pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}.connection-debug button{margin:4px 0;padding:8px 12px}
.game-fullscreen .connection-debug{position:fixed;bottom:65px;right:12px;z-index:100;max-height:65vh;overflow:auto;width:min(520px,calc(100vw - 24px));box-sizing:border-box}.game-fullscreen .connection-debug:not([open]){display:none}

.performance-hud{position:absolute;right:17px;top:94px;max-width:calc(100% - 34px);font:10px/1.4 monospace;color:#c8d5cc;background:#0b1215d9;border:1px solid #34433b;border-radius:4px;padding:4px 7px;z-index:2;pointer-events:auto}.performance-hud[hidden]{display:none}@media(max-width:600px){.performance-hud{right:8px;top:78px;font-size:9px}}

.player-profile-dialog{background:#111b18;color:#e0e8e2;border:1px solid #4b6054;border-radius:12px;max-width:min(700px,92vw);padding:24px}.player-profile-dialog::backdrop{background:#000b}.player-profile-dialog form{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.player-profile-dialog input{background:#080f0d;color:#fff;border:1px solid #627469;padding:10px}.profile-characters{display:flex;flex-wrap:wrap;gap:8px}.profile-characters button{width:110px;display:grid;justify-items:center}.profile-characters canvas{width:85px;height:85px}.profile-characters [aria-pressed="true"]{outline:2px solid #91b99c}

.nightfall-lobby .lobby-heading{justify-content:space-between;flex-wrap:wrap;gap:12px}.nightfall-lobby .lobby-identity{margin-left:auto;align-self:flex-start;font-size:12px;line-height:1.5;color:#b9cbbf;text-align:right;overflow-wrap:anywhere;max-width:100%;padding-top:5px}@media(max-width:560px){.nightfall-lobby .lobby-identity{font-size:11px}}

.lobby-progression-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.nightfall-lobby .lobby-progression-actions .lobby-sprite-button{min-width:0;min-height:48px;font-size:13px}.nightfall-lobby .lobby-main-actions .lobby-sprite-button{font-size:16px}@media(max-width:560px){.lobby-progression-actions{gap:5px}.nightfall-lobby .lobby-main-actions .lobby-sprite-button{font-size:13px}}

.nightfall-lobby .lobby-identity{display:flex;align-items:center;gap:10px}.lobby-identity>div{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.nightfall-lobby .lobby-identity .profile-name-link{all:unset;display:inline;cursor:pointer;font:inherit;font-size:11px;line-height:1.5;color:#c7d5bb}.nightfall-lobby .lobby-identity .profile-name-link:hover{text-decoration:underline}.nightfall-lobby .lobby-identity .profile-name-link:focus-visible{outline:2px solid #91b99c;outline-offset:3px}.nightfall-lobby .lobby-identity .profile-name-link:disabled{opacity:.45;cursor:default}.lobby-avatar{position:relative;display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;overflow:hidden;background:#293b30;border:1px solid #58715f;color:#dce8df;font-size:18px}.lobby-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.profile-identity-links{display:flex;justify-content:flex-end;align-items:center;gap:12px}

/* Compact mobile notifications, separate from the upgrade choice panel. */
@media(pointer:coarse),(max-width:600px){
 .wave-banner{top:100px;left:50%;right:auto;transform:translateX(-50%)!important;width:140px;min-width:0;padding:3px 7px;border-width:1px;border-radius:6px;box-shadow:none}
 .wave-banner small{font-size:6px;letter-spacing:.5px}.wave-banner strong{font-size:12px;letter-spacing:.5px;margin:0}.wave-banner span{font-size:7px}
 .upgrade-toast{position:absolute;top:140px;left:50%;width:min(210px,calc(100% - 70px));padding:4px 6px;gap:5px;border-width:1px;border-radius:6px;box-shadow:none}
 .upgrade-toast .item-icon{width:19px;height:19px}.upgrade-toast small{font-size:6px;letter-spacing:0}.upgrade-toast strong{font-size:9px;margin:1px 0}.upgrade-toast span{font-size:8px;line-height:1.2}
 .notice{top:188px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:70%;padding:3px 6px;font-size:8px;line-height:1.2}
}
@media(pointer:coarse) and (orientation:portrait){.boss-hud{top:55px}}
@media(pointer:coarse) and (orientation:landscape){.wave-banner{top:43px}.upgrade-toast{top:80px}.notice{top:124px}}

@media(pointer:coarse),(max-width:600px){
 .wave-banner{top:48px;bottom:auto;right:8px;left:auto;transform:none!important}
 .upgrade-toast{top:86px;bottom:auto;right:8px;left:auto;transform:none!important}
 .notice{top:auto;bottom:12px;left:50%;right:auto;transform:translateX(-50%);max-width:85%}
}
@media(pointer:coarse) and (orientation:landscape){
 .wave-banner{top:8px;right:auto;left:50%;transform:translateX(-50%)!important}
 .upgrade-toast{top:46px;right:auto;left:50%;transform:translateX(-50%)!important}
 .notice{top:auto;bottom:12px}
}

.hud-stats-group{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.hud-stats-group .performance-hud{position:static;max-width:260px;flex:0 1 auto}.hud-stats-group .hudright{flex-shrink:0;white-space:nowrap}@media(max-width:600px){.hud{gap:5px}.hud>.health{flex:0 1 110px;min-width:85px}.hud-stats-group{gap:4px;flex:1}.hud-stats-group .performance-hud{font-size:8px;padding:3px;max-width:110px}.hud-stats-group .hudright{font-size:8px;padding:6px 4px}}

.loading-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(ellipse at center,#182a20 0%,#090f0c 65%);color:#d5e3d9;transition:opacity .25s}.loading-content{text-align:center;padding:24px;max-width:90vw}.loading-title{font-size:clamp(25px,6vw,38px);font-weight:900;letter-spacing:6px}.loading-content canvas{display:block;width:160px;height:160px;margin:12px auto}.loading-track{width:130px;height:3px;overflow:hidden;background:#253b2d;margin:16px auto;border-radius:3px}.loading-track span{display:block;width:45%;height:100%;background:#9abfa4;animation:loading-drift 1.3s ease-in-out infinite alternate}.loading-content p{font-size:12px;color:#afc3b4;margin:12px 0 24px}.loading-content small{display:block;font-size:12px;color:#82998a}.loading-content button{margin-top:18px}.loading-finished{opacity:0;pointer-events:none}@keyframes loading-drift{to{transform:translateX(125%)}}@media(prefers-reduced-motion:reduce){.loading-track span{animation:none}.loading-screen{transition:none}}
