/* ── View Transitions API ── */
::view-transition-old(root) {
    animation: domrdm-vt-out 180ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
::view-transition-new(root) {
    animation: domrdm-vt-in 180ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes domrdm-vt-out {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-6px); }
}
@keyframes domrdm-vt-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Fallback (no View Transitions support) ── */
.domrdm-fade-out {
    animation: domrdm-vt-out 120ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.domrdm-fade-in {
    animation: domrdm-vt-in 180ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* ── Loading state ── */
.domrdm-loading {
    opacity: .55;
    pointer-events: none;
    transition: opacity 120ms ease;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root),
    .domrdm-fade-out,
    .domrdm-fade-in {
        animation-duration: 0s !important;
        transform: none !important;
    }
}
