/* ============================================================
   Orheal 环愈内容库 · 扩展样式（library.css · 独立模块）
   追加内容库相关组件，不改动 mobile.css 任何既有规则。
   沿用 :root token + 玻璃语言(var(--glass)/var(--hl)/backdrop-filter)
   + 现有缓动 var(--ease)，与原组件语言一致。疗愈感 = 慢、柔、光。
   ============================================================ */
:root{
  --c-music:#7af0d8;   /* 薄荷 · 音乐   */
  --c-video:#f0c56a;   /* 暖金 · 视频   */
  --c-course:#8a7cff;  /* 紫罗兰 · 课程 */
  --c-voice:#ff9ec4;   /* 琥珀粉 · 语音 */
  --c-tts:#6ee7a8;     /* 极光绿 · AI 语音 */
}

/* ===== 1. 星核入口 .lib-core（首页悬浮卡） ===== */
/* 内容库 sheet 定位：补齐 lvl-library / lvl-course，避免 sheet 沉在屏幕下方不可见 */
.sheet.lvl-library{transform:translateY(7%)}
.sheet.lvl-course{transform:translateY(7%)}
.sheet.lvl-preview{transform:translateY(7%)}

.lib-core{
  position:absolute;left:16px;right:16px;bottom:26px;
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--glass);
  backdrop-filter:blur(18px) saturate(1.1);box-shadow:var(--sh-1),var(--hl);cursor:pointer;
  transition:transform .3s var(--ease),box-shadow .4s var(--ease),border-color .3s var(--ease);
  animation:homeIn 1s var(--ease) .55s both;
}
.lib-core:active{transform:scale(.97);box-shadow:var(--sh-2),var(--hl)}
.lib-core-orb{
  position:relative;flex:0 0 auto;width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle at 38% 34%,rgba(180,250,232,.95),rgba(95,223,200,.55) 46%,rgba(40,120,110,.32) 74%,transparent 86%);
  box-shadow:0 0 22px rgba(122,240,216,.5),0 0 48px rgba(122,240,216,.22),inset 0 0 14px rgba(120,220,255,.4);
  animation:libBreath 4s ease-in-out infinite;
}
.lib-core-orb::before{ /* 极淡蓝绿地球光 */
  content:"";position:absolute;inset:6px;border-radius:50%;
  background:radial-gradient(circle at 60% 58%,rgba(90,210,235,.42),transparent 64%);mix-blend-mode:screen;
}
.lib-core-orb::after{ /* 外环柔光脉冲 */
  content:"";position:absolute;inset:-3px;border-radius:50%;
  border:1px solid rgba(122,240,216,.28);animation:libRingPulse 4s ease-out infinite;
}
@keyframes libBreath{
  0%,100%{transform:scale(.86);box-shadow:0 0 16px rgba(122,240,216,.38),0 0 34px rgba(122,240,216,.16),inset 0 0 12px rgba(120,220,255,.34)}
  42%{transform:scale(1.06);box-shadow:0 0 28px rgba(122,240,216,.62),0 0 60px rgba(122,240,216,.28),inset 0 0 18px rgba(120,220,255,.5)}
  72%{transform:scale(1.02)}
}
@keyframes libRingPulse{0%{transform:scale(.9);opacity:.5}100%{transform:scale(1.5);opacity:0}}
.lib-core-body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;text-align:left}
.lib-core-title{font-size:14.5px;font-weight:600;letter-spacing:.4px;color:var(--ink)}
.lib-core-sub{font-size:11px;line-height:1.5;color:var(--muted)}
.lib-core-arrow{flex:0 0 auto;font-size:22px;line-height:1;font-weight:300;color:var(--gold);
  text-shadow:0 0 14px rgba(240,197,106,.6);transition:transform .3s var(--ease),text-shadow .3s var(--ease)}
.lib-core:active .lib-core-arrow{transform:translateX(3px);text-shadow:0 0 22px rgba(240,197,106,.9)}

