@keyframes slideRight { from { transform: translateX(0%); position:absolute; } to { transform: translateX(100%); position:absolute; } } @keyframes slideRightIn { from { transform: translateX(100%); position:absolute; } to { transform: translateX(0%); position:absolute; } } @keyframes slideLeft { from { transform: translateX(0%); position:absolute; } to { transform: translateX(-100%); position:absolute; } } @keyframes slideLeftIn { from { transform: translateX(-100%); position:absolute; } to { transform: translateX(-0%); position:absolute; } } @keyframes popup { 0% { transform: scale(0) translateX(-50%); } 15% { transform: scale(1) translateX(-50%); } 85% { transform: scale(1) translateX(-50%); } 100% { transform: scale(0) translateX(-50%); } } @keyframes confetti-fall { 0% { transform: translateY(-100vh) rotate(0deg); opacity: 1; } 100% { transform: translateY(100vh) rotate(720deg); opacity: 0; } } .confetti { position: absolute; width: 10px; height: 10px; animation: confetti-fall 3s linear infinite; } @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); } 50% { box-shadow: 0 0 40px rgba(59, 130, 246, 0.8); } } .glow-effect { animation: pulse-glow 2s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-10px) rotate(5deg); } } .float-animation { animation: float 3s ease-in-out infinite; } @keyframes sparkle { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.2); } } .sparkle { animation: sparkle 1.5s ease-in-out infinite; } @keyframes bg-loaded { 0% { transform: scale(0); filter: blur(10px);} 100% { transform: scale(1); filter: blur(0);} } .bg-loaded { animation: bg-loaded 200ms ease-in-out; }