
/* v92 rebuilt homepage hero: independent from legacy .slide rules */
.hero-rebuilt{
  position:relative;
  min-height:82vh;
  overflow:hidden;
  background:#000;
  isolation:isolate;
  touch-action:pan-y;
}
.hero-rebuilt::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:10;
  pointer-events:none;
  background:linear-gradient(to top, rgba(0,0,0,.58), rgba(0,0,0,.12));
}
.hv-slide{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transition:opacity 950ms ease-in-out;
  background:#000;
}
.hv-slide.is-active{
  z-index:5;
  opacity:1;
  pointer-events:auto;
}
.hv-photo,
.hv-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1);
  transform-origin:center center;
  backface-visibility:hidden;
}
.hv-photo{
  will-change:transform;
}
.hv-slide.is-active .hv-photo{
  animation:hvPhotoSlowZoom 4200ms linear forwards;
}
@keyframes hvPhotoSlowZoom{
  0%{transform:scale(1);}
  100%{transform:scale(1.07);}
}
.hv-video{
  background:#000;
}
.hv-video-link{
  position:absolute;
  right:34px;
  bottom:54px;
  z-index:20;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.58);
  border-radius:999px;
  padding:9px 15px;
  color:#fff;
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(6px);
  font-size:13px;
  letter-spacing:.08em;
  pointer-events:none;
}
.hero-rebuilt .hero-content{
  position:absolute;
  left:64px;
  right:64px;
  bottom:84px;
  z-index:20;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:34px;
  color:#fff;
  pointer-events:none;
}
.hero-rebuilt .title{max-width:860px}
.hero-rebuilt .title h1{
  margin:0;
  font-size:clamp(34px,4.8vw,54px);
  line-height:1.15;
  letter-spacing:.02em;
  font-weight:500;
}
.hero-rebuilt .title p{
  margin:18px 0 0;
  max-width:620px;
  font-size:15px;
  line-height:1.95;
  color:rgba(255,255,255,.85);
}
.hv-dots{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  z-index:30;
}
.hv-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  background:#fff;
  border:none;
  opacity:.35;
  cursor:pointer;
  padding:0;
}
.hv-dot.is-active{
  opacity:1;
  width:24px;
}
@media (max-width:760px){
  .hero-rebuilt{
    min-height:82vh;
  }
  .hero-rebuilt .hero-content{
    left:22px;
    right:22px;
    bottom:78px;
  }
  .hero-rebuilt .title h1{
    font-size:clamp(29px,8vw,40px);
  }
  .hero-rebuilt .title p{
    font-size:13px;
    line-height:1.75;
  }
  .hv-video-link{
    right:20px;
    bottom:48px;
    padding:8px 12px;
    font-size:11px;
  }
}
@media (prefers-reduced-motion: reduce){
  .hv-slide{
    transition:opacity 300ms ease;
  }
  .hv-slide.is-active .hv-photo{
    animation:none;
  }
}


/* v93: outgoing photo keeps zoom and fades out darkly for 1s */
.hv-slide.is-leaving{
  z-index:6;
  opacity:0;
  transition:opacity 1000ms ease-in-out;
  pointer-events:none;
}
.hv-slide.is-leaving::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  background:rgba(0,0,0,.28);
  pointer-events:none;
}
.hv-slide.is-leaving .hv-photo{
  animation:none !important;
  will-change:opacity;
}


/* v95: softer hero photo zoom */
@keyframes hvPhotoSlowZoom{
  0%{transform:scale(1);}
  100%{transform:scale(1.07);}
}
@keyframes heroZoomLayerGrow{
  0%{transform:scale(1) translate3d(0,0,0);}
  100%{transform:scale(1.07) translate3d(0,0,0);}
}
@keyframes heroZoomActiveV91{
  0%{transform:scale(1) translate3d(0,0,0);}
  100%{transform:scale(1.07) translate3d(0,0,0);}
}