/* ===== 2. 内容库头部 .lib-head ===== */
.lib-head{padding:20px 4px 4px}
.lib-head .eyebrow{margin-bottom:10px}
.lib-head h3{font-family:"Noto Serif SC","Songti SC",serif;font-size:24px;font-weight:700;letter-spacing:.6px;line-height:1.2;margin-bottom:8px;color:var(--ink)}
.lib-head p{font-size:12.5px;line-height:1.85;color:rgba(220,236,244,.74);max-width:320px;font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif}

/* ===== 3. 分类 chips .lib-chips ===== */
.lib-chips{
  display:flex;gap:8px;margin:16px 0 4px;padding:6px 2px;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;position:sticky;top:0;z-index:2;
}
.lib-chips::-webkit-scrollbar{display:none}
.lib-chip{
  position:relative;flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;
  padding:9px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;
  border:1px solid var(--line);background:var(--glass);
  color:rgba(206,226,242,.62);font-size:12px;font-weight:600;letter-spacing:.4px;
  backdrop-filter:blur(14px);box-shadow:var(--hl);
  transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease),transform .2s var(--ease);
}
.lib-chip i{width:7px;height:7px;border-radius:50%;background:transparent;border:1px solid var(--line-2);
  transition:background .25s var(--ease),box-shadow .25s var(--ease)}
.lib-chip:active{transform:scale(.96)}
/* 类型色给小圆点上色 */
.lib-chip[data-type="music"] i{background:var(--c-music);box-shadow:0 0 8px var(--c-music)}
.lib-chip[data-type="video"] i{background:var(--c-video);box-shadow:0 0 8px var(--c-video)}
.lib-chip[data-type="course"] i{background:var(--c-course);box-shadow:0 0 8px var(--c-course)}
.lib-chip[data-type="voice"] i{background:var(--c-voice);box-shadow:0 0 8px var(--c-voice)}
.lib-chip[data-type="tts"] i{background:var(--c-tts);box-shadow:0 0 8px var(--c-tts)}
/* active 态颜色变量（供 ::after 光带复用） */
.lib-chip[data-type="music"]{--c:var(--c-music)}
.lib-chip[data-type="video"]{--c:var(--c-video)}
.lib-chip[data-type="course"]{--c:var(--c-course)}
.lib-chip[data-type="voice"]{--c:var(--c-voice)}
.lib-chip[data-type="tts"]{--c:var(--c-tts)}
.lib-chip.active{
  color:var(--ink);background:linear-gradient(180deg,rgba(20,38,54,.9),rgba(9,20,32,.82));border-color:rgba(110,200,240,.32);
}
.lib-chip.active i{box-shadow:0 0 10px var(--c),0 0 4px var(--c)}
.lib-chip.active::after{
  content:"";position:absolute;left:18%;right:18%;bottom:3px;height:2px;border-radius:2px;
  background:var(--c);box-shadow:0 0 10px var(--c),0 0 18px var(--c);
}

/* ===== 4. 场景标签 .lib-scenes ===== */
.lib-scenes{
  display:flex;gap:7px;margin:10px 0 6px;padding-bottom:4px;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.lib-scenes::-webkit-scrollbar{display:none}
.lib-scene{
  flex:0 0 auto;padding:6px 11px;border-radius:8px;white-space:nowrap;cursor:pointer;
  border:1px solid transparent;color:rgba(206,226,242,.42);font-size:11px;font-weight:500;letter-spacing:.3px;
  background:transparent;
  transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease),transform .2s var(--ease);
}
.lib-scene:active{transform:scale(.96)}
.lib-scene.active{color:var(--ink);background:rgba(82,223,244,.1);border-color:rgba(120,232,255,.24)}

