.ir-luna-style-player,
.ir-luna-style-player * {
    box-sizing: border-box;
}

.ir-luna-style-player {
    --irls-bg: rgba(0,0,0,0);
    --irls-font: 'Orbitron', 'Rajdhani', Arial, sans-serif;
    --irls-color: #fff2c4;
    --irls-highlight: #ffc928;
    --irls-c1: #ffc928;
    --irls-c2: #ff9d2e;
    --irls-c3: #ff3030;
    --irls-c4: #a60012;
    --irls-viz-opacity: .95;
    --irls-viz-ghost: 0;
    --irls-volume-level: 100%;
    --irls-now-playing-width: 210px;

    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 58px;
    padding: 9px 11px 9px 12px;
    overflow: hidden;
    isolation: isolate;
    color: var(--irls-color);
    font-family: var(--irls-font);
    background:
        radial-gradient(circle at 9% 50%, rgba(255,201,40,.18), transparent 28%),
        radial-gradient(circle at 86% 50%, rgba(255,48,48,.20), transparent 30%),
        linear-gradient(180deg, rgba(255,201,40,.06), rgba(0,0,0,.24) 46%, rgba(0,0,0,.78) 100%),
        linear-gradient(90deg, rgba(0,0,0,.96), rgba(40,0,0,.88) 48%, rgba(6,0,0,.98)),
        var(--irls-bg);
    border-top: 1px solid rgba(255,201,40,.48);
    box-shadow:
        inset 0 1px 0 rgba(255,201,40,.18),
        inset 0 -1px 0 rgba(255,48,48,.26),
        0 -2px 22px rgba(255,48,48,.18),
        0 0 26px rgba(255,201,40,.10),
        0 8px 22px rgba(0,0,0,.50);
}

.ir-luna-style-player:before,
.ir-luna-style-player:after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 1;
}

.ir-luna-style-player:before {
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(180deg, rgba(255,201,40,.10), transparent 42%, rgba(255,48,48,.10));
    opacity: .36;
}

.ir-luna-style-player:after {
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--irls-c1), var(--irls-c2), var(--irls-c3), var(--irls-c4), var(--irls-c1), transparent);
    opacity: .92;
    filter: blur(.15px);
}

.ir-luna-style-player > * {
    position: relative;
    z-index: 2;
}

.ir-luna-style-player .irls-audio {
    display: none;
}

.ir-luna-style-player .irls-canvas {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    mix-blend-mode: normal;
    pointer-events: none;
    transition: opacity .22s ease;
}


.ir-luna-style-player.is-playing.is-real-viz .irls-canvas {
    opacity: min(var(--irls-viz-opacity), .96);
}

.ir-luna-style-player.is-playing.is-fallback-viz .irls-canvas {
    opacity: 0;
}

.ir-luna-style-player.is-playing.is-no-real-viz .irls-canvas,
.ir-luna-style-player:not(.is-playing) .irls-canvas {
    opacity: 0;
}

.ir-luna-style-player .irls-glow {
    position: absolute;
    inset: -40% -8%;
    z-index: 0;
    pointer-events: none;
    opacity: .10;
    background:
        radial-gradient(circle at 20% 42%, color-mix(in srgb, var(--irls-highlight) 30%, transparent), transparent 18%),
        radial-gradient(circle at 83% 50%, color-mix(in srgb, var(--irls-c3) 28%, transparent), transparent 22%);
    filter: blur(10px);
}

.ir-luna-style-player .irls-play,
.ir-luna-style-player .irls-mute {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    cursor: pointer;
    color: var(--irls-color);
    font-family: var(--irls-font);
    user-select: none;
}

.ir-luna-style-player .irls-play {
    flex: 0 0 auto;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 32% 22%, rgba(255,255,255,.58), rgba(255,201,40,.22) 23%, transparent 34%),
        radial-gradient(circle at center, rgba(255,201,40,.34) 0%, rgba(138,0,18,.48) 45%, rgba(0,0,0,.96) 100%),
        linear-gradient(145deg, rgba(255,201,40,.34), rgba(255,48,48,.20) 45%, rgba(0,0,0,.88));
    border: 1px solid rgba(255,201,40,.82);
    box-shadow:
        0 0 22px rgba(255,201,40,.32),
        0 0 24px rgba(255,48,48,.18),
        inset 0 1px 2px rgba(255,255,255,.30),
        inset 0 -12px 18px rgba(0,0,0,.68);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.ir-luna-style-player .irls-play:hover {
    transform: translateY(-1px) scale(1.02);
    filter: brightness(1.08);
    box-shadow:
        0 0 28px color-mix(in srgb, var(--irls-highlight) 54%, transparent),
        inset 0 1px 2px rgba(255,255,255,.32),
        inset 0 -10px 18px rgba(0,0,0,.55);
}

.ir-luna-style-player .irls-play:active {
    transform: translateY(0) scale(.985);
}

.ir-luna-style-player.is-playing .irls-play {
    animation: irlsPlayRing 1.55s linear infinite;
}

.ir-luna-style-player .irls-play-icon {
    width: 0;
    height: 0;
    margin-left: 4px;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent;
    border-left: 20px solid #fff2c4;
    filter: drop-shadow(0 0 8px rgba(255,201,40,.92)) drop-shadow(0 0 12px rgba(255,48,48,.55));
}

.ir-luna-style-player.is-playing .irls-play-icon {
    width: 19px;
    height: 25px;
    margin-left: 0;
    border: 0;
    border-left: 7px solid #fff2c4;
    border-right: 7px solid #fff2c4;
}

.ir-luna-style-player.is-loading .irls-play {
    animation: irlsLoadingPulse .72s ease-in-out infinite alternate;
}

.ir-luna-style-player .irls-info {
    flex: 1 1 auto;
    min-width: 80px;
    overflow: hidden;
    padding-right: 8px;
    line-height: 1.12;
    text-shadow: 0 1px 4px rgba(0,0,0,.85), 0 0 8px rgba(0,0,0,.55);
}

.ir-luna-style-player .irls-station,
.ir-luna-style-player .irls-title-wrap {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
}

.ir-luna-style-player .irls-station span,
.ir-luna-style-player .irls-title {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: top;
}

.ir-luna-style-player .irls-station {
    margin-bottom: 5px;
    color: var(--irls-highlight);
    font-weight: 900;
    font-size: clamp(12px, 1.15vw, 16px);
    letter-spacing: .08em;
    text-transform: uppercase;
    filter: drop-shadow(0 0 5px color-mix(in srgb, var(--irls-highlight) 32%, transparent));
}

.ir-luna-style-player .irls-title-wrap {
    font-size: clamp(13px, 1.45vw, 18px);
    font-weight: 700;
    letter-spacing: .01em;
    color: #fff2c4;
    min-height: 1.18em;
}

.ir-luna-style-player.is-playing[data-scroll-title="1"] .irls-title.is-overflowing,
.ir-luna-style-player[data-scroll-name="1"] .irls-station span.is-overflowing {
    max-width: none;
    padding-right: 48px;
    animation: irlsMarquee var(--irls-scroll-speed, 15s) linear infinite;
}

.ir-luna-style-player .irls-right {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    height: 100%;
    min-width: 226px;
    padding: 4px 6px 4px 8px;
    border-left: 1px solid rgba(255,201,40,.18);
    background: linear-gradient(90deg, rgba(0,0,0,0), rgba(72,0,0,.26));
}

.ir-luna-style-player .irls-live,
.ir-luna-style-player .irls-eq-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 22px;
    border-radius: 999px;
    padding: 0 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .08em;
    font-size: 10px;
    color: #ffffff;
    background: linear-gradient(180deg, rgba(255,201,40,.13), rgba(70,0,0,.50));
    border: 1px solid rgba(255,201,40,.34);
    box-shadow: inset 0 1px 0 rgba(255,201,40,.15), 0 0 14px rgba(255,48,48,.16), 0 0 12px rgba(0,0,0,.30);
    text-shadow: 0 1px 3px rgba(0,0,0,.75);
    white-space: nowrap;
}

.ir-luna-style-player .irls-live span {
    width: 7px;
    height: 7px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--irls-c2);
    box-shadow: 0 0 10px color-mix(in srgb, var(--irls-c2) 60%, transparent);
}

.ir-luna-style-player .irls-live.is-live {
    color: #fff2c4;
    border-color: rgba(255,48,48,.55);
    background: linear-gradient(180deg, rgba(255,48,48,.28), rgba(0,0,0,.50));
}

.ir-luna-style-player .irls-live.is-live span {
    background: #ff3030;
    box-shadow: 0 0 12px #ff3030, 0 0 18px rgba(255,201,40,.40);
    animation: irlsLivePulse 1.15s ease-in-out infinite;
}

.ir-luna-style-player .irls-live.is-auto {
    color: #ffd56a;
    border-color: rgba(255,201,40,.35);
    background: linear-gradient(180deg, rgba(255,201,40,.18), rgba(0,0,0,.42));
}

.ir-luna-style-player .irls-eq-label {
    color: rgba(255,255,255,.58);
    border-color: rgba(255,255,255,.12);
    min-width: 56px;
}

.ir-luna-style-player.is-real-viz .irls-eq-label {
    color: #ffc928;
    border-color: rgba(255,201,40,.42);
    background: linear-gradient(180deg, rgba(255,201,40,.18), rgba(72,0,0,.46));
}

.ir-luna-style-player.is-no-real-viz .irls-eq-label {
    color: rgba(255,255,255,.40);
    border-color: rgba(255,255,255,.10);
}

.ir-luna-style-player .irls-mute {
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 48%, color-mix(in srgb, var(--irls-highlight) 14%, transparent), transparent 56%),
        linear-gradient(180deg, rgba(255,255,255,.10), rgba(0,0,0,.50));
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.13), 0 0 14px rgba(0,0,0,.20);
}

.ir-luna-style-player .irls-mute:hover {
    border-color: color-mix(in srgb, var(--irls-highlight) 60%, rgba(255,255,255,.18));
    box-shadow: 0 0 16px color-mix(in srgb, var(--irls-highlight) 28%, transparent), inset 0 1px 0 rgba(255,255,255,.14);
}

.ir-luna-style-player .irls-speaker-icon {
    position: relative;
    display: block;
    width: 18px;
    height: 15px;
}

.ir-luna-style-player .irls-speaker-icon:before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 7px;
    height: 7px;
    border-radius: 2px;
    background: #fff2c4;
    box-shadow: 6px -4px 0 -2px #ffffff, 6px 4px 0 -2px #ffffff;
}

.ir-luna-style-player .irls-speaker-icon:after {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 9px;
    height: 11px;
    border: 2px solid #ffffff;
    border-left: 0;
    border-top-color: transparent;
    border-bottom-color: transparent;
    border-radius: 0 12px 12px 0;
    opacity: .92;
}

