.loading{background:radial-gradient(ellipse at 50% 40%,#35132f,#08010a 70%)}
.loading h1{font-size:7cqw;line-height:1.15;letter-spacing:.1cqw;margin:0 0 2.7cqw;font-weight:900;font-style:italic;color:#fff0f8;text-shadow:0 .15cqw #a22075,0 0 1.8cqw #f731af,0 0 4cqw #c919a988}
.loading-progress{position:relative;width:47cqw;max-width:100%;height:2.1cqw;min-height:12px;padding:.22cqw;border:1px solid #fc9cda;border-radius:3cqw;background:#150719;box-shadow:0 0 0 .15cqw #4d153d,inset 0 0 .8cqw #000,0 0 2.5cqw #f51d9e44;overflow:hidden}
.loading-progress-fill{position:relative;width:0;height:100%;border-radius:inherit;background:linear-gradient(180deg,#fff1ff,#ff9ee6 16%,#f526bc 50%,#ba087d 80%,#f749bc);box-shadow:0 0 1.4cqw #ff35c3,inset 0 .1cqw .2cqw #ffe5f8;transition:width .18s ease-out;overflow:hidden}
.loading-progress-fill::before,.loading-progress-fill::after{content:"";position:absolute;inset:-50% -20%;pointer-events:none}
.loading-progress-fill::before{background:radial-gradient(circle,#fff 0 1px,transparent 2px) 0 0/15px 11px,radial-gradient(circle,#ffe2f4 0 1px,transparent 2px) 7px 5px/23px 17px;animation:loading-glitter 1.4s linear infinite}
.loading-progress-fill::after{background:linear-gradient(110deg,transparent 35%,#fff9 48%,transparent 60%);animation:loading-shimmer 1.8s ease-in-out infinite;transform:translateX(-100%)}
.loading-progress-value{font-size:clamp(12px,1.4cqw,24px);font-weight:800;letter-spacing:.13cqw;color:#ffc3ec;margin-top:1.2cqw;font-variant-numeric:tabular-nums}
.loading #loadMessage{font-size:clamp(12px,1.15cqw,20px);margin:.8cqw 0 1.5cqw;max-width:80%;color:#e0bad8}
.loading-failed .loading-progress-fill::before,.loading-failed .loading-progress-fill::after{animation:none}
.loading-failed .loading-progress{opacity:.45}
.loading-failed #loadMessage{font-size:clamp(12px,1.35cqw,23px);color:#ffe5f4}
@keyframes loading-glitter{from{background-position:0 0,7px 5px;opacity:.65}50%{opacity:1}to{background-position:15px -11px,30px -12px;opacity:.65}}
@keyframes loading-shimmer{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.loading-progress-fill,.loading-progress-fill::before,.loading-progress-fill::after{animation:none!important;transition:none}}
.reduced-motion .loading-progress-fill,.reduced-motion .loading-progress-fill::before,.reduced-motion .loading-progress-fill::after{animation:none!important;transition:none}
