/* Explicit full-motion presentation requested for this preview, including OS reduce mode. */
html.motion-full{--motion-ease:cubic-bezier(.22,1,.36,1)}
html.motion-full .client-track.running{animation:clientLoop var(--client-duration,65s) linear infinite!important;animation-play-state:running!important;transform:translate3d(0,0,0)}
html.motion-full .client-track.running.reverse{animation-direction:reverse!important}
html.motion-full .marquee-track.is-ready{animation:marqueeLoop var(--marquee-duration,24s) linear infinite!important;animation-play-state:running!important;transform:translate3d(0,0,0)!important}
/* Do not put !important on transform: it would override the keyframes. */
html.motion-full .marquee-track.is-ready{transform:unset!important}
@keyframes continuousServiceLoop{from{translate:0 0}to{translate:var(--marquee-distance) 0}}
html.motion-full .marquee-track.is-ready{animation-name:continuousServiceLoop!important;will-change:translate}
html.motion-full .text-motion .motion-word{display:inline-block;opacity:0!important;transform:translate3d(0,30px,0)!important;transition:opacity .8s var(--motion-ease),transform .95s var(--motion-ease)!important;transition-delay:var(--word-delay,0ms)!important;vertical-align:baseline}
html.motion-full .text-motion.motion-visible .motion-word{opacity:1!important;transform:translate3d(0,0,0)!important}
html.motion-full .hero-title .motion-word{display:inline-block}
html.motion-full .scroll-copy,html.motion-full .scroll-card{opacity:0!important;transform:translate3d(0,30px,0)!important;transition:opacity .8s var(--motion-ease),transform .95s var(--motion-ease)!important;transition-delay:var(--motion-delay,0ms)!important}
html.motion-full .scroll-copy.motion-visible,html.motion-full .scroll-card.motion-visible{opacity:1!important;transform:translate3d(0,0,0)!important}
html.motion-full .scroll-image{opacity:0!important;transform:translate3d(0,36px,0)!important;transition:opacity 1s var(--motion-ease),transform 1.1s var(--motion-ease)!important}
html.motion-full .scroll-image.motion-visible{opacity:1!important;transform:translate3d(0,0,0)!important}
html.motion-full .scroll-image img{opacity:1!important;transform:scale(1.045)!important;transition:transform 1.4s var(--motion-ease)!important}
html.motion-full .scroll-image.motion-visible img{transform:scale(1)!important}
html.motion-full .reveal{transition:opacity .8s var(--motion-ease),transform .95s var(--motion-ease)!important;transition-delay:var(--reveal-delay,0ms)!important}
html.motion-full .hero-reveal{animation:heroIn 1s var(--motion-ease) both!important}
html.motion-full .hero-media,html.motion-full .page-hero-media{animation:heroZoom 9s var(--motion-ease) both!important}
html.motion-full .mobile-menu{transition:transform .65s var(--motion-ease),visibility .65s!important}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:110;pointer-events:none}
[dir=rtl] .scroll-progress{transform-origin:right}
@media(hover:hover){html.motion-full .work-category,html.motion-full .work-service,html.motion-full .contact-button{transition:background .3s ease,border-color .3s ease,transform .5s var(--motion-ease)!important}html.motion-full .work-category:hover,html.motion-full .work-service:hover{border-bottom-color:var(--red)}html.motion-full .contact-button:hover{transform:translateY(-4px)}}
@media(max-width:640px){html.motion-full .text-motion .motion-word,html.motion-full .scroll-copy,html.motion-full .scroll-card,html.motion-full .scroll-image{transform:translate3d(0,20px,0)!important}.scroll-progress{height:2px}}
