.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.animate-float,.animate-float-delayed,.animate-float-slow,.animate-float-very-slow,.animate-float-very-slow-delayed,.animate-twinkle,.animate-twinkle-delayed,.animate-twinkle-slow{will-change:transform;backface-visibility:hidden;perspective:1000px}@keyframes float{0%,to{transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(-20px) translate(10px) rotate(2deg)}50%{transform:translateY(-10px) translate(-5px) rotate(-1deg)}75%{transform:translateY(-15px) translate(-8px) rotate(1deg)}}@keyframes float-delayed{0%,to{transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(-15px) translate(-8px) rotate(-2deg)}50%{transform:translateY(-25px) translate(12px) rotate(1deg)}75%{transform:translateY(-5px) translate(5px) rotate(-1deg)}}@keyframes float-slow{0%,to{transform:translateY(0) translate(0) scale(1)}33%{transform:translateY(-12px) translate(8px) scale(1.05)}66%{transform:translateY(-8px) translate(-10px) scale(.98)}}@keyframes float-very-slow{0%,to{transform:translateY(0) translate(0) rotate(0)}50%{transform:translateY(-30px) translate(15px) rotate(10deg)}}@keyframes float-very-slow-delayed{0%,to{transform:translateY(0) translate(0) rotate(0)}50%{transform:translateY(-25px) translate(-12px) rotate(-8deg)}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes twinkle-delayed{0%,to{opacity:.4;transform:scale(.9) rotate(0)}50%{opacity:.9;transform:scale(1.1) rotate(180deg)}}@keyframes twinkle-slow{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:.8;transform:scale(1.3)}}@keyframes bounce-slow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(5deg)}}@keyframes bounce-delayed{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(-3deg)}}@keyframes bounce-very-slow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(8deg)}}@keyframes bounce-extra-slow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(-6deg)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px #22c55e4d}50%{box-shadow:0 0 20px #22c55e99,0 0 30px #22c55e66}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes card-glow{0%,to{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}50%{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d,0 0 0 1px #3b82f64d}}@keyframes progress-fill{0%{width:0%}to{width:var(--progress-width)}}@keyframes button-press{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(3deg)}75%{transform:rotate(-3deg)}}.animate-float{animation:float 12s ease-in-out infinite}.animate-float-delayed{animation:float-delayed 15s ease-in-out infinite;animation-delay:3s}.animate-float-slow{animation:float-slow 20s ease-in-out infinite;animation-delay:2s}.animate-float-very-slow{animation:float-very-slow 30s ease-in-out infinite}.animate-float-very-slow-delayed{animation:float-very-slow-delayed 35s ease-in-out infinite;animation-delay:5s}.animate-twinkle{animation:twinkle 6s ease-in-out infinite}.animate-twinkle-delayed{animation:twinkle-delayed 8s ease-in-out infinite;animation-delay:3s}.animate-twinkle-slow{animation:twinkle-slow 10s ease-in-out infinite;animation-delay:1s}.animate-bounce-slow{animation:bounce-slow 4s ease-in-out infinite}.animate-bounce-delayed{animation:bounce-delayed 5s ease-in-out infinite;animation-delay:2s}.animate-bounce-very-slow{animation:bounce-very-slow 6s ease-in-out infinite;animation-delay:1s}.animate-bounce-extra-slow{animation:bounce-extra-slow 7s ease-in-out infinite;animation-delay:3s}.animate-glow-pulse{animation:glow-pulse 2s ease-in-out infinite}.animate-card-glow{animation:card-glow .3s ease-in-out}.animate-shimmer{animation:shimmer 2s linear infinite}.animate-button-press{animation:button-press .1s ease-in-out}.animate-wobble{animation:wobble .5s ease-in-out}@media (prefers-reduced-motion: reduce){.animate-float,.animate-float-delayed,.animate-float-slow,.animate-float-very-slow,.animate-float-very-slow-delayed,.animate-twinkle,.animate-twinkle-delayed,.animate-twinkle-slow,.animate-bounce-slow,.animate-bounce-delayed,.animate-bounce-very-slow,.animate-bounce-extra-slow{animation:none}}
