/* Fixed world visibility, uniformly scaled; all controls stay in the gutters. */
body.is-core-conflict{overflow:hidden;background:#113d56}
body.is-core-conflict>.app-shell{pointer-events:none}
body.is-core-conflict .app-shell>.topbar,body.is-core-conflict .app-shell .match-bar,body.is-core-conflict .terrain-strip,body.is-core-conflict .player-strip,body.is-core-conflict .control-bar,body.is-core-conflict #touch-controls{display:none!important}
#core-ui{position:fixed;inset:0;z-index:20;color:#ecfff5;font-family:Nunito,system-ui,sans-serif;background:radial-gradient(ellipse at50% 20%,#246a7f,#103448 80%);overflow:hidden}
#core-ui.hidden{display:none}
.core-frame{position:absolute;inset:5px;border:2px solid #83e2df;border-radius:22px;pointer-events:none;box-shadow:inset 0 0 28px #4ee1d523}
#core-ui #game-layout{position:absolute!important;left:var(--core-x)!important;top:var(--core-y)!important;width:var(--core-w)!important;height:var(--core-h)!important;right:auto!important;bottom:auto!important;max-width:none!important;max-height:none!important;margin:0!important;z-index:1;display:block!important}
#core-ui .arena-wrap{position:relative;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:var(--core-aspect,15/9)!important;margin:0!important;border:0!important;border-radius:10px!important;overflow:hidden;box-shadow:0 0 0 3px #8fecdf,0 5px 0 #062a3e}
#core-ui #arena{display:block;width:100%;height:100%;touch-action:none}
#core-ui .arena-caption,#core-ui #skill-loadout,#core-ui #compact-loadout,#core-ui #ghost-alert,#core-ui #bubble-notice,#core-ui #lobby-arena-notice{display:none!important}
.core-header{position:absolute;left:var(--core-x);width:var(--core-w);top:5px;bottom:calc(100% - var(--core-y) + 3px);display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:3}
.core-team{width:36%;max-width:280px;display:grid;grid-template-columns:1fr auto;gap:2px 8px;color:#a6f1ff;font-size:clamp(11px,1.05vw,15px)}
.core-team.red{color:#ffc6a5;text-align:right}
.core-team strong{grid-column:1/-1;font-size:clamp(11px,1.1vw,16px);letter-spacing:.5px}.core-team em{font-style:normal;background:#092e45;padding:1px 6px;border-radius:6px;color:white}.core-team span{white-space:nowrap}
.core-health{height:6px;background:#062d43;border-radius:6px;overflow:hidden;align-self:center;min-width:30px}.core-health i{display:block;height:100%;background:#5fe2ee}.red .core-health i{background:#ffa077}
.core-phase{text-align:center;flex:none;display:flex;flex-direction:column;line-height:1.1}.core-phase small{font-size:clamp(10px,1vw,14px);font-weight:900;color:#9ef5d7}.core-phase b{font-size:clamp(20px,2.4vw,32px);font-variant-numeric:tabular-nums}
.core-left,.core-right{position:absolute;top:0;height:100%;width:var(--core-left);padding:12px;display:flex;flex-direction:column;align-items:center;z-index:3;box-sizing:border-box;pointer-events:none}.core-left{left:0}.core-right{left:var(--core-right-x);width:var(--core-right)}.core-left>*,.core-right>*{pointer-events:auto}
.core-brand{display:flex;align-items:center;gap:5px;justify-content:center;background:#174f65;border:1px solid #92cec9;border-radius:12px;color:#f9ffec;width:100%;padding:7px 3px;box-shadow:0 3px #082e46;font-weight:1000;font-size:clamp(10px,1.4vw,20px)}.core-brand b{background:#6cebdd;color:#0d4760;font-size:clamp(22px,3vw,36px);padding:0 6px;border-radius:9px;line-height:1.2}.core-brand small{display:block;letter-spacing:3px;font-size:clamp(6px,.7vw,10px)}

/* With the map and numeric hold panels removed, center the movement control in its rail. */
.core-movement{position:absolute;top:50%;left:0;width:100%;text-align:center;transform:translateY(-50%)}.core-stick{width:88px;height:88px;max-width:calc(100% - 16px);aspect-ratio:1;border:2px solid #739fab;border-radius:50%;background:radial-gradient(circle,#246a7b,#153d52);box-shadow:0 4px #082b40;position:relative;touch-action:none;color:#d8f7eb;user-select:none}.core-stick i{position:absolute;left:50%;top:50%;width:32px;height:32px;border-radius:50%;background:#6be0d4;border:2px solid #c2fff0;box-shadow:0 2px 3px #072f43;transform:translate(-50%,-50%);pointer-events:none}.core-stick span{position:absolute;font-size:12px;pointer-events:none}.core-stick span:nth-of-type(1){top:2px;left:43%}.core-stick span:nth-of-type(2){left:4px;top:39%}.core-stick span:nth-of-type(3){right:4px;top:39%}.core-stick span:nth-of-type(4){bottom:2px;left:43%}.core-movement small{display:block;font-size:10px;margin-top:8px;color:#b9d7dd}
.core-utility{position:absolute;bottom:17px;left:12px;width:calc(100% - 24px);min-height:34px;border:1px solid #78b9c4;border-radius:9px;background:#21576b;color:#effff4;font-size:12px;font-weight:900;box-shadow:0 3px #092b40;padding:5px 2px}
.core-tools{display:flex;gap:5px;justify-content:center}.core-tools button{width:36px;height:36px;border:1px solid #70a9ba;border-radius:10px;background:#245c71;color:#e5fff5;font-size:22px;box-shadow:0 3px #0a3043}.core-radio-slot{width:100%;margin-top:14px}
#core-ui #music-bar{position:static!important;width:100%!important;max-width:none;box-sizing:border-box;margin:0;padding:7px 4px;border-radius:10px;justify-content:center;flex-wrap:wrap;gap:4px;background:#144358}#core-ui .music-info{order:0;flex-basis:100%;text-align:center}#core-ui .music-info>span{font-size:7px;letter-spacing:.6px}#core-ui .music-info select{font-size:10px;width:100%;text-align:center;padding:2px 0}#core-ui .music-bar>button{width:32px;height:28px;order:1}#core-ui #music-volume{display:none}
.core-action-slot{position:absolute;top:43%;width:100%;left:0}#core-ui .touch-actions{position:static!important;width:100%!important;display:flex!important;flex-direction:column-reverse;align-items:center;gap:18px;pointer-events:auto}#core-ui .touch-bomb{width:80px;height:80px;font-size:12px}#core-ui .touch-skill{width:80px;height:56px;font-size:12px}#core-ui .touch-skill small{font-size:12px}
.core-footer{position:absolute;left:var(--core-x);top:calc(var(--core-y) + var(--core-h) + 9px);width:var(--core-w);text-align:center;display:grid;grid-template-columns:1fr auto;column-gap:10px;line-height:1.3}.core-footer strong{font-size:clamp(12px,1.2vw,17px);text-align:left;color:#ddffee}.core-footer span{font-size:clamp(11px,1vw,14px);grid-row:2;grid-column:1/-1;text-align:left;color:#bbddd9}.core-footer small{font-size:clamp(10px,1vw,14px);font-variant-numeric:tabular-nums;color:#ffe2a5}
.core-feedback{position:absolute;top:calc(var(--core-y) + 12px);left:calc(var(--core-x) + var(--core-w)*.15);width:calc(var(--core-w)*.7);padding:8px 12px;box-sizing:border-box;background:#13465aef;color:#ffedae;border:1px solid #ebd59a;border-radius:10px;text-align:center;font-size:13px;font-weight:900;z-index:4;pointer-events:none}.core-lifecycle{position:absolute;top:calc(var(--core-y) + var(--core-h)*.28);left:calc(var(--core-x) + var(--core-w)*.18);width:calc(var(--core-w)*.64);padding:14px;box-sizing:border-box;border:2px solid #9be8df;background:#123f53ed;border-radius:14px;text-align:center;z-index:5}.core-lifecycle strong{font-size:22px}.core-lifecycle p{font-size:13px;margin:6px 0}.core-lifecycle button{border:1px solid #d7ffde;border-radius:9px;background:#46dbcd;color:#08415a;font-weight:900;padding:9px 20px}
.core-markers{position:absolute;inset:0;pointer-events:none;z-index:4}.core-markers span{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:3px;border:1px solid #ffedb0;background:#124354e8;border-radius:12px;padding:2px 6px;color:#fff2ba;font-size:10px;font-weight:900;white-space:nowrap}.core-markers i{display:inline-block;font-size:18px;font-style:normal}
#core-ui .round-banner{max-width:600px;width:88%;max-height:96%;box-sizing:border-box;padding:14px 18px;overflow:auto}#core-ui .round-banner h2{font-size:clamp(22px,3vw,36px);margin:4px 0}#core-ui .round-banner p{font-size:13px;margin:6px 0}#core-ui .winner-dances{min-height:0;height:auto}#core-ui #winner-dances figure canvas,#core-ui #winner-dances figure .winner-idle-portrait{max-height:calc(var(--core-h)*.35)}#core-ui .round-banner .primary-button{min-height:34px;padding:8px}#core-ui #countdown{z-index:2;top:16%;bottom:auto;font-size:clamp(22px,3vw,40px);background:none;pointer-events:none}#core-ui #countdown small{font-size:12px}
#core-help{z-index:100;max-width:660px;max-height:90dvh;overflow:auto}#core-help p,#core-help li{font-size:14px;line-height:1.5}#core-help li{margin:12px 0}.is-core-conflict #toast{z-index:50}


@media(max-height:600px){.core-left,.core-right{padding:8px}.core-brand{padding:3px 1px;border-radius:9px}.core-tools{gap:3px}.core-tools button{width:32px;height:32px;font-size:18px}.core-radio-slot{margin-top:8px}.core-stick{width:64px;height:64px}.core-movement small{font-size:9px;margin-top:5px}.core-action-slot{top:43%}#core-ui .touch-actions{gap:12px}#core-ui .touch-bomb{width:64px;height:64px;font-size:10px}#core-ui .touch-skill{width:64px;height:44px}.core-utility{bottom:10px;left:8px;width:calc(100% - 16px);font-size:10px;min-height:32px}.core-team{gap:1px 3px}.core-team strong{font-size:10px}.core-team span{font-size:10px}.core-health{height:4px}.core-phase small{font-size:9px}.core-phase b{font-size:20px}.core-footer{top:calc(var(--core-y) + var(--core-h) + 7px);gap:1px 5px}.core-footer strong{font-size:12px}.core-footer span{font-size:11px;line-height:1.15}.core-footer small{font-size:10px}.core-feedback{font-size:12px;padding:5px 8px}.core-lifecycle{padding:10px}.core-lifecycle strong{font-size:18px}.core-lifecycle p{font-size:12px}.core-lifecycle button{min-height:32px;padding:5px 15px}#core-ui .round-banner{padding:9px 14px}#core-ui .round-banner p{font-size:11px}}
@media(max-height:600px){.core-header{top:6px;bottom:calc(100% - var(--core-y) + 4px)}.core-team strong{font-size:12px;line-height:14px;letter-spacing:0}.core-team span{font-size:11px;line-height:13px}.core-team em{padding:1px 4px}.core-footer{top:calc(var(--core-y) + var(--core-h) + 5px);grid-template-rows:14px 14px;line-height:14px;gap:0 5px}.core-footer strong{font-size:13px;line-height:14px}.core-footer span{font-size:11px;line-height:14px}.core-footer small{grid-column:2;grid-row:1;line-height:14px}}
@media(max-width:760px) and (max-height:600px){.core-tools{display:grid;grid-template-columns:32px 32px;gap:3px}.core-tools button:last-child{grid-column:1/-1;width:100%;height:32px}.core-radio-slot{margin-top:6px}#core-ui #music-bar{padding:5px 2px}#core-ui .music-info>span{font-size:6px;white-space:nowrap}#core-ui .music-info select{font-size:9px}.core-brand{gap:2px}.core-brand b{padding:0 4px}.core-brand small{letter-spacing:1px}}
.core-footer small,.core-phase small{font-size:13px}
.core-hero-info{border:1px solid #7bc8cc;border-radius:12px;padding:0 14px;background:#e6fff7;color:#164d60}.core-hero-info h3{margin-bottom:0}#core-ui .touch-skill{min-height:56px;padding:6px 3px}#core-ui .touch-skill #touch-skill-name{font-size:12px;line-height:14px}
@media(max-height:600px){#core-ui .touch-actions{gap:10px}#core-ui .touch-skill{height:56px}}
@media(max-height:400px){.core-action-slot{top:41.5%}}

.core-team span,.core-footer .core-pickup{font-size:13px;line-height:14px}.core-pickup{background:linear-gradient(90deg,#36c6b950 var(--pickup-progress),transparent var(--pickup-progress));border-radius:3px;color:#fff2ae!important}
.core-utility,.core-lifecycle button,#core-ui .round-banner .primary-button{min-height:44px}

@media(max-height:600px){.core-movement small{display:none}}
@media(max-height:600px){.core-phase{flex-direction:row;gap:5px;align-items:center}.core-phase small{font-size:13px;line-height:16px}.core-phase b{font-size:22px;line-height:25px}.core-footer small{font-size:13px;line-height:14px;white-space:nowrap}.core-footer strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* Mobile handedness: swap complete existing rails so the controls retain their
   HUD spacing. The arena, score header and desktop layout are not transformed. */
@media (orientation:landscape) and (pointer:coarse) and (hover:none){
 #core-ui .core-left{left:var(--core-right-x);width:var(--core-right);padding-top:max(8px,env(safe-area-inset-top));padding-left:8px;padding-right:max(8px,env(safe-area-inset-right))}
 #core-ui .core-right{left:0;width:var(--core-left);padding-top:max(8px,env(safe-area-inset-top));padding-left:max(8px,env(safe-area-inset-left));padding-right:8px}
 #core-ui .core-movement{left:0;width:calc(100% - env(safe-area-inset-right))}
 #core-ui .core-action-slot{left:env(safe-area-inset-left);width:calc(100% - env(safe-area-inset-left))}
 #core-ui .core-left>.core-utility{left:8px;width:calc(100% - env(safe-area-inset-right) - 16px)}
 #core-ui .core-right>.core-utility{left:calc(env(safe-area-inset-left) + 8px);width:calc(100% - env(safe-area-inset-left) - 16px)}
 #core-ui .core-utility{bottom:max(10px,env(safe-area-inset-bottom))}
 
}

/* Compact local loadout on the arena's top perimeter, clear of playable rows. */
.core-loadout{position:absolute;left:calc(var(--core-x) + var(--core-w)*.5);top:calc(var(--core-y) + 1px);transform:translateX(-50%);z-index:3;display:flex;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;height:24px;max-width:calc(var(--core-w) - 32px);padding:0 9px;border:1px solid #82c9cd;border-radius:8px;background:#103e50ed;box-shadow:0 1px 2px #082c40aa;color:#fff3d3;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}
.core-loadout~.core-feedback{top:calc(var(--core-y) + 28px)}
.core-loadout>span{display:inline-flex;align-items:center;gap:4px;line-height:1}
.core-loadout svg{width:12px;height:12px;flex:none;fill:none;stroke:#83e8e4;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.core-loadout small{font-size:11px;color:#d2eded;font-weight:700}
.core-loadout b{font-size:13px;font-weight:900}
.core-loadout-skill[data-ready="true"] b{color:#a4f5d0}
@media(max-height:600px){.core-loadout~.core-feedback{top:calc(var(--core-y) + 22px)}.core-loadout{height:18px;gap:9px;padding:0 6px;border-radius:6px}.core-loadout>span{gap:3px}.core-loadout svg{width:10px;height:10px}.core-loadout small{font-size:10px}.core-loadout b{font-size:11px}}

/* HUD cleanup is touch-input only; pointer-driven PCs retain the preceding layout. */
@media (pointer:coarse) and (hover:none){
/* Battle HUD cleanup: logo/exit top left; voice+speaker over left actions;
   help/fullscreen top right; current track bottom right. */
#core-ui .core-left{left:var(--core-right-x);width:var(--core-right)}
#core-ui .core-right{left:0;width:var(--core-left)}
#core-ui>.core-brand{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));width:calc(var(--core-left) - max(8px,env(safe-area-inset-left)) - 8px);max-width:180px;min-height:44px;box-sizing:border-box;z-index:4}
#core-ui .core-tools{position:absolute;top:calc(43% - 48px);left:env(safe-area-inset-left);width:calc(100% - env(safe-area-inset-left));display:flex;align-items:center;justify-content:center;gap:4px;margin:0;padding:0}
#core-ui .core-tools>.sound-toggle,#core-ui .core-tools .voice-toggle{width:32px;height:36px;min-height:36px;flex:none;grid-column:auto;border:1px solid #70a9ba;border-radius:10px;background:#245c71;color:#e5fff5;box-shadow:0 3px #0a3043}
#core-ui .core-tools .sound-icon,#core-ui .core-tools .voice-toggle svg{width:20px;height:20px}
#core-ui .core-window-tools{position:absolute;top:max(8px,env(safe-area-inset-top));left:var(--core-right-x);width:var(--core-right);padding:0 max(8px,env(safe-area-inset-right)) 0 8px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:4px;z-index:4}
#core-ui .core-window-tools>button{width:36px;height:36px;flex:none;border:1px solid #70a9ba;border-radius:10px;background:#245c71;color:#e5fff5;font-size:22px;box-shadow:0 3px #0a3043}
#core-ui>.core-radio-slot{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:var(--core-right-x);width:var(--core-right);padding:0 max(8px,env(safe-area-inset-right)) 0 8px;box-sizing:border-box;margin:0;z-index:4}
#core-ui #music-bar{display:block!important;min-height:0;height:auto;padding:0;border:0;background:none;box-shadow:none}
#core-ui #music-bar>button:not(.music-title),#core-ui #music-bar .music-info,#core-ui #music-bar input,#core-ui #music-bar .music-status{display:none}
#core-ui #music-bar>.music-title{display:block;width:100%;height:auto;min-height:28px;margin:0;padding:5px 4px;border:1px solid #4b8992;border-radius:8px;background:#103d4fe8;color:#d6f6ee;font-size:10px;font-weight:800;line-height:14px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#core-ui .core-footer{grid-template-columns:1fr}
@media(max-width:760px) and (max-height:600px){#core-ui .core-window-tools>button{width:32px}}
@media(max-height:400px){#core-ui .core-tools{top:calc(41.5% - 44px)}}

}
