@keyframes realisticBounce{0%{transform:translateY(0)}30%{transform:translateY(45px)}45%{transform:translateY(12px)}60%{transform:translateY(30px)}72%{transform:translateY(17px)}82%{transform:translateY(25px)}to{transform:translateY(20px)}}.physics-bounce{animation:realisticBounce 1.2s ease-in-out infinite;will-change:transform}.axis{stroke:#888;stroke-width:1.5}.curve{stroke:#4f46e5;stroke-width:2;stroke-linecap:round;stroke-dasharray:200;stroke-dashoffset:200;animation:drawCurve 2s ease-in-out infinite alternate forwards}@keyframes drawCurve{0%{stroke-dashoffset:200}to{stroke-dashoffset:0}}@keyframes spinSlow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin-slow{animation:spinSlow 5s linear infinite}