.initial-loading {
  position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden;
  color: #ddd0b5; background: radial-gradient(ellipse at 50% 44%, #b58b3310, transparent 58%), #080a0c;
}
.initial-loading-center {
  width: min(420px, 100%); max-width: 100%; padding: 28px 24px;
  box-sizing: border-box; text-align: center;
}
.initial-loading-emblem {
  position: relative; display: grid; place-items: center;
  width: min(clamp(222px, 34vh, 292px), 100%); aspect-ratio: 1; margin: 0 auto;
}
/* Shared by the first-paint HTML and React, including the game's global image rules. */
#root .initial-loading .initial-loading-emblem > img {
  position: relative; display: block; width: 72%; height: 72%; max-width: 100%; margin: 0;
  object-fit: contain; image-rendering: auto; filter: drop-shadow(0 0 18px #cba65c20);
  animation: initial-loading-emblem-breathe 4.4s ease-in-out infinite;
}
.initial-loading-halo {
  position: absolute; inset: -8%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, #e5b5601a, #bb92490a 40%, transparent 69%);
  animation: initial-loading-halo-breathe 4.4s ease-in-out infinite;
}
.initial-loading-orbit {
  position: absolute; inset: 6%; border: 1px solid #c1a3622e; border-radius: 50%; pointer-events: none;
}
.initial-loading-orbit::before {
  content: ''; position: absolute; inset: -1px; border-radius: inherit;
  background: conic-gradient(from 0deg, transparent 45%, #c9a3530c 70%, #ffe0a7bd 98%, transparent 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  animation: initial-loading-orbit 6s linear infinite;
}
.initial-loading-orbit::after {
  content: ''; position: absolute; width: 3px; height: 3px; top: -2px; left: calc(50% - 1.5px);
  background: #eac87c; box-shadow: 0 0 10px #e9bd6980; border-radius: 50%;
}
.initial-loading-orbit--inner {
  inset: 11%; border-style: dashed; border-color: #c1a36221; transform: rotate(25deg);
}
.initial-loading-orbit--inner::before { animation-duration: 10s; animation-direction: reverse; opacity: .6; }
.initial-loading-orbit--inner::after { display: none; }
.initial-loading-star {
  position: absolute; width: 4px; height: 4px; background: #d6b879; transform: rotate(45deg);
  box-shadow: 0 0 14px #e6c57e55; pointer-events: none;
}
.initial-loading-star--north { top: 0; }
.initial-loading-star--south { bottom: 0; opacity: .55; }
.initial-loading-status {
  margin: 24px auto 0; max-width: 320px; color: #d9ccb3;
  font: 400 clamp(14px, 1.6vh, 16px)/1.6 Georgia, 'Times New Roman', serif;
  letter-spacing: .025em; text-wrap: balance;
}
.initial-loading-light {
  position: relative; display: block; width: 88px; height: 1px; margin: 18px auto 0;
  background: linear-gradient(90deg, transparent, #b698625c, transparent);
}
.initial-loading-light::after {
  content: ''; position: absolute; width: 3px; height: 3px; top: -1px; left: calc(50% - 1.5px);
  background: #c7aa73; transform: rotate(45deg); box-shadow: 0 0 8px #b6986266;
  animation: initial-loading-light-breathe 2.8s ease-in-out infinite;
}
@keyframes initial-loading-emblem-breathe {
  0%, 100% { transform: scale(.985); opacity: .92; }
  50% { transform: scale(1.015); opacity: 1; }
}
@keyframes initial-loading-halo-breathe {
  0%, 100% { transform: scale(.97); opacity: .55; }
  50% { transform: scale(1.03); opacity: 1; }
}
@keyframes initial-loading-orbit { to { transform: rotate(360deg); } }
@keyframes initial-loading-light-breathe { 0%, 100% { opacity: .3; } 50% { opacity: .9; } }
@media (max-height: 420px) {
  .initial-loading-center { padding: 18px 24px; }
  .initial-loading-emblem { width: min(180px, 46vh, 100%); }
  .initial-loading-status { margin-top: 16px; font-size: 14px; }
  .initial-loading-light { margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  #root .initial-loading .initial-loading-emblem > img, .initial-loading-halo,
  .initial-loading-orbit::before, .initial-loading-light::after { animation: none; }
  .initial-loading-halo, .initial-loading-light::after { opacity: .65; }
}
