@keyframes tomatoFloat{0%{opacity:1;transform:translate(-50%,-50%) scale(.8) rotate(0deg)}50%{opacity:1;transform:translate(-50%,-80%) scale(1.2) rotate(180deg)}to{opacity:0;transform:translate(-50%,-150%) scale(1.5) rotate(1turn)}}@keyframes harvestToBasket{0%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0deg)}50%{opacity:.8;transform:translate(calc(var(--end-x) - 50%),calc(var(--end-y) - 50%)) scale(1.3) rotate(180deg)}to{opacity:0;transform:translate(calc(var(--end-x) - 50%),calc(var(--end-y) - 50%)) scale(.5) rotate(1turn)}}@keyframes tomatoBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.1)}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.2)}}@keyframes celebrationPop{0%{opacity:0;transform:scale(0) rotate(0deg)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}to{opacity:0;transform:scale(.8) rotate(1turn)}}@keyframes counterBump{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.tomato-float{animation:tomatoFloat 1.8s ease-out forwards}.tomato-bounce{animation:tomatoBounce 2s ease-in-out infinite}.sparkle{animation:sparkle .6s ease-out}.celebration-pop{animation:celebrationPop 1.5s ease-out}.counter-bump{animation:counterBump .4s ease-out}@keyframes scale-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in .3s ease-out}