/* Quiet motion accents for the engineering theme. Content remains visible without JS. */
.hero-grid{background-position:0 0;animation:survey-grid 28s linear infinite}
@keyframes survey-grid{to{background-position:64px 64px}}
.hero .eyebrow:before{box-shadow:0 0 0 0 rgba(243,108,33,.45);animation:signal-line 4s ease-out infinite}
@keyframes signal-line{35%{box-shadow:0 0 0 7px rgba(243,108,33,0)}100%{box-shadow:0 0 0 0 rgba(243,108,33,0)}}
.btn{position:relative;overflow:hidden}
.btn:after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:translateX(-180%) skewX(-20deg);transition:transform .65s ease;pointer-events:none}
.btn:hover:after,.btn:focus-visible:after{transform:translateX(350%) skewX(-20deg)}
.service-icon svg{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.service:hover .service-icon svg{transform:translateY(-3px) rotate(5deg)}
.steps{position:relative}
.steps:before{content:"";position:absolute;left:63px;top:0;bottom:0;width:1px;background:#384247}
.steps:after{content:"";position:absolute;left:63px;top:0;width:2px;height:var(--steps-progress,0%);background:var(--orange);box-shadow:0 0 12px rgba(243,108,33,.45);transition:height .15s linear}
.step{position:relative}.step:before{position:relative;z-index:1;background:var(--ink);transition:color .4s ease}
.step.is-current:before{color:#fff}
.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.motion-ready .reveal.in-view{opacity:1;transform:none}
@media(max-width:920px){.steps:before,.steps:after{left:62px}}
@media(max-width:620px){.hero-grid{animation-duration:36s}.steps:before,.steps:after{left:60px}.motion-ready .reveal{transform:translateY(12px)}}
@media(max-width:920px){.nav-links{top:100%}}
@media(max-width:360px){.hero h1,html[lang="zh-CN"] .hero h1{height:auto;min-height:1.9em}.hero-line{white-space:normal}}
@media(prefers-reduced-motion:reduce){.hero-grid,.hero .eyebrow:before{animation:none}.btn:after{display:none}.service-icon svg,.steps:after,.step:before,.motion-ready .reveal{transition:none}.motion-ready .reveal{opacity:1;transform:none}}
