@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}
@keyframes glow{0%,100%{box-shadow:0 0 5px var(--accent-gold)}50%{box-shadow:0 0 20px var(--accent-gold),0 0 30px var(--accent-gold)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes bounceIn{0%{opacity:0;transform:scale(0.3)}50%{transform:scale(1.05)}70%{transform:scale(0.9)}100%{opacity:1;transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes wa-pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,0.4)}70%{box-shadow:0 0 0 15px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
@keyframes ripple{to{transform:scale(4);opacity:0}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes zoomIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}
@keyframes borderGlow{0%,100%{border-color:var(--border)}50%{border-color:var(--accent-gold)}}
@keyframes skeleton{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
.animate-fadeInUp{animation:fadeInUp 0.5s ease both}
.animate-fadeInDown{animation:fadeInDown 0.4s ease both}
.animate-scaleIn{animation:scaleIn 0.4s ease both}
.animate-bounceIn{animation:bounceIn 0.6s ease both}
.animate-float{animation:float 3s ease-in-out infinite}
.animate-glow{animation:glow 2s ease-in-out infinite}
.animate-pulse{animation:pulse 2s ease-in-out infinite}
.animate-spin{animation:spin 1s linear infinite}
.animate-zoomIn{animation:zoomIn 0.3s ease both}
.animate-slideUp{animation:slideUp 0.5s ease both}
.animate-gradient{background:linear-gradient(270deg,var(--accent-gold),var(--accent-blue),var(--accent-gold));background-size:200% 200%;animation:gradient-shift 3s ease infinite}
.animate-border-glow{animation:borderGlow 2s ease-in-out infinite}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease}
.reveal.revealed{opacity:1;transform:translateY(0)}
.hover-glow:hover{animation:glow 0.6s ease-in-out infinite}
.hover-float:hover{animation:float 2s ease-in-out infinite}
.hover-shake:hover{animation:shake 0.4s ease}
.hover-lift{transition:transform var(--transition)}
.hover-lift:hover{transform:translateY(-3px)}
.hover-scale{transition:transform var(--transition)}
.hover-scale:hover{transform:scale(1.04)}
.stagger-item{opacity:0;transform:translateY(20px);transition:all 0.5s ease}
.stagger-item.revealed{opacity:1;transform:translateY(0)}
.whatsapp-pulse{animation:wa-pulse 2s infinite}
.pulse-ring-float{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid #25D366;animation:wa-pulse 2s infinite;pointer-events:none}
.toast-container{position:fixed;top:80px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:8px}
.toast{padding:12px 20px;border-radius:var(--radius);font-size:13px;font-weight:500;color:#fff;animation:slideInRight 0.3s ease;max-width:360px;box-shadow:var(--shadow-lg)}
.toast-success{background:var(--accent-green)}
.toast-error{background:var(--accent-red)}
.toast-info{background:var(--accent-blue)}
.visible{opacity:1}