/* V5.0.270 lane split: expanded Spotify iframe, corner seal, and proxy guards. */

/* V5.0.241 — Mobile Spotify player expansion / artwork square removal.
   Spotify-approved mobile listen embeds now sit directly in the deck instead of inside the 1:1 artwork square.
   This removes the selected .bhk-v5-mobilePlayer__art.has-spotify-artwork-player object and gives the Spotify iframe full mobile console width. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--v5-line-strong) 58%, transparent);
    background:
      linear-gradient(180deg, color-mix(in srgb, var(--v5-proof) 7%, transparent), transparent 42%),
      color-mix(in srgb, var(--v5-page) 86%, #000 14%);
    box-shadow:
      inset 0 1px 0 color-mix(in srgb, var(--v5-proof) 8%, transparent),
      0 18px 42px color-mix(in srgb, var(--v5-shadow) 74%, transparent);
    overflow: visible;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    width: 100%;
    margin: 0;
    padding: 12px;
    border: 0;
    background:
      linear-gradient(180deg, color-mix(in srgb, var(--v5-proof) 7%, transparent), transparent 48%),
      color-mix(in srgb, var(--v5-page) 88%, #000 12%);
    box-shadow: none;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkMeta {
    margin-bottom: 8px;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkMeta span {
    min-width: 64px;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkMeta strong {
    font-size: 13px;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    width: 100%;
    height: 176px;
    max-height: 176px;
  }

  html[data-bhk-v5-mode="default-white"] .bhk-v5-mobilePlayer__deck--spotifyExpanded,
  html[data-bhk-v5-mode="default-white"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    background: #ffffff;
    border-color: #ffffff;
    box-shadow: none;
  }
}

@media (max-width: 360px) {
  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    height: 164px;
    max-height: 164px;
  }
}

/* V5.0.242 — Mobile Spotify expanded player white-space removal.
   Keeps the V5.0.241 expanded full-width Spotify deck, but crops the iframe back to Spotify's true compact player height so the white tail below the embed cannot render.
   Mobile-only visual patch; desktop, rail, sleeve, colour, JSON, runtime bridge, OAuth/API boundaries, and bottom Pocket Console dock remain unchanged. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    overflow: hidden;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    overflow: hidden;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    display: block;
    width: 100%;
    height: 152px;
    max-height: 152px;
    min-height: 152px;
    background: #000;
    overflow: hidden;
  }
}


/* V5.0.243 — Mobile Pocket Console deep dock safe-area sink.
   Sinks the fixed bottom dock closer to the device edge using safe-area padding, removes the BNK visual floor,
   and keeps desktop V5, rail, sleeve, colour, JSON authority, runtime bridge, Spotify OAuth/API boundaries, and expanded Spotify player height unchanged. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer {
    --v5-mobile-pocket-dock-height: 190px;
    --v5-mobile-pocket-dock-bg: #050505;
    --v5-mobile-pocket-dock-floor: #000;
    padding-bottom: calc(var(--v5-mobile-pocket-dock-height) + env(safe-area-inset-bottom));
  }

  .bhk-v5-mobilePlayer--browse {
    --v5-mobile-pocket-dock-height: 126px;
    padding-bottom: calc(var(--v5-mobile-pocket-dock-height) + env(safe-area-inset-bottom));
  }

  .bhk-v5-mobilePlayer__bottomNav {
    bottom: 0;
    gap: 7px;
    padding: 10px 14px calc(5px + env(safe-area-inset-bottom));
    border-top: 1px solid color-mix(in srgb, var(--v5-mobile-pocket-dock-led) 20%, transparent);
    background:
      radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--v5-mobile-pocket-dock-led) 16%, transparent), transparent 34%),
      linear-gradient(180deg, color-mix(in srgb, var(--v5-proof) 6%, transparent) 0%, transparent 36%, color-mix(in srgb, var(--v5-mobile-pocket-dock-floor) 100%, transparent) 100%),
      var(--v5-mobile-pocket-dock-bg);
    box-shadow:
      0 -18px 42px color-mix(in srgb, #000 64%, transparent),
      inset 0 1px 0 color-mix(in srgb, var(--v5-proof) 8%, transparent);
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__modeBar {
    min-height: 46px;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__mode {
    min-height: 38px;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__transport {
    min-height: 64px;
    padding: 2px 3px 4px;
    border-bottom: 0;
  }

  .bhk-v5-mobilePlayer__dockTransportButton {
    min-height: 46px;
  }

  .bhk-v5-mobilePlayer__dockTransportButton.is-primary {
    width: 66px;
    height: 66px;
    min-height: 66px;
  }

  .bhk-v5-mobilePlayer__dockTransportButton.is-primary .bhk-v5-mobilePlayer__dockIcon {
    width: 31px;
    height: 31px;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__bankBar {
    gap: 6px;
    align-items: end;
    min-height: 31px;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__bank {
    min-height: 28px;
    padding: 4px 3px 2px;
    border-color: transparent;
    background: transparent;
    color: color-mix(in srgb, var(--v5-mobile-pocket-dock-muted) 92%, transparent);
    box-shadow: none;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__bank.is-active {
    border-color: transparent;
    background:
      linear-gradient(180deg, color-mix(in srgb, var(--v5-mobile-pocket-dock-led) 14%, transparent), transparent 72%);
    color: var(--v5-proof);
    box-shadow:
      0 -8px 18px color-mix(in srgb, var(--v5-mobile-pocket-dock-led) 18%, transparent);
  }

  .bhk-v5-mobilePlayer__tracks {
    scroll-padding-bottom: calc(var(--v5-mobile-pocket-dock-height) + env(safe-area-inset-bottom));
  }
}

@media (max-width: 360px) {
  .bhk-v5-mobilePlayer {
    --v5-mobile-pocket-dock-height: 178px;
  }

  .bhk-v5-mobilePlayer--browse {
    --v5-mobile-pocket-dock-height: 118px;
  }

  .bhk-v5-mobilePlayer__bottomNav {
    gap: 6px;
    padding: 9px 10px calc(4px + env(safe-area-inset-bottom));
  }

  .bhk-v5-mobilePlayer__dockTransportButton.is-primary {
    width: 60px;
    height: 60px;
    min-height: 60px;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__bank {
    min-height: 25px;
    padding-bottom: 1px;
  }
}

/* V5.0.245 — Mobile Player border + corner artifact removal.
   Removes the selected 1px bright borders from the mobile mast, expanded Spotify deck, and LISTEN/BROWSE mode bar.
   Mobile-only CSS patch; desktop V5, rail, sleeve, colour, JSON authority, runtime bridge, Spotify OAuth/API boundaries, and safe-area dock behavior remain unchanged. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer__mast,
  .bhk-v5-mobilePlayer__deck--spotifyExpanded,
  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__modeBar {
    border: 0 !important;
    outline: 0 !important;
  }

  .bhk-v5-mobilePlayer__mast {
    box-shadow: 0 18px 50px var(--v5-shadow) !important;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    box-shadow: 0 18px 42px color-mix(in srgb, var(--v5-shadow) 74%, transparent) !important;
    overflow: hidden;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
  }

  .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__modeBar {
    box-shadow: none !important;
  }
}

/* V5.0.248 — Mobile Spotify artwork meta duplicate removal.
   The React renderer no longer emits the duplicate BNK/title/artist strip above the Spotify compact embed.
   This mobile-only guard keeps any stale rendered meta strip hidden without changing desktop, rail, sleeve, colour, JSON, API, OAuth, SDK, or shell geometry. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer__spotifyArtworkMeta {
    display: none !important;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    gap: 0 !important;
  }
}

/* V5.0.249 — Mobile Spotify corner mask + X EXIT overlay real estate.
   Masks the provider iframe's white corner artifacts from a local wrapper only, and makes X EXIT an overlay control across all mobile stages.
   Desktop V5, rail, sleeve, colour, JSON authority, runtime bridge, Spotify OAuth/API/SDK, token flow, and public shell geometry remain unchanged. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    position: relative;
    display: block;
    width: 100%;
    height: 152px;
    min-height: 152px;
    max-height: 152px;
    overflow: hidden;
    border: 0;
    outline: 0;
    border-radius: 0;
    background: #1f1f1f;
    isolation: isolate;
  }

  .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before,
  .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    content: "";
    position: absolute;
    top: 0;
    z-index: 2;
    width: 18px;
    height: 18px;
    background: #1f1f1f;
    pointer-events: none;
  }

  .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before {
    left: 0;
  }

  .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    right: 0;
  }

  .bhk-v5-mobilePlayer__spotifyArtworkIframeShell .bhk-v5-mobilePlayer__spotifyArtworkIframe,
  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframeShell .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    display: block;
    width: 100%;
    height: 152px;
    min-height: 152px;
    max-height: 152px;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    background: #1f1f1f;
    overflow: hidden;
  }

  .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    padding: 12px 12px 10px;
  }

  .bhk-v5-mobilePlayer__mobileJacketStage,
  .bhk-v5-mobilePlayer__mobileJacketStage--bio,
  .bhk-v5-mobilePlayer__mobileJacketStage--results,
  .bhk-v5-mobilePlayer__mobileJacketStage--projects {
    position: relative;
    padding-top: 14px !important;
  }

  .bhk-v5-mobilePlayer__mobileJacketExit,
  .bhk-v5-mobilePlayer__mobileJacketStage--bio .bhk-v5-mobilePlayer__mobileJacketExit,
  .bhk-v5-mobilePlayer__mobileJacketStage--results .bhk-v5-mobilePlayer__mobileJacketExit,
  .bhk-v5-mobilePlayer__mobileJacketStage--projects .bhk-v5-mobilePlayer__mobileJacketExit {
    position: absolute !important;
    top: 22px !important;
    right: 22px !important;
    z-index: 40 !important;
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    margin: 0 !important;
    justify-self: auto !important;
    border-radius: 0 !important;
    background: color-mix(in srgb, var(--v5-page) 84%, #000 16%);
    box-shadow:
      0 12px 28px color-mix(in srgb, #000 46%, transparent),
      inset 0 1px 0 color-mix(in srgb, var(--v5-proof) 12%, transparent);
  }
}

/* V5.0.252 — Mobile Spotify transport restore / regression backout.
   Restores the mobile LISTEN transport row that V5.0.251 hid on Spotify-owned tracks.
   The Spotify iframe remains pointer-enabled; this patch does not change iframe source, API, OAuth, SDK, token, REST, desktop rail, sleeve, colour, JSON authority, or public geometry. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] {
    --v5-mobile-pocket-dock-height: 190px;
    padding-bottom: calc(var(--v5-mobile-pocket-dock-height) + env(safe-area-inset-bottom));
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__transport {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__bottomNav {
    gap: 7px;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    pointer-events: auto !important;
  }
}

@media (max-width: 360px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] {
    --v5-mobile-pocket-dock-height: 190px;
  }
}


/* V5.0.253 — Mobile Spotify player polish / official control preservation.
   Removes the visible 18x18 corner-mask pseudo-element artifact, tightens the mobile Spotify insert,
   and preserves both the official Spotify iframe controls and the restored mobile LISTEN transport.
   Mobile-only CSS; desktop rail, runtime bridge, sleeve, colour, API/OAuth/SDK/token, JSON authority, and geometry remain unchanged. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    margin-bottom: 8px;
    background:
      linear-gradient(180deg, color-mix(in srgb, var(--v5-proof) 5%, transparent), transparent 42%),
      color-mix(in srgb, #000 82%, var(--v5-page) 18%);
    box-shadow:
      0 14px 34px color-mix(in srgb, #000 58%, transparent),
      inset 0 1px 0 color-mix(in srgb, var(--v5-proof) 7%, transparent) !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    padding: 9px 10px 8px !important;
    background:
      linear-gradient(180deg, color-mix(in srgb, var(--v5-proof) 3%, transparent), transparent 50%),
      #050505;
    box-shadow: none !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    position: relative;
    height: 152px;
    min-height: 152px;
    max-height: 152px;
    overflow: hidden;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    background: #1f1f1f;
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.025),
      0 10px 24px color-mix(in srgb, #000 38%, transparent);
    isolation: isolate;
    pointer-events: auto !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    content: none !important;
    display: none !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell .bhk-v5-mobilePlayer__spotifyArtworkIframe,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframeShell .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    display: block;
    width: 100%;
    height: 152px;
    min-height: 152px;
    max-height: 152px;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    background: #1f1f1f;
    overflow: hidden;
    pointer-events: auto !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__tracks {
    margin-top: 8px;
    padding-top: 7px;
    border-color: color-mix(in srgb, var(--v5-line) 58%, transparent);
    background: color-mix(in srgb, #000 42%, var(--v5-surface) 58%);
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__bottomNav,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__bottomNav .bhk-v5-mobilePlayer__transport,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__dockTransportButton {
    pointer-events: auto !important;
  }
}

@media (max-width: 360px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    padding: 8px !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__tracks {
    margin-top: 7px;
  }
}


/* V5.0.254 — Mobile Spotify iframe corner seal + admin inspector proxy.
   Covers Spotify iframe white corner wedges without blocking official Spotify controls.
   In the admin Mobile Section Review iframe only, the iframe becomes a selectable proxy surface so the JSON/inspector panel can capture the Spotify shell instead of losing the click inside the cross-origin iframe. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    background: #1f1f1f !important;
    overflow: hidden !important;
    border: 0 !important;
    outline: 0 !important;
    isolation: isolate;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    content: "" !important;
    position: absolute;
    top: 0;
    z-index: 3;
    display: block !important;
    width: 12px;
    height: 12px;
    pointer-events: none !important;
    background: #1f1f1f;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before {
    left: 0;
    clip-path: polygon(0 0, 100% 0, 0 100%);
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    right: 0;
    clip-path: polygon(0 0, 100% 0, 100% 100%);
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    position: relative;
    z-index: 1;
    pointer-events: auto !important;
  }

  html[data-bhk-v5-mobile-review-frame="1"] .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    pointer-events: none !important;
  }

  html[data-bhk-v5-mobile-review-frame="1"] .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    pointer-events: auto !important;
    cursor: crosshair;
  }
}


/* V5.0.255 — Mobile Spotify bottom corner seal refinement.
   Extends the non-interactive Spotify iframe corner seal to the bottom corners only after V5.0.254 fixed the top edge.
   Official Spotify controls and restored BHK mobile transport controls remain clickable. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before,
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    top: 0 !important;
    bottom: 0 !important;
    width: 18px !important;
    height: 100% !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-size: 18px 18px, 18px 18px !important;
    pointer-events: none !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before {
    left: 0 !important;
    right: auto !important;
    clip-path: none !important;
    background-image:
      linear-gradient(135deg, #1f1f1f 0 50%, transparent 51%),
      linear-gradient(45deg, #1f1f1f 0 50%, transparent 51%) !important;
    background-position: left top, left bottom !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    right: 0 !important;
    left: auto !important;
    clip-path: none !important;
    background-image:
      linear-gradient(225deg, #1f1f1f 0 50%, transparent 51%),
      linear-gradient(315deg, #1f1f1f 0 50%, transparent 51%) !important;
    background-position: right top, right bottom !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    box-shadow:
      inset 0 0 0 1px rgba(31,31,31,.96),
      0 10px 24px color-mix(in srgb, #000 38%, transparent) !important;
  }
}


/* V5.0.278 — Mobile Spotify expanded real-estate cleanup / corner seal preserve.
   Removes the visible black backing around the compact Spotify embed while preserving the transparent swipe band and four-corner iframe seals.
   Mobile-only visual patch; no Spotify iframe source, API, OAuth, SDK, REST, runtime bridge, rail, sleeve, colour, JSON, or geometry change. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    position: relative;
    height: 152px;
    min-height: 152px;
    max-height: 152px;
    overflow: hidden !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    isolation: isolate;
    pointer-events: auto !important;
  }

  .bhk-v5-mobilePlayer[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifySwipeBand {
    background: transparent !important;
    box-shadow: none !important;
  }
}

/* V5.0.507 — Mobile Spotify sticky top lock.
   Keeps the compact Spotify embed visible while the user scrolls the mobile Listen track grid and selects songs.
   Mobile-only CSS patch; no Spotify iframe source, API, OAuth, SDK, REST, runtime bridge, rail, sleeve, colour, JSON, or desktop behavior changed. */
