/* Music DNA — listening lounge */
:root{color-scheme:dark;background:#100e18;color:#f7f1eb}
body{background:radial-gradient(ellipse at 85% 10%,#59265545,transparent 40%),radial-gradient(ellipse at 5% 45%,#37236840,transparent 50%),#100e18}
header{border-color:#ffffff18;padding-top:24px;padding-bottom:24px}
header a{font-size:30px;letter-spacing:-1.8px}
header a::before{content:'◉';color:#ffac81;margin-right:10px}
header small{margin-left:40px;color:#b2a6bf;font-size:10px}
header>.tag{color:#d3bddf;border:1px solid #ffffff20;padding:7px 12px;border-radius:30px;font-size:10px}
footer{border-color:#ffffff18;color:#a59bae;line-height:1.9}
p{color:#bfb4cc}
button{background:#ffffff07;border-color:#ffffff24;border-radius:14px;transition:background .2s,border-color .2s,transform .2s}
button:hover{background:#ffffff12;border-color:#d2b1ff;transform:translateY(-2px)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ffba91;outline-offset:5px}
.primary{background:linear-gradient(115deg,#ffc69a,#ff988f);color:#231324;border:0;box-shadow:0 8px 32px #ff9b7626}
.primary:hover{background:linear-gradient(115deg,#ffd7b9,#ffa3a8)}
.eyebrow{color:#ffba91;font-size:11px;letter-spacing:3px}
.muted{color:#a99bb6}
.intro{position:relative;max-width:none;min-height:610px;display:grid;grid-template-columns:1.04fr 1fr;align-items:center;gap:24px;padding:45px 0}
.intro-copy{position:relative;z-index:2}
.intro h1{font-size:clamp(42px,5.5vw,66px);letter-spacing:-.06em;line-height:1.3;margin:24px 0}
.intro h1::after{content:'';display:block;width:64px;height:4px;margin-top:26px;background:linear-gradient(90deg,#ffb38c,#a681f8);border-radius:3px}
.intro p{line-height:1.95;font-size:16px}
.intro .muted{font-size:12px}
.hero-art{position:relative;min-width:0;isolation:isolate}
.hero-art img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50% 50% 18px 18px;border:1px solid #ffffff20;box-shadow:0 30px 100px #0008}
.hero-art::before{content:'';position:absolute;inset:10%;background:#a44df566;filter:blur(70px);z-index:-1}
.art-caption{position:absolute;bottom:22px;left:-12px;right:25px;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 20px;border:1px solid #ffffff25;background:#201527d9;backdrop-filter:blur(15px);border-radius:14px;color:#f4dece;font-size:11px;letter-spacing:2px}
.art-caption strong{font-size:20px;color:#ffc598}
.experience-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ffffff18;border:1px solid #ffffff18;border-radius:18px;overflow:hidden;margin:16px 0 35px}
.experience-strip>div{padding:25px;background:#191320}
.experience-strip small{color:#ceac90;font-size:10px;letter-spacing:2px}
.experience-strip strong{display:block;margin:10px 0;color:#eee2f4;font-size:18px}
.experience-strip p{font-size:13px;line-height:1.8;margin:0}
.question{position:relative;max-width:820px;padding:34px;background:linear-gradient(140deg,#251e32eb,#15111fed);border:1px solid #ffffff16;border-radius:26px;box-shadow:0 30px 80px #0004;margin:30px auto}
.question .steps{color:#cdb7e4;display:flex;align-items:center;gap:14px;padding-right:5px}
.question .steps svg{width:42px;height:42px;flex-shrink:0;color:#f6b99e;padding:8px;background:#ffffff08;border-radius:12px}
.question h1{color:#fff5ee}
.progress{background:#ffffff0b;height:5px;border-radius:10px;overflow:hidden}
.progress div{background:linear-gradient(90deg,#ac8dff,#ffb78d);box-shadow:0 0 20px #c4a0ff;transition:width .2s}
.choice button{background:linear-gradient(150deg,#ffffff08,#ffffff02);border-color:#ffffff20;position:relative;box-shadow:0 10px 20px #0001}
.choice button::before{display:grid;place-items:center;width:32px;height:32px;border:1px solid #d4b4fa50;background:#ab84fa16;border-radius:10px;letter-spacing:0;color:#d9bef8;font-size:12px}
.choice button:nth-child(2)::before{border-color:#ffc39b50;background:#ffbe8e13;color:#ffc49c}
.choice button:hover{border-color:#b99ce6;background:#a381d913}
[aria-pressed=true]{background:#9f74db26!important;border-color:#c7a4fb!important;box-shadow:inset 3px 0 #d6b4ff}
.question .states button{border-radius:30px;color:#c2b6cf}
.question .actions{border-top:1px solid #ffffff10;padding-top:22px;margin-bottom:12px;justify-content:space-between}
.question .muted{font-size:11px}
.result-card{border-color:#ffffff20;border-radius:24px;box-shadow:0 20px 60px #0003}
.cover{min-height:260px;isolation:isolate;overflow:hidden;padding:36px;padding-right:240px;background:linear-gradient(120deg,#20182b,#33253d);color:#fff1e6;border-bottom:1px solid #ffffff16}
.cover::before{content:'';position:absolute;width:280px;height:280px;right:-60px;top:-90px;border-radius:50%;background:var(--accent);opacity:.15;filter:blur(30px);z-index:-1}
.cover .tag{color:var(--accent);font-size:10px;line-height:1.8}
.cover h2{font-size:clamp(30px,4vw,46px);color:#fff5ed}
.cover p{color:#d4c8dd;font-size:17px}
.album-emblem{position:absolute;right:28px;top:50%;transform:translateY(-50%) rotate(-12deg);width:170px;height:170px;display:grid;place-items:center;border-radius:28px;border:1px solid #ffffff25;background:linear-gradient(135deg,#ffffff13,#ffffff03);box-shadow:14px 14px 0 #ffffff04,0 20px 50px #0004;color:var(--accent)}
.album-emblem svg{width:100px;height:100px;filter:drop-shadow(0 8px 20px #0004)}
.body{background:#1a1523;padding:32px}
.body p{color:#c5b9d0;max-width: 60ch}
.body>strong{font-size:11px;color:#ffbb92;letter-spacing:1px}
.body h3{font-size:25px;color:#fff0e2}
.body audio{border-radius:14px;margin:20px 0;accent-color:#cda4ff}
.body .states [aria-pressed=true]{color:#fff}
.summary{background:#201929;border:1px solid #ffffff18;padding:20px;border-radius:16px}
summary{cursor:pointer;padding:8px;color:#dacbe4}
@media(max-width:760px){
 .intro{grid-template-columns:1fr;min-height:0;padding-top:25px;gap:25px}
 .hero-art{max-width:420px;width:100%;margin:auto}
 .hero-art img{aspect-ratio:1.25;border-radius:28px}
 .intro h1{font-size:clamp(40px,8vw,58px)}
 .art-caption{left:15px;right:15px;bottom:15px;padding:14px}
 .experience-strip{grid-template-columns:1fr}.experience-strip>div{padding:20px}
 .question{padding:24px 20px;margin:18px auto}
 .cover{padding:26px;padding-right:110px;min-height:220px}
 .album-emblem{right:15px;width:80px;height:100px;border-radius:18px}
 .album-emblem svg{width:60px;height:60px}
 .cover h2{font-size:30px}.cover p{font-size:15px}
 .body{padding:24px}.question .actions{gap:12px}
 header>.tag{font-size:8px;letter-spacing:1px;padding:6px 8px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Headings receive programmatic focus for screen-reader navigation only. */
#app h1[tabindex="-1"]:focus { outline: none; }

.feedback-panel{border-top:1px solid #ffffff18;margin-top:28px;padding-top:20px}
.feedback-panel h3{font-size:18px}.feedback-panel [role=status]{color:#ffcfb3}
.release-songs{border-top:1px solid #ffffff18;margin-top:28px;padding-top:28px}
.release-song{padding:22px;margin:14px 0;border:1px solid #ffffff22;border-radius:16px;background:#ffffff04}
.release-song>strong{font-size:21px;color:#fff2e7}.release-song p{margin:10px 0}
.release-song small{color:#b8a9c6;line-height:1.7}
.music-link{display:inline-block;margin-top:18px;padding:11px 18px;border-radius:10px;border:1px solid #eea49c80;color:#ffcfbd;text-decoration:none;background:#f9928010;line-height:1.6}
.music-link:hover{background:#f9928025}.music-link:focus-visible{outline:3px solid #ffba91;outline-offset:4px}
.comparison{margin:20px 0;padding:20px;border:1px solid #c7a4fb60;border-radius:16px}
.comparison audio{width:100%}