/* v97: subtle page-turn transition between hero visuals */
.hero-rebuilt{
  perspective:1200px;
}
.hv-slide{
  transform:translateX(0) rotateY(0deg);
  transform-origin:center center;
  transition:
    opacity 1050ms ease-in-out,
    transform 1050ms cubic-bezier(.22,.61,.36,1),
    filter 1050ms ease-in-out;
  will-change:opacity, transform, filter;
}
.hv-slide.turn-enter-from-right{
  opacity:0;
  transform:translateX(5.5%) rotateY(-2.2deg);
  filter:brightness(.88);
}
.hv-slide.turn-enter-from-left{
  opacity:0;
  transform:translateX(-5.5%) rotateY(2.2deg);
  filter:brightness(.88);
}
.hv-slide.is-active{
  transform:translateX(0) rotateY(0deg);
  filter:brightness(1);
}
.hv-slide.is-leaving.turn-leave-left{
  z-index:6;
  opacity:0;
  transform:translateX(-4.2%) rotateY(1.6deg);
  filter:brightness(.72);
  pointer-events:none;
}
.hv-slide.is-leaving.turn-leave-right{
  z-index:6;
  opacity:0;
  transform:translateX(4.2%) rotateY(-1.6deg);
  filter:brightness(.72);
  pointer-events:none;
}
.hv-slide.is-leaving::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  background:rgba(0,0,0,.18);
  pointer-events:none;
}
.hv-slide.is-leaving .hv-photo{
  animation:none !important;
}
@media (max-width:760px){
  .hv-slide.turn-enter-from-right{
    transform:translateX(7%) rotateY(-1.2deg);
  }
  .hv-slide.turn-enter-from-left{
    transform:translateX(-7%) rotateY(1.2deg);
  }
  .hv-slide.is-leaving.turn-leave-left{
    transform:translateX(-5.2%) rotateY(1deg);
  }
  .hv-slide.is-leaving.turn-leave-right{
    transform:translateX(5.2%) rotateY(-1deg);
  }
}
@media (prefers-reduced-motion: reduce){
  .hv-slide,
  .hv-slide.turn-enter-from-right,
  .hv-slide.turn-enter-from-left,
  .hv-slide.is-leaving.turn-leave-left,
  .hv-slide.is-leaving.turn-leave-right{
    transform:none;
    filter:none;
    transition:opacity 300ms ease;
  }
}


/* v98: right-to-left slide-in transition, photo zoom starts after arrival */
.hv-slide{
  transform:translateX(0) !important;
  rotate:0deg !important;
  filter:none !important;
  transition:
    opacity 950ms ease-in-out,
    transform 950ms cubic-bezier(.22,.61,.36,1) !important;
}
.hv-slide.is-entering-right{
  opacity:1 !important;
  transform:translateX(100%) !important;
  z-index:7 !important;
}
.hv-slide.is-entering-left{
  opacity:1 !important;
  transform:translateX(-100%) !important;
  z-index:7 !important;
}
.hv-slide.is-active{
  transform:translateX(0) !important;
  filter:none !important;
}
.hv-slide.is-leaving{
  z-index:6 !important;
  opacity:0 !important;
  transform:translateX(0) !important;
  filter:brightness(.76) !important;
  transition:
    opacity 950ms ease-in-out,
    filter 950ms ease-in-out !important;
  pointer-events:none !important;
}
.hv-slide.is-leaving::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  background:rgba(0,0,0,.2);
  pointer-events:none;
}
.hv-slide.is-leaving .hv-photo{
  animation:none !important;
}
.hv-slide.is-active .hv-photo{
  animation:hvPhotoSlowZoom 3300ms linear forwards;
}
@keyframes hvVideoBrightenV98{
  0%{opacity:1;}
  100%{opacity:0;}
}
.hv-video-slide::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:18;
  background:#000;
  opacity:0;
  pointer-events:none;
}
.hv-video-slide.is-active::before{
  animation:hvVideoBrightenV98 650ms ease-out forwards;
}
@media (prefers-reduced-motion: reduce){
  .hv-slide,
  .hv-slide.is-entering-right,
  .hv-slide.is-entering-left,
  .hv-slide.is-leaving{
    transform:none !important;
    transition:opacity 300ms ease !important;
    filter:none !important;
  }
}


