@keyframes confettiBounce{0%{opacity:1;transform:translate(0) rotate(0deg) scale(1)}to{opacity:0;transform:translate(var(--dx-100),var(--dy-100)) rotate(var(--rotation-100)) scale(.7)}15%{opacity:1;transform:translate(var(--dx-15),var(--dy-15)) rotate(var(--rotation-15)) scale(1.1)}30%{opacity:.9;transform:translate(var(--dx-30),var(--dy-30)) rotate(var(--rotation-30)) scale(1)}45%{opacity:.8;transform:translate(var(--dx-45),var(--dy-45)) rotate(var(--rotation-45)) scale(.95)}60%{opacity:.7;transform:translate(var(--dx-60),var(--dy-60)) rotate(var(--rotation-60)) scale(.9)}75%{opacity:.5;transform:translate(var(--dx-75),var(--dy-75)) rotate(var(--rotation-75)) scale(.85)}90%{opacity:.2;transform:translate(var(--dx-90),var(--dy-90)) rotate(var(--rotation-90)) scale(.8)}}@keyframes confettiExplosion{0%{opacity:1;transform:translate(0) rotate(0deg) scale(1)}10%{opacity:1;transform:translate(var(--dx-10),var(--dy-10)) rotate(var(--rotation-10)) scale(1.1)}to{opacity:0;transform:translate(var(--dx-100),var(--dy-100)) rotate(var(--rotation-100)) scale(.6)}25%{opacity:.9;transform:translate(var(--dx-25),var(--dy-25)) rotate(var(--rotation-25)) scale(1)}50%{opacity:.8;transform:translate(var(--dx-50),var(--dy-50)) rotate(var(--rotation-50)) scale(.9)}75%{opacity:.4;transform:translate(var(--dx-75),var(--dy-75)) rotate(var(--rotation-75)) scale(.8)}}@keyframes errorShake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes footerSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(80px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes successBounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-3px) scale(1.1)}}@keyframes successFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}