:root{--bg: #0b0b0b;--panel: #121212;--panel2: #1c1c1c;--panel3: #242424;--text: #fff;--muted: #b3b3b3;--dim: #727272;--line: rgba(255, 255, 255, .1);--accent: #1ed760;--on-accent: #06190c}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:hidden}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}button{font-family:inherit;cursor:pointer}button:disabled{cursor:default}.app{height:100%;display:flex;flex-direction:column;background:var(--bg)}.pin-screen{align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 50% 24%,rgba(30,215,96,.16),transparent 42%),#0b0b0b}.pin-wrap{display:flex;flex-direction:column}.pin-card{flex:none;width:min(100%,420px);align-items:stretch;padding:36px;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:#121212;box-shadow:0 24px 80px #0000007a}.pin-ic{width:54px;height:54px;margin:0 auto 20px;border-radius:50%;background:var(--accent);color:#07190c;display:flex;align-items:center;justify-content:center}.pin-title{text-align:center;font-size:25px;font-weight:700;letter-spacing:-.03em}.pin-sub{margin:8px 0 28px;text-align:center;font-size:14px;color:var(--muted);line-height:1.45}.pin-label{margin:0 0 8px 2px;color:#ddd;font-size:13px;font-weight:650}.pin-label span{color:var(--muted);font-weight:400}.pin-input,.pin-card .field{width:100%;height:52px;margin:0 0 20px;border:1px solid #535353;border-radius:999px;background:#242424;color:#fff;outline:none;font:inherit}.pin-input{padding:0 20px;letter-spacing:.5em;text-indent:.5em;font-size:21px;font-weight:600;text-align:left}.pin-input::placeholder{letter-spacing:.3em;color:#6a6a6a}.pin-card .field{padding:0 18px;font-size:15px}.pin-input:focus,.pin-card .field:focus{border-color:#fff}.err{min-height:18px;margin:-8px 0 12px;color:#f2a0a0;font-size:13px;text-align:center}.btn{width:100%;min-height:52px;border:none;border-radius:999px;background:var(--accent);color:#07190c;font-size:15px;font-weight:750;transition:transform .12s,background .15s,opacity .15s}.btn:disabled{opacity:.45}.btn:hover:not(:disabled){background:#3be477;transform:scale(1.015)}.btn:active:not(:disabled){transform:scale(.985)}.player-screen{height:100vh;height:100dvh;overflow:hidden;position:relative}.player-screen{background:radial-gradient(ellipse at 50% 24%,#14202a,#0c0e13 48%,#080a0f)}.player-screen>:not(.cover-backdrop){position:relative;z-index:1}.cover-backdrop{position:absolute;z-index:0;top:-80px;right:-80px;bottom:-80px;left:-80px;background-position:center;background-size:cover;filter:blur(78px) saturate(1.5);opacity:.4;transform:scale(1.1);pointer-events:none}.cover-backdrop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#080a0f80,#080a0fc7 50%,#080a0f)}.top{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 22px;border-bottom:1px solid rgba(255,255,255,.07);background:#06080c66;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.top-left{min-width:0;justify-self:start;display:flex;flex-direction:column;gap:3px}.live{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.chip{display:inline-flex;align-items:center;gap:6px;background:#1ed76029;color:var(--accent);font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;letter-spacing:.3px}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #1ed76080}70%{box-shadow:0 0 0 6px #1ed76000}to{box-shadow:0 0 #1ed76000}}.room{max-width:34vw;font-size:15px;font-weight:650;letter-spacing:-.01em;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.djs{justify-self:end;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.ava-stack{display:flex}.ava{width:26px;height:26px;border-radius:50%;background:#3a3a3a;color:#e6e6e6;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #0b0b0b}.ava+.ava{margin-left:-10px}.slots{font-variant-numeric:tabular-nums}.top-search{justify-self:center;width:min(42vw,400px);height:44px;display:flex;align-items:center;gap:11px;margin:0;padding:0 16px;border:1px solid transparent;border-radius:999px;background:#242424;transition:background .15s,border-color .15s}.top-search:hover,.top-search:focus-within{background:#2a2a2a;border-color:#5a5a5a}.top-search svg{width:20px;height:20px;flex:none;fill:#b3b3b3}.top-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#fff;font:inherit;font-size:14px}.top-search input::placeholder{color:#a7a7a7}.top-search input::-webkit-search-cancel-button{display:none}.top-search-clear{width:26px;height:26px;flex:none;border:0;border-radius:50%;background:transparent;color:#b3b3b3;font-size:20px;line-height:1}.top-search-clear:hover{color:#fff}.muted-banner{flex:none;display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 16px;background:#dc3c3c29;border-bottom:1px solid rgba(220,60,60,.35);color:#ffb3b3;font-size:13px;font-weight:600;text-align:center}.muted-banner svg{flex:none;fill:#ff8080}.stage{flex:1;min-height:0;display:flex;overflow:hidden}.lyrics{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:40vh 7vw;-webkit-overflow-scrolling:touch;scrollbar-width:none}.lyrics::-webkit-scrollbar{display:none}.lyrics.empty,.lyrics.plain{justify-content:center;padding:6vh 7vw}.lyr-line{width:min(100%,1100px);margin:16px 0;font-size:clamp(24px,2.5vw,40px);line-height:1.24;font-weight:750;letter-spacing:-.03em;text-align:center;color:#ffffff57;transition:color .3s,transform .3s}.lyr-line.on{color:#fff;transform:scale(1.02)}.lyr-line.past{color:#ffffff80}.lyr-empty{display:flex;flex-direction:column;align-items:center;gap:12px;color:#ffffff80;text-align:center;font-size:15px}.lyr-empty svg{color:#ffffff4d}.search-view{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.search-inner{flex:1;min-height:0;width:min(100%,720px);margin:0 auto;display:flex;flex-direction:column;padding:12px 18px 8px}.results{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:#4a4a4a transparent}.results-label{padding:2px 8px 8px;color:#b3b3b3;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.search-result{width:100%;display:flex;align-items:center;gap:13px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#fff;text-align:left;transition:background .12s}.search-result:hover:not(:disabled),.search-result:focus-visible:not(:disabled){outline:none;background:#ffffff12}.search-result:disabled{opacity:.55}.result-cover{width:50px;height:50px;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:6px;background:linear-gradient(145deg,#5b4b8a,#1e6b5a);color:#fff;font-size:20px}.result-cover img{width:100%;height:100%;object-fit:cover}.result-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.result-title,.result-artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-title{font-size:15px;font-weight:600}.result-artist{color:#b3b3b3;font-size:13px}.result-play{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#07190c;opacity:0;transform:scale(.9);transition:opacity .15s,transform .15s}.search-result:hover .result-play,.search-result:focus-visible .result-play,.search-result:disabled .result-play{opacity:1;transform:scale(1)}.result-play svg{width:18px;height:18px;fill:currentColor}.search-empty{flex:1;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;color:#b3b3b3;text-align:center}.search-empty svg{color:#ffffff4d}.search-empty strong{color:#fff;font-size:17px;font-weight:650}.search-empty span:not(.search-spinner){font-size:13px;line-height:1.5}.search-spinner{width:22px;height:22px;display:inline-block;border:2px solid rgba(255,255,255,.22);border-top-color:var(--accent);border-radius:50%;animation:search-spin .7s linear infinite}@keyframes search-spin{to{transform:rotate(360deg)}}.retry-search{margin-top:4px;padding:9px 20px;border:0;border-radius:999px;background:#fff;color:#111;font-size:13px;font-weight:700}.playback-dock{flex:none;display:grid;align-items:center;grid-template-columns:minmax(0,1fr) minmax(340px,1.6fr) minmax(0,1fr);grid-template-rows:auto auto;grid-template-areas:"track controls actions" "track timeline actions";column-gap:24px;row-gap:7px;padding:14px 24px calc(14px + env(safe-area-inset-bottom));background:#06080ce6;border-top:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.track-block{grid-area:track;min-width:0;display:flex;align-items:center;gap:13px}.dock-art{width:56px;height:56px;border-radius:6px;flex:none;display:grid;place-items:center;color:#fff;font-size:23px;font-weight:800;box-shadow:0 4px 18px #0000004d;position:relative;overflow:hidden}.dock-art img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.track-meta{min-width:0}.track-title,.track-artist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-title{font-size:14px;font-weight:650}.track-artist{margin-top:3px;font-size:12px;color:var(--muted)}.transport-controls{grid-area:controls;display:flex;align-items:center;justify-content:center;gap:24px}.cbtn{width:38px;height:38px;border-radius:50%;background:transparent;border:none;color:#ffffffc7;display:flex;align-items:center;justify-content:center;position:relative;transition:color .15s,transform .1s,background .15s}.cbtn:hover:not(:disabled){color:#fff;background:#ffffff14}.cbtn:active:not(:disabled){transform:scale(.93)}.cbtn.play{width:46px;height:46px;background:#fff;color:#111}.cbtn.play:hover:not(:disabled){background:#eaeaea;transform:scale(1.05)}.cbtn:disabled{opacity:.4}.cbtn svg{width:20px;height:20px;fill:currentColor}.cbtn.play svg{width:23px;height:23px}.cd{position:absolute;top:-3px;right:-5px;background:#333;color:#ddd;font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;border:2px solid #0b0b0b}.timeline{grid-area:timeline;display:flex;align-items:center;gap:10px}.timeline span{font-size:11px;color:#fff9;font-variant-numeric:tabular-nums;flex:none}.bar{flex:1;min-width:0;height:4px;border-radius:3px;background:#ffffff3d;overflow:hidden}.bar>div{height:100%;background:#fff;border-radius:3px}.dock-actions{grid-area:actions;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:10px}.vol-ic{fill:#ffffffa6;flex:none}.vol{width:min(150px,100%);height:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.vol::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:#ffffff47}.vol::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;border-radius:50%;background:#fff}.vol::-moz-range-track{height:4px;border-radius:2px;background:#ffffff47}.vol::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:#fff}.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.center h2{font-size:20px;margin:0}.center p{color:var(--muted);font-size:14px;margin:0;max-width:320px;line-height:1.5}.ended-ic{width:60px;height:60px;border-radius:50%;background:#ffffff12;color:var(--muted);display:flex;align-items:center;justify-content:center;margin-bottom:4px}@media (max-width: 859px){.top{padding:12px 16px}.room{max-width:24vw}.top-search{width:min(38vw,320px)}.playback-dock{grid-template-columns:minmax(0,1fr) minmax(300px,1.5fr) minmax(0,1fr);column-gap:16px}}@media (max-width: 700px){.top{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"left djs" "search search";gap:10px 10px;padding:calc(10px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left))}.top-left{grid-area:left}.djs{grid-area:djs}.top-search{grid-area:search;justify-self:stretch;width:100%;height:42px}.top-search input{font-size:16px}.room{max-width:52vw;font-size:14px}.lyrics{padding:24px 22px}.lyr-line{width:100%;margin:15px 0;font-size:clamp(23px,6.4vw,32px)}.lyr-line.on{transform:none}.search-inner{padding:10px 12px 6px}.result-play{opacity:1;transform:none}.playback-dock{grid-template-columns:1fr auto;grid-template-rows:auto auto auto;grid-template-areas:"track controls" "timeline timeline" "actions actions";column-gap:10px;row-gap:9px;padding:11px 14px calc(11px + env(safe-area-inset-bottom))}.dock-art{width:46px;height:46px;font-size:19px}.track-block{gap:11px}.transport-controls{gap:14px}.dock-actions{justify-content:center;gap:11px}.vol-ic{display:block}.vol{width:100%;max-width:260px}}@media (max-width: 380px){.transport-controls{gap:10px}.cbtn{width:36px;height:36px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