.ir-luna-style-player .irls-mute.is-muted .irls-speaker-icon:after {
    width: 16px;
    height: 2px;
    right: -1px;
    top: 7px;
    border: 0;
    border-radius: 2px;
    background: #ff3030;
    transform: rotate(-36deg);
}

.ir-luna-style-player .irls-volume-shell {
    width: 94px;
    height: 28px;
    padding: 9px 10px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.46));
    border: 1px solid rgba(255,201,40,.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 0 14px rgba(255,48,48,.12), 0 0 12px rgba(0,0,0,.18);
    display: flex;
    align-items: center;
    position: relative;
    z-index: 5;
    pointer-events: auto;
}

.ir-luna-style-player .irls-volume {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    margin: 0;
    background: transparent;
    accent-color: var(--irls-highlight);
    cursor: pointer;
    pointer-events: auto;
    touch-action: none;
}

.ir-luna-style-player .irls-volume::-moz-range-track {
    height: 6px;
    border-radius: 99px;
    background:
        linear-gradient(90deg, var(--irls-c1), var(--irls-c2), var(--irls-c3)) 0/var(--irls-volume-level) 100% no-repeat,
        linear-gradient(90deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.22);
}

.ir-luna-style-player .irls-volume::-moz-range-thumb {
    width: 15px;
    height: 15px;
    border: 1px solid rgba(255,255,255,.68);
    border-radius: 50%;
    background: #fff2c4;
    box-shadow: 0 0 12px color-mix(in srgb, var(--irls-highlight) 65%, transparent), 0 0 10px rgba(255,48,48,.22);
}

.ir-luna-style-player .irls-volume::-moz-range-progress {
    height: 6px;
    border-radius: 99px;
    background: linear-gradient(90deg, var(--irls-c1), var(--irls-c2), var(--irls-c3));
}

.ir-luna-style-player .irls-volume::-webkit-slider-runnable-track {
    height: 6px;
    border-radius: 99px;
    background:
        linear-gradient(90deg, var(--irls-c1), var(--irls-c2), var(--irls-c3)) 0/var(--irls-volume-level) 100% no-repeat,
        linear-gradient(90deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.22);
}

.ir-luna-style-player .irls-volume::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 15px;
    height: 15px;
    margin-top: -4.5px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.68);
    background: #fff2c4;
    box-shadow: 0 0 12px color-mix(in srgb, var(--irls-highlight) 65%, transparent), 0 0 10px rgba(255,48,48,.22);
}

.ir-luna-style-player .irls-cover {
    width: 60px;
    height: 60px;
    min-width: 60px;
    overflow: hidden;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,.22), transparent 24%),
        linear-gradient(140deg, rgba(255,255,255,.12), rgba(0,0,0,.48));
    border: 1px solid color-mix(in srgb, var(--irls-highlight) 45%, rgba(255,255,255,.18));
    box-shadow:
        0 0 18px color-mix(in srgb, var(--irls-highlight) 26%, transparent),
        inset 0 0 0 2px rgba(0,0,0,.42);
}

.ir-luna-style-player .irls-cover-circle {
    border-radius: 50%;
}

.ir-luna-style-player .irls-cover-square {
    border-radius: 10px;
}

.ir-luna-style-player .irls-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ir-luna-style-player .irls-cover-fallback span {
    font-size: 25px;
    color: var(--irls-highlight);
    filter: drop-shadow(0 0 10px color-mix(in srgb, var(--irls-highlight) 55%, transparent));
}

.ir-luna-style-player.is-playing .irls-cover {
    animation: irlsCoverGlow 2.1s ease-in-out infinite;
}

.ir-luna-style-player.irls-only-cover-image .irls-info,
.ir-luna-style-player.irls-only-cover-image .irls-live,
.ir-luna-style-player.irls-only-cover-image .irls-eq-label,
.ir-luna-style-player.irls-only-cover-image .irls-volume-shell,
.ir-luna-style-player.irls-only-cover-image .irls-mute {
    display: none;
}

.ir-luna-style-player.irls-only-cover-image {
    justify-content: center;
}

.ir-luna-style-player.is-error .irls-title {
    color: #ffb4a8;
}

@keyframes irlsPlayRing {
    0% {
        box-shadow:
            0 0 14px color-mix(in srgb, var(--irls-highlight) 28%, transparent),
            0 0 0 0 color-mix(in srgb, var(--irls-highlight) 35%, transparent),
            inset 0 1px 2px rgba(255,255,255,.28),
            inset 0 -10px 18px rgba(0,0,0,.55);
    }
    100% {
        box-shadow:
            0 0 22px color-mix(in srgb, var(--irls-highlight) 44%, transparent),
            0 0 0 12px transparent,
            inset 0 1px 2px rgba(255,255,255,.28),
            inset 0 -10px 18px rgba(0,0,0,.55);
    }
}

@keyframes irlsLoadingPulse {
    from { filter: brightness(.88); }
    to { filter: brightness(1.25); }
}

@keyframes irlsLivePulse {
    0%, 100% { transform: scale(.9); opacity: .75; }
    50% { transform: scale(1.22); opacity: 1; }
}

@keyframes irlsCoverGlow {
    0%, 100% { box-shadow: 0 0 14px color-mix(in srgb, var(--irls-highlight) 20%, transparent), inset 0 0 0 2px rgba(0,0,0,.42); }
    50% { box-shadow: 0 0 25px color-mix(in srgb, var(--irls-highlight) 42%, transparent), inset 0 0 0 2px rgba(0,0,0,.42); }
}

@keyframes irlsMarquee {
    0%, 14% { transform: translateX(0); }
    100% { transform: translateX(calc(-100% + var(--irls-marquee-width, 100%))); }
}

@media (max-width: 760px) {
    .ir-luna-style-player {
        gap: 10px;
        padding: 8px 9px;
    }

    .ir-luna-style-player .irls-play {
        width: 50px;
        height: 50px;
    }

    .ir-luna-style-player .irls-cover {
        width: 50px;
        height: 50px;
        min-width: 50px;
    }

    .ir-luna-style-player .irls-live,
    .ir-luna-style-player .irls-eq-label {
        display: none;
    }

    .ir-luna-style-player .irls-right {
        min-width: 116px;
        gap: 6px;
        padding-right: 3px;
    }

    .ir-luna-style-player .irls-volume-shell {
        width: 62px;
    }
}

@media (max-width: 480px) {
    .ir-luna-style-player .irls-cover,
    .ir-luna-style-player .irls-volume-shell {
        display: none;
    }

    .ir-luna-style-player .irls-right {
        min-width: 36px;
    }

    .ir-luna-style-player .irls-title-wrap {
        font-size: 13px;
    }
}


/* v1.8 title-safe realtime EQ polish */
.ir-luna-style-player .irls-info,
.ir-luna-style-player .irls-right,
.ir-luna-style-player .irls-play {
    z-index: 4;
}
.ir-luna-style-player .irls-canvas {
    z-index: 1;
}
.ir-luna-style-player .irls-info {
    position: relative;
}


/* Eclypse Player realtime EQ + cleaner right-side deck */
.ir-luna-style-player .irls-right {
    min-width: 188px;
    gap: 7px;
    padding: 4px 8px 4px 10px;
    border-left: 1px solid rgba(255,255,255,.075);
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.34) 42%, rgba(0,0,0,.52));
    border-radius: 999px 0 0 999px;
}
.ir-luna-style-player .irls-eq-label { display:none !important; }
.ir-luna-style-player .irls-eq-dot {
    display: none !important;
}
.ir-luna-style-player.is-real-viz .irls-eq-dot,
.ir-luna-style-player.is-no-real-viz .irls-eq-dot {
    display: none !important;
}
.ir-luna-style-player .irls-live {
    height: 24px;
    padding: 0 10px;
    font-size: 10px;
    letter-spacing: .075em;
    border-radius: 999px;
}
.ir-luna-style-player .irls-live.is-auto span {
    background: #ffc928;
    box-shadow: 0 0 10px rgba(255,201,40,.72);
}
.ir-luna-style-player .irls-mute {
    width: 31px;
    height: 28px;
    min-width: 31px;
    border-radius: 11px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.11), rgba(0,0,0,.54)),
        radial-gradient(circle at 50% 50%, rgba(255,48,48,.12), transparent 58%);
}
.ir-luna-style-player .irls-volume-shell {
    width: 78px;
    height: 24px;
    padding: 8px 9px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.09), rgba(0,0,0,.48)),
        linear-gradient(90deg, rgba(255,48,48,.12), rgba(255,201,40,.10), rgba(255,51,51,.10));
}
.ir-luna-style-player .irls-cover { display:none !important; }
.ir-luna-style-player .irls-canvas { mix-blend-mode: normal; }
.ir-luna-style-player.is-playing.is-real-viz .irls-canvas { opacity: min(var(--irls-viz-opacity), .96); }
.ir-luna-style-player.is-playing.is-fallback-viz .irls-canvas { opacity: 0 !important; }

@media (max-width: 760px) {
    .ir-luna-style-player .irls-right { min-width: 118px; border-radius: 999px 0 0 999px; }
    .ir-luna-style-player .irls-volume-shell { width: 62px; }
    .ir-luna-style-player .irls-live { display:none; }
}


