/* =========================================================
   page-transitions.css
   Subtle cross-page fade + blur, ~280ms, plus a quick top
   loading sweep (reuses the scroll-progress bar). Pure
   presentational chrome — no text content involved.
   ========================================================= */

:root {
    --pt-duration: 280ms;
}

html {
    animation: pt-page-enter var(--pt-duration) ease both;
    transition: opacity var(--pt-duration) ease, filter var(--pt-duration) ease;
}

@keyframes pt-page-enter {
    from {
        opacity: 0;
        filter: blur(6px);
    }
    to {
        opacity: 1;
        filter: blur(0);
    }
}

/* Applied by page-transitions.js just before navigating away */
html.pt-exit {
    opacity: 0;
    filter: blur(6px);
}

/* Quick top loading sweep while the next page loads, reusing
   the same bar/track from the scroll-progress indicator. */
.scroll-progress-bar.pt-loading {
    transition: width var(--pt-duration) ease;
}

@media (prefers-reduced-motion: reduce) {
    html {
        animation: none;
    }
    html.pt-exit {
        transition: none;
        opacity: 1;
        filter: none;
    }
}
