/* Reveal in either scroll direction; never hide content without JS setup. */
@media(prefers-reduced-motion:no-preference){
 .motion-reveal{opacity:0;transition:opacity .65s ease var(--reveal-delay,0ms)}
 .motion-reveal.is-revealed{opacity:1}
 /* Move children, keeping the observed group's bounds stable at viewport edges. */
 .product-card.motion-reveal>*,.process-step.motion-reveal>*{transform:translateY(16px);transition:transform .75s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
 .product-card.is-revealed>*,.process-step.is-revealed>*{transform:translateY(0)}
 .motion-heading{transform:none}
 .motion-heading .display-line{opacity:0;transform:translateY(22px);transition:opacity .65s ease var(--line-delay,0ms),transform .75s cubic-bezier(.2,.7,.2,1) var(--line-delay,0ms)}
 .motion-heading.is-revealed .display-line{opacity:1;transform:translateY(0)}
 .reading-progress{position:fixed;z-index:120;top:0;left:0;width:100%;height:3px;pointer-events:none;background:var(--green);transform-origin:left;transform:scaleX(0)}
 .button,.collection-links button,.application-links button,.spec-tabs button{transition:background-color .25s,color .25s,border-color .25s,transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
 .button .arrow,.text-link .arrow,.collection-links .arrow,.application-links .arrow,.footer-link .arrow{display:inline-block;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
 .button:hover .arrow,.button:focus-visible .arrow,.text-link:hover .arrow,.collection-links button:hover .arrow,.application-links button:hover .arrow,.footer-link:hover .arrow{transform:translateX(5px)}
 .button:active,.collection-links button:active{transform:translateY(0) scale(.98)}
 .main-nav>a:not(.button){position:relative}
 .main-nav>a:not(.button):after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
 .main-nav>a:not(.button):hover:after,.main-nav>a:not(.button):focus-visible:after{transform:scaleX(1)}
 .purpose-strip svg,.material-symbol svg{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
 .purpose-strip>div:hover svg,.certification-card:hover .material-symbol svg{transform:translateY(-4px) rotate(-8deg)}
 .product-number{transition:color .3s,transform .4s}
 .product-card:hover .product-number{color:var(--acid);transform:translateY(-3px)}
 .spec-tabs button:active,.application-links button:active{transform:translateY(2px)}
 dialog[open]{animation:dialog-arrive .35s cubic-bezier(.2,.7,.2,1) both}
 dialog[open]::backdrop{animation:backdrop-arrive .3s ease both}
 .dialog-close{transition:background .2s,transform .3s}
 .dialog-close:hover{background:var(--acid);transform:rotate(90deg)}
 .faq-list summary i:after{transition:transform .3s ease}
 .faq-list details[open] .faq-answer{animation:answer-arrive .3s ease both}
 #quote-form input,#quote-form select,#quote-form textarea{transition:background .25s,box-shadow .25s,border-color .25s}
 #quote-form input:focus,#quote-form select:focus,#quote-form textarea:focus{box-shadow:0 0 0 2px #10110d25}
 #form-status:not(:empty){animation:answer-arrive .35s ease both}
 .footer-link{transition:color .25s,padding-left .25s}
 .footer-link:hover{padding-left:5px;color:var(--acid)}
 .footer-logo{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
 .footer-brand .brand:hover .footer-logo{transform:translateY(-3px) rotate(-1deg)}
 @keyframes dialog-arrive{from{opacity:0;translate:0 18px;scale:.98}to{opacity:1;translate:0 0;scale:1}}
 @keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
 @keyframes answer-arrive{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
 @media(max-width:999px){
  .main-nav.is-open{animation:menu-arrive .25s ease both}
  .menu-lines{transition:transform .25s}
  .menu-toggle[aria-expanded=true] .menu-lines{transform:rotate(90deg)}
  @keyframes menu-arrive{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
 }
}
/* Keep the original image backgrounds and every control fully usable when motion is disabled. */
@media(prefers-reduced-motion:reduce){
 .motion-reveal,.motion-heading .display-line{opacity:1!important;transform:none!important;transition:none!important}
 .product-card.motion-reveal>*,.process-step.motion-reveal>*{transform:none!important;transition:none!important}
 .reading-progress{display:none}
 .button,.button .arrow,.text-link .arrow,.collection-links button,.application-links button,.spec-tabs button,.footer-link,.footer-logo,.dialog-close,.purpose-strip svg,.material-symbol svg,.product-number{transition:none!important}
 .button:hover{transform:none}
 dialog[open],dialog[open]::backdrop,.faq-answer,.main-nav.is-open,#form-status{animation:none!important}
}

