:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:#101114; color:#f7f7f8; }
* { box-sizing:border-box; }
html, body { width:100%; min-height:100%; margin:0; background:#101114; }
body { min-height:100dvh; }
button, a, input { font:inherit; }
button { color:inherit; }
.player { width:min(100%, 1120px); min-height:100dvh; margin:0 auto; padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:18px; position:relative; }
.brand { display:flex; align-items:center; gap:10px; color:#d9dadd; font-size:14px; font-weight:650; }
.brand img { width:32px; height:32px; object-fit:cover; border-radius:50%; border:1px solid #414349; }
.stage { min-height:0; display:grid; align-content:center; justify-items:center; gap:18px; }
.cover-shell { width:min(78vw, 440px); aspect-ratio:1; padding:0; overflow:hidden; border:0; border-radius:8px; background:#191b20; box-shadow:0 18px 55px rgba(0,0,0,.34); cursor:pointer; position:relative; }
.cover { width:100%; height:100%; display:block; object-fit:cover; }
.lyrics { position:absolute; inset:0; overflow:auto; padding:clamp(24px,5vw,52px); background:#191b20; text-align:left; scrollbar-width:thin; }
.lyrics[hidden] { display:none; }
.lyrics #lyricsLines { min-height:100%; display:flex; flex-direction:column; justify-content:center; gap:14px; }
.lyrics p { margin:0; color:#777b84; font-size:clamp(18px,3.7vw,28px); line-height:1.25; font-weight:700; transition:color .18s ease, opacity .18s ease; }
.lyrics p.active { color:#fff; }
.lyrics p.past { color:#a7aab2; }
.track-copy { width:min(100%, 700px); text-align:center; }
.track-copy h1 { margin:0; font-size:clamp(24px,5vw,42px); line-height:1.08; overflow-wrap:anywhere; letter-spacing:0; }
.track-copy p { margin:8px 0 0; color:#b9bbc1; font-size:clamp(16px,2.6vw,20px); line-height:1.3; overflow-wrap:anywhere; }
.transport { display:grid; gap:12px; }
.progress { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:center; gap:10px; color:#9699a2; font-variant-numeric:tabular-nums; font-size:12px; }
.progress span:last-child { text-align:right; }
.progress input { width:100%; accent-color:#ff6b81; }
.controls { display:flex; justify-content:center; align-items:center; gap:10px; }
.primary { min-width:150px; min-height:46px; border:0; border-radius:6px; padding:0 24px; background:#f4f4f5; color:#111216; font-weight:750; cursor:pointer; }
.primary:disabled { opacity:.48; cursor:default; }
.icon { width:46px; height:46px; border:1px solid #34363c; border-radius:50%; background:#1b1d22; display:grid; place-items:center; font-size:24px; cursor:pointer; }
.icon:focus-visible, .primary:focus-visible, .cover-shell:focus-visible { outline:2px solid #6ee7c0; outline-offset:3px; }
.status { min-height:20px; margin:0; text-align:center; color:#9b9ea6; font-size:13px; }
.menu { position:absolute; right:max(18px, env(safe-area-inset-right)); bottom:calc(max(18px, env(safe-area-inset-bottom)) + 84px); width:min(290px, calc(100% - 36px)); padding:6px; border:1px solid #383a40; border-radius:8px; background:#202227; box-shadow:0 16px 40px rgba(0,0,0,.45); z-index:5; }
.menu[hidden] { display:none; }
.menu a { display:block; padding:12px 14px; border-radius:5px; color:#f2f2f3; text-decoration:none; }
.menu a:hover, .menu a:focus-visible { background:#2d3036; }
@media (orientation:landscape) and (min-width:700px) {
  .player { grid-template-rows:auto minmax(0,1fr) auto; }
  .stage { grid-template-columns:minmax(260px, .9fr) minmax(280px, 1.1fr); justify-items:stretch; gap:clamp(28px,6vw,76px); }
  .cover-shell { width:min(48dvh, 440px); justify-self:end; }
  .track-copy { align-self:center; text-align:left; }
  .transport { width:min(820px,100%); justify-self:center; }
}
@media (max-height:620px) and (orientation:landscape) {
  .player { gap:10px; padding-top:10px; padding-bottom:10px; }
  .brand img { width:26px; height:26px; }
  .cover-shell { width:min(42dvh,320px); }
  .track-copy h1 { font-size:28px; }
  .transport { gap:7px; }
  .primary, .icon { min-height:40px; height:40px; }
  .icon { width:40px; }
}
@media (orientation:landscape) and (max-width:699px) {
  .player { gap:10px; }
  .stage { grid-template-columns:minmax(180px,.9fr) minmax(180px,1.1fr); justify-items:stretch; gap:22px; }
  .cover-shell { width:min(44vw,48dvh); justify-self:end; }
  .track-copy { align-self:center; text-align:left; }
  .track-copy h1 { font-size:28px; }
}
