body.campaign{min-height:100svh}.campaign main{padding-top:8px}.campaign .topbar{padding-top:10px;padding-bottom:10px}.campaign .arena-shell{max-width:1280px;margin:auto}.campaign .fighter-info{min-width:0}.campaign .name-line b{font:700 21px sans-serif;white-space:nowrap}.campaign .clock small{font-size:12px}.campaign .clock>b{font-size:34px}.campaign .fighter-info.right{max-width:220px;justify-self:end;width:100%}.campaign:not(.boss-fight) .fighter-info.right .meter{display:none}.campaign .clock{min-width:90px}.campaign .hud{pointer-events:none}.route-progress{height:4px;background:#ffffff35;width:80px;margin:7px auto}.route-progress i{display:block;height:100%;background:#e3f396}.campaign #crew{font-size:16px;white-space:nowrap;letter-spacing:3px}.campaign-cutscene{position:absolute;inset:0;background:#04080d;z-index:8}.campaign-cutscene canvas{width:100%;height:100%;object-fit:contain}.cutscene-caption{position:absolute;bottom:5%;left:6%;right:6%;padding:16px;background:linear-gradient(90deg,#000d,#0004);display:flex;align-items:center;justify-content:space-between;gap:12px}.cutscene-caption h2{font-size:clamp(14px,2.5vw,26px);margin:0}.cutscene-caption button{width:auto;max-width:50%;padding:12px;font-size:16px;white-space:nowrap}.loading{position:absolute;inset:0;z-index:30;background:#101b21;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.loading>div{height:3px;background:#ffffff25;width:150px}.loading i{display:block;height:100%;width:0;background:#e3f396}.campaign .dialog-panel{z-index:20}.cutscene-active .touch-controls{pointer-events:none;opacity:.35}[hidden]{display:none!important}@media(max-width:600px){.campaign .name-line b{font-size:13px}.campaign .fighter-info.right{max-width:120px}.campaign .clock>b{font-size:25px}.campaign #crew{font-size:11px;letter-spacing:1px}.campaign .hud{gap:8px}.route-progress{width:45px}.cutscene-caption{left:2%;right:2%;padding:8px}.cutscene-caption button{font-size:12px;padding:9px}.campaign .clock{min-width:45px}.campaign .name-line{gap:4px}}

.boss-fight .fighter-info.right{max-width:none}

.campaign .touch-controls{display:flex;justify-content:space-between;padding:8px 12px;gap:12px}
.campaign .touch-controls button{min-height:40px}
#cutsceneImage{transform:none;width:100%;height:100%}
@media(min-width:751px){.campaign main{max-width:min(1200px,calc((100svh - 230px)*1.4634146 + 40px))}}

#cutsceneImage{object-fit:cover}
