.page-transition-enter{opacity:0;filter:blur(10px);transform:translateY(20px)}.page-transition-enter-active{opacity:1;filter:blur(0);transform:translateY(0);transition:all .4s cubic-bezier(.4,0,.2,1)}.page-transition-exit{opacity:1;filter:blur(0)}.page-transition-exit-active{opacity:0;filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1)}@keyframes fadeInScaleUp{0%{opacity:0;transform:scale(.95) translateY(10px);filter:blur(5px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.animate-fade-in-scale-up{animation:fadeInScaleUp .5s cubic-bezier(.4,0,.2,1)}.btn-hover{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.btn-hover:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.1);transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-hover:hover:before{width:300px;height:300px}.btn-hover:hover{transform:scale(1.05) translateY(-2px);box-shadow:0 10px 40px rgba(239,68,68,.4)}.btn-hover:active{transform:scale(.98) translateY(0)}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.7)}50%{box-shadow:0 0 0 15px rgba(239,68,68,0)}}.btn-pulse{animation:pulse-glow 2s infinite}.icon-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.icon-hover:hover{transform:scale(1.2) rotate(5deg);filter:brightness(1.2)}.card-hover{transition:all .4s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 60px rgba(239,68,68,.3)}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton{animation:shimmer 2s linear infinite;background:linear-gradient(90deg,rgba(24,24,27,1),rgba(39,39,42,1) 50%,rgba(24,24,27,1));background-size:1000px 100%}.skeleton-text{height:1rem;border-radius:.25rem;margin-bottom:.5rem}.skeleton-title{height:1.5rem;border-radius:.25rem;margin-bottom:1rem;width:60%}.skeleton-avatar{width:3rem;height:3rem;border-radius:50%}.skeleton-card{border-radius:.75rem;padding:1.5rem;background:rgba(24,24,27,1)}.parallax-bg{transition:transform .1s ease-out;will-change:transform}html{scroll-behavior:smooth}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-enter{animation:modalFadeIn .3s cubic-bezier(.4,0,.2,1)}@keyframes backdropFadeIn{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(10px)}}.backdrop-enter{animation:backdropFadeIn .3s ease-out}@keyframes slideInRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.notification-enter{animation:slideInRight .4s cubic-bezier(.4,0,.2,1)}@keyframes ripple{to{transform:scale(4);opacity:0}}.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);width:20px;height:20px;pointer-events:none;animation:ripple .6s ease-out}@keyframes swipeRight{to{transform:translateX(150%) rotate(20deg);opacity:0}}@keyframes swipeLeft{to{transform:translateX(-150%) rotate(-20deg);opacity:0}}@keyframes swipeUp{to{transform:translateY(-150%) scale(1.1);opacity:0}}.swipe-right{animation:swipeRight .4s cubic-bezier(.4,0,.6,1)}.swipe-left{animation:swipeLeft .4s cubic-bezier(.4,0,.6,1)}.swipe-up{animation:swipeUp .5s cubic-bezier(.4,0,.6,1)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-bounce-slow{animation:bounce 2s infinite}.glow-on-hover{position:relative;transition:all .3s}.glow-on-hover:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;opacity:0;transition:opacity .3s;box-shadow:0 0 30px rgba(239,68,68,.6)}.glow-on-hover:hover:after{opacity:1}@keyframes drip{0%{transform:translateY(-100%);opacity:0}10%{opacity:1}to{transform:translateY(100vh);opacity:0}}.blood-drip{animation:drip 3s ease-in infinite}@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 fadeInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in-up{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1)}.animate-fade-in-down{animation:fadeInDown .6s cubic-bezier(.4,0,.2,1)}.animate-fade-in-left{animation:fadeInLeft .6s cubic-bezier(.4,0,.2,1)}.animate-fade-in-right{animation:fadeInRight .6s cubic-bezier(.4,0,.2,1)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}@keyframes spin-glow{0%{transform:rotate(0deg);filter:drop-shadow(0 0 5px rgba(239,68,68,.5))}50%{filter:drop-shadow(0 0 20px rgba(239,68,68,.8))}to{transform:rotate(1turn);filter:drop-shadow(0 0 5px rgba(239,68,68,.5))}}.spinner-glow{animation:spin-glow 1s linear infinite}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.text-gradient-animated{background:linear-gradient(90deg,#ef4444,#dc2626,#b91c1c,#ef4444);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 3s ease infinite}@keyframes countUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.count-up{animation:countUp .5s cubic-bezier(.4,0,.2,1)}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.typewriter{overflow:hidden;border-right:2px solid #ef4444;white-space:nowrap;animation:typing 3s steps(40) 1s,blink .75s step-end infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 6s ease-in-out infinite}@keyframes pulse-glow-soft{0%,to{box-shadow:0 0 15px rgba(220,38,38,.2)}50%{box-shadow:0 0 25px rgba(220,38,38,.5)}}.animate-pulse-glow-soft{animation:pulse-glow-soft 3s infinite}@keyframes swipe-in{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-swipe-in{animation:swipe-in .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes messageBubbleIn{0%{opacity:0;transform:scale(.8) translateY(10px)}60%{transform:scale(1.03) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.chat-message-enter{animation:messageBubbleIn .35s cubic-bezier(.34,1.56,.64,1)}@keyframes messageSent{0%{opacity:0;transform:translateX(20px) scale(.95)}to{opacity:1;transform:translateX(0) scale(1)}}.chat-message-sent{animation:messageSent .3s cubic-bezier(.16,1,.3,1)}@keyframes messageReceived{0%{opacity:0;transform:translateX(-20px) scale(.95)}to{opacity:1;transform:translateX(0) scale(1)}}.chat-message-received{animation:messageReceived .3s cubic-bezier(.16,1,.3,1)}@keyframes reactionPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.4)}to{transform:scale(1);opacity:1}}.reaction-pop{animation:reactionPop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes emojiPickerIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.emoji-picker-enter{animation:emojiPickerIn .2s cubic-bezier(.16,1,.3,1)}@keyframes checkmarkAppear{0%{opacity:0;transform:scale(.5)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.checkmark-animate{animation:checkmarkAppear .3s cubic-bezier(.34,1.56,.64,1)}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-8px);opacity:1}}.typing-dot{animation:typingBounce 1.4s ease-in-out infinite}.typing-dot:first-child{animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes sendReady{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}.send-btn-ready{animation:sendReady 1.5s infinite}.conversation-item-glow{transition:all .3s cubic-bezier(.4,0,.2,1)}.conversation-item-glow:hover{background:linear-gradient(135deg,rgba(239,68,68,.1),transparent 50%);box-shadow:inset 0 0 20px rgba(239,68,68,.1)}@keyframes headerSlideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.chat-header-enter{animation:headerSlideDown .3s cubic-bezier(.16,1,.3,1)}.chat-input-focus{transition:all .3s ease}.chat-input-focus:focus-within{box-shadow:0 0 0 2px rgba(239,68,68,.3),0 0 20px rgba(239,68,68,.15)}.chat-scroll-smooth{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}@keyframes newMessagePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.new-message-indicator{animation:newMessagePulse 1s infinite}.attachment-preview{transition:all .3s cubic-bezier(.4,0,.2,1)}.attachment-preview:hover{transform:scale(1.05);box-shadow:0 10px 30px rgba(0,0,0,.3)}@keyframes chipSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.quick-reply-chip{animation:chipSlideUp .3s cubic-bezier(.16,1,.3,1);animation-fill-mode:both}.quick-reply-chip:first-child{animation-delay:.05s}.quick-reply-chip:nth-child(2){animation-delay:.1s}.quick-reply-chip:nth-child(3){animation-delay:.15s}.quick-reply-chip:nth-child(4){animation-delay:.2s}@keyframes actionsSlideIn{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}.message-actions-enter{animation:actionsSlideIn .2s cubic-bezier(.16,1,.3,1)}@keyframes onlineBreathing{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.online-dot{animation:onlineBreathing 2s ease-in-out infinite}