/* v2.0 sticky footer + live-edge visual polish */
body.irls-has-sticky-footer-player {
    padding-bottom: var(--irls-sticky-footer-offset, 92px) !important;
}
.ir-luna-style-player.irls-sticky-footer {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 2147483000 !important;
    border-radius: 16px 16px 0 0 !important;
    min-height: 76px;
    padding-bottom: max(9px, env(safe-area-inset-bottom));
    background:
        radial-gradient(circle at 12% 0%, rgba(255,201,40,.20), transparent 32%),
        radial-gradient(circle at 86% 50%, rgba(255,48,48,.18), transparent 31%),
        linear-gradient(180deg, rgba(255,201,40,.08), rgba(0,0,0,.28) 38%, rgba(0,0,0,.78) 100%),
        linear-gradient(90deg, rgba(0,0,0,.98), rgba(54,0,0,.90) 50%, rgba(0,0,0,.98));
    border-top: 1px solid rgba(255,201,40,.32) !important;
    box-shadow:
        0 -10px 34px rgba(0,0,0,.72),
        0 0 26px rgba(255,48,48,.16),
        inset 0 1px 0 rgba(255,255,255,.16),
        inset 0 -1px 0 rgba(0,0,0,.9) !important;
    backdrop-filter: blur(10px) saturate(1.18);
}
.ir-luna-style-player.irls-sticky-footer:after {
    top: 0;
    bottom: auto;
    height: 2px;
    background: linear-gradient(90deg, transparent, #ffc928, #ff9d2e, #ff9d2e, #a60012, transparent);
    opacity: .92;
}
.ir-luna-style-player .irls-station {
    color: transparent !important;
    background: linear-gradient(90deg, #ffffff 0%, #ffc928 28%, #ff9d2e 62%, #ff9d2e 100%);
    -webkit-background-clip: text;
    background-clip: text;
    filter: drop-shadow(0 0 8px rgba(255,201,40,.34));
    letter-spacing: .13em;
}
.ir-luna-style-player .irls-title-wrap {
    font-weight: 800;
    letter-spacing: .025em;
}
.ir-luna-style-player .irls-play {
    width: 56px;
    height: 56px;
    border-radius: 15px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.26) 0%, rgba(255,201,40,.12) 24%, rgba(255,255,255,0) 28%),
        radial-gradient(circle at 34% 24%, rgba(255,255,255,.52), rgba(255,201,40,.16) 24%, transparent 35%),
        radial-gradient(circle at 50% 56%, rgba(255,48,48,.34), rgba(0,0,0,0) 54%),
        linear-gradient(180deg, #2a0b0b 0%, #100506 58%, #050000 100%);
    border: 1px solid rgba(255,201,40,.60);
    box-shadow:
        0 0 24px rgba(255,201,40,.30),
        0 8px 18px rgba(0,0,0,.48),
        inset 0 1px 0 rgba(255,255,255,.36),
        inset 0 -12px 18px rgba(0,0,0,.68),
        inset 0 0 0 1px rgba(255,255,255,.06);
}
.ir-luna-style-player .irls-play:hover {
    background:
        radial-gradient(circle at 35% 25%, rgba(255,48,48,.34), rgba(0,0,0,0) 34%),
        linear-gradient(145deg, #080000 0%, #300006 48%, #070000 100%) !important;
    border-color: rgba(255,48,48,.88) !important;
    box-shadow:
        0 0 24px rgba(255,48,48,.48),
        0 0 10px rgba(255,201,40,.20),
        0 10px 22px rgba(0,0,0,.60),
        inset 0 1px 0 rgba(255,201,40,.18),
        inset 0 -12px 18px rgba(0,0,0,.78),
        inset 0 0 0 1px rgba(255,48,48,.20);
}
.ir-luna-style-player.is-playing .irls-play {
    border-color: rgba(255,228,92,.64);
    animation: irlsPlayRing 1.35s ease-out infinite;
}
.ir-luna-style-player.is-buffering .irls-play {
    animation: irlsLoadingPulse .62s ease-in-out infinite alternate;
}
.ir-luna-style-player .irls-play-icon {
    border-left-color: #fff2c4;
    filter: drop-shadow(0 0 9px rgba(255,201,40,.9));
}
.ir-luna-style-player.is-playing .irls-play-icon {
    border-left-color: #ffffff;
    border-right-color: #ffffff;
    filter: drop-shadow(0 0 8px rgba(255,228,92,.88));
}
.ir-luna-style-player .irls-mute,
.ir-luna-style-player .irls-speaker-icon {
    display: none !important;
}
.ir-luna-style-player .irls-right {
    min-width: 154px;
    gap: 8px;
    padding: 4px 11px 4px 10px;
    border-left: 1px solid rgba(255,201,40,.16);
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.46) 40%, rgba(0,0,0,.72));
}
.ir-luna-style-player .irls-live {
    height: 25px;
    padding: 0 11px;
    font-size: 10px;
    letter-spacing: .08em;
    border-color: rgba(255,255,255,.12);
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.55));
}
.ir-luna-style-player .irls-live.is-live {
    color: #fff2c4;
    border-color: rgba(255,48,48,.54);
    background: linear-gradient(180deg, rgba(255,48,48,.24), rgba(0,0,0,.55));
    box-shadow: 0 0 14px rgba(255,48,48,.24), inset 0 1px 0 rgba(255,255,255,.10);
}
.ir-luna-style-player .irls-live.is-live span {
    background: #ffc928;
    box-shadow: 0 0 12px rgba(255,48,48,.88);
}
.ir-luna-style-player .irls-live.is-auto {
    color: #ffeeb0;
    border-color: rgba(255,228,92,.38);
    background: linear-gradient(180deg, rgba(255,228,92,.14), rgba(0,0,0,.55));
}
.ir-luna-style-player .irls-volume-shell {
    width: 94px;
    height: 28px;
    padding: 9px 10px;
    border-color: rgba(255,201,40,.24);
    background:
        linear-gradient(180deg, rgba(255,255,255,.09), rgba(0,0,0,.55)),
        linear-gradient(90deg, rgba(255,48,48,.16), rgba(255,228,92,.14), rgba(255,47,109,.10));
    position: relative;
    z-index: 6;
    pointer-events: auto;
}
.ir-luna-style-player .irls-volume::-moz-range-track,
.ir-luna-style-player .irls-volume::-webkit-slider-runnable-track {
    background:
        linear-gradient(90deg, #ffc928, #ff9d2e 58%, #ff3030 100%) 0/var(--irls-volume-level) 100% no-repeat,
        linear-gradient(90deg, rgba(255,255,255,.10), rgba(255,255,255,.045));
}
.ir-luna-style-player .irls-volume::-moz-range-progress {
    background: linear-gradient(90deg, #ffc928, #ff9d2e 58%, #ff3030 100%);
}
.ir-luna-style-player .irls-volume::-moz-range-thumb,
.ir-luna-style-player .irls-volume::-webkit-slider-thumb {
    box-shadow: 0 0 12px rgba(255,201,40,.62), 0 1px 3px rgba(0,0,0,.6);
}
@media (max-width: 760px) {
    .ir-luna-style-player.irls-sticky-footer { min-height: 72px; border-radius: 14px 14px 0 0 !important; }
    .ir-luna-style-player .irls-right { min-width: 104px; }
    .ir-luna-style-player .irls-volume-shell { width: 82px; }
}
@media (max-width: 480px) {
    .ir-luna-style-player .irls-right { min-width: 88px; }
    .ir-luna-style-player .irls-volume-shell { width: 78px; display:flex; }
    .ir-luna-style-player .irls-play { width: 52px; height: 52px; }
}


/* v2.2.7 mobile/tablet responsive polish - desktop stays unchanged above 1024px */
@media (max-width: 1024px) {
    body.irls-has-sticky-footer-player {
        padding-bottom: var(--irls-sticky-footer-offset, 88px) !important;
    }

    .ir-luna-style-player.irls-sticky-footer {
        min-height: 74px;
        gap: 10px;
        padding: 8px 10px max(8px, env(safe-area-inset-bottom)) 10px !important;
        border-radius: 14px 14px 0 0 !important;
    }

    .ir-luna-style-player .irls-play {
        width: 52px;
        height: 52px;
        border-radius: 14px;
        flex: 0 0 52px;
    }

    .ir-luna-style-player .irls-play-icon {
        border-top-width: 12px;
        border-bottom-width: 12px;
        border-left-width: 18px;
    }

    .ir-luna-style-player.is-playing .irls-play-icon {
        width: 18px;
        height: 23px;
        border-left-width: 6px;
        border-right-width: 6px;
    }

    .ir-luna-style-player .irls-info {
        min-width: 0;
        flex: 1 1 auto;
        padding-right: 4px;
    }

    .ir-luna-style-player .irls-station {
        margin-bottom: 3px;
        font-size: clamp(11px, 1.65vw, 14px);
        letter-spacing: .105em;
    }

    .ir-luna-style-player .irls-title-wrap {
        font-size: clamp(13px, 2vw, 16px);
        line-height: 1.15;
    }

    .ir-luna-style-player .irls-right {
        min-width: auto;
        flex: 0 0 auto;
        gap: 7px;
        padding: 0;
        border-left: 0;
        border-radius: 0;
        background: transparent;
    }

    .ir-luna-style-player .irls-live {
        height: 23px;
        padding: 0 9px;
        font-size: 9px;
    }

    .ir-luna-style-player .irls-volume-shell {
        width: 88px;
        height: 28px;
        padding: 9px 10px;
        flex: 0 0 88px;
    }
}

@media (max-width: 700px) {
    body.irls-has-sticky-footer-player {
        padding-bottom: var(--irls-sticky-footer-offset, 86px) !important;
    }

    .ir-luna-style-player.irls-sticky-footer {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 8px;
        min-height: 72px;
        padding: 8px 8px max(8px, env(safe-area-inset-bottom)) 8px !important;
    }

    .ir-luna-style-player .irls-play {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
        border-radius: 13px;
    }

    .ir-luna-style-player .irls-play-icon {
        margin-left: 3px;
        border-top-width: 11px;
        border-bottom-width: 11px;
        border-left-width: 17px;
    }

    .ir-luna-style-player.is-playing .irls-play-icon {
        width: 17px;
        height: 22px;
        margin-left: 0;
        border-left-width: 6px;
        border-right-width: 6px;
    }

    .ir-luna-style-player .irls-info {
        width: 100%;
        min-width: 0;
        overflow: hidden;
        padding-right: 0;
    }

    .ir-luna-style-player .irls-station {
        font-size: 10.5px;
        letter-spacing: .095em;
        margin-bottom: 3px;
    }

    .ir-luna-style-player .irls-title-wrap {
        font-size: 13.5px;
        line-height: 1.12;
    }

    .ir-luna-style-player .irls-right {
        justify-self: end;
        min-width: 0;
        width: auto;
        padding: 0;
        gap: 0;
    }

    .ir-luna-style-player .irls-live {
        display: none !important;
    }

    .ir-luna-style-player .irls-volume-shell {
        display: flex !important;
        width: 86px;
        height: 30px;
        flex: 0 0 86px;
        padding: 10px 9px;
        border-radius: 999px;
    }

    .ir-luna-style-player .irls-volume {
        height: 16px;
    }

    .ir-luna-style-player .irls-volume::-webkit-slider-thumb {
        width: 16px;
        height: 16px;
        margin-top: -5px;
    }

    .ir-luna-style-player .irls-volume::-moz-range-thumb {
        width: 16px;
        height: 16px;
    }
}

@media (max-width: 420px) {
    body.irls-has-sticky-footer-player {
        padding-bottom: var(--irls-sticky-footer-offset, 82px) !important;
    }

    .ir-luna-style-player.irls-sticky-footer {
        min-height: 68px;
        column-gap: 7px;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }

    .ir-luna-style-player .irls-play {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        border-radius: 12px;
    }

    .ir-luna-style-player .irls-play-icon {
        border-top-width: 10px;
        border-bottom-width: 10px;
        border-left-width: 15px;
    }

    .ir-luna-style-player.is-playing .irls-play-icon {
        width: 15px;
        height: 20px;
        border-left-width: 5px;
        border-right-width: 5px;
    }

    .ir-luna-style-player .irls-station {
        font-size: 9.5px;
        letter-spacing: .075em;
    }

    .ir-luna-style-player .irls-title-wrap {
        font-size: 12.5px;
        letter-spacing: .01em;
    }

    .ir-luna-style-player .irls-volume-shell {
        width: 76px;
        flex-basis: 76px;
        height: 28px;
        padding: 9px 8px;
    }
}

@media (max-width: 340px) {
    .ir-luna-style-player.irls-sticky-footer {
        column-gap: 6px;
    }

    .ir-luna-style-player .irls-play {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    .ir-luna-style-player .irls-volume-shell {
        width: 68px;
        flex-basis: 68px;
    }

    .ir-luna-style-player .irls-title-wrap {
        font-size: 12px;
    }
}


/* v2.2.8 mobile/tablet play-icon centering fix - desktop untouched */
@media (max-width: 1024px) {
    .ir-luna-style-player .irls-play {
        display: grid !important;
        place-items: center !important;
        justify-content: center !important;
        align-items: center !important;
        padding: 0 !important;
        line-height: 0 !important;
    }

    .ir-luna-style-player .irls-play-icon {
        display: block !important;
        margin-left: -6px !important;
        margin-right: 0 !important;
    }

    .ir-luna-style-player.is-playing .irls-play-icon {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media (max-width: 700px) {
    .ir-luna-style-player .irls-play-icon {
        margin-left: -5.5px !important;
    }

    .ir-luna-style-player.is-playing .irls-play-icon {
        margin-left: 0 !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player .irls-play-icon {
        margin-left: -5px !important;
    }

    .ir-luna-style-player.is-playing .irls-play-icon {
        margin-left: 0 !important;
    }
}


/* v2.2.9 mobile title position + long-title scroll - desktop untouched */
@media (max-width: 700px) {
    .ir-luna-style-player .irls-info {
        transform: translateY(-3px);
    }

    .ir-luna-style-player .irls-title-wrap {
        transform: translateY(-1px);
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .ir-luna-style-player .irls-title {
        display: inline-block !important;
        white-space: nowrap !important;
        will-change: transform;
    }

    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
        max-width: none !important;
        overflow: visible !important;
        text-overflow: clip !important;
        padding-right: 72px !important;
        animation: irlsMobileTitleMarquee var(--irls-scroll-speed, 14s) linear infinite !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player .irls-info {
        transform: translateY(-4px);
    }

    .ir-luna-style-player .irls-title-wrap {
        transform: translateY(-1.5px);
    }

    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
        padding-right: 58px !important;
    }
}

@keyframes irlsMobileTitleMarquee {
    0%, 12% { transform: translateX(0); }
    88%, 100% { transform: translateX(calc(-100% + var(--irls-marquee-width, 100%))); }
}


/* v2.2.10 mobile play triangle right-shift - desktop untouched */
@media (max-width: 1024px) {
    .ir-luna-style-player:not(.is-playing) .irls-play-icon {
        margin-left: -2px !important;
    }
}

@media (max-width: 700px) {
    .ir-luna-style-player:not(.is-playing) .irls-play-icon {
        margin-left: -2px !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player:not(.is-playing) .irls-play-icon {
        margin-left: -1px !important;
    }
}


/* v1.0.2 clean mobile/tablet EQ interference fix
   Reverted from v1.0.3 layer changes. This keeps the canvas below the real controls,
   but removes decorative/station layers that can wash over the first top-left EQ dots. */
@media (max-width: 1024px) {
    .ir-luna-style-player .irls-canvas {
        z-index: 1 !important;
        opacity: 1 !important;
        mix-blend-mode: normal !important;
        filter: none !important;
    }

    .ir-luna-style-player:before,
    .ir-luna-style-player:after,
    .ir-luna-style-player .irls-glow {
        z-index: 0 !important;
        mix-blend-mode: normal !important;
    }

    .ir-luna-style-player .irls-play,
    .ir-luna-style-player .irls-info,
    .ir-luna-style-player .irls-title-wrap,
    .ir-luna-style-player .irls-right,
    .ir-luna-style-player .irls-volume-shell {
        position: relative;
        z-index: 4 !important;
    }

    .ir-luna-style-player .irls-station {
        background: none !important;
        -webkit-background-clip: initial !important;
        background-clip: initial !important;
        color: transparent !important;
        -webkit-text-fill-color: transparent !important;
        text-shadow: none !important;
        filter: none !important;
    }

    .ir-luna-style-player.is-playing.is-real-viz .irls-canvas {
        opacity: 1 !important;
    }
}



/* v1.0.2.12 narrower metadata-title lane
   Only the real song/title line gets the fixed overflow container.
   The NOW PLAYING label, Live/Auto badge, volume and VU/EQ are outside this box.
   Long titles scroll inside .irls-title-wrap and cannot push the VU/EQ meters. */
.ir-luna-style-player .irls-info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    padding-right: 8px !important;
    line-height: 1.12 !important;
}

.ir-luna-style-player .irls-station {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
}

.ir-luna-style-player .irls-station span {
    display: inline-block !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    vertical-align: top !important;
}

.ir-luna-style-player .irls-title-wrap {
    display: block !important;
    flex: none !important;
    width: var(--irls-now-playing-width, 210px) !important;
    max-width: var(--irls-now-playing-width, 210px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    position: relative !important;
}

.ir-luna-style-player .irls-title {
    display: inline-block !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    vertical-align: top !important;
    will-change: transform;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
    max-width: none !important;
    min-width: max-content !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-right: 72px !important;
    animation: irlsMarquee var(--irls-scroll-speed, 15s) linear infinite !important;
}

.ir-luna-style-player[data-scroll-title="0"] .irls-title.is-overflowing,
.ir-luna-style-player:not([data-scroll-title="1"]) .irls-title.is-overflowing {
    animation: none !important;
    transform: none !important;
}

.ir-luna-style-player .irls-right {
    margin-left: auto !important;
    flex: 0 0 auto !important;
}

@media (max-width: 760px) {
    .ir-luna-style-player {
        --irls-now-playing-width: min(42vw, 200px);
    }
}

@media (max-width: 520px) {
    .ir-luna-style-player {
        --irls-now-playing-width: min(38vw, 180px);
    }
}

/* v1.0.2.13 full-read scrolling title fix
   Long Now Playing text now pauses at the start, scrolls fully to the real end,
   pauses with the final letters visible, then loops. It never pushes the VU/EQ. */
.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
    padding-right: 92px !important;
    animation: irlsMarquee var(--irls-scroll-speed, 16s) linear infinite !important;
}

.ir-luna-style-player[data-scroll-name="1"] .irls-station span.is-overflowing {
    padding-right: 72px !important;
    animation: irlsMarquee var(--irls-scroll-speed, 16s) linear infinite !important;
}

@keyframes irlsMarquee {
    0%, 12% {
        transform: translate3d(0, 0, 0);
    }
    78%, 92% {
        transform: translate3d(var(--irls-scroll-target, 0px), 0, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes irlsMobileTitleMarquee {
    0%, 12% {
        transform: translate3d(0, 0, 0);
    }
    78%, 92% {
        transform: translate3d(var(--irls-scroll-target, 0px), 0, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

/* v1.0.2.14 mobile-only tighter title lane + left-starting VU/EQ
   Desktop is untouched. On phones, only the real metadata/title box is narrowed;
   the VU/EQ canvas is positioned by JS to begin from the first letter of this lane. */
@media (max-width: 700px) {
    .ir-luna-style-player {
        --irls-mobile-now-playing-width: min(32vw, 150px);
    }

    .ir-luna-style-player .irls-title-wrap {
        width: var(--irls-mobile-now-playing-width) !important;
        max-width: var(--irls-mobile-now-playing-width) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-now-playing-width: min(30vw, 125px);
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-now-playing-width: min(28vw, 108px);
    }
}

/* v1.0.2.15 silky now-playing marquee fix
   Only the actual song/title text scrolls. It uses a duplicate seamless track,
   so metadata polling no longer jerks/restarts the movement on mobile or desktop. */
.ir-luna-style-player .irls-title-wrap {
    overflow: hidden !important;
    white-space: nowrap !important;
    contain: layout paint style !important;
}

.ir-luna-style-player .irls-title {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    vertical-align: top !important;
    padding-right: 0 !important;
    transform: translate3d(0, 0, 0);
    will-change: auto;
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.ir-luna-style-player .irls-title .irls-marquee-main,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: inline-block !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

.ir-luna-style-player .irls-title .irls-marquee-gap,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: none !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-right: 0 !important;
    animation: irlsSeamlessTitleMarquee var(--irls-scroll-speed, 18s) linear infinite !important;
    will-change: transform;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
    display: block !important;
    flex: 0 0 var(--irls-marquee-gap, 82px) !important;
    width: var(--irls-marquee-gap, 82px) !important;
    min-width: var(--irls-marquee-gap, 82px) !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-clone {
    display: inline-block !important;
}

.ir-luna-style-player[data-scroll-title="0"] .irls-title.is-overflowing,
.ir-luna-style-player:not([data-scroll-title="1"]) .irls-title.is-overflowing,
.ir-luna-style-player .irls-title:not(.is-overflowing) {
    animation: none !important;
    transform: translate3d(0, 0, 0) !important;
}

.ir-luna-style-player[data-scroll-title="0"] .irls-title .irls-marquee-gap,
.ir-luna-style-player[data-scroll-title="0"] .irls-title .irls-marquee-clone,
.ir-luna-style-player:not([data-scroll-title="1"]) .irls-title .irls-marquee-gap,
.ir-luna-style-player:not([data-scroll-title="1"]) .irls-title .irls-marquee-clone,
.ir-luna-style-player .irls-title:not(.is-overflowing) .irls-marquee-gap,
.ir-luna-style-player .irls-title:not(.is-overflowing) .irls-marquee-clone {
    display: none !important;
}

/* v1.0.2.19 faster complete-read title marquee
   Pauses briefly, reaches the true end sooner, holds the final letters readable,
   then travels into the cloned title for a smooth no-jump loop. */
@keyframes irlsSeamlessTitleMarquee {
    0%, 7% {
        transform: translate3d(0, 0, 0);
    }
    76%, 88% {
        transform: translate3d(calc(-1 * var(--irls-marquee-read-step, var(--irls-marquee-step, 0px))), 0, 0);
    }
    100% {
        transform: translate3d(calc(-1 * var(--irls-marquee-step, 0px)), 0, 0);
    }
}

@media (max-width: 700px) {
    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
        flex-basis: var(--irls-marquee-gap, 58px) !important;
        width: var(--irls-marquee-gap, 58px) !important;
        min-width: var(--irls-marquee-gap, 58px) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ir-luna-style-player .irls-title.is-overflowing {
        animation: none !important;
        transform: translate3d(0, 0, 0) !important;
    }
}

/* v1.0.2.19 final title-scroll override
   Keeps desktop and mobile scrolling alive, faster, and complete. */
.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    max-width: none !important;
    min-width: max-content !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    animation-name: irlsSeamlessTitleMarquee !important;
    animation-duration: var(--irls-scroll-speed, 14s) !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-play-state: running !important;
    transform: translate3d(0, 0, 0);
    will-change: transform !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-main,
.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-clone {
    display: inline-block !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
    display: block !important;
    flex: 0 0 var(--irls-marquee-gap, 66px) !important;
    width: var(--irls-marquee-gap, 66px) !important;
    min-width: var(--irls-marquee-gap, 66px) !important;
}

@media (max-width: 700px) {
    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
        flex-basis: var(--irls-marquee-gap, 46px) !important;
        width: var(--irls-marquee-gap, 46px) !important;
        min-width: var(--irls-marquee-gap, 46px) !important;
    }
}


/* v1.0.2.21 title marquee repair
   Final override: only the metadata title scrolls, with a complete read on desktop and mobile. */
.ir-luna-style-player .irls-title-wrap {
    overflow: hidden !important;
    white-space: nowrap !important;
}

.ir-luna-style-player .irls-title {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    transform: translate3d(0, 0, 0);
    will-change: auto;
}

.ir-luna-style-player .irls-title .irls-marquee-main,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: inline-block !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    white-space: nowrap !important;
}

.ir-luna-style-player .irls-title .irls-marquee-gap,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: none !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
    width: max-content !important;
    max-width: none !important;
    min-width: max-content !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-right: 0 !important;
    animation: irlsTitleScrollV10221 var(--irls-scroll-speed, 13s) linear infinite !important;
    animation-play-state: running !important;
    will-change: transform !important;
    transform: translate3d(0, 0, 0);
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
    display: inline-block !important;
    flex: 0 0 var(--irls-marquee-gap, 96px) !important;
    width: var(--irls-marquee-gap, 96px) !important;
    min-width: var(--irls-marquee-gap, 96px) !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-clone {
    display: inline-block !important;
}

.ir-luna-style-player[data-scroll-title="0"] .irls-title.is-overflowing,
.ir-luna-style-player:not([data-scroll-title="1"]) .irls-title.is-overflowing,
.ir-luna-style-player .irls-title:not(.is-overflowing) {
    animation: none !important;
    transform: translate3d(0, 0, 0) !important;
}

@keyframes irlsTitleScrollV10221 {
    0%, 9% {
        transform: translate3d(0, 0, 0);
    }
    76%, 87% {
        transform: translate3d(calc(-1 * var(--irls-marquee-read-step, 0px)), 0, 0);
    }
    100% {
        transform: translate3d(calc(-1 * var(--irls-marquee-step, 0px)), 0, 0);
    }
}

@media (max-width: 700px) {
    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
        animation-name: irlsTitleScrollV10221 !important;
    }
}


/* v1.0.2.23 stable Now Playing title scroll
   One final override controls the title marquee on desktop and mobile. */
.ir-luna-style-player .irls-title-wrap {
    overflow: hidden !important;
    white-space: nowrap !important;
    position: relative !important;
    contain: paint !important;
}

.ir-luna-style-player .irls-title {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    padding-right: 0 !important;
    transform: translate3d(0,0,0) !important;
    backface-visibility: hidden !important;
    -webkit-font-smoothing: antialiased !important;
    will-change: auto !important;
}

.ir-luna-style-player .irls-title .irls-marquee-main,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: inline-block !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
}

.ir-luna-style-player .irls-title .irls-marquee-gap,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: none !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
    max-width: none !important;
    min-width: max-content !important;
    overflow: visible !important;
    text-overflow: clip !important;
    animation-name: irlsTitleScrollV10223 !important;
    animation-duration: var(--irls-scroll-speed, 11s) !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;
    animation-play-state: running !important;
    will-change: transform !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
    display: inline-block !important;
    flex: 0 0 var(--irls-marquee-gap, 56px) !important;
    width: var(--irls-marquee-gap, 56px) !important;
    min-width: var(--irls-marquee-gap, 56px) !important;
}

.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-clone {
    display: inline-block !important;
}

.ir-luna-style-player[data-scroll-title="0"] .irls-title,
.ir-luna-style-player:not([data-scroll-title="1"]) .irls-title,
.ir-luna-style-player .irls-title:not(.is-overflowing) {
    animation: none !important;
    transform: translate3d(0,0,0) !important;
}

@keyframes irlsTitleScrollV10223 {
    0%, 10% {
        transform: translate3d(0, 0, 0);
    }
    74%, 86% {
        transform: translate3d(calc(-1 * var(--irls-marquee-read-step, 0px)), 0, 0);
    }
    100% {
        transform: translate3d(calc(-1 * var(--irls-marquee-step, 0px)), 0, 0);
    }
}

@media (max-width: 700px) {
    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing {
        animation-name: irlsTitleScrollV10223 !important;
    }

    .ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing .irls-marquee-gap {
        flex-basis: var(--irls-marquee-gap, 42px) !important;
        width: var(--irls-marquee-gap, 42px) !important;
        min-width: var(--irls-marquee-gap, 42px) !important;
    }
}


/* v1.0.2.25 hard fix: JS-driven title scroll.
   This bypasses the older CSS keyframe marquee so desktop and mobile cannot get stuck. */
.ir-luna-style-player .irls-info {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
}

.ir-luna-style-player .irls-title-wrap {
    flex: 0 0 var(--irls-now-playing-width, 210px) !important;
    width: var(--irls-now-playing-width, 210px) !important;
    max-width: var(--irls-now-playing-width, 210px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    contain: paint !important;
}

.ir-luna-style-player .irls-title.is-js-scrolling,
.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-js-scrolling {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-right: 0 !important;
    animation: none !important;
    transform: translate3d(var(--irls-js-scroll-x, 0px), 0, 0) !important;
    opacity: var(--irls-js-title-opacity, 1) !important;
    will-change: transform, opacity !important;
}

.ir-luna-style-player .irls-title.is-js-scrolling .irls-marquee-main {
    display: inline-block !important;
    max-width: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
}

.ir-luna-style-player .irls-title.is-js-scrolling .irls-marquee-gap,
.ir-luna-style-player .irls-title.is-js-scrolling .irls-marquee-clone {
    display: none !important;
}

@media (max-width: 700px) {
    .ir-luna-style-player .irls-title-wrap {
        flex-basis: var(--irls-mobile-now-playing-width, min(34vw, 145px)) !important;
        width: var(--irls-mobile-now-playing-width, min(34vw, 145px)) !important;
        max-width: var(--irls-mobile-now-playing-width, min(34vw, 145px)) !important;
    }
}

/* v1.0.2.28 title scroll polish: JS scrolls the title fully out of view first, then fades it away before looping back in. */


/* v1.0.2.30 smoother title scroll finish: the title fades naturally through the
   clipped edges, scrolls fully off-screen, then returns cleanly from the start. */
.ir-luna-style-player .irls-title-wrap.is-js-title-scrolling {
    -webkit-mask-image: linear-gradient(90deg,
        transparent 0,
        #000 var(--irls-title-edge-fade, 18px),
        #000 calc(100% - var(--irls-title-edge-fade, 18px)),
        transparent 100%) !important;
    mask-image: linear-gradient(90deg,
        transparent 0,
        #000 var(--irls-title-edge-fade, 18px),
        #000 calc(100% - var(--irls-title-edge-fade, 18px)),
        transparent 100%) !important;
}

.ir-luna-style-player .irls-title.is-js-scrolling,
.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-js-scrolling {
    transition: none !important;
    animation: none !important;
    transform: translate3d(var(--irls-js-scroll-x, 0px), 0, 0) !important;
    opacity: var(--irls-js-title-opacity, 1) !important;
}

@media (max-width: 700px) {
    .ir-luna-style-player .irls-title-wrap.is-js-title-scrolling {
        -webkit-mask-image: linear-gradient(90deg,
            transparent 0,
            #000 var(--irls-title-edge-fade, 14px),
            #000 calc(100% - var(--irls-title-edge-fade, 14px)),
            transparent 100%) !important;
        mask-image: linear-gradient(90deg,
            transparent 0,
            #000 var(--irls-title-edge-fade, 14px),
            #000 calc(100% - var(--irls-title-edge-fade, 14px)),
            transparent 100%) !important;
    }
}


/* v1.0.2.31 no-duplicate title scroll fix.
   The scrolling title is now one single span only. These overrides also hide any
   old clone/gap nodes that a cached page or older markup may still have. */
.ir-luna-style-player .irls-title .irls-marquee-gap,
.ir-luna-style-player .irls-title .irls-marquee-clone {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    flex: 0 0 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

.ir-luna-style-player .irls-title,
.ir-luna-style-player[data-scroll-title="1"] .irls-title,
.ir-luna-style-player[data-scroll-title="1"] .irls-title.is-overflowing,
.ir-luna-style-player .irls-title.is-js-scrolling {
    animation: none !important;
}

.ir-luna-style-player .irls-title.is-js-scrolling {
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    transform: translate3d(var(--irls-js-scroll-x, 0px), 0, 0) !important;
    opacity: var(--irls-js-title-opacity, 1) !important;
    will-change: transform, opacity !important;
}

.ir-luna-style-player .irls-title .irls-marquee-main {
    display: inline-block !important;
    max-width: none !important;
    white-space: nowrap !important;
    overflow: visible !important;
}


/* v1.0.2.32 artifact fix: remove the edge-mask fade that dimmed the first/last visible letters.
   Keep the JS opacity fade only, so the text stays crisp across the full title lane. */
.ir-luna-style-player .irls-title-wrap.is-js-title-scrolling {
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

@media (max-width: 700px) {
    .ir-luna-style-player .irls-title-wrap.is-js-title-scrolling {
        -webkit-mask-image: none !important;
        mask-image: none !important;
    }
}


/* v1.0.2.33 mobile-only controls polish:
   hide the volume slider on phones and use that space for the Auto DJ / Live DJ badge.
   Desktop/tablet-over-phone width keeps the existing volume control. */
@media (max-width: 760px) {
    .ir-luna-style-player .irls-volume-shell {
        display: none !important;
        width: 0 !important;
        min-width: 0 !important;
        flex: 0 0 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .ir-luna-style-player .irls-right {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        width: auto !important;
        min-width: 78px !important;
        flex: 0 0 auto !important;
        gap: 0 !important;
        padding: 0 2px 0 0 !important;
        background: transparent !important;
        border-left: 0 !important;
    }

    .ir-luna-style-player .irls-live {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 74px !important;
        height: 26px !important;
        padding: 0 9px !important;
        font-size: 9px !important;
        letter-spacing: .075em !important;
        white-space: nowrap !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player .irls-right {
        min-width: 70px !important;
        padding-right: 0 !important;
    }

    .ir-luna-style-player .irls-live {
        min-width: 68px !important;
        height: 24px !important;
        padding: 0 7px !important;
        font-size: 8.4px !important;
        letter-spacing: .055em !important;
    }
}


/* v1.0.2.35 mobile title alignment:
   line the first letter of the Now Playing title up with the first LCD EQ lights. */
@media (max-width: 760px) {
    .ir-luna-style-player {
        --irls-mobile-title-align-offset: 16px;
    }

    .ir-luna-style-player .irls-title-wrap {
        padding-left: var(--irls-mobile-title-align-offset) !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-align-offset: 15px;
    }
}


/* v1.0.2.36 mobile title lane/wrap fix:
   Wider mobile Now Playing lane, and the title starts at the first LCD light while
   the clipped left edge stays at the L/R letters. */
@media (max-width: 760px) {
    .ir-luna-style-player {
        --irls-mobile-now-playing-width: min(44vw, 172px) !important;
        --irls-mobile-title-align-offset: 16px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        flex-basis: var(--irls-mobile-now-playing-width) !important;
        width: var(--irls-mobile-now-playing-width) !important;
        max-width: var(--irls-mobile-now-playing-width) !important;
        padding-left: var(--irls-mobile-title-align-offset) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-now-playing-width: min(42vw, 160px) !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-now-playing-width: min(40vw, 145px) !important;
        --irls-mobile-title-align-offset: 15px !important;
    }
}


/* v1.0.2.37 mobile scroll stop tweak:
   pull the mobile title lane and its final scroll stop slightly right, so the
   moving title never travels left past the white L/R channel labels. */
@media (max-width: 760px) {
    .ir-luna-style-player {
        --irls-mobile-title-align-offset: 18px !important;
        --irls-mobile-title-stop-inset: 10px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        padding-left: var(--irls-mobile-title-align-offset) !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-align-offset: 17px !important;
        --irls-mobile-title-stop-inset: 9px !important;
    }
}


/* v1.0.2.38 mobile-only final alignment:
   move the whole scrolling title lane one more letter to the right and stop the
   scrolling text at the L/R label line instead of letting it travel further left. */
@media (max-width: 760px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 7px !important;
        --irls-mobile-title-align-offset: 20px !important;
        --irls-mobile-title-stop-inset: 18px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
        padding-left: var(--irls-mobile-title-align-offset) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 7px !important;
        --irls-mobile-title-align-offset: 19px !important;
        --irls-mobile-title-stop-inset: 17px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 6px !important;
        --irls-mobile-title-align-offset: 18px !important;
        --irls-mobile-title-stop-inset: 16px !important;
    }
}


/* v1.0.2.39 mobile-only: move the actual scrolling title container one letter-space further right.
   This shifts the clipped title lane itself, so the scroll edge lines up with the L/R labels. */
@media (max-width: 760px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 13px !important;
        --irls-mobile-title-align-offset: 20px !important;
        --irls-mobile-title-stop-inset: 18px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
        padding-left: var(--irls-mobile-title-align-offset) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 13px !important;
        --irls-mobile-title-align-offset: 19px !important;
        --irls-mobile-title-stop-inset: 17px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 12px !important;
        --irls-mobile-title-align-offset: 18px !important;
        --irls-mobile-title-stop-inset: 16px !important;
    }
}


/* v1.0.2.40 mobile phone only:
   move the actual scrolling Now Playing title container one letter-space to the right.
   Desktop remains untouched. */
@media (max-width: 700px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 21px !important;
        --irls-mobile-title-align-offset: 20px !important;
        --irls-mobile-title-stop-inset: 18px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
        padding-left: var(--irls-mobile-title-align-offset) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 21px !important;
        --irls-mobile-title-align-offset: 19px !important;
        --irls-mobile-title-stop-inset: 17px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 20px !important;
        --irls-mobile-title-align-offset: 18px !important;
        --irls-mobile-title-stop-inset: 16px !important;
    }
}

/* v1.0.2.42 mobile-only: move the Now Playing scrolling text container slightly left.
   Desktop remains untouched. */
@media (max-width: 700px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 16px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 16px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 15px !important;
    }
}


/* v1.0.2.43 mobile-only: move the scrolling Now Playing container nearer to the play button,
   and keep the mobile L/R + LCD EQ start pulled left with it. Desktop is untouched. */
@media (max-width: 700px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 8px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 8px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 7px !important;
    }
}

/* v1.0.2.44: desktop LCD row drop is handled in JavaScript; mobile CSS remains untouched. */


/* v1.0.2.47 mobile-only: move the scrolling Now Playing container a little left so
   the title lines up better with the first LCD dots of the L/R rows. Desktop unchanged. */
@media (max-width: 700px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 4px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 4px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 3px !important;
    }
}


/* v1.0.2.48 mobile-only: move the scrolling Now Playing container a little further left so
   the title lines up with the first LCD dots of the L/R rows. Desktop unchanged. */
@media (max-width: 700px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 2px !important;
    }

    .ir-luna-style-player .irls-title-wrap {
        margin-left: var(--irls-mobile-title-lane-shift) !important;
    }
}

@media (max-width: 420px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 2px !important;
    }
}

@media (max-width: 360px) {
    .ir-luna-style-player {
        --irls-mobile-title-lane-shift: 1px !important;
    }
}


/* v1.0.2.49 full-width black/gold/orange gloss colour match.
   Keeps the existing player layout, VU/LCD EQ and controls; this is only a colour/material polish layer. */
.ir-luna-style-player {
    --irls-color: #fff4cf !important;
    --irls-highlight: #ffc928 !important;
    --irls-c1: #ffc928 !important;
    --irls-c2: #ff9d2e !important;
    --irls-c3: #ff3030 !important;
    --irls-c4: #a60012 !important;
    --irls-viz-opacity: .98 !important;

    width: 100% !important;
    max-width: 100% !important;
    color: #fff4cf !important;
    background:
        radial-gradient(circle at 8% 35%, rgba(255,201,40,.25), transparent 27%),
        radial-gradient(circle at 74% 55%, rgba(255,48,48,.18), transparent 31%),
        linear-gradient(180deg, rgba(255,255,255,.105) 0%, rgba(255,201,40,.055) 11%, rgba(4,4,4,.66) 45%, rgba(0,0,0,.96) 100%),
        linear-gradient(90deg, #020202 0%, #160202 44%, #070000 72%, #010101 100%) !important;
    border-top: 1px solid rgba(255,201,40,.58) !important;
    box-shadow:
        0 -12px 36px rgba(0,0,0,.82),
        0 0 26px rgba(255,201,40,.15),
        0 0 32px rgba(255,48,48,.14),
        inset 0 1px 0 rgba(255,255,255,.22),
        inset 0 2px 14px rgba(255,255,255,.035),
        inset 0 -1px 0 rgba(255,48,48,.30),
        inset 0 -15px 24px rgba(0,0,0,.60) !important;
    backdrop-filter: blur(12px) saturate(1.25);
    -webkit-backdrop-filter: blur(12px) saturate(1.25);
}

.ir-luna-style-player.irls-sticky-footer {
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    border-radius: 18px 18px 0 0 !important;
    background:
        radial-gradient(circle at 7% 10%, rgba(255,201,40,.26), transparent 29%),
        radial-gradient(circle at 79% 52%, rgba(255,48,48,.18), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,201,40,.075) 12%, rgba(4,4,4,.70) 48%, rgba(0,0,0,.98) 100%),
        linear-gradient(90deg, #020202 0%, #180202 44%, #070000 72%, #010101 100%) !important;
    border-top: 1px solid rgba(255,201,40,.62) !important;
    box-shadow:
        0 -14px 38px rgba(0,0,0,.84),
        0 0 30px rgba(255,201,40,.16),
        0 0 34px rgba(255,48,48,.14),
        inset 0 1px 0 rgba(255,255,255,.24),
        inset 0 2px 16px rgba(255,255,255,.035),
        inset 0 -1px 0 rgba(255,48,48,.34),
        inset 0 -16px 24px rgba(0,0,0,.66) !important;
}

.ir-luna-style-player:before {
    background:
        linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.035) 15%, transparent 43%),
        linear-gradient(90deg, transparent 0%, rgba(255,201,40,.12) 18%, transparent 34%, rgba(255,48,48,.10) 76%, transparent 100%) !important;
    opacity: .58 !important;
}

.ir-luna-style-player:after,
.ir-luna-style-player.irls-sticky-footer:after {
    height: 2px !important;
    background: linear-gradient(90deg, transparent 0%, #ffc928 18%, #ff9d2e 44%, #ff3030 72%, #a60012 86%, transparent 100%) !important;
    opacity: .96 !important;
    filter: drop-shadow(0 0 8px rgba(255,201,40,.48)) drop-shadow(0 0 11px rgba(255,48,48,.32)) !important;
}

.ir-luna-style-player .irls-glow {
    opacity: .18 !important;
    background:
        radial-gradient(circle at 15% 42%, rgba(255,201,40,.38), transparent 18%),
        radial-gradient(circle at 58% 54%, rgba(255,157,46,.20), transparent 28%),
        radial-gradient(circle at 87% 50%, rgba(255,48,48,.30), transparent 22%) !important;
    filter: blur(14px) !important;
}

.ir-luna-style-player .irls-canvas {
    filter: drop-shadow(0 0 6px rgba(255,201,40,.28)) drop-shadow(0 0 9px rgba(255,48,48,.18));
}

.ir-luna-style-player.is-playing.is-real-viz .irls-canvas {
    opacity: min(var(--irls-viz-opacity), .98) !important;
}

.ir-luna-style-player .irls-play {
    background:
        linear-gradient(145deg, rgba(255,255,255,.34) 0%, rgba(255,201,40,.16) 22%, rgba(255,255,255,0) 30%),
        radial-gradient(circle at 35% 24%, rgba(255,255,255,.58), rgba(255,201,40,.20) 24%, transparent 36%),
        radial-gradient(circle at 50% 60%, rgba(255,48,48,.38), rgba(0,0,0,0) 56%),
        linear-gradient(180deg, #2c0c05 0%, #100303 58%, #020000 100%) !important;
    border-color: rgba(255,201,40,.76) !important;
    box-shadow:
        0 0 25px rgba(255,201,40,.38),
        0 0 20px rgba(255,48,48,.16),
        0 8px 20px rgba(0,0,0,.58),
        inset 0 1px 0 rgba(255,255,255,.42),
        inset 0 -13px 20px rgba(0,0,0,.72),
        inset 0 0 0 1px rgba(255,255,255,.07) !important;
}

.ir-luna-style-player .irls-play:hover {
    filter: brightness(1.08) saturate(1.08) !important;
    border-color: rgba(255,157,46,.96) !important;
    box-shadow:
        0 0 30px rgba(255,201,40,.46),
        0 0 26px rgba(255,48,48,.24),
        0 10px 24px rgba(0,0,0,.62),
        inset 0 1px 0 rgba(255,255,255,.43),
        inset 0 -13px 20px rgba(0,0,0,.72),
        inset 0 0 0 1px rgba(255,201,40,.10) !important;
}

.ir-luna-style-player.is-playing .irls-play {
    border-color: rgba(255,216,106,.90) !important;
    box-shadow:
        0 0 30px rgba(255,201,40,.48),
        0 0 24px rgba(255,48,48,.22),
        0 8px 20px rgba(0,0,0,.60),
        inset 0 1px 0 rgba(255,255,255,.42),
        inset 0 -13px 20px rgba(0,0,0,.72),
        inset 0 0 0 1px rgba(255,216,106,.12) !important;
}

.ir-luna-style-player .irls-play-icon,
.ir-luna-style-player.is-playing .irls-play-icon {
    filter: drop-shadow(0 0 9px rgba(255,201,40,.95)) drop-shadow(0 0 11px rgba(255,48,48,.42)) !important;
}

.ir-luna-style-player .irls-info {
    text-shadow: 0 1px 5px rgba(0,0,0,.90), 0 0 10px rgba(255,201,40,.10) !important;
}

.ir-luna-style-player .irls-station {
    color: transparent !important;
    background: linear-gradient(90deg, #fff8d6 0%, #ffc928 32%, #ff9d2e 66%, #ff3030 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    filter: drop-shadow(0 0 9px rgba(255,201,40,.34)) drop-shadow(0 0 7px rgba(255,48,48,.16)) !important;
}

.ir-luna-style-player .irls-title-wrap {
    color: #fff4cf !important;
    text-shadow: 0 1px 5px rgba(0,0,0,.90), 0 0 7px rgba(255,201,40,.14) !important;
}

.ir-luna-style-player .irls-title {
    color: #fff4cf !important;
}

.ir-luna-style-player .irls-right {
    border-left-color: rgba(255,201,40,.20) !important;
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.48) 38%, rgba(255,48,48,.08) 100%) !important;
    box-shadow: inset 1px 0 0 rgba(255,255,255,.055) !important;
}

.ir-luna-style-player .irls-live {
    color: #ffe9a8 !important;
    border-color: rgba(255,201,40,.32) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,201,40,.08) 36%, rgba(0,0,0,.58)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.18),
        0 0 14px rgba(255,201,40,.12),
        0 0 18px rgba(255,48,48,.10) !important;
}

.ir-luna-style-player .irls-live span {
    background: #ffc928 !important;
    box-shadow: 0 0 10px rgba(255,201,40,.72), 0 0 12px rgba(255,48,48,.22) !important;
}

.ir-luna-style-player .irls-live.is-live {
    color: #fff4cf !important;
    border-color: rgba(255,48,48,.66) !important;
    background: linear-gradient(180deg, rgba(255,48,48,.30), rgba(0,0,0,.58)) !important;
    box-shadow: 0 0 16px rgba(255,48,48,.26), inset 0 1px 0 rgba(255,255,255,.13) !important;
}

.ir-luna-style-player .irls-volume-shell {
    border-color: rgba(255,201,40,.30) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.12), rgba(0,0,0,.58)),
        linear-gradient(90deg, rgba(255,201,40,.16), rgba(255,157,46,.12), rgba(255,48,48,.13)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.14),
        0 0 14px rgba(255,201,40,.10),
        0 0 14px rgba(255,48,48,.08) !important;
}

.ir-luna-style-player .irls-volume::-moz-range-track,
.ir-luna-style-player .irls-volume::-webkit-slider-runnable-track {
    background:
        linear-gradient(90deg, #ffc928, #ff9d2e 58%, #ff3030 100%) 0/var(--irls-volume-level) 100% no-repeat,
        linear-gradient(90deg, rgba(255,255,255,.12), rgba(255,255,255,.05)) !important;
}

.ir-luna-style-player .irls-volume::-moz-range-progress {
    background: linear-gradient(90deg, #ffc928, #ff9d2e 58%, #ff3030 100%) !important;
}

.ir-luna-style-player .irls-volume::-moz-range-thumb,
.ir-luna-style-player .irls-volume::-webkit-slider-thumb {
    box-shadow: 0 0 13px rgba(255,201,40,.70), 0 0 9px rgba(255,48,48,.18), 0 1px 4px rgba(0,0,0,.70) !important;
}

@media (max-width: 700px) {
    .ir-luna-style-player.irls-sticky-footer {
        width: 100vw !important;
        max-width: 100vw !important;
        border-radius: 15px 15px 0 0 !important;
    }
}

/* v1.0.2.50 EQ colour ramp handled in JavaScript: dark green -> light green -> dark yellow -> bright yellow -> red peak. */


/* v1.0.2.51 shiny black + red speckle material layer.
   Keeps the same player structure and controls, but changes the shell/background finish
   to a glossy black panel with red paint-splash speckles like the approved preview. */
.ir-luna-style-player {
    background:
        radial-gradient(130% 220% at 50% -68%, rgba(255,255,255,.26) 0%, rgba(255,255,255,.10) 15%, rgba(255,255,255,0) 36%),
        linear-gradient(180deg, rgba(255,255,255,.13) 0%, rgba(255,255,255,.06) 8%, rgba(255,255,255,0) 18%, rgba(0,0,0,.14) 22%, rgba(0,0,0,.76) 58%, rgba(0,0,0,.97) 100%),
        radial-gradient(circle at 15% 82%, rgba(255,20,20,.92) 0 .16%, transparent .72%),
        radial-gradient(circle at 17% 86%, rgba(255,40,20,.88) 0 .11%, transparent .56%),
        radial-gradient(circle at 18.2% 90%, rgba(255,18,18,.90) 0 .12%, transparent .58%),
        radial-gradient(circle at 35% 22%, rgba(255,40,20,.52) 0 .18%, transparent .9%),
        radial-gradient(circle at 37% 24.5%, rgba(255,18,18,.84) 0 .10%, transparent .55%),
        radial-gradient(circle at 38.2% 27%, rgba(255,74,34,.78) 0 .08%, transparent .42%),
        radial-gradient(circle at 73% 26%, rgba(255,45,28,.58) 0 .14%, transparent .7%),
        radial-gradient(circle at 74.4% 24%, rgba(255,20,20,.84) 0 .09%, transparent .46%),
        radial-gradient(circle at 83% 80%, rgba(255,25,25,.70) 0 .15%, transparent .72%),
        radial-gradient(circle at 85.5% 83.5%, rgba(255,66,33,.92) 0 .14%, transparent .68%),
        radial-gradient(circle at 89.4% 86%, rgba(255,20,20,.88) 0 .18%, transparent .8%),
        radial-gradient(circle at 91% 79%, rgba(255,50,26,.78) 0 .10%, transparent .45%),
        radial-gradient(circle at 96.8% 87%, rgba(255,18,18,.95) 0 .17%, transparent .82%),
        radial-gradient(circle at 96% 49%, rgba(145,0,0,.28), transparent 16%),
        radial-gradient(circle at 3% 50%, rgba(255,201,40,.14), transparent 15%),
        linear-gradient(90deg, #060606 0%, #050505 25%, #080505 52%, #130303 78%, #070707 100%) !important;
    box-shadow:
        0 -12px 36px rgba(0,0,0,.84),
        0 0 26px rgba(255,201,40,.12),
        0 0 30px rgba(255,48,48,.16),
        inset 0 1px 0 rgba(255,255,255,.24),
        inset 0 10px 22px rgba(255,255,255,.03),
        inset 0 -1px 0 rgba(255,48,48,.34),
        inset 0 -16px 28px rgba(0,0,0,.72) !important;
}

.ir-luna-style-player.irls-sticky-footer {
    background:
        radial-gradient(130% 220% at 50% -68%, rgba(255,255,255,.26) 0%, rgba(255,255,255,.10) 15%, rgba(255,255,255,0) 36%),
        linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.06) 8%, rgba(255,255,255,0) 18%, rgba(0,0,0,.16) 22%, rgba(0,0,0,.80) 58%, rgba(0,0,0,.985) 100%),
        radial-gradient(circle at 15% 82%, rgba(255,20,20,.92) 0 .16%, transparent .72%),
        radial-gradient(circle at 17% 86%, rgba(255,40,20,.88) 0 .11%, transparent .56%),
        radial-gradient(circle at 18.2% 90%, rgba(255,18,18,.90) 0 .12%, transparent .58%),
        radial-gradient(circle at 35% 22%, rgba(255,40,20,.52) 0 .18%, transparent .9%),
        radial-gradient(circle at 37% 24.5%, rgba(255,18,18,.84) 0 .10%, transparent .55%),
        radial-gradient(circle at 38.2% 27%, rgba(255,74,34,.78) 0 .08%, transparent .42%),
        radial-gradient(circle at 73% 26%, rgba(255,45,28,.58) 0 .14%, transparent .7%),
        radial-gradient(circle at 74.4% 24%, rgba(255,20,20,.84) 0 .09%, transparent .46%),
        radial-gradient(circle at 83% 80%, rgba(255,25,25,.70) 0 .15%, transparent .72%),
        radial-gradient(circle at 85.5% 83.5%, rgba(255,66,33,.92) 0 .14%, transparent .68%),
        radial-gradient(circle at 89.4% 86%, rgba(255,20,20,.88) 0 .18%, transparent .8%),
        radial-gradient(circle at 91% 79%, rgba(255,50,26,.78) 0 .10%, transparent .45%),
        radial-gradient(circle at 96.8% 87%, rgba(255,18,18,.95) 0 .17%, transparent .82%),
        radial-gradient(circle at 96% 49%, rgba(145,0,0,.30), transparent 16%),
        radial-gradient(circle at 3% 50%, rgba(255,201,40,.16), transparent 15%),
        linear-gradient(90deg, #060606 0%, #050505 25%, #080505 52%, #130303 78%, #070707 100%) !important;
    box-shadow:
        0 -14px 38px rgba(0,0,0,.86),
        0 0 28px rgba(255,201,40,.12),
        0 0 34px rgba(255,48,48,.16),
        inset 0 1px 0 rgba(255,255,255,.26),
        inset 0 10px 24px rgba(255,255,255,.03),
        inset 0 -1px 0 rgba(255,48,48,.36),
        inset 0 -17px 30px rgba(0,0,0,.74) !important;
}

.ir-luna-style-player:before {
    background:
        linear-gradient(180deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,.09) 9%, rgba(255,255,255,.03) 16%, transparent 34%),
        linear-gradient(90deg, transparent 0%, rgba(255,201,40,.10) 16%, transparent 30%, rgba(255,255,255,.045) 49%, transparent 62%, rgba(255,48,48,.09) 78%, transparent 100%) !important;
    opacity: .68 !important;
}

.ir-luna-style-player .irls-glow {
    opacity: .15 !important;
    background:
        radial-gradient(circle at 14% 42%, rgba(255,201,40,.22), transparent 18%),
        radial-gradient(circle at 62% 52%, rgba(255,48,48,.10), transparent 20%),
        radial-gradient(circle at 88% 48%, rgba(255,48,48,.22), transparent 18%) !important;
    filter: blur(12px) !important;
}

.ir-luna-style-player .irls-right {
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.42) 32%, rgba(255,48,48,.06) 100%) !important;
}