/* ===== 5. 卡片网格 .lib-grid + .lib-card ===== */
.lib-grid{display:grid;gap:13px;margin-top:14px;padding-bottom:14px;position:relative;animation:gridFade .5s var(--ease) both}
@keyframes gridFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.lib-grid.cols-2{grid-template-columns:1fr 1fr}
.lib-grid.cols-1{grid-template-columns:1fr}
.lib-card{
  position:relative;border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--glass);box-shadow:var(--sh-1),var(--hl);overflow:hidden;cursor:pointer;
  transition:transform .3s var(--ease),box-shadow .4s var(--ease),border-color .3s var(--ease);
  animation:cardRise .6s var(--ease) both;
}
.lib-card:nth-child(1){animation-delay:.02s}.lib-card:nth-child(2){animation-delay:.07s}
.lib-card:nth-child(3){animation-delay:.12s}.lib-card:nth-child(4){animation-delay:.17s}
.lib-card:nth-child(5){animation-delay:.22s}.lib-card:nth-child(6){animation-delay:.27s}
.lib-card:nth-child(7){animation-delay:.32s}.lib-card:nth-child(8){animation-delay:.37s}
@keyframes cardRise{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.lib-card:active{transform:scale(.985);box-shadow:var(--sh-2),var(--hl)}
.lib-card::after{ /* 顶部细高光线，让卡片有"被光照亮"的质感 */
  content:"";position:absolute;left:14%;right:14%;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(180,230,255,.5),transparent);
  opacity:.6;pointer-events:none;
}
.lib-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:12px;letter-spacing:.5px}
/* 通用封面元素 */
.lc-cover{position:relative;border-radius:var(--r-sm);overflow:hidden}
.lc-cover-img{position:absolute;inset:0;background-size:cover;background-position:center;background-color:rgba(8,20,32,.6)}
.lc-glow{position:absolute;inset:0;mix-blend-mode:screen;pointer-events:none;transition:opacity .4s var(--ease)}
.lc-body{padding:11px 12px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.lc-title{font-size:14px;font-weight:600;letter-spacing:.3px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lc-sub{font-size:11px;line-height:1.65;color:rgba(216,230,242,.7)}
.lc-meta{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;letter-spacing:.6px;color:rgba(155,220,238,.55)}

/* ---- 音乐卡：横向光带卡 ---- */
.lib-card.music{display:flex;align-items:stretch;gap:12px;padding:12px}
.lib-card.music .lc-cover{flex:0 0 auto;width:78px;aspect-ratio:1/1}
.lib-card.music .lc-cover-img{background-color:rgba(14,50,42,.5)}
.lib-card.music .lc-glow{background:radial-gradient(70% 70% at 70% 30%,rgba(122,240,216,.42),transparent 66%);opacity:.7}
.lib-card.music .lc-body{flex:1;justify-content:center;padding:8px 0;position:relative}
.lib-card.music .lc-title{font-family:"Noto Serif SC","Songti SC",serif;font-size:16px;font-weight:700;white-space:normal;line-height:1.35}
.lib-card.music .lc-sub{margin-top:2px}
.lib-card.music .lc-bar{position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--c-music),transparent);box-shadow:0 0 10px var(--c-music);animation:lcPulse 4s ease-in-out infinite}
.lib-card.music:active{transform:scale(.98);box-shadow:var(--sh-2),var(--hl)}
.lib-card.music:active .lc-glow{opacity:1}
@keyframes lcPulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ---- 视频卡：2列 16:9 ---- */
.lib-grid.is-video{grid-template-columns:1fr 1fr}
.lib-card.video .lc-cover{width:100%;aspect-ratio:16/9;border-radius:0}
.lib-card.video .lc-cover-img{background-color:rgba(50,38,14,.5)}
.lib-card.video .lc-glow{background:radial-gradient(80% 80% at 60% 40%,rgba(240,197,106,.4),transparent 66%);opacity:.6}
.lib-card.video .lc-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.8);
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(255,230,180,.4);background:rgba(8,18,28,.42);backdrop-filter:blur(8px);
  color:rgba(255,242,218,.9);font-size:13px;
  opacity:.7;transition:opacity .4s var(--ease),transform .4s var(--ease);pointer-events:none;
}
.lib-card.video .lc-play::before{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(240,197,106,.28);animation:lcPulse var(--breath,10s) ease-in-out infinite}
.lib-card.video .lc-meta{position:absolute;right:8px;bottom:8px;padding:3px 8px;border-radius:999px;
  background:rgba(7,18,28,.78);border:1px solid rgba(240,197,106,.24);backdrop-filter:blur(8px);
  color:rgba(255,232,188,.9);font-size:9.5px;z-index:2}
