/* ============================================================
   音乐灵动岛（插件版，自包含配色，任意主题可用）
   ============================================================ */
body .ip-music{
  position:fixed; top:74px; right:22px; z-index:99990;
  width:64px; height:34px; max-width:calc(100vw - 24px); overflow:hidden;
  border-radius:999px; background:#241f18;
  box-shadow:0 14px 32px -16px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.08);
  transition:width .38s cubic-bezier(.2,.8,.2,1), height .38s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
body .ip-music:hover, body .ip-music.is-open{
  width:min(320px,calc(100vw - 24px)); height:58px;
  box-shadow:0 22px 50px -20px rgba(0,0,0,.7), inset 0 0 0 1px rgba(255,255,255,.12);
}
/* 隐藏 APlayer 原生界面，只保留音频内核 */
body .ip-music .aplayer, body .ip-music .aplayer-body,
body .ip-music .aplayer-list, body .ip-music .aplayer-lrc{display:none !important}

body .ip-music .ip-island{
  position:absolute; inset:0; display:flex; align-items:center;
  width:100%; height:100%; color:#fdfaf1; cursor:pointer; user-select:none;
}
.ip-island-cover{
  flex:0 0 auto; width:26px; height:26px; margin-left:4px; overflow:hidden;
  border-radius:50%; background:#191510;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
  transition:width .35s ease, height .35s ease, margin .35s ease, border-radius .35s ease;
}
.ip-island-cover img{display:block; width:100%; height:100%; object-fit:cover}
body .ip-music:hover .ip-island-cover, body .ip-music.is-open .ip-island-cover{
  width:40px; height:40px; margin-left:9px; border-radius:12px;
}

/* 播放状态下的跳动音条 */
.ip-island-bars{
  display:flex; align-items:center; justify-content:center; gap:2px;
  margin:0 auto; width:18px; height:16px; transition:opacity .2s ease;
}
.ip-island-bars i{display:block; width:2px; height:7px; border-radius:2px; background:#9fb096}
.ip-island-bars i:nth-child(2){height:12px; background:#d9a566}
.ip-island-bars i:nth-child(3){height:9px; background:#e6d3ac}
.ip-island-bars i:nth-child(4){height:5px; background:#7f9273}
body .ip-music.is-playing .ip-island-bars i{animation:ip-island-wave .9s ease-in-out infinite alternate}
body .ip-music.is-playing .ip-island-bars i:nth-child(2){animation-delay:.12s}
body .ip-music.is-playing .ip-island-bars i:nth-child(3){animation-delay:.24s}
body .ip-music.is-playing .ip-island-bars i:nth-child(4){animation-delay:.36s}
@keyframes ip-island-wave{from{transform:scaleY(.55); opacity:.65}to{transform:scaleY(1.35); opacity:1}}

/* 展开后的歌名 / 歌手 / 控制按钮 */
.ip-island-copy{display:none; flex:1; min-width:0; flex-direction:column; justify-content:center; gap:2px; padding:0 8px}
body .ip-music:hover .ip-island-copy, body .ip-music.is-open .ip-island-copy{display:flex}
.ip-island-title{overflow:hidden; color:#fdfaf1; font-size:13px; font-weight:600; line-height:1.2; text-overflow:ellipsis; white-space:nowrap}
.ip-island-artist{overflow:hidden; color:rgba(233,223,203,.62); font-size:10px; font-weight:500; line-height:1.2; text-overflow:ellipsis; white-space:nowrap}

.ip-island-actions{display:none; align-items:center; gap:1px; flex:0 0 auto; padding-right:7px}
body .ip-music:hover .ip-island-actions, body .ip-music.is-open .ip-island-actions{display:flex}
.ip-island-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:27px; height:27px; padding:0; border:0; border-radius:50%;
  background:transparent; color:rgba(253,250,241,.78); cursor:pointer;
  transition:background-color .18s ease, color .18s ease, transform .18s ease;
}
.ip-island-btn:hover{background:rgba(255,255,255,.12); color:#fff; transform:scale(1.06)}
.ip-island-btn svg{width:15px; height:15px; display:block}
.ip-island-toggle{width:32px; height:32px; background:#d9a566; color:#4a3418}
.ip-island-toggle:hover{background:#c6955a; color:#4a3418}

/* 底部进度线 */
.ip-island-progress{
  position:absolute; left:12px; right:12px; bottom:7px; height:2px; overflow:hidden;
  border-radius:999px; background:rgba(233,223,203,.22); opacity:0; transition:opacity .2s ease;
}
body .ip-music:hover .ip-island-progress, body .ip-music.is-open .ip-island-progress{opacity:1}
.ip-island-progress span{display:block; width:0; height:100%; border-radius:inherit; background:#d9a566; transition:width .25s linear}

@media (max-width:640px){
  body .ip-music{top:92px; right:12px}
}

/* ============================================================
   按住拖拽：岛身可自由移动，位置记忆（localStorage）
   ============================================================ */
body .ip-music{touch-action:none}
body .ip-music .ip-island{cursor:grab}
body .ip-music .ip-island-cover img{-webkit-user-drag:none; user-select:none}
body .ip-music.is-dragging{transition:none; opacity:.94}
body .ip-music.is-dragging .ip-island{cursor:grabbing}
body.ip-dragging-cursor{cursor:grabbing !important; user-select:none}
