/* Motion is an enhancement: the underlying page is always visible and usable. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.hero-line{display:block;overflow:clip}
.hero-line>span{display:block}
.site-header{transition:box-shadow .3s ease}
.site-header.is-scrolled{box-shadow:0 5px 20px #20201f08}
.reading-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--wine);transform:scaleX(0);transform-origin:left;pointer-events:none}
.brand-cover{overflow:clip}
.brand-cover-foot{padding-top:16px}
.brand-cover-foot::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:#20201f30;transform:scaleX(var(--cover-rule,1));transform-origin:left}
.brand-button,.button{transition:background .22s,color .22s,box-shadow .3s,translate .3s var(--motion-ease)}
.brand-link svg,.brand-button svg,.button svg,.text-link svg,.header-contact svg,.partner-email svg{transition:transform .35s var(--motion-ease)}
.brand-link:focus-visible svg,.brand-button:focus-visible svg,.text-link:focus-visible svg,.button:focus-visible svg{transform:translateX(4px)}
.desktop-nav a::after{transform-origin:left;transition:transform .35s var(--motion-ease)}
.gallery-controls button,.control-demo-options button{transition:color .22s,background .22s,border-color .22s}
.gallery[aria-busy=true]{cursor:progress}
.gallery-controls button{position:relative}
.gallery-controls button::after{content:"";position:absolute;bottom:5px;left:0;right:0;height:2px;background:var(--wine);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--motion-ease)}
.gallery-controls button[aria-pressed=true]::after{transform:scaleX(1)}
.control-demo-results>div{animation:none}
.motion-step{position:relative}
.motion-step::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--wine);opacity:var(--signal-opacity,0);transform:scaleX(var(--signal-progress,0));transform-origin:left;pointer-events:none}
.home-box.motion-step::after{top:-3px;background:var(--wine-deep)}
.diagram-core.motion-step::after{background:var(--champagne)}
.faq-item .plus{transition:transform .3s var(--motion-ease)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .brand-button:hover,.button:hover{translate:0 -2px;box-shadow:0 5px 12px #20201f12}
 .brand-button:active,.button:active{translate:0 0;box-shadow:none}
 .header-contact:hover svg,.partner-email:hover svg{transform:translateX(4px)}
 .partner-resource-grid>a,.contact-methods>a{transition:border-color .25s,translate .4s var(--motion-ease)}
 .partner-resource-grid>a:hover,.contact-methods>a:hover{translate:0 -3px;border-color:var(--wine)}
}
@media(prefers-reduced-motion:reduce){
 .hero-line{overflow:visible}
 .reading-progress{display:none}
 .motion-step::after{display:none}
 .brand-button,.button,.partner-resource-grid>a,.contact-methods>a{translate:none!important}
}
@media print{.reading-progress,.motion-step::after{display:none}}
