/* Restrained editorial choreography. No motion styles touch .pane or .construction. */
html.motion-enabled{scroll-behavior:smooth}
:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;background:var(--brand-taupe);z-index:90;transform:scaleX(0);transform-origin:left;pointer-events:none}
.motion-on .motion-reveal{transition:opacity .8s var(--motion-ease),transform 1.1s var(--motion-ease),clip-path 1.2s var(--motion-ease)!important;transition-delay:var(--motion-delay,0ms)!important}
.motion-on .motion-reveal:not(.is-visible){opacity:0;transform:translate3d(0,30px,0)}
.motion-on .motion-title{clip-path:inset(-10% -2% -12% -2%)}
.motion-on .motion-title:not(.is-visible){clip-path:inset(0 -2% 88% -2%);transform:translate3d(0,24px,0)}
.motion-on .motion-card:not(.is-visible){transform:translate3d(0,50px,0);clip-path:inset(0 0 12% 0)}
.motion-on .motion-card.is-visible{clip-path:inset(0)}
.media-placeholder{position:relative;overflow:hidden}
.motion-on .media-placeholder>span,.motion-on .media-placeholder>p{transform:translate3d(0,var(--media-shift,0px),0);transition:transform .22s ease-out!important}
.motion-on .direction-card{transition:border-color .5s ease,box-shadow .7s ease,opacity .8s var(--motion-ease),transform 1.1s var(--motion-ease),clip-path 1.2s var(--motion-ease)!important}
.motion-on .direction-card:hover{border-color:var(--brand-taupe);box-shadow:0 18px 38px -30px #43464d50}
.motion-on .text-link{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .5s var(--motion-ease),color .25s ease!important}
.motion-on .text-link:hover{background-size:100% 1px}
.motion-on .button{transition:background .3s ease,transform .5s var(--motion-ease),box-shadow .5s ease!important}
.motion-on .button:hover{transform:translateY(-2px);box-shadow:0 8px 24px -14px #43464d75}
.motion-on .button:active{transform:translateY(0)}
.process-list{position:relative}
.motion-on .process-list:before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--brand-brown);transform:scaleX(var(--process-progress,0));transform-origin:left;transition:transform .3s ease-out!important;pointer-events:none}
.process-list li>span{position:relative;display:inline-block}
.motion-on .process-list li>span:after{content:'';position:absolute;left:0;bottom:-5px;right:0;height:1px;background:var(--brand-brown);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--motion-ease)!important}
.motion-on .process-list li.step-reached>span:after{transform:scaleX(1)}
.motion-on .hero-copy h1{animation:hero-type 1.2s var(--motion-ease) both!important}
.motion-on .hero-copy>p{animation:hero-enter 1s .15s var(--motion-ease) both!important}
.motion-on .hero-copy>a{animation:hero-enter 1s .25s var(--motion-ease) both!important}
.motion-on .faq-list details[open]>p{animation:answer-enter .45s var(--motion-ease) both!important}
@keyframes hero-type{from{opacity:0;transform:translateY(25px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-3% -2% -8% -2%)}}
@keyframes hero-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes answer-enter{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(max-width:760px){
 .motion-on .motion-reveal{transition-duration:.65s,.8s,.85s!important;transition-delay:0ms!important}
 .motion-on .motion-reveal:not(.is-visible),.motion-on .motion-card:not(.is-visible){transform:translateY(20px)}
 .motion-on .process-list:before{top:0;bottom:0;left:-12px;right:auto;width:1px;height:auto;transform:scaleY(var(--process-progress,0));transform-origin:top}
}
/* OS reduced motion is respected by JS; explicit on is the only override.
   Turning motion off restores every hidden element and removes all choreography. */
body:not(.motion-on) .motion-reveal{opacity:1;transform:none;clip-path:none}
body:not(.motion-on) .media-placeholder>*{transform:none}
body:not(.motion-on) .process-list:before{display:none}
@media(prefers-reduced-motion:reduce){html:not(.motion-enabled){scroll-behavior:auto}}

