@keyframes spinFast{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spinSlowStop{0%{transform:rotate(0deg)}70%{transform:rotate(330deg)}to{transform:rotate(1turn)}}.spin-fast{animation:spinFast 1.2s linear infinite}.spin-slow-stop{animation:spinSlowStop 2s ease-out forwards}.hidden-result{opacity:0}.hidden-result,.visible-result{transition:opacity .3s ease-in-out}.visible-result{opacity:1}.hidden-circle{opacity:0}.hidden-circle,.visible-circle{transition:opacity .3s ease-in-out}.visible-circle{opacity:1}.icon-selected{border:2px dashed #3b82f6;animation:pulse-border 1.2s infinite;border-radius:.75rem}@keyframes pulse-border{0%{box-shadow:0 0 0 0 rgba(59,130,246,.5)}70%{box-shadow:0 0 0 6px rgba(59,130,246,0)}to{box-shadow:0 0 0 0 rgba(59,130,246,0)}}.animate-bounce{animation:bounce 1s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shake{0%{transform:translate(0) rotate(0)}10%{transform:translate(-3px,3px) rotate(-3deg)}20%{transform:translate(3px,-3px) rotate(3deg)}30%{transform:translate(-4px,2px) rotate(-4deg)}40%{transform:translate(4px,-2px) rotate(4deg)}50%{transform:translate(-3px,3px) rotate(-3deg)}60%{transform:translate(3px,-3px) rotate(3deg)}70%{transform:translate(-2px,2px) rotate(-2deg)}80%{transform:translate(2px,-2px) rotate(2deg)}to{transform:translate(0) rotate(0)}}.result-shake{animation:shake 1s ease-in-out both}@media (max-width:320px){.history-icons{gap:.25rem}.history-icon{width:1.25rem;height:1.25rem;min-width:1.25rem}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin-circle{animation:spin 3s linear infinite}