/* 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: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-team small{grid-column:1/-1;font-size:clamp(10px,.95vw,13px);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)}
.core-map-card{width:100%;margin-top:17px;border:1px solid #538fa0;border-radius:10px;background:#123d50;overflow:hidden;text-align:center;line-height:1}.core-map-card small{display:block;font-size:10px;letter-spacing:1px;padding:8px 1px 1px}.core-map-card canvas{width:100%;height:auto;display:block}.core-map-card span{display:block;font-size:10px;padding:0 1px 7px;color:#c8e2da}
.core-movement{position:absolute;top:53%;left:0;width:100%;text-align:center}.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{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}
.core-holds{width:100%;text-align:center;display:flex;flex-direction:column;gap:3px;margin-top:8px;font-size:13px;color:#c9f5e8;white-space:nowrap}.core-holds small{font-size:9px;letter-spacing:.7px;color:#96bfc8}.core-holds [data-core=hold-blue]{color:#98e8fa}.core-holds [data-core=hold-red]{color:#ffc6a5}.core-header .core-team small{display:none}
@media(max-height:600px){.core-map-card canvas{height:72px;max-height:72px;object-fit:contain}}
@media(max-height:600px){.core-left,.core-right{padding:8px}.core-brand{padding:3px 1px;border-radius:9px}.core-map-card{margin-top:10px}.core-map-card small{font-size:8px;padding-top:5px}.core-map-card span{font-size:8px}.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 small{font-size:9px}.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}.core-holds{font-size:11px;margin-top:5px;line-height:13px;gap:1px}.core-holds small{font-size:8px;line-height:10px}}
@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-map-card span{font-size:7px}}
.core-holds span,.core-footer small,.core-phase small{font-size:13px}
.core-hero-stats{margin:8px 5px 0;text-align:center;color:#d7fff1;font-size:12px;line-height:14px;font-weight:800}.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-hero-stats{margin-top:6px;font-size:11px;line-height:12px}#core-ui .touch-actions{gap:10px}#core-ui .touch-skill{height:56px}}
@media(max-height:400px){.core-action-slot{top:41.5%}}
.core-hero-stats>span{display:block;white-space:nowrap}
.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}
.core-totals{position:absolute;bottom:68px;left:12px;width:calc(100% - 24px);display:flex;flex-direction:column;text-align:center;gap:1px;white-space:nowrap;font-size:13px;line-height:15px;font-weight:800;color:#c9f5e8}.core-totals small{font-size:9px;line-height:12px;letter-spacing:.4px;color:#96bfc8}.core-totals [data-core=total-blue]{color:#98e8fa}.core-totals [data-core=total-red]{color:#ffc6a5}
@media(max-height:600px){.core-totals{bottom:64px;left:8px;width:calc(100% - 16px)}.core-totals small{font-size:8px;line-height:10px}.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-holds{gap:1px}.core-holds span{font-size:13px;line-height:15px;font-weight:800}.core-holds small{font-size:8px;line-height:10px}.core-footer small{font-size:13px;line-height:14px;white-space:nowrap}.core-footer strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
