/* Shared decorative motion: blue signals, a gold accent, finite sequences. */
.ai-motion-surface{--ai-blue:#39b9f5;--ai-gold:#d8b552}
.image-detail{position:relative}
.ai-image-signal{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;border:1px solid transparent}
.ai-image-signal i{position:absolute;display:block;opacity:0;pointer-events:none}
.ai-scan{inset:0;background:linear-gradient(180deg,transparent 42%,rgba(57,185,245,.1) 49%,rgba(117,211,255,.7) 50%,transparent 50.4%);transform:translateY(-100%)}
.ai-node{width:7px;height:7px;border-radius:50%;background:var(--ai-blue);box-shadow:0 0 14px 3px rgba(57,185,245,.35)}
.ai-node-one{left:6%;top:14%}.ai-node-two{right:8%;top:46%;background:var(--ai-gold);box-shadow:0 0 14px rgba(216,181,82,.5)}.ai-node-three{left:18%;bottom:13%}
.ai-motion-playing>.ai-image-signal{animation:ai-frame 4.6s ease both}
.ai-motion-playing>.ai-image-signal .ai-scan{animation:ai-scan 4.2s cubic-bezier(.2,.5,.4,1) both}
.ai-motion-playing>.ai-image-signal .ai-node{animation:ai-node 3.8s ease both}
.ai-motion-playing>.ai-image-signal .ai-node-two{animation-delay:.3s}.ai-motion-playing>.ai-image-signal .ai-node-three{animation-delay:.6s}
.feature-icon.ai-motion-playing{animation:ai-icon-frame 2.8s ease var(--ai-delay) both}
.feature-icon.ai-motion-playing .ui-icon{animation:ai-icon-arrive .8s ease var(--ai-delay) both}
.ai-motion-playing .eyebrow:before{animation:ai-line 1.1s ease var(--ai-delay) both;transform-origin:left}
.signal-step.ai-motion-playing,.document-card.ai-motion-playing,.plan.ai-motion-playing{animation:ai-card-edge 3.8s ease var(--ai-delay) both}
.signal-step,.document-card,.plan,.capability-strip>a,.page-index a{transition:border-color .25s ease,box-shadow .25s ease,background-color .25s ease}
.signal-step:hover,.signal-step:focus-visible,.document-card:focus-within,.plan:focus-within{box-shadow:0 0 0 1px rgba(57,185,245,.3),0 12px 30px rgba(17,62,95,.08)}
.button .ui-icon,.inline-link .ui-icon,.signal-step-bottom .ui-icon,.download-label .ui-icon{transition:transform .25s ease}
.button:hover .ui-icon,.button:focus-visible .ui-icon,.inline-link:hover .ui-icon,.signal-step:hover .signal-step-bottom .ui-icon,.download-label:hover .ui-icon{transform:translate(2px,-2px)}
html.ai-page-hidden *,html.ai-page-hidden *:before,html.ai-page-hidden *:after{animation-play-state:paused!important}
@keyframes ai-scan{0%{transform:translateY(-100%);opacity:0}12%{opacity:.75}78%{opacity:.55}100%{transform:translateY(100%);opacity:0}}
@keyframes ai-frame{0%,100%{border-color:transparent}25%,65%{border-color:rgba(57,185,245,.5)}}
@keyframes ai-node{0%,100%{opacity:0;transform:scale(.7)}25%,70%{opacity:.85;transform:scale(1)}}
@keyframes ai-icon-frame{0%,100%{box-shadow:none}30%,60%{box-shadow:inset 0 2px 0 var(--ai-gold),0 0 20px rgba(57,185,245,.16);border-color:var(--ai-blue)}}
@keyframes ai-icon-arrive{0%{opacity:.5;transform:translateY(3px)}100%{opacity:1;transform:translateY(0)}}
@keyframes ai-line{from{transform:scaleX(.15)}to{transform:scaleX(1)}}
@keyframes ai-card-edge{0%,100%{box-shadow:none}30%,65%{box-shadow:inset 0 2px 0 var(--ai-gold),0 0 0 1px rgba(57,185,245,.3)}}
.motion-off .ai-image-signal{display:none}
@media(prefers-reduced-motion:reduce){.ai-image-signal{display:none}.ai-motion-surface,.ai-motion-surface *, .ai-motion-surface:before,.ai-motion-surface:after,.ai-motion-surface *:before,.ai-motion-surface *:after{animation:none!important;transition:none!important}.button .ui-icon,.inline-link .ui-icon,.download-label .ui-icon{transition:none!important;transform:none!important}}
