/* A single motion system: fixed image dimensions, horizontal transform only. */
.splash-page .splash-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  z-index:0;
  transform:none;
  animation:none;
  transition:none;
  will-change:auto;
}
.splash-page .splash-slide.is-preparing,
.splash-page .splash-slide.is-active,
.splash-page .splash-slide.is-leaving{visibility:visible}
.splash-page .splash-slide.is-active{
  opacity:1;
  z-index:1;
  transition:opacity 1.2s ease;
}
/* Keep the outgoing image opaque beneath the incoming fade: no dark dip. */
.splash-page .splash-slide.is-leaving{opacity:1}
.splash-page .splash-slide>img{
  position:absolute;
  top:-5%;
  left:-3%;
  width:116%;
  height:116%;
  max-width:none;
  object-fit:cover;
  backface-visibility:hidden;
  transform:translate3d(0,0,0) scale(1.001);
  animation:none;
  will-change:auto;
}
.splash-page .splash-slide.is-preparing,
.splash-page .splash-slide.is-active{will-change:opacity}
.splash-page .splash-slide.is-preparing>img,
.splash-page .splash-slide.is-moving>img{will-change:transform}
.splash-page .splash-slide.is-moving>img{
  animation:splash-travel 12s linear both;
}
@keyframes splash-travel{
  from{transform:translate3d(0,0,0) scale(1.001)}
  to{transform:translate3d(-5%,0,0) scale(1.001)}
}
.splash-page .splash-slides.is-paused .splash-slide>img{
  animation-play-state:paused;
}
@media(prefers-reduced-motion:reduce){
  .splash-page .splash-slide.is-moving>img{animation:none;transform:none;will-change:auto}
  .splash-page .splash-slide.is-active{transition:none;will-change:auto}
}

/* WebGL keeps the full-screen surface still and pans its texture coordinates. */
.splash-page .splash-slides{z-index:0}
.splash-page .splash-canvas{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
}
.splash-page .splash-slides.has-webgl .splash-slide{
  visibility:hidden;
  opacity:0;
  animation:none;
  will-change:auto;
}
