.hero-art{overflow:visible}.signal-graphic{position:absolute;inset:0;pointer-events:none}.signal-graphic svg{width:100%;height:100%;overflow:visible}.signal-track{fill:none;stroke:url(#signal-gradient);stroke-width:1.4;stroke-dasharray:5 10;opacity:.4}.signal-node{fill:#fff;stroke:#9061c8;stroke-width:2}.signal-dot{position:absolute;width:8px;height:8px;background:#8350c6;border:2px solid white;border-radius:50%;box-shadow:0 0 0 5px #9865ce16;left:14%;top:24%}
@media(prefers-reduced-motion:no-preference){
 .scroll-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s ease var(--reveal-delay,0ms)}
 .scroll-reveal.revealed{opacity:1;transform:none}
 .hero-art .metal-bars{animation:metal-float 7s ease-in-out 2}
 .signal-track{animation:signal-flow 18s linear 2}
 .signal-dot{animation:signal-travel 12s ease-in-out 2}
 .hero-art .art-tag{animation:tag-appear .9s ease both}
 .hero-art .tag-two{animation-delay:.2s}.hero-art .tag-three{animation-delay:.4s}
 .motion-diagram.revealed .flow li{animation:node-highlight 1.5s ease var(--node-delay,0s) both}
 .motion-diagram.revealed .output{animation:outcome-glow 2s ease 2.3s 2}
 .button span{transition:transform .25s}.button:hover span{transform:translate(3px,-3px)}
 @keyframes metal-float{0%,100%{transform:translateY(0) rotate(-25deg) skewY(15deg)}50%{transform:translateY(-12px) rotate(-25deg) skewY(15deg)}}
 @keyframes signal-flow{to{stroke-dashoffset:-180}}
 @keyframes signal-travel{0%,100%{left:14%;top:24%}33%{left:83%;top:35%}66%{left:24%;top:78%}}
 @keyframes tag-appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
 @keyframes node-highlight{0%,100%{box-shadow:0 5px 20px #78559c09}45%{box-shadow:0 0 0 4px #a077cd28,0 10px 30px #78559c20;border-top-color:#a575e2}}
 @keyframes outcome-glow{50%{box-shadow:0 0 0 6px #58ad8a20,0 10px 30px #267c4f22}}
}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none}.signal-dot{display:none}}
