/* Atmospheric identities remain behind the original album artwork. */
.environment .signature{position:absolute;inset:0;opacity:.24}
.environment.mer .signature{background:repeating-linear-gradient(120deg,transparent 0 170px,#22b9ff0b 171px 172px,transparent 173px 290px);transform:skewY(-8deg)}
.environment.ven .haze{background:radial-gradient(ellipse,#b271d528,transparent 65%);animation-duration:24s}
.environment.ven .signature{inset:-10%;background:radial-gradient(ellipse at 20% 30%,#b35dca17,transparent 48%),radial-gradient(ellipse at 80% 70%,#e578b313,transparent 42%);animation:velvet-mist 24s ease-in-out infinite alternate}
.environment.ear .haze{background:radial-gradient(ellipse,#ffe1a21c,#57a7830b 40%,transparent 68%);top:10%;animation-duration:24s}
.environment.ear .signature{background:radial-gradient(circle at 20% 25%,#ffdf9980 1px,transparent 3px),radial-gradient(circle at 75% 40%,#ffe9b080 1px,transparent 3px),radial-gradient(circle at 55% 75%,#ffcb7780 1px,transparent 3px);background-size:260px 310px;animation:life-float 18s ease-in-out infinite alternate}
.environment.mar .world-bubble{position:absolute;width:calc(35px + var(--i)*14px);aspect-ratio:1;border-radius:50%;left:calc(5% + var(--i)*15%);top:calc(14% + var(--i)*10%);border:1px solid #ffa5d51c;background:radial-gradient(circle at 30% 25%,#ffc7e713,transparent 65%);box-shadow:inset 0 0 15px #ff5eb008;animation:bubble-drift 20s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-2s)}
.environment.jup .signature{inset:0 8%;background:repeating-linear-gradient(90deg,transparent 0 10%,#d3ba770a 10.2% 10.6%,transparent 11% 20%);mask-image:linear-gradient(transparent,black 20%,black 70%,transparent)}
.environment.jup .haze{background:radial-gradient(ellipse,#d7b45b21,transparent 65%);top:-20%;left:20%;animation-duration:32s}
.environment.cos .signature{background-image:linear-gradient(#648ba10c 1px,transparent 1px),linear-gradient(90deg,#648ba10c 1px,transparent 1px);background-size:140px 140px;mask-image:radial-gradient(ellipse,black,transparent 75%)}
.environment.you .dust{opacity:.07}.environment.you .signature{background:radial-gradient(ellipse at 50% 75%,#ae304114,transparent 60%)}
dialog[data-world=JUP] .world-intro h2{font-family:Georgia,serif;letter-spacing:4px}
dialog[data-world=VEN] .world-intro h2{font-family:Georgia,serif;font-style:italic}
dialog[data-world=MAR] .play-actions button{background:#ffd0e6}
dialog[data-world=EAR] .play-actions button{background:#e2e9cf}
dialog[data-world=JUP] .play-actions button{background:#e7d8a7}
.album img{background:#10131c;filter:brightness(.95)}
.album img[src$="ELON-SAT-10.webp"]{object-fit:contain}
@keyframes velvet-mist{to{transform:translate(4%,3%) scale(1.07)}}
@keyframes life-float{to{transform:translateY(-15px);opacity:.55}}
@keyframes bubble-drift{to{transform:translate(8px,-20px)}}
@media(max-width:900px){.environment .dust{opacity:.08}.environment.mar .world-bubble:nth-of-type(n+5){display:none}.environment .haze{filter:none}.environment .signature{opacity:.18}}
@media(prefers-reduced-motion:reduce){.environment .signature,.environment .world-bubble{animation:none!important}}

/* The image dimensions reserve space, never force a fixed rendered height. */
.album img,.world-stage .album img{height:auto;object-fit:contain;aspect-ratio:auto}
.world-stage .album img{width:112px;max-width:100%}
.unfinished-cover{display:flex;align-items:center;justify-content:center;aspect-ratio:2/3;background:transparent!important;border:1px dashed #ffffff12!important}
.unfinished-cover span{font-size:10px;letter-spacing:3px;color:#716570;opacity:.7}
.detail-unfinished{width:100%;max-width:360px;margin:auto}
@media(max-width:900px){.world-stage .album img{width:100%;max-width:175px}}

/* Pink bubble lounge: light, playful, with readable ink-colored labels. */
dialog[data-world=MAR]{background:#ffe9f4;color:#4a2645;--accent:#c42c87}
dialog[data-world=MAR] .environment{background:radial-gradient(ellipse at 35% 25%,#fff8fc,transparent 55%),linear-gradient(140deg,#ffe5f2,#f7b9df 65%,#d8c8ff)}
dialog[data-world=MAR] .dialog-top{background:#ffeaf2ed;border-color:#9d4c8720}
dialog[data-world=MAR] .world-intro p,dialog[data-world=MAR] .detail p{color:#714963}
dialog[data-world=MAR] .eyebrow,dialog[data-world=MAR] .album span,dialog[data-world=MAR] .source-note{color:#8a567a}
dialog[data-world=MAR] .world-intro h2{color:#cb318c!important;font-weight:700;letter-spacing:-3px}
dialog[data-world=MAR] .album img{box-shadow:0 12px 26px #b7448028;border-radius:14px;filter:none}
dialog[data-world=MAR] .play-actions a{color:#793559;border-color:#a56b8b55}
dialog[data-world=MAR] .play-actions button{background:#c82b87;color:white}
.environment.mar .world-bubble{width:calc(70px + var(--i)*22px);left:calc(3% + var(--i)*14%);top:calc(10% + var(--i)*11%);border:1px solid #fff8;background:radial-gradient(circle at 27% 23%,#fff9,#ffa6d733 40%,#db6ccd2b 70%);box-shadow:inset -8px -12px 24px #f577c523,inset 4px 6px 14px #fff9,0 10px 25px #ca5db315;animation-duration:14s}
.environment.mar .world-bubble span{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(30px,5vw,70px);color:#ed6cab66}
.environment.mar .veil{background:none}
/* A golden palace, structured by tall colonnades and a vaulted ceiling. */
dialog[data-world=JUP]{background:#100c05}
.environment.jup{background:radial-gradient(ellipse at 50% 12%,#c3953255,transparent 50%),linear-gradient(#211806,#080703)!important}
.environment.jup .signature{inset:0 3%;opacity:.7;background:repeating-linear-gradient(90deg,transparent 0 8%,#be96351c 8.2%,#f4d58540 9%,#58391230 10%,transparent 11% 20%);mask-image:linear-gradient(transparent,black 15%,black 85%,transparent)}
.environment.jup .field{inset:3% 12% 12%;border:1px solid #dfba5a35;border-radius:50% 50% 0 0;box-shadow:inset 0 0 0 18px #e5c56a05,inset 0 0 0 20px #e5c56a20,inset 0 0 0 42px #e5c56a05,inset 0 0 0 44px #e5c56a18;transform:perspective(800px) rotateX(-8deg)}
.environment.jup .haze{width:100%;height:90%;left:0;top:-30%;background:conic-gradient(from 145deg at 50% 0,#d9ac3b00,#f2d79025 12deg,#c9971a00 28deg,#f6cf6020 40deg,transparent 62deg);filter:none}
dialog[data-world=JUP] .album img{outline:1px solid #cba64760;outline-offset:7px;box-shadow:0 16px 35px #0008,0 0 25px #bc8f1815}
dialog[data-world=JUP] .album strong{font-family:Georgia,serif;color:#f1dfac}
dialog[data-world=JUP] .dialog-top{background:#171007ed}
/* Blue backstreet: brick walls, spray paint, and a little neon. */
dialog[data-world=MER]{background:#06111b}
.environment.mer{background:radial-gradient(ellipse at 18% 42%,#008fc325,transparent 60%),linear-gradient(100deg,#030910,#102335 55%,#040a11)!important}
.environment.mer .field{inset:0;background-image:linear-gradient(#8b9dae12 2px,transparent 2px),linear-gradient(90deg,#8493a312 2px,transparent 2px);background-size:100% 45px,95px 90px;transform:perspective(900px) rotateY(8deg) scale(1.12)}
.environment.mer .signature{inset:0;opacity:.6;transform:rotate(-9deg) scale(1.2);background:linear-gradient(118deg,transparent 28%,#16baff22 28.4% 29.2%,transparent 29.6% 47%,#168ec930 47.5% 49%,transparent 50%),repeating-linear-gradient(170deg,transparent 0 180px,#059bdc18 184px 192px,transparent 194px 270px)}
.environment.mer .street-tag{position:absolute;left:3%;top:30%;font-size:clamp(65px,12vw,160px);font-weight:900;font-style:italic;letter-spacing:-10px;transform:rotate(-12deg);color:transparent;-webkit-text-stroke:2px #25baff2b;opacity:.65}
.environment.mer .street-tag:last-child{left:auto;right:2%;top:65%;font-size:clamp(50px,8vw,110px);transform:rotate(9deg)}
dialog[data-world=MER] .album img{outline:1px solid #2d749c45;outline-offset:4px}
/* Venus breathes in slow, overlapping clouds of violet smoke. */
dialog[data-world=VEN]{background:#160b24}
.environment.ven{background:radial-gradient(ellipse at 50% 55%,#54204a55,transparent 70%),linear-gradient(135deg,#130821,#281032,#100b22)!important}
.environment.ven .haze{width:130vw;height:100vh;left:-25%;top:0;background:radial-gradient(ellipse at 28% 38%,#e7a1d849,transparent 32%),radial-gradient(ellipse at 70% 60%,#8a59d04d,transparent 35%);filter:blur(35px);animation:venus-smoke 22s ease-in-out infinite alternate}
.environment.ven .signature{inset:-25%;opacity:.8;background:radial-gradient(ellipse at 30% 60%,#d76db933,transparent 24%),radial-gradient(ellipse at 70% 25%,#b995ef35,transparent 28%),radial-gradient(ellipse at 55% 80%,#f0b5d820,transparent 20%);filter:blur(25px);animation:venus-smoke 29s ease-in-out -12s infinite alternate-reverse}
dialog[data-world=VEN] .album img{box-shadow:0 18px 35px #0007,0 0 30px #c670bf15}
@keyframes venus-smoke{from{transform:translate(-3%,-2%) scale(.94);opacity:.5}to{transform:translate(8%,5%) scale(1.15);opacity:.95}}
/* The original Jazz artwork keeps all four corners; only its position orbits. */
.sat-stage .album img{border-radius:2px;outline-offset:5px}
.unfinished-cover{border:0!important;background:none!important}
@media(max-width:900px){.environment.ven .haze,.environment.ven .signature{filter:none}.environment.mer .street-tag{letter-spacing:-5px}.environment.jup .field{inset:8% 5% 5%;box-shadow:inset 0 0 0 12px #e5c56a05,inset 0 0 0 14px #e5c56a20}.sat-stage .album:nth-of-type(even){margin-top:20px}}
@media(prefers-reduced-motion:reduce){.environment.ven .haze,.environment.ven .signature{animation:none!important}}

.close-placeholder{display:block;width:44px;flex-shrink:0}
.detail .portrait{display:block;height:auto;object-fit:contain;aspect-ratio:2/3}
/* Sun: heat rises from below, leaving the original artwork unobstructed. */
dialog[data-world=SUN]{background:#110501}
dialog[data-world=SUN] .environment{background:radial-gradient(ellipse at 50% 115%,#fa651f66,transparent 65%),linear-gradient(#0d0301,#260901)!important}
.environment.sun .field{inset:0;background:radial-gradient(ellipse at 25% 100%,#ff420031,transparent 48%),radial-gradient(ellipse at 75% 100%,#ffa12b25,transparent 45%);animation:none;scale:1}
.environment.sun .haze{width:110%;height:60%;top:auto;bottom:-28%;left:-5%;background:radial-gradient(ellipse,#ffd9683b,#ff4b1626 40%,transparent 70%);filter:blur(20px);animation:solar-breath 12s ease-in-out infinite alternate}
.environment.sun .dust{opacity:.18;background-image:radial-gradient(circle,#ffbc5e88 1px,transparent 2px);background-size:139px 157px;animation:ember-rise 18s linear infinite}
.environment.sun .veil{background:linear-gradient(#10040055,transparent 65%)}
.environment.sun .solar-flame{position:absolute;width:24%;height:65%;left:calc(-7% + var(--i)*23%);bottom:-35%;border-radius:80% 20% 65% 35% / 90% 50% 50% 10%;background:radial-gradient(ellipse at 50% 90%,#ffce6249,#ff591c30 36%,#be160910 60%,transparent 73%);filter:blur(16px);transform-origin:50% 100%;animation:flame-rise 9s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-1.7s);opacity:.55}
dialog[data-world=SUN] .dialog-top{background:#190601ed}
dialog[data-world=SUN] .album img{box-shadow:0 16px 35px #0008,0 0 24px #ff641510;filter:none}
dialog[data-world=SUN] .album span{color:#b48b75}
dialog[data-world=SUN] .album strong{color:#ffe6d5}
@keyframes flame-rise{from{transform:translateY(5%) skewX(-6deg) scaleY(.85);opacity:.4}to{transform:translateY(-13%) skewX(7deg) scaleY(1.2);opacity:.65}}
@keyframes ember-rise{from{transform:translateY(70px);opacity:.05}to{transform:translateY(-87px);opacity:.2}}
@keyframes solar-breath{to{transform:scale(1.1);opacity:.65}}
@media(max-width:900px){.environment.sun .solar-flame{filter:none;height:45%;bottom:-23%;opacity:.3}.environment.sun .haze{filter:none}.environment.sun .solar-flame:nth-of-type(even){display:none}}
@media(prefers-reduced-motion:reduce){.environment.sun .solar-flame,.environment.sun .dust,.environment.sun .haze{animation:none!important}}

/* A calmer editorial rhythm: one short introduction and one sound label. */
.detail .album-sound{display:inline-block;margin:8px 0 12px;padding:9px 14px;border:1px solid #ffffff20;border-radius:20px;font-size:11px;line-height:1.5;color:#c3ccd7;background:#060b1466;white-space:normal}
.detail p:not(.album-sound){max-width:520px}
dialog[data-world=MAR] .album-sound{color:#8b3970;border-color:#a3628c33;background:#fff6}
dialog[data-world=COS] .world-intro h2{color:#7bb1e5!important}
dialog[data-world=COS] .dialog-top{background:#060d1ced}
dialog[data-world=COS] .album img{box-shadow:0 14px 35px #0008,0 0 22px #559eff14}
/* Blue club and intimate teal bar, with no lettering painted into the room. */
dialog[data-world=MER] .dialog-top{background:#061321ed}
dialog[data-world=MER] .world-intro h2{color:#5bd2ff!important;text-shadow:0 0 25px #259fff25}
dialog[data-world=MER] .album img{outline:none;box-shadow:0 16px 35px #0008,0 0 18px #18baff20}
dialog[data-world=SAT]{background:#071715}
dialog[data-world=SAT] .dialog-top{background:#081b1aed}
dialog[data-world=SAT] .world-intro h2{color:#83d8cf!important}
.sat-stage .album img{outline:1px solid #af96744d;box-shadow:0 15px 35px #000a;border-radius:2px}
.sat-stage .stage-core{opacity:.38}
.sat-stage .scene-links{opacity:.4}
/* Earth: fern silhouettes frame a green clearing, with warm life lights. */
dialog[data-world=EAR]{background:#07140a}
.environment.ear{background:radial-gradient(ellipse at 50% 5%,#77a8632b,transparent 60%),radial-gradient(ellipse at 50% 75%,#173f2759,transparent 65%),linear-gradient(#07130c,#0e2815)!important}
.environment.ear .forest-canopy{position:absolute;inset:0;width:100%;height:100%;color:#4b965b;pointer-events:none;filter:drop-shadow(0 0 15px #15361c);opacity:.85}
.environment.ear .field{inset:0;background:repeating-linear-gradient(107deg,transparent 0 13%,#b5e88e07 13.5% 17%,transparent 17.5% 29%);mask-image:linear-gradient(black,transparent 75%)}
.environment.ear .haze{left:10%;top:15%;background:radial-gradient(ellipse,#87b76d18,transparent 66%);animation-duration:30s}
.environment.ear .signature{background:radial-gradient(circle at 20% 25%,#ffe198aa 1px,transparent 3px),radial-gradient(circle at 75% 40%,#f1efb780 1px,transparent 3px),radial-gradient(circle at 55% 75%,#a9df9080 1px,transparent 3px);background-size:330px 370px;opacity:.4}
dialog[data-world=EAR] .dialog-top{background:#091a10ed}
dialog[data-world=EAR] .album img{box-shadow:0 16px 35px #0007,0 0 25px #75a25b13}
/* Venus: large translucent wisps move slowly around the edges. */
.environment.ven .smoke-ribbon{position:absolute;left:calc(-35% + var(--i)*28%);top:calc(-25% + var(--i)*18%);width:110%;height:90%;border-radius:47% 53% 29% 71% / 60% 30% 70% 40%;background:radial-gradient(ellipse at 30% 40%,#c59afa22,transparent 33%),radial-gradient(ellipse at 60% 60%,#df89ce20,transparent 27%);box-shadow:inset 30px 20px 65px #bc84ce14;filter:blur(30px);opacity:.75;animation:venus-wisp 32s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-8s)}
.environment.ven .signature{opacity:.65}
dialog[data-world=VEN] .dialog-top{background:#1a0c23ed}
@keyframes venus-wisp{from{transform:translate(-3%,2%) rotate(-8deg) scale(.95)}to{transform:translate(6%,-3%) rotate(7deg) scale(1.08)}}
/* AI: silver machinery, engineered panels, and cool white signals. */
dialog[data-world=AI]{--world-rgb:183,190,198;background:#121416}
.environment.ai{background:radial-gradient(ellipse at 50% 20%,#b9c3cd16,transparent 62%),linear-gradient(130deg,#101215,#262b30,#101215)!important}
.environment.ai .field{background-image:linear-gradient(#ccd2d612 1px,transparent 1px),linear-gradient(90deg,#ccd2d612 1px,transparent 1px);background-size:90px 90px;transform:perspective(1000px) rotateX(35deg) scale(1.5)}
.environment.ai .signature{inset:0;background:linear-gradient(90deg,transparent 4%,#d5dce60c 4.2% 4.4%,transparent 4.6% 95%,#d5dce60c 95.2% 95.4%,transparent 95.6%),repeating-linear-gradient(0deg,transparent 0 130px,#05070942 131px 133px,#cad0d90d 134px 135px,transparent 136px 180px);opacity:.6}
.environment.ai .haze{background:linear-gradient(transparent,#dce5ed12,transparent)}
dialog[data-world=AI] .dialog-top{background:#171a1ded}
dialog[data-world=AI] .album img{outline-color:#c9d3de30}
@media(max-width:900px){.environment.ven .smoke-ribbon{filter:none;box-shadow:none}.environment.ven .smoke-ribbon:nth-of-type(n+2){display:none}.environment.ear .forest-canopy{filter:none;opacity:.55}.detail .album-sound{font-size:10px}}
@media(prefers-reduced-motion:reduce){.environment.ven .smoke-ribbon{animation:none!important}}

.game-library-caption{max-width:1100px;margin:0 auto 28px;padding:0 6vw;text-align:center;color:#e8d6a7;font-size:13px;letter-spacing:1px}
dialog[data-world=JUP] .game-library{gap:32px 22px;align-items:start}
dialog[data-world=JUP] .game-case{position:relative;min-width:0;padding:24px 12px 28px;border:1px solid #eac16a66;border-radius:12px 12px 5px 5px;background:linear-gradient(135deg,#2e231de8,#100d0aee);box-shadow:5px 6px 0 #0a0808,6px 7px 0 #c9a85855,0 12px 26px #0007;transition:transform .2s,box-shadow .2s}
dialog[data-world=JUP] .game-case:hover,dialog[data-world=JUP] .game-case:focus-visible{transform:translateY(-6px);box-shadow:5px 10px 0 #0a0808,6px 11px 0 #f9d68e,0 0 30px #f2c75e33}
dialog[data-world=JUP] .game-case img{width:100%;border:1px solid #e5c56a44;border-radius:3px;box-shadow:none;filter:none}
dialog[data-world=JUP] .game-case strong{display:block;font-family:Georgia,serif;font-size:16px;color:#fff1c5;margin-top:10px}
dialog[data-world=JUP] .game-case .game-slot{position:absolute;top:5px;left:12px;font-size:10px;color:#dcb966;letter-spacing:3px;margin:0}
.game-contacts{position:absolute;bottom:0;left:30%;width:40%;height:9px;background:repeating-linear-gradient(90deg,#dbb35e 0 4px,#594727 4px 6px);border-radius:2px 2px 0 0}
@media(max-width:900px){dialog[data-world=JUP] .game-library{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px;padding:0 7vw 60px}dialog[data-world=JUP] .game-case{padding:22px 9px 24px}dialog[data-world=JUP] .game-case strong{font-size:14px}}
@media(prefers-reduced-motion:reduce){dialog[data-world=JUP] .game-case{transition:none}}
