/* Native navigation preserves fragment URLs, focus, history and normal link actions. */
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
    @view-transition { navigation: auto; }

    ::view-transition-old(root) {
        animation: page-leave 180ms ease-out both;
    }
    ::view-transition-new(root) {
        animation: page-arrive 240ms ease-out both;
    }
    .public-shell a { transition: color 160ms ease, background-color 160ms ease; }
    .public-shell a:active { opacity: .8; }
}

/* A little breathing room when an in-page link reaches its destination. */
.public-shell main [id] { scroll-margin-top: 1.5rem; }

@keyframes page-leave { to { opacity: 0; } }
@keyframes page-arrive { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
    html { scroll-behavior: auto; }
    ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}