/* v1.0.2.52 refine shell to match approved reference more closely:
   deeper glossy black, subtle white sheen, neutral dark body, and stronger red paint splashes/speckles. */
.ir-luna-style-player,
.ir-luna-style-player.irls-sticky-footer {
    background:
        radial-gradient(44% 170% at 68% -24%, rgba(255,255,255,.16) 0%, rgba(255,255,255,.06) 16%, rgba(255,255,255,0) 38%),
        radial-gradient(16% 120% at 84% 14%, rgba(255,255,255,.18) 0%, rgba(255,255,255,.07) 18%, rgba(255,255,255,0) 46%),
        linear-gradient(180deg, rgba(255,255,255,.13) 0%, rgba(255,255,255,.055) 8%, rgba(255,255,255,.02) 11%, rgba(255,255,255,0) 19%, rgba(0,0,0,.12) 24%, rgba(0,0,0,.66) 58%, rgba(0,0,0,.96) 100%),
        radial-gradient(circle at 12% 82%, rgba(255,22,22,.95) 0 .18%, transparent .85%),
        radial-gradient(circle at 13.4% 86%, rgba(255,70,36,.90) 0 .14%, transparent .62%),
        radial-gradient(circle at 14.8% 88%, rgba(255,18,18,.88) 0 .12%, transparent .58%),
        radial-gradient(circle at 10.8% 90%, rgba(255,40,25,.72) 0 .14%, transparent .66%),
        radial-gradient(circle at 12.8% 33%, rgba(255,34,24,.58) 0 .10%, transparent .48%),
        radial-gradient(circle at 37% 22%, rgba(255,32,24,.68) 0 .12%, transparent .56%),
        radial-gradient(circle at 38.2% 20%, rgba(255,86,44,.78) 0 .10%, transparent .46%),
        radial-gradient(circle at 39.2% 26%, rgba(255,18,18,.68) 0 .08%, transparent .42%),
        radial-gradient(circle at 66.4% 19%, rgba(255,255,255,.12) 0 .15%, transparent .88%),
        radial-gradient(circle at 74.2% 26%, rgba(255,26,24,.68) 0 .10%, transparent .5%),
        radial-gradient(circle at 76% 24%, rgba(255,84,42,.74) 0 .08%, transparent .42%),
        radial-gradient(circle at 87.2% 22%, rgba(255,26,24,.82) 0 .11%, transparent .52%),
        radial-gradient(circle at 88.8% 84%, rgba(255,28,24,.86) 0 .14%, transparent .7%),
        radial-gradient(circle at 90% 81%, rgba(255,78,42,.92) 0 .15%, transparent .72%),
        radial-gradient(circle at 91.5% 86%, rgba(255,18,18,.88) 0 .16%, transparent .82%),
        radial-gradient(circle at 95.2% 87%, rgba(255,18,18,.96) 0 .18%, transparent .9%),
        radial-gradient(circle at 97% 46%, rgba(118,0,0,.24), transparent 12%),
        radial-gradient(circle at 2.2% 50%, rgba(255,201,40,.13), transparent 12%),
        linear-gradient(90deg, #040404 0%, #050505 20%, #060606 48%, #070707 68%, #100303 85%, #050505 100%) !important;
    box-shadow:
        0 -12px 36px rgba(0,0,0,.84),
        0 0 24px rgba(255,201,40,.10),
        0 0 26px rgba(255,48,48,.14),
        inset 0 1px 0 rgba(255,255,255,.26),
        inset 0 10px 18px rgba(255,255,255,.025),
        inset 0 -1px 0 rgba(255,48,48,.34),
        inset 0 -18px 28px rgba(0,0,0,.76) !important;
}

.ir-luna-style-player:before {
    background:
        linear-gradient(180deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.10) 6%, rgba(255,255,255,.025) 13%, rgba(255,255,255,0) 25%),
        radial-gradient(40% 110% at 69% -4%, rgba(255,255,255,.13), rgba(255,255,255,0) 44%),
        radial-gradient(14% 90% at 84% 11%, rgba(255,255,255,.14), rgba(255,255,255,0) 45%),
        linear-gradient(90deg, transparent 0%, rgba(255,201,40,.08) 14%, transparent 28%, rgba(255,255,255,.04) 54%, transparent 66%, rgba(255,48,48,.08) 84%, transparent 100%) !important;
    opacity: .78 !important;
}

