/* ip-animations.css */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-30px);transition:opacity .6s ease,transform .6s ease}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(30px);transition:opacity .6s ease,transform .6s ease}
.reveal-right.visible{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.95);transition:opacity .6s ease,transform .6s ease}
.reveal-scale.visible{opacity:1;transform:scale(1)}
.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}
@keyframes pulse-ring{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.15);opacity:0}100%{transform:scale(1.15);opacity:0}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes flicker{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes spin-slow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% center}100%{background-position:200% center}}
@keyframes draw-line{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
.animate-float{animation:float 4s ease-in-out infinite}
.animate-pulse-ring{animation:pulse-ring 2s ease-out infinite}
.animate-flicker{animation:flicker 3s ease-in-out infinite}
.shimmer-text{background:linear-gradient(90deg,var(--blue-bright) 0%,var(--yellow) 50%,var(--blue-bright) 100%);background-size:200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 3s linear infinite}
/* Electric bolt SVG animation */
.bolt-svg path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:draw-line 2s ease forwards}
/* Counter animation */
.counter-wrap{position:relative}
