/* Shared page transitions for internal navigation */
@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }

    body {
        animation: nnPageEnter 320ms cubic-bezier(0.22, 1, 0.36, 1) both;
        transition: opacity 260ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1), filter 260ms ease;
        will-change: opacity, transform, filter;
    }

    body.nn-page-leaving {
        opacity: 0;
        transform: translateY(14px) scale(0.995);
        filter: blur(2px);
        pointer-events: none;
    }

    a,
    button,
    .btn,
    .cta-btn,
    .menu-option,
    .nav-link,
    .tab-btn,
    .track-item {
        transition: transform 180ms ease, opacity 180ms ease;
    }

    a:hover,
    button:hover,
    .btn:hover,
    .cta-btn:hover,
    .menu-option:hover,
    .nav-link:hover,
    .tab-btn:hover,
    .track-item:hover {
        transform: translateY(-1px);
    }

    @keyframes nnPageEnter {
        from {
            opacity: 0;
            transform: translateY(12px) scale(0.996);
            filter: blur(2px);
        }

        to {
            opacity: 1;
            transform: translateY(0) scale(1);
            filter: blur(0);
        }
    }

}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    body {
        animation: none;
        transition: none;
    }
}