/* Opaque until the active map, its first frames, fonts and visible art are ready. */
body.game-loading > :not(#gameLoading):not(script):not(style):not(link){visibility:hidden!important}
#gameLoading{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;overflow:auto;padding:24px;box-sizing:border-box;background-color:var(--loading-background,#10191d);background-size:cover;background-position:center;color:var(--loading-text,#f7ecce);font-family:inherit;text-align:center;isolation:isolate}
#gameLoading[hidden]{display:none}
.loading-content{width:min(480px,100%);display:grid;justify-items:center;gap:20px;padding:28px;box-sizing:border-box;background:rgba(8,15,18,.88);border:3px solid var(--loading-track,#263a31);box-shadow:8px 8px 0 #0005}
.loading-animation{display:grid;place-items:center;min-height:80px;max-width:100%}
.loading-animation canvas{max-width:100%;max-height:38vh;object-fit:contain;image-rendering:pixelated}
.loading-spinner{width:64px;height:64px;border:8px solid var(--loading-track,#263a31);border-top-color:var(--loading-bar,#8ac75a);animation:loading-turn 1.2s steps(8) infinite;box-sizing:border-box}
.loading-text{margin:0;font-size:20px;line-height:1.5;overflow-wrap:anywhere;max-width:100%}
#gameLoading progress{appearance:none;width:100%;height:20px;border:2px solid var(--loading-text,#f7ecce);background:var(--loading-track,#263a31);color:var(--loading-bar,#8ac75a)}
#gameLoading progress::-webkit-progress-bar{background:var(--loading-track,#263a31)}
#gameLoading progress::-webkit-progress-value{background:var(--loading-bar,#8ac75a)}
#gameLoading progress::-moz-progress-bar{background:var(--loading-bar,#8ac75a)}
.loading-detail{font-size:14px;line-height:1.5;overflow-wrap:anywhere;max-width:100%}
#gameLoading button{min-height:44px;padding:10px 16px;font:inherit;color:var(--loading-text);background:var(--loading-track);border:2px solid currentColor;cursor:pointer}
@keyframes loading-turn{to{transform:rotate(360deg)}}
@media(max-height:450px){#gameLoading{padding:12px}.loading-content{gap:10px;padding:16px}.loading-animation canvas{max-height:24vh}.loading-text{font-size:16px}}
@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none}}
