/* A single shared roadside set. Camera travel changes perspective, not scenery identity. */
.park-world {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  pointer-events: none !important;
  user-select: none;
  --park-left-depth: -175px;
  --park-right-depth: -215px;
  --park-lamp-depth: -435px;
}
.park-world *, .park-world *::before, .park-world *::after { pointer-events: none !important; }
.park-world-layer { position: absolute; transform-style: preserve-3d; }
.park-verge {
  bottom: -28svh;
  width: 225svh;
  height: 150svh;
  transform-origin: center bottom;
}
.park-verge img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center bottom;
  /* The source contains soil/contact shadows; no floating sticker shadow. */
}
.park-verge-left { left: -40svh; transform: translateZ(var(--park-left-depth)); }
.park-verge-right { right: -40svh; transform: translateZ(var(--park-right-depth)); }
.park-path-lamp {
  left: 74%;
  bottom: 38%;
  width: 52px;
  height: 160px;
  transform: translateZ(var(--park-lamp-depth));
  transform-origin: center bottom;
}
.park-path-lamp svg { display: block; width: 100%; height: 100%; overflow: visible; }
.park-lamp-glass { filter: drop-shadow(0 0 calc(var(--journey-magic, 0) * 5px) #c9f2c7); }
@media (min-width: 601px) and (max-width: 1050px) {
  .park-verge-left { left: -48svh; }
  .park-verge-right { right: -48svh; }
  .park-path-lamp { width: 46px; height: 145px; }
}
@media (max-width: 600px) {
  .park-world { --park-left-depth: -175px; --park-right-depth: -205px; --park-lamp-depth: -350px; }
  .park-verge-left { left: -65svh; }
  .park-verge-right { right: -65svh; }
  .park-path-lamp { left: 77%; bottom: 40%; width: 40px; height: 126px; }
}
/* All scenery stays attached to the same world when motion is paused. */
#journey-app[data-motion="still"] .park-world *,
#journey-app[data-motion="still"] .park-world *::before,
#journey-app[data-motion="still"] .park-world *::after { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { .park-world *, .park-world *::before, .park-world *::after { animation: none !important; transition: none !important; } }