.ir-luna-style-player .irls-glow {
    opacity: .11 !important;
    background:
        radial-gradient(circle at 14% 82%, rgba(255,34,24,.18), transparent 11%),
        radial-gradient(circle at 38% 22%, rgba(255,48,32,.12), transparent 10%),
        radial-gradient(circle at 74% 26%, rgba(255,48,32,.10), transparent 9%),
        radial-gradient(circle at 90% 83%, rgba(255,38,26,.18), transparent 12%),
        radial-gradient(circle at 96% 50%, rgba(255,48,48,.16), transparent 14%) !important;
    filter: blur(9px) !important;
}

.ir-luna-style-player .irls-right {
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.34) 28%, rgba(255,255,255,.02) 64%, rgba(255,48,48,.04) 100%) !important;
}


/* v1.0.2.54 always-visible idle LCD VU.
   The canvas stays visible so the L/R labels and first two dots show before playback.
   When real analyser audio arrives the existing live VU animation takes over. */
.ir-luna-style-player .irls-canvas,
.ir-luna-style-player:not(.is-playing) .irls-canvas,
.ir-luna-style-player.is-no-real-viz .irls-canvas,
.ir-luna-style-player.is-playing.is-no-real-viz .irls-canvas {
    opacity: min(var(--irls-viz-opacity), .98) !important;
}

