@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.5s ease-out fadeIn}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:.6s cubic-bezier(.16,1,.3,1) slideUp}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-bounce-subtle{animation:.6s ease-in-out bounce}.post-card-hover{transition:all .3s cubic-bezier(.16,1,.3,1)}.post-card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-loading{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 37%,#f0f0f0 63%) 0 0/400px 100%;animation:1.4s infinite skeleton-loading}@keyframes tabSwitch{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.animate-tab-switch{animation:.3s ease-out tabSwitch}@media (max-width:768px){.animate-slide-up{animation-duration:.4s}.post-card-hover:hover{transform:none}.animate-bounce-subtle{animation:none}.transition-all,.transition-transform,.transition-opacity{transition-duration:.2s!important}}@media (prefers-reduced-motion:reduce){.animate-slide-up,.animate-fade-in,.animate-bounce-subtle,.animate-pulse,.animate-spin{animation:none}.transition-all,.transition-transform,.transition-opacity{transition:none}}@media (min-width:1024px){.animate-slide-up{animation-duration:.6s}}
