/* Map loading screen: shown between pressing play and the first game frame. */
.map-loading{position:fixed;inset:0;z-index:99990;display:grid;place-items:center;overflow:hidden;background:#05070e;color:var(--t,#edf3fc);font-family:'Noto Sans KR',system-ui,sans-serif;opacity:1;transition:opacity .32s ease}
.map-loading[hidden]{display:none!important}
.map-loading.leaving{opacity:0;pointer-events:none}
.map-loading-bg{position:absolute;inset:-40px;background-size:cover;background-position:center;filter:blur(28px) brightness(.38) saturate(1.2);transform:scale(1.06)}
.map-loading::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,transparent 0,#05070ecc 70%),linear-gradient(180deg,#05070e00 55%,#05070e 100%);pointer-events:none}
.map-loading-card{position:relative;z-index:1;width:min(860px,calc(100vw - 32px));display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:32px;align-items:center}
.map-loading-cover{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;box-shadow:0 24px 70px #000a,0 0 0 1px #ffffff1c;background:#131c2b}
.map-loading-info{min-width:0;display:flex;flex-direction:column;gap:10px}
.map-loading-kicker{font:700 11px system-ui;letter-spacing:3px;color:var(--a,#9cf867)}
.map-loading-title{margin:0;font:400 clamp(26px,4.2vw,44px)/1.12 'Black Han Sans','Noto Sans KR',sans-serif;overflow-wrap:anywhere}
.map-loading-meta{color:var(--m,#97a6ba);font-size:14px;display:flex;flex-wrap:wrap;gap:6px 14px}
.map-loading-versus{display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px;flex-wrap:wrap}
.map-loading-versus em{font-style:normal;color:var(--a,#9cf867);font:400 22px 'Black Han Sans',sans-serif}
.map-loading-versus small{color:var(--m,#97a6ba);font-weight:500}
.map-loading-keys{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.map-loading-keys kbd{min-width:38px;padding:7px 9px;text-align:center;border-radius:8px;border:1px solid #ffffff2a;border-bottom-width:3px;background:#ffffff0d;font:700 14px system-ui}
.map-loading-bar{height:6px;border-radius:6px;background:#ffffff14;overflow:hidden;margin-top:14px}
.map-loading-bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--cyan,#65dded),var(--a,#9cf867));transition:width .25s ease}
.map-loading-status{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--m,#97a6ba);min-height:20px}
.map-loading-status b{color:var(--t,#edf3fc);font-weight:600}
.map-loading-tip{font-size:13px;color:#c7d2e3;opacity:.8;min-height:20px}
.map-loading-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.map-loading-actions button{min-height:36px;font-size:13px;padding:0 14px}
.map-loading.failed .map-loading-bar i{background:#ff5d7a}
.map-loading.failed .map-loading-status b{color:#ff8aa0}
.map-loading-count{font:400 64px/1 'Black Han Sans',sans-serif;color:var(--a,#9cf867);text-shadow:0 0 30px #9cf86755}
.map-loading-count:empty{display:none}
@media (max-width:720px){.map-loading-card{grid-template-columns:1fr;gap:18px;text-align:left}.map-loading-cover{width:min(180px,46vw);justify-self:center}.map-loading-count{font-size:48px}}
@media (prefers-reduced-motion:reduce){.map-loading,.map-loading-bar i{transition:none}}
