/* 点击封面进入全屏 */
.p-cov, #nowCover{cursor:zoom-in}

/* ============================================================
   全屏播放页（对标 QQ 音乐 Mac 版：左歌词 + 右侧大黑胶 + 封面取色背景）
   ============================================================ */
.fs{
  --fg:#1b1917;
  --fg-dim:rgba(27,25,23,.26);
  --fg-mid:rgba(27,25,23,.46);
  --fg-soft:rgba(27,25,23,.64);
  --fs-c1:#e6dacb; --fs-c2:#f1e6db; --fs-c3:#fbf7f2;
  position:fixed;inset:0;z-index:96;display:none;overflow:hidden;
  background:var(--fs-c3);color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB",sans-serif;
}
.fs.show{display:block;animation:fsIn .55s cubic-bezier(.2,.85,.25,1) both}
@keyframes fsIn{from{transform:scale(1.015)}to{transform:none}}

.fs-bg{
  position:absolute;inset:-14%;
  background:
    radial-gradient(52% 52% at 84% 16%, var(--fs-c2) 0%, transparent 60%),
    radial-gradient(66% 66% at 4% 94%, var(--fs-c1) 0%, transparent 64%),
    linear-gradient(128deg, var(--fs-c3) 0%, var(--fs-c1) 52%, var(--fs-c2) 100%);
  filter:blur(46px) saturate(1.12);
  transition:background .6s ease;
}
.fs-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0) 42%,rgba(255,255,255,.12));
}

/* 顶部 */
.fs-top{
  position:relative;z-index:3;display:flex;align-items:flex-start;gap:18px;
  padding:26px 40px 0;
}
.fs-ico{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;
  color:rgba(27,25,23,.55);background:rgba(255,255,255,.34);
  border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(10px);
  transition:.18s;margin-top:2px;
}
.fs-ico:hover{background:rgba(255,255,255,.6);color:#1b1917}
.fs-head{flex:1;min-width:0;padding-top:1px}
.fs-name{
  font-size:23px;font-weight:700;letter-spacing:.4px;line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.fs-artist{font-size:13px;color:var(--fg-mid);margin-top:5px;letter-spacing:.5px}
.fs-src{
  display:inline-block;margin-top:7px;font-size:10px;letter-spacing:.6px;
  padding:2px 9px;border-radius:20px;color:var(--fg-mid);
  background:rgba(255,255,255,.34);border:1px solid rgba(255,255,255,.5);
}

/* 主体 */
.fs-main{display:block;position:absolute;inset:118px 0 128px;z-index:2}
.fs-lyricwrap{
  position:relative;width:min(46vw,600px);height:100%;margin-left:6.4vw;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 86%,transparent);
  mask-image:linear-gradient(180deg,transparent,#000 12%,#000 86%,transparent);
}
.fs-lyric{height:100%;overflow:auto;scrollbar-width:none;padding:22% 0 28%;scroll-behavior:smooth}
.fs-lyric::-webkit-scrollbar{display:none}
.fs-lyric p{
  margin:0;padding:10px 0;font-size:26px;line-height:1.72;font-weight:600;
  color:var(--fg-dim);transition:color .32s,font-size .32s;letter-spacing:.2px;
  cursor:pointer;white-space:pre-wrap;
}
.fs-lyric p.near{color:var(--fg-mid)}
.fs-lyric p.cur{color:rgba(27,25,23,.96);font-size:28px;font-weight:700}
.fs-lyric p:hover{color:var(--fg-soft)}
.fs-lyric .fs-empty{font-size:14px;font-weight:400;color:var(--fg-dim)}

/* 右上角旋转黑胶（约占屏幕 1/3） */
.fs-coverbox{
  position:absolute;right:8vw;top:8vh;
  width:min(50vw,92vh);aspect-ratio:1;border-radius:50%;cursor:zoom-out;
  background:
    repeating-radial-gradient(circle at 50% 50%,
      rgba(30,24,18,.075) 0 1.2px, rgba(255,255,255,.045) 1.2px 2.6px),
    radial-gradient(circle at 50% 50%,
      rgba(255,255,255,.42) 0 26%,
      color-mix(in srgb, var(--fs-c2) 26%, rgba(255,255,255,.2)) 27% 100%);
  box-shadow:
    0 26px 70px rgba(40,30,20,.2),
    0 0 90px 14px color-mix(in srgb, var(--fs-c2) 42%, transparent),
    0 0 0 1px rgba(255,255,255,.28) inset,
    inset 0 0 46px rgba(70,52,34,.14);
  transform:translate(50%,-50%);
  animation:fsDiscSpin 22s linear infinite;
  transition:box-shadow .3s;
  opacity:.97;
  will-change:transform;
}
@keyframes fsDiscSpin{
  from{transform:translate(50%,-50%) rotate(0deg)}
  to{transform:translate(50%,-50%) rotate(360deg)}
}
.fs-coverbox:hover{
  animation-play-state:paused;
  box-shadow:
    0 30px 80px rgba(40,30,20,.22),
    0 0 110px 20px color-mix(in srgb, var(--fs-c2) 52%, transparent),
    0 0 0 1px rgba(255,255,255,.34) inset;
}
.fs-coverbox::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.26);
}
.fs-coverbox img{
  position:absolute;inset:20%;width:60%;height:60%;border-radius:50%;
  object-fit:cover;box-shadow:0 14px 34px rgba(30,20,10,.28);
  background:linear-gradient(135deg,rgba(180,150,120,.4),rgba(240,230,220,.6));
}