.ir-luna-style-player.is-playing.is-real-viz .irls-canvas {
    opacity: min(var(--irls-viz-opacity), .98) !important;
}


/* v1.0.2.55 always-visible dull LCD tray.
   The JS draws the full dimmed EQ dot rows and L/R labels on load, then overlays bright live cells during playback. */
.ir-luna-style-player .irls-canvas,
.ir-luna-style-player:not(.is-playing) .irls-canvas,
.ir-luna-style-player.is-no-real-viz .irls-canvas,
.ir-luna-style-player.is-playing.is-no-real-viz .irls-canvas,
.ir-luna-style-player.is-playing.is-real-viz .irls-canvas {
    opacity: min(var(--irls-viz-opacity), .98) !important;
}


/* v1.0.2.61 cleaner tightened gloss shell.
   Removes the red dotted paint speckles and replaces them with a smooth, shiny black lacquer finish. */
.ir-luna-style-player,
.ir-luna-style-player.irls-sticky-footer {
    background:
        radial-gradient(95% 260% at 50% -115%, rgba(255,255,255,.25) 0%, rgba(255,255,255,.12) 10%, rgba(255,255,255,.045) 19%, rgba(255,255,255,0) 39%),
        linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.075) 8%, rgba(255,255,255,.018) 17%, rgba(0,0,0,.30) 36%, rgba(0,0,0,.82) 70%, rgba(0,0,0,.98) 100%),
        radial-gradient(90% 130% at 89% 50%, rgba(85,0,0,.20), rgba(0,0,0,0) 42%),
        radial-gradient(42% 170% at 6% 52%, rgba(255,201,40,.11), rgba(0,0,0,0) 38%),
        linear-gradient(90deg, #050505 0%, #070707 25%, #060606 52%, #0d0303 82%, #050505 100%) !important;
    box-shadow:
        0 -13px 34px rgba(0,0,0,.86),
        0 0 21px rgba(255,201,40,.105),
        0 0 20px rgba(255,48,48,.085),
        inset 0 1px 0 rgba(255,255,255,.27),
        inset 0 9px 18px rgba(255,255,255,.032),
        inset 0 -1px 0 rgba(255,48,48,.28),
        inset 0 -18px 28px rgba(0,0,0,.76) !important;
}

