/* Motion is a progressive enhancement: all content stays visible without JavaScript. */
.motion-ready .scroll-reveal{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1),clip-path 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .scroll-reveal:not(.is-revealed){opacity:0;transform:translate3d(0,48px,0)}
.motion-ready .scroll-reveal.reveal-image:not(.is-revealed){clip-path:inset(8% 0 0 0);transform:translate3d(0,64px,0)}
.motion-ready .scroll-reveal.is-revealed{opacity:1;transform:translate3d(0,0,0);clip-path:inset(-20px)}
.motion-ready .intro-image.scroll-reveal.is-revealed{clip-path:none}
.motion-ready .hero-stage{animation:ot-hero-arrive 1.25s cubic-bezier(.2,.7,.2,1) both}
.motion-ready .hero h1{animation:ot-title-arrive 1.4s .16s cubic-bezier(.2,.7,.2,1) both}
.motion-ready .hero-topline,.motion-ready .hero-bottomline{animation:ot-caption-arrive 1.3s .45s ease both}
@keyframes ot-hero-arrive{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes ot-title-arrive{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(-20px)}}
@keyframes ot-caption-arrive{from{opacity:0}to{opacity:1}}
.hero-slide{overflow:hidden}
.parallax-clip{height:100%;width:100%;overflow:hidden;position:relative}
.about-visual.has-parallax{overflow:hidden}
.has-parallax .parallax-image{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.14);transform-origin:center;backface-visibility:hidden}
.parallax-clip>.parallax-image{width:100%;height:100%;object-fit:cover}
.motion-marquee{position:relative;isolation:isolate;margin:95px 0 100px;padding:62px 0 55px;border:0;overflow:hidden;background:var(--bg);line-height:1}
.motion-marquee:before{content:'';position:absolute;inset:-100px -20px -10px;background:url('../images/flow-lines.svg') center 32%/cover no-repeat;opacity:.7;z-index:-1;pointer-events:none}
.marquee-track{display:flex;width:max-content;animation:ot-marquee-left 36s linear infinite;will-change:transform}
.marquee-group{display:flex;align-items:center;flex:none;gap:45px;padding-right:45px}
.marquee-word{display:block;flex:none;white-space:nowrap;font-family:var(--body);font-size:clamp(70px,9.5vw,160px);font-weight:700;letter-spacing:-.065em;color:#f4f3ee;line-height:1.15}
.marquee-word.is-outline{color:transparent;-webkit-text-stroke:1.3px #e7e6dd}
.marquee-star{display:block;flex:none;font-family:Arial,sans-serif;font-size:clamp(45px,6vw,92px);font-weight:400;color:var(--accent);line-height:1;margin-top:5px}
.marquee-track--second{margin-top:18px;animation-duration:44s;animation-delay:-8s}
.marquee-track--second .marquee-word{font-size:clamp(64px,8.5vw,140px)}
.marquee-track--second .marquee-star{color:transparent;-webkit-text-stroke:1px #aaa99e}
body:not(.ot-marquee-enabled) .marquee-track{animation:none;will-change:auto}
@keyframes ot-marquee-left{to{transform:translate3d(-50%,0,0)}}
@media(max-width:760px){
  .motion-ready .scroll-reveal:not(.is-revealed){transform:translate3d(0,30px,0)}
  .motion-ready .scroll-reveal.reveal-image:not(.is-revealed){transform:translate3d(0,38px,0)}
  .motion-marquee{margin:56px 0 57px;padding:40px 0 36px}
  .marquee-group{gap:24px;padding-right:24px}
  .marquee-word{font-size:78px;letter-spacing:-.06em}
  .marquee-star{font-size:49px}
  .marquee-track--second{margin-top:16px}
  .marquee-track--second .marquee-word{font-size:69px}
  .marquee-track{animation-duration:30s}
  .marquee-track--second{animation-duration:37s}
}
@media(prefers-reduced-motion:reduce){
  .motion-ready .scroll-reveal,.motion-ready .scroll-reveal:not(.is-revealed){opacity:1;transform:none;clip-path:none;transition:none}
  .marquee-track{animation:none;will-change:auto}
  .has-parallax .parallax-image{transform:none}
  .motion-ready .hero-stage,.motion-ready .hero h1,.motion-ready .hero-topline,.motion-ready .hero-bottomline{animation:none}
}
