/* Hero rotation: three slides per visit, 6 s each, fade in/out between them and a slow zoom-in while
   a slide is on screen. Carries the same ?v=31 as the rest of the site (new file name set). */
.hero-stage{position:absolute;inset:0;overflow:hidden;background:#04131f}
.hero-layer{position:absolute;inset:0;opacity:0;transition:opacity var(--heroFade,1.1s) var(--ease,ease)}
.hero-layer.on{opacity:1}

/* the photo is only scaled — never re-laid-out — so the zoom cannot shift or blur the composition */
.hero-img{width:100%;height:100%;object-fit:cover;object-position:center 32%;
  transform:scale(1);will-change:transform}
.hero-layer.on .hero-img{animation:heroZoom var(--heroZoomDur,7100ms) linear both}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(var(--heroZoom,1.09))}}

@media(prefers-reduced-motion:reduce){
  .hero-layer{transition:none}
  .hero-layer.on .hero-img{animation:none}       /* respect reduced motion: no zoom, no drift */
}
