@keyframes tzq-shake {
0%, 100% { transform: translateX(0); }
25% { transform: translateX(-8px); }
50% { transform: translateX(8px); }
75% { transform: translateX(-8px); }
}
.tzq-animate-shake {
animation: tzq-shake 0.4s cubic-bezier(.36,.07,.19,.97) both !important;
}
@keyframes tzq-pop-in {
0% { transform: scale(0.8); opacity: 0; }
70% { transform: scale(1.1); }
100% { transform: scale(1); opacity: 1; }
}
.tzq-animate-pop-in {
animation: tzq-pop-in 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}
@keyframes tzq-bounce-in {
0% { transform: scale(0.3); opacity: 0; }
50% { transform: scale(1.05); opacity: 1; }
70% { transform: scale(0.9); }
100% { transform: scale(1); }
}
.tzq-animate-bounce-in {
animation: tzq-bounce-in 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) both;
}
@keyframes tzq-pulse-soft {
0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--tzq-primary-rgb), 0.4); }
70% { transform: scale(1.02); box-shadow: 0 0 0 10px rgba(var(--tzq-primary-rgb), 0); }
100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--tzq-primary-rgb), 0); }
}
.tzq-pulse-effect {
animation: tzq-pulse-soft 2s infinite;
}
@keyframes tzq-float {
0% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0px); }
}
.tzq-float-effect {
animation: tzq-float 3s ease-in-out infinite;
} @keyframes tzq-spin {
to { transform: rotate(360deg); }
}
@keyframes spin {
to { transform: rotate(360deg); }
}