/* One entrance on scroll, with column-based motion instead of animating every pixel. */
@media(prefers-reduced-motion:no-preference){
 .signal-motion-ready .academy-signal{opacity:0;transform:translateY(18px)}
 .signal-motion-visible .academy-signal{animation:signal-card-enter .65s var(--card-delay,0ms) cubic-bezier(.2,.7,.3,1) both}
 .signal-motion-ready .signal-chart-column{opacity:0;transform:scaleY(.04);transform-box:fill-box;transform-origin:center bottom}
 .signal-motion-visible .signal-chart-column{animation:signal-column-rise .85s calc(var(--card-delay,0ms) + var(--column-delay,0ms) + 180ms) cubic-bezier(.2,.7,.3,1) both}
 .signal-motion-ready .academy-signal-bars i{opacity:0;transform:scaleY(.08);transform-origin:center bottom}
 .signal-motion-visible .academy-signal-bars i{animation:signal-bar-rise .7s calc(var(--card-delay,0ms) + var(--bar-delay,0ms) + 200ms) cubic-bezier(.2,.7,.3,1) both}
 .academy-signal{transition:border-color .25s ease,box-shadow .25s ease}
 @media(hover:hover) and (pointer:fine){.academy-signal:hover{border-color:#666;box-shadow:0 8px 24px #00000014}.academy-signal:hover .academy-signal-menu{color:#fff}}
}
@keyframes signal-card-enter{to{opacity:1;transform:translateY(0)}}
@keyframes signal-column-rise{to{opacity:1;transform:scaleY(1)}}
@keyframes signal-bar-rise{to{opacity:1;transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.result-indicator-grid .academy-signal,.result-indicator-grid .signal-chart-column,.result-indicator-grid .academy-signal-bars i{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
