/* FastIQ Design System — keyframes & animation utilities (used across hero, micro-interactions, data viz, effects) */

@keyframes fiq-spin{to{transform:rotate(360deg)}}
@keyframes fiq-spin-slow{to{transform:rotate(360deg)}}
@keyframes fiq-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes fiq-pulse-ring{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.6);opacity:0}}
@keyframes fiq-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes fiq-ripple{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
@keyframes fiq-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
@keyframes fiq-reveal{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes fiq-float-slow{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes fiq-float-fast{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
@keyframes fiq-node{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes fiq-rock{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg) scale(1.02)}}
@keyframes fiq-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes fiq-drift{0%,100%{transform:translate(0,0) scale(1);opacity:.5}50%{transform:translate(0,-12px) scale(1.08);opacity:.75}}
@keyframes fiq-blur-in{0%{opacity:0;filter:blur(12px);transform:translateY(20px)}100%{opacity:1;filter:blur(0);transform:none}}
@keyframes fiq-char-down{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}
@keyframes fiq-sweep{0%{transform:translateX(-150%) skewX(-12deg)}100%{transform:translateX(260%) skewX(-12deg)}}
@keyframes fiq-dash{to{stroke-dashoffset:0}}
@keyframes fiq-bar1{0%,100%{height:32%}50%{height:90%}}
@keyframes fiq-bar2{0%,100%{height:60%}50%{height:36%}}
@keyframes fiq-bar3{0%,100%{height:48%}50%{height:78%}}
@keyframes fiq-glow-pulse{0%,100%{opacity:.18;transform:scale(1)}50%{opacity:.34;transform:scale(1.06)}}
@keyframes fiq-bolt{0%,100%{opacity:1}45%{opacity:.55}}

.animate-spin-slow{animation:fiq-spin-slow 3s linear infinite}
.animate-spin-orbit{animation:fiq-spin 60s linear infinite}
.animate-bounce-hex{animation:fiq-bounce 1s infinite}
.animate-pulse-ring{animation:fiq-pulse-ring 1.6s cubic-bezier(0,0,.2,1) infinite}
.animate-pulse-soft{animation:fiq-pulse 2s cubic-bezier(.4,0,.6,1) infinite}
.animate-shake{animation:fiq-shake .5s ease-in-out infinite}
.animate-reveal{animation:fiq-reveal .5s cubic-bezier(.34,1.56,.64,1) forwards}
.animate-float-slow{animation:fiq-float-slow 5s ease-in-out infinite}
.animate-float-fast{animation:fiq-float-fast 6s ease-in-out infinite}
.animate-node{animation:fiq-node 4s ease-in-out infinite}
.animate-rock{animation:fiq-rock 8s ease-in-out infinite}
.animate-drift{animation:fiq-drift 16s ease-in-out infinite}
.animate-glow-pulse{animation:fiq-glow-pulse 6s ease-in-out infinite}
.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}
