@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-10deg) scale(.9)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}.fade-in-up{animation:fadeInUp .6s ease-out forwards}.fade-in-down{animation:fadeInDown .6s ease-out forwards}.slide-in-left{animation:slideInLeft .6s ease-out forwards}.slide-in-right{animation:slideInRight .6s ease-out forwards}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-slideIn{animation:slideIn .3s ease-out forwards}.animate-scaleIn{animation:scaleIn .5s ease-out forwards}.animate-zoomIn{animation:zoomIn .5s ease-out forwards}.animate-rotateIn{animation:rotateIn .6s ease-out forwards}.animate-bounceIn{animation:bounceIn .8s ease-out forwards}.scroll-animate{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out}.scroll-animate.animate{opacity:1}.scroll-fade-up{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-fade-up.animate{opacity:1;transform:translateY(0)}.scroll-fade-down{opacity:0;transform:translateY(-30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-fade-down.animate{opacity:1;transform:translateY(0)}.scroll-slide-left{opacity:0;transform:translate(-30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-slide-left.animate{opacity:1;transform:translate(0)}.scroll-slide-right{opacity:0;transform:translate(30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-slide-right.animate{opacity:1;transform:translate(0)}.scroll-scale{opacity:0;transform:scale(.9);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-scale.animate{opacity:1;transform:scale(1)}.scroll-zoom{opacity:0;transform:scale(.8);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-zoom.animate{opacity:1;transform:scale(1)}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.writing-mode-vertical{writing-mode:vertical-rl;text-orientation:mixed}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:#10b981 #f3f4f6}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f3f4f6;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#10b981;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#059669}
