@keyframes fadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.animate-fade-up {
    animation: fadeUp 0.4s var(--ease) both;
}

.animate-item {
    animation: fadeUp 0.4s var(--ease) both;
}

/* Staggered появление карточек */
.stats-grid .stat-card:nth-child(1) { animation-delay: 0.02s; }
.stats-grid .stat-card:nth-child(2) { animation-delay: 0.05s; }
.stats-grid .stat-card:nth-child(3) { animation-delay: 0.08s; }
.stats-grid .stat-card:nth-child(4) { animation-delay: 0.11s; }
.stats-grid .stat-card:nth-child(5) { animation-delay: 0.14s; }
.stats-grid .stat-card:nth-child(6) { animation-delay: 0.17s; }
.stats-grid .stat-card:nth-child(7) { animation-delay: 0.20s; }
.stats-grid .stat-card:nth-child(8) { animation-delay: 0.23s; }

/* Плавное появление контента страницы */
.content > * {
    animation: fadeIn 0.3s ease both;
}

/* Таблицы: мягкое появление строк */
.data-table tbody tr {
    animation: fadeUp 0.25s var(--ease) both;
}

.data-table tbody tr:nth-child(1) { animation-delay: 0.02s; }
.data-table tbody tr:nth-child(2) { animation-delay: 0.04s; }
.data-table tbody tr:nth-child(3) { animation-delay: 0.06s; }
.data-table tbody tr:nth-child(4) { animation-delay: 0.08s; }
.data-table tbody tr:nth-child(5) { animation-delay: 0.10s; }
.data-table tbody tr:nth-child(6) { animation-delay: 0.12s; }
.data-table tbody tr:nth-child(7) { animation-delay: 0.14s; }
.data-table tbody tr:nth-child(8) { animation-delay: 0.16s; }
.data-table tbody tr:nth-child(9) { animation-delay: 0.18s; }
.data-table tbody tr:nth-child(10) { animation-delay: 0.20s; }