.lib-card.video:hover .lc-play,.lib-card.video:focus-visible .lc-play{opacity:1;transform:translate(-50%,-50%) scale(1)}
.lib-card.video:active .lc-play{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* ---- 课程卡：纵向大卡，进度光带为主角 ---- */
.lib-card.course .lc-cover{width:100%;aspect-ratio:21/9;border-radius:0}
.lib-card.course .lc-cover-img{background-color:rgba(40,28,68,.5)}
.lib-card.course .lc-glow{background:radial-gradient(90% 90% at 70% 40%,rgba(138,124,255,.46),transparent 64%);opacity:.6}
.lib-card.course .lc-body{padding:13px 14px 14px;gap:6px}
.lib-card.course .lc-title{font-family:"Noto Serif SC","Songti SC",serif;font-size:16px;font-weight:700}
.lib-card.course .lc-sub{font-size:11px}
.lib-card.course .lc-bar{position:relative;height:4px;border-radius:4px;margin-top:4px;background:rgba(110,200,240,.14);overflow:hidden}
.lib-card.course .lc-bar i{position:absolute;left:0;top:0;bottom:0;width:var(--p,40%);border-radius:4px;
  background:linear-gradient(90deg,var(--c-course),var(--c-tts));
  box-shadow:0 0 12px rgba(138,124,255,.6),0 0 20px rgba(110,231,168,.3)}
.lib-card.course .lc-bar i::after{content:"";position:absolute;right:0;top:-3px;bottom:-3px;width:10px;border-radius:999px;
  background:radial-gradient(circle,var(--c-tts),transparent 70%);filter:blur(1px)}
.lib-card.course .lc-quote{margin-top:4px;font-family:"Noto Serif SC","Songti SC",serif;font-size:12px;line-height:1.6;color:rgba(206,226,242,.6)}

/* ---- 语音/TTS 卡：横向声波卡 ---- */
.lib-card.voice,.lib-card.tts{display:flex;align-items:center;gap:13px;padding:13px 14px}
.lc-wave{flex:0 0 auto;display:flex;align-items:center;gap:3px;height:34px;padding:0 2px}
.lc-wave span{display:block;width:3px;height:30%;border-radius:2px;
  background:var(--c,rgba(255,158,196,.7));box-shadow:0 0 6px var(--c,rgba(255,158,196,.5));
  animation:libWave 1.05s ease-in-out infinite}
.lib-card.voice{--c:var(--c-voice)}
.lib-card.tts{--c:var(--c-tts)}
@keyframes libWave{0%,100%{transform:scaleY(.4);opacity:.6}50%{transform:scaleY(1);opacity:1}}
.lib-card.voice .lc-body,.lib-card.tts .lc-body{flex:1;min-width:0}
.lib-card.voice .lc-title,.lib-card.tts .lc-title{white-space:normal}
.lc-ai{
  position:absolute;top:10px;right:10px;z-index:2;padding:2px 7px;border-radius:6px;
  border:1px solid rgba(110,231,168,.5);color:var(--c-tts);font-size:9px;font-weight:700;letter-spacing:.8px;
  background:rgba(6,30,18,.5);box-shadow:0 0 10px rgba(110,231,168,.28);
}

/* ===== 6. 课程详情 ===== */
.course-hero{
  position:relative;margin:4px 0 18px;padding:16px 15px 17px;border-radius:var(--r-md);
  border:1px solid rgba(138,124,255,.22);overflow:hidden;
  background:linear-gradient(160deg,rgba(20,18,46,.72),rgba(6,12,24,.78));box-shadow:var(--sh-1),var(--hl);
}
.course-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(138,124,255,.7),transparent)}
.ch-cover{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r-sm);overflow:hidden;margin-bottom:13px;background-size:cover;background-position:center}
.ch-cover::after{content:"";position:absolute;inset:0;mix-blend-mode:screen;
  background:radial-gradient(90% 90% at 65% 35%,rgba(138,124,255,.42),transparent 62%);opacity:.7}
