/* Animaciones (ligeras: solo transform y opacidad) */

/* ================================================================ animaciones (ligeras: solo transform y opacidad) */
@keyframes rise { from { opacity: 0; transform: translateY(8px); } }
@keyframes fade { from { opacity: 0; } }
@keyframes pop { from { opacity: 0; transform: scale(.85); } }
@keyframes msg-in { from { opacity: 0; transform: translateY(6px) scale(.98); } }
.view.view-enter > * { animation: rise .32s cubic-bezier(.2, .9, .3, 1) both; }
.view.view-enter > *:nth-child(2) { animation-delay: .04s; }
.view.view-enter > *:nth-child(3) { animation-delay: .08s; }
.view.view-enter > *:nth-child(n + 4) { animation-delay: .12s; }
.view-enter .home-col > .card, .view-enter .home-pair > .card, .view-enter .project-grid > *, .view-enter .files-grid > *, .view-enter .board-col { animation: rise .35s cubic-bezier(.2, .9, .3, 1) both; }
.view-enter .home-col > .card:nth-child(2), .view-enter .home-pair > .card:nth-child(2), .view-enter .board-col:nth-child(2) { animation-delay: .05s; }
.view-enter .board-col:nth-child(3) { animation-delay: .1s; }
.view-enter .project-grid > *:nth-child(n + 2), .view-enter .files-grid > *:nth-child(n + 2) { animation-delay: .04s; }
.view-enter .project-grid > *:nth-child(n + 4), .view-enter .files-grid > *:nth-child(n + 6) { animation-delay: .08s; }
.msg.is-new { animation: msg-in .28s cubic-bezier(.2, .9, .3, 1) both; }
.card, .project-card, .task-card, .fi, .chat-item, .nav-item { transition: transform .18s ease, box-shadow .18s ease, background .15s, border-color .15s; }
.project-card:hover, .task-card:hover { transform: translateY(-2px); }
.fi:hover { transform: translateY(-2px); }
.btn { transition: background .15s, border-color .15s, color .15s, transform .1s; }
.btn:active:not(:disabled) { transform: scale(.97); }
.nav-item.active .icon { animation: pop .35s cubic-bezier(.2, 1.4, .4, 1); }
.nav-badge { animation: pop .3s cubic-bezier(.2, 1.4, .4, 1) both; }
.modal-backdrop.open .modal { animation: rise .25s cubic-bezier(.2, .9, .3, 1) both; }
.task-card.drag-source, .fi.is-dragging { transition: none; }
