/* Onda expansiva de energía al hacer clic en botones */
.aia-shock{position:fixed;left:0;top:0;width:0;height:0;z-index:99998;pointer-events:none}
.aia-shock i{position:absolute;display:block;border-radius:50%;transform:translate(-50%,-50%)}
.aia-shock .core{width:34px;height:34px;background:radial-gradient(circle,#fff 0,rgba(255,255,255,.9) 18%,rgba(53,224,255,.75) 42%,rgba(139,123,255,0) 72%);animation:shockcore .5s ease-out forwards}
.aia-shock .ring{width:30px;height:30px;border:2px solid #35e0ff;box-shadow:0 0 18px 2px rgba(53,224,255,.75),inset 0 0 14px rgba(53,224,255,.5);animation:shockring .75s cubic-bezier(.15,.7,.3,1) forwards}
.aia-shock .ring.r2{border-color:#8b7bff;box-shadow:0 0 22px 3px rgba(139,123,255,.75),inset 0 0 16px rgba(139,123,255,.5);animation-duration:.95s;animation-delay:.07s;opacity:0}
.aia-shock .ring.r3{border-width:1px;border-color:#fff;box-shadow:0 0 12px rgba(255,255,255,.6);animation-duration:1.1s;animation-delay:.14s;opacity:0}
.aia-shock .spark{width:4px;height:4px;background:#fff;box-shadow:0 0 8px 2px rgba(53,224,255,.9);animation:shockspark .6s ease-out forwards}
@keyframes shockcore{from{opacity:1;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(2.6)}}
@keyframes shockring{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}12%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(7)}}
@keyframes shockspark{from{opacity:1;transform:translate(-50%,-50%) translate(0,0) scale(1)}to{opacity:0;transform:translate(-50%,-50%) translate(var(--sx),var(--sy)) scale(.2)}}

/* El propio botón vibra un instante con la descarga */
.btn.zap,button.zap{animation:zapbtn .38s ease-out}
@keyframes zapbtn{0%{filter:brightness(1)}25%{filter:brightness(1.6) saturate(1.3);transform:scale(.96)}100%{filter:brightness(1);transform:scale(1)}}

@media (prefers-reduced-motion:reduce){.aia-shock{display:none}.btn.zap,button.zap{animation:none}}
