/* v95 — stable OA intro and first hero slide motion */

/* ---------- Initial OA screen ---------- */
html,body{min-height:100%;}
.js body.intro-active{
  overflow:hidden!important;
  background:var(--black);
  overscroll-behavior:none;
}
.js .site-intro{
  position:fixed!important;
  inset:0!important;
  z-index:1000!important;
  width:100vw!important;
  height:100vh!important;
  height:100svh!important;
  height:100dvh!important;
  min-height:100vh!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:transparent!important;
  color:var(--cream);
  visibility:visible!important;
  opacity:1;
  contain:strict;
  isolation:isolate;
  transform:translateZ(0);
}
.site-intro.is-finished{display:none!important;}

.site-intro .intro-panel{
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  width:50.15vw!important;
  height:100%!important;
  background:var(--black)!important;
  z-index:1;
  transform:translate3d(0,0,0);
  transition:transform 1.08s cubic-bezier(.76,0,.24,1)!important;
  will-change:transform;
  backface-visibility:hidden;
}
.site-intro .intro-panel-left{left:0!important;right:auto!important;}
.site-intro .intro-panel-right{right:0!important;left:auto!important;}
.site-intro.is-opening .intro-panel-left{transform:translate3d(-101%,0,0)!important;}
.site-intro.is-opening .intro-panel-right{transform:translate3d(101%,0,0)!important;}

.site-intro .intro-title{
  position:relative;
  z-index:2;
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  transition:opacity .36s ease,transform .72s cubic-bezier(.22,.78,.2,1)!important;
  will-change:opacity,transform;
}
.site-intro.is-opening .intro-title{
  opacity:0!important;
  transform:translate3d(0,-16px,0) scale(.985)!important;
}

.site-intro .intro-name i{
  opacity:0!important;
  transform:translate3d(0,112%,0)!important;
  transition:opacity .45s ease,transform .88s cubic-bezier(.22,.78,.2,1)!important;
}
.site-intro.is-visible .intro-name>span:first-child i{
  opacity:1!important;
  transform:none!important;
  transition-delay:.10s!important;
}
.site-intro.is-visible .intro-name>span:nth-child(2) i{
  opacity:1!important;
  transform:none!important;
  transition-delay:.24s!important;
}
.site-intro .intro-accent{
  width:0!important;
  transition:width .54s cubic-bezier(.22,.78,.2,1) .62s!important;
}
.site-intro.is-visible .intro-accent{width:78px!important;}
.site-intro .intro-role{
  opacity:0!important;
  transform:translate3d(0,10px,0)!important;
  transition:opacity .42s ease .72s,transform .58s cubic-bezier(.22,.78,.2,1) .72s!important;
}
.site-intro.is-visible .intro-role{opacity:1!important;transform:none!important;}
.site-intro .intro-skip{
  opacity:0!important;
  transition:opacity .32s ease .84s,color .2s!important;
}
.site-intro.is-visible .intro-skip{opacity:1!important;}
.site-intro.is-opening .intro-skip{opacity:0!important;pointer-events:none;}

/* ---------- First hero slide ---------- */
.js [data-hero-item],
.js [data-hero-image]{
  animation:none!important;
}
.js [data-hero-item]{
  opacity:0!important;
  transform:translate3d(0,26px,0)!important;
  transition-property:opacity,transform!important;
  transition-duration:.72s,.88s!important;
  transition-timing-function:ease,cubic-bezier(.22,.78,.2,1)!important;
  will-change:opacity,transform;
}
.js .hero-intro[data-hero-item]{transition-delay:.04s!important;}
.js .hero h1[data-hero-item]{transition-delay:.12s!important;}
.js .hero-lead[data-hero-item]{transition-delay:.22s!important;}
.js .hero-actions[data-hero-item]{transition-delay:.32s!important;}
.js .hero-proof[data-hero-item]{transition-delay:.44s!important;}

.js body.is-hero-revealing [data-hero-item],
.js body.is-ready [data-hero-item]{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
}

.js .hero-visual[data-hero-image]{
  opacity:0!important;
  clip-path:none!important;
  transform:translate3d(0,22px,0) scale(1.025)!important;
  transition:opacity .72s ease .06s,transform 1.08s cubic-bezier(.22,.78,.2,1) .06s!important;
  will-change:opacity,transform;
}
.js body.is-hero-revealing .hero-visual[data-hero-image],
.js body.is-ready .hero-visual[data-hero-image]{
  opacity:1!important;
  clip-path:none!important;
  transform:translate3d(0,0,0) scale(1)!important;
  animation:none!important;
}
.js .hero-visual[data-hero-image] img{
  animation:none!important;
  transform:scale(1.075)!important;
  transition:transform 1.45s cubic-bezier(.22,.78,.2,1) .08s!important;
  will-change:transform;
}
.js body.is-hero-revealing .hero-visual[data-hero-image] img,
.js body.is-ready .hero-visual[data-hero-image] img{
  transform:scale(1.06)!important;
  animation:none!important;
}
.js .hero-caption{
  opacity:0!important;
  transform:translate3d(0,14px,0)!important;
  transition:opacity .48s ease .66s,transform .68s cubic-bezier(.22,.78,.2,1) .66s!important;
}
.js body.is-hero-revealing .hero-caption,
.js body.is-ready .hero-caption{opacity:1!important;transform:none!important;}

/* Header enters with the hero instead of popping in after the curtains. */
.js body.intro-active .site-header{opacity:0!important;pointer-events:none;}
.js body.is-hero-revealing .site-header,
.js body.is-ready .site-header{opacity:1!important;pointer-events:auto;}

/* Explicitly keep this sequence even when the OS uses reduced motion:
   this is the site's opening scene requested by the client. */
@media(prefers-reduced-motion:reduce){
  .js .site-intro{display:grid!important;}
  .site-intro.is-finished{display:none!important;}
  .site-intro .intro-panel,
  .site-intro .intro-title,
  .site-intro .intro-name i,
  .site-intro .intro-accent,
  .site-intro .intro-role,
  .js [data-hero-item],
  .js .hero-visual[data-hero-image],
  .js .hero-visual[data-hero-image] img,
  .js .hero-caption{
    transition-duration:.55s!important;
  }
}

@media(max-width:760px){
  .site-intro .intro-title{padding-inline:18px;}
  .site-intro.is-visible .intro-accent{width:56px!important;}

  .js [data-hero-item]{
    transform:translate3d(0,18px,0)!important;
    transition-duration:.56s,.68s!important;
  }
  .js .hero-visual[data-hero-image]{
    transform:translate3d(0,16px,0) scale(1.018)!important;
    transition-duration:.62s,.82s!important;
  }
}
