/* ASCE Motion Studio 2.15 — Quartz-inspired motion, ASCE copper/navy palette. */
@media (prefers-reduced-motion:no-preference){
.asce-motion-target{transition:opacity .82s cubic-bezier(.22,.7,.22,1),translate .82s cubic-bezier(.22,.7,.22,1);transition-delay:var(--asce-motion-delay,0ms)}
.asce-motion-target:not(.asce-motion-visible){opacity:.015;translate:0 24px}
.asce-motion-target.asce-motion-visible{opacity:1;translate:0 0}
.asce-motion-scene{position:relative;isolation:isolate;--asce-motion-factor:1;--asce-motion-alpha:1}
.asce-motion-scene.asce-motion-speed-slow{--asce-motion-factor:1.6}
.asce-motion-scene.asce-motion-speed-dynamic{--asce-motion-factor:.7}
.asce-motion-scene.asce-motion-strength-subtle{--asce-motion-alpha:.5}
.asce-motion-scene.asce-motion-strength-medium{--asce-motion-alpha:.78}
.asce-motion-scene.asce-motion-strength-cinematic{--asce-motion-alpha:1}
.asce-motion-scene>.asce-motion-atmosphere{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:0;opacity:var(--asce-motion-alpha)}
.asce-motion-scene>.asce-motion-atmosphere~*{position:relative;z-index:1}
.asce-motion-atmosphere>span{position:absolute;display:block;pointer-events:none}
.asce-motion-grid{inset:-16%;background-image:linear-gradient(90deg,rgba(127,105,87,.13) 1px,transparent 1px),linear-gradient(rgba(127,105,87,.12) 1px,transparent 1px);background-size:92px 92px;mask-image:radial-gradient(ellipse at 55% 48%,#000 10%,transparent 77%);animation:asce-grid-drift calc(30s * var(--asce-motion-factor)) linear infinite alternate}
.asce-motion-glow{width:min(50vw,520px);aspect-ratio:1;border-radius:50%;filter:blur(28px);background:radial-gradient(circle,rgba(184,122,77,.21) 0,rgba(184,122,77,.075) 34%,transparent 69%);animation:asce-glow-drift calc(19s * var(--asce-motion-factor)) ease-in-out infinite alternate}
.asce-motion-glow-a{left:-12%;top:-34%}
.asce-motion-glow-b{right:-12%;bottom:-44%;background:radial-gradient(circle,rgba(50,95,120,.16),rgba(50,95,120,.05) 40%,transparent 70%);animation-delay:-9s;animation-direction:alternate-reverse}
.asce-motion-beam{width:48%;height:1px;background:linear-gradient(90deg,transparent,rgba(177,118,78,.42),transparent);transform:rotate(-20deg);filter:drop-shadow(0 0 5px rgba(177,118,78,.28));animation:asce-beam-flow calc(13s * var(--asce-motion-factor)) ease-in-out infinite alternate}
.asce-motion-beam-a{top:27%;left:-17%}
.asce-motion-beam-b{right:-12%;bottom:24%;animation-delay:-6s;animation-direction:alternate-reverse}
.asce-motion-style-glow .asce-motion-grid,.asce-motion-style-glow .asce-motion-beam{display:none}
.asce-motion-style-grid .asce-motion-glow,.asce-motion-style-grid .asce-motion-beam{display:none}
@keyframes asce-grid-drift{0%{transform:translate3d(-1.5%,-1%,0)}100%{transform:translate3d(2%,2%,0)}}
@keyframes asce-glow-drift{0%{transform:translate3d(-4%,-3%,0) scale(.94);opacity:.65}100%{transform:translate3d(14%,10%,0) scale(1.15);opacity:1}}
@keyframes asce-beam-flow{0%{transform:translate3d(-14%,0,0) rotate(-20deg);opacity:.25}100%{transform:translate3d(22%,0,0) rotate(-20deg);opacity:.9}}
}
@media(prefers-reduced-motion:reduce){.asce-motion-target{opacity:1!important;translate:none!important;transition:none!important}.asce-motion-atmosphere{display:none!important}}

/* v2.15.1 – each Solutions card enters independently, with graceful mobile timing */
.asce-solutions-grid>.asce-solutions-card.asce-motion-target{transition:opacity .78s cubic-bezier(.2,.7,.2,1),transform .78s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease!important;transition-delay:var(--asce-motion-delay,0ms),var(--asce-motion-delay,0ms),0ms!important}
.asce-solutions-grid>.asce-solutions-card.asce-motion-target:not(.asce-motion-visible){opacity:0!important;transform:translate3d(0,30px,0) scale(.975)!important}
.asce-solutions-grid>.asce-solutions-card.asce-motion-visible{opacity:1!important;transform:translate3d(0,0,0) scale(1)!important}
.asce-solutions-grid>.asce-solutions-card.asce-motion-visible:hover{transform:translateY(-7px)!important}
@media(max-width:650px){.asce-solutions-grid>.asce-solutions-card.asce-motion-target:not(.asce-motion-visible){transform:translate3d(0,22px,0) scale(.985)!important}}
@media(prefers-reduced-motion:reduce){.asce-solutions-grid>.asce-solutions-card.asce-motion-target{opacity:1!important;transform:none!important;transition:none!important}}
