/* Elementor-friendly motion utilities. Add these classes in Elementor > Advanced > CSS Classes. */
html.sph-motion-active .sph-reveal{opacity:0;transform:translate3d(0,var(--sph-motion-distance),0);filter:none;transition:opacity var(--sph-motion-duration) var(--sph-motion-easing),transform var(--sph-motion-duration) var(--sph-motion-easing),filter var(--sph-motion-duration) var(--sph-motion-easing);transition-delay:var(--sph-delay,0ms);will-change:opacity,transform}
html.sph-motion-active .sph-reveal.sph-reveal--fade{transform:none}
html.sph-motion-active .sph-reveal.sph-reveal--left{transform:translate3d(calc(var(--sph-motion-distance)*-1),0,0)}
html.sph-motion-active .sph-reveal.sph-reveal--right{transform:translate3d(var(--sph-motion-distance),0,0)}
html.sph-motion-active .sph-reveal.sph-reveal--zoom{transform:scale(.965) translate3d(0,calc(var(--sph-motion-distance)*.35),0)}
html.sph-motion-active .sph-reveal.sph-reveal--blur{transform:translate3d(0,calc(var(--sph-motion-distance)*.55),0);filter:blur(12px)}
html.sph-motion-active .sph-reveal.is-revealed{opacity:1;transform:none;filter:none;will-change:auto}
html.sph-motion-active .sph-stagger>*{opacity:0;transform:translate3d(0,var(--sph-motion-distance),0);transition:opacity var(--sph-motion-duration) var(--sph-motion-easing),transform var(--sph-motion-duration) var(--sph-motion-easing);transition-delay:var(--sph-delay,0ms)}
html.sph-motion-active .sph-stagger.is-revealed>*{opacity:1;transform:none}
.sph-parallax{transform:translate3d(0,var(--sph-parallax-y,0px),0);will-change:transform}.sph-parallax img{backface-visibility:hidden}
.sph-micro-float{animation:sphMicroFloat 6s ease-in-out infinite}.sph-micro-float.sph-delay-1{animation-delay:-1s}.sph-micro-float.sph-delay-2{animation-delay:-2s}@keyframes sphMicroFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-10px,0)}}
.sph-marquee{overflow:hidden;white-space:nowrap}.sph-marquee__track{display:inline-flex;gap:2rem;min-width:max-content;animation:sphMarquee 24s linear infinite}.sph-marquee:hover .sph-marquee__track{animation-play-state:paused}@keyframes sphMarquee{to{transform:translateX(-50%)}}
.sph-rotate-words{display:inline-grid;overflow:hidden;vertical-align:bottom}.sph-rotate-words>span{grid-area:1/1;opacity:0;transform:translateY(55%);animation:sphRotateWords 9s var(--sph-motion-easing) infinite}.sph-rotate-words>span:nth-child(2){animation-delay:3s}.sph-rotate-words>span:nth-child(3){animation-delay:6s}@keyframes sphRotateWords{0%{opacity:0;transform:translateY(55%)}8%,27%{opacity:1;transform:none}34%,100%{opacity:0;transform:translateY(-55%)}}
.sph-image-reveal{position:relative;overflow:hidden}.sph-image-reveal::after{content:"";position:absolute;inset:0;background:var(--sph-primary);transform:translateX(0);transition:transform 1s var(--sph-motion-easing);z-index:2;pointer-events:none}.sph-image-reveal.is-revealed::after{transform:translateX(102%)}
.sph-tilt-card{transform-style:preserve-3d;transition:transform .3s var(--sph-motion-easing)}.sph-tilt-card:hover{transform:perspective(900px) rotateX(1.3deg) rotateY(-1.3deg) translateY(-4px)}
.sph-line-link{position:relative;text-decoration:none}.sph-line-link::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s var(--sph-motion-easing)}.sph-line-link:hover::after{transform:scaleX(1);transform-origin:left}

