/* Unified 3D presentation for every photographic area except the top hero. */
main .wmv-dimensional-zone {
  --wmv-perspective: 1450px;
  position: relative;
  perspective: var(--wmv-perspective);
  perspective-origin: 50% 45%;
  transform-style: preserve-3d;
  isolation: isolate;
}

main .wmv-dimensional-zone .wmv-dimensional-media {
  backface-visibility: hidden;
  transform: var(--wmv-dimensional-matrix, matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)) !important;
  transform-origin: center center !important;
  transform-style: preserve-3d !important;
  will-change: transform;
}

main .wmv-dimensional-zone[data-depth-active="true"] .wmv-dimensional-media {
  transition: filter 420ms ease;
}

main .video-preview.wmv-dimensional-zone,
main .paradise-photo.wmv-dimensional-zone,
main .bird-reference-card.wmv-dimensional-zone,
main .experience-media.wmv-dimensional-zone,
main .film-card.wmv-dimensional-zone {
  overflow: visible !important;
}

main .video-preview.wmv-dimensional-zone video,
main .paradise-photo.wmv-dimensional-zone img,
main .bird-reference-card.wmv-dimensional-zone img,
main .experience-media.wmv-dimensional-zone img,
main .film-card.wmv-dimensional-zone > img {
  position: relative !important;
  z-index: 2;
  display: block;
  max-width: 100%;
  height: auto !important;
  object-fit: contain !important;
  background: transparent !important;
  box-shadow: 0 28px 54px rgba(8, 42, 34, 0.15) !important;
}

main .light-story-stage.wmv-dimensional-zone {
  --wmv-perspective: 1800px;
}

main .light-story-stage.wmv-dimensional-zone .light-story-slide.is-active img {
  transform: var(--wmv-dimensional-matrix, matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)) !important;
  transform-origin: center center !important;
  transform-style: preserve-3d !important;
  backface-visibility: hidden;
  will-change: transform;
}

/* The complete-property gallery becomes a clean circular 3D orbit. */
.house-gallery .gallery-photo-grid {
  --wmv-gallery-rx: 0deg;
  --wmv-gallery-ry: 0deg;
  overflow: hidden !important;
  perspective: 1750px !important;
  perspective-origin: 50% 46% !important;
  transform-style: preserve-3d !important;
  background: transparent !important;
}

.house-gallery .gallery-photo-grid::before,
.house-gallery .gallery-photo-grid::after,
.house-gallery .gallery-photo::before,
.house-gallery .gallery-photo::after {
  display: none !important;
  content: none !important;
}

.house-gallery .gallery-photo,
.house-gallery .gallery-photo.has-media-backdrop {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  display: block !important;
  width: max-content !important;
  height: max-content !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backface-visibility: hidden;
  transform-style: preserve-3d !important;
  transform-origin: center center !important;
  will-change: transform, opacity;
  transition:
    transform 950ms cubic-bezier(.2, .78, .18, 1),
    opacity 680ms ease,
    visibility 0s linear 950ms !important;
}

.house-gallery .gallery-photo img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: min(68vw, 980px) !important;
  max-height: min(68vh, 700px) !important;
  object-fit: contain !important;
  object-position: center !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: transparent !important;
  box-shadow: 0 34px 64px rgba(7, 42, 34, 0.2) !important;
  filter: none !important;
  transform: none !important;
}

.house-gallery .gallery-photo.is-orbit-current,
.house-gallery .gallery-photo.is-orbit-previous,
.house-gallery .gallery-photo.is-orbit-next,
.house-gallery .gallery-photo.is-orbit-far-previous,
.house-gallery .gallery-photo.is-orbit-far-next {
  visibility: visible !important;
  transition-delay: 0s !important;
}

.house-gallery .gallery-photo.is-orbit-current {
  z-index: 6 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform:
    translate3d(-50%, -50%, 150px)
    rotateX(var(--wmv-gallery-rx))
    rotateY(var(--wmv-gallery-ry))
    scale(.96) !important;
}

.house-gallery .gallery-photo.is-orbit-previous {
  z-index: 4 !important;
  opacity: .68 !important;
  pointer-events: auto !important;
  transform: translate3d(calc(-50% - clamp(270px, 31vw, 520px)), -50%, -190px) rotateY(49deg) scale(.69) !important;
}

.house-gallery .gallery-photo.is-orbit-next {
  z-index: 4 !important;
  opacity: .68 !important;
  pointer-events: auto !important;
  transform: translate3d(calc(-50% + clamp(270px, 31vw, 520px)), -50%, -190px) rotateY(-49deg) scale(.69) !important;
}

.house-gallery .gallery-photo.is-orbit-far-previous {
  z-index: 2 !important;
  opacity: .24 !important;
  pointer-events: none !important;
  transform: translate3d(calc(-50% - clamp(430px, 48vw, 780px)), -50%, -420px) rotateY(67deg) scale(.48) !important;
}

.house-gallery .gallery-photo.is-orbit-far-next {
  z-index: 2 !important;
  opacity: .24 !important;
  pointer-events: none !important;
  transform: translate3d(calc(-50% + clamp(430px, 48vw, 780px)), -50%, -420px) rotateY(-67deg) scale(.48) !important;
}

.house-gallery .gallery-photo.is-orbit-hidden {
  z-index: 1 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translate3d(-50%, -50%, -620px) scale(.35) !important;
}

.house-gallery .gallery-photo.is-orbit-previous:hover,
.house-gallery .gallery-photo.is-orbit-next:hover {
  opacity: .9 !important;
}

/* Existing Three.js Stay scenes remain the strongest 3D moment. */
.villas-section .property-window-stage.is-stay-orbit-ready {
  perspective: 1600px;
  transform-style: preserve-3d;
}

@media (max-width: 900px) {
  main .wmv-dimensional-zone { --wmv-perspective: 1150px; }

  .house-gallery .gallery-photo img {
    max-width: 78vw !important;
    max-height: min(62vh, 560px) !important;
  }

  .house-gallery .gallery-photo.is-orbit-previous {
    opacity: .43 !important;
    transform: translate3d(calc(-50% - 42vw), -50%, -210px) rotateY(52deg) scale(.62) !important;
  }

  .house-gallery .gallery-photo.is-orbit-next {
    opacity: .43 !important;
    transform: translate3d(calc(-50% + 42vw), -50%, -210px) rotateY(-52deg) scale(.62) !important;
  }

  .house-gallery .gallery-photo.is-orbit-far-previous,
  .house-gallery .gallery-photo.is-orbit-far-next {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

@media (max-width: 560px) {
  .house-gallery .gallery-photo img {
    max-width: 88vw !important;
    max-height: min(58vh, 470px) !important;
  }

  .house-gallery .gallery-photo.is-orbit-current {
    transform: translate3d(-50%, -50%, 80px) rotateX(var(--wmv-gallery-rx)) rotateY(var(--wmv-gallery-ry)) scale(.98) !important;
  }

  .house-gallery .gallery-photo.is-orbit-previous {
    opacity: .2 !important;
    transform: translate3d(calc(-50% - 58vw), -50%, -230px) rotateY(57deg) scale(.56) !important;
  }

  .house-gallery .gallery-photo.is-orbit-next {
    opacity: .2 !important;
    transform: translate3d(calc(-50% + 58vw), -50%, -230px) rotateY(-57deg) scale(.56) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  main .wmv-dimensional-zone .wmv-dimensional-media,
  main .light-story-stage.wmv-dimensional-zone .light-story-slide.is-active img {
    transform: none !important;
    will-change: auto;
  }

  .house-gallery .gallery-photo {
    transition: none !important;
  }
}
