/* The original illuminated door remains on the untouched artwork beneath these layers. */
.ambient-scene { position: absolute; z-index: -3; pointer-events: none; visibility: hidden; }
.ambient-scene.is-ready { visibility: visible; }
.ambient-patch, .ambient-door, .ambient-cloud { position: absolute; }
.ambient-patch, .ambient-door, .ambient-cloud-texture { background-repeat: no-repeat; }
.ambient-patch {
  background-image: var(--ambient-plate);
  mask-image: linear-gradient(90deg, transparent, #000 var(--feather), #000 calc(100% - var(--feather)), transparent), linear-gradient(transparent, #000 var(--feather), #000 calc(100% - var(--feather)), transparent);
  mask-composite: intersect;
}
.ambient-door {
  background-image: var(--ambient-original);
  animation: ambientDoorDrift var(--duration) ease-in-out var(--delay) infinite alternate;
  will-change: transform;
}
.ambient-cloud { overflow: hidden; mask-image: radial-gradient(ellipse closest-side, #000 20%, rgba(0,0,0,.85) 48%, transparent 100%); }
.ambient-cloud-texture {
  position: absolute; inset: -80px;
  background-image: var(--ambient-plate);
  opacity: .94;
  animation: ambientCloudDrift var(--duration) ease-in-out var(--delay) infinite alternate;
  will-change: transform;
}
.ambient-scene.is-paused .ambient-door,
.ambient-scene.is-paused .ambient-cloud-texture { animation-play-state: paused; }
@keyframes ambientDoorDrift {
  from { transform: translate3d(calc(var(--drift-x) * -1), calc(var(--drift-y) * -1), 0); }
  to { transform: translate3d(var(--drift-x), var(--drift-y), 0); }
}
@keyframes ambientCloudDrift {
  from { transform: translate3d(calc(var(--drift-x) * -1), calc(var(--drift-y) * -1), 0); }
  to { transform: translate3d(var(--drift-x), var(--drift-y), 0); }
}
.ambient-toggle {
  position: absolute; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom));
  display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; height: 44px; padding: 0 14px;
  border: 1px solid rgba(247,235,215,.3); border-radius: 24px;
  color: rgba(247,235,215,.8); background: rgba(7,14,19,.5); cursor: pointer;
}
.ambient-toggle[hidden] { display: none; }
.ambient-toggle:hover { border-color: var(--cream); color: var(--cream); }
.ambient-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ambient-toggle-label { font-size: 12px; letter-spacing: .08em; white-space: nowrap; }
.ambient-toggle .ambient-play-icon { display: none; }
.ambient-toggle[aria-pressed="true"] .ambient-pause-icon { display: none; }
.ambient-toggle[aria-pressed="true"] .ambient-play-icon { display: block; }
@media (prefers-reduced-motion: reduce) {
  .ambient-scene:not(.is-motion-enabled) { visibility: hidden; }
  /* An explicit press of Play opts into background motion without changing the OS preference. */
  .ambient-scene.is-motion-enabled .ambient-door { animation: ambientDoorDrift var(--duration) ease-in-out var(--delay) infinite alternate !important; }
  .ambient-scene.is-motion-enabled .ambient-cloud-texture { animation: ambientCloudDrift var(--duration) ease-in-out var(--delay) infinite alternate !important; }
  .ambient-scene.is-motion-enabled.is-paused .ambient-door,
  .ambient-scene.is-motion-enabled.is-paused .ambient-cloud-texture { animation-play-state: paused !important; }
}
