/**
 * DramaHub Cinematic Page Transitions v1.0
 * Ultra-smooth, velvety page switching with neon gradient progress bar & View Transitions
 */

/* -------------------------------------------------------------------------
   1. View Transitions API (Hardware Accelerated Crossfade)
   ------------------------------------------------------------------------- */
@view-transition {
    navigation: auto;
}

::view-transition-old(root) {
    animation: 200ms cubic-bezier(0.16, 1, 0.3, 1) both dh-fade-out;
}

::view-transition-new(root) {
    animation: 260ms cubic-bezier(0.16, 1, 0.3, 1) both dh-fade-in;
}

@keyframes dh-fade-out {
    from {
        opacity: 1;
        transform: scale(1);
    }
    to {
        opacity: 0;
        transform: scale(0.995);
    }
}

@keyframes dh-fade-in {
    from {
        opacity: 0;
        transform: scale(1.005);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* -------------------------------------------------------------------------
   2. Fallback CSS Page Transitions (For all browsers)
   ------------------------------------------------------------------------- */
html {
    scroll-behavior: smooth;
}

/* Initial page enter animation */
body {
    animation: dhPageEnter 280ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
    will-change: opacity, transform;
}

@keyframes dhPageEnter {
    0% {
        opacity: 0;
        transform: translateY(6px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Page leaving state applied right before navigation */
body.dh-page-leaving {
    opacity: 0 !important;
    transform: translateY(-6px) scale(0.995) !important;
    transition: opacity 180ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms cubic-bezier(0.16, 1, 0.3, 1) !important;
    pointer-events: none !important;
}

/* -------------------------------------------------------------------------
   3. Radiant Neon Top Progress Bar
   ------------------------------------------------------------------------- */
#dh-top-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    z-index: 9999999;
    pointer-events: none;
    background: linear-gradient(90deg, #f43f5e, #ec4899, #8b5cf6, #38bdf8);
    box-shadow: 0 0 12px rgba(244, 63, 94, 0.8), 0 0 4px rgba(56, 189, 248, 0.6);
    transition: width 200ms cubic-bezier(0.16, 1, 0.3, 1), opacity 200ms ease;
    border-radius: 0 2px 2px 0;
    opacity: 0;
}

#dh-top-progress.active {
    opacity: 1;
}

#dh-top-progress.completing {
    width: 100% !important;
    opacity: 0;
    transition: width 150ms ease-out, opacity 250ms ease-out 120ms;
}

/* Shimmer pulse effect at the head of progress bar */
#dh-top-progress::after {
    content: '';
    position: absolute;
    top: -2px;
    right: 0;
    width: 80px;
    height: 7px;
    background: radial-gradient(ellipse at right, rgba(255, 255, 255, 0.8) 0%, rgba(244, 63, 94, 0) 75%);
    filter: drop-shadow(0 0 6px #fff);
    border-radius: 50%;
}

/* -------------------------------------------------------------------------
   4. Reduced Motion Preference (Accessibility)
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    body {
        animation: none !important;
    }
    body.dh-page-leaving {
        opacity: 0 !important;
        transform: none !important;
        transition: opacity 100ms linear !important;
    }
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation: none !important;
    }
}
