@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(176,28,28,.3)}50%{box-shadow:0 0 30px rgba(176,28,28,.5)}}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes secure-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shake-error{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes success-check{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}@keyframes loading-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.float-animation{animation:float 3s ease-in-out infinite}.pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.gradient-shift{background-size:200% 200%;animation:gradient-shift 3s ease infinite}.secure-pulse{animation:secure-pulse 2s ease-in-out infinite}.slide-in-up{animation:slide-in-up .5s ease-out forwards}.bounce-in{animation:bounce-in .6s cubic-bezier(.68,-.55,.265,1.55) forwards}.shake-error{animation:shake-error .5s ease-in-out}.success-check{animation:success-check .6s ease-out forwards}.loading-spin{animation:loading-spin 1s linear infinite}.security-badge{animation:secure-pulse 3s ease-in-out infinite}.otp-input{transition:all .3s ease}.otp-input:focus{transform:scale(1.02);box-shadow:0 0 0 3px rgba(176,28,28,.1)}.trust-device-checkbox{transition:all .2s ease}.trust-device-checkbox:checked{animation:success-check .3s ease-out}.alert-new-device{animation:slide-in-up .5s ease-out,pulse-glow 2s ease-in-out .5s infinite}.form-error{animation:shake-error .5s ease-in-out,slide-in-up .3s ease-out}.form-success{animation:success-check .6s ease-out,slide-in-up .3s ease-out}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}