body.world-loading > :not(#world-loader) { visibility: hidden; }
#world-loader { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; background: #dceef1; color: #184b53; font-family: system-ui, sans-serif; }
.world-loader-content { width: min(280px, 80vw); text-align: center; }
.world-loader-mark { display: block; font-size: 42px; color: #d7784f; animation: aloha-breathe 2s ease-in-out infinite; }
#world-load-label { font-size: 16px; line-height: 1.5; margin: 14px 0 20px; }
#world-load-progress { display: block; width: 180px; height: 6px; margin: auto; border: 0; border-radius: 20px; overflow: hidden; appearance: none; background: #bdd9df; color: #267b80; }
#world-load-progress::-webkit-progress-bar { background: #bdd9df; border-radius: 20px; }
#world-load-progress::-webkit-progress-value { background: #267b80; border-radius: 20px; transition: width .25s ease; }
#world-load-progress::-moz-progress-bar { background: #267b80; border-radius: 20px; }
#world-load-retry { margin-top: 20px; padding: 10px 18px; border: 1px solid #267b80; border-radius: 20px; background: transparent; color: #184b53; font: inherit; cursor: pointer; }
#world-loader [hidden] { display: none; }
@keyframes aloha-breathe { 50% { transform: scale(1.12) rotate(12deg); } }
@media (prefers-reduced-motion: reduce) { .world-loader-mark { animation: none; } #world-load-progress::-webkit-progress-value { transition: none; } }
