/* Home: slow dissolve, uninterrupted outgoing zoom and level house framing. */
.page-view[data-page="home"] .hero-split .eagle-slide-frame {
 opacity:0!important;
 z-index:0!important;
 transition:opacity 2.8s cubic-bezier(.45,0,.55,1)!important;
 will-change:opacity;
}
/* Keep an opaque photograph underneath the incoming fade to avoid a dark dip. */
.page-view[data-page="home"] .hero-split .eagle-slide-frame.is-exiting {
 opacity:1!important;
 z-index:1!important;
 transition:none!important;
}
.page-view[data-page="home"] .hero-split .eagle-slide-frame.is-active {
 opacity:1!important;
 z-index:2!important;
}
.page-view[data-page="home"] .hero-split .eagle-slide-frame:is(.is-active,.is-exiting) .hero-image {
 animation:eagle-steady-viewport-zoom 10s linear both!important;
 transform-origin:50% 50%!important;
}
/* User-supplied portrait original: preserve proportions without stretching. */
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-side {
 object-fit:cover!important;
 object-position:50% 40%!important;
 transform:none!important;
}
/* New source photos: use proportional cropping in every viewport. */
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-front,
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-beach,
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-balcony {
 object-fit:cover!important;
}
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-front {object-position:50% 30%!important;}
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-beach {object-position:50% 50%!important;}
.page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-balcony {object-position:62% 50%!important;}
/* Portrait framing: retain the natural proportions of both selected houses. */
@media (orientation:portrait) and (max-width:1100px) {
 .page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-side,
 .page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-front {
  object-fit:cover!important;
  object-position:center center!important;
  top:0!important;
  right:auto!important;
  bottom:auto!important;
  height:100%!important;
  max-width:none!important;
  transform-origin:center center!important;
 }
 .page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-side {
  width:100%!important;
  left:0!important;
  top:0!important;
  height:100%!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  transform:none!important;
 }
 .page-view[data-page="home"] #home .hero-split .eagle-slide-frame .hero-building-front {
  width:100%!important;
  left:0!important;
  top:0!important;
  object-position:50% 30%!important;
 }
 .page-view[data-page="home"] .hero-split .eagle-slide-frame:is(.is-active,.is-exiting) .hero-building-side,
 .page-view[data-page="home"] .hero-split .eagle-slide-frame:is(.is-active,.is-exiting) .hero-building-front {
  animation:eagle-house-portrait-zoom 10s linear both!important;
 }
}
/* Very tall phones: fit the portrait source ratio instead of cutting the awning.
   Keep one stable hero height across all four slides to avoid layout jumps. */
@media (orientation:portrait) and (max-width:700px) and (max-aspect-ratio:941/1672) {
 .page-view[data-page="home"] > section.hero#home {
  height:auto!important;
  aspect-ratio:941 / 1672!important;
 }
}
@keyframes eagle-house-portrait-zoom {
 from {scale:1.24;}
 to {scale:1;}
}
@media (prefers-reduced-motion:reduce) {
 .page-view[data-page="home"] .hero-split .eagle-slide-frame {
  transition:none!important;
  will-change:auto;
 }
 .page-view[data-page="home"] .hero-split .eagle-slide-frame:is(.is-active,.is-exiting) .hero-image {
  animation:none!important;
  scale:1!important;
 }
}
