:root {
    --song-gold: #ffb72e;
    --song-gold-soft: #ffd978;
    --song-cyan: #4fd9ff;
    --song-blue: #168cff;
    --song-green: #44e896;
    --song-surface: rgba(8, 10, 11, 0.92);
    --song-line: rgba(255, 190, 62, 0.22);
}

body.song-dialog-open {
    overflow: hidden;
}

.song-consent,
.song-player {
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #fff;
}

.song-consent::backdrop,
.song-player::backdrop {
    background: rgba(1, 3, 5, 0.88);
    -webkit-backdrop-filter: blur(18px) saturate(115%);
    backdrop-filter: blur(18px) saturate(115%);
}

.song-consent {
    width: min(calc(100% - 1.25rem), 660px);
    max-height: calc(100svh - 1.25rem);
    overflow: auto;
}

.song-consent[open] {
    animation: song-consent-enter 520ms cubic-bezier(.16, .78, .18, 1);
}

.song-consent-card {
    position: relative;
    overflow: hidden;
    padding: clamp(1.15rem, 4vw, 2.2rem);
    border: 1px solid rgba(255, 193, 66, 0.36);
    border-radius: 6px;
    background:
        linear-gradient(145deg, rgba(20, 22, 23, .97), rgba(5, 7, 9, .985)),
        #080a0c;
    box-shadow: 0 42px 130px rgba(0, 0, 0, .78), inset 0 1px rgba(255, 255, 255, .08);
}

.song-consent-card::before,
.song-consent-card::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.song-consent-card::before {
    inset: 0;
    opacity: .18;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(145deg, #000, transparent 70%);
}

.song-consent-card::after {
    top: -160px;
    right: -130px;
    width: 340px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(79, 217, 255, .14);
    filter: blur(70px);
}

.song-consent-top,
.song-consent-content,
.song-consent-actions {
    position: relative;
    z-index: 1;
}

.song-consent-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.song-consent-brand {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.song-consent-brand img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    filter: drop-shadow(0 10px 14px rgba(0,0,0,.5));
}

.song-consent-brand span {
    display: grid;
}

.song-consent-brand small,
.song-consent-status {
    color: #827f78;
    font-family: "SFMono-Regular", Consolas, monospace;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.song-consent-brand strong {
    font-family: var(--font-display, "Russo One", sans-serif);
    font-size: .95rem;
    font-weight: 400;
}

.song-consent-status {
    display: flex;
    align-items: center;
    gap: .48rem;
    color: var(--song-green);
}

.song-consent-status i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 14px currentColor;
}

.song-consent-content {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: clamp(1rem, 4vw, 2rem);
    align-items: center;
    padding: clamp(1.4rem, 5vw, 2.6rem) 0;
}

.song-consent-cover {
    position: relative;
    display: grid;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgba(255, 183, 46, .28);
    background: radial-gradient(circle, rgba(255,183,46,.12), transparent 64%), #080908;
}

.song-consent-cover::before,
.song-consent-cover::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 183, 46, .2);
    transform: rotate(45deg);
}

.song-consent-cover::before { width: 68%; height: 68%; }
.song-consent-cover::after { width: 48%; height: 48%; border-color: rgba(79,217,255,.2); transform: rotate(0); }
.song-consent-cover img { position: relative; z-index: 1; width: 88%; height: auto; }