.ch-meta{position:relative;z-index:1}
.ch-title{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;font-weight:700;letter-spacing:.5px;margin-bottom:8px}
.ch-sub{font-size:12px;color:var(--muted);margin-bottom:6px}
.ch-prog{position:relative;height:5px;border-radius:5px;margin:10px 0 12px;background:rgba(110,200,240,.14);overflow:hidden}
.ch-prog i{position:absolute;left:0;top:0;bottom:0;width:var(--p,40%);border-radius:5px;
  background:linear-gradient(90deg,var(--c-course),var(--c-tts));
  box-shadow:0 0 14px rgba(138,124,255,.6),0 0 22px rgba(110,231,168,.32)}
.ch-intro{font-size:12px;line-height:1.75;color:var(--muted)}

/* 课时列表（含星轨虚线连接） */
.course-list{display:flex;flex-direction:column;gap:0;position:relative;padding-left:2px}
.cl-item{
  position:relative;display:flex;align-items:center;gap:12px;padding:13px 12px;cursor:pointer;width:100%;
  border:none;background:transparent;color:var(--ink);text-align:left;font:inherit;
  border-radius:var(--r-sm);
  transition:background .25s var(--ease),transform .2s var(--ease);
}
.cl-item:active{background:rgba(82,223,244,.08)}
.cl-item::before{ /* 星轨竖线 */
  content:"";position:absolute;left:22px;top:0;bottom:0;border-left:1px dashed rgba(138,124,255,.22);
}
.cl-item:first-child::before{top:50%}
.cl-item:last-child::before{bottom:50%}
.cl-no{
  position:relative;z-index:1;flex:0 0 auto;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;border:1px solid var(--line-2);background:var(--glass);backdrop-filter:blur(12px);
  font-size:11px;font-weight:700;letter-spacing:.2px;color:rgba(206,226,242,.7);box-shadow:var(--hl);
}
.cl-title{flex:1;min-width:0;font-size:13.5px;font-weight:600;letter-spacing:.2px;color:var(--ink)}
.cl-state{flex:0 0 auto;font-size:10.5px;font-weight:600;letter-spacing:.4px;color:var(--muted)}
/* done：极光绿勾 */
.cl-item.done .cl-no{border-color:rgba(110,231,168,.5);box-shadow:var(--hl),0 0 12px rgba(110,231,168,.3)}
.cl-item.done .cl-no{color:var(--c-tts)}
.cl-item.done .cl-state{color:var(--c-tts)}
/* current：暖金 + 金光边框 */
.cl-item.current{border:1px solid rgba(240,197,106,.4);background:linear-gradient(135deg,rgba(60,44,18,.5),rgba(20,16,8,.4))}
.cl-item.current .cl-no{border-color:rgba(240,197,106,.6);box-shadow:var(--hl),0 0 14px rgba(240,197,106,.42);color:var(--gold)}
.cl-item.current .cl-state{color:var(--gold)}
/* locked：半透明 */
.cl-item.locked{opacity:.5}
.cl-item.locked .cl-state{color:var(--faint)}

/* ===== 7. 播放器扩展（收藏钮 + 视频容器） ===== */
#player .pl-fav{
  position:absolute;top:48px;right:74px;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,210,150,.24);background:rgba(30,22,10,.5);color:rgba(255,230,200,.9);
  font-size:18px;display:grid;place-items:center;backdrop-filter:blur(14px);cursor:pointer;
  transition:transform .15s var(--ease),background .2s,color .2s;
}
#player .pl-fav:active{transform:scale(.9)}
#player .pl-fav.on{color:#ff7aa8;text-shadow:0 0 14px rgba(255,122,168,.7)}
#player .pl-video{
  position:absolute;left:50%;top:80px;transform:translateX(-50%);
  width:min(78%,300px);aspect-ratio:16/9;border-radius:14px;overflow:hidden;
  border:1px solid rgba(120,232,255,.18);background:rgba(0,0,0,.4);box-shadow:0 14px 40px rgba(0,0,0,.5);
  z-index:3;
}
#player .pl-video:empty{display:none}

