/* Livello di movimento dell'app: entrata a cascata e micro-interazioni.
   Attivo solo quando l'utente non chiede la riduzione delle animazioni. */
@media (prefers-reduced-motion: no-preference) {
    .app-main .stats article, .app-main .card { animation: rise .48s cubic-bezier(.2, .7, .2, 1) both }
    .app-main .stats article:nth-child(1) { animation-delay: .02s }
    .app-main .stats article:nth-child(2) { animation-delay: .07s }
    .app-main .stats article:nth-child(3) { animation-delay: .12s }
    .app-main .stats article:nth-child(4) { animation-delay: .17s }
    .app-main .stats + .stats { animation-delay: 0s }
    .app-main .stats ~ .card:nth-of-type(3) { animation-delay: .2s }
    .app-main .card ~ .card { animation-delay: .08s }
    @keyframes rise { from { opacity: 0; transform: translateY(12px) } }

    .app-main tr { transition: background .15s ease }
    .badge { transition: transform .16s ease }
    .app-main tr:hover .badge { transform: scale(1.04) }
}

/* Turbo Drive: barra di avanzamento e transizione di pagina */
.turbo-progress-bar { height: 3px; background: var(--accent); border-radius: 0 2px 2px 0 }
@media (prefers-reduced-motion: no-preference) {
    ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .18s }
}
