.game-loading{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;padding:calc(var(--safe-top,0px) + 28px) calc(var(--safe-right,0px) + 24px) calc(var(--safe-bottom,0px) + 28px) calc(var(--safe-left,0px) + 24px);background:radial-gradient(ellipse at 67% 30%,#26372b 0%,#111d17 46%,#070c0a 100%);color:#ebe8dc;opacity:1;visibility:visible;transition:opacity .75s ease,visibility .75s ease}
.game-loading:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#04080780,transparent 45%,#02060566),repeating-linear-gradient(0deg,transparent 0 31px,#adad7d08 32px,#adad7d08 33px),repeating-linear-gradient(90deg,transparent 0 47px,#adad7d06 48px,#adad7d06 49px);mix-blend-mode:screen;opacity:.7}
.game-loading:after{content:'';position:absolute;inset:8%;pointer-events:none;border:1px solid #b9b29216;box-shadow:0 0 100px #0008,inset 0 0 70px #0009}
.loading-shell{position:relative;z-index:1;width:min(650px,100%);max-height:100%;display:flex;flex-direction:column;align-items:stretch;padding:10px 0 0;animation:loading-arrival .9s ease-out both}
.loading-kicker{margin:0 0 16px;color:#b9b292b8;font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2em}
.loading-shell h1{margin:0;color:#eee9d8;font-size:clamp(34px,7vw,58px);font-weight:400;letter-spacing:.16em;line-height:1.25;text-shadow:0 3px 18px #000b}
.loading-subtitle{margin:11px 0 36px;color:#b5bda9;font-size:14px;letter-spacing:.12em}
.loading-progress{height:3px;background:#d3dab21f;overflow:hidden;box-shadow:0 0 0 1px #a4ae8022}
.loading-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#8c8d65,#e1d19b);box-shadow:0 0 14px #d0c18399;transition:width .35s ease}
.loading-summary,.loading-current,.loading-assets-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.03em}
.loading-summary{padding:10px 0 19px;color:#b7bdab}
.loading-summary strong{font-weight:400;color:#dfcf9b}
.loading-current{padding:11px 0;border-top:1px solid #a4ae8030;border-bottom:1px solid #a4ae8030;color:#7f8d7d}
.loading-current strong{max-width:75%;overflow:hidden;color:#d8d2b7;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.loading-assets-heading{padding:19px 0 9px;color:#c7c4a9;letter-spacing:.12em}
#loading-failed{color:#c8796b}
.loading-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 28px;max-height:min(44vh,350px);margin:0;padding:9px 2px;border-top:1px solid #a4ae8025;border-bottom:1px solid #a4ae8025;overflow:auto;list-style:none;scrollbar-color:#68725c transparent;scrollbar-width:thin}
.loading-asset{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 0;color:#7f897e;font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;transition:color .25s ease}
.loading-asset:before{content:'·';flex:0 0 11px;color:#697466;font-size:18px;line-height:1}
.loading-asset span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.loading-asset.is-loading{color:#d6c791}
.loading-asset.is-loading:before{content:'◈';color:#d2c18f;animation:loading-pulse 1s ease-in-out infinite}
.loading-asset.is-loaded{color:#aeb9a1}
.loading-asset.is-loaded:before{content:'◆';color:#aeb18a;font-size:9px}
.loading-asset.is-error{color:#c77c6f}
.loading-asset.is-error:before{content:'×';color:#c77c6f;font-size:14px}
body.resource-loading .game{visibility:hidden}
body.resource-ready .game-loading{pointer-events:none;opacity:0;visibility:hidden}
body.resource-ready .game{visibility:visible}
@keyframes loading-arrival{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes loading-pulse{0%,100%{opacity:.42}50%{opacity:1}}
@media(max-width:600px){
 .game-loading{padding:calc(var(--safe-top,0px) + 20px) calc(var(--safe-right,0px) + 18px) calc(var(--safe-bottom,0px) + 20px) calc(var(--safe-left,0px) + 18px)}
 .game-loading:after{inset:4%}
 .loading-shell{padding-top:3px}
 .loading-kicker{margin-bottom:11px;font-size:9px}
 .loading-shell h1{font-size:clamp(31px,10vw,46px);letter-spacing:.1em}
 .loading-subtitle{margin:8px 0 27px;font-size:12px;letter-spacing:.06em}
 .loading-assets{grid-template-columns:1fr;max-height:37svh;gap:0}
 .loading-asset{padding:5px 0;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.game-loading,.loading-progress i,.loading-asset{transition:none}.loading-shell,.loading-asset.is-loading:before{animation:none}}
