.reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .74s var(--ease),transform .74s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.07s}.reveal-delay-2{transition-delay:.14s}.reveal-delay-3{transition-delay:.21s}
.green-energy{position:absolute;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(243,112,33,.07),transparent 69%);filter:blur(15px);animation:energyDrift 9s ease-in-out infinite;pointer-events:none}
@keyframes energyDrift{0%,100%{transform:translate3d(-7px,-7px,0) scale(.94);opacity:.35}50%{transform:translate3d(15px,10px,0) scale(1.06);opacity:.62}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.green-energy,.footer-signal::after,.engagement-track::before,.modal-scan,.map-pulse,.map-pulse::before,.map-pulse::after,.location-line i{animation:none!important}.page-wipe{display:none}}

/* richer motion, still governed by one vocabulary */
.page-hero .eyebrow.is-visible{animation:labelSettle .7s var(--ease) both}
.expertise-card.reveal.is-visible{transition-property:opacity,transform,background}
.product-row.reveal.is-visible{transition-property:opacity,transform,background,padding}
@keyframes labelSettle{0%{letter-spacing:.28em;opacity:.2}100%{letter-spacing:.15em;opacity:1}}
@media(prefers-reduced-motion:reduce){
  .page-hero-media img,.page-hero-media video,.home-hero-media img,.home-hero-media video,.hero-atmosphere::before,.hero-atmosphere::after,.contact-map img,.contact-map::before,.about-world .visual-frame::after,.services-visual::after{animation:none!important}
  .home-hero-media video,.page-hero-media video,.route-stage video{display:none}
}
.home-hero h1.reveal,.page-hero h1.reveal{
  clip-path:inset(0 0 13% 0);
  transform:translate3d(0,30px,0);
  transition:opacity .82s var(--ease),transform .9s var(--ease),clip-path 1s var(--ease);
}
.home-hero h1.reveal.is-visible,.page-hero h1.reveal.is-visible{clip-path:inset(0);transform:none}
.section-head h2.reveal,.portfolio-head h2.reveal,.about-story h2.reveal{
  clip-path:inset(0 0 10% 0);transition:opacity .74s var(--ease),transform .8s var(--ease),clip-path .9s var(--ease)
}
.section-head h2.reveal.is-visible,.portfolio-head h2.reveal.is-visible,.about-story h2.reveal.is-visible{clip-path:inset(0)}
@media(prefers-reduced-motion:reduce){.home-hero h1.reveal,.page-hero h1.reveal,.section-head h2.reveal,.portfolio-head h2.reveal,.about-story h2.reveal{clip-path:none!important}}