/* v100: true right-to-left slide-in. Incoming slide starts off-screen, then moves to x=0. */
.hv-slide{
  transform:translateX(0) !important;
  filter:none !important;
  transition:
    opacity 1050ms ease-in-out,
    transform 1050ms cubic-bezier(.22,.61,.36,1),
    filter 1050ms ease-in-out !important;
}
.hv-slide.is-active{
  opacity:1 !important;
  transform:translateX(0) !important;
  z-index:5 !important;
  pointer-events:auto !important;
}

/* These selectors are deliberately more specific than .hv-slide.is-active. */
.hv-slide.is-active.is-entering-right{
  opacity:1 !important;
  transform:translateX(100%) !important;
  z-index:8 !important;
}
.hv-slide.is-active.is-entering-left{
  opacity:1 !important;
  transform:translateX(-100%) !important;
  z-index:8 !important;
}

.hv-slide.is-active.is-leaving{
  z-index:6 !important;
  opacity:0 !important;
  transform:translateX(0) !important;
  filter:brightness(.72) !important;
  pointer-events:none !important;
}
.hv-slide.is-active.is-leaving::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  background:rgba(0,0,0,.2);
  pointer-events:none;
}
.hv-slide.is-active.is-leaving .hv-photo{
  animation:none !important;
}

.hv-slide.is-active .hv-photo{
  animation:hvPhotoSlowZoom 3300ms linear forwards;
}

@media (prefers-reduced-motion: reduce){
  .hv-slide,
  .hv-slide.is-active.is-entering-right,
  .hv-slide.is-active.is-entering-left,
  .hv-slide.is-active.is-leaving{
    transform:none !important;
    transition:opacity 300ms ease !important;
    filter:none !important;
  }
}


/* v102: restore natural fade + slow zoom; disable slide-in/page-turn effects */
.hv-slide,
.hv-slide.is-active,
.hv-slide.is-active.is-entering-right,
.hv-slide.is-active.is-entering-left,
.hv-slide.turn-enter-from-right,
.hv-slide.turn-enter-from-left,
.hv-slide.is-leaving.turn-leave-left,
.hv-slide.is-leaving.turn-leave-right{
  transform:none !important;
  rotate:0deg !important;
  filter:none !important;
  transition:opacity 1000ms ease-in-out !important;
}
.hv-slide{
  opacity:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.hv-slide.is-active{
  opacity:1 !important;
  z-index:5 !important;
  pointer-events:auto !important;
}
.hv-slide.is-leaving{
  opacity:0 !important;
  z-index:6 !important;
  filter:brightness(.78) !important;
  transition:opacity 1000ms ease-in-out, filter 1000ms ease-in-out !important;
  pointer-events:none !important;
}
.hv-slide.is-leaving::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  background:rgba(0,0,0,.16);
  pointer-events:none;
}
.hv-slide.is-leaving .hv-photo{
  animation:none !important;
}
.hv-slide.is-active .hv-photo{
  animation:hvPhotoSlowZoom 4200ms ease-out forwards !important;
}
@keyframes hvPhotoSlowZoom{
  0%{transform:scale(1);}
  100%{transform:scale(1.07);}
}
.hv-video-slide::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:18;
  background:#000;
  opacity:0;
  pointer-events:none;
}
.hv-video-slide.is-active::before{
  animation:hvVideoBrightenV102 650ms ease-out forwards;
}
@keyframes hvVideoBrightenV102{
  0%{opacity:1;}
  100%{opacity:0;}
}