@media (max-width: 782px) {
  body.bhk-v5-body .bhk-v5-main {
    overflow: visible !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    position: sticky !important;
    top: max(0px, env(safe-area-inset-top)) !important;
    z-index: 34 !important;
    isolation: isolate;
    transform: translateZ(0);
    will-change: top;
  }

  body.admin-bar .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded {
    top: calc(46px + env(safe-area-inset-top)) !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    pointer-events: auto !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__tracks {
    position: relative;
    z-index: 1;
  }
}

/* V5.0.508 — Mobile Spotify true sticky scroll proof fix.
   Corrective pass after V5.0.507 loaded but did not prove the visible Spotify wrapper during a scrolled snapshot.
   The actual expanded Spotify deck/player/iframe shell are the sticky authority, not only the transparent swipe band.
   Mobile-only; no Spotify iframe source, OAuth, Web Playback SDK, token flow, REST/API, rail, sleeve, desktop, colour, or JSON authority change. */
@media (max-width: 782px) {
  body.bhk-v5-body .bhk-v5-main,
  body.bhk-v5-body .bhk-v5-mobilePlayerRoot,
  body.bhk-v5-body .bhk-v5-mobilePlayer,
  body.bhk-v5-body .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    overflow: visible !important;
    contain: none !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    --bhk-v5-mobile-spotify-sticky-top: max(0px, env(safe-area-inset-top));
    --bhk-v5-mobile-spotify-sticky-z: 208;
  }

  body.admin-bar .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    --bhk-v5-mobile-spotify-sticky-top: calc(46px + env(safe-area-inset-top));
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: var(--bhk-v5-mobile-spotify-sticky-top) !important;
    z-index: var(--bhk-v5-mobile-spotify-sticky-z) !important;
    align-self: start !important;
    isolation: isolate !important;
    contain: none !important;
    overflow: visible !important;
    transform: none !important;
    will-change: auto !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframeShell,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    position: relative !important;
    z-index: calc(var(--bhk-v5-mobile-spotify-sticky-z) + 1) !important;
    contain: none !important;
    transform: none !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifySwipeBand {
    z-index: calc(var(--bhk-v5-mobile-spotify-sticky-z) + 3) !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__bankBar,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__tracks {
    position: relative !important;
    z-index: 1 !important;
  }
}

/* V5.0.509 — Mobile Spotify fixed-top player / sticky failure replacement.
   Motion proof from V5.0.508 showed position:sticky was computed but failed while scrolled:
   maxScrollY 590, stickyPassSamples 0, deckY moved from 197 to -393.
   This pass keeps the normal in-flow deck at the top of the Listen console, then switches to a controlled fixed-top player after the deck reaches the viewport top.
   Mobile-only; no desktop, rail, sleeve, colour, JSON, REST/API, Spotify OAuth, Web Playback SDK, token flow, or iframe URL authority change. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    --bhk-v5-mobile-spotify-fixed-top: max(0px, env(safe-area-inset-top));
    --bhk-v5-mobile-spotify-fixed-left: 14px;
    --bhk-v5-mobile-spotify-fixed-width: calc(100vw - 28px);
    --bhk-v5-mobile-spotify-fixed-height: 152px;
    --bhk-v5-mobile-spotify-fixed-gap: 20px;
    --bhk-v5-mobile-spotify-fixed-z: 460;
  }

  body.admin-bar .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    --bhk-v5-mobile-spotify-fixed-top: calc(46px + env(safe-area-inset-top));
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded {
    position: fixed !important;
    top: var(--bhk-v5-mobile-spotify-fixed-top) !important;
    left: var(--bhk-v5-mobile-spotify-fixed-left) !important;
    right: auto !important;
    width: var(--bhk-v5-mobile-spotify-fixed-width) !important;
    max-width: var(--bhk-v5-mobile-spotify-fixed-width) !important;
    height: var(--bhk-v5-mobile-spotify-fixed-height) !important;
    min-height: var(--bhk-v5-mobile-spotify-fixed-height) !important;
    max-height: var(--bhk-v5-mobile-spotify-fixed-height) !important;
    z-index: var(--bhk-v5-mobile-spotify-fixed-z) !important;
    isolation: isolate !important;
    contain: none !important;
    overflow: visible !important;
    transform: none !important;
    will-change: transform !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframeShell,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    height: var(--bhk-v5-mobile-spotify-fixed-height) !important;
    min-height: var(--bhk-v5-mobile-spotify-fixed-height) !important;
    max-height: var(--bhk-v5-mobile-spotify-fixed-height) !important;
    transform: none !important;
    contain: none !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__bankBar {
    margin-top: calc(var(--bhk-v5-mobile-spotify-fixed-height) + var(--bhk-v5-mobile-spotify-fixed-gap)) !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__bankBar,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__tracks {
    position: relative !important;
    z-index: 1 !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"][data-bhk-v5-mobile-spotify-fixed="1"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifySwipeBand {
    z-index: calc(var(--bhk-v5-mobile-spotify-fixed-z) + 3) !important;
  }
}

/* V5.0.510 — Mobile Spotify fixed player gasket polish.
   Polishes the now-working fixed-top Spotify embed by adding a hard-corner dark gasket, masking provider edge slivers, and tightening the premium console frame.
   Mobile-only; no desktop, rail, sleeve, colour, JSON, REST/API, Spotify OAuth, Web Playback SDK, token flow, or iframe URL authority change. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    --bhk-v5-mobile-spotify-gasket-bg: #1f1f1f;
    --bhk-v5-mobile-spotify-gasket-edge: #09060e;
    --bhk-v5-mobile-spotify-gasket-line: color-mix(in srgb, var(--v5-proof) 28%, #ffffff 8%);
    --bhk-v5-mobile-spotify-gasket-shadow: color-mix(in srgb, #000 70%, transparent);
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded {
    padding: 0 !important;
    border-radius: 0 !important;
    border: 1px solid color-mix(in srgb, var(--v5-line-strong) 78%, #ffffff 8%) !important;
    background:
      linear-gradient(180deg, color-mix(in srgb, var(--v5-proof) 10%, transparent), transparent 45%),
      linear-gradient(90deg, color-mix(in srgb, #000 70%, transparent), transparent 16%, transparent 84%, color-mix(in srgb, #000 70%, transparent)),
      color-mix(in srgb, var(--v5-page) 88%, #000 12%) !important;
    box-shadow:
      0 12px 30px var(--bhk-v5-mobile-spotify-gasket-shadow),
      0 0 0 1px color-mix(in srgb, var(--v5-proof) 18%, transparent),
      inset 0 1px 0 color-mix(in srgb, #ffffff 18%, transparent),
      inset 0 -1px 0 color-mix(in srgb, #000 72%, transparent) !important;
    overflow: hidden !important;
    clip-path: inset(0 0 0 0) !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkPlayer {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--bhk-v5-mobile-spotify-gasket-bg) !important;
    box-shadow:
      inset 0 0 0 1px color-mix(in srgb, #ffffff 9%, transparent),
      inset 0 0 0 2px color-mix(in srgb, #000 58%, transparent) !important;
    overflow: hidden !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell {
    border-radius: 0 !important;
    background: var(--bhk-v5-mobile-spotify-gasket-bg) !important;
    box-shadow:
      inset 3px 0 0 var(--bhk-v5-mobile-spotify-gasket-bg),
      inset -3px 0 0 var(--bhk-v5-mobile-spotify-gasket-bg),
      inset 0 3px 0 var(--bhk-v5-mobile-spotify-gasket-bg),
      inset 0 -3px 0 var(--bhk-v5-mobile-spotify-gasket-bg),
      inset 0 0 0 1px color-mix(in srgb, #ffffff 10%, transparent) !important;
    overflow: hidden !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 3px;
    height: auto;
    z-index: 214;
    background: var(--bhk-v5-mobile-spotify-gasket-bg);
    pointer-events: none;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::before {
    left: 0;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell::after {
    right: 0;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifyArtworkIframeShell .bhk-v5-mobilePlayer__spotifyArtworkIframe,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__deck--spotifyExpanded .bhk-v5-mobilePlayer__spotifyArtworkIframeShell .bhk-v5-mobilePlayer__spotifyArtworkIframe {
    width: calc(100% + 4px) !important;
    min-width: calc(100% + 4px) !important;
    max-width: none !important;
    margin-left: -2px !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    background: var(--bhk-v5-mobile-spotify-gasket-bg) !important;
    display: block !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] .bhk-v5-mobilePlayer__spotifySwipeBand {
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}

/* V5.0.511 — Mobile Spotify transparent border / eyebrow polish.
   Makes the visible outer 1px border transparent and replaces it with premium top/bottom eyebrow highlights in pink/purple.
   Mobile-only; no desktop, rail, sleeve, colour, JSON, REST/API, Spotify OAuth, Web Playback SDK, token flow, or iframe URL authority change. */
@media (max-width: 782px) {
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] {
    --bhk-v5-mobile-spotify-eyebrow-strong: linear-gradient(90deg,
      rgba(255, 72, 214, 0.10) 0%,
      rgba(255, 72, 214, 0.92) 18%,
      rgba(171, 88, 255, 0.98) 50%,
      rgba(255, 72, 214, 0.92) 82%,
      rgba(255, 72, 214, 0.10) 100%);
    --bhk-v5-mobile-spotify-eyebrow-soft: linear-gradient(90deg,
      rgba(142, 71, 255, 0.08) 0%,
      rgba(248, 99, 228, 0.72) 20%,
      rgba(130, 84, 255, 0.88) 50%,
      rgba(248, 99, 228, 0.72) 80%,
      rgba(142, 71, 255, 0.08) 100%);
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded {
    border-color: transparent !important;
    box-shadow:
      0 12px 30px var(--bhk-v5-mobile-spotify-gasket-shadow),
      0 0 0 1px transparent,
      inset 0 1px 0 rgba(255,255,255,0.06),
      inset 0 -1px 0 rgba(0,0,0,0.62) !important;
    position: relative !important;
    overflow: visible !important;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded::before,
  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded::after {
    content: "";
    position: absolute;
    left: -1px;
    right: -1px;
    height: 2px;
    z-index: 220;
    pointer-events: none;
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded::before {
    top: -1px;
    background: var(--bhk-v5-mobile-spotify-eyebrow-strong);
    box-shadow:
      0 0 8px rgba(203, 76, 255, 0.35),
      0 0 16px rgba(255, 73, 214, 0.16);
  }

  .bhk-v5-mobilePlayer.bhk-v5-mobilePlayer--listen[data-bhk-v5-mobile-lane^="spotify"] > .bhk-v5-mobilePlayer__deck.bhk-v5-mobilePlayer__deck--spotifyExpanded::after {
    bottom: -1px;
    background: var(--bhk-v5-mobile-spotify-eyebrow-soft);
    box-shadow:
      0 0 7px rgba(171, 88, 255, 0.26),
      0 0 14px rgba(248, 99, 228, 0.10);
  }
}