.song-consent-copy p:first-child {
    margin: 0 0 .65rem;
    color: var(--song-gold);
    font-family: "SFMono-Regular", Consolas, monospace;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.song-consent-copy h2 {
    margin: 0;
    font-family: var(--font-display, "Russo One", sans-serif);
    font-size: clamp(2rem, 6vw, 3.5rem);
    font-weight: 400;
    letter-spacing: -.045em;
    line-height: .95;
    text-transform: uppercase;
}

.song-consent-copy h2 span { color: transparent; -webkit-text-stroke: 1px var(--song-gold); }
.song-consent-copy p:last-child { margin: 1rem 0 0; color: #aaa69d; font-size: .92rem; line-height: 1.7; }

.song-consent-actions {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: .75rem;
}

.song-action {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: .75rem 1rem;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 4px;
    background: rgba(255,255,255,.035);
    color: #eeeae0;
    font-family: var(--font-display, "Russo One", sans-serif);
    font-size: .68rem;
    letter-spacing: .035em;
    text-transform: uppercase;
    transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.song-action:hover { transform: translateY(-2px); border-color: rgba(255,193,66,.4); }
.song-action--primary { border-color: var(--song-gold); background: linear-gradient(135deg, var(--song-gold-soft), var(--song-gold)); color: #110d04; box-shadow: 0 15px 38px rgba(255,183,46,.18); }
.song-action svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.song-player {
    width: 100vw;
    max-width: none;
    height: 100svh;
    max-height: none;
    margin: 0;
    overflow: hidden;
}

.song-player[open] { animation: song-player-enter 450ms cubic-bezier(.16,.78,.18,1); }

.song-player-shell {
    position: relative;
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-rows: auto minmax(0,1fr) auto;
    isolation: isolate;
    overflow: hidden;
    background: #050607;
}

.song-player-background,
.song-player-vignette,
.song-player-grid {
    position: absolute;
    inset: 0;
    z-index: -3;
    pointer-events: none;
}

.song-player-background {
    background: url("world-scenes/world-gate-sunset.webp") center 48% / cover no-repeat;
    filter: saturate(.65) contrast(1.12) brightness(.52);
    transform: scale(1.04);
    animation: song-background-drift 24s ease-in-out infinite alternate;
}

.song-player-vignette {
    z-index: -2;
    background:
        radial-gradient(circle at 23% 45%, rgba(22,140,255,.14), transparent 26%),
        radial-gradient(circle at 72% 42%, rgba(255,183,46,.12), transparent 32%),
        linear-gradient(90deg, rgba(3,5,7,.94), rgba(3,5,7,.68) 45%, rgba(3,5,7,.84)),
        linear-gradient(0deg, #050607 0%, transparent 34%, rgba(3,5,7,.36) 100%);
}

.song-player-grid {
    z-index: -1;
    opacity: .18;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(90deg, #000, transparent 70%);
}

.song-player-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem clamp(.8rem, 2.5vw, 2rem);
    border-bottom: 1px solid rgba(255,255,255,.08);
    background: rgba(4,6,8,.72);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

.song-player-brand {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.song-player-brand img { width: 46px; height: 46px; object-fit: contain; }
.song-player-brand span { display: grid; }
.song-player-brand small { color: var(--song-gold); font-family: "SFMono-Regular",Consolas,monospace; font-size:.56rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.song-player-brand strong { font-family: var(--font-display,"Russo One",sans-serif); font-size:.95rem; font-weight:400; }

.song-player-live {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: #8e8b84;
    font-family: "SFMono-Regular",Consolas,monospace;
    font-size: .59rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.song-player-live i { width:7px;height:7px;border-radius:50%;background:var(--song-green);box-shadow:0 0 14px rgba(68,232,150,.72); }

.song-icon-button {
    width: 44px;
    height: 44px;
    display: grid;
    flex: 0 0 auto;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 4px;
    background: rgba(255,255,255,.035);
    color: #d8d4cb;
    transition: 160ms ease;
}

.song-icon-button:hover { border-color: rgba(255,193,66,.45); color:var(--song-gold-soft); background:rgba(255,183,46,.06); }
.song-icon-button svg { width:20px; fill:none; stroke:currentColor; stroke-width:1.8; }

.song-player-main {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(330px,.72fr) minmax(0,1.28fr);
    gap: clamp(1rem,4vw,5rem);
    align-items: center;
    padding: clamp(1rem,3vw,2.5rem) clamp(1rem,4vw,4rem);
}

.song-art-panel {
    min-width: 0;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 1rem;
}

.song-art {
    position: relative;
    width: min(42vh, 410px);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
}

.song-art-ring {
    position: absolute;
    border: 1px solid rgba(255,183,46,.17);
    border-radius: 50%;
}

.song-art-ring--one { inset:0; border-style:dashed; animation:song-ring-spin 28s linear infinite; }
.song-art-ring--two { inset:9%; border-color:rgba(79,217,255,.2); animation:song-ring-spin 20s linear infinite reverse; }
.song-art-ring--three { inset:20%; border-color:rgba(255,255,255,.1); }
.song-art-ring::before,
.song-art-ring::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--song-gold); box-shadow:0 0 14px rgba(255,183,46,.7); }
.song-art-ring::before { top:10%; left:19%; }
.song-art-ring::after { right:9%; bottom:25%; background:var(--song-cyan); box-shadow:0 0 14px rgba(79,217,255,.7); }

.song-art-core {
    position: relative;
    width: 65%;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255,183,46,.28);
    background: radial-gradient(circle,rgba(255,183,46,.11),transparent 62%),rgba(4,7,10,.82);
    transform: rotate(45deg);
    box-shadow:0 30px 80px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.05);
}

.song-art-core img { width:118%;height:auto;transform:rotate(-45deg);filter:drop-shadow(0 16px 16px rgba(0,0,0,.54)); }

.song-equalizer {
    height: 46px;
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 4px;
}

.song-equalizer i {
    width: 3px;
    height: calc(8px + var(--bar-height, 12) * 1px);
    border-radius: 2px 2px 0 0;
    background: linear-gradient(0deg,var(--song-gold),var(--song-cyan));
    opacity: .42;
    transform-origin: bottom;
}

.song-player.is-playing .song-equalizer i {
    opacity: .86;
    animation: song-bar .72s ease-in-out infinite alternate;
    animation-delay: calc(var(--bar-index,0) * -42ms);
}

.song-art-meta { text-align:center; }
.song-art-meta p { margin:0;color:var(--song-gold);font-family:"SFMono-Regular",Consolas,monospace;font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase; }
.song-art-meta h2 { margin:.35rem 0 0;font-family:var(--font-display,"Russo One",sans-serif);font-size:clamp(1.6rem,3vw,2.7rem);font-weight:400;text-transform:uppercase; }
.song-art-meta span { color:#85827b;font-size:.74rem; }

.song-lyrics-panel {
    min-width: 0;
    min-height: 0;
    height: 100%;
    display: grid;
    grid-template-rows: auto minmax(0,1fr);
    align-content: center;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.085);
    background: linear-gradient(145deg,rgba(10,13,16,.76),rgba(4,6,8,.86));
    box-shadow:0 30px 90px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.045);
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
}

.song-lyrics-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.9rem 1.1rem;
    border-bottom:1px solid rgba(255,255,255,.07);
}

.song-lyrics-head span { color:#7f7b74;font-family:"SFMono-Regular",Consolas,monospace;font-size:.58rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase; }
.song-lyrics-head strong { color:var(--song-gold-soft);font-family:"SFMono-Regular",Consolas,monospace;font-size:.65rem; }

.song-karaoke-stage {
    min-height: 0;
    display:none;
    align-content:center;
    gap:clamp(.8rem,2.4vh,1.6rem);
    padding:clamp(1.2rem,3.5vw,3.4rem);
    overflow:hidden;
}

.song-lyric-prev,
.song-lyric-next { margin:0;color:rgba(226,224,216,.28);font-family:var(--font-display,"Russo One",sans-serif);font-size:clamp(.78rem,1.15vw,1rem);line-height:1.5;text-transform:uppercase; }
.song-lyric-next { color:rgba(226,224,216,.4); }

.song-lyric-current {
    --lyric-progress: 0%;
    position: relative;
    min-height: 2.7em;
    margin:0;
    font-family:var(--font-display,"Russo One",sans-serif);
    font-size:clamp(1.65rem,4vw,4.15rem);
    letter-spacing:-.035em;
    line-height:1.08;
    text-transform:uppercase;
}

.song-lyric-current-base { color:rgba(255,255,255,.2); }
.song-lyric-current-fill { position:absolute;inset:0;color:#fff;clip-path:inset(0 calc(100% - var(--lyric-progress)) 0 0);text-shadow:0 0 24px rgba(255,183,46,.18); }
.song-lyric-current-fill strong { color:var(--song-gold-soft);font-weight:inherit; }

.song-transcript {
    min-height:0;
    overflow:auto;
    padding:clamp(8rem,18vh,14rem) clamp(1.2rem,4.5vw,4rem);
    scrollbar-width:thin;
    scrollbar-color:rgba(255,183,46,.45) rgba(255,255,255,.04);
    scroll-behavior:smooth;
    overscroll-behavior:contain;
    mask-image:linear-gradient(0deg,transparent,#000 18%,#000 82%,transparent);
}

.song-transcript-list { display:grid;gap:clamp(1.45rem,3vh,2.6rem);padding-block:2rem; }
.song-transcript-line {
    --line-progress:0%;
    width:100%;
    display:block;
    padding:.1rem 0;
    border:0;
    background:transparent;
    color:rgba(235,233,226,.18);
    font-family:var(--font-display,"Russo One",sans-serif);
    font-size:clamp(1.35rem,3.15vw,3.9rem);
    font-weight:400;
    letter-spacing:-.035em;
    line-height:1.12;
    text-align:left;
    text-transform:uppercase;
    transform-origin:left center;
    transition:color 420ms ease,opacity 420ms ease,transform 520ms cubic-bezier(.16,.78,.18,1),filter 420ms ease;
}
.song-transcript-line:hover { color:rgba(255,255,255,.62); }
.song-transcript-line.is-near { color:rgba(235,233,226,.35); }
.song-transcript-line.is-past { color:rgba(235,233,226,.27); }
.song-transcript-line.is-active {
    color:#fff;
    transform:translateX(clamp(.2rem,1vw,.8rem)) scale(1.015);
    filter:drop-shadow(0 12px 26px rgba(0,0,0,.35));
}
.song-transcript-line.is-active span {
    background:linear-gradient(90deg,var(--song-gold-soft) 0 var(--line-progress),#fff var(--line-progress) 100%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.song-player-controls {
    display:grid;
    grid-template-columns:auto minmax(170px,1fr) auto;
    gap:clamp(.8rem,2vw,1.6rem);
    align-items:center;
    padding:.85rem clamp(.8rem,2.5vw,2rem);
    border-top:1px solid rgba(255,255,255,.09);
    background:rgba(4,6,8,.9);
    -webkit-backdrop-filter:blur(20px);
    backdrop-filter:blur(20px);
}

.song-transport { display:flex;align-items:center;gap:.45rem; }
.song-play-button { width:54px;height:54px;border-color:rgba(255,183,46,.38);border-radius:50%;background:linear-gradient(135deg,var(--song-gold-soft),var(--song-gold));color:#110d04;box-shadow:0 9px 26px rgba(255,183,46,.17); }
.song-play-button:hover { color:#110d04;background:linear-gradient(135deg,#ffe29b,var(--song-gold)); }
.song-play-button .icon-pause,
.song-player.is-playing .song-play-button .icon-play { display:none; }
.song-player.is-playing .song-play-button .icon-pause { display:block; }

.song-timeline { min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;align-items:center; }
.song-timeline time { color:#8b877f;font-family:"SFMono-Regular",Consolas,monospace;font-size:.64rem;text-align:center; }
.song-range { --range-progress:0%; width:100%;height:20px;margin:0;appearance:none;background:transparent;cursor:pointer; }
.song-range::-webkit-slider-runnable-track { height:4px;border-radius:4px;background:linear-gradient(90deg,var(--song-gold) var(--range-progress),rgba(255,255,255,.12) var(--range-progress)); }
.song-range::-moz-range-track { height:4px;border-radius:4px;background:linear-gradient(90deg,var(--song-gold) var(--range-progress),rgba(255,255,255,.12) var(--range-progress)); }
.song-range::-webkit-slider-thumb { width:14px;height:14px;margin-top:-5px;appearance:none;border:2px solid #14110a;border-radius:50%;background:var(--song-gold-soft);box-shadow:0 0 14px rgba(255,183,46,.5); }
.song-range::-moz-range-thumb { width:12px;height:12px;border:2px solid #14110a;border-radius:50%;background:var(--song-gold-soft); }

.song-volume { display:flex;align-items:center;gap:.5rem; }
.song-volume .song-icon-button { width:40px;height:40px; }
.song-volume-range { width:90px; }
.song-muted-icon { display:none; }
.song-player.is-muted .song-volume-icon { display:none; }
.song-player.is-muted .song-muted-icon { display:block; }

.song-launcher {
    position:fixed;
    right:clamp(.8rem,2vw,1.5rem);
    bottom:clamp(.8rem,2vw,1.5rem);
    z-index:115;
    min-height:50px;
    display:flex;
    align-items:center;
    gap:.7rem;
    padding:.55rem .85rem .55rem .58rem;
    border:1px solid rgba(255,183,46,.28);
    border-radius:5px;
    background:rgba(7,10,13,.9);
    color:#eeeae1;
    box-shadow:0 16px 46px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.05);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    transition:transform 180ms ease,border-color 180ms ease,opacity 180ms ease;
}

.song-launcher:hover { transform:translateY(-3px);border-color:rgba(255,193,66,.55); }
.song-launcher.is-hidden { opacity:0;pointer-events:none;transform:translateY(14px); }
.song-launcher-pulse { position:relative;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--song-gold-soft),var(--song-gold));color:#110d04; }
.song-launcher-pulse::after { content:"";position:absolute;inset:-5px;border:1px solid rgba(255,183,46,.35);border-radius:50%;animation:song-launcher-pulse 2.2s ease-out infinite; }
.song-launcher-pulse svg { width:16px;fill:currentColor; }
.song-launcher-copy { display:grid;text-align:left; }
.song-launcher-copy small { color:#77736c;font-family:"SFMono-Regular",Consolas,monospace;font-size:.52rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase; }
.song-launcher-copy strong { font-family:var(--font-display,"Russo One",sans-serif);font-size:.67rem;font-weight:400; }

/* Immersive Audio Core */
.song-player {
    --audio-bass: 0;
    --audio-mid: 0;
    --audio-treble: 0;
    --audio-energy: 0;
    --scene-primary: #4fd9ff;
    --scene-secondary: #ffb72e;
}

.song-player[data-song-chapter="nether"] { --scene-primary:#ff6a22;--scene-secondary:#ffb72e; }
.song-player[data-song-chapter="end"] { --scene-primary:#a870ff;--scene-secondary:#4fd9ff; }
.song-player[data-song-chapter="economy"] { --scene-primary:#39e58c;--scene-secondary:#ffb72e; }
.song-player[data-song-chapter="community"] { --scene-primary:#4fd9ff;--scene-secondary:#39e58c; }
.song-player[data-song-chapter="finale"] { --scene-primary:#ffcf63;--scene-secondary:#4fd9ff; }

.song-player-main,
.song-player-header,
.song-player-controls { position:relative;z-index:4; }

.song-player-main { perspective:1600px; }
.song-art-panel { transform-style:preserve-3d; }

.song-three-stage {
    position:relative;
    width:min(46vh,480px);
    aspect-ratio:1;
    isolation:isolate;
    overflow:hidden;
    border:1px solid color-mix(in srgb,var(--scene-primary) 28%,transparent);
    background:
        radial-gradient(circle at 50% 52%,color-mix(in srgb,var(--scene-secondary) 12%,transparent),transparent 34%),
        linear-gradient(145deg,rgba(7,13,18,.74),rgba(2,4,7,.34));
    box-shadow:
        0 34px 90px rgba(0,0,0,.48),
        0 0 74px color-mix(in srgb,var(--scene-primary) 16%,transparent),
        inset 0 1px rgba(255,255,255,.06);
    clip-path:polygon(7% 0,93% 0,100% 7%,100% 93%,93% 100%,7% 100%,0 93%,0 7%);
    transform-style:preserve-3d;
}

.song-three-stage::before,
.song-three-stage::after {
    content:"";
    position:absolute;
    z-index:3;
    pointer-events:none;
}

.song-three-stage::before {
    inset:0;
    opacity:.24;
    background-image:
        linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:32px 32px;
    mask-image:radial-gradient(circle,#000 14%,transparent 74%);
}

.song-three-stage::after {
    inset:6%;
    border:1px solid color-mix(in srgb,var(--scene-secondary) 22%,transparent);
    clip-path:polygon(0 0,18% 0,18% 1px,82% 1px,82% 0,100% 0,100% 18%,calc(100% - 1px) 18%,calc(100% - 1px) 82%,100% 82%,100% 100%,82% 100%,82% calc(100% - 1px),18% calc(100% - 1px),18% 100%,0 100%,0 82%,1px 82%,1px 18%,0 18%);
}

.song-three-canvas,
.song-three-fallback { position:absolute;inset:0;width:100%;height:100%; }
.song-three-canvas { z-index:1;display:block;touch-action:none; }
.song-three-fallback { z-index:0;object-fit:contain;padding:18%;filter:drop-shadow(0 22px 32px rgba(0,0,0,.58));opacity:.76; }
.song-three-stage.is-webgl-ready .song-three-fallback { opacity:0; }
.song-three-stage.is-webgl-fallback .song-three-fallback { opacity:.9;animation:song-fallback-float 5s ease-in-out infinite; }

.song-reactor-reticle { position:absolute;inset:8%;z-index:4;border:1px dashed color-mix(in srgb,var(--scene-primary) 28%,transparent);border-radius:50%;animation:song-reticle-spin 28s linear infinite;pointer-events:none; }
.song-reactor-reticle::before,
.song-reactor-reticle::after { content:"";position:absolute;inset:13%;border:1px solid color-mix(in srgb,var(--scene-secondary) 20%,transparent);border-radius:50%; }
.song-reactor-reticle::after { inset:31%;border-style:dotted; }
.song-reactor-reticle i { position:absolute;width:7px;height:7px;border-radius:50%;background:var(--scene-primary);box-shadow:0 0 18px var(--scene-primary); }
.song-reactor-reticle i:nth-child(1) { top:7%;left:23%; }
.song-reactor-reticle i:nth-child(2) { top:31%;right:-3px;background:var(--scene-secondary); }
.song-reactor-reticle i:nth-child(3) { bottom:6%;right:27%; }
.song-reactor-reticle i:nth-child(4) { bottom:34%;left:-3px;background:var(--scene-secondary); }

.song-reactor-scan { position:absolute;z-index:5;left:5%;right:5%;top:9%;height:1px;background:linear-gradient(90deg,transparent,var(--scene-primary),transparent);box-shadow:0 0 18px var(--scene-primary);opacity:.56;animation:song-reactor-scan 4.4s ease-in-out infinite;pointer-events:none; }
.song-reactor-axis { position:absolute;z-index:5;color:color-mix(in srgb,var(--scene-primary) 62%,#fff);font-family:"SFMono-Regular",Consolas,monospace;font-size:.48rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;opacity:.66;pointer-events:none; }
.song-reactor-axis--x { right:8%;top:7%; }
.song-reactor-axis--y { left:2%;bottom:13%;writing-mode:vertical-rl;transform:rotate(180deg); }

.song-reactor-readout { position:absolute;z-index:5;right:6%;bottom:6%;display:grid;gap:.28rem;width:88px;pointer-events:none; }
.song-reactor-readout span { display:grid;grid-template-columns:28px 1fr;gap:.4rem;align-items:center; }
.song-reactor-readout small { color:#6f7881;font-family:"SFMono-Regular",Consolas,monospace;font-size:.42rem;font-weight:800;letter-spacing:.08em; }
.song-reactor-readout i { --meter:.04;position:relative;height:2px;overflow:hidden;background:rgba(255,255,255,.09); }
.song-reactor-readout i::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--scene-primary),var(--scene-secondary));transform:scaleX(var(--meter));transform-origin:left;box-shadow:0 0 12px var(--scene-primary);transition:transform 70ms linear; }

.song-impact-flash { position:absolute;z-index:3;inset:-12%;pointer-events:none;opacity:0;border-radius:50%;background:radial-gradient(circle at 38% 48%,color-mix(in srgb,var(--scene-secondary) 48%,transparent),transparent 25%),radial-gradient(circle at 65% 48%,color-mix(in srgb,var(--scene-primary) 34%,transparent),transparent 34%);filter:blur(16px);mix-blend-mode:screen; }
.song-crown-burst { position:absolute;z-index:5;left:26%;top:46%;width:1px;height:1px;pointer-events:none; }
.song-crown-burst i { position:absolute;left:0;bottom:0;width:2px;height:min(26vh,230px);opacity:0;background:linear-gradient(0deg,var(--scene-secondary),transparent);box-shadow:0 0 13px var(--scene-secondary);transform-origin:50% 100%; }
.song-crown-burst i:nth-child(1) { transform:rotate(0deg); }.song-crown-burst i:nth-child(2) { transform:rotate(45deg); }.song-crown-burst i:nth-child(3) { transform:rotate(90deg); }.song-crown-burst i:nth-child(4) { transform:rotate(135deg); }.song-crown-burst i:nth-child(5) { transform:rotate(180deg); }.song-crown-burst i:nth-child(6) { transform:rotate(225deg); }.song-crown-burst i:nth-child(7) { transform:rotate(270deg); }.song-crown-burst i:nth-child(8) { transform:rotate(315deg); }

.song-chapter { color:var(--scene-secondary)!important;font-size:.58rem!important;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap; }
.song-lyrics-panel { perspective:1200px;transform-style:preserve-3d;box-shadow:0 30px 90px rgba(0,0,0,.34),0 0 46px color-mix(in srgb,var(--scene-primary) 10%,transparent),inset 0 1px rgba(255,255,255,.045); }
.song-transcript-list { perspective:1100px;transform-style:preserve-3d; }

.song-transcript-line,
.song-transcript-line.is-active {
    color:rgba(235,233,226,.16);
    transform:none;
    filter:none;
}
.song-transcript-line.is-near { color:rgba(235,233,226,.26); }
.song-transcript-line.is-past { color:rgba(235,233,226,.2); }
.song-transcript-line.is-active { color:rgba(255,255,255,.18); }
.song-transcript-line.is-active span { background:none;-webkit-background-clip:initial;background-clip:initial;color:inherit; }

.song-word {
    display:inline-block;
    color:inherit;
    transform:translateZ(0);
    transform-origin:center 70%;
    transition:color 220ms ease,opacity 220ms ease,text-shadow 220ms ease,filter 220ms ease,transform 260ms cubic-bezier(.16,.78,.18,1);
    will-change:transform,filter,color;
}
.song-word:not(:last-child) { margin-inline-end:.22em; }
.song-transcript-line.is-active .song-word { color:rgba(255,255,255,.18);filter:blur(.35px); }
.song-transcript-line.is-active .song-word.is-sung { color:rgba(255,255,255,.68);filter:none;transform:translateZ(8px); }
.song-transcript-line.is-active .song-word.is-next { color:rgba(255,255,255,.34);filter:none; }
.song-transcript-line.is-active .song-word.is-current {
    position:relative;
    z-index:2;
    color:#fff4d6;
    filter:none;
    transform:translate3d(0,-.04em,28px) scale(1.055);
    text-shadow:0 0 12px color-mix(in srgb,var(--scene-secondary) 82%,transparent),0 0 30px color-mix(in srgb,var(--scene-primary) 42%,transparent),0 10px 22px rgba(0,0,0,.46);
}
.song-transcript-line.is-active .song-word.is-current::after { content:"";position:absolute;left:8%;right:8%;bottom:-.12em;height:3px;border-radius:5px;background:linear-gradient(90deg,transparent,var(--scene-secondary),var(--scene-primary),transparent);box-shadow:0 0 14px var(--scene-secondary);animation:song-word-trace .42s ease-out both; }

.song-player[data-song-moment="crown"] .song-three-stage { border-color:color-mix(in srgb,var(--scene-secondary) 62%,transparent); }
.song-player[data-song-moment="nether"] .song-player-background { filter:saturate(.85) sepia(.18) contrast(1.13) brightness(.48); }
.song-player[data-song-moment="end"] .song-player-background { filter:saturate(.68) hue-rotate(28deg) contrast(1.15) brightness(.46); }
.song-player[data-song-moment="countdown"] .song-lyrics-panel { border-color:color-mix(in srgb,var(--scene-secondary) 48%,transparent); }

@media (hover:hover) {
    .song-player-header,
    .song-player-controls { transition:opacity 380ms ease,transform 480ms cubic-bezier(.16,.78,.18,1); }
    .song-player.is-idle .song-player-header { opacity:0;transform:translateY(-100%);pointer-events:none; }
    .song-player.is-idle .song-player-controls { opacity:0;transform:translateY(100%);pointer-events:none; }
}

.song-action:focus-visible,
.song-icon-button:focus-visible,
.song-transcript-line:focus-visible,
.song-launcher:focus-visible,
.song-range:focus-visible {
    outline:2px solid var(--song-gold-soft);
    outline-offset:3px;
}

@keyframes song-consent-enter { from { opacity:0;transform:translateY(24px) scale(.96); } }
@keyframes song-player-enter { from { opacity:0;transform:scale(1.025); } }
@keyframes song-background-drift { to { transform:scale(1.085) translate3d(-.5%,.4%,0); } }
@keyframes song-ring-spin { to { transform:rotate(360deg); } }
@keyframes song-bar { from { transform:scaleY(.28); } to { transform:scaleY(1); } }
@keyframes song-launcher-pulse { 0% { opacity:.72;transform:scale(.82); } 100% { opacity:0;transform:scale(1.55); } }
@keyframes song-reticle-spin { to { transform:rotate(360deg); } }
@keyframes song-reactor-scan { 0%,100% { transform:translateY(0);opacity:.22; } 50% { transform:translateY(min(36vh,360px));opacity:.82; } }
@keyframes song-word-trace { from { opacity:0;transform:scaleX(.15); } to { opacity:1;transform:scaleX(1); } }
@keyframes song-fallback-float { 50% { transform:translateY(-8px) scale(1.035);filter:drop-shadow(0 30px 40px rgba(79,217,255,.24)); } }

@media (max-width: 980px) {
    .song-player-main { grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:1rem;padding:1rem; }
    .song-art { width:min(34vh,300px); }
    .song-three-stage { width:min(35vh,320px); }
    .song-lyrics-panel { grid-template-rows:auto minmax(0,1fr); }
    .song-player-controls { grid-template-columns:auto minmax(150px,1fr); }
    .song-volume { grid-column:2;justify-self:end; }
}

@media (max-width: 720px) {
    .song-player-header { padding:.55rem .65rem; }
    .song-player-live { display:none; }
    .song-player-main { grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:.55rem;padding:.6rem;overflow:hidden; }
    .song-art-panel { grid-template-columns:auto minmax(0,1fr);gap:.75rem;justify-items:start;align-items:center; }
    .song-art { width:78px; }
    .song-three-stage { width:108px; }
    .song-reactor-readout,.song-reactor-axis,.song-reactor-scan { display:none; }
    .song-reactor-reticle { inset:4%; }
    .song-crown-burst { left:50%;top:20%; }
    .song-art-ring--one,.song-art-ring--two { animation:none; }
    .song-equalizer { display:none; }
    .song-art-meta { text-align:left; }
    .song-art-meta p { font-size:.5rem; }
    .song-art-meta h2 { margin-top:.15rem;font-size:1.15rem; }
    .song-lyrics-panel { grid-template-rows:auto minmax(0,1fr); }
    .song-karaoke-stage { padding:1rem;gap:.7rem; }
    .song-lyric-current { font-size:clamp(1.35rem,7vw,2.05rem); }
    .song-lyric-prev,.song-lyric-next { font-size:.68rem; }
    .song-transcript { padding:5.5rem 1rem 7rem; }
    .song-transcript-list { gap:1.3rem;padding-block:1rem; }
    .song-transcript-line { padding:.08rem 0;font-size:clamp(1.3rem,5.5vw,2.35rem); }
    .song-player-controls { grid-template-columns:1fr;padding:.55rem .65rem;gap:.45rem; }
    .song-transport { justify-content:center; }
    .song-timeline { grid-template-columns:minmax(0,1fr); }
    .song-volume { display:none; }
    .song-consent-content { grid-template-columns:100px minmax(0,1fr); }
    .song-launcher-copy small { display:none; }
}

@media (max-width: 480px) {
    .song-consent-card { padding:1rem; }
    .song-consent-top { align-items:flex-start; }
    .song-consent-status { display:none; }
    .song-consent-content { grid-template-columns:1fr;text-align:center; }
    .song-consent-cover { width:96px;margin-inline:auto; }
    .song-consent-copy h2 { font-size:2.15rem; }
    .song-consent-actions { grid-template-columns:1fr; }
    .song-consent-actions .song-action--primary { grid-row:1; }
    .song-player-brand img { width:38px;height:38px; }
    .song-player-brand strong { font-size:.76rem; }
    .song-art { width:62px; }
    .song-three-stage { width:86px; }
    .song-art-meta span { display:none; }
    .song-lyrics-head { padding:.65rem .75rem;flex-wrap:wrap;row-gap:.25rem; }
    .song-lyrics-head span { font-size:.5rem; }
    .song-chapter { width:100%;font-size:.47rem!important; }
    .song-lyric-current { font-size:clamp(1.18rem,6.5vw,1.7rem); }
    .song-transcript-line { font-size:clamp(1.2rem,7vw,1.75rem);line-height:1.16; }
    .song-icon-button { width:42px;height:42px; }
    .song-play-button { width:50px;height:50px; }
    .song-launcher { right:.6rem;bottom:.6rem;padding:.48rem; }
    .song-launcher-copy { display:none; }
}

@media (max-height: 690px) and (min-width: 721px) {
    .song-player-main { padding:.6rem 1rem; }
    .song-art { width:min(38vh,250px); }
    .song-three-stage { width:min(39vh,270px); }
    .song-equalizer { height:28px; }
    .song-lyrics-panel { grid-template-rows:auto minmax(0,1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .song-consent[open],
    .song-player[open],
    .song-player-background,
    .song-art-ring,
    .song-reactor-reticle,
    .song-reactor-scan,
    .song-three-fallback,
    .song-player.is-playing .song-equalizer i,
    .song-launcher-pulse::after { animation:none !important; }
    .song-action,
    .song-icon-button,
    .song-transcript-line,
    .song-launcher { transition-duration:.01ms !important; }
}

@supports not (backdrop-filter: blur(1px)) {
    .song-player-header,
    .song-player-controls,
    .song-lyrics-panel,
    .song-launcher { background:#07090b; }
}
