

/* ==========================================================================
   EasyStar Release Page Stylesheet (Extracted Phase 5)
   ========================================================================== */

/* Block 1 */
    html {
        /* Allow raw viewport width calculation without scrollbar gutter clipping */
        overflow-x: visible !important;
    }

    body {
        /* Prevent scrollbar flashing during hover effects that exceed 100% width */
        overflow-x: hidden !important;
    }

    /* ===================== AVADA FULL-WIDTH OVERRIDE ===================== */
    /* Header overrides: Ensure logo has room and menu never wraps to a new line */
    .fusion-header {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .fusion-header .fusion-row {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }
    
    /* Prevent menu wrapping and protect logo size on narrow desktops */
    @media (min-width: 1025px) {
        .fusion-header .fusion-middle-logo-ul {
            display: flex !important;
            flex-wrap: nowrap !important;
            align-items: center !important;
            justify-content: center !important;
        }
        .fusion-header .fusion-middle-logo-menu-logo {
            min-width: 150px !important;
            flex-shrink: 0 !important;
        }
        .fusion-header .fusion-middle-logo-ul > li {
            white-space: nowrap !important;
        }
    }
    
    /* Compress menu items right before the mobile breakpoint to ensure they fit on one line */
    @media (min-width: 1025px) and (max-width: 1250px) {
        .fusion-header .fusion-middle-logo-ul > li > a {
            padding-left: 10px !important;
            padding-right: 10px !important;
            font-size: 13px !important;
            letter-spacing: 0.5px !important;
        }
        .fusion-header .fusion-middle-logo-menu-logo {
            min-width: 120px !important;
        }
    }

    @media (max-width: 1024px) {
        .fusion-header .fusion-row {
            padding-left: 15px !important;
            padding-right: 15px !important;
        }
    }

    /* Force the Avada portfolio container to fill the full viewport width */
    #main,
    #main .fusion-row,
    .fusion-flex-container,
    .fusion-portfolio-content,
    .portfolio-wrapper,
    body.single-avada_portfolio #content,
    body.single-avada_portfolio .post-content {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Remove any sidebar space */
    body.single-avada_portfolio #main {
        float: none !important;
    }

    /* ===================== EMBEDS (Video & Spotify) ===================== */
    .esr-embeds-grid {
        display: grid;
        grid-template-columns: 100%;
        gap: 30px;
        margin-bottom: 40px;
    }

    @media (min-width: 900px) {
        .esr-embeds-grid {
            /* Video Left (larger), Spotify Right (smaller) */
            grid-template-columns: 1.5fr 1fr;
            align-items: start;
        }
    }

    :root {
        --esr-red: #da291c;
        --esr-red-dark: #b01f15;
    }

    .esr-template-wrapper {
        background: #fff;
        font-family: 'Outfit', 'Open Sans', sans-serif;
        color: #222;
        padding-bottom: 40px;
    }

    @media (max-width: 768px) {
        .esr-template-wrapper {
            padding-bottom: 20px;
            overflow-x: hidden;
        }
    }

    .esr-content-container {
        max-width: 1080px;
        margin: 0 auto;
        padding: 40px 20px;
    }

    @media (max-width: 900px) {
        .esr-content-container {
            padding: 30px 30px;
        }
    }

    @media (max-width: 768px) {
        .esr-content-container {
            padding: 20px 14px;
        }
    }

    /* ===================== HERO ===================== */
    .esr-hero {
        display: flex;
        flex-direction: row;
        /* IMAGE ON LEFT, TEXT ON RIGHT */
        gap: 50px;
        margin-bottom: 60px;
        align-items: flex-start;
    }

    @media (max-width: 820px) {
        .esr-hero {
            flex-direction: column;
        }
    }

    .esr-hero-art {
        width: 100%;
        border-radius: 8px;
        overflow: hidden;
        background: transparent;
        line-height: 0;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    }

    .esr-hero-art img {
        width: 100%;
        height: auto;
        display: block;
    }

    .esr-hero-info {
        flex: 1;
        display: flex;
        flex-direction: column;
    }

    /* Hidden on desktop — only shows on mobile via float */
    .esr-desc-art-mobile {
        display: none;
    }

    /* Artist + Title - stacked layout */
    .esr-header-title {
        font-family: 'Oswald', sans-serif;
        font-weight: 600;
        font-size: 48px;
        line-height: 1.1;
        color: #111;
        margin: 0 0 15px;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    /* Normalize parentheses to align with cap-height baseline */
    .esr-release-name {
        display: inline;
        color: #111;
    }

    /* Oswald parentheses descend below baseline — lift them up */
    .esr-header-title .esr-paren {
        display: inline-block;
        transform: translateY(-0.06em);
        line-height: 1;
    }

    .esr-artist-separator {
        color: #222;
        font-weight: 600;
        display: inline-block;
        margin: 0 4px;
        vertical-align: middle;
        line-height: 1;
        font-size: 0.55em;
        position: relative;
        top: -0.05em;
    }

    /* × must stay black inside gradient-filled containers */
    .esr-gradient-text .esr-artist-separator {
        -webkit-text-fill-color: #111;
        background: none;
        color: #111;
        font-size: 0.85em;
    }

    /* Better vertical centering in large section titles */
    .esr-related-title .esr-artist-separator {
        font-size: 0.75em;
        margin: 0 4px;
    }

    .esr-feat-separator {
        font-style: normal;
        font-family: 'Oswald', sans-serif;
        font-size: inherit;
        margin: 0 8px;
        font-weight: 400;
        color: #222;
        text-transform: lowercase;
        letter-spacing: 1px;
        position: relative;
        top: 0;
        -webkit-text-fill-color: #222;
        background: none;
        vertical-align: baseline;
    }

    .esr-feat-comma {
        color: #222;
        font-weight: 600;
        display: inline-block;
        transform: none;
        margin: 0 4px;
        vertical-align: middle;
        line-height: 1;
        position: relative;
        top: -0.12em;
        -webkit-text-fill-color: #222;
        background: none;
        font-size: 0.55em;
    }

    /* Gradient Animated Text */
    .esr-gradient-text {
        animation: redGlowCycle 3s linear infinite;
        text-decoration: none;
        display: inline;
        -webkit-box-decoration-break: clone;
        box-decoration-break: clone;
        position: relative;
    }

    /* Left-to-right underline sweep on hover for header artist names */
    .esr-header-title .esr-gradient-text,
    .esr-rc-artist .esr-gradient-text {
        text-decoration: none;
        position: relative;
    }

    .esr-header-title .esr-gradient-text::after,
    .esr-rc-artist .esr-gradient-text::after {
        content: '';
        position: absolute;
        left: 0;
        bottom: -3px;
        width: 0;
        height: 2px;
        background: var(--esr-red);
        transition: width 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .esr-header-title .esr-gradient-text:hover::after,
    .esr-rc-artist .esr-gradient-text:hover::after {
        width: 100%;
    }

    .esr-gradient-text:hover {
        display: inline-block;
        transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }


    /* Release Date - bigger */
    .esr-meta-date {
        font-family: 'Outfit', 'Oswald', sans-serif;
        font-size: 18px;
        color: #111;
        text-transform: uppercase;
        letter-spacing: 1px;
        margin-bottom: 20px;
        border-bottom: 2px solid #eee;
        padding-bottom: 15px;
        font-weight: 400;
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
    }

    .esr-meta-date strong {
        font-weight: 600;
    }

    /* Description - bigger readable text */
    .esr-description-text {
        font-size: 17px !important;
        line-height: 1.5 !important;
        color: #444;
        margin-bottom: 20px !important;
    }

    .esr-description-text p {
        margin-bottom: 24px !important;
        font-size: 17px !important;
        line-height: 1.5 !important;
        display: block !important;
    }

    /* Prevent italic clipping — keep inline flow, tiny padding only */
    .esr-description-text em,
    .esr-description-text strong em,
    .esr-release-link,
    .esr-artist-link,
    .esr-self-release,
    .esr-track-artist {
        padding-right: 0.08em;
    }

    .esr-description-text p:last-child {
        margin-bottom: 0 !important;
    }

    /* Artist links in description */
    .esr-artist-link {
        color: var(--esr-red);
        font-weight: 600;
        text-decoration: none;
        transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    .esr-artist-link:hover {
        text-decoration: underline;
    }

    /* Release title links: all-caps, bold, italic, animated red gradient */
    .esr-release-link {
        font-weight: 700 !important;
        font-style: italic !important;
        text-transform: uppercase;
        animation: redGlowCycle 3s linear infinite;
        text-decoration: none;
        display: inline;
        transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    .esr-release-link:hover {
        text-decoration: underline;
    }

    /* Self-release (current page): bold, italic, uppercase, black */
    .esr-self-release {
        font-weight: 700 !important;
        font-style: italic !important;
        text-transform: uppercase;
        color: #111;
    }

    /* ===================== DSP BUTTONS - CENTERED ===================== */
    .esr-buttons-row {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 25px;
        justify-content: center;
    }

    .esr-btn {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        flex: 1 1 0;
        min-width: 0;
        padding: 12px 18px;
        background: #f4f4f4;
        color: #333 !important;
        text-decoration: none;
        border-radius: 4px;
        font-family: 'Oswald', sans-serif;
        font-weight: 500;
        text-transform: uppercase;
        font-size: 13px;
        transition: all 0.2s;
        border: 1px solid #ddd;
    }

    @media (max-width: 600px) {
        .esr-btn {
            flex: 0 1 calc(50% - 5px);
            padding: 14px 10px;
            font-size: 13px;
        }
    }

    .esr-btn:hover {
        background: var(--esr-red);
        color: #fff;
        border-color: var(--esr-red);
        box-shadow: 0 5px 15px rgba(218, 41, 28, 0.2);
    }

    .esr-btn i {
        margin-right: 8px;
    }

    /* ===================== SECTION TITLES ===================== */
    .esr-section-title {
        font-family: 'Oswald', sans-serif;
        font-size: 32px;
        text-transform: uppercase;
        margin: 60px 0 30px;
        position: relative;
        padding-left: 18px;
        border-left: 5px solid var(--esr-red);
        line-height: 1.25;
        letter-spacing: 0.05em;
        color: #111111;
    }

    /* Related Header Row (More From) */
    .esr-related-header-row {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        margin: 60px 0 30px;
        flex-wrap: nowrap;
        gap: 15px;
    }

    .esr-related-title {
        font-family: 'Oswald', sans-serif;
        font-size: 32px;
        text-transform: uppercase;
        line-height: 1.15;
        color: #000;
        margin: 0;
        border-left: 5px solid var(--esr-red);
        padding-left: 18px;
        flex: 1 1 0;
        min-width: 0;
    }

    .esr-filter-controls {
        display: flex;
        gap: 10px;
        flex-shrink: 0;
        margin-left: auto;
    }

    .esr-select {
        padding: 6px 10px;
        border: 1px solid #ddd;
        border-radius: 4px;
        font-family: 'Oswald', sans-serif;
        font-size: 12px;
        text-transform: uppercase;
        color: #555;
        background: #fff;
        cursor: pointer;
    }

    /* ===================== RACK SCREWS & TEXTURE ===================== */
    .esr-noise-layer {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: 0.15;
        pointer-events: none;
        z-index: 0;
    }

    .esr-screw {
        position: absolute;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background:
            radial-gradient(circle at 40% 35%, rgba(255, 255, 255, 0.12) 0%, rgba(0, 0, 0, 0) 50%),
            radial-gradient(circle, #3a3a3a 0%, #222222 60%, #1a1a1a 100%);
        box-shadow:
            inset 0 2px 4px rgba(0, 0, 0, 0.8),
            inset 0 -1px 2px rgba(255, 255, 255, 0.06),
            0 1px 3px rgba(0, 0, 0, 0.6),
            0 0 0 1px rgba(0, 0, 0, 0.4);
        z-index: 3;
        pointer-events: none;
    }

    .esr-screw::before,
    .esr-screw::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 10px;
        height: 1.5px;
        background: rgba(0, 0, 0, 0.7);
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .esr-screw::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    .esr-screw.tl {
        top: 4px;
        left: 4px;
    }

    .esr-screw.tr {
        top: 4px;
        right: 4px;
    }

    .esr-screw.bl {
        bottom: 4px;
        left: 4px;
    }

    .esr-screw.br {
        bottom: 4px;
        right: 4px;
    }

    /* ===================== TV-STYLE YOUTUBE FRAME ===================== */
    .esr-youtube-frame {
        border-radius: 20px;
        overflow: visible;
        background: #222;
        padding: 15px 15px 40px 15px;
        height: 352px;
        box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
        position: relative;
        border: 4px solid #444;
        display: flex;
        flex-direction: column;
        margin-bottom: 20px;
    }

    .esr-frame-inner {
        overflow: hidden;
        border-radius: 8px;
        flex: 1;
        position: relative;
    }

    /* Glowing LED Star Centered at bottom */
    .esr-led-container {
        position: absolute;
        bottom: 12px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        align-items: center;
        gap: 12px;
        z-index: 10;
    }

    .esr-brand-text {
        font-family: 'Oswald', sans-serif;
        font-size: 11px;
        letter-spacing: 2px;
        color: #666;
    }

    .esr-frame-led {
        font-size: 12px;
        line-height: 1;
        color: var(--esr-red);
        filter: drop-shadow(0 0 4px var(--esr-red));
        text-shadow: inset 0 -1px 2px rgba(0, 0, 0, 0.8);
        animation: esrLedBlink 2s ease-in-out infinite;
    }

    @keyframes esrLedBlink {

        0%,
        100% {
            opacity: 1;
            filter: drop-shadow(0 0 6px var(--esr-red));
            color: #ff4444;
        }

        50% {
            opacity: 0.4;
            filter: drop-shadow(0 0 2px var(--esr-red));
            color: #cc0000;
        }
    }

    .esr-youtube-frame.playing .esr-frame-led {
        color: #22c55e;
        filter: drop-shadow(0 0 6px #22c55e);
        animation: esrLedBlinkGreen 1.5s ease-in-out infinite;
    }

    @keyframes esrLedBlinkGreen {

        0%,
        100% {
            opacity: 1;
            filter: drop-shadow(0 0 8px #22c55e);
            color: #4ade80;
        }

        50% {
            opacity: 0.7;
            filter: drop-shadow(0 0 3px #22c55e);
            color: #16a34a;
        }
    }

    /* Removed old ::before text block, now handled by .esr-led-container */

    .esr-frame-inner {
        width: 100%;
        height: 100%;
        border-radius: 4px;
        overflow: hidden;
        background: #000;
        position: relative;
    }

    /* Screen Bezel — inset shadow overlay for recessed/depth effect */
    .esr-screen-bezel {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        pointer-events: none;
        z-index: 5;
        border-radius: 4px;
        box-shadow:
            inset 0 4px 12px rgba(0, 0, 0, 0.7),
            inset 0 -2px 8px rgba(0, 0, 0, 0.4),
            inset 4px 0 8px rgba(0, 0, 0, 0.3),
            inset -4px 0 8px rgba(0, 0, 0, 0.3);
    }

    /* Facade hiding — when video is playing */
    .esr-yt-facade.is-hidden {
        display: none !important;
    }

    /* Custom YouTube Facade — hides native controls until click */
    .esr-yt-facade {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-position: center;
        cursor: pointer;
        z-index: 4;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 4px;
    }

    .esr-yt-play-btn {
        width: 68px;
        height: 48px;
        background: var(--esr-red, #da291c);
        border-radius: 14px;
        position: relative;
        opacity: 0.9;
        transition: opacity 0.2s, transform 0.2s;
    }

    .esr-yt-play-btn::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 54%;
        transform: translate(-50%, -50%);
        border-style: solid;
        border-width: 10px 0 10px 18px;
        border-color: transparent transparent transparent #fff;
    }

    .esr-yt-facade:hover .esr-yt-play-btn {
        opacity: 1;
        transform: scale(1.1);
    }

    .esr-embeds-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
        margin-bottom: 50px;
        align-items: start;
    }

    @media (max-width: 768px) {
        .esr-embeds-grid {
            grid-template-columns: 1fr;
        }
    }

    .iframe-container {
        position: relative;
        width: 100%;
        background: transparent;
        border-radius: 8px;
        overflow: hidden;
    }

    /* Override Avada's forced aspect-ratio on Spotify embeds so native widget renders unchanged */
    .iframe-container iframe[src*="spotify"] {
        aspect-ratio: unset !important;
        height: 100% !important;
        width: 100% !important;
    }

    /* ===================== COLLECTION GRID (From the Album) ===================== */
    .esr-collection-grid {
        display: grid !important;
        grid-template-columns: 3.2fr 1fr !important;
        gap: 15px !important;
        align-items: stretch !important;
    }

    .esr-collection-parent {
        display: block;
        transition: transform 0.2s;
    }

    .esr-collection-parent:hover {
        transform: scale(1.02);
    }

    .esr-collection-parent img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* Filmstrip wrapper for singles column - height synced via JS */
    .esr-collection-filmstrip {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: space-between !important;
        gap: 0 !important;
        position: relative !important;
        overflow: visible !important;
    }

    .esr-filmstrip-chevron {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 24px !important;
        font-size: 18px;
        color: #888;
        line-height: 1;
        padding: 0;
        margin: 12px 0;
        position: relative;
        right: 14px; /* Nudge left to center perfectly on the art */
        user-select: none;
        cursor: pointer;
        transition: transform 0.2s, color 0.2s;
        z-index: 15;
        background: none !important;
        flex-shrink: 0;
    }

    .esr-filmstrip-chevron:hover {
        color: #444;
        animation: esr-chevron-bounce 0.4s ease;
    }

    @keyframes esr-chevron-bounce {

        0%,
        100% {
            transform: scale(1);
        }

        50% {
            transform: scale(1.4);
        }
    }

    /* Subtle idle bounce hint every 2s */
    @keyframes esr-chev-hint-up {

        0%,
        80%,
        100% {
            transform: translateY(0);
        }

        88% {
            transform: translateY(-4px);
        }

        94% {
            transform: translateY(0);
        }
    }

    @keyframes esr-chev-hint-down {

        0%,
        80%,
        100% {
            transform: translateY(0);
        }

        88% {
            transform: translateY(4px);
        }

        94% {
            transform: translateY(0);
        }
    }

    @keyframes esr-chev-hint-left {

        0%,
        80%,
        100% {
            transform: translateX(0);
        }

        88% {
            transform: translateX(-4px);
        }

        94% {
            transform: translateX(0);
        }
    }

    @keyframes esr-chev-hint-right {

        0%,
        80%,
        100% {
            transform: translateX(0);
        }

        88% {
            transform: translateX(4px);
        }

        94% {
            transform: translateX(0);
        }
    }

    .esr-chev-up.esr-chev-hinting {
        animation: esr-chev-hint-up 2s ease-in-out infinite !important;
    }

    .esr-chev-down.esr-chev-hinting {
        animation: esr-chev-hint-down 2s ease-in-out infinite !important;
    }

    .esr-mob-chev-left.esr-chev-hinting {
        animation: esr-chev-hint-left 2s ease-in-out infinite !important;
    }

    .esr-mob-chev-right.esr-chev-hinting {
        animation: esr-chev-hint-right 2s ease-in-out infinite !important;
    }

    .esr-collection-singles {
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
    }

    .esr-collection-singles.esr-scrollable {
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        cursor: grab;
        padding: 5px 15px;
        margin: -5px -15px;
        flex: 1 !important;
        min-height: 0 !important;
        position: relative;
    }

    .esr-collection-singles.esr-scrollable::-webkit-scrollbar {
        display: none;
    }

    .esr-collection-single-thumb {
        display: block;
        transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.2, 1, 0.3, 1);
        border-radius: 4px;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    }

    .esr-collection-single-thumb img {
        transition: transform 0.3s ease !important;
    }

    .esr-collection-single-thumb:hover {
        transform: translateY(-6px);
        z-index: 10;
        position: relative;
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
    }

    .esr-collection-single-thumb:hover img {
        transform: none !important;
        /* Disable Avada generic internal zoom */
    }

    .esr-collection-single-thumb.esr-thumb-pop {
        transform: scale(1.15);
        z-index: 20;
        position: relative;
    }



    /* ===================== RELATED RELEASES CAROUSEL ===================== */
    .esr-carousel-container {
        position: relative;
    }

    .esr-related-items {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 25px;
        align-items: start;
        overflow: visible;
        /* Allow shadows to print outside containers */
        padding: 10px 15px;
        /* Extra room for vertical shadow/transform */
    }

    @media (max-width: 900px) {
        .esr-related-items {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    @media (max-width: 500px) {
        .esr-related-items {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 15px;
        }
    }

    /* ── Release Cards (matched to release index .esr-card pattern) ── */
    .esr-card {
        text-decoration: none !important;
        display: flex;
        flex-direction: column;
        position: relative;
        transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1);
        will-change: transform;
    }

    .esr-card:hover {
        transform: translateY(-8px);
        z-index: 10;
    }

    .esr-thumb {
        position: relative;
        aspect-ratio: 1/1;
        border-radius: 6px;
        margin-bottom: 15px;
        background: #f0f0f0;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
        transform: translateZ(0);
    }

    .esr-thumb::after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: 6px;
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
        opacity: 0;
        transition: opacity 0.4s ease-out;
        pointer-events: none;
        z-index: -1;
    }

    .esr-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 6px;
        transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .esr-card:hover .esr-thumb::after {
        opacity: 1;
    }

    .esr-card>img {
        width: 100%;
        aspect-ratio: 1;
        object-fit: cover;
        border-radius: 6px;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
        transition: box-shadow 0.4s ease-out;
    }

    .esr-card:hover>img {
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
    }

    .esr-title {
        font-family: 'Oswald', sans-serif !important;
        font-size: 20px;
        line-height: 1.2;
        color: #111;
        margin: 0 0 4px 0;
        text-transform: uppercase;
        font-weight: 600;
        white-space: normal !important;
        text-wrap: pretty !important;
    }

    .esr-artist {
        margin-bottom: 8px;
        line-height: 1;
    }

    .esr-gradient-text {
        background: linear-gradient(135deg, #da291c, #b01f15, #da291c);
        background-size: 200% auto;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: gradientText 3s linear infinite;
        text-decoration: none;
        display: inline-block;
        font-family: 'Oswald', sans-serif !important;
        text-transform: uppercase;
        font-weight: 700;
        letter-spacing: 0.5px;
        white-space: normal;
        text-wrap: pretty;
    }

    .esr-card .esr-gradient-text {
        font-size: 14px;
    }

    .esr-date {
        margin-top: -2px;
        padding-top: 0;
        font-family: 'Ubuntu Mono', monospace !important;
        color: #444;
        font-size: 13px;
        line-height: 1.3;
        font-weight: 400;
        text-transform: uppercase;
        letter-spacing: 0;
    }

    @keyframes gradientText {
        to {
            background-position: 200% center;
        }
    }

    .release-title {
        margin-top: 12px;
        font-family: 'Oswald', sans-serif;
        color: #333;
        font-size: 15px;
        line-height: 1.3;
        font-weight: 400;
    }


    /* Carousel Pagination Buttons */
    .esr-carousel-nav {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 15px;
        margin-top: -10px;
        /* Move closer to art/date lines */
        margin-bottom: 30px;
    }

    .esr-nav-btn {
        width: 32px;
        /* Smaller */
        height: 32px;
        border-radius: 50%;
        border: 1px solid #eee;
        background: #fff;
        color: #999;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.2s;
        font-size: 12px;
    }

    .esr-pagination-count {
        font-family: 'Oswald', sans-serif;
        font-size: 14px;
        color: #999;
        letter-spacing: 1px;
    }

    .esr-nav-btn:hover:not(:disabled) {
        background: var(--esr-red);
        color: #fff;
        border-color: var(--esr-red);
    }

    .esr-nav-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    /* ===================== SHARE BUTTONS - CENTERED ===================== */
    .esr-footer-share {
        margin-top: 40px;
        padding-top: 30px;
        border-top: 1px solid #eee;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 15px;
        clear: both;
    }

    .esr-share-icons-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 18px;
    }

    .esr-share-label-footer {
        font-family: 'Oswald', sans-serif;
        text-transform: uppercase;
        font-size: 18px;
        color: #555;
        letter-spacing: 2px;
        font-weight: 400;
    }

    .share-icon-btn {
        width: 50px;
        height: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--esr-red);
        color: #fff !important;
        transition: all 0.2s;
        text-decoration: none;
        border: none;
        cursor: pointer;
        font-size: 18px;
    }

    .share-icon-btn:hover {
        background: var(--esr-red-dark);
        transform: translateY(-3px) scale(1.1);
    }

    .esr-hero-left {
        flex: 0 0 420px;
        max-width: 100%;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .esr-collection-singles-inner {
        padding: 4px 0;
        display: flex;
        flex-direction: column;
        gap: 8px;
        /* Reduced gap from 12px */
    }

    .esr-collection-singles-inner img.esr-collection-single-thumb {
        display: block !important;
        width: 75% !important;
        /* Force smaller size to fit 2.5+ items */
        margin: 0 auto !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        border-radius: 6px !important;
        transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.2, 1, 0.3, 1) !important;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
        cursor: pointer;
        flex-shrink: 0 !important;
    }

    .esr-collection-singles-inner img.esr-collection-single-thumb:hover {
        transform: translateY(-6px) !important;
        z-index: 10 !important;
        box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25) !important;
    }

    /* ─── Tracklist Card ─── */
    .esr-tracklist {
        background: #fff !important;
        border: 1px solid #e8e8e8 !important;
        border-radius: 12px !important;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
        padding: 0 !important;
        font-family: 'Outfit', 'Inter', sans-serif;
        font-size: 13px;
        color: #444;
        line-height: 1.5;
        text-align: left;
        margin: 20px 0 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden;
    }

    .esr-tracklist-header {
        font-family: 'Oswald', sans-serif;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 3px;
        text-transform: uppercase;
        color: #bbb;
        padding: 12px 20px 10px !important;
        border-bottom: 1px solid #f0f0f0;
        margin-bottom: 0 !important;
        display: block !important;
        background: #fafafa;
        width: 100%;
        box-sizing: border-box;
    }

    .esr-track-artist {
        padding-right: 0.15em !important;
        display: inline !important;
    }

    .esr-track-artist-name {
        font-weight: 600;
        color: #222;
        display: inline !important;
    }

    .esr-track-artist-sep {
        color: #999;
        margin: 0 0.3em;
        font-weight: 400;
    }

    .esr-track-row {
        position: relative;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    /* Scoped flex layout for the standard fallback only, to avoid breaking Deep Dive JS layout */
    .esr-tracklist-fallback .esr-track-row {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        padding: 10px 20px !important;
        border-bottom: 1px solid #f2f2f2;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .esr-track-row:last-child {
        border-bottom: none;
    }

    .esr-track-row:hover {
        background: #fafafa;
    }

    /* Drawer expansion when row is toggled */
    .esr-track-row.esr-row-expanded .esr-track-drawer {
        max-height: 500px !important;
        opacity: 1 !important;
    }

    .esr-track-row.esr-row-expanded .esr-row-icon {
        transform: rotate(45deg);
        color: #bbb !important;
    }

    .esr-track-row.esr-row-expanded {
        background: #fcfcfc !important;
    }

    /* Override inline-block on auto-linked artist names within tracklist
       to prevent entire names from jumping to a new line in narrow columns */
    .esr-tracklist .esr-artist-link,
    .esr-tracklist .esr-track-artist,
    .esr-tracklist .esr-track-feat a {
        display: inline !important;
        padding-right: 0 !important;
        text-transform: none !important;
    }

    .esr-track-num {
        font-family: 'Oswald', sans-serif;
        font-size: 14px;
        font-weight: 500;
        color: #999;
        min-width: 28px;
        flex-shrink: 0;
        display: flex;
        align-items: center;
    }

    .esr-tracklist-fallback .esr-track-num {
        min-width: 35px;
        gap: 8px;
    }

    .num-text {
        min-width: 22px;
        display: inline-block;
    }

    .esr-row-icon {
        font-size: 12px;
        color: #ddd;
        transition: all 0.3s ease;
    }

    .esr-track-title {
        font-weight: 500;
        color: #222;
        font-size: 14px;
    }

    .esr-track-info {
        flex: 1;
        min-width: 0;
        padding-right: 15px;
    }

    .esr-track-feat {
        font-style: normal;
        text-transform: none;
        color: #888;
        font-size: 13px;
        margin-left: 5px;
    }

    /* Featured artist links in tracklist — Google Sans, bold, red gradient, NOT italic/caps */
    .esr-track-feat a,
    .esr-track-artist-name a,
    .esr-track-feat .esr-artist-link,
    .esr-track-feat .esr-gradient-text {
        font-family: 'Google Sans', 'Product Sans', sans-serif !important;
        font-style: normal !important;
        text-transform: none !important;
        font-weight: 700 !important;
        font-size: 13px !important;
        letter-spacing: -0.2px !important;
        background: linear-gradient(135deg, #da291c, #b01f15, #da291c) !important;
        background-size: 200% auto !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: transparent !important;
        animation: gradientText 3s linear infinite !important;
        text-decoration: none !important;
        display: inline-block !important;
        /* for transform/after pseudo */
        padding-right: 0.12em !important;
        position: relative;
        transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    .esr-track-feat a::after,
    .esr-track-artist-name a::after,
    .esr-track-feat .esr-artist-link::after,
    .esr-track-feat .esr-gradient-text::after {
        content: '';
        position: absolute;
        left: 0;
        bottom: 0px;
        width: 0;
        height: 1.5px;
        background: linear-gradient(135deg, #da291c, #b01f15, #da291c);
        transition: width 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .esr-track-feat a:hover::after,
    .esr-track-artist-name a:hover::after,
    .esr-track-feat .esr-artist-link:hover::after,
    .esr-track-feat .esr-gradient-text:hover::after {
        width: 100%;
    }

    .esr-track-feat a:hover,
    .esr-track-artist-name a:hover,
    .esr-track-feat .esr-artist-link:hover,
    .esr-track-feat .esr-gradient-text:hover {
        transform: translateY(-2px);
    }

    .esr-track-dur {
        color: #aaa;
        margin-left: auto;
        padding-left: 12px;
        font-size: 13px;
        font-variant-numeric: tabular-nums;
        flex-shrink: 0;
        white-space: nowrap;
    }

    /* Track Modal */
    .esr-track-modal {
        display: none;
        position: fixed;
        z-index: 9999;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgba(0, 0, 0, 0.8);
        backdrop-filter: blur(5px);
    }

    .esr-track-modal-content {
        background-color: #fff;
        margin: 15% auto;
        padding: 30px;
        border-radius: 12px;
        width: 90%;
        max-width: 500px;
        position: relative;
        text-align: center;
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
    }

    .esr-track-modal-close {
        position: absolute;
        top: 15px;
        right: 20px;
        color: #aaa;
        font-size: 28px;
        font-weight: bold;
        cursor: pointer;
        line-height: 1;
    }

    .esr-track-modal-close:hover {
        color: #000;
    }

    .esr-track-modal-header h3 {
        font-family: 'Oswald', sans-serif;
        text-transform: uppercase;
        margin: 0 0 5px;
        font-size: 24px;
        color: #111;
    }

    .esr-track-modal-header p {
        font-family: 'Outfit', sans-serif;
        color: #666;
        margin: 0 0 25px;
        font-size: 16px;
    }

    .esr-track-modal-links {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .esr-track-link-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 20px;
        background: #f4f4f4;
        border-radius: 8px;
        text-decoration: none;
        color: #333;
        font-family: 'Oswald', sans-serif;
        text-transform: uppercase;
        font-weight: 500;
        transition: all 0.2s;
        border: 1px solid #eee;
    }

    .esr-track-link-btn:hover {
        background: var(--esr-red);
        color: #fff;
        border-color: var(--esr-red);
        transform: translateY(-2px);
    }

    .esr-track-link-btn i {
        margin-right: 10px;
        font-size: 18px;
    }

    /* Icon-only small track DSP buttons (28px squares) — no margin on icon */
    .esr-track-link-btn.esr-icon-only i {
        margin: 0 !important;
        font-size: 14px !important;
        line-height: 1 !important;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Clickable Rows */
    .esr-track-clickable {
        cursor: pointer;
    }

    .esr-play-icon {
        display: none;
        font-size: 14px;
    }

    .esr-track-row:hover .esr-track-num.has-play .esr-play-icon {
        display: inline-block;
    }

    /* ===================== MOBILE LAYOUT ===================== */
    @media (max-width: 768px) {

        /* Stacked hero: art on top (large, centered), then title/artist/date below */
        .esr-hero {
            display: flex !important;
            flex-direction: column !important;
            gap: 0 !important;
            margin-bottom: 30px !important;
            align-items: center !important;
        }

        /* Art container — full width, centered, auto height */
        .esr-hero-left {
            width: 100% !important;
            max-width: none !important;
            margin: 0 !important;
            flex: none !important;
            min-width: 0 !important;
        }

        .esr-hero-art {
            display: block !important;
            border-radius: 6px !important;
            width: 100% !important;
            max-width: 400px !important;
            margin: 0 auto !important;
        }

        /* Info section — flex column, left-aligned, full width */
        .esr-hero-info {
            display: flex !important;
            flex-direction: column !important;
            width: 100% !important;
            max-width: 400px !important;
            margin: 10px auto 0 auto !important;
            align-items: flex-start !important;
            align-self: center !important;
        }

        /* Hero title block elements — constrained to art width, left-aligned */
        .esr-hero-info > .esr-title-line,
        .esr-hero-info > .esr-meta-date {
            width: 100% !important;
            max-width: 400px !important;
        }

        /* Description after meta-date — full width with extra padding */
        .esr-hero-info > .esr-description-text {
            width: 100% !important;
            max-width: 100% !important;
            padding: 0 5px !important;
            box-sizing: border-box !important;
        }

        /* Pre-save badge — superscript exponent position (mobile) */
        .esr-presave-badge {
            display: inline-block !important;
            font-size: 9px !important;
            padding: 3px 8px !important;
            letter-spacing: 1px !important;
            margin-bottom: 0 !important;
            margin-left: 0 !important;
            position: static !important;
            top: auto !important;
            vertical-align: baseline !important;
        }

        /* Title block */
        .esr-title-line {
            display: block !important;
        }

        .esr-header-title {
            font-size: 32px !important;
            text-align: left !important;
            margin: 0 !important;
            display: block !important;
        }

        .esr-release-name {
            display: inline !important;
            font-size: 32px !important;
        }

        .esr-rc-artist {
            font-size: 0.85em !important;
        }

        /* Meta date — same line: date + kicker, like desktop */
        .esr-meta-date {
            display: inline-flex !important;
            flex-direction: row !important;
            align-items: center !important;
            justify-content: flex-start !important;
            font-size: 13px !important;
            gap: 6px !important;
            margin-bottom: 0 !important;
            margin-top: 6px !important;
            flex-wrap: nowrap !important;
        }

        /* Keep date on one line, no wrap */
        .esr-meta-date>span:first-child {
            white-space: nowrap !important;
        }

        /* Description — full width */
        .esr-description-text {
            width: 100% !important;
            max-width: 100% !important;
            font-size: 14px !important;
            line-height: 1.6 !important;
            margin-top: 8px !important;
        }

        .esr-header-title h1,
        .esr-header-title .esr-release-name {
            margin-bottom: 0 !important;
        }

        /* Hide the mobile float art — we're showing the real art now */
        .esr-desc-art-mobile {
            display: none !important;
        }

        .esr-buttons-row {
            justify-content: center !important;
            flex-wrap: wrap !important;
        }

        .esr-btn {
            font-size: 12px !important;
            padding: 8px 14px !important;
        }

        /* Mobile: show Spotify/audio embed before YouTube */
        .esr-embeds-grid {
            display: flex !important;
            flex-direction: column !important;
            gap: 20px !important;
        }
        .esr-embeds-grid > .iframe-container {
            order: -1 !important;
            width: 100% !important;
        }

        /* YouTube CRT frame — full width on mobile, match Spotify height */
        .esr-youtube-frame {
            width: 100% !important;
            max-width: 100% !important;
            box-sizing: border-box !important;
            padding: 10px 10px 35px 10px !important;
            height: 352px !important;
        }

        .esr-embeds-grid > div {
            width: 100% !important;
            max-width: 100% !important;
            box-sizing: border-box !important;
        }

        /* Tracklist card — full width, smaller on mobile */
        .esr-tracklist {
            margin-top: 20px !important;
            border-radius: 10px !important;
            width: 100% !important;
            max-width: 100% !important;
            box-sizing: border-box !important;
        }

        .esr-deep-dive-active .esr-tracklist {
            width: 100% !important;
            max-width: 100% !important;
            margin-top: 20px !important;
            border-radius: 10px !important;
            border: 1px solid #e8e8e8 !important;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06) !important;
        }

        /* Override deep-dive desktop hero sizing on mobile — use same stacked layout */
        .esr-hero.esr-deep-dive-active {
            display: flex !important;
            flex-direction: column !important;
            gap: 8px !important;
            align-items: center !important;
        }

        .esr-hero.esr-deep-dive-active .esr-hero-left {
            width: 100% !important;
            max-width: none !important;
            margin: 0 !important;
            flex: none !important;
        }

        .esr-hero.esr-deep-dive-active .esr-hero-info {
            display: flex !important;
            flex-direction: column !important;
            width: 100% !important;
            max-width: 100% !important;
            margin: 10px 0 0 0 !important;
            align-items: center !important;
            align-self: stretch !important;
        }

        /* Deep-dive hero title block — same constraints (badge is inline superscript) */
        .esr-hero.esr-deep-dive-active .esr-hero-info > .esr-title-line,
        .esr-hero.esr-deep-dive-active .esr-hero-info > .esr-meta-date {
            width: 100% !important;
            max-width: 400px !important;
        }

        .esr-hero.esr-deep-dive-active .esr-hero-info > .esr-description-text {
            width: 100% !important;
            max-width: 100% !important;
            padding: 0 5px !important;
            box-sizing: border-box !important;
        }

        /* Tracklist when moved into description text by JS */
        .esr-description-text .esr-tracklist {
            display: block !important;
            width: 100% !important;
            max-width: 100% !important;
            box-sizing: border-box !important;
            margin: 24px 0 !important;
            float: none !important;
            clear: both !important;
        }

        /* Collection sidebar — hide the one inside hero-left on mobile */
        .esr-hero-left>.esr-collection-sidebar {
            display: none !important;
        }

        /* Tracklist inside hero-left — hide on mobile (JS moves it to description text) */
        .esr-hero-left>.esr-tracklist,
        .esr-hero-left>.esr-tracklist-fallback-wrap {
            display: none !important;
        }

        /* Mobile-only riddim/collection inserted in hero-info — full width */
        .esr-riddim-mobile {
            display: block !important;
            grid-column: 1 / -1 !important;
            width: 100% !important;
            margin-top: 10px !important;
        }

        /* Mobile collection: large parent art + horizontal filmstrip */
        .esr-collection-mobile-wrap {
            text-align: center;
            max-width: 80%;
            margin: 20px auto !important;
        }

        .esr-collection-mobile-wrap>h4 {
            text-align: left !important;
            font-size: 18px !important;
            white-space: nowrap !important;
            overflow: hidden !important;
        }

        .esr-collection-mobile-wrap>h4 a {
            font-size: inherit !important;
        }

        .esr-mob-collection-parent {
            display: block;
            margin-bottom: 12px;
        }

        .esr-mob-collection-parent img {
            width: 100%;
            height: auto;
            display: block;
        }

        .esr-mob-filmstrip-wrap {
            position: relative;
            display: flex;
            align-items: center;
            gap: 6px;
            margin: 0 auto;
        }

        .esr-mob-filmstrip {
            display: flex;
            gap: 8px;
            overflow-x: auto;
            overflow-y: hidden;
            scrollbar-width: none;
            -webkit-overflow-scrolling: touch;
            cursor: grab;
            padding: 2px 0;
            flex: 1;
            min-width: 0;
        }

        .esr-mob-filmstrip::-webkit-scrollbar {
            display: none;
        }

        .esr-mob-single-thumb {
            flex: 0 0 calc((100% - 24px) / 4);
            /* Show 4 at a time, smaller */
            display: block;
            transition: transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);
        }

        .esr-mob-single-thumb:hover {
            transform: scale(1.05);
        }

        .esr-mob-single-thumb.esr-thumb-pop {
            transform: scale(1.15);
            z-index: 20;
            position: relative;
        }

        .esr-mob-single-thumb img {
            width: 100%;
            height: auto;
            display: block;
        }

        .esr-mob-chev {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            color: #888;
            cursor: pointer;
            flex-shrink: 0;
            transition: color 0.2s;
            z-index: 5;
        }

        .esr-mob-chev:hover {
            color: #333;
        }

        /* Related section spacing */
        .esr-section-title {
            font-size: 20px !important;
        }

        .esr-related-title {
            font-size: 18px !important;
        }

        .esr-carousel-container {
            margin-bottom: 20px !important;
        }
    }

    /* close @media 768px */

    /* Desktop: hide mobile-only riddim section */
    @media (min-width: 769px) {
        .esr-riddim-mobile {
            display: none !important;
        }
    }

    /* Deep Dive Desktop Layout: Ensure side-by-side persists — DESKTOP ONLY */
    @media (min-width: 769px) {
        .esr-hero.esr-deep-dive-active {
            flex-direction: row !important;
            display: flex !important;
        }

        .esr-hero.esr-deep-dive-active .esr-hero-left {
            flex: 0 0 420px !important;
            width: 420px !important;
        }

        .esr-hero.esr-deep-dive-active .esr-hero-info {
            flex: 1 !important;
            padding-left: 0 !important;
        }
    }

/* Block 2 */
        .esr-blank-canvas-banner {
            background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
            color: #78350f;
            padding: 18px 24px;
            display: flex;
            align-items: center;
            gap: 16px;
            font-family: 'Outfit', sans-serif;
            font-size: 15px;
            line-height: 1.5;
            position: sticky;
            top: 32px; /* below WP admin bar */
            z-index: 99999;
            box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
        }
        body:not(.admin-bar) .esr-blank-canvas-banner { top: 0; }
        .esr-blank-canvas-banner .esr-bc-icon {
            font-size: 28px;
            flex-shrink: 0;
        }
        .esr-blank-canvas-banner .esr-bc-text {
            flex: 1;
        }
        .esr-blank-canvas-banner .esr-bc-text strong {
            color: #451a03;
        }
        .esr-blank-canvas-banner .esr-bc-actions {
            display: flex;
            gap: 10px;
            flex-shrink: 0;
        }
        .esr-blank-canvas-banner .esr-bc-btn {
            padding: 8px 16px;
            border-radius: 6px;
            font-size: 13px;
            font-weight: 600;
            text-decoration: none;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            cursor: pointer;
            transition: all 0.2s;
            border: none;
            font-family: 'Oswald', sans-serif;
        }
        .esr-blank-canvas-banner .esr-bc-btn-primary {
            background: #451a03;
            color: #fef3c7;
        }
        .esr-blank-canvas-banner .esr-bc-btn-primary:hover {
            background: #78350f;
            transform: translateY(-1px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
        }
        .esr-blank-canvas-banner .esr-bc-btn-secondary {
            background: rgba(255,255,255,0.3);
            color: #78350f;
            border: 1px solid rgba(120,53,15,0.3);
        }
        .esr-blank-canvas-banner .esr-bc-btn-secondary:hover {
            background: rgba(255,255,255,0.5);
            transform: translateY(-1px);
        }
        @media (max-width: 768px) {
            .esr-blank-canvas-banner {
                flex-direction: column;
                text-align: center;
                padding: 16px;
            }
            .esr-blank-canvas-banner .esr-bc-actions {
                width: 100%;
                justify-content: center;
            }
        }

/* Block 3 */

                        @keyframes esrBlink1 {

                            0%,
                            90% {
                                opacity: 1
                            }

                            92%,
                            100% {
                                opacity: .3
                            }
                        }

                        @keyframes esrBlink2 {

                            0%,
                            80% {
                                opacity: .3
                            }

                            82%,
                            95% {
                                opacity: 1
                            }

                            97%,
                            100% {
                                opacity: .3
                            }
                        }

                        @keyframes esrBlink3 {

                            0%,
                            70% {
                                opacity: 1
                            }

                            72%,
                            85% {
                                opacity: .4
                            }

                            87%,
                            100% {
                                opacity: 1
                            }
                        }

                        @keyframes esrBlink4 {

                            0%,
                            60% {
                                opacity: .5
                            }

                            62%,
                            78% {
                                opacity: 1
                            }

                            80%,
                            100% {
                                opacity: .5
                            }
                        }

                        @keyframes esrBlink5 {

                            0%,
                            50% {
                                opacity: 1
                            }

                            52%,
                            65% {
                                opacity: .2
                            }

                            67%,
                            100% {
                                opacity: 1
                            }
                        }

                        .esr-rack-light {
                            width: 8px;
                            height: 8px;
                            border-radius: 50%;
                            display: inline-block;
                        }

                        <style>@import url('https://fonts.googleapis.com/css2?family=Rationale&display=swap');

                        .esr-rack-bar {
                            width: 20px;
                            height: 4px;
                            border-radius: 1px;
                            display: inline-block;
                        }

                        /* LED Text Logic */
                        /* Character Flicker - Punchy but not blinding */
                        @keyframes esrCharFlicker {

                            0%,
                            100% {
                                opacity: 0.7;
                                text-shadow: 0 0 2px #440000;
                                color: #992222;
                            }

                            20% {
                                opacity: 0.9;
                                text-shadow: 0 0 5px #aa0000;
                                color: #cc4444;
                            }

                            50% {
                                opacity: 0.5;
                                text-shadow: 0 0 1px #220000;
                                color: #661111;
                            }

                            80% {
                                opacity: 0.8;
                            }
                        }

                        /* Star Blink - Driven by JS for randomness */
                        @keyframes esrStarBlink {

                            0%,
                            100% {
                                opacity: 0.9;
                                text-shadow: 0 0 6px #00aa00, 0 0 10px #00aa00;
                                color: #00cc00;
                            }

                            50% {
                                opacity: 0.15;
                                text-shadow: 0 0 2px #004400;
                                color: #003300;
                            }
                        }

                        /* Scanner Bar Logic - Mirrored Inward Sweep */
                        @keyframes esrKittScanLeft {
                            0% {
                                left: -40%;
                            }

                            100% {
                                left: 100%;
                            }
                        }

                        @keyframes esrKittScanRight {
                            0% {
                                right: -40%;
                            }

                            100% {
                                right: 100%;
                            }
                        }

                        /* Mixer Bar Style Overrides */
                        .esr-mixer-bar {
                            background: #0a0a0a;
                            position: relative;
                            overflow: hidden;
                            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.03);
                            border: 1px solid #1a1a1a;
                        }

                        .esr-noise-layer {
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            opacity: 0.15;
                            pointer-events: none;
                            z-index: 0;
                        }

                        .esr-gradient-layer {
                            position: absolute;
                            top: 0;
                            left: 0;
                            width: 100%;
                            height: 100%;
                            background: linear-gradient(90deg, rgba(212, 168, 67, .06), rgba(212, 168, 67, .03), rgba(212, 168, 67, .06));
                            background-size: 300% 100%;
                            animation: mixerGradientSweep 8s ease infinite;
                            pointer-events: none;
                            z-index: 1;
                        }

                        @keyframes mixerGradientSweep {
                            0% {
                                background-position: 0 0;
                            }

                            100% {
                                background-position: 300% 0;
                            }
                        }

                        .esr-screw {
                            position: absolute;
                            width: 12px;
                            height: 12px;
                            border-radius: 50%;
                            background: radial-gradient(circle at 40% 35%, rgba(255, 255, 255, 0.12) 0%, rgba(0, 0, 0, 0) 50%), radial-gradient(circle, #3a3a3a 0%, #222222 60%, #1a1a1a 100%);
                            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.8), inset 0 -1px 2px rgba(255, 255, 255, 0.06), 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(0, 0, 0, 0.4);
                            z-index: 3;
                            pointer-events: none;
                        }

                        .esr-screw::before,
                        .esr-screw::after {
                            content: '';
                            position: absolute;
                            top: 50%;
                            left: 50%;
                            width: 6px;
                            height: 1.5px;
                            background: rgba(0, 0, 0, 0.7);
                            transform: translate(-50%, -50%) rotate(45deg);
                        }

                        .esr-screw::after {
                            transform: translate(-50%, -50%) rotate(-45deg);
                        }

                        .esr-screw.tl {
                            top: 4px;
                            left: 4px;
                        }

                        .esr-screw.tr {
                            top: 4px;
                            right: 4px;
                        }

                        .esr-screw.bl {
                            bottom: 4px;
                            left: 4px;
                        }

                        .esr-screw.br {
                            bottom: 4px;
                            right: 4px;
                        }

/* Block 4 */
                                    @keyframes esrVuMeterAnim {
                                        0% {
                                            width: 5%;
                                            opacity: 0.5;
                                            background: #550000;
                                            box-shadow: 0 0 2px #550000;
                                        }

                                        10% {
                                            width: 35%;
                                            opacity: 0.7;
                                            background: #880000;
                                            box-shadow: 0 0 4px #880000;
                                        }

                                        15% {
                                            width: 8%;
                                            opacity: 0.5;
                                            background: #550000;
                                            box-shadow: 0 0 2px #550000;
                                        }

/* Block 5 */
                    /* Release Countdown Card */
                    .esr-release-countdown-card {
                        margin: 0px 0 24px 0;
                        padding: 8px 12px;
                        background: #f9f9f9;
                        border-radius: 8px;
                        border-left: 4px solid var(--esr-red);
                        box-shadow: 0 10px 30px rgba(0,0,0,0.05);
                    }
                    .esr-countdown-title {
                        font-size: 12px;
                        font-weight: 700;
                        color: var(--esr-red);
                        text-transform: uppercase;
                        letter-spacing: 1px;
                        margin-bottom: 6px;
                        font-family: 'Oswald', sans-serif;
                    }
                    @media (max-width: 768px) {
                        .esr-release-countdown-card {
                            margin: 12px 0 16px 0;
                            padding: 8px 10px;
                            align-self: flex-start;
                        }
                    }

                    /* Title text + badge on same line */
                    .esr-title-line {
                        display: block;
                    }
                    .esr-title-line .esr-header-title {
                        margin: 0;
                        display: block;
                        text-wrap: balance;
                    }

                    /* PRE-SAVE animated yellow gradient badge */
                    @keyframes esr-presave-shimmer {
                        0%   { background-position: 0% 50%; }
                        50%  { background-position: 100% 50%; }
                        100% { background-position: 0% 50%; }
                    }
                    .esr-presave-badge {
                        display: inline-block;
                        width: fit-content;
                        white-space: nowrap;
                        font-family: 'Oswald', sans-serif;
                        font-size: 11px;
                        font-weight: 700;
                        letter-spacing: 1px;
                        text-transform: uppercase;
                        padding: 5px 10px;
                        border-radius: 4px;
                        color: #000;
                        background: linear-gradient(110deg, #FFD700, #FFC107, #FFE066, #FFC107, #FFD700);
                        background-size: 300% 100%;
                        animation: esr-presave-shimmer 3s ease infinite;
                        line-height: 1;
                        box-shadow: 0 0 8px rgba(255, 215, 0, 0.4);
                        /* Match type kicker positioning */
                        position: static;
                        margin: 0;
                        vertical-align: baseline;
                    }

                    /* Header meta-row kickers — rounder pill shape (matching reference) */
                    .esr-meta-date .esr-type-kicker {
                        border-radius: 4px !important;
                        padding: 5px 10px !important;
                        font-size: 11px !important;
                        font-weight: 700 !important;
                        letter-spacing: 1px !important;
                    }

                    /* 100% opacity kickers in header meta row — override loader's 0.70 alpha */
                    .esr-meta-date .esr-type-kicker--album {
                        background-image: linear-gradient(135deg, #da291c 0%, #b01f15 50%, #da291c 100%) !important;
                    }

                    .esr-meta-date .esr-type-kicker--single {
                        background-image: linear-gradient(135deg, #008c3c 0%, #006423 50%, #008c3c 100%) !important;
                    }

                    .esr-meta-date .esr-type-kicker--ep {
                        background-image: linear-gradient(135deg, #f58c14 0%, #e67300 50%, #f58c14 100%) !important;
                    }

                    .esr-meta-date .esr-type-kicker--compilation {
                        background-image: linear-gradient(135deg, #8c3cc8 0%, #641ea0 50%, #8c3cc8 100%) !important;
                    }

                    .esr-meta-date .esr-type-kicker--riddim {
                        background-image: linear-gradient(135deg, #1e64dc 0%, #1446b4 50%, #1e64dc 100%) !important;
                    }

                    /* Split-Flap Countdown Ticker */
                    .esr-countdown-wrapper {
                        display: inline-flex;
                        gap: 4px;
                        align-items: center;
                    }
                    .esr-flap {
                        position: relative;
                        width: 32px;
                        min-height: 40px;
                        background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 49.5%, #111 50.5%, #222 100%);
                        border-radius: 4px;
                        display: flex;
                        flex-direction: column;
                        justify-content: center;
                        align-items: center;
                        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1);
                        overflow: hidden;
                        perspective: 400px;
                    }
                    .esr-flap > .esr-flap-sheen {
                        position: absolute; top: 0; left: 0; right: 0; height: 50%;
                        background: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
                        z-index: 1; pointer-events: none;
                    }
                    .esr-flap::after {
                        content: ''; position: absolute; top: calc(50% - 0.5px); left: 0; right: 0; height: 1px;
                        background: rgba(0, 0, 0, 0.6); z-index: 3;
                    }
                    .esr-count-num {
                        font-family: 'Oswald', sans-serif; font-size: 18px; font-weight: 700; line-height: 1;
                        display: block; position: relative; z-index: 2; margin-top: -3px; color: #da291c;
                    }
                    .esr-count-num.esr-red-gradient {
                        background: linear-gradient(135deg, #da291c 0%, #ff4136 25%, #da291c 50%, #b71c1c 75%, #da291c 100%);
                        background-size: 200% 200%; animation: esr-gradientShift 3s ease infinite;
                        -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
                    }

                    .esr-count-label {
                        font-family: 'Oswald', sans-serif;
                        font-size: 7px;
                        text-transform: uppercase;
                        color: #fff;
                        font-weight: 400;
                        letter-spacing: 1px;
                        line-height: 1;
                        position: absolute;
                        bottom: 4px;
                        left: 0;
                        right: 0;
                        text-align: center;
                        z-index: 2;
                    }
                    @keyframes esr-gradientShift {
                        0% { background-position: 0% 50%; }
                        50% { background-position: 100% 50%; }
                        100% { background-position: 0% 50%; }
                    }
                    @keyframes flapDown {
                        0% { transform: rotateX(0deg); }
                        100% { transform: rotateX(-90deg); }
                    }
                    @keyframes flapUp {
                        0% { transform: rotateX(90deg); }
                        100% { transform: rotateX(0deg); }
                    }
                    .esr-flap.flipping-out .esr-count-num {
                        animation: flapDown 0.12s ease-in forwards;
                        transform-origin: bottom center;
                    }
                    .esr-flap.flipping-in .esr-count-num {
                        animation: flapUp 0.12s ease-out forwards;
                        transform-origin: top center;
                    }

/* Block 6 */
                .esr-filter-bar {
                    display: flex;
                    gap: 10px;
                    margin-bottom: 10px;
                    flex-shrink: 0;
                    margin-left: auto;
                    align-self: flex-end;
                }

                .esr-filter-btn,
                .esr-feat-filter-btn {
                    background: none;
                    border: none;
                    font-family: 'Oswald', sans-serif;
                    text-transform: uppercase;
                    font-size: 13px;
                    letter-spacing: 1px;
                    color: #aaa;
                    cursor: pointer;
                    padding: 5px 0;
                    border-bottom: 2px solid transparent;
                    transition: all 0.2s;
                }

                .esr-filter-btn.active,
                .esr-feat-filter-btn.active {
                    color: var(--esr-red);
                    border-bottom-color: var(--esr-red);
                }

                .esr-filter-btn:hover,
                .esr-feat-filter-btn:hover {
                    color: #333;
                }

                /* ── Catalog Number Kicker ── */
                .esr-cat-kicker {
                    display: inline-block;
                    font-family: 'Ubuntu Mono', monospace !important;
                    font-size: 11px;
                    font-weight: 500;
                    letter-spacing: 0.5px;
                    text-transform: uppercase;
                    line-height: 1;
                    padding: 2px 5px;
                    border-radius: 3px;
                    border: 2px solid transparent;
                    background: transparent;
                    background-clip: text;
                    -webkit-background-clip: text;
                    -webkit-text-fill-color: transparent;
                }

                .esr-cat-kicker.esr-type-kicker--album {
                    border-color: rgba(218, 41, 28, 0.55);
                    background: linear-gradient(135deg, #da291c, #b01f15, #da291c);
                    background-size: 200% auto;
                    -webkit-background-clip: text;
                    background-clip: text;
                }

                .esr-cat-kicker.esr-type-kicker--single {
                    border-color: rgba(0, 140, 60, 0.55);
                    background: linear-gradient(135deg, #008c3c, #006423, #008c3c);
                    background-size: 200% auto;
                    -webkit-background-clip: text;
                    background-clip: text;
                }

                .esr-cat-kicker.esr-type-kicker--ep {
                    border-color: rgba(245, 140, 20, 0.55);
                    background: linear-gradient(135deg, #f58c14, #d26e00, #f58c14);
                    background-size: 200% auto;
                    -webkit-background-clip: text;
                    background-clip: text;
                }

                .esr-cat-kicker.esr-type-kicker--compilation {
                    border-color: rgba(140, 60, 200, 0.55);
                    background: linear-gradient(135deg, #8c3cc8, #641ea0, #8c3cc8);
                    background-size: 200% auto;
                    -webkit-background-clip: text;
                    background-clip: text;
                }

                .esr-cat-kicker.esr-type-kicker--riddim {
                    border-color: rgba(30, 100, 220, 0.55);
                    background: linear-gradient(135deg, #1e64dc, #1446b4, #1e64dc);
                    background-size: 200% auto;
                    -webkit-background-clip: text;
                    background-clip: text;
                }

