*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#112447}
body::before{content:'';position:fixed;inset:0;background:url('assets/game/stadium-day.png') center/cover no-repeat;pointer-events:none}
body[data-variant='7']::before{background-image:url('assets/game/lobby-stadium.png');background-color:#718393;background-blend-mode:multiply}
body[data-variant='8']::before{background-image:linear-gradient(#0b1c35 0%,#0b1c35e8 10%,#0b1c3500 28%),url('assets/concepts/night-pitch-clean.webp')}
.game-viewport{position:fixed;inset:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;align-items:center;justify-content:center;overflow:hidden}
.game-stage{position:relative;flex:none;overflow:hidden}
/* Continue the scene's own backdrop across the outer screen, without double dimming. */
body::after{content:'';position:fixed;inset:0;background:transparent;pointer-events:none;clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,var(--scene-left) var(--scene-top),var(--scene-right) var(--scene-top),var(--scene-right) var(--scene-bottom),var(--scene-left) var(--scene-bottom),var(--scene-left) var(--scene-top))}
body[data-popup='sheet']::after{background:#05194066}
body[data-popup='dialog']::after{background:#07194c99}
.game-viewport{z-index:1}
iframe:focus{outline:none}
iframe{display:block;position:absolute;left:0;top:0;width:480px;height:964px;border:0;transform-origin:top left;background:transparent;opacity:0;transition:opacity .2s ease}
iframe.scene-ready{opacity:1}
@media(prefers-reduced-motion:reduce){iframe{transition:none}}
