
.view-section {
  opacity: 0;
  transform: translateY(14px) scale(.99);
  pointer-events: none;
  transition: opacity var(--normal) var(--ease), transform var(--normal) var(--ease);
}
.view-section.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.post-card, .card-soft, .profile-card, .messages-sidebar, .messages-main, .post-view, .comment-card, .conversation-item, .search-user {
  animation: rise-in var(--slow) var(--ease);
}
.toast { animation: toast-in var(--normal) var(--ease); }
.modal-card { animation: modal-in var(--normal) var(--ease); }
@keyframes rise-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes modal-in {
  from { opacity: 0; transform: translateY(10px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toast-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition-duration: 0ms !important;
    scroll-behavior: auto !important;
  }
}
