.character-loading.map-loading{--map-loading-accent:#27bfa9;position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:16px;overflow:hidden;border-radius:0;background:radial-gradient(ellipse at 45% 25%,#267681,#07394b 66%,#03283c);color:#174954;text-align:left;isolation:isolate;}
.map-loading::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 90% 5%,#b2ffdb16,transparent 38%),radial-gradient(circle at 4% 90%,#58dce82a,transparent 40%);pointer-events:none;}
.map-loading .map-loading-panel{width:min(1120px,100%);height:min(780px,calc(100dvh - 32px));max-width:none;min-height:0;display:grid;grid-template-rows:minmax(160px,1fr) auto auto;border:2px solid #d4fff5;border-radius:26px;overflow:hidden;background:#effbf2;box-shadow:0 7px 0 #092f4480,0 22px 75px #031c3f75;}
.map-loading-scene{position:relative;min-height:0;overflow:hidden;background:linear-gradient(140deg,#86d9d8,#2a93b0);border-radius:23px 23px 0 0;isolation:isolate;}
.map-loading-hero{position:relative;display:block;width:100%;height:100%;object-fit:cover;object-position:center 47%;opacity:0;transition:opacity .2s;}
.map-loading[data-scene-ready="true"] .map-loading-hero{opacity:1;}
.map-loading-scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#06334b15 0%,transparent 42%,#052d4240 66%,#052b46e8 100%);}
.map-loading .map-loading-actions{position:absolute;top:16px;right:18px;display:flex;gap:10px;margin:0;z-index:2;}
.map-loading .map-loading-actions button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-width:0;min-height:40px;width:auto;padding:10px 17px;border:1px solid #ffffffad;border-radius:12px;background:#0f3d52d9;backdrop-filter:blur(8px);box-shadow:0 3px 0 #03263c36;color:#f4fff9;font:800 12px/1.2 'Nunito Sans',sans-serif;white-space:nowrap;}
.map-loading .map-loading-actions .primary-button{background:#e2fff2;color:#155263;border-color:white;}
.map-loading .map-loading-actions button:focus-visible{outline:3px solid #ffe093;outline-offset:3px;}
.map-loading-scene-caption{position:absolute;left:28px;right:28px;bottom:21px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;color:#fff9e5;}
.map-loading .map-loading-heading small{display:block;margin:0 0 7px;color:#ddffec;letter-spacing:1.9px;font:900 10px/1.3 'Nunito Sans',sans-serif;}
.map-loading #character-loading-title{font:800 clamp(35px,4.2vw,58px)/.93 'Baloo 2',sans-serif;margin:0;color:#fffbe8;text-shadow:0 3px 0 #154e67a6;letter-spacing:-1px;}
.map-loading-progress-block{width:45%;max-width:420px;min-width:230px;padding-bottom:2px;}
.map-loading-progress-label{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:9px;}
.map-loading #character-loading-text{font:700 13px/1.35 'Nunito Sans',sans-serif;min-height:0;margin:0;color:#e1fff1;overflow-wrap:anywhere;}
.map-loading [data-loading-percent]{flex:none;color:#fff8d9;font:800 33px/.92 'Baloo 2',sans-serif;letter-spacing:-1px;font-variant-numeric:tabular-nums;}
.map-loading [data-loading-percent] span{font-size:.55em;margin-left:2px;}
.map-loading-meter{height:13px;padding:3px;border:1px solid #f2ffe2a8;background:#073646ac;border-radius:20px;box-shadow:inset 0 2px 3px #002b3e75;overflow:hidden;}
.map-loading-meter>div{height:100%;width:0;border-radius:20px;background:linear-gradient(90deg,#59e9c2,#d3ffd0);box-shadow:0 0 10px #84efc790;}
.map-loading .map-loading-waiting{margin:7px 0 0;color:#d9fbed;font:700 12px/1.35 'Nunito Sans',sans-serif;overflow-wrap:anywhere;}
.map-loading .map-loading-waiting[hidden]{display:none;}
.map-loading[data-loading-status="complete"] .map-loading-meter>div{transition:none;}
.map-loading[data-loading-status="error"] .map-loading-meter>div{background:#ffd18e;transition:none;}
.map-loading[data-loading-status="error"] #character-loading-text{color:#ffe5bc;}
.map-loading .map-loading-note{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;margin:0;padding:10px 30px;border-bottom:1px solid #3c918f23;background:linear-gradient(90deg,#d6f8e7,#f6ffe8,#d6f8e7);color:#285664;font:800 13px/1.45 'Nunito Sans',sans-serif;}
.map-loading-features{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px clamp(25px,7vw,86px) 19px;background:radial-gradient(ellipse at center top,#fffcef,#def3ec);}
.map-loading-feature{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;aspect-ratio:1;width:clamp(140px,20vh,177px);padding:10px 12px 12px;text-align:center;border:1px solid #8bcbcdb0;border-radius:20px;background:linear-gradient(150deg,#fffff6,#dbf5eb);box-shadow:inset 0 0 0 3px #ffffffa3,0 4px 0 #9dcacc65;}
.map-loading-feature-art{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:54%;min-height:0;filter:drop-shadow(0 4px 3px #286c7824);}
.map-loading-art-frame{display:block;position:relative;width:100%;height:100%;overflow:hidden;}
.map-loading-art-frame>img{position:absolute;display:block;inset:0;width:100%;height:100%;object-fit:contain;}
.map-loading-art-frame.is-sprite{aspect-ratio:var(--art-ratio,1);height:auto;max-height:100%;width:75%;}
.map-loading-art-frame.is-sprite>img{position:relative;width:calc(var(--sprite-columns)*100%);height:auto;max-width:none;object-fit:fill;}
.map-loading-feature-art.is-duo .map-loading-art-frame{width:57%;flex:none;}
.map-loading-feature-art.is-duo .map-loading-art-frame+span{margin-left:-17%;transform:translateY(4px);}
.map-loading-feature h3{color:#1c5a6d;font:800 19px/1.02 'Baloo 2',sans-serif;letter-spacing:-.25px;margin:3px 0 5px;}
.map-loading .map-loading-feature p{font:700 11.5px/1.3 'Nunito Sans',sans-serif;color:#426772;min-height:0;margin:0;}
@media(max-width:650px) and (orientation:portrait){
 .character-loading.map-loading{padding:12px;}
 .map-loading .map-loading-panel{height:auto;max-height:calc(100dvh - 24px);grid-template-rows:auto auto auto;overflow:auto;overscroll-behavior:contain;border-radius:22px;}
 .map-loading-scene{height:389px;padding-top:49px;border-radius:19px 19px 0 0;background:#165c72;}
 .map-loading-hero{object-fit:contain;object-position:center top;}
 .map-loading-scene-caption{left:18px;right:18px;bottom:18px;display:block;}
 .map-loading .map-loading-heading small{font-size:8px;letter-spacing:1px;}
 .map-loading #character-loading-title{font-size:42px;}
 .map-loading-progress-block{width:100%;max-width:none;min-width:0;margin-top:18px;}
 .map-loading #character-loading-text{font-size:11px;}
 .map-loading [data-loading-percent]{font-size:28px;}
 .map-loading .map-loading-actions{right:12px;top:12px;gap:6px;}
 .map-loading .map-loading-actions button{min-height:37px;padding:8px 10px;font-size:10px;}
 .map-loading .map-loading-note{font-size:11px;padding:11px 14px;min-height:50px;}
 .map-loading-features{padding:13px 10px 17px;gap:8px;}
 .map-loading-feature{width:calc((100% - 16px)/3);aspect-ratio:auto;min-height:139px;padding:8px 6px 10px;border-radius:15px;align-self:stretch;justify-content:flex-start;}
 .map-loading-feature-art{height:61px;flex:none;}
 .map-loading-feature h3{font-size:15px;margin:2px 0 5px;}
 .map-loading .map-loading-feature p{font-size:10px;line-height:1.25;}
}
@media(max-height:600px) and (orientation:landscape){
 .character-loading.map-loading{padding:9px 15px;}
 .map-loading .map-loading-panel{height:calc(100dvh - 18px);border-radius:20px;grid-template-rows:minmax(120px,1fr) auto auto;}
 .map-loading-scene{border-radius:17px 17px 0 0;}
 .map-loading-scene::before{content:"";position:absolute;inset:-15px;background-image:var(--map-loading-scene-image);background-size:cover;background-position:center;filter:blur(14px) saturate(.8);opacity:.6;z-index:-1;}
 .map-loading-hero{object-fit:contain;object-position:center;transform:scale(var(--compact-art-scale,1.35));transform-origin:var(--compact-art-origin,50% 50%);}
 .map-loading[data-loading-theme="village"],.map-loading[data-loading-theme="cemetery"]{--compact-art-origin:50% 0%;}
 .map-loading[data-loading-theme="factory"],.map-loading[data-loading-theme="desert"]{--compact-art-origin:50% 100%;}
 .map-loading[data-loading-theme="desert"],.map-loading[data-loading-theme="factory"]{--compact-art-scale:1.15;}
 .map-loading-scene-caption{left:20px;right:20px;bottom:13px;gap:25px;}
 .map-loading #character-loading-title{font-size:36px;}
 .map-loading .map-loading-heading small{font-size:8px;margin-bottom:4px;letter-spacing:1.2px;}
 .map-loading .map-loading-actions{top:10px;right:12px;gap:8px;}
 .map-loading .map-loading-actions button{min-height:33px;padding:7px 11px;font-size:10px;border-radius:9px;}
 .map-loading-progress-block{min-width:210px;width:43%;}
 .map-loading #character-loading-text{font-size:10px;}
 .map-loading .map-loading-waiting{font-size:10px;margin-top:5px;}
 .map-loading [data-loading-percent]{font-size:27px;}
 .map-loading-meter{height:10px;padding:2px;}
 .map-loading-progress-label{margin-bottom:6px;}
 .map-loading .map-loading-note{font-size:10px;padding:6px 20px;min-height:30px;}
 .map-loading-features{padding:9px 50px 11px;gap:20px;}
 .map-loading-feature{width:clamp(94px,25vh,134px);padding:5px 7px 7px;border-radius:14px;}
 .map-loading-feature-art{height:45%;}
 .map-loading-feature h3{font-size:14px;margin:1px 0 3px;}
 .map-loading .map-loading-feature p{font-size:9px;line-height:1.2;}
}
@media(max-height:350px){.map-loading .map-loading-panel{overflow:auto;overscroll-behavior:contain;}.map-loading-scene{min-height:125px;}.map-loading-features{padding-top:7px;padding-bottom:9px;}.map-loading-feature{width:89px;}}
@media(prefers-reduced-motion:reduce){.map-loading-hero,.map-loading-meter>div{transition:none;}}
