.scene-loading-screen {
  /* Match the first-frame shell exactly; the point-cloud canvas remains behind
     this content and is handed off without a second visual design. */
  background: radial-gradient(ellipse at 50% 42%,#292718 0,transparent 60%),#080b10;
  color: #fff3d6;
  opacity: var(--preview-opacity, 1);
}

.scene-loading-screen[data-preview-finishing="true"] {
  pointer-events: none;
}

.scene-loading-pointcloud {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.scene-loading-landscape {
  display: none;
}

.scene-loading-screen::after {
  display: none;
}

.scene-loading-content {
  z-index: 1;
  gap: 12px;
  padding: 16px;
  width: min(300px,100% - 48px);
  opacity: 1;
  transition: opacity 700ms ease, transform 700ms ease;
}

.scene-loading-screen[data-preview-state="ready"] .scene-loading-content {
  opacity: 0;
  transform: translateY(-8px);
}

.scene-loading-content strong {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.4;
  color: #f4d582;
}

.scene-loading-content > span {
  color: #c7c3b6;
  font-size: 13px;
  line-height: 1.5;
}

/* The embedded runtime used to show a scene title here while the outer shell
   showed a preparation message. Keep the two layers visually identical during
   the handoff; the scene title remains available in the DOM for diagnostics. */
#sceneLoadingScreen #sceneLoadingName { font-size: 0; min-height: 19.5px; }
#sceneLoadingName::after { content: '正在准备场景，请稍候…'; font-size: 13px; }

.scene-loading-track {
  width: 144px;
  height: 3px;
  margin-top: 8px;
  background: #ffffff28;
}

.scene-loading-track i {
  background: #e4bd61;
  box-shadow: 0 0 8px #e4bd6170;
}

.scene-loading-emblem { width: 96px; height: 96px; margin-bottom: 8px; }
.scene-loading-emblem img { display: block; width: 76px; height: 76px; object-fit: contain; transform: none; }
.scene-loading-emblem::after { border-color: #16836c #a77927 #b4cbc2 #b4cbc2; }

@media (height <= 480px), (orientation: portrait) and (width <= 760px) {
  .scene-loading-content { gap: 8px; }
  .scene-loading-emblem { width: 80px; height: 80px; margin-bottom: 4px; }
  .scene-loading-emblem img { width: 60px; height: 60px; transform: none; }
  .scene-loading-content strong { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .scene-loading-screen,
  .scene-loading-content { transition: none; }
  .scene-loading-emblem::after,
  .scene-loading-track i { animation: none; }
}