.ir-luna-style-player:before {
    background:
        linear-gradient(180deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.12) 6%, rgba(255,255,255,.04) 14%, transparent 29%),
        linear-gradient(90deg, transparent 0%, rgba(255,201,40,.105) 15%, transparent 29%, rgba(255,255,255,.045) 54%, transparent 68%, rgba(255,48,48,.07) 88%, transparent 100%) !important;
    opacity: .76 !important;
}

.ir-luna-style-player .irls-glow {
    opacity: .105 !important;
    background:
        radial-gradient(circle at 10% 50%, rgba(255,201,40,.20), transparent 15%),
        radial-gradient(circle at 92% 50%, rgba(255,48,48,.13), transparent 16%) !important;
    filter: blur(11px) !important;
}

.ir-luna-style-player .irls-right {
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.36) 32%, rgba(255,255,255,.018) 68%, rgba(255,48,48,.04) 100%) !important;
}


/* v1.0.2.63 background tone shift.
   Push the shell away from gold and further into glossy black + red neon while keeping the same layout. */
.ir-luna-style-player,
.ir-luna-style-player.irls-sticky-footer {
    background:
        radial-gradient(105% 260% at 50% -118%, rgba(255,255,255,.24) 0%, rgba(255,255,255,.11) 10%, rgba(255,255,255,.03) 19%, rgba(255,255,255,0) 38%),
        linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(255,255,255,.06) 8%, rgba(255,255,255,.015) 16%, rgba(20,0,0,.28) 34%, rgba(0,0,0,.84) 69%, rgba(0,0,0,.985) 100%),
        radial-gradient(120% 140% at 90% 50%, rgba(165,0,0,.26), rgba(0,0,0,0) 42%),
        radial-gradient(64% 120% at 78% 52%, rgba(255,34,34,.11), rgba(0,0,0,0) 44%),
        radial-gradient(42% 160% at 8% 52%, rgba(170,10,10,.10), rgba(0,0,0,0) 36%),
        linear-gradient(90deg, #030303 0%, #050505 18%, #040404 42%, #130202 74%, #220303 88%, #060606 100%) !important;
    box-shadow:
        0 -13px 34px rgba(0,0,0,.88),
        0 0 16px rgba(255,110,110,.10),
        0 0 22px rgba(255,32,32,.12),
        inset 0 1px 0 rgba(255,255,255,.25),
        inset 0 8px 16px rgba(255,255,255,.025),
        inset 0 -1px 0 rgba(255,56,56,.34),
        inset 0 -18px 30px rgba(0,0,0,.78) !important;
}

.ir-luna-style-player:before {
    background:
        linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,.10) 6%, rgba(255,255,255,.03) 14%, transparent 28%),
        linear-gradient(90deg, transparent 0%, rgba(255,70,70,.06) 14%, transparent 27%, rgba(255,255,255,.04) 52%, transparent 66%, rgba(255,48,48,.11) 88%, transparent 100%) !important;
    opacity: .78 !important;
}

.ir-luna-style-player .irls-glow {
    opacity: .13 !important;
    background:
        radial-gradient(circle at 9% 50%, rgba(255,40,40,.12), transparent 15%),
        radial-gradient(circle at 70% 52%, rgba(255,32,32,.08), transparent 18%),
        radial-gradient(circle at 92% 50%, rgba(255,48,48,.24), transparent 16%) !important;
    filter: blur(12px) !important;
}

.ir-luna-style-player .irls-right {
    background:
        linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.38) 28%, rgba(255,255,255,.014) 66%, rgba(255,48,48,.08) 100%) !important;
}