/* Page transitions */
.sph-page-transition{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;background:#fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--sph-page-transition-duration) ease,visibility var(--sph-page-transition-duration) ease}.sph-page-transition__mark{width:min(210px,38vw);opacity:.74;transform:translateY(8px) scale(.98);transition:transform var(--sph-page-transition-duration) var(--sph-motion-easing),opacity var(--sph-page-transition-duration) ease}.sph-page-transition__mark img{width:100%;height:auto}.sph-page-transition.is-active{opacity:1;visibility:visible;pointer-events:auto}.sph-page-transition.is-active .sph-page-transition__mark{opacity:1;transform:none}.sph-page-transition-curtain .sph-page-transition{clip-path:inset(0 50% 0 50%);opacity:1;visibility:hidden;transition:clip-path calc(var(--sph-page-transition-duration)*1.6) var(--sph-motion-easing),visibility 0s linear calc(var(--sph-page-transition-duration)*1.6)}.sph-page-transition-curtain .sph-page-transition.is-active{clip-path:inset(0);visibility:visible;transition-delay:0s}.sph-page-transition-curtain .sph-page-transition__mark{opacity:0}.sph-page-transition-curtain .sph-page-transition.is-active .sph-page-transition__mark{opacity:1}

/* Back to top */
.sph-back-to-top{position:fixed;right:22px;bottom:24px;width:46px;height:46px;border:1px solid var(--sph-border);border-radius:999px;background:color-mix(in srgb,#fff 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--sph-heading);display:grid;place-items:center;box-shadow:0 12px 38px rgba(17,19,24,.1);opacity:0;visibility:hidden;transform:translateY(10px);transition:.28s var(--sph-motion-easing);z-index:460}.sph-back-to-top svg{width:18px}.sph-back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.sph-back-to-top:hover{background:var(--sph-heading);color:#fff;transform:translateY(-3px)}

/* Scroll-story utilities, designed to work with Elementor containers. */
.sph-sticky-story{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5rem)!important;align-items:start}.sph-sticky-story__media{position:sticky;top:calc(var(--sph-header-height) + 28px);min-height:62vh}.sph-sticky-story__content>*+*{margin-top:20vh}.sph-layered-cards{position:relative}.sph-layered-cards>*{position:sticky;top:calc(var(--sph-header-height) + 28px);transform-origin:center top}.sph-layered-cards>*:nth-child(2){top:calc(var(--sph-header-height) + 46px)}.sph-layered-cards>*:nth-child(3){top:calc(var(--sph-header-height) + 64px)}

@media(max-width:767px){.sph-sticky-story{grid-template-columns:1fr}.sph-sticky-story__media{position:relative;top:auto;min-height:0}.sph-sticky-story__content>*+*{margin-top:56px}.sph-back-to-top{right:16px;bottom:82px}.sph-motion-mobile-disabled .sph-reveal,.sph-motion-mobile-disabled .sph-stagger>*,.sph-motion-mobile-disabled .sph-parallax{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important}}
@media(prefers-reduced-motion:reduce){.sph-reveal,.sph-stagger>*,.sph-parallax,.sph-micro-float,.sph-marquee__track,.sph-rotate-words>span,.sph-image-reveal::after{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important}.sph-page-transition{display:none!important}}

/* Combine reveal and parallax without transform collisions. */
html.sph-motion-active .sph-reveal.is-revealed.sph-parallax{transform:translate3d(0,var(--sph-parallax-y,0px),0)}

/* Additional Elementor-friendly typography/interaction patterns. */
.sph-animated-title{overflow:hidden}
html.sph-motion-active .sph-animated-title .elementor-heading-title{opacity:0;transform:translate3d(0,105%,0);transition:opacity var(--sph-motion-duration) var(--sph-motion-easing),transform var(--sph-motion-duration) var(--sph-motion-easing)}
html.sph-motion-active .sph-animated-title.is-revealed .elementor-heading-title{opacity:1;transform:none}
.sph-gradient-heading .elementor-heading-title{background:linear-gradient(100deg,var(--sph-primary),color-mix(in srgb,var(--sph-primary) 35%,var(--sph-accent)),var(--sph-accent));-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent}
.sph-heading-underline .elementor-heading-title{display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone;background:linear-gradient(transparent 78%,color-mix(in srgb,var(--sph-accent) 36%,transparent) 0);padding-inline:.02em}
.sph-hover-lift{transition:transform .35s var(--sph-motion-easing),box-shadow .35s ease}.sph-hover-lift:hover{transform:translateY(-7px)}

/* Elementor editor preview: never hide or transform editable content. */
.sph-elementor-editing .sph-reveal,
.sph-elementor-editing .sph-reveal--fade,
.sph-elementor-editing .sph-reveal--left,
.sph-elementor-editing .sph-reveal--right,
.sph-elementor-editing .sph-reveal--zoom,
.sph-elementor-editing .sph-reveal--blur,
.sph-elementor-editing .sph-image-reveal,
.sph-elementor-editing .sph-animated-title,
.sph-elementor-editing .sph-parallax,
.sph-elementor-editing .sph-micro-float {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  clip-path: none !important;
  animation: none !important;
  transition: none !important;
}
