/* Shared transport and listening space. The waveform is decoded from the
   selected audio; decorative motion follows the real playback state. */
:root{--player-height:108px}
.player{left:18px;right:18px;bottom:14px;width:auto;height:112px;border:1px solid #d4c5ff26;border-radius:22px;background:linear-gradient(120deg,#171321ed,#10131deb 60%,#191322ed);box-shadow:0 18px 70px #0008,inset 0 1px #ffffff09;backdrop-filter:blur(32px);padding:14px 22px;display:grid;grid-template-columns:minmax(170px,.85fr) minmax(240px,1.2fr) minmax(265px,.95fr);gap:24px;isolation:isolate}
.player:before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at 25% 0,#ae72ff12,transparent 55%);z-index:-1;pointer-events:none}
.player-track{gap:13px;min-width:0}.player-track>div{min-width:0}.player-art{width:64px;height:64px;border-radius:14px;border:1px solid #dfbcff2a;box-shadow:0 7px 25px #0005;flex-shrink:0}.player-track #track-title{font-size:.88rem;letter-spacing:-.015em}.player-track #track-origin{font-size:.7rem;line-height:1.5;margin-top:5px;color:#a9a2b6}.player-track>.icon-button{width:30px;height:38px}
.player-center{min-width:0;align-self:center}.player .transport{gap:15px}.player .play-button{width:43px;height:43px;border-radius:50%;background:#e6d9ff;color:#20132e;box-shadow:0 0 25px #b781ff25;border:1px solid #fff8}.player .transport>.icon-button{height:33px;width:33px}.player .timeline{margin-top:4px;gap:10px;font-size:.62rem;color:#b3a9c4}.player .waveform{height:25px}.player .waveform canvas{height:25px}.player .waveform input{height:25px;margin:0;opacity:0}.player .waveform:focus-within{outline:1px solid #d4c0ff;border-radius:4px;outline-offset:4px}
.player-extra{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;justify-content:end}.player-extra .continuation{grid-column:2;grid-row:1 / span 2;min-width:0}.player-extra .switch{font-size:.7rem;gap:7px}.player-extra #queue-status{font-size:.61rem;color:#a9a2ba;line-height:1.35;display:block;margin-top:5px;max-width:145px}.player-extra>.volume-button{grid-column:1;grid-row:2;width:30px;height:24px}.player-extra>#volume{grid-column:2;grid-row:3;width:100%;max-width:130px;display:none}.player-extra>[data-action="queue"]{grid-column:3;grid-row:1;width:30px;height:30px}.player-extra>.expand-button{grid-column:3;grid-row:2;width:30px;height:30px}.player-room-button{grid-column:1;grid-row:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid #c7a4ff40;border-radius:9px;background:#a37ada13;color:#dbc4ff;font-size:.66rem;font-weight:650;white-space:nowrap;min-height:34px}.player-room-button .icon{width:15px;height:15px}.player-room-button:hover:not(:disabled){background:#b987ff23;border-color:#d0b1ff8c}.player-room-button[aria-busy="true"]{opacity:.65}
#modal.player-dialog{width:min(1040px,calc(100vw - 40px));max-width:1040px;background:radial-gradient(ellipse at 15% 45%,#45205755,transparent 56%),#0e101b;border:1px solid #c1a4e836;border-radius:25px;box-shadow:0 40px 150px #000b;max-height:calc(100dvh - 36px)}
.player-dialog .dialog-head{padding:22px 28px;border-bottom:0}.player-dialog .dialog-head h2{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:#b9aaca;font-weight:550}.player-dialog .dialog-body{padding:0 36px 36px}.listening-space{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(280px,1.1fr);gap:45px;align-items:center}.listening-art-scene{position:relative;min-height:410px;display:grid;place-content:center;isolation:isolate;overflow:hidden}.listening-art-scene:before{content:'';position:absolute;width:84%;aspect-ratio:1;border-radius:50%;background:#a955db1a;filter:blur(45px);inset:10% 8%;z-index:-1}.listening-space .expanded-art{width:min(290px,100%);height:auto;aspect-ratio:1;border-radius:24px;margin:auto;border:1px solid #d9bfff4d;box-shadow:0 20px 65px #0007,0 0 70px #ce77fc13;transform:rotate(-5deg);position:relative;z-index:2}.listening-orbit{position:absolute;width:98%;height:77%;left:1%;top:8%;border:1px solid #d5b2ed24;border-radius:50%;transform:rotate(-28deg);pointer-events:none}.listening-orbit.secondary{width:80%;height:100%;top:0;left:10%;transform:rotate(36deg);border-color:#ac9bcc17}.music-playing .listening-orbit{animation:listening-orbit 30s linear infinite}.music-playing .listening-orbit.secondary{animation-direction:reverse;animation-duration:42s}.listening-art-caption{position:absolute;bottom:14px;text-align:center;left:0;right:0;font-size:.54rem;letter-spacing:.27em;color:#cbb8d88c}.listening-copy .section-label{margin:0 0 13px;font-size:.58rem;letter-spacing:.17em;color:#b899d6}.listening-copy h2{font-size:clamp(1.8rem,3.5vw,3rem);line-height:1.05;letter-spacing:-.05em;text-wrap:balance}.listening-copy .expanded-origin{text-align:left;margin:12px 0 18px;font-size:.76rem;color:#a9a5b9}.listening-copy .expanded-progress{font-size:.61rem;gap:10px}.expanded-wave-track{position:relative;min-width:0;flex:1;height:64px}.expanded-wave-track canvas{height:100%;width:100%}.expanded-wave-track input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0}.expanded-wave-track:focus-within{outline:2px solid #c3a2f7;outline-offset:5px;border-radius:8px}.listening-copy .expanded-transport{gap:27px;margin:16px 0 26px}.listening-copy .play-button{width:62px;height:62px;background:#e4d5ff;color:#281333;border-radius:50%;box-shadow:0 0 42px #b583ff25}.listening-copy .expanded-transport>.icon-button{width:44px;height:44px;border:1px solid #c8b5e621;border-radius:50%}.listening-next{display:flex;justify-content:space-between;align-items:center;border-block:1px solid #b299d01d;padding:17px 0;gap:15px}.listening-next .section-label{margin-bottom:5px;display:block;font-size:.52rem}.listening-next strong{font-size:.76rem;font-weight:500;line-height:1.5}.listening-next .text-button{font-size:.66rem;padding:7px 0;gap:7px;color:#d2bbeb}.listening-next .icon{width:17px}.listening-copy .expanded-switch{font-size:.76rem;justify-content:flex-start;margin-top:20px}.listening-copy .expanded-help{text-align:left;font-size:.66rem;margin:8px 0 10px;color:#938a9f}.listening-copy .expanded-options{align-items:center;justify-content:space-between;font-size:.73rem}.listening-copy .expanded-options .text-button{padding-left:0}.listening-copy .expanded-volume{margin:0;gap:9px}.listening-copy .expanded-volume input{width:95px}.listening-copy .expanded-volume .icon{width:17px}.listening-room-cta{width:100%;display:flex;align-items:center;text-align:left;gap:13px;margin-top:17px;padding:15px 16px;background:linear-gradient(120deg,#79418a38,#4e36732e);border:1px solid #d2adf14a;border-radius:13px;color:#e9d8ff}.listening-room-cta>span{flex:1}.listening-room-cta strong{display:block;font-size:.84rem;letter-spacing:-.015em}.listening-room-cta small{display:block;font-size:.6rem;color:#c0a9d4;margin-top:4px}.listening-room-cta:hover:not(:disabled){background:linear-gradient(120deg,#79418a58,#4e36734e);border-color:#d2adf18a}.listening-room-cta>.icon:last-child{width:18px}
.queue-summary{padding:4px 0 18px}.queue-summary .section-label{font-size:.61rem;margin:0 0 12px}.queue-summary h2{font-size:1.65rem;letter-spacing:-.05em}.queue-summary p:last-child{font-size:.78rem;color:#b1a4c1;margin-top:8px}.queue-preparing{display:flex;gap:13px;align-items:center;padding:19px 15px;background:#ba8ee50b;border:1px solid #c49bea20;border-radius:12px;margin:18px 0}.queue-preparing strong,.queue-preparing small{display:block}.queue-preparing strong{font-size:.78rem;font-weight:500}.queue-preparing small{font-size:.67rem;color:#a899b7;margin-top:4px}.queue-progress-dot{width:8px;height:8px;border-radius:50%;background:#caabf4;box-shadow:0 0 18px #c593ef60;flex-shrink:0}
.room-continuation{margin:18px 0;padding:17px;background:#b394e109;border:1px solid #b394e129;border-radius:14px}.room-continuation label{display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.room-continuation input{accent-color:#c6a2ff;width:19px;height:19px}.room-continuation p{font-size:.71rem;color:#ada0bd;margin:8px 0 0;line-height:1.6}.room-continuation button{margin-top:9px;font-size:.75rem;color:#d0b0ff}
@keyframes listening-orbit{to{transform:rotate(332deg)}}
@media(min-width:1500px){.player{grid-template-columns:1fr 1.25fr 1fr;gap:38px;padding-inline:28px}.player-extra{grid-template-columns:auto auto 1fr auto auto;gap:13px}.player-extra>.player-room-button{grid-column:1;grid-row:1 / span 2}.player-extra>[data-action="queue"]{grid-column:2;grid-row:1 / span 2}.player-extra .continuation{grid-column:3}.player-extra>.volume-button{grid-column:4;grid-row:1}.player-extra>#volume{grid-column:4;grid-row:2;display:block;width:75px}.player-extra>.expand-button{grid-column:5;grid-row:1 / span 2}}
@media(max-width:1050px){.player{grid-template-columns:minmax(140px,.8fr) minmax(200px,1fr) minmax(130px,.6fr);gap:12px;padding:12px 15px}.player-track>.icon-button{display:none}.player-extra{grid-template-columns:1fr auto}.player-extra .continuation{display:none}.player-extra>.player-room-button{grid-column:1;grid-row:1}.player-extra>[data-action="queue"]{grid-column:2;grid-row:1}.player-extra>.volume-button{grid-column:1;grid-row:2}.player-extra>.expand-button{grid-column:2;grid-row:2}.player .transport{gap:9px}.player-track #track-title{font-size:.79rem}.player-art{width:50px;height:50px}.listening-space{gap:25px}.listening-art-scene{min-height:360px}.player-dialog .dialog-body{padding:0 24px 24px}}
@media(max-width:700px){:root{--player-height:126px}.player{height:106px;left:8px;right:8px;bottom:8px;border-radius:17px;grid-template-columns:minmax(110px,1fr) auto;grid-template-rows:52px 24px;gap:7px 10px;padding:10px 13px}.player-track{grid-column:1;grid-row:1;gap:10px}.player-art{width:43px;height:43px;border-radius:9px}.player-track #track-title{font-size:.79rem}.player-track #track-origin{font-size:.6rem;margin-top:3px}.player-center{display:contents}.player .transport{grid-column:2;grid-row:1;gap:5px}.player .transport .secondary-transport,.player .transport>[data-action="previous"]{display:none}.player .play-button{width:38px;height:38px}.player .timeline{grid-column:1;grid-row:2;margin:0;gap:7px}.player .timeline .waveform{min-width:30px}.player-extra{grid-column:2;grid-row:2;display:flex;justify-content:flex-end;gap:5px}.player-extra>.player-room-button{padding:3px 6px;min-height:24px;font-size:.56rem;border-radius:6px}.player-extra>.player-room-button .icon{width:12px;height:12px}.player-extra>.volume-button,.player-extra>.expand-button,.player-extra>#volume{display:none}.player-extra>[data-action="queue"]{width:24px;height:24px}.player-extra>[data-action="queue"] .icon{width:16px;height:16px}#modal.player-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px);border-radius:20px}.player-dialog .dialog-head{padding:16px 19px}.player-dialog .dialog-body{padding:0 20px 23px}.listening-space{grid-template-columns:1fr;gap:0}.listening-art-scene{min-height:220px;max-width:270px;margin:auto;width:100%}.listening-space .expanded-art{width:170px;border-radius:17px}.listening-art-caption{bottom:7px;font-size:.45rem}.listening-copy>.section-label{margin-top:12px}.listening-copy h2{font-size:1.9rem}.listening-copy .expanded-origin{margin-bottom:4px}.listening-copy .expanded-transport{margin:9px 0 19px;gap:30px}.listening-copy .play-button{width:53px;height:53px}.listening-copy .expanded-switch{margin-top:15px}.listening-room-cta{margin-top:12px}.listening-next{padding:12px 0}.expanded-wave-track{height:48px}}
@media(prefers-reduced-motion:reduce){.music-playing .listening-orbit{animation:none}}
/* Keep the everyday transport quiet; the expanded space carries the depth. */
@media(min-width:701px){.player{height:84px;bottom:12px;padding-block:8px;border-radius:18px}.player-art{width:49px;height:49px;border-radius:10px}.player .play-button{width:35px;height:35px}.player .transport>.icon-button{height:27px;width:30px}.player .timeline{margin-top:0}.player .waveform,.player .waveform canvas{height:20px}.player .transport{gap:12px}.player-extra{row-gap:1px}.player-room-button{min-height:29px;padding-block:6px}.player-extra>.volume-button,.player-extra>.expand-button{height:25px}.player .timeline{font-size:.58rem}}
body:not(.has-audio) .player-art{display:grid;place-items:center;background:#c5b7d20a;border-color:#c5b7d218;box-shadow:none;color:#a79aae}body:not(.has-audio) .player-art .icon{width:21px;height:21px}body:not(.has-audio) .player-track #track-origin{color:#8f879b}
.listening-delivery-issue{padding:17px 18px;margin:14px 0;border:1px solid #cab2a737;border-left:2px solid #cdb49677;border-radius:12px;background:#bdab9508}.listening-delivery-issue .section-label,.listening-delivery-issue>small{display:block;margin:0 0 8px;color:#c5b3a5;font-size:.62rem;letter-spacing:.04em}.listening-delivery-issue h3{margin:0;font-size:.88rem;font-weight:500;color:#e9e0e5}.listening-delivery-issue p{margin:8px 0 3px;color:#b6acb9;font-size:.73rem;line-height:1.6}.listening-delivery-issue button{margin-top:8px;padding:7px 0;color:#d4c4e5;font-size:.74rem;text-align:left}.listening-delivery-issue button:disabled{color:#99909f;cursor:progress}.room-continuation .listening-delivery-issue{margin-top:16px;padding:14px;background:#bdab9505}.room-return{white-space:nowrap}@media(max-width:520px){.topbar .import-trigger.lab-import{display:none}.topbar .room-return{font-size:10px;min-height:36px;padding:8px 10px}}

/* The listening stage is an actual audio-reactive WebGL scene. These rules
   frame it as a listening space; no CSS animation stands in for audio data. */
.player{background:linear-gradient(108deg,#16151ced,#111319f5 52%,#17171eed);border-color:#c6b9db24;box-shadow:0 12px 52px #0009,inset 0 1px #e9e2f508}
.player:before{background:radial-gradient(ellipse at 18% 0,#c0b4d30a,transparent 58%)}
.player .play-button{background:#dfd6eb;box-shadow:0 2px 16px #0003;border-color:#f9f0ff6b;color:#27222e}
.player-room-button{background:#ccc0df0a;color:#d1c7df;border-color:#c9b9e337;font-weight:500;letter-spacing:.02em}
.player-room-button:hover:not(:disabled){background:#ded2ee15;border-color:#d9cce86c}
#modal.player-dialog{width:min(1160px,calc(100vw - 36px));max-width:1160px;max-height:calc(100dvh - 32px);border-radius:22px;border-color:#b4abc72b;background:#0b0d13;box-shadow:0 32px 140px #000c,0 0 0 1px #0b0b10}
.player-dialog .dialog-head{padding:22px 30px 18px;border-bottom:1px solid #bbc3d412;position:relative;z-index:2;background:#0c0e14}
.player-dialog .dialog-head h2{color:#b0a8bb;font-size:.61rem;letter-spacing:.23em;font-weight:500}
.player-dialog .dialog-head .icon-button{border:1px solid #ddd7eb1c;border-radius:50%;width:32px;height:32px;color:#c7bed2}
.player-dialog .dialog-body{padding:0;overflow-x:hidden;background:radial-gradient(ellipse at 30% 28%,#35435712,transparent 55%)}
.listening-space{grid-template-columns:minmax(320px,1.06fr) minmax(300px,.94fr);align-items:stretch;gap:0;min-height:530px}
.listening-art-scene,.player-stage{min-width:0;min-height:460px;position:relative;display:block;isolation:isolate;overflow:hidden;background:#090b11}
.listening-art-scene:before{display:none}.listening-orbit{display:none!important}
.player-stage{height:100%;min-height:530px;border-right:1px solid #b6afc517;background:radial-gradient(ellipse at 50% 40%,#28354330,#090b11 75%)}
.player-stage:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(0deg,#090b11d9,transparent 25%,transparent 84%,#090b1144)}
.player-stage-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:pan-y}
.player-stage-fallback{position:absolute;z-index:3;left:12%;right:12%;top:50%;transform:translateY(-50%);padding:20px;border:1px solid #c7badd25;border-radius:12px;background:#11141ccf;color:#beb8cc;font-size:.8rem;line-height:1.75;text-align:center}
.player-stage-fallback[hidden]{display:none}.player-stage[data-stage="unavailable"]{background:radial-gradient(ellipse at 50% 45%,#3037454d,#0b0e16 66%)}
.listening-art-caption{z-index:2;bottom:31px;font-size:.53rem;letter-spacing:.29em;color:#b7b4c29c;pointer-events:none}
.player-stage .expanded-art{display:none}
.listening-copy{padding:39px 36px 31px;align-self:center;min-width:0;position:relative}
.listening-copy>.section-label{font-size:.52rem;letter-spacing:.2em;color:#a9a1b8;line-height:1.65;margin-bottom:18px;font-weight:500}
.listening-copy h2{font-size:clamp(2rem,3.8vw,3.35rem);font-weight:450;letter-spacing:-.055em;line-height:1.03;max-width:14ch;color:#f2eff5;text-wrap:balance;overflow-wrap:anywhere}
.listening-copy .expanded-origin{font-size:.71rem;line-height:1.6;color:#9b97a7;margin:13px 0 23px}
.listening-copy .expanded-progress{font-variant-numeric:tabular-nums;font-size:.59rem;color:#aaa2b7;gap:11px}
.expanded-wave-track{height:56px}
.expanded-wave-track:focus-within{outline-color:#c4b2dd;outline-offset:4px}
.listening-copy .expanded-transport{gap:26px;margin:11px 0 23px;justify-content:center}
.listening-copy .play-button{width:58px;height:58px;background:#ddd2e8;border:1px solid #fff9;color:#211d29;box-shadow:0 4px 28px #0005;transition:transform .18s ease,background .18s ease}
.listening-copy .play-button:hover{transform:scale(1.055);background:#ece3f4}.listening-copy .play-button:active{transform:scale(.96)}
.listening-copy .expanded-transport>.icon-button{border:0;color:#c9c1d3;width:43px;height:43px;border-radius:50%;background:transparent}.listening-copy .expanded-transport>.icon-button:hover{background:#dad0ef0c}
.listening-next{padding:16px 0;border-color:#c4bace1d;gap:12px;align-items:center}
.listening-next .section-label{font-size:.48rem;letter-spacing:.19em;color:#aaa1b7;margin-bottom:7px}
.listening-next strong{font-size:.7rem;font-weight:450;line-height:1.6;color:#d1c9da}.listening-next .text-button{font-size:.62rem;white-space:nowrap;color:#b6a5ce}
.listening-copy .expanded-switch{margin-top:17px;font-size:.71rem;color:#ddd5e7;font-weight:450}
.listening-copy .expanded-help{font-size:.62rem;line-height:1.6;color:#9c93ab;margin:8px 0 15px}
.listening-copy .expanded-options{margin:0;gap:15px}.listening-copy .expanded-options .text-button{font-size:.66rem;color:#bfb3cf;padding-block:7px}.listening-copy .expanded-volume input{width:94px}
.listening-room-cta{margin-top:20px;padding:14px 14px 14px 16px;border:1px solid #c0add33a;border-radius:11px;background:linear-gradient(110deg,#aea2cd13,#7697b00b);color:#dacfdf;gap:13px;transition:background .2s ease,border-color .2s ease}
.listening-room-cta strong{font-size:.76rem;font-weight:500;letter-spacing:-.01em}.listening-room-cta small{font-size:.57rem;line-height:1.6;color:#a79bad;margin-top:4px}.listening-room-cta>.icon{width:20px;height:20px;color:#b7a5cb}
.listening-room-cta:hover:not(:disabled){background:linear-gradient(110deg,#aea2cd20,#7697b011);border-color:#c5b4d762}
@media(min-width:1500px){#modal.player-dialog{width:1180px}.listening-copy{padding:42px}.player-stage{min-height:575px}}
@media(max-height:790px) and (min-width:701px){.listening-space{min-height:450px}.player-stage{min-height:450px}.listening-copy{padding:24px 30px}.listening-copy h2{font-size:2.55rem}.listening-copy .expanded-origin{margin-bottom:10px}.listening-copy>.section-label{margin-bottom:12px}.listening-copy .expanded-transport{margin:3px 0 16px}.listening-next{padding:13px 0}.listening-copy .expanded-help{margin-bottom:8px}.listening-room-cta{margin-top:13px}.expanded-wave-track{height:46px}}
@media(max-width:850px) and (min-width:701px){.listening-space{grid-template-columns:minmax(240px,1fr) minmax(300px,1fr)}.listening-copy{padding-inline:25px}.listening-copy h2{font-size:2.5rem}}
@media(max-width:700px){#modal.player-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px}.player-dialog .dialog-head{padding:16px 19px}.player-dialog .dialog-body{padding:0}.listening-space{grid-template-columns:1fr;min-height:0;gap:0}.listening-art-scene{max-width:none;width:100%;margin:0;min-height:280px}.player-stage{height:300px;min-height:300px;border-right:0;border-bottom:1px solid #b6afc512}.listening-art-caption{bottom:23px;font-size:.45rem}.listening-copy{padding:21px 25px 27px}.listening-copy>.section-label{font-size:.47rem;margin:0 0 11px}.listening-copy h2{max-width:18ch;font-size:2.35rem}.listening-copy .expanded-origin{font-size:.66rem;margin:10px 0 14px}.expanded-wave-track{height:44px}.listening-copy .expanded-transport{margin:7px 0 19px}.listening-copy .play-button{width:56px;height:56px}.listening-next{padding:15px 0}.listening-copy .expanded-switch{font-size:.76rem}.listening-copy .expanded-help{font-size:.67rem}.listening-room-cta{margin-top:19px;padding:16px}.listening-room-cta strong{font-size:.81rem}.listening-room-cta small{font-size:.61rem}}
@media(max-width:400px){.player-stage{height:255px;min-height:255px}.listening-copy{padding-inline:21px}.listening-copy h2{font-size:2.05rem}}
@media(prefers-reduced-motion:reduce){.listening-copy .play-button,.listening-room-cta{transition:none}.listening-copy .play-button:hover,.listening-copy .play-button:active{transform:none}}
