/* Case-study banner: introduce the story, then keep the outcome diagram alive. */
@media(prefers-reduced-motion:no-preference){
 body[data-page="case-studies"] #teleai-demo .hero-copy>*{animation:cases-copy-enter .75s cubic-bezier(.2,.7,.2,1) both}
 body[data-page="case-studies"] #teleai-demo .hero-copy>h1{animation-delay:.1s}
 body[data-page="case-studies"] #teleai-demo .hero-copy>.hero-sub{animation-delay:.2s}
 body[data-page="case-studies"] #teleai-demo .hero-copy>.cta-row{animation-delay:.3s}
 body[data-page="case-studies"] #teleai-demo .platform-hero-art{animation:cases-art-enter 1s cubic-bezier(.2,.7,.2,1) .18s both}
 body[data-page="case-studies"] #teleai-demo .platform-node{animation:cases-node-enter .8s ease var(--entry,.3s) both,cases-node-float 5.8s ease-in-out var(--phase,0s) infinite}
 body[data-page="case-studies"] #teleai-demo .platform-telephony{--entry:.3s;--phase:-1s}
 body[data-page="case-studies"] #teleai-demo .platform-asr{--entry:.45s;--phase:-3.2s}
 body[data-page="case-studies"] #teleai-demo .platform-tts{--entry:.6s;--phase:-.8s}
 body[data-page="case-studies"] #teleai-demo .platform-llm{--entry:.75s;--phase:-2.4s}
 body[data-page="case-studies"] #teleai-demo .platform-api{--entry:.9s;--phase:-4.3s}
 body[data-page="case-studies"] #teleai-demo .platform-core{animation:cases-core-breathe 5s ease-in-out infinite}
 body[data-page="case-studies"] #teleai-demo .platform-core-dots i{animation:cases-dot-pulse 1.8s ease-in-out infinite}
 body[data-page="case-studies"] #teleai-demo .platform-core-dots i:nth-child(2){animation-delay:.2s}
 body[data-page="case-studies"] #teleai-demo .platform-core-dots i:nth-child(3){animation-delay:.4s}
 body[data-page="case-studies"] #teleai-demo .orbit-two{animation:cases-orbit-breathe 7s ease-in-out infinite}
}
@keyframes cases-copy-enter{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes cases-art-enter{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes cases-node-enter{from{opacity:0}to{opacity:1}}
@keyframes cases-node-float{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes cases-core-breathe{0%,100%{box-shadow:0 28px 50px #27272a23,inset 0 0 0 5px #ffffff65}50%{box-shadow:0 32px 60px #27272a35,inset 0 0 0 5px #ffffffb0}}
@keyframes cases-dot-pulse{0%,65%,100%{opacity:.4;scale:1}30%{opacity:1;scale:1.3}}
@keyframes cases-orbit-breathe{0%,100%{opacity:.4;scale:1}50%{opacity:1;scale:1.025}}
