:root{
  --bg:#050806;
  --panel: rgba(6, 14, 9, .72);
  --panel2: rgba(6, 14, 9, .55);
  --edge: rgba(0,255,102,.18);
  --edge2: rgba(0,255,102,.32);
  --glow: rgba(0,255,102,.45);
  --text:#e8fff2;
  --muted: rgba(232,255,242,.62);
  --accent:#00ff66;
  --shadow: rgba(0,0,0,.55);
  --radius: 18px;
}

*{box-sizing:border-box}
html,body{height:100%}

body{
  margin:0;
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  background:
    radial-gradient(1200px 700px at 20% 0%, rgba(0,255,102,.08), transparent 60%),
    radial-gradient(900px 600px at 80% 10%, rgba(0,255,102,.06), transparent 55%),
    var(--bg);
  overflow-x:hidden;
}

/* Background */
.bg{position:fixed; inset:0; pointer-events:none; z-index:-1;}
#matrix{
  position:absolute; inset:0;
  width:100%; height:100%;
  opacity:.22;
  filter: blur(.2px) saturate(1.15);
}
.scanlines{
  position:absolute; inset:0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,.35) 3px
  );
  opacity:.16;
  mix-blend-mode: multiply;
}
.vignette{
  position:absolute; inset:-20%;
  background: radial-gradient(closest-side, transparent 55%, rgba(0,0,0,.78));
  opacity:.85;
}

.shell{
  width:min(980px, 92vw);
  margin: 28px auto 52px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.top{display:flex; justify-content:space-between; align-items:center;}
.brand{display:flex; align-items:center; gap:10px;}
.dot{
  width:10px; height:10px; border-radius:999px;
  background: var(--accent);
  box-shadow: 0 0 18px var(--glow);
}
.title{
  font-weight:950;
  letter-spacing:.22em;
  font-size:18px;
  text-transform:uppercase;
}

.card{
  background: linear-gradient(180deg, var(--panel), var(--panel2));
  border:1px solid var(--edge);
  border-radius: var(--radius);
  box-shadow: 0 22px 70px var(--shadow);
  backdrop-filter: blur(10px);
  padding:16px;
}

.label{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}

.nowTitle{
  margin-top:8px;
  font-size:20px;
  font-weight:900;
  line-height:1.15;
  text-shadow: 0 0 18px rgba(0,255,102,.18);
}
.nowMeta{
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
  min-height: 16px;
}

.controls{
  margin-top:14px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

/* Buttons (modern, neon) */
.btn{
  position:relative;
  border:1px solid rgba(0,255,102,.26);
  background: rgba(0,0,0,.18);
  color:var(--text);
  padding:10px 14px;
  border-radius: 14px;
  cursor:pointer;
  font-weight:750;
  letter-spacing:.02em;
  transition: transform .08s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  user-select:none;
}

.btn:hover{
  border-color: rgba(0,255,102,.50);
  box-shadow: 0 0 26px rgba(0,255,102,.12);
}

.btn:active{transform: translateY(1px)}

.btn.primary{
  background: linear-gradient(180deg, rgba(0,255,102,.22), rgba(0,255,102,.06));
  border-color: rgba(0,255,102,.62);
  box-shadow: 0 0 24px rgba(0,255,102,.10);
}

.btn.ghost{
  background: rgba(0,0,0,.10);
  border-color: rgba(0,255,102,.20);
}

.btn.neon{
  border-color: rgba(0,255,102,.70);
  background: radial-gradient(180px 60px at 50% 0%, rgba(0,255,102,.22), rgba(0,0,0,.18));
}

.btn.on{
  border-color: rgba(0,255,102,.90);
  box-shadow: 0 0 32px rgba(0,255,102,.18);
}

.vol{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
}

.mini{font-size:12px; color:var(--muted);}

.range{accent-color: var(--accent); width: 170px;}
.range.wide{width:100%;}

.progress{margin-top:14px}
.time{
  display:flex;
  justify-content:space-between;
  margin-bottom:8px;
  color:var(--muted);
  font-size:12px;
}

.playlistHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}

.list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 12px;
  border-radius: 14px;
  border:1px solid rgba(0,255,102,.14);
  background: rgba(0,0,0,.16);
  cursor:pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .08s ease;
}

.item:hover{
  border-color: rgba(0,255,102,.32);
  box-shadow: 0 0 22px rgba(0,255,102,.08);
}
.item:active{transform: translateY(1px)}

.item.active{
  border-color: rgba(0,255,102,.60);
  box-shadow: 0 0 28px rgba(0,255,102,.14);
}

.badge{
  width:8px; height:8px;
  border-radius:999px;
  background: rgba(0,255,102,.30);
  box-shadow: 0 0 16px rgba(0,255,102,.16);
}
.item.active .badge{
  background: var(--accent);
  box-shadow: 0 0 18px var(--glow);
}

.trackText{display:flex; flex-direction:column; gap:2px}
.trackTitle{font-weight:900}
.trackMeta{font-size:12px; color:var(--muted)}