/* ===== 预览层（播放前简介，复用 sheet stack） ===== */
#layer-preview{padding:2px 0 30px}
.pv-cover{
  position:relative;height:200px;border-radius:var(--r-md);overflow:hidden;margin:2px 0 16px;
  border:1px solid var(--line);box-shadow:var(--sh-1),var(--hl);
}
.pv-cover .pv-glow{position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 40%,rgba(255,255,255,.12),transparent 70%);pointer-events:none}
.pv-cover::after{content:"";position:absolute;left:14%;right:14%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(180,230,255,.5),transparent);opacity:.6}
.pv-orb{position:absolute;right:22px;top:22px;width:48px;height:48px;display:grid;place-items:center}
.pv-orb i{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.85),rgba(89,169,255,.4) 70%);box-shadow:0 0 26px rgba(89,169,255,.7);animation:breathDot var(--breath,10s) ease-in-out infinite}
.pv-badge{position:absolute;left:16px;bottom:16px;padding:5px 12px;border-radius:999px;background:rgba(8,18,28,.6);border:1px solid rgba(110,200,240,.24);backdrop-filter:blur(8px);color:rgba(180,230,255,.9);font-size:10px;letter-spacing:1.5px;font-weight:600}
.pv-body{padding:0 4px}
.pv-title{font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;font-size:24px;font-weight:700;letter-spacing:.6px;color:var(--ink);line-height:1.25}
.pv-sub{margin-top:8px;font-size:13px;line-height:1.7;color:rgba(220,236,244,.78);font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif}
.pv-desc{margin-top:14px;font-size:13px;line-height:1.95;color:rgba(214,232,242,.72);font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;max-width:340px}
.pv-meta{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:11px;letter-spacing:1px;color:rgba(160,205,220,.6);font-family:"SFMono-Regular",Consolas,monospace}
.pv-dot{width:3px;height:3px;border-radius:50%;background:rgba(160,205,220,.4)}
.pv-cta{
  position:relative;display:flex;align-items:center;gap:14px;width:100%;margin-top:22px;
  padding:16px 18px;border-radius:16px;cursor:pointer;overflow:hidden;text-align:left;
  border:1px solid rgba(132,238,255,.5);color:#f5fdff;
  background:radial-gradient(140% 160% at 50% -40%,rgba(170,247,255,.4),transparent 60%),linear-gradient(180deg,rgba(104,232,255,.28),rgba(36,124,170,.38) 54%,rgba(10,26,44,.7));
  box-shadow:0 14px 34px rgba(42,170,220,.32),inset 0 1px 0 rgba(255,255,255,.38),inset 0 -12px 26px rgba(0,38,68,.48);
  transition:transform .16s var(--ease),box-shadow .2s;
}
.pv-cta:active{transform:scale(.98)}
.pv-cta-ring{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(190,247,255,.7);display:grid;place-items:center;position:relative}
.pv-cta-ring::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(122,240,216,.4);border-radius:50%;animation:nodeRing 3.4s ease-out infinite}
.pv-cta-ring::before{content:"";width:0;height:0;border-left:10px solid rgba(190,247,255,.95);border-top:6px solid transparent;border-bottom:6px solid transparent;margin-left:2px}
.pv-cta-text{flex:1;display:flex;flex-direction:column;gap:2px}
.pv-cta-text b{font-size:15px;font-weight:700;letter-spacing:1px}
.pv-cta-text em{font-style:normal;font-size:10.5px;letter-spacing:1px;color:rgba(190,240,255,.7)}
.pv-cta-arrow{flex:0 0 auto;font-size:20px;color:rgba(190,247,255,.8);font-weight:300}
.pv-later{display:block;width:100%;margin-top:12px;padding:12px;background:transparent;border:none;color:rgba(160,205,220,.55);font-size:12px;letter-spacing:1px;cursor:pointer;text-align:center}
.pv-later:active{color:rgba(200,230,240,.8)}

/* 无障碍：减弱动效偏好下关闭装饰动画 */
@media (prefers-reduced-motion:reduce){
  .lib-core-orb,.lib-core-orb::after,.lib-card.music .lc-bar,.lc-wave span,
  .lib-card.video .lc-play::before,.pv-orb i,.pv-cta-ring::after{animation:none!important}
}
