:root{--bg:#0c0b10;--panel:#17141d;--border:#ffffff13;--muted:#929098;--text:#f2eee7;--accent:#ffb74b}
body{background:radial-gradient(ellipse at 93% 4%,#7b342c70,transparent 43%),radial-gradient(ellipse at 0 95%,#7d652c50,transparent 35%),#0c0b10;background-attachment:fixed}button{background:#191620;border-color:#ffffff12;color:#aaa6b0;border-radius:13px;font-weight:600}button:hover{color:var(--text);background:#29212b}.primary{background:linear-gradient(120deg,#ff6d49,#ffc44d);color:#21140d;border:0;box-shadow:0 9px 28px #ff73452e}.primary:hover{background:linear-gradient(120deg,#ff825e,#ffce69);color:#21140d}header{height:94px;max-width:1320px;margin:auto;padding:18px 20px;border:0;justify-content:space-between;position:relative;z-index:1;gap:30px}.brand{letter-spacing:0;gap:16px;font-size:25px}.brand small{display:block;font-size:10px;letter-spacing:5px;color:#9d979e;font-weight:400;margin-top:8px}.logo{background:linear-gradient(140deg,#ff704e,#ffc44b);box-shadow:0 10px 25px #ff813335;font-size:27px;width:46px;height:46px;display:grid;place-items:center;border-radius:15px;color:#1f110b}.view-tabs{display:flex;gap:10px}.view-tabs button{padding:14px 19px;border:0;background:none;font-size:15px;white-space:nowrap}.view-tabs button.active{background:#1b1722;color:#f2eee7}.actions button{padding:14px 20px}main{display:block;max-width:1320px;margin:auto;min-height:calc(100vh - 160px);position:relative;padding:0 20px}.player-stage{display:grid;grid-template-columns:43% 57%;align-items:center;min-height:calc(100vh - 170px);padding:85px 0 75px;gap:0}.record-scene{position:relative;width:88%;max-width:455px;aspect-ratio:1;margin:45px 0 0 20px;filter:drop-shadow(0 0 38px #ec9a3618)}.record-rim{position:absolute;inset:0;border:2px solid #b67d3620;border-radius:50%;padding:25px}.record-rim:before{content:"";position:absolute;inset:12px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#e4a24a55 0deg 1deg,transparent 1deg 5deg);mask:radial-gradient(transparent 67%,#000 67.5%,#000 69%,transparent 69.5%)}.record{width:100%;height:100%;border-radius:50%;border:2px solid #665264;background:repeating-radial-gradient(circle at center,transparent 0 4px,#ffffff04 5px 6px),conic-gradient(from 25deg,#151419,#665123 23%,#171419 48%,#9f4233 76%,#151419);box-shadow:inset 0 0 45px #0008,0 0 40px #ff823b0b;display:grid;place-items:center;animation:spin 22s linear infinite;animation-play-state:paused}.is-playing .record{animation-play-state:running}.record-label{width:22%;height:22%;border-radius:50%;background:#0c0b10;border:7px solid #3d393f;box-shadow:0 0 0 7px #0006;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#a89b86}.record-label span{font-size:16px;letter-spacing:2px}.record-label small{font-size:4px;letter-spacing:.6px;margin-top:5px}.record-cue{position:absolute;bottom:4px;left:10px;background:#17141d;border:1px solid #ffffff0c;border-radius:30px;padding:10px 16px;font:12px monospace;letter-spacing:2px}.record-cue i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff7555;box-shadow:0 0 12px #ff7555;margin-right:6px}.record-cue b{color:#ffbf58}.console{padding-left:15px;min-width:0}.now-heading{display:flex;justify-content:space-between;align-items:center}.now-heading>.eyebrow{letter-spacing:4px;font:12px monospace}.now-heading>.eyebrow:before{content:"";width:30px;height:2px;background:#ff815b;display:inline-block;vertical-align:middle;margin-right:12px}.badge{border:1px solid #ffffff09;background:#19141f;color:#ffc454;min-width:90px;text-align:center}.now{margin:23px 0}.now-info h2{font-size:clamp(36px,4.7vw,76px);font-weight:800;letter-spacing:-3px;line-height:1.12;margin:0 0 24px;overflow-wrap:anywhere}.source-line{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:700}.source-tag{font-size:10px;background:#63332d80;border:1px solid #a5665150;border-radius:20px;padding:4px 10px;color:#ffcb70}.now-info p{font-size:11px;margin-top:14px;color:#929098;min-height:18px}.monitor{border-radius:20px;background:linear-gradient(120deg,#14121b88,#30202744);border:1px solid #ffffff12;padding:12px 14px 10px;position:relative}.monitor-top{align-items:center;gap:8px}.monitor-top .eyebrow{font:10px monospace;letter-spacing:1.4px}.visual-tabs{display:flex;border-radius:10px;background:#0d0b10aa;padding:3px;gap:2px;flex-shrink:0}.visual-tabs button{padding:6px 10px;font-size:11px;border:0;border-radius:7px;background:transparent}.visual-tabs button.active{background:linear-gradient(120deg,#ff774e,#ffc355);color:#22150e}canvas{height:120px}#signal{display:block;font:9px monospace;color:#89828a;position:absolute;bottom:12px;right:15px;background:#151019bb;padding:2px 5px}.timeline{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:4px}.timeline input{grid-column:1/-1;margin:0;height:10px}.timeline span:last-child{text-align:right}.timeline span{font-size:12px;margin-top:4px}input[type=range]{accent-color:#ffb752}input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:8px;background:#ffffff12}input[type=range]::-webkit-slider-thumb{margin-top:-5px}.transport{margin-top:26px;gap:16px}.transport>div{gap:9px}.transport button{height:48px;min-width:48px;font-size:18px}.transport .play{width:68px;height:68px;border-radius:18px;font-size:26px}.transport-options .auto{font-size:10px;max-width:55px;line-height:1.5;align-items:center}.transport-options button{font-size:19px}.volume-inline{display:flex;align-items:center;gap:10px;max-width:155px;color:#8e8894;font-size:19px}.volume-inline input{width:105px}.volume-inline output{font:9px monospace}.danger{color:#d98d7b}.library-stage{display:none;grid-template-columns:220px minmax(0,1fr);gap:30px;padding:50px 0;min-height:calc(100vh - 160px)}.library-content{min-width:0}.workspace-panel{padding:22px 18px;background:#17131c80;border:1px solid var(--border);border-radius:20px;align-self:start}.workspace-panel h2{margin-top:20px}.workspace-panel .aside-foot{margin-top:55px}.workspace-panel nav{display:grid}.workspace-panel nav button.active{background:#34231e;color:#ffc16b;border-color:#ffb34b30}.project-heading{margin-bottom:30px}.project-heading h1{font-size:30px}.playlist{border-radius:18px;background:#14111a55}.track.current{background:#33231c;border-left-color:#ffa65b}.table-head{background:#1b1620}.track strong{font-size:14px}.track-controls button{padding:7px 9px;border-radius:7px}#empty{padding:70px 20px}.locked{color:#ffbf61;border-color:#a16d3e}.mixer{margin:0 0 45px;border:1px solid var(--border);border-radius:20px;background:#17131ddd;display:grid;grid-template-columns:1fr 1fr;gap:12px 40px;padding:28px}.mixer[hidden]{display:none}.mixer>.eyebrow,.mixer>h2{grid-column:1/-1;margin:0}.mixer .divider{display:none}.mixer .status-card{margin:0;background:#30221d;border-color:#754b3222}.green{color:#ffbb58}.mixer .setting{margin:10px 0}footer{max-width:1280px;margin:auto;padding:18px 0;border-color:#ffffff09;position:relative;display:flex;align-items:center}footer button{font-size:10px;padding:6px 10px;margin-left:15px}.ambience{pointer-events:none;position:fixed;inset:0;overflow:hidden;background-image:radial-gradient(circle,#ff9d7a12 1px,transparent 2px);background-size:137px 171px}.ambience span{position:absolute;color:#cca37a12;font-size:30px}.ambience span:nth-child(1){left:11%;top:28%}.ambience span:nth-child(2){left:41%;top:75%}.ambience span:nth-child(3){left:43%;top:1%}.ambience span:nth-child(4){right:2%;top:15%}.ambience span:nth-child(5){right:22%;top:20%}body[data-view=library] .player-stage{display:none}body[data-view=library] .library-stage{display:grid}body[data-view=mini] .player-stage{grid-template-columns:170px minmax(0,1fr);max-width:900px;margin:auto;padding:50px 0;min-height:65vh}body[data-view=mini] .record-scene{width:150px;margin:0}body[data-view=mini] .record-rim{padding:10px}body[data-view=mini] .record-cue,body[data-view=mini] .monitor,body[data-view=mini] #capability{display:none}body[data-view=mini] .now-info h2{font-size:34px;letter-spacing:-1px}body[data-view=mini] .record-label span{font-size:7px}body[data-view=mini] .record-label small{display:none}dialog{background:#19131d;border-color:#6d4b3e}dialog input,select{background:#100d14;border-color:#49333a}#toast{background:#ffbf70;color:#24150d}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.record{animation:none}}
@media(max-width:1100px){header{gap:15px}.view-tabs button{padding:12px}.actions button{padding:12px}.player-stage{grid-template-columns:39% 61%;padding-top:55px}.record-scene{margin-left:0;width:94%}.monitor-top{flex-wrap:wrap}.now-info h2{font-size:48px}.transport{gap:9px}.transport button{min-width:38px}.volume-inline{max-width:110px}.volume-inline input{width:65px}.volume-inline output{display:none}}
@media(max-width:760px){header{height:auto;flex-wrap:wrap;padding:20px;gap:20px}.brand{font-size:23px}.brand small{font-size:8px}.view-tabs{order:3;width:100%;justify-content:center}.view-tabs button{flex:1}header .actions{margin-left:auto}header .actions button{padding:12px;font-size:11px}main{padding:0 20px}.player-stage{display:flex;flex-direction:column;padding:25px 0 40px;min-height:0}.record-scene{width:230px;margin:0 0 35px}.record-rim{padding:16px}.record-cue{font-size:9px;padding:7px 12px;bottom:-5px}.console{width:100%;padding:0}.now-info h2{font-size:42px;letter-spacing:-1.7px}.now-heading>.eyebrow{font-size:10px;letter-spacing:2px}.monitor-top{gap:12px}.visual-tabs{margin-left:auto}.monitor-top .eyebrow{font-size:9px}.transport{flex-wrap:wrap}.transport .play{width:58px;height:58px}.transport button{height:42px;min-width:36px}.transport-options .auto{display:none}.volume-inline{max-width:95px}.volume-inline input{width:65px}.library-stage{grid-template-columns:1fr;padding:20px 0;gap:22px}.workspace-panel{padding:15px}.workspace-panel nav{display:flex;overflow:auto}.workspace-panel nav button{flex-shrink:0}.workspace-panel h2{margin:0 0 12px}.workspace-panel .aside-foot{display:none}.project-heading{gap:15px}.project-heading .actions button{font-size:11px;padding:9px}.playlist .section-head{padding:15px}.mixer{display:block}.mixer .setting{margin:20px 0}.mixer>.eyebrow{display:block}.mixer .status-card{margin-top:25px}footer{padding:15px 20px;font-size:8px;gap:10px}body[data-view=mini] .player-stage{display:flex;min-height:0}body[data-view=mini] .record-scene{margin-bottom:25px}}
/* Always-visible sound controls below the now-playing stage. */
.mixer{display:block;scroll-margin-top:25px;padding:30px;margin-bottom:45px}.mixer-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.mixer-heading h2{font-size:24px;margin:10px 0 0}.mixer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.mixer-card{min-width:0;background:#100d1480;border:1px solid #ffffff0a;border-radius:14px;padding:22px}.mixer-card h3{margin:0 0 14px;font-size:15px}.mixer-card .setting{margin:22px 0}.mixer-card .section-head h3{margin:0}.mixer-card .status-card{margin:22px 0}.mixer-card .hint{line-height:1.9}body[data-view=library] .mixer,body[data-view=mini] .mixer{display:none}@media(max-width:900px){.mixer-grid{grid-template-columns:1fr 1fr}.mixer-card:last-child{grid-column:1/-1}}@media(max-width:600px){.mixer{padding:20px 14px}.mixer-heading{align-items:flex-start;flex-direction:column}.mixer-grid{grid-template-columns:1fr}.mixer-card:last-child{grid-column:auto}.mixer-heading h2{font-size:21px}}
/* Musical note / digital noise brand system. Static to avoid distraction during a show. */
.brand .logo-noise{width:52px;height:52px;padding:0;display:block;flex-shrink:0;background:transparent;border-radius:16px;box-shadow:0 7px 27px #ff803c35}.brand-wordmark{display:flex;flex-direction:column;gap:7px}.brand .noise-word{display:block;position:relative;font-size:29px;font-weight:900;line-height:1.05;letter-spacing:3px;color:#ffdea2;text-shadow:1px 0 #ff7658,-.6px 0 #8cddd4}.noise-word:before,.noise-word:after{content:attr(data-text);position:absolute;inset:0;pointer-events:none}.noise-word:before{color:#ff7956;transform:translate(2px,-.4px);clip-path:polygon(0 21%,100% 21%,100% 29%,0 29%,0 59%,100% 59%,100% 64%,0 64%)}.noise-word:after{color:#91dcd8;transform:translate(-2px,.5px);clip-path:polygon(0 38%,100% 38%,100% 43%,0 43%,0 78%,100% 78%,100% 82%,0 82%)}.brand .brand-wordmark small{font:9px monospace;letter-spacing:4px;color:#c19b7b;margin:0;padding-left:1px}.brand-wordmark small:after{content:" ▪ ▏";font-size:8px;color:#ff9964;letter-spacing:1px}@media(max-width:760px){.brand .logo-noise{width:46px;height:46px}.brand .noise-word{font-size:25px}.brand .brand-wordmark small{font-size:8px;letter-spacing:2.5px}.brand-wordmark{gap:6px}}
/* Soft electronic backdrop with a crisp foreground wordmark. */
.brand{isolation:isolate}.brand-wordmark{position:relative;isolation:isolate}.brand-wordmark:before{content:"";position:absolute;inset:-9px -12px -7px -9px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 20% 32%,#ff744b65,transparent 60%),radial-gradient(ellipse at 75% 65%,#ffcf6845,transparent 65%),repeating-linear-gradient(0deg,transparent 0 5px,#87dbd522 6px 7px);filter:blur(9px);border-radius:18px}.brand .noise-word{color:#fff0d5;text-shadow:0 1px 2px #0009}.noise-word:before{color:#ff8057;transform:translate(3px,0);filter:blur(3px);z-index:-1;opacity:.7}.noise-word:after{color:#91dcd8;transform:translate(-3px,1px);filter:blur(3px);z-index:-1;opacity:.55}.brand .brand-wordmark small{color:#dfc5a5;text-shadow:0 1px 2px #000}.brand-wordmark small:after{content:none}

/* Optional employee login. */
#accountButton{color:#ffd298;border-color:#ffbe5a33;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#accountStatus{font-size:10px;letter-spacing:0;color:#c4a57e}#accountDialog label[hidden],#accountDialog form[hidden],#accountDialog section[hidden]{display:none}#loginError{font-size:12px;line-height:1.8;color:#ffad9c}.account-actions{display:flex;flex-direction:column;gap:10px}.account-actions button{text-align:left}#accountDialog{max-height:90vh;overflow:auto}#accountDialog h2{margin:0}#loginSubmit{width:100%;padding:13px}#accountDetails .hint{font-size:12px}@media(max-width:1100px){header{flex-wrap:wrap}header .view-tabs{order:3;width:100%;justify-content:center}header .actions{margin-left:auto}}@media(max-width:600px){header .actions{gap:6px}header .actions button{font-size:10px;padding:10px 8px}#accountButton{max-width:110px}footer{flex-wrap:wrap}}

/* Foreground playlist over a dimmed record. */
.queue-scene{position:relative;min-width:0;align-self:stretch;display:flex;align-items:center;min-height:510px;isolation:isolate}
.queue-scene .record-scene{position:absolute;width:94%;max-width:455px;left:0;bottom:12px;margin:0;z-index:-1;pointer-events:none}
.queue-scene .record-rim{filter:brightness(.2)}
.queue-scene .record-cue{display:none}
.stage-queue{width:100%;align-self:stretch;display:flex;flex-direction:column;padding:28px 22px;background:linear-gradient(145deg,#100d1470,#100d1420);border:1px solid #ffffff0d;border-radius:20px;min-width:0}
.queue-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:20px;border-bottom:1px solid #ffffff14}
.queue-heading .eyebrow{font:10px monospace;letter-spacing:1.5px;color:#b9a99d}
.queue-heading h2{font-size:22px;margin:12px 0 0;overflow-wrap:anywhere;color:#fff0dd}
.queue-heading .badge{min-width:auto;white-space:nowrap;font-size:11px}
.stage-tracks{overflow:auto;max-height:450px;scrollbar-width:thin;scrollbar-color:#765345 transparent;margin-top:12px;overscroll-behavior:contain}
.queue-track{display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:1px solid transparent;border-radius:12px;background:transparent;padding:15px 12px;margin:3px 0;color:#f5eee7}
.queue-track:hover{background:#ffffff0b;border-color:#ffffff15}.queue-track:focus-visible{outline:2px solid #ffb65b;outline-offset:-2px}
.queue-track.current{background:linear-gradient(100deg,#a44a2b55,#ffb34b0b);border-color:#ffab4f50}
.queue-number{font:12px monospace;color:#b5a08d}.queue-info{flex:1;min-width:0}.queue-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.queue-info small{display:block;font-size:10px;color:#b6a99f;margin-top:7px}.queue-play{font-size:12px;color:#ffbe6e}.queue-track.current .queue-number{color:#ffc477}
#queueEmpty{margin:auto;text-align:center;color:#ddc7b0;line-height:2;padding:50px 0}#queueEmpty small{font-size:11px;color:#a99b94}#queueEmpty[hidden]{display:none}
body[data-view=mini] .queue-scene{min-height:170px;align-self:center;width:150px}body[data-view=mini] .stage-queue{display:none}body[data-view=mini] .queue-scene .record-scene{position:relative;bottom:auto;width:150px}
@media(max-width:1100px){.stage-queue{padding:22px 14px}.queue-track{gap:10px;padding:14px 8px}}
@media(max-width:760px){.queue-scene{width:100%;min-height:300px;margin-bottom:30px}.queue-scene .record-scene{width:270px;left:50%;transform:translateX(-50%);bottom:5px}.stage-queue{padding:22px 18px}.stage-tracks{max-height:280px}.queue-heading h2{font-size:20px}body[data-view=mini] .queue-scene .record-scene{left:auto;transform:none}}

/* Compact spacing beneath navigation. */
body[data-view=player] .player-stage{padding-top:24px;padding-bottom:48px;min-height:0}
@media(max-width:760px){body[data-view=player] .player-stage{padding-top:16px;padding-bottom:32px}}

/* Center the record within the track viewport below its heading. */
.queue-body{position:relative;isolation:isolate;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}
.queue-body .record-scene{position:absolute;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(94%,455px);max-width:455px;margin:0;z-index:-1}
.queue-body .stage-tracks{position:relative;margin-top:12px}.queue-body #queueEmpty{margin:auto 0}
body[data-view=mini] .stage-queue{display:contents}body[data-view=mini] .queue-heading,body[data-view=mini] .queue-body .stage-tracks,body[data-view=mini] #queueEmpty{display:none}body[data-view=mini] .queue-body{width:150px;height:170px;flex:none}body[data-view=mini] .queue-body .record-scene{position:absolute;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:150px}
@media(max-width:760px){body[data-view=player] .queue-body{min-height:290px}.queue-body .record-scene{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(94%,270px)}}

.queue-body{justify-content:flex-start}

.queue-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.queue-actions button{font-size:11px;padding:8px 10px;white-space:nowrap}.queue-actions button[aria-pressed=true]{color:#ffd08b;border-color:#f6ad5555;background:#382619}.queue-track:disabled{opacity:1;cursor:default}.queue-track:disabled:hover{background:transparent;border-color:transparent}.queue-track.current:disabled:hover{background:linear-gradient(100deg,#a44a2b55,#ffb34b0b);border-color:#ffab4f50}.controls-locked .queue-play{opacity:.35}

/* Multi-select playlist editing. */
.batch-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--border);background:#17131c}.batch-toolbar label{display:flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap}.batch-toolbar input,.track-select{accent-color:#ffb65b;width:17px;height:17px;cursor:pointer}.batch-toolbar span{font-size:12px;color:#ffce97}.batch-toolbar button{font-size:12px;padding:7px 10px}.batch-toolbar small{width:100%;font-size:11px;color:#a99c96}.playlist .table-head,.playlist .track{grid-template-columns:86px minmax(0,1fr) 150px}.track .number{display:flex;align-items:center;gap:12px;font:12px monospace}.track.selected{background:#ffad4c14;box-shadow:inset 3px 0 #ffb65b}.track.selected.current{background:#70432355}.track.drop-before{box-shadow:inset 0 3px #ffbf68}.track.drop-after{box-shadow:inset 0 -3px #ffbf68}.track.dragging{opacity:.55}.track-select:disabled{cursor:default}@media(max-width:700px){.playlist .table-head,.playlist .track{grid-template-columns:65px minmax(0,1fr) 135px}.track .number{gap:6px}.batch-toolbar{gap:10px;padding:12px 10px}}

.playback-mode{display:flex;align-items:center;gap:12px;margin-top:18px;color:#c7b5a4;font-size:12px}.playback-mode select{width:145px;margin:0;padding:8px 12px;border-radius:9px}.playback-mode small{font-size:10px;color:#968b87}body[data-view=mini] .playback-mode{margin-top:12px}@media(max-width:600px){.playback-mode{gap:9px;flex-wrap:wrap}.playback-mode select{width:125px}}

/* Embedded artwork in both playlists */
.track-with-artwork{display:flex;align-items:center;gap:12px;min-width:0}.track-copy{display:block;min-width:0;flex:1}.track-artwork{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;overflow:hidden;border-radius:9px;border:1px solid #ffc46a25;background:#241e27;color:#ffc46a;font:600 9px monospace;letter-spacing:.3px}.track-artwork img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.queue-track .track-artwork{flex-basis:46px;width:46px;height:46px}@media(max-width:600px){.track-with-artwork{gap:8px}.track-artwork,.queue-track .track-artwork{flex-basis:34px;width:34px;height:34px;font-size:8px}}

/* Fixed now-playing queue; scrolling uses the full space below the heading. */
body[data-view=player] .queue-scene{height:800px;min-height:0;align-self:start}
body[data-view=player] .stage-queue{height:100%;min-height:0;overflow:hidden}
body[data-view=player] .queue-heading{flex:0 0 auto}
body[data-view=player] .queue-body{flex:1;min-height:0;overflow:hidden}
body[data-view=player] .stage-tracks{flex:1;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
body[data-view=player] .stage-tracks:empty{display:none}
@media(max-width:760px){body[data-view=player] .queue-scene{height:480px;flex:none}}

/* Frequency labels follow the analyser bars' logarithmic 32 Hz–16 kHz scale. */
.frequency-axis{position:relative;height:23px;margin:1px 0 0;color:#aaa0a5;font:10px monospace}.frequency-axis span{position:absolute;top:5px;transform:translateX(-50%)}.frequency-axis span:first-child{transform:none;left:0!important}.frequency-axis span:last-child{transform:translateX(-100%);left:100%!important}.frequency-axis b{position:absolute;right:0;top:20px;font-size:9px;font-weight:400;color:#d3b797}.frequency-axis[hidden]{display:none}.monitor:has(.frequency-axis:not([hidden])){padding-bottom:17px}.monitor:has(.frequency-axis:not([hidden])) #signal{bottom:46px}

/* Status sits beneath the frequency scale, aligned to the left. */
.monitor #signal,.monitor:has(.frequency-axis:not([hidden])) #signal{position:static;display:block;width:fit-content;margin:7px 0 0;padding:0;background:none;line-height:12px}

/* Shared baseline and typography for meter status and unit. */
.meter-footer{display:flex;align-items:baseline;justify-content:space-between;margin-top:7px;font:9px/12px monospace}.monitor .meter-footer #signal,.monitor:has(.frequency-axis:not([hidden])) .meter-footer #signal{margin:0;font:inherit}.meter-unit{color:#d3b797;font:10px/12px monospace}.monitor:has(.frequency-axis[hidden]) .meter-unit{display:none}

/* Spread the Chinese wordmark across the English name's visible width. */
.brand-wordmark{width:max-content;flex-shrink:0}.brand .noise-word{letter-spacing:0;text-align:justify;text-align-last:justify;white-space:nowrap}.brand .noise-word:before,.brand .noise-word:after{text-align:justify;text-align-last:justify;letter-spacing:0}.brand .brand-wordmark small{white-space:nowrap;padding-left:0;margin-right:-4px}@media(max-width:760px){.brand .brand-wordmark small{margin-right:-2.5px}}

/* Center the two Chinese characters above the English wordmark. */
.brand .noise-word,.brand .noise-word:before,.brand .noise-word:after{text-align:center;text-align-last:center;letter-spacing:.45em;text-indent:.45em}

/* Flowing ribbon backdrop spanning the icon and wordmark. */
.brand{position:relative}.brand-ribbons{position:absolute;inset:-18px -20px;z-index:-1;pointer-events:none;overflow:hidden;border-radius:24px;mask-image:radial-gradient(ellipse at center,#000 35%,transparent 73%);background:radial-gradient(ellipse at 45% 60%,#ff9e3720,transparent 68%)}.brand-ribbons svg{display:block;width:100%;height:100%;overflow:visible;filter:blur(.7px)}.brand-ribbons .ribbon{transform-origin:center;animation:brand-ribbon-drift 13s ease-in-out infinite alternate}.brand-ribbons .ribbon-two{animation-duration:18s;animation-delay:-7s;opacity:.65}.brand-ribbons .ribbon-three{animation-duration:22s;animation-delay:-12s;opacity:.45}.brand-wordmark:before{opacity:.45}@keyframes brand-ribbon-drift{0%{transform:translate(-15px,7px) rotate(-6deg) scaleY(.8)}50%{transform:translate(6px,-5px) rotate(2deg) scaleY(1.08)}100%{transform:translate(18px,4px) rotate(7deg) scaleY(.9)}}@media(prefers-reduced-motion:reduce){.brand-ribbons .ribbon{animation:none}}

/* Stable playback console: title, visualization and transport have fixed slots. */
body[data-view=player] .console{height:800px;align-self:start;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:28px 350px 200px 58px 48px 86px;gap:6px}
body[data-view=player] .now-heading{grid-row:1;min-width:0}
body[data-view=player] .now{grid-row:2;margin:0;padding:14px 0 16px;min-height:0}
body[data-view=player] .now-info{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto 32px;gap:12px;min-height:0}
body[data-view=player] .now-info h2{height:100%;min-height:0;margin:0;line-height:1.12;letter-spacing:-.035em;overflow-wrap:anywhere}
body[data-view=player] .now-info p{margin:0;min-height:0;align-self:center}
body[data-view=player] .console>.monitor{grid-area:3 / 1;min-height:0;display:flex;flex-direction:column;padding:12px 14px}
body[data-view=player] .monitor-top{flex:0 0 28px}
body[data-view=player] #spectrum{height:0;min-height:0;flex:1;width:100%}
body[data-view=player] .frequency-axis{flex:0 0 23px}
body[data-view=player] .meter-footer{flex:0 0 12px;margin-top:5px}
body[data-view=player] .console>.timeline{grid-area:4 / 1;margin:0;padding-top:18px;align-content:start}
body[data-view=player] .console>.playback-mode{grid-area:5 / 1;margin:0;align-self:center}
body[data-view=player] .console>.transport{grid-area:6 / 1;margin:0;align-self:end;min-height:68px}
body[data-view=player] #embed{grid-area:3 / 1 / 5 / 2;margin:0;min-height:0;height:100%;z-index:1;background:#0c0b10;border-radius:20px}
body[data-view=player] #embed iframe,body[data-view=player] #embed>div{height:100%;width:100%}
body[data-view=player] .console.external-video>.monitor,body[data-view=player] .console.external-video>.timeline{visibility:hidden;pointer-events:none}
@media(max-width:760px){body[data-view=player] .console{height:710px;grid-template-rows:28px 260px 200px 58px 48px 86px}.console>.transport{flex-wrap:nowrap}.console .playback-mode{flex-wrap:wrap}}

/* Hide the decorative record behind the Now Playing playlist. */
body[data-view=player] .stage-queue .queue-body .record-scene{display:none}

/* Icon-only playback mode in the transport options. */
.transport .repeat-mode{display:inline-flex;align-items:center;justify-content:center;padding:10px;flex-shrink:0}
.repeat-mode svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.transport .repeat-mode[data-mode=one],.transport .repeat-mode[data-mode=all],.transport .repeat-mode[data-mode=shuffle]{color:#ffc454;background:#38251e;border-color:#ffb34b45}
.repeat-mode:focus-visible{outline:2px solid #ffc454;outline-offset:3px}

/* Cloud file status and explicit, confirmed audio synchronization. */
.audio-sync-button{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.audio-sync-button svg,.audio-sync-state svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.audio-sync-button.synced,.audio-sync-state.synced{color:#6edc91}
.audio-sync-button.synced .sync-arrow,.audio-sync-state.synced .sync-arrow,.audio-sync-button:not(.synced) .sync-check,.audio-sync-state:not(.synced) .sync-check{display:none}
.audio-sync-state{display:inline-flex;align-items:center;margin-top:5px;color:#aaa6b0}
.audio-sync-state.streaming{color:#ffc454}
.audio-sync-state.streaming svg{display:none}.audio-sync-state.streaming:after{content:'串流中';font-size:10px}
.track-copy .audio-sync-state{font-size:10px}.queue-actions .audio-sync-button{min-height:34px}
#audioSyncDialog{width:min(620px,92vw)}#audioSyncDialog .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
#audioSyncDialog .actions button{flex:1;min-width:140px}#audioSyncDialog label{display:block}
