@keyframes message-slide-in{0%{opacity:0}to{opacity:1}}@keyframes message-slide-in-own{0%{opacity:0}to{opacity:1}}.message-animate-in{animation:message-slide-in .2s ease-out forwards}.message-animate-in-own{animation:message-slide-in-own .2s ease-out forwards}@keyframes reaction-pop{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes reaction-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.reaction-animate-in{animation:reaction-pop .15s ease-out forwards}.reaction-animate-update{animation:reaction-bounce .3s cubic-bezier(.34,1.56,.64,1)}@keyframes toolbar-slide-in{0%{opacity:0;transform:translate(10px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.message-toolbar{transform:translate(5px) scale(.95)}.group\/message:hover .message-toolbar{animation:toolbar-slide-in .2s cubic-bezier(.22,1,.36,1) forwards}@keyframes online-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--color-online) 70%,transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-online) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--color-online) 0%,transparent)}}.online-status-pulse{animation:online-pulse 2s ease-out infinite}@keyframes icon-tap{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}@keyframes icon-bounce{0%{transform:translateY(0)}40%{transform:translateY(-4px)}to{transform:translateY(0)}}.action-icon-tap{transition:transform .15s ease}.action-icon-tap:active{animation:icon-tap .2s ease forwards}.action-icon-tap:active .action-icon{animation:icon-bounce .3s cubic-bezier(.34,1.56,.64,1)}@keyframes highlight-pulse{0%{background-color:var(--bg-plate-hi)}to{background-color:transparent}}.highlight-pulse-animation{animation:highlight-pulse 2s ease-out}.smooth-scroll-target{scroll-margin-top:100px}@keyframes group-fade-in{0%{opacity:0}to{opacity:1}}.message-group-animate{animation:group-fade-in .2s ease-out forwards}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}
