/* Motion supplements the content; it never gates visibility. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--press-duration:100ms}
.desktop-nav a{position:relative}
.desktop-nav a::after{content:'';position:absolute;inset:auto 0 3px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--motion-ease)}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after{transform:scaleX(1)}
.button,.resource-link,.scenario-tabs button,.header-cta,.service{transition:background .25s,border-color .25s,color .25s,transform .3s var(--motion-ease),box-shadow .3s}
.button span,.text-link span,.header-cta span,.resource-link b{display:inline-block;transition:transform .3s var(--motion-ease)}
.button:hover span,.header-cta:hover span{transform:translate(2px,-2px)}
.text-link:hover span,.resource-link:hover b{transform:translateY(3px)}
:is(button,.button,.header-cta,.text-link,.resource-link,.service>a,.desktop-nav>a,.mobile-nav>a){scale:1;transform-origin:center;transition:scale var(--press-duration) ease-out,background .25s,border-color .25s,color .25s,box-shadow .3s}
.desktop-nav>a{display:inline-block}
:is(button,.button,.header-cta,.text-link,.resource-link,.service>a,.desktop-nav>a,.mobile-nav>a):not(:disabled):not([aria-disabled="true"]):active{scale:.98}
.hero h1>span{animation:line-arrive .8s var(--motion-ease) both}
.hero h1>span:nth-child(2){animation-delay:.08s}
.hero h1>span:nth-child(3){animation-delay:.16s}
.hero-lead,.hero-actions{animation:line-arrive .8s .15s var(--motion-ease) both}
.service:hover,.service:focus-within{transform:translateY(-4px);border-color:#b5c8eb;box-shadow:0 14px 30px #18365509}
.featured-service:hover,.featured-service:focus-within{border-color:#789bce}
.scenario-tabs button b{transition:transform .3s}
.scenario-tabs button[aria-selected=true] b{transform:rotate(45deg)}
.workflow-replay:hover{background:#e7effe;color:#214bb3}
.process li>span{transition:background .3s,color .3s,border-color .3s}
.process li:hover>span{background:var(--blue);border-color:var(--blue);color:#fff}
.contact input,.contact textarea,.contact select{transition:border-color .2s,background .2s}
.contact input:focus,.contact textarea:focus,.contact select:focus{background:#ffffff0b;border-color:#c6d9f5}
@keyframes line-arrive{from{opacity:.2;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero h1>span,.hero-lead,.hero-actions{opacity:1;transform:none}:is(button,.button,.header-cta,.text-link,.resource-link,.service>a,.desktop-nav>a,.mobile-nav>a):not(:disabled):not([aria-disabled="true"]):active{scale:none}}
