/* One motion rhythm: light text, drawn rules and photographic reveals.
   Sticky containers and the native scroll position never animate. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
#products .model-picture{border-left:1px solid #f0f0f038;border-right:1px solid #f0f0f038}
.will-reveal{transition-duration:1000ms;transition-timing-function:var(--motion-ease)}
.service-layout.will-reveal,.documents-layout.will-reveal,.product-switch.will-reveal{transform:none}
.is-motion-ready{opacity:0;transform:translate3d(0,22px,0);transition:opacity 850ms ease,transform 1100ms var(--motion-ease);transition-delay:var(--enter-delay,0ms)}
.is-motion-ready.is-motion-visible{opacity:1;transform:none}
.is-motion-ready:focus-within{opacity:1;transform:none}

/* Rules draw independently, so no parent transform disturbs a pinned photo. */
.motion-rule.is-motion-ready{opacity:1;transform:none}
:is(.section-heading,.service-rows>a,.document-row).motion-rule{position:relative;border-top-color:transparent}
#advantages :is(.advantage-meta,.advantage-fact).motion-rule{border-top-color:transparent}
.section-heading.motion-rule::before,#advantages .advantage-meta.motion-rule::before,.service-rows>a.motion-rule::after,.document-row.motion-rule::after,#advantages .advantage-fact.motion-rule::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:#f0f0f035;transform:scaleX(0);transform-origin:left;transition:transform 1100ms var(--motion-ease);transition-delay:var(--enter-delay,0ms);pointer-events:none}
.section-heading.motion-rule.is-motion-visible::before,#advantages .advantage-meta.motion-rule.is-motion-visible::before,.service-rows>a.motion-rule.is-motion-visible::after,.document-row.motion-rule.is-motion-visible::after,#advantages .advantage-fact.motion-rule.is-motion-visible::after{transform:scaleX(1)}

/* Reveals act on the image, leaving captions and all sticky ancestors stable. */
.motion-photo.is-motion-ready{opacity:1;transform:scale(1.065);clip-path:inset(5% 0);transition:transform 1600ms var(--motion-ease),clip-path 1300ms cubic-bezier(.62,.05,.01,.99),filter 700ms ease;transition-delay:0ms}
.motion-photo.is-motion-ready.is-motion-visible{transform:scale(1);clip-path:inset(0)}
.industry-image,.sample-image{overflow:hidden}

/* Switching tabs keeps the panel geometry; only the machine and its copy enter. */
.model-panel:not([hidden]) .model-picture>img{animation:model-photo-enter 1000ms var(--motion-ease) both}
.model-panel:not([hidden]) .model-copy>h3,.model-panel:not([hidden]) .model-description,.model-panel:not([hidden]) .model-specs{animation:model-copy-enter 800ms var(--motion-ease) both}
.model-panel:not([hidden]) .model-description{animation-delay:65ms}
.model-panel:not([hidden]) .model-specs{animation-delay:120ms}
@keyframes model-photo-enter{from{opacity:0;transform:translate3d(0,20px,0) scale(.98)}to{opacity:1;transform:none}}
@keyframes model-copy-enter{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}

.button{transition:background-color 350ms ease,color 350ms ease,border-color 350ms ease,box-shadow 350ms ease}
.text-link,.card-link,.extra-link{transition:color 350ms ease,border-color 450ms ease}
.service-rows h3,.document-row h3{transition:color 350ms ease,transform 600ms var(--motion-ease)}
.service-plus{display:inline-block;transition:transform 650ms var(--motion-ease),color 350ms ease}
.image-zoom{transition:background-color 350ms ease,border-color 350ms ease,transform 600ms var(--motion-ease)}
.product-tabs button{transition:color 350ms ease,border-color 450ms ease,background-color 350ms ease}
#advantages .advantage-stage-number{transform:translate3d(0,18px,0);opacity:0;transition:transform 1000ms var(--motion-ease),opacity 700ms ease}
#advantages .advantage-scene.is-current .advantage-stage-number{transform:none;opacity:1;transition-delay:110ms}
#advantages .advantage-stage-link{position:relative}
#advantages .advantage-stage-link::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:#d3d3d3;transform:scaleX(0);transform-origin:left;transition:transform 700ms var(--motion-ease);pointer-events:none}
#advantages .advantage-stage-link[aria-current="step"]::after{transform:scaleX(1)}
#advantages .advantage-stage-link[aria-current="step"]{border-top-color:#f0f0f02b}

@media(hover:hover) and (pointer:fine){
 .industry-card:hover .motion-photo.is-motion-visible,.sample-image:hover .motion-photo.is-motion-visible{transform:scale(1.035)}
 .service-rows>a:hover h3,.document-row:hover h3{transform:translateX(4px)}
 .service-rows>a:hover .service-plus{transform:rotate(90deg)}
 .sample-image:hover .image-zoom{transform:rotate(90deg)}
 .button:hover{box-shadow:none}
}
@media(max-width:760px){
 .is-motion-ready{transform:translate3d(0,14px,0);transition-duration:700ms,900ms}
 .motion-rule.is-motion-ready{transform:none}
 .motion-photo.is-motion-ready{transform:scale(1.035);clip-path:inset(3% 0)}
}
@media(prefers-reduced-motion:reduce){
 .is-motion-ready,.is-motion-ready.is-motion-visible,.motion-photo.is-motion-ready,.motion-photo.is-motion-ready.is-motion-visible{opacity:1;transform:none;clip-path:none;transition:none}
 .section-heading.motion-rule::before,#advantages .advantage-meta.motion-rule::before,.service-rows>a.motion-rule::after,.document-row.motion-rule::after,#advantages .advantage-fact.motion-rule::after{transform:none;transition:none}
 .model-panel:not([hidden]) :is(.model-picture>img,.model-copy>h3,.model-description,.model-specs){animation:none}
 #advantages .advantage-stage-number,#advantages .advantage-scene.is-current .advantage-stage-number{opacity:1;transform:none;transition:none}
 .service-rows h3,.document-row h3,.service-plus,.image-zoom,.button,.text-link,.card-link,.extra-link,.product-tabs button,#advantages .advantage-stage-link::after{transition:none}
 .industry-image img,.sample-image img{display:block}
 .industry-card:hover .motion-photo.is-motion-visible,.sample-image:hover .motion-photo.is-motion-visible,.service-rows>a:hover h3,.document-row:hover h3,.service-rows>a:hover .service-plus,.sample-image:hover .image-zoom{transform:none}
}
@media print{
 .is-motion-ready,.motion-photo.is-motion-ready{opacity:1;transform:none;clip-path:none}
 .section-heading.motion-rule::before,#advantages .advantage-meta.motion-rule::before,.service-rows>a.motion-rule::after,.document-row.motion-rule::after,#advantages .advantage-fact.motion-rule::after{transform:none}
}
