/* Original logo remains intact: only CSS fragments move during startup. */
#wm-loading {
  position: fixed; inset: 0; z-index: 2147483647;
  display: grid; place-items: center; overflow: hidden;
  background: #f7f7f7; color: #606060;
  font-family: Arial, sans-serif;
  transition: opacity 220ms ease;
}
#wm-loading.is-ready { opacity: 0; pointer-events: none; }
.wm-loading-content { width: min(400px, 76vw, 65vh); text-align: center; }
.wm-logo { position: relative; width: 100%; aspect-ratio: 675 / 464; }
.wm-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.wm-logo-static { opacity: 0; }
.wm-logo.has-fragments .wm-logo-static { opacity: 0; }
.wm-logo.is-assembled .wm-logo-static { opacity: 1; }
.wm-logo.is-assembled #wm-logo-fragments { visibility: hidden; }
.wm-logo-piece {
  position: absolute; inset: 0;
  animation: wm-assemble 1100ms cubic-bezier(.16, 1, .3, 1) both;
  animation-delay: var(--delay);
  transform-origin: var(--origin);
  will-change: transform, opacity;
}
@keyframes wm-assemble {
  from { opacity: 0; transform: translate(var(--x), var(--y)) rotate(var(--turn)) scale(.78); filter: blur(6px); }
  45% { opacity: .9; }
  to { opacity: 1; transform: translate(0, 0) rotate(0) scale(1); filter: blur(0); }
}
.wm-loading-name { margin: 30px 0 14px; font-size: 15px; font-weight: 700; letter-spacing: .16em; color: #575757; }
.wm-authorship { position: absolute; bottom: 0; left: 0; right: 0; padding: 6px 12px; padding-bottom: max(6px, env(safe-area-inset-bottom)); text-align: center; font: 11px/1.3 Arial, sans-serif; color: #606874; }
.wm-loading-track { margin: auto; width: 140px; height: 2px; background: #e3e3e3; overflow: hidden; }
.wm-loading-track::after {
  content: ''; display: block; width: 45%; height: 100%; background: #b40000;
  animation: wm-loading-progress 1400ms ease-in-out infinite;
}
@keyframes wm-loading-progress { from { transform: translateX(-110%); } to { transform: translateX(330%); } }
#wm-loading-status { min-height: 32px; margin: 14px 0 0; font-size: 12px; line-height: 1.5; }
#wm-loading-retry { margin-top: 10px; padding: 8px 18px; border: 1px solid #ccc; border-radius: 4px; background: white; color: #555; cursor: pointer; }
#wm-loading.is-error .wm-loading-track::after { animation: none; width: 100%; }
@media (prefers-reduced-motion: reduce) {
  #wm-loading { transition: none; }
  /* Keep the requested assembly visible without flying/rotating fragments. */
  .wm-logo-piece { animation-name: wm-assemble-gentle; animation-duration: 900ms; will-change: opacity; }
  .wm-loading-track::after { animation: none; }
}
@keyframes wm-assemble-gentle { from { opacity: 0; } to { opacity: 1; } }
