/* Shared progress controls; the surrounding screen keeps each game's theme. */
[data-game-loading] { padding: 24px; text-align: center; grid-template-columns: min(440px, 100%); justify-content: center; }
[data-game-loading] > div { width: min(440px, 100%); }
[data-game-loading][hidden], [data-loading-retry][hidden] { display: none !important; }
.loading-meter {
  --loading-fill: var(--loading-accent, var(--brass, var(--sun, #ffd23f)));
  width: min(280px, 100%); margin: 18px auto 0;
  display: flex; align-items: center; gap: 12px;
  color: inherit; text-shadow: none;
}
.loading-meter progress {
  display: block; flex: 1; min-width: 0; width: 100%; height: 10px;
  appearance: none; -webkit-appearance: none; border: 0; border-radius: 999px;
  overflow: hidden; background: rgba(255, 255, 255, .15); color: var(--loading-fill);
}
.loading-meter progress::-webkit-progress-bar { background: rgba(255, 255, 255, .15); border-radius: 999px; }
.loading-meter progress::-webkit-progress-value { background: var(--loading-fill); border-radius: 999px; transition: width .2s ease; }
.loading-meter progress::-moz-progress-bar { background: var(--loading-fill); border-radius: 999px; }
[data-loading-value] { min-width: 3.5em; text-align: right; font: 600 13px/1.4 system-ui, sans-serif; font-variant-numeric: tabular-nums; }
[data-loading-note] { line-height: 1.6; }
[data-loading-retry] { margin-top: 20px; }
.loading-heading { margin: 0; max-width: 100%; font-size: clamp(26px, 5vw, 42px); }
[data-loading-error] .spin, [data-loading-error] .loader-fish { animation: none; }
@media (prefers-reduced-motion: reduce) {
  [data-game-loading], [data-game-loading] * { animation: none !important; transition: none !important; }
  .loading-meter progress::-webkit-progress-value { transition: none; }
}
