@keyframes handshake{0%,to{transform:rotate(0deg)}20%{transform:rotate(-10deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}@keyframes rocket{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.1)}to{transform:translateY(0) scale(1)}}@keyframes trophy{0%,to{transform:rotate(0deg) scale(1)}25%{transform:rotate(5deg) scale(1.05)}75%{transform:rotate(-5deg) scale(1.05)}}@keyframes stars{0%{transform:scale(1) rotate(0deg)}50%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0deg)}}@keyframes cheers{0%,to{transform:rotate(0deg)}25%{transform:rotate(15deg)}75%{transform:rotate(-15deg)}}@keyframes medal{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-5px) rotate(5deg)}75%{transform:translateY(-5px) rotate(-5deg)}}@keyframes fire{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.animate-handshake{animation:handshake 1s ease-in-out infinite;transform-origin:center bottom}.animate-rocket{animation:rocket 1s ease-in-out infinite}.animate-trophy{animation:trophy 1.5s ease-in-out infinite;transform-origin:center bottom}.animate-stars{animation:stars 1s ease-in-out infinite}.animate-cheers{animation:cheers 1s ease-in-out infinite;transform-origin:center bottom}.animate-medal{animation:medal 1.5s ease-in-out infinite}.animate-fire{animation:fire .5s ease-in-out infinite alternate}@keyframes bounceIn{0%{opacity:0;transform:translateY(20px) scale(.9)}50%{opacity:1;transform:translateY(-10px) scale(1.05)}to{transform:translateY(0) scale(1)}}.animate-bounceIn{animation:bounceIn .5s ease-out forwards}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-fade-out{animation:fadeOut .3s ease-out forwards}@keyframes fadeInOut{0%{opacity:0;transform:scale(.8)}10%{opacity:1;transform:scale(1)}90%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.animate-fadeInOut{animation:fadeInOut 3s ease-in-out forwards}@keyframes animate-handshake{0%,to{transform:rotate(0deg)}25%{transform:rotate(-15deg)}50%{transform:rotate(0deg)}75%{transform:rotate(15deg)}}.animate-handshake{animation:animate-handshake 1s ease infinite}@keyframes animate-rocket{0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(5deg)}to{transform:translateY(0) rotate(0deg)}}.animate-rocket{animation:animate-rocket 1s ease infinite}@keyframes animate-trophy{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.animate-trophy{animation:animate-trophy 1s ease infinite}@keyframes animate-stars{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-stars{animation:animate-stars 2s linear infinite}@keyframes animate-cheers{0%{transform:translateY(0)}50%{transform:translateY(-5px)}to{transform:translateY(0)}}.animate-cheers{animation:animate-cheers 1s ease infinite}@keyframes animate-medal{0%,to{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.animate-medal{animation:animate-medal 1s ease infinite}@keyframes animate-fire{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.animate-fire{animation:animate-fire .5s ease infinite}.drag-hint{position:relative}.drag-hint:after{background:#333;border-radius:4px;color:#fff;content:"Drag to move between stages";font-size:12px;left:50%;opacity:0;padding:5px 10px;pointer-events:none;position:absolute;top:-30px;transform:translateX(-50%);transition:opacity .3s;white-space:nowrap}.drag-hint:hover:after{opacity:1}.card-shadow{box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}.text-strike{color:#9ca3af;text-decoration:line-through}.feature-list li{align-items:center;display:flex;gap:.5rem}.feature-list .icon-success{color:#10b981}.feature-list .icon-error{color:#ef4444}.gradient-text{background:linear-gradient(252deg,#fbbf24,#38bdf8);-webkit-background-clip:text;background-clip:text;color:transparent;position:relative}.gradient-text.shimmer:after{animation:shine 3.2s ease-in-out;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6) 50%,transparent);content:"";filter:blur(2px);inset:0;opacity:0;pointer-events:none;position:absolute;transform:translateX(-120%)}@keyframes shine{10%{opacity:.7}25%{opacity:0;transform:translateX(120%)}to{opacity:0;transform:translateX(120%)}}@media (prefers-reduced-motion:reduce){.gradient-text.shimmer:after{animation:none}}.card-hover{transition:all .3s ease}.card-hover:hover{box-shadow:0 10px 25px -5px rgba(0,0,0,.1);transform:translateY(-5px)}.animate-in{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stats-pulse{animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(59,130,246,.4)}70%{box-shadow:0 0 0 10px rgba(59,130,246,0)}to{box-shadow:0 0 0 0 rgba(59,130,246,0)}}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
