*{box-sizing:border-box}
@font-face{font-family:ExoSoft;src:url('assets/source/fonts/exo-soft/ExoSoft-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#f4f7ff}
body::before{content:'';position:fixed;inset:0;background:url('assets/game/stadium-day.png') center/cover no-repeat;pointer-events:none}
body[data-popup='support']::before{opacity:0}
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;z-index:2;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}
body[data-popup='guide']::after{background:#061134c9}
.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}}
@media(prefers-reduced-motion:reduce){body::after{transition:none}}
::view-transition-old(root){animation:scene-out .19s ease both}::view-transition-new(root){animation:scene-in .19s ease both}
@keyframes scene-out{from{opacity:1}to{opacity:0}}@keyframes scene-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
.game-loader{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;background:radial-gradient(ellipse at 50% 20%,#285eff 0%,#182ee9 45%,#081779 100%);color:white;font:18px/1.4 system-ui,sans-serif;transition:opacity .3s ease}
.game-loader::before,.game-loader::after{content:"";position:absolute;inset:0;pointer-events:none}
.game-loader::before{background:url('assets/game/loading-stripes.svg') center/cover no-repeat;opacity:.96}
.game-loader::after{background:radial-gradient(ellipse 42% 22% at 50% 50%,#091fb351,transparent 80%)}
.game-loader.is-loaded{opacity:0;pointer-events:none}
.loading-logo{position:relative;z-index:1;width:min(65vw,320px);height:auto;margin-top:0;margin-bottom:24px;filter:drop-shadow(0 12px 28px #06105b90)}
.loading-brands{display:flex;align-items:center;gap:24px;padding:12px 24px;background:white;border-radius:20px}
.loading-brands img:first-child{height:44px;width:auto}.loading-brands img:last-child{width:110px;height:auto}
.loading-spinner{position:absolute;z-index:1;bottom:calc(max(8vh,env(safe-area-inset-bottom) + 32px) + 48px);width:26px;height:26px;border:3px solid #ffffff40;border-top-color:#ff8700;border-radius:50%;animation:loading-spin .9s linear infinite}
.game-loader p{position:absolute;z-index:1;bottom:max(8vh,env(safe-area-inset-bottom) + 32px);margin:0;text-align:center;padding:0 20px;font:800 19px/1.3 ExoSoft,Arial,sans-serif}.loading-retry{position:absolute;z-index:1;bottom:max(2vh,env(safe-area-inset-bottom) + 8px);padding:12px 20px;border:0;border-radius:16px;background:#ff8700;color:white;font:inherit}
@keyframes loading-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none}.game-loader{transition:none}}
