:root {
  --game-font-family: Roboto, sans-serif;
  --game-background: #171523;
  --game-text-color: #f5f6fa;
  --game-muted-color: #c4bbd9;
  --game-accent-color: #ff75a0;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font-family: var(--game-font-family); color: var(--game-text-color); background: radial-gradient(ellipse at top, #35264d, var(--game-background) 70%); }
.loading-shell { width: min(940px, 100%); margin: 0 auto; padding: 32px 18px; }
.loading-card { overflow: hidden; border: 1px solid #ff9ff340; border-radius: 24px; background: #1e1c2a; box-shadow: 0 24px 80px #0006; }
.splash-frame { background: #110f1a; }
.loading-splash { display: block; width: 100%; max-height: 52vh; object-fit: contain; }
.loading-content { padding: clamp(20px, 4vw, 36px); }
.eyebrow { color: #fbc531; font-size: 11px; font-weight: 800; letter-spacing: .22em; }
h1 { margin: 10px 0; font-size: clamp(26px, 5vw, 42px); letter-spacing: -.04em; }
.tagline { color: var(--game-muted-color); line-height: 1.6; margin-bottom: 28px; }
.loading-label { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; line-height: 1.5; }
#loading-percent { color: #fbc531; white-space: nowrap; }
progress { display: block; appearance: none; width: 100%; height: 12px; margin: 12px 0; border: 0; overflow: hidden; border-radius: 20px; background: #110f1a; accent-color: var(--game-accent-color); }
progress::-webkit-progress-bar { background: #110f1a; }
progress::-webkit-progress-value { background: linear-gradient(90deg, #9c88ff, #ff75a0, #fbc531); border-radius: 20px; transition: width .2s ease; }
progress::-moz-progress-bar { background: linear-gradient(90deg, #9c88ff, #ff75a0, #fbc531); border-radius: 20px; }
.loading-detail { color: var(--game-muted-color); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
button { font: inherit; border: 0; border-radius: 10px; padding: 12px 20px; color: #171523; background: var(--game-accent-color); cursor: pointer; margin-right: 16px; }
a { color: #ffb6d0; text-underline-offset: 3px; }
.world-introduction { padding: 26px 8px; color: var(--game-muted-color); font-size: 14px; line-height: 1.85; }
.world-introduction h2, .world-introduction h3 { color: var(--game-text-color); line-height: 1.4; }
code { font-family: var(--game-font-family); color: #fbc531; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { progress::-webkit-progress-value { transition: none; } }