@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-20px) scale(1.2)}to{opacity:0;transform:translateY(-40px) scale(.8)}}.animate-float-up{animation:float-up 2s ease-out forwards}@keyframes slide-in-right{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-right{animation:slide-in-right .3s ease-out}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-left{animation:slide-in-left .3s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease-out}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in .2s ease-out}@keyframes typing-dot{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.typing-dot{animation:typing-dot 1.4s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes presence-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.95)}}.presence-pulse{animation:presence-pulse 2s ease-in-out infinite}.smooth-height{transition:height .3s cubic-bezier(.4,0,.2,1)}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}.scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-none::-webkit-scrollbar{display:none}.smooth-scroll{scroll-behavior:smooth}.gpu-accelerated{transform:translateZ(0);will-change:transform}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}