/* 底部 */
.fs-bottom{
  position:absolute;left:6.4vw;bottom:38px;z-index:3;width:min(46vw,600px);
  display:flex;flex-direction:column;gap:14px;
}
.fs-progress{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--fg-mid);
  font-variant-numeric:tabular-nums;letter-spacing:.4px}
.fs-bar{position:relative;flex:1;height:3px;border-radius:3px;background:rgba(27,25,23,.14);cursor:pointer}
.fs-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:3px;background:rgba(27,25,23,.66)}
.fs-fill::after{content:"";position:absolute;right:-4px;top:-2.5px;width:8px;height:8px;border-radius:50%;
  background:#1b1917;opacity:0;transition:.15s}
.fs-bar:hover .fs-fill::after{opacity:1}
.fs-actions{display:flex;align-items:center;gap:26px}
.fs-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  color:var(--fg-soft);transition:.18s}
.fs-btn:hover{background:rgba(255,255,255,.4);color:#1b1917}
.fs-btn.fav-on{color:#e5484d}
.fs-btn.fav-on:hover{color:#d13a3f}
.fs-play{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:rgba(27,25,23,.9);color:#fff;transition:.18s;box-shadow:0 12px 30px rgba(30,20,10,.24)}
.fs-play:hover{transform:scale(1.05)}
.fs-btn svg,.fs-play svg{width:19px;height:19px;display:block}
#fsFav svg{width:18px;height:18px;display:block}
.fs-play svg{width:20px;height:20px}

/* 移动端 */
@media (max-width:900px){
  .fs-top{padding:18px 20px 0;gap:12px}
  .fs-name{font-size:19px}
  .fs-main{inset:100px 0 120px}
  .fs-lyricwrap{width:auto;margin:0;padding:0 22px;
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 8%,#000 90%,transparent);
    mask-image:linear-gradient(180deg,transparent,#000 8%,#000 90%,transparent)}
  .fs-lyric{padding:10% 0 22%}
  .fs-lyric p{font-size:17px;line-height:1.85;text-align:center}
  .fs-lyric p.cur{font-size:19px}
  .fs-coverbox{
    width:min(56vw,38vh);right:6vw;top:7vh;opacity:.55;z-index:0;
  }
  .fs-lyricwrap{position:relative;z-index:1}
  .fs-bottom{left:22px;right:22px;width:auto;bottom:26px}
  .fs-actions{gap:20px;justify-content:center}
  .fs-play{width:50px;height:50px}
}
