@tailwind base;@tailwind components;@tailwind utilities;.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@keyframes bounce{0%,20%,53%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-30px,0)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}.animate-bounce{animation:bounce 1s infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-slow{0%,to{opacity:.3}50%{opacity:.6}}.animate-fade-in{animation:fadeIn .8s ease-out}.animate-slide-up{animation:slideUp .8s ease-out}.animate-slide-up.delay-300{animation-delay:.3s;animation-fill-mode:both}.animate-slide-up.delay-500{animation-delay:.5s;animation-fill-mode:both}.animate-slide-up.delay-700{animation-delay:.7s;animation-fill-mode:both}.animate-slide-up.delay-1000{animation-delay:1s;animation-fill-mode:both}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse-slow{animation:pulse-slow 4s ease-in-out infinite}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradient{background:linear-gradient(-45deg,#3B82F6,#8B5CF6,#06B6D4,#10B981);background-size:400% 400%;animation:gradient 3s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
