/* Orheal 环愈 · 手机版样式 (mobile.css)
   产品级精修：统一设计 token、玻璃质感、精致按钮与微交互。
   布局：3D 地球常驻背景 + 从底部升起的层叠卡片(sheet)。
   电脑网页版 index.html 不使用本文件。 */
*{margin:0;padding:0;box-sizing:border-box}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:2px solid rgba(240,197,106,.92);outline-offset:3px;
}
:root{
  /* 配色 */
  --bg:#030b14;
  --ink:#eaf7ff;
  --muted:rgba(206,226,242,.62);
  --faint:rgba(206,226,242,.42);
  --accent:#4fd8ff;       /* 主青 */
  --accent-2:#7af0d8;     /* 薄荷 */
  --violet:#8a7cff;
  --gold:#f0c56a;
  --line:rgba(110,200,240,.16);
  --line-2:rgba(110,200,240,.28);
  --glass:linear-gradient(180deg,rgba(14,30,46,.82),rgba(7,17,28,.78));
  --glass-strong:linear-gradient(180deg,rgba(12,28,44,.95),rgba(6,15,25,.96));
  /* 圆角 */
  --r-lg:24px;--r-md:16px;--r-sm:12px;
  /* 阴影 */
  --sh-1:0 10px 30px rgba(0,0,0,.32);
  --sh-2:0 18px 54px rgba(0,0,0,.42);
  --hl:inset 0 1px 0 rgba(255,255,255,.06);
  --ease:cubic-bezier(.22,.8,.22,1);
  /* 间距令牌（统一节奏，避免散落的 magic number） */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;
  /* 统一呼吸节奏：吸 4s · 呼 6s = 10s 一周期（疗愈产品签名节奏） */
  --breath:10s;
}
html,body{
  width:100%;height:100%;overflow:hidden;
  background:radial-gradient(circle at top,#061525 0%,#020a14 40%,#01060c 100%);
  font-family:"PingFang SC","Microsoft YaHei",-apple-system,"Segoe UI",sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
body{display:grid;place-items:center}
button{font:inherit;-webkit-tap-highlight-color:transparent;color:var(--ink)}
button,input,select,textarea{color:var(--ink)}
.serif{font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif}

.device{
  position:relative;
  width:min(100vw,420px);
  height:min(100vh,910px);
  padding:11px;
  border-radius:42px;
  background:linear-gradient(155deg,rgba(120,150,170,.22),rgba(255,255,255,.03) 30%,rgba(0,0,0,.2));
  box-shadow:0 40px 110px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.06);
}
.app{
  position:relative;width:100%;height:100%;
  isolation:isolate;contain:layout paint;
  border-radius:32px;overflow:hidden;overflow:clip;
  background:
    radial-gradient(120% 88% at 80% -12%,rgba(60,100,180,.14),transparent 46%),
    radial-gradient(92% 70% at 8% 6%,rgba(100,60,155,.10),transparent 52%),
    radial-gradient(120% 90% at 50% 122%,rgba(20,140,160,.08),transparent 56%),
    linear-gradient(180deg,#050b1a,#030712 46%,#01050c);
  box-shadow:inset 0 0 0 1px rgba(121,214,255,.08);
  transition:background 1.35s var(--ease),box-shadow 1.35s var(--ease);
}
.app::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.01) 0 1px,transparent 1px 9px);
  pointer-events:none;opacity:.4;z-index:36;
}
/* 状态栏 */
.status{
  position:absolute;left:24px;right:24px;top:13px;z-index:40;
  display:flex;justify-content:space-between;align-items:center;
  font-size:12px;font-weight:600;letter-spacing:.3px;color:rgba(234,245,251,.9);pointer-events:none;
}
.status span:last-child{font-size:11px;font-weight:500;color:rgba(234,245,251,.7);letter-spacing:.6px}
.notch{
  position:absolute;top:11px;left:50%;transform:translateX(-50%);
  width:118px;height:30px;border-radius:0 0 18px 18px;background:#000;z-index:39;
}

/* ===== 通用按钮 ===== */
.primary-btn,.secondary-btn,.ghost-btn{
  height:48px;border-radius:14px;font-size:14px;font-weight:600;letter-spacing:.5px;cursor:pointer;
  border:1px solid var(--line-2);color:var(--ink);
  transition:transform .15s var(--ease),box-shadow .25s var(--ease),background .2s,border-color .2s;
  backdrop-filter:blur(16px);
}
.primary-btn{
  position:relative;overflow:hidden;letter-spacing:1px;color:#fff7ec;
  border-color:rgba(255,205,140,.6);
  background:
    radial-gradient(130% 150% at 50% -30%,rgba(255,238,200,.5),transparent 58%),
    linear-gradient(180deg,rgba(240,197,120,.34),rgba(190,138,60,.42) 52%,rgba(40,26,10,.72));
  box-shadow:0 12px 28px rgba(210,150,60,.34),inset 0 1px 0 rgba(255,255,255,.42),inset 0 -12px 24px rgba(60,38,10,.5);
}
.primary-btn::after{ /* 周期性光泽扫过：高端光感 */
  content:"";position:absolute;top:0;left:-70%;width:46%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);
  transform:skewX(-18deg);filter:blur(1.5px);
  animation:sheen 6s ease-in-out 2s infinite;
}
@keyframes sheen{0%{left:-70%}16%{left:170%}100%{left:170%}}
.primary-btn:active{transform:scale(.965);box-shadow:0 6px 14px rgba(210,150,60,.3),inset 0 1px 0 rgba(255,255,255,.3),0 0 26px rgba(255,205,140,.3)}
.secondary-btn{
  letter-spacing:1px;color:rgba(232,245,251,.92);border-color:rgba(120,205,245,.26);
  background:linear-gradient(180deg,rgba(20,40,60,.72),rgba(9,20,32,.8));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.secondary-btn:active{transform:scale(.965);background:rgba(24,46,68,.85);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 20px rgba(82,223,244,.18)}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11.5px;font-weight:600;letter-spacing:2.5px;color:rgba(240,197,106,.92);margin-bottom:13px;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.section-title{display:flex;justify-content:space-between;align-items:center;margin:22px 2px 12px}
.section-title h2{font-size:16px;font-weight:600;letter-spacing:.5px;display:flex;align-items:center;gap:9px}
.section-title h2::before{content:"";width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--accent-2));box-shadow:0 0 10px rgba(79,216,255,.5)}
.section-title span{font-size:11px;font-weight:500;color:rgba(157,202,223,.5);letter-spacing:1.6px}

/* ===== 地球常驻背景层 ===== */
/* 统一动效：所有 china-focus 过渡对齐到 ~1.05s + 统一缓动，整体一气呵成 */
#globe-stage{position:absolute;inset:0;z-index:1;transition:filter 1.05s var(--ease),opacity 1.05s var(--ease)}
#globe-stage.dimmed{filter:none;opacity:.55}
.app.globe-suspended #globe-stage *,
/* premium 聚光灯暗角：地球坐在更深的舞台中央，城市灯火跳出来，画框干净不脏 */
#globe-stage::after{
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  background:
    radial-gradient(circle at 50% 44%,transparent 50%,rgba(2,9,18,.30) 78%,rgba(1,6,12,.62) 100%);
  transition:background 1.05s var(--ease),opacity 1.05s var(--ease);
}
.app.china-focus #globe-stage::after{
  background:
    linear-gradient(180deg,rgba(3,10,18,.42),rgba(4,12,20,.04) 26%,rgba(2,8,14,.15) 58%,rgba(2,6,12,.66) 100%),
    radial-gradient(ellipse at 50% 42%,rgba(255,197,106,.07) 0 42%,rgba(4,11,20,.44) 80%,rgba(2,6,12,.82) 100%);
}
#mobile-globe-canvas{
  position:absolute;inset:0;width:100%!important;height:100%!important;z-index:1;
  filter:saturate(1.04) brightness(1.02) contrast(1.04) drop-shadow(0 0 28px rgba(240,180,90,.22));
  transform:translateY(86px) scale(1.18);transform-origin:center center;
  opacity:0;transition:opacity 1.2s ease,transform 1.05s var(--ease),filter 1.05s var(--ease);touch-action:none;
}
.app.china-focus #mobile-globe-canvas{
  transform:translateY(186px) scale(1.12);
  filter:saturate(1.08) brightness(.84) contrast(1.14) drop-shadow(0 0 32px rgba(255,180,90,.24));
}
#mobile-globe-canvas.ready{opacity:1}
.globe-loading{
  position:absolute;inset:0;z-index:6;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  color:rgba(186,224,242,.8);transition:opacity .6s ease;pointer-events:none;
}
.globe-loading.hide{opacity:0;visibility:hidden}
.globe-loading .ring{
  width:42px;height:42px;border-radius:50%;
  border:2px solid rgba(82,223,244,.16);border-top-color:var(--accent);
  animation:spin 1s linear infinite;
  box-shadow:0 0 24px rgba(82,223,244,.28);
}
.globe-loading .txt{font-size:11px;letter-spacing:2px;color:var(--faint)}
.globe-loading .sub{font-size:11px;letter-spacing:1px;color:rgba(120,160,180,.5);margin-top:-8px}
.mobile-stars{position:absolute;inset:0;z-index:0;pointer-events:none;visibility:visible;background:radial-gradient(58% 48% at 20% 28%,rgba(78,200,210,.10),transparent 62%),radial-gradient(54% 46% at 82% 68%,rgba(150,120,230,.09),transparent 62%),radial-gradient(50% 42% at 62% 16%,rgba(240,200,120,.05),transparent 60%);transition:background 1.35s var(--ease),opacity 1.1s var(--ease),visibility 0s linear 0s}
.mobile-star{position:absolute;border-radius:50%;background:#fff;animation:twinkle var(--d) infinite var(--dl);transition:opacity .9s ease}
.mobile-ambient{
  position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:screen;
  background:
    radial-gradient(circle at 72% 14%,rgba(82,223,244,.22),transparent 28%),
    radial-gradient(circle at 22% 64%,rgba(120,110,240,.16),transparent 30%),
    radial-gradient(circle at 50% 50%,rgba(60,180,255,.10),transparent 46%),
    radial-gradient(circle at 30% 22%,rgba(240,197,106,.07),transparent 24%);
  transition:opacity 1.05s var(--ease),background 1.35s var(--ease);
}
.app.china-focus .mobile-ambient{opacity:.48}

/* 白天不是另一套页面：只改变同一舞台的光线、空气与材质；中国地图继续保持既有夜间视觉。 */
.app[data-globe-theme="day"]:not(.china-focus){
  background:
    radial-gradient(92% 52% at -20% 36%,rgba(255,217,145,.33),transparent 58%),
    radial-gradient(86% 54% at 92% -12%,rgba(72,178,218,.26),transparent 68%),
    radial-gradient(82% 46% at 52% 32%,rgba(176,238,235,.10),transparent 70%),
    linear-gradient(180deg,#356d7e 0%,#0f4d68 35%,#062945 70%,#02101f 100%);
  box-shadow:inset 0 0 0 1px rgba(210,236,232,.17);
}
.app[data-globe-theme="day"]:not(.china-focus)::before{opacity:.045}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-stars{
  opacity:0;visibility:hidden;background:none;transition:opacity 1.1s var(--ease),visibility 0s linear 1.1s;
}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-star{opacity:0!important;visibility:hidden;animation:none}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient{
  opacity:.62;
  background:
    radial-gradient(circle at -10% 43%,rgba(255,220,145,.22),transparent 35%),
    radial-gradient(circle at 84% 9%,rgba(119,215,235,.18),transparent 35%),
    radial-gradient(circle at 50% 45%,rgba(176,239,235,.10),transparent 53%),
    linear-gradient(104deg,rgba(255,215,135,.06),transparent 32%,rgba(2,24,42,.18) 79%,rgba(1,12,24,.28) 100%);
  animation:dayAmbientDrift 11s ease-in-out infinite alternate;
}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::before,
.app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::after{
  content:"";position:absolute;left:-18%;right:-18%;pointer-events:none;
  mix-blend-mode:screen;filter:blur(5px);opacity:.42;
}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::before{
  top:26%;height:28%;
  background:
    radial-gradient(ellipse at 28% 58%,rgba(255,246,221,.16),transparent 56%),
    radial-gradient(ellipse at 70% 44%,rgba(185,236,232,.14),transparent 62%);
  animation:dayMistSway 13s ease-in-out infinite alternate;
}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::after{
  bottom:13%;height:34%;
  background:
    radial-gradient(ellipse at 36% 20%,rgba(210,244,236,.12),transparent 60%),
    radial-gradient(ellipse at 68% 36%,rgba(255,230,184,.10),transparent 64%);
  animation:dayMistSway 16s ease-in-out -3s infinite alternate-reverse;
}
.app[data-globe-theme="day"]:not(.china-focus) #globe-stage::before{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:
    radial-gradient(circle at -20% 55%,rgba(255,255,238,1) 0 4%,rgba(255,230,150,.86) 12%,rgba(255,183,70,.25) 24%,transparent 42%),
    radial-gradient(ellipse at -8% 56%,rgba(255,226,144,.34),rgba(255,190,82,.08) 28%,transparent 54%);
  -webkit-mask-image:linear-gradient(90deg,#000 0 18%,rgba(0,0,0,.35) 26%,transparent 37%);
  mask-image:linear-gradient(90deg,#000 0 18%,rgba(0,0,0,.35) 26%,transparent 37%);
  mix-blend-mode:screen;opacity:.86;animation:daybreakBreathe 8s ease-in-out infinite alternate;
}
.app[data-globe-theme="day"]:not(.china-focus) #globe-stage::after{
  background:
    radial-gradient(ellipse at 48% 42%,rgba(236,255,248,.025) 0 34%,transparent 58%),
    linear-gradient(103deg,rgba(255,223,154,.035),transparent 32%,rgba(2,20,38,.16) 76%,rgba(1,10,23,.34) 100%),
    linear-gradient(180deg,rgba(240,253,250,.018),transparent 30%,rgba(2,27,44,.05) 62%,rgba(1,8,18,.50) 100%),
    radial-gradient(circle at 51% 54%,transparent 54%,rgba(85,185,216,.06) 77%,rgba(1,8,16,.34) 100%),
    radial-gradient(ellipse at 50% 91%,rgba(1,10,20,.42),transparent 53%);
}
.app[data-globe-theme="day"]:not(.china-focus) #mobile-globe-canvas{
  transform:translateY(122px) scale(1.08);
  filter:saturate(1.06) brightness(1.02) contrast(1.08) drop-shadow(0 0 34px rgba(80,205,245,.24));
}
.app[data-globe-theme="day"]:not(.china-focus) .hud-corner{opacity:.27}
.app[data-globe-theme="day"]:not(.china-focus) .hud-corner::before,.app[data-globe-theme="day"]:not(.china-focus) .hud-corner::after{background:rgba(129,213,227,.42);box-shadow:0 0 15px rgba(96,199,219,.18)}
.app[data-globe-theme="day"]:not(.china-focus) .globe-brand img{filter:drop-shadow(0 5px 16px rgba(1,22,31,.32)) saturate(.98)}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node-label{background:rgba(5,24,34,.7);border-color:rgba(220,235,230,.15);color:rgba(243,247,240,.9)}
@keyframes dayAmbientDrift{from{transform:translate3d(-1.5%,0,0) scale(1)}to{transform:translate3d(1.5%,1%,0) scale(1.035)}}
@keyframes daybreakBreathe{from{opacity:.63;transform:scale(1)}to{opacity:.88;transform:scale(1.025)}}
@keyframes dayMistSway{from{transform:translate3d(-3%,0,0) scale(1)}to{transform:translate3d(3%,1.4%,0) scale(1.04)}}
.hud-corner{position:absolute;width:64px;height:64px;z-index:5;opacity:.5;pointer-events:none}
.hud-corner::before,.hud-corner::after{content:"";position:absolute;background:rgba(82,223,244,.5);box-shadow:0 0 12px rgba(82,223,244,.22)}
.hud-corner::before{width:100%;height:1px}
.hud-corner::after{width:1px;height:100%}
.hud-corner.tl{top:84px;left:18px}
.hud-corner.br{right:18px;bottom:30px;transform:scale(-1)}
.china-focus-back{
  position:absolute;left:20px;top:84px;z-index:17;
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(120,232,255,.22);
  background:rgba(4,17,30,.54);
  color:rgba(170,235,255,.92);
  font-size:22px;line-height:1;display:grid;place-items:center;
  backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 24px rgba(0,0,0,.22);
  opacity:0;pointer-events:none;transform:translateX(-6px);
  transition:opacity .32s ease,transform .32s var(--ease),background .2s;
}
.app.china-focus .china-focus-back{opacity:1;pointer-events:auto;transform:translateX(0)}
.china-focus-back:active{transform:translateX(0) scale(.94);background:rgba(20,45,62,.72)}
.mobile-node-layer{position:absolute;inset:0;z-index:8;pointer-events:none;transform:translateY(86px) scale(1.18);transform-origin:center center;transition:transform 1.05s var(--ease),opacity .42s .22s ease,visibility 0s linear 0s}
#mobile-globe-canvas:not(.ready)~.mobile-node-layer{opacity:0;visibility:hidden;transition-delay:0s}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node-layer{transform:translateY(122px) scale(1.08)}
@media (max-width:430px){
  .app[data-globe-theme="day"]:not(.china-focus) #mobile-globe-canvas{
    transform:translateY(120px) scale(1.12);
  }
  .app[data-globe-theme="day"]:not(.china-focus) .mobile-node-layer{
    transform:translateY(120px) scale(1.12);
  }
}

/* ===== 中国地图：地图为静物 + 错峰入场（极光→光球→文案，blur→清晰） ===== */
#china-focus-ui{
  position:absolute;inset:0;z-index:15;pointer-events:none;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity 1.1s var(--ease) .15s,transform 1.1s var(--ease) .15s;
}
.app.china-focus #china-focus-ui{opacity:1;visibility:visible;transform:translateY(0)}
.china-node-layer{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  transform:translateY(186px) scale(1.12);transform-origin:center center;
}
.app:not(.china-focus) .china-surface-label{display:none!important}
.cn-map-title,.cn-breath-tag,.cn-caption,.cn-city-console{z-index:4}
/* 入场错峰：进入中国地图时各元素依次柔和浮现 */
.app.china-focus .china-aurora{animation:cnIn 1.2s var(--ease) .05s both}
.app.china-focus .cn-map-title{animation:cnIn 1s var(--ease) .12s both}
.app.china-focus .cn-caption,.app.china-focus .cn-city-console{animation:cnIn 1.1s var(--ease) .42s both}
.app.china-focus .cn-breath-tag{animation:cnIn .9s var(--ease) .6s both}
@keyframes cnIn{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
/* 中下呼吸光球需保持自身 transform，入场后由其动画接管 */
.cn-map-title{
  position:absolute;left:48px;right:48px;top:60px;
  display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;
  text-shadow:0 4px 18px rgba(0,0,0,.7);
}
.cn-map-title span{font-size:11px;font-weight:700;letter-spacing:2.2px;color:rgba(240,197,106,.82)}
.cn-map-title strong{font-size:24px;font-weight:700;letter-spacing:1.8px;color:rgba(246,251,249,.98)}
.cn-map-title p{font-size:12px;line-height:1.5;color:rgba(205,226,235,.62)}
/* 极光氛围层：极淡柔光（透明度压到很低，仅在暗处微微透出，绝不抢地图） */
.china-aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen;opacity:.5}
.china-aurora .aur{position:absolute;border-radius:50%;filter:blur(56px)}
.aur-a{
  width:300px;height:300px;left:-80px;top:60px;
  background:radial-gradient(circle,rgba(122,240,216,.34),transparent 68%);
  animation:aurFloat 20s ease-in-out infinite;
}
.aur-b{
  width:280px;height:280px;right:-70px;top:40px;
  background:radial-gradient(circle,rgba(255,197,140,.30),transparent 68%);
  animation:aurFloat 24s ease-in-out infinite reverse;
}
.aur-c{
  width:220px;height:220px;left:42%;top:0;
  background:radial-gradient(circle,rgba(240,197,106,.22),transparent 70%);
  animation:aurFloat 28s ease-in-out infinite;animation-delay:-6s;
}
@keyframes aurFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(26px,-20px) scale(1.08)}
  66%{transform:translate(-22px,24px) scale(.95)}
}
/* 顶部右上呼吸标签（左上返回键已在 globe-stage 内，这里只占右侧） */
.cn-breath-tag{
  position:absolute;right:20px;top:151px;
  display:flex;align-items:center;gap:0;pointer-events:none;
  color:rgba(240,211,158,.58);font-size:11px;font-weight:600;letter-spacing:1.4px;
}
.cn-breath-tag i{
  display:none;
}
@keyframes cnPip{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}
/* 中下呼吸光球：城市聚焦态的焦点引导，吸4呼6；可轻触直接开始 */
.cn-orb{display:none}
.cn-orb-core{
  position:absolute;inset:30px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,240,210,.95),rgba(255,200,120,.4) 55%,transparent 72%);
  box-shadow:0 0 30px rgba(255,197,120,.55),inset 0 0 16px rgba(255,240,210,.4);
  animation:cnBreath var(--breath) ease-in-out infinite;
}
.cn-orb-ring{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(255,200,120,.3);
  animation:cnRing 8s ease-out infinite;
}
.cn-orb:active .cn-orb-core{animation-play-state:paused;transform:scale(.9)}
@keyframes cnBreath{0%{transform:scale(.72);opacity:.7;box-shadow:0 0 16px rgba(255,197,120,.32)}40%{transform:scale(1.2);opacity:1;box-shadow:0 0 38px rgba(255,197,120,.66)}100%{transform:scale(.72);opacity:.7;box-shadow:0 0 16px rgba(255,197,120,.32)}}
@keyframes cnRing{0%{transform:scale(.6);opacity:.5}100%{transform:scale(1.5);opacity:0}}
/* 城市选择面板：将当前城市、说明和下一步动作收在一个稳定区域 */
.cn-caption{
  position:absolute;left:16px;right:16px;bottom:16px;
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
  padding:17px 17px 15px;text-align:left;pointer-events:auto;
  border:1px solid rgba(255,217,160,.14);border-radius:20px;
  background:linear-gradient(150deg,rgba(11,25,34,.86),rgba(5,13,21,.76));
  box-shadow:0 22px 60px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(20px) saturate(1.12);
}
.cn-caption-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cn-caption-kicker{
  display:inline-flex;align-items:center;gap:7px;
  color:rgba(180,238,228,.8);font-size:11px;font-weight:600;letter-spacing:1.8px;
}
.cn-caption-kicker::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 8px var(--accent-2)}
.cn-caption-count{font-size:11px;letter-spacing:1.4px;color:rgba(240,197,106,.58);font-variant-numeric:tabular-nums}
.cn-caption strong{
  color:rgba(248,252,250,.98);font-size:21px;font-weight:700;letter-spacing:.4px;
  text-shadow:0 8px 28px rgba(0,0,0,.6),0 2px 10px rgba(0,0,0,.5);
}
/* 切换城市时标题柔和重入，提示已更新 */
.cn-caption strong.flash{animation:cnTitleFlash .9s var(--ease)}
@keyframes cnTitleFlash{0%{opacity:0;transform:translateY(8px);filter:blur(4px)}100%{opacity:1;transform:translateY(0);filter:blur(0)}}
.cn-caption p{
  max-width:310px;
  color:rgba(220,236,244,.78);font-size:12px;line-height:1.85;letter-spacing:.3px;
  font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  text-shadow:0 4px 16px rgba(0,0,0,.6);
}
.cn-start{
  margin-top:4px;height:43px;padding:0 14px 0 16px;border-radius:13px;
  display:flex;align-items:center;justify-content:space-between;
  border:1px solid rgba(255,205,140,.28);
  background:linear-gradient(180deg,rgba(240,197,106,.16),rgba(69,45,18,.34));
  color:rgba(255,242,218,.94);font-size:12px;font-weight:600;letter-spacing:.8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);cursor:pointer;
}
.cn-start b{font-size:21px;font-weight:400;color:var(--gold);line-height:1}
.cn-start:active{transform:scale(.98);background:rgba(240,197,106,.2)}
.mobile-node{position:absolute;width:12px;height:12px;border:0;border-radius:50%;background:#ffd36b;box-shadow:0 0 10px 3px rgba(255,211,107,.42),0 0 22px 8px rgba(255,211,107,.12);transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity .24s}
.mobile-node::before{content:"";position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,rgba(255,232,166,.26),rgba(255,188,64,.08) 46%,transparent 72%)}
.mobile-node::after{content:"";position:absolute;inset:-18px;border-radius:50%;border:1px solid rgba(255,211,107,.18);animation:nodeRing 3.4s ease-out infinite}
.mobile-node:not(.china-surface-label)::before{
  inset:auto;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);
  background:radial-gradient(circle,#ffd36b 0 4px,rgba(255,232,166,.22) 5px,rgba(255,188,64,.06) 48%,transparent 72%);
  box-shadow:0 0 8px 2px rgba(255,211,107,.3);
}
.mobile-node:not(.china-surface-label)::after{display:none}
.mobile-node:not(.china-surface-label){width:64px;height:64px;background:transparent;box-shadow:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.mobile-node[data-id="china"]:not(.china-surface-label){z-index:3;width:104px;height:80px}
.mobile-node[data-id="china"]:not(.china-surface-label) .mobile-node-label{pointer-events:none}
.mobile-node.pending{width:9px;height:9px;background:#56ddff;box-shadow:0 0 10px 4px rgba(86,221,255,.34),0 0 24px 8px rgba(86,221,255,.1)}
.mobile-node.pending::before{background:radial-gradient(circle,rgba(86,221,255,.22),rgba(86,221,255,.08) 46%,transparent 72%)}
.mobile-node.pending::after{border-color:rgba(86,221,255,.16)}
.mobile-node.on{opacity:.92;pointer-events:auto}
.mobile-node-label{position:absolute;left:33px;top:50%;transform:translateY(-50%) scale(.94);padding:3px 8px;border-radius:999px;background:rgba(3,10,18,.62);border:1px solid rgba(255,255,255,.1);color:rgba(233,247,255,.8);font-size:11px;letter-spacing:.4px;white-space:nowrap;pointer-events:none;backdrop-filter:blur(6px);opacity:0;visibility:hidden}
.mobile-node .mobile-node-label{transition:opacity .22s ease,visibility .22s ease,transform .22s var(--ease)}
.mobile-node.on .mobile-node-label{opacity:1;visibility:visible;transform:translateY(-50%) scale(1)}
.mobile-node.label-muted .mobile-node-label{opacity:0!important;visibility:hidden;transform:translateY(-50%) scale(.94)}
.mobile-node.ui-blocked{opacity:0!important;pointer-events:none!important}
.mobile-node.edge-right .mobile-node-label{left:auto;right:33px}
.china-surface-label .mobile-node-label{left:13px}
.china-surface-label.edge-right .mobile-node-label{left:auto;right:13px}
.china-surface-label{
  width:44px;height:44px;background:transparent;
  box-shadow:none;
  transition:opacity .36s ease,transform .36s var(--ease);
  will-change:transform,opacity;
}
.china-surface-label::before{
  position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);
  border-radius:50%;
  background:#ffd9a0;
  box-shadow:0 0 10px 3px rgba(255,217,160,.5),0 0 22px rgba(255,200,120,.16);
  animation:nodeHueFlow 13s ease-in-out var(--node-phase,0s) infinite,chinaNodeAura 4.2s ease-in-out var(--node-phase,0s) infinite;
}
.china-surface-label::after{
  display:block;position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-color:rgba(255,211,107,.22);
  animation:chinaNodeRipple 4.2s cubic-bezier(.2,.62,.35,1) var(--node-phase,0s) infinite;
}
.china-surface-label .mobile-node-label{
  left:13px;
  padding:4px 9px;
  background:linear-gradient(180deg,rgba(20,16,8,.74),rgba(10,8,4,.66));
  border-color:rgba(255,217,160,.22);
  color:rgba(255,242,224,.9);
  font-size:11.5px;
  line-height:1.1;
  box-shadow:0 8px 22px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);
}
.china-surface-label.active{
  background:transparent;box-shadow:none;
  animation:none; /* 选中城市保持稳定金色，维持"此刻选中"的辨识度 */
}
.china-surface-label.active::before{
  width:14px;height:14px;background:#ffd36b;
  box-shadow:0 0 12px 4px rgba(255,211,107,.5),0 0 30px rgba(255,211,107,.2);
}
.china-surface-label.active .mobile-node-label{border-color:rgba(255,211,107,.25);color:#fff0bf;background:rgba(18,15,8,.54)}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node,
.app[data-globe-theme="day"]:not(.china-focus) .china-surface-label,
.app[data-globe-theme="day"]:not(.china-focus) .china-surface-label.active{
  background:transparent;
  box-shadow:none;
  animation:none;
}
.app[data-globe-theme="day"]:not(.china-focus) .china-surface-label::before{
  display:block;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%);
  background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.68),0 2px 6px rgba(0,0,0,.28);
  animation:none;
}
.app[data-globe-theme="day"]:not(.china-focus) .china-surface-label.active::before{
  width:11px;height:11px;
  background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.7),0 2px 8px rgba(0,0,0,.3);
}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node::before,
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node::after,
.app[data-globe-theme="day"]:not(.china-focus) .china-surface-label::after{display:none}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node:not(.china-surface-label){background:transparent;box-shadow:none}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node:not(.china-surface-label)::before{
  display:block;inset:auto;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%);
  background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.7),0 2px 6px rgba(0,0,0,.28);
}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node-label,
.app[data-globe-theme="day"]:not(.china-focus) .china-surface-label .mobile-node-label{
  background:rgba(8,28,38,.72);border-color:rgba(255,255,255,.22);color:#f7fbf8;
}
@keyframes chinaNodeGlow{
  0%,100%{box-shadow:0 0 8px 2px rgba(255,217,160,.38),0 0 18px rgba(255,200,120,.1)}
  45%{box-shadow:0 0 13px 4px rgba(255,217,160,.62),0 0 30px rgba(255,200,120,.22)}
}
/* 灯光·动态呼吸：城市光点在暖金↔暖白↔琥珀之间缓缓流转，核心色与辉光同步位移，像真实万家灯火般"活着" */
@keyframes nodeHueFlow{
  0%,100%{background:#ffd9a0;box-shadow:0 0 11px 3px rgba(255,214,150,.58),0 0 24px rgba(255,196,110,.20)}
  50%{background:#fff0d2;box-shadow:0 0 13px 4px rgba(255,238,196,.66),0 0 30px rgba(255,214,150,.26)}
}
@keyframes chinaNodeAura{
  0%,100%{opacity:.38;transform:scale(.78)}
  45%{opacity:.92;transform:scale(1.16)}
}
@keyframes chinaNodeRipple{
  0%{opacity:0;transform:scale(.55)}
  18%{opacity:.52}
  72%,100%{opacity:0;transform:scale(1.7)}
}
.china-surface-label[data-id="shenzhen"] .mobile-node-label{left:12px;top:130%;transform:translateY(0)}
.china-surface-label[data-id="guangzhou"] .mobile-node-label{left:auto;right:12px;top:44%}
.china-surface-label[data-id="changsha"] .mobile-node-label{left:auto;right:12px}
.china-surface-label[data-id="beijing"] .mobile-node-label,
.china-surface-label[data-id="shanghai"] .mobile-node-label,
.china-surface-label[data-id="harbin"] .mobile-node-label,
.china-surface-label[data-id="shenyang"] .mobile-node-label{left:auto;right:13px}

/* ===== 首页叠加 UI ===== */
#home-ui{position:absolute;inset:0;z-index:14;pointer-events:none;transition:opacity .55s var(--ease)}
#home-ui.hidden{opacity:0;pointer-events:none}
#home-ui>*{pointer-events:auto}
#home-ui>.globe-copy,#home-ui>.globe-hint{pointer-events:none}
.globe-topbar{position:absolute;top:46px;left:18px;right:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.globe-brand{display:flex;align-items:center;gap:9px;min-width:0;flex:1 1 auto}
.globe-brand img{width:40px;height:40px;flex:0 0 auto;border-radius:13px;object-fit:contain;filter:drop-shadow(0 0 12px rgba(122,240,216,.3))}
.globe-brand>div{min-width:0}
.globe-brand strong{display:block;font-size:18px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.globe-brand span{display:block;margin-top:3px;font-size:11px;letter-spacing:1.45px;color:rgba(214,229,242,.5);white-space:nowrap}
.globe-actions{position:relative;display:flex;align-items:center;flex:0 0 auto;justify-content:flex-end}
.globe-theme-switch{position:relative;width:118px;height:40px;display:grid;grid-template-columns:repeat(2,56px);padding:3px;border:1px solid rgba(151,210,226,.22);border-radius:999px;overflow:hidden;background:linear-gradient(180deg,rgba(12,29,43,.8),rgba(4,16,27,.76));box-shadow:inset 0 1px 0 rgba(255,255,255,.075),0 10px 27px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);transition:background .9s var(--ease),border-color .9s var(--ease),box-shadow .9s var(--ease)}
.globe-theme-switch::before{content:"";position:absolute;z-index:0;left:3px;top:3px;width:55px;height:32px;border-radius:999px;transform:translateX(56px);background:linear-gradient(180deg,rgba(79,160,181,.3),rgba(32,93,116,.28));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 13px rgba(20,101,131,.16);transition:transform .55s var(--ease),background .75s var(--ease),box-shadow .75s var(--ease)}
.globe-theme-switch button{position:relative;z-index:1;height:32px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0;border:0;border-radius:999px;background:transparent;color:rgba(196,220,228,.42);font-size:11px;font-weight:650;letter-spacing:.7px;cursor:pointer;transition:transform .16s var(--ease),color .42s ease}
.globe-theme-switch button i{font-style:normal;font-family:Georgia,"Times New Roman",serif;font-size:13px;line-height:1}.globe-theme-switch button span{line-height:1;white-space:nowrap}
.globe-theme-switch button:active,.spin-control:active{transform:scale(.92)}
.globe-theme-switch button.active{color:#f4fbf9}
.app[data-globe-theme="day"]:not(.china-focus) .globe-theme-switch{border-color:rgba(214,236,230,.28);background:linear-gradient(180deg,rgba(18,58,66,.54),rgba(6,29,40,.64));box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 14px 34px rgba(0,15,25,.22)}
.app[data-globe-theme="day"]:not(.china-focus) .globe-theme-switch::before{transform:translateX(0);background:linear-gradient(145deg,rgba(255,231,171,.34),rgba(177,151,92,.20));box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 17px rgba(243,198,112,.15)}
.app[data-globe-theme="day"]:not(.china-focus) .globe-theme-switch button.active{color:#fff1c9}
.spin-control{position:absolute;right:2px;top:46px;width:29px;height:29px;display:grid;place-items:center;padding:0;border-radius:50%;border:1px solid rgba(148,205,220,.14);background:rgba(7,24,35,.44);color:rgba(190,216,226,.38);font-size:14px;line-height:1;cursor:pointer;opacity:.68;box-shadow:inset 0 1px 0 rgba(255,255,255,.045);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .15s var(--ease),background .45s,border-color .45s,color .45s,opacity .35s}
.spin-control.active{border-color:rgba(124,221,230,.22);color:rgba(212,240,240,.7);opacity:.86}
.app[data-globe-theme="day"]:not(.china-focus) .spin-control.active{border-color:rgba(229,225,190,.24);background:rgba(24,58,62,.34);color:rgba(249,236,202,.68)}
.globe-theme-switch{height:52px}
.globe-theme-switch::before{height:44px}
.globe-theme-switch button{height:44px}
.spin-control{top:58px;width:44px;height:44px}
.globe-copy{position:absolute;left:20px;top:124px;width:min(240px,62vw)}
.globe-copy h1{font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;font-size:32px;line-height:1.18;letter-spacing:1.5px;font-weight:600;color:#f4fbf9;margin-bottom:12px;text-shadow:0 2px 24px rgba(0,0,0,.4)}
.globe-copy p{font-size:12px;line-height:1.9;color:rgba(214,232,242,.74);font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif}
.globe-copy h1,.globe-copy p{transition:color .75s var(--ease),text-shadow .75s var(--ease)}
.app[data-globe-theme="day"]:not(.china-focus) .globe-copy h1{color:#fffaf0;text-shadow:0 5px 30px rgba(2,17,27,.42),0 0 26px rgba(255,224,160,.13)}
.app[data-globe-theme="day"]:not(.china-focus) .globe-copy p{color:rgba(238,249,244,.84);text-shadow:0 2px 13px rgba(0,15,24,.38)}
.theme-copy-swap .globe-copy{animation:themeCopySwap .64s var(--ease) both}
@keyframes themeCopySwap{0%{opacity:.52;transform:translateY(5px);filter:blur(2px)}100%{opacity:1;transform:translateY(0);filter:blur(0)}}
.theme-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.globe-hint{position:absolute;left:20px;bottom:108px;font-size:11px;color:var(--faint);letter-spacing:1.5px;display:flex;align-items:center;gap:7px}
.globe-hint::before{content:"";width:14px;height:1px;background:rgba(120,200,240,.4)}

/* ===== 首页悬浮四板块符文：温心/锻体/寻味/觅方 =====
   客户一眼可见的快捷入口，悬浮在地球下方、底栏上方，点击直接展开对应板块内容。
   视觉风格复用梦境层 .yc-rune 的发光符文：64px 圆形 glyph + 下方文字标签 + 错峰浮动。 */
.home-runes{
  position:absolute;left:50%;bottom:104px;transform:translateX(-50%);
  display:flex;gap:18px;z-index:14;pointer-events:auto;
}
.app[data-globe-theme="day"]:not(.china-focus) .home-runes{bottom:114px;gap:14px}
.home-rune{
  display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;
  background:transparent;border:none;color:inherit;padding:0;
  opacity:0;animation:homeRuneIn .7s var(--ease) forwards;
}
.home-rune:nth-child(1){animation-delay:.8s}
.home-rune:nth-child(2){animation-delay:1.0s}
.home-rune:nth-child(3){animation-delay:1.2s}
.home-rune:nth-child(4){animation-delay:1.4s}
@keyframes homeRuneIn{0%{opacity:0;transform:translateY(16px);filter:blur(4px)}100%{opacity:1;transform:translateY(0);filter:blur(0)}}
/* 入场后接上无限浮动（错峰），runeFloat 复用已有定义 */
.home-rune:nth-child(1){animation:homeRuneIn .7s var(--ease) .8s forwards,runeFloat 5s ease-in-out 1.6s infinite}
.home-rune:nth-child(2){animation:homeRuneIn .7s var(--ease) 1.0s forwards,runeFloat 5s ease-in-out 2.0s infinite}
.home-rune:nth-child(3){animation:homeRuneIn .7s var(--ease) 1.2s forwards,runeFloat 5s ease-in-out 2.4s infinite}
.home-rune:nth-child(4){animation:homeRuneIn .7s var(--ease) 1.4s forwards,runeFloat 5s ease-in-out 2.8s infinite}
.home-rune-glyph{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;font-weight:700;
  color:#f4fbf9;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 22px rgba(120,160,240,.2);
  transition:transform .18s var(--ease),box-shadow .25s var(--ease),border-color .25s;
}
.home-rune[data-home-cat="warm"] .home-rune-glyph{background:radial-gradient(circle at 38% 35%,rgba(255,155,179,.42),rgba(140,50,80,.22) 65%,transparent 80%);border-color:rgba(255,155,179,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 22px rgba(255,155,179,.28)}
.home-rune[data-home-cat="forge"] .home-rune-glyph{background:radial-gradient(circle at 38% 35%,rgba(90,216,160,.4),rgba(28,110,82,.2) 65%,transparent 80%);border-color:rgba(90,216,160,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 22px rgba(90,216,160,.28)}
.home-rune[data-home-cat="taste"] .home-rune-glyph{background:radial-gradient(circle at 38% 35%,rgba(255,181,90,.4),rgba(140,95,30,.2) 65%,transparent 80%);border-color:rgba(255,181,90,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 22px rgba(255,181,90,.28)}
.home-rune[data-home-cat="seek"] .home-rune-glyph{background:radial-gradient(circle at 38% 35%,rgba(157,139,255,.4),rgba(60,50,140,.2) 65%,transparent 80%);border-color:rgba(157,139,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 22px rgba(157,139,255,.28)}
.home-rune:active .home-rune-glyph{transform:scale(1.12)}
.home-rune-label{font-size:11px;font-weight:600;letter-spacing:1px;color:rgba(210,225,235,.72);text-shadow:0 2px 8px rgba(0,0,0,.5)}
.home-rune[data-home-cat="warm"] .home-rune-label{color:rgba(255,185,200,.82)}
.home-rune[data-home-cat="forge"] .home-rune-label{color:rgba(130,226,190,.82)}
.home-rune[data-home-cat="taste"] .home-rune-label{color:rgba(255,201,130,.82)}
.home-rune[data-home-cat="seek"] .home-rune-label{color:rgba(179,165,255,.82)}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-glyph{position:relative;color:rgba(255,252,242,.98);border-color:rgba(245,252,246,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.34),inset 0 -16px 28px rgba(2,18,30,.18),0 15px 36px rgba(0,12,24,.28);-webkit-backdrop-filter:blur(24px) saturate(1.35);backdrop-filter:blur(24px) saturate(1.35)}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-glyph{width:50px;height:50px;font-size:20px}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-glyph::after{content:"";position:absolute;inset:1px;border-radius:inherit;background:radial-gradient(circle at 30% 18%,rgba(255,255,255,.28),transparent 33%),linear-gradient(180deg,rgba(255,255,255,.10),transparent 58%);pointer-events:none}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune[data-home-cat="warm"] .home-rune-glyph{background:linear-gradient(150deg,rgba(255,215,220,.24),rgba(38,72,84,.42) 52%,rgba(6,24,42,.44));border-color:rgba(255,213,218,.30);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 16px 32px rgba(57,24,42,.22),0 0 28px rgba(255,166,185,.12)}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune[data-home-cat="forge"] .home-rune-glyph{background:linear-gradient(150deg,rgba(186,255,222,.22),rgba(26,91,85,.42) 52%,rgba(5,25,42,.44));border-color:rgba(172,242,212,.30);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 16px 32px rgba(13,58,55,.22),0 0 28px rgba(90,230,176,.12)}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune[data-home-cat="taste"] .home-rune-glyph{background:linear-gradient(150deg,rgba(255,236,184,.24),rgba(96,83,52,.42) 52%,rgba(6,25,42,.44));border-color:rgba(240,211,150,.31);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 16px 32px rgba(72,47,17,.21),0 0 28px rgba(255,190,86,.12)}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune[data-home-cat="seek"] .home-rune-glyph{background:linear-gradient(150deg,rgba(224,220,255,.22),rgba(65,78,118,.42) 52%,rgba(5,23,42,.44));border-color:rgba(204,202,242,.30);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 16px 32px rgba(31,31,82,.20),0 0 28px rgba(146,151,255,.12)}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-label{font-size:10.5px;color:rgba(241,248,244,.82);text-shadow:0 2px 11px rgba(0,17,26,.66)}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-node:not(.china-surface-label)::before{background:radial-gradient(circle,#f0c878 0 3px,rgba(255,236,187,.22) 4px,rgba(226,188,108,.055) 48%,transparent 72%);box-shadow:0 0 7px 1px rgba(240,200,120,.24)}
/* 进入子页面/中国地图/梦境时隐藏（#home-ui.hidden 控制即可，这里兜底） */
#home-ui.hidden .home-runes{opacity:0;pointer-events:none}

/* 首页底部「今夜疗愈」引导卡：填补删除内容库/北京后的底部留白，给出明确进入入口 */
.tonight-card{
  position:absolute;left:18px;right:18px;bottom:calc(24px + env(safe-area-inset-bottom,0px));
  display:flex;flex-direction:column;gap:11px;width:auto;padding:16px 20px 16px;
  border-radius:var(--r-lg);border:1px solid rgba(122,240,216,.22);
  background:linear-gradient(135deg,rgba(14,34,48,.82),rgba(8,20,32,.72));
  backdrop-filter:blur(24px) saturate(1.1);
  box-shadow:0 18px 50px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.06);
  overflow:hidden;cursor:pointer;text-align:left;color:inherit;
  transition:transform .2s var(--ease),box-shadow .25s,border-color .25s;
}
.tonight-card:active{transform:scale(.985);box-shadow:0 10px 28px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.05)}
.tonight-card::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(122,240,216,.6),transparent)}
.tonight-glow{position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(122,240,216,.18),transparent 65%);pointer-events:none}
.tonight-head{display:flex;align-items:center;gap:9px}
.tonight-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:breathDot var(--breath) ease-in-out infinite}
.tonight-kicker{font-size:11.5px;font-weight:700;letter-spacing:2.4px;color:rgba(180,230,245,.66)}
.tonight-body{display:flex;flex-direction:column;gap:5px}
.tonight-title{font-size:18px;font-weight:700;letter-spacing:.4px;color:#f4fbf9;font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif}
.tonight-sub{font-size:11.5px;line-height:1.7;color:rgba(214,232,242,.66)}
.tonight-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px;padding-top:12px;border-top:1px solid rgba(122,240,216,.12)}
.tonight-cta span{font-size:12.5px;font-weight:600;letter-spacing:1.4px;color:rgba(122,240,216,.92)}
.tonight-cta i{font-style:normal;font-size:16px;color:rgba(122,240,216,.8);transition:transform .2s var(--ease)}
.tonight-card:active .tonight-cta i{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){.tonight-dot{animation:none}}
/* 首页底部 peek 卡片 */
.peek{
  position:absolute;left:18px;right:18px;bottom:24px;
  padding:14px 18px 18px;border-radius:var(--r-lg);
  border:1px solid var(--line);background:var(--glass);
  backdrop-filter:blur(22px);box-shadow:var(--sh-2),var(--hl);overflow:hidden;
}
.peek::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(121,232,255,.6),transparent)}
/* 新 peek 头：发光点 + 极简标签（替换原上滑把手，更有高级感） */
.peek-head{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.peek-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 12px var(--accent-2);animation:breathDot var(--breath) ease-in-out infinite}
.peek-kicker{font-size:11.5px;font-weight:700;letter-spacing:2.6px;color:rgba(180,230,245,.62)}
.peek h3{font-size:20px;font-weight:700;letter-spacing:.4px;margin-bottom:6px}
.peek p{font-size:11.5px;line-height:1.7;color:var(--muted);margin-bottom:13px}
.peek-meter{height:4px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin-bottom:15px}
.peek-meter i{display:block;height:100%;width:58%;border-radius:inherit;background:linear-gradient(90deg,#35e7ff,#74e2ca,#d7c46d);box-shadow:0 0 12px rgba(82,223,244,.4);transition:width .5s var(--ease)}
.peek-cta{display:flex;gap:10px}
.peek-cta button{flex:1}
.sleep-network-btn{
  width:100%;height:40px;margin-top:10px;border-radius:12px;
  border:1px solid rgba(120,232,255,.24);
  background:linear-gradient(180deg,rgba(82,223,244,.1),rgba(8,22,34,.72));
  color:rgba(226,246,252,.9);font-size:12px;font-weight:600;letter-spacing:1.2px;
  cursor:pointer;backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.sleep-network-btn:active{transform:scale(.98);background:rgba(82,223,244,.16)}

/* ===== 叠层卡片 sheet ===== */
#scrim{position:absolute;inset:0;z-index:20;background:rgba(1,6,12,.46);opacity:0;pointer-events:none;transition:opacity .5s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(2px)}
#scrim.on{opacity:1;pointer-events:auto}
.sheet{
  position:absolute;left:0;right:0;bottom:0;height:100%;z-index:30;
  border-radius:28px 28px 0 0;border-top:1px solid rgba(255,210,150,.2);
  background:var(--glass-strong);backdrop-filter:blur(28px) saturate(1.1);
  box-shadow:0 -28px 80px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06);
  transform:translateY(100%);transition:transform .68s cubic-bezier(.22,1.05,.36,1),opacity .4s ease;
  display:flex;flex-direction:column;overflow:hidden;will-change:transform;
}
.sheet::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,210,150,.7),transparent)}
.sheet.lvl-city{transform:translateY(18%)}
.sheet.lvl-session{transform:translateY(6%)}
.sheet.lvl-article{transform:translateY(2%)}
@keyframes sheetRise{
  0%{opacity:0;transform:translateY(40px)}
  100%{opacity:1;transform:translateY(0)}
}
.sheet-grip{width:42px;height:4px;border-radius:999px;background:rgba(200,225,240,.3);margin:11px auto 2px;flex:0 0 auto}
.sheet-head{display:flex;align-items:center;gap:13px;padding:8px 20px 14px;flex:0 0 auto}
.sheet-back{
  width:38px;height:38px;flex:0 0 auto;border-radius:50%;
  border:1px solid var(--line-2);background:rgba(11,26,42,.8);color:var(--accent);
  font-size:19px;line-height:1;cursor:pointer;display:grid;place-items:center;
  transition:transform .15s var(--ease),background .2s,box-shadow .2s;
}
.sheet-back:active{transform:scale(.88);background:rgba(82,223,244,.2);box-shadow:0 0 18px rgba(122,240,216,.3)}
.sheet-titles{display:flex;flex-direction:column;gap:3px;min-width:0}
.sheet-titles strong{font-size:18px;font-weight:700;letter-spacing:.3px}
.sheet-titles span{font-size:11px;letter-spacing:2px;color:rgba(255,210,150,.62);font-weight:600}
.sheet-scroll{flex:1;overflow-y:auto;padding:2px 20px 34px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sheet-scroll::-webkit-scrollbar{display:none}
.layer{display:none}
/* 内容在抽屉落定后柔和淡入上浮（带轻微回弹），premium 原生质感 */
.layer.show{display:block;animation:sheetContent .62s cubic-bezier(.22,1.02,.36,1) .08s both}
@keyframes sheetContent{
  0%{opacity:0;transform:translateY(20px) scale(.985)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}

/* 卡片通用质感 */
.program-item,.cat,.sound,.tip,.sleep-dest,.sleep-module{
  border:1px solid var(--line);background:var(--glass);box-shadow:var(--sh-1),var(--hl);
}

/* 标签/徽章 */
.sheet-tag,.badge{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;border:1px solid var(--line-2);color:rgba(143,223,255,.78);font-size:11.5px;font-weight:600;letter-spacing:1.4px;margin-bottom:12px;background:rgba(82,223,244,.06)}

/* 城市层 */
.city-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.city-head h3{font-size:26px;font-weight:700;letter-spacing:.5px;margin-bottom:2px}
.city-copy{font-size:13px;line-height:1.9;color:var(--muted)}
.category-list{display:grid;gap:11px;margin-top:16px}
.cat{
  display:flex;align-items:center;gap:14px;padding:16px 15px;border-radius:var(--r-md);cursor:pointer;
  transition:transform .15s var(--ease),background .2s,border-color .2s;position:relative;overflow:hidden;
}
.cat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c);opacity:.55;box-shadow:0 0 14px var(--c)}
.cat:active{transform:scale(.985);background:rgba(82,223,244,.1);border-color:var(--line-2)}
.dot{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 14px var(--c),0 0 4px var(--c);flex:0 0 auto;margin-left:4px}
.cat .ct{display:flex;flex-direction:column;flex:1;min-width:0;gap:3px}
.cat .ct strong{font-size:15px;font-weight:600;letter-spacing:.3px}
.cat .ct span{font-size:11px;line-height:1.6;color:var(--muted)}
.cat i{font-style:normal;font-size:18px;color:rgba(140,210,240,.5);transition:transform .2s}
.cat:active i{transform:translateX(3px)}

/* 城市卡片：可折叠简介（低调小链接，默认收起，不抢戏） */
.city-intro-toggle{
  display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:0;
  border:0;background:transparent;cursor:pointer;
  color:rgba(157,202,223,.62);font-size:11px;letter-spacing:1px;
}
.city-intro-toggle span{border-bottom:1px dashed rgba(157,202,223,.3)}
.city-intro-toggle i{font-style:normal;font-size:13px;transition:transform .32s var(--ease);opacity:.7}
.city-intro-toggle.open i{transform:rotate(90deg)}
.city-intro-body{
  max-height:0;overflow:hidden;margin-top:0;
  transition:max-height .46s var(--ease),margin-top .32s var(--ease),opacity .32s ease;
  opacity:0;
}
.city-intro-body.open{max-height:760px;margin-top:12px;opacity:1}
.city-intro-body p{
  font-size:12.5px;line-height:1.95;color:rgba(214,232,242,.72);
  font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  padding:11px 14px;margin-bottom:8px;border-radius:12px;
  background:rgba(8,20,32,.42);border:1px solid var(--line);
}
.city-intro-body p:last-child{margin-bottom:0}

/* 城市卡片：2×2 板块网格（温心 / 锻体 / 寻味 / 觅方） */
.module-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.module-btn{
  position:relative;display:flex;min-height:134px;flex-direction:column;justify-content:space-between;gap:10px;
  padding:14px 14px 13px;border-radius:20px;cursor:pointer;overflow:hidden;isolation:isolate;
  border:1px solid rgba(180,225,242,.13);
  background:
    radial-gradient(circle at 8% 0%,var(--wash),transparent 50%),
    linear-gradient(145deg,rgba(17,38,54,.88),rgba(5,16,27,.94));
  box-shadow:0 14px 34px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.07);
  transition:transform .2s var(--ease),background .25s,border-color .25s,box-shadow .25s;text-align:left;
}
.module-btn::before{content:"";position:absolute;z-index:-1;right:-28px;top:-36px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,var(--wash),transparent 67%);filter:blur(4px)}
.module-btn::after{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--c),transparent);opacity:.45}
.module-btn:active{transform:scale(.965);border-color:color-mix(in srgb,var(--c) 45%,transparent);box-shadow:0 8px 20px rgba(0,0,0,.25),0 0 20px var(--wash),inset 0 1px 0 rgba(255,255,255,.08)}
.module-top{display:flex;align-items:center;justify-content:space-between}
.module-top em{font-style:normal;font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;letter-spacing:1.4px;color:rgba(206,226,242,.38)}
.module-glyph{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;color:var(--c);font-family:"Noto Serif SC","Songti SC",serif;font-size:15px;font-weight:700;background:var(--wash);border:1px solid color-mix(in srgb,var(--c) 28%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 18px var(--wash)}
.module-body{display:flex;flex-direction:column;gap:4px}
.module-body b{font-size:18px;font-weight:720;letter-spacing:1.2px;color:rgba(246,252,255,.96)}
.module-body span{font-size:11.5px;line-height:1.55;color:rgba(196,220,232,.58);letter-spacing:.3px}
.module-foot{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(180,225,242,.08)}
.module-foot small{font-size:11px;letter-spacing:1px;color:rgba(190,215,228,.4)}
.module-foot i{font-style:normal;font-size:13px;color:var(--c);opacity:.72;transition:transform .2s var(--ease)}
.module-btn:active .module-foot i{transform:translate(2px,-2px)}

/* 分类详情：严格使用“形式 + 内容”目录，不再展示固定疗愈模板 */
.content-catalog{padding:2px 1px 24px}
.catalog-title{position:relative;margin-bottom:18px;padding:18px 18px 17px;border-radius:20px;overflow:hidden;border:1px solid rgba(180,225,242,.13);background:linear-gradient(145deg,rgba(17,37,53,.86),rgba(5,15,25,.92));box-shadow:0 16px 38px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06)}
.catalog-title::after{content:"";position:absolute;right:-28px;top:-38px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--cat) 22%,transparent),transparent 67%)}
.catalog-title span{display:block;margin-bottom:5px;color:color-mix(in srgb,var(--cat) 76%,white);font-size:11px;font-weight:750;letter-spacing:2.2px}
.catalog-title h3{font-size:25px;line-height:1.2;letter-spacing:1.5px;color:#f3faff}
.catalog-title p{max-width:280px;margin-top:8px;color:rgba(198,220,231,.58);font-size:11px;line-height:1.7}
.catalog-table{overflow:hidden;border-radius:18px;border:1px solid rgba(169,217,238,.14);background:rgba(5,17,28,.72);box-shadow:0 18px 42px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.04)}
.catalog-table-head{display:grid;grid-template-columns:72px 1fr;min-height:38px;align-items:center;background:rgba(255,255,255,.045);border-bottom:1px solid rgba(169,217,238,.12);color:rgba(183,213,228,.5);font-size:11px;font-weight:700;letter-spacing:2px}
.catalog-table-head span{padding:0 14px}
.catalog-table-head span:first-child{text-align:center;border-right:1px solid rgba(169,217,238,.1)}
.catalog-row{position:relative;width:100%;min-height:86px;display:grid;grid-template-columns:72px 1fr;align-items:stretch;padding:0;border:0;border-bottom:1px solid rgba(169,217,238,.1);background:transparent;color:inherit;text-align:left}
.catalog-row:last-child{border-bottom:0}
.catalog-row.playable{cursor:pointer;grid-template-columns:72px 1fr 34px;transition:background .2s,transform .15s var(--ease)}
.catalog-row.playable:active{background:color-mix(in srgb,var(--cat) 9%,transparent);transform:scale(.992)}
.catalog-format{display:grid;place-items:center;padding:10px 8px;border-right:1px solid rgba(169,217,238,.1);color:color-mix(in srgb,var(--cat) 74%,white);font-size:11px;font-weight:750;letter-spacing:1px;background:linear-gradient(135deg,color-mix(in srgb,var(--cat) 10%,transparent),transparent)}
.catalog-content{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:15px 14px}
.catalog-content b{font-size:13px;font-weight:580;line-height:1.72;color:rgba(238,248,252,.9);letter-spacing:.15px}
.catalog-content small{font-size:11px;color:color-mix(in srgb,var(--cat) 66%,rgba(190,215,228,.5));letter-spacing:.8px}
.catalog-content img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:rgba(120,140,160,.12)}
.catalog-row>i{align-self:center;font-style:normal;font-size:11px;color:var(--cat);opacity:.78}
.catalog-empty{padding:34px 18px;text-align:center;color:rgba(184,210,224,.46);font-size:11px;letter-spacing:1px;line-height:1.8}

/* 课程入口卡（伊春温心/锻体） */
.catalog-course{display:flex;align-items:center;gap:14px;width:100%;padding:18px 16px;margin-bottom:12px;border:0;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--cat) 22%,rgba(8,22,36,.9)),rgba(5,15,25,.92));border:1px solid color-mix(in srgb,var(--cat) 38%,transparent);color:inherit;text-align:left;cursor:pointer;box-shadow:0 14px 36px rgba(0,0,0,.28),inset 0 1px 0 color-mix(in srgb,var(--cat) 24%,transparent);transition:transform .15s var(--ease)}
.catalog-course:active{transform:scale(.985)}
.catalog-course .cc-glyph{flex:0 0 auto;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:20px;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--cat),color-mix(in srgb,var(--cat) 60%,#000))}
.catalog-course .cc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.catalog-course .cc-body b{font-size:14px;font-weight:580;line-height:1.5;color:#f3faff;letter-spacing:.3px}
.catalog-course .cc-sub{font-size:11px;line-height:1.5;color:rgba(198,220,231,.6)}
.catalog-course .cc-count{font-size:11px;color:color-mix(in srgb,var(--cat) 78%,white);letter-spacing:.6px}
.catalog-course .cc-arrow{flex:0 0 auto;font-style:normal;font-size:18px;color:var(--cat);opacity:.8}

/* 图文条目：可点击进正文 */
.catalog-row.article{cursor:pointer;grid-template-columns:72px 1fr 24px;transition:background .2s,transform .15s var(--ease)}
.catalog-row.article:active{background:color-mix(in srgb,var(--cat) 9%,transparent);transform:scale(.992)}
.catalog-ep{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.8px;color:color-mix(in srgb,var(--cat) 70%,white);padding:2px 7px;border-radius:99px;background:color-mix(in srgb,var(--cat) 14%,transparent);margin-bottom:2px}

/* 课程章节列表（layer-course，伊春复用） */
.yc-sec{padding:14px 4px 8px;font-size:11px;font-weight:700;letter-spacing:1.4px;color:color-mix(in srgb,var(--cat) 76%,white);border-bottom:1px solid rgba(169,217,238,.1);margin-top:6px}
.yc-sec:first-child{margin-top:0}

/* 方案层 */
.session-lead{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:2px}
.program{display:grid;gap:11px;margin-top:16px}
.program-item{padding:15px 16px;border-radius:var(--r-md);position:relative}
.program-item b{display:block;margin-bottom:6px;color:rgba(143,223,255,.9);font-size:11px;font-weight:700;letter-spacing:1px}
.program-item p{font-size:12.5px;line-height:1.8;color:var(--muted)}
.sound-grid,.tip-grid,.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}
.sound{padding:15px 14px;border-radius:var(--r-md);cursor:pointer;transition:transform .15s var(--ease),background .2s}
.sound:active{transform:scale(.97);background:rgba(82,223,244,.1)}
.sound b{display:block;margin-bottom:4px;font-size:13.5px;font-weight:600}
.sound span{font-size:11.5px;line-height:1.55;color:var(--faint)}
.tip{padding:13px 15px;border-radius:var(--r-md);font-size:12.5px;line-height:1.65;color:rgba(214,229,242,.66)}
.ai-btn{
  padding:15px 12px;border-radius:var(--r-md);border:1px solid rgba(120,232,255,.24);
  background:linear-gradient(180deg,rgba(82,223,244,.12),rgba(82,223,244,.04));color:var(--accent);
  font-size:12.5px;font-weight:600;letter-spacing:.5px;text-align:center;cursor:pointer;
  transition:transform .15s var(--ease),background .2s;box-shadow:var(--hl);
}
.ai-btn:active{transform:scale(.97);background:rgba(82,223,244,.2)}

/* 睡眠目的地网络 */
.sleep-net-hero{
  position:relative;margin:4px 0 16px;padding:18px 16px 17px;border-radius:16px;
  border:1px solid rgba(120,232,255,.16);
  background:
    radial-gradient(circle at 14% 0,rgba(240,197,106,.12),transparent 38%),
    linear-gradient(135deg,rgba(8,30,45,.72),rgba(4,13,23,.74));
  box-shadow:0 16px 44px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.06);
  overflow:hidden;
}
.sleep-net-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,rgba(240,197,106,.72),rgba(95,230,255,.38),transparent)}
.sleep-net-hero span{display:block;margin-bottom:9px;color:rgba(240,197,106,.84);font-size:11px;font-weight:800;letter-spacing:2.2px}
.sleep-net-hero h3{margin-bottom:8px;color:#f4fbff;font-size:22px;font-weight:700;letter-spacing:.8px}
.sleep-net-hero p{max-width:290px;color:rgba(210,229,238,.62);font-size:12px;line-height:1.76}
.sleep-net-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.sleep-net-metrics span{min-width:0;padding:9px 7px;border-radius:11px;border:1px solid rgba(121,214,255,.1);background:rgba(2,13,22,.36)}
.sleep-net-metrics b{display:block;color:rgba(244,252,255,.94);font-size:15px;line-height:1;font-weight:800;letter-spacing:.2px;white-space:nowrap}
.sleep-net-metrics em{display:block;margin-top:6px;color:rgba(155,220,238,.55);font-style:normal;font-size:11px;white-space:nowrap;letter-spacing:.6px}
.sleep-dest-list{display:grid;gap:10px}
.sleep-dest{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:13px 14px;border-radius:13px;color:rgba(238,249,255,.9);
  cursor:pointer;transition:transform .15s var(--ease),border-color .2s,background .2s;
}
.sleep-dest:active{transform:scale(.985);background:rgba(82,223,244,.1)}
.sleep-dest b{font-size:14px;font-weight:600;letter-spacing:.4px}
.sleep-dest span{font-family:"SFMono-Regular",Consolas,monospace;color:rgba(240,197,106,.68);font-size:11px;letter-spacing:1.2px}
.sleep-module-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sleep-module{min-height:80px;padding:14px 13px;border-radius:13px}
.sleep-module b{display:block;margin-bottom:8px;color:rgba(236,249,255,.94);font-size:13px;font-weight:600;letter-spacing:.5px}
.sleep-module span{display:block;color:rgba(214,229,242,.5);font-size:11.5px;line-height:1.55}
.sleep-config-btn{width:100%;margin-top:18px}

/* toast */
.toast{
  position:absolute;left:50%;bottom:56px;transform:translateX(-50%) translateY(16px);
  z-index:60;max-width:80%;padding:10px 20px;border-radius:999px;
  border:1px solid var(--line-2);background:rgba(7,19,31,.96);color:var(--accent);
  font-size:12.5px;font-weight:600;letter-spacing:.8px;text-align:center;white-space:nowrap;
  backdrop-filter:blur(16px);box-shadow:0 12px 34px rgba(0,0,0,.4),var(--hl);
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--ease);
}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

@keyframes twinkle{0%,100%{opacity:var(--op);transform:scale(1)}50%{opacity:.04;transform:scale(.35)}}
@keyframes pulse{0%,100%{opacity:.4;stroke-opacity:.28}50%{opacity:.92;stroke-opacity:.8}}
@keyframes nodeRing{0%{transform:scale(.55);opacity:.65}100%{transform:scale(1.45);opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
/* 统一呼吸节奏 keyframes（吸4呼6 · 10s 一周期）—— 全 App 唯一呼吸律动 */
@keyframes breathDot{
  0%{transform:scale(.72);opacity:.7}
  40%{transform:scale(1.2);opacity:1}        /* 4s 吸气到顶 */
  100%{transform:scale(.72);opacity:.7}      /* 6s 呼气回落 */
}
@keyframes topDot{
  0%,100%{transform:scale(.8);opacity:.5}
  40%{transform:scale(1.3);opacity:1;box-shadow:0 0 16px var(--accent-2)}
}

/* ===== 首页进场：地球淡入(canvas .ready) + 文案/卡片柔和上浮，营造一进来就放松的氛围 ===== */
@keyframes homeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.globe-topbar{animation:homeIn .7s var(--ease) .05s both}
.globe-copy{animation:homeIn .95s var(--ease) .35s both}
.globe-hint{animation:homeIn .95s var(--ease) .7s both}
.peek{animation:homeIn 1s var(--ease) .5s both}
@media (max-width:430px){
  .device{width:100vw;height:100vh;height:100dvh;padding:0;border-radius:0;box-shadow:none;background:transparent}
  .app{border-radius:0}
  .notch{border-radius:0 0 16px 16px}
}
@media (max-width:370px){
  .globe-topbar{left:15px;right:15px}
  .globe-brand{gap:7px}.globe-brand img{width:35px;height:35px}.globe-brand strong{font-size:16px}.globe-brand span{display:none}
  .globe-theme-switch{width:112px;grid-template-columns:repeat(2,53px)}
  .globe-theme-switch::before{width:52px;transform:translateX(53px)}
  .app[data-globe-theme="day"]:not(.china-focus) .globe-theme-switch::before{transform:translateX(0)}
}

/* ===== 无障碍：减少动效（光敏/眩晕用户友好 —— 疗愈产品的底线） ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
  .cn-orb-core,.peek-dot,.pl-tag::before,.s2-cover-orb i,.lib-core-orb,.lc-wave span,
  .pl-breath,.yc-dream-aura,.yc-dream-stars i,.yc-empty-orb,.yc-empty-orb::after,
  .yc-rune,.yc-rune-glyph{animation:none!important}
  /* 穿越过渡降级为瞬切 */
  .yc-dive,.yc-dream,.yc-panel{transition:opacity .01ms!important}
  .app.yc-diving #mobile-globe-canvas{transition:transform .01ms!important,filter .01ms!important}
}

/* ============ 企业授权入口 ============ */
.app.access-locked{background:#031019}
.app.access-locked>:not(.access-gate){visibility:hidden!important}
.access-gate{
  position:absolute;inset:0;z-index:120;display:grid;place-items:center;overflow:hidden;
  padding:calc(30px + env(safe-area-inset-top,0px)) 25px calc(28px + env(safe-area-inset-bottom,0px));
  background:
    linear-gradient(rgba(118,220,211,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(118,220,211,.035) 1px,transparent 1px),
    #031019;
  background-size:36px 36px;
  color:#eaf8f6;text-align:left;
}
.access-gate[hidden]{display:none}
.access-gate::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(132,235,217,.42)}
.access-gate-inner{position:relative;width:min(100%,360px)}
.access-brand{text-align:center;margin-bottom:34px}
.access-brand img{display:block;width:72px;height:72px;margin:0 auto 18px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(89,206,191,.16))}
.access-brand>span{display:block;margin-bottom:10px;font-size:9px;font-weight:680;letter-spacing:2.6px;color:rgba(126,229,212,.58)}
.access-brand h1{font-family:"Noto Serif SC","Songti SC","STSong",serif;font-size:31px;font-weight:600;letter-spacing:4px;color:#f0faf8}
.access-brand p{margin-top:9px;font-size:11.5px;letter-spacing:.4px;color:rgba(190,219,223,.48)}
.access-form{display:grid;gap:15px}
.access-form label{display:grid;gap:7px}
.access-form label>span{font-size:10.5px;font-weight:650;letter-spacing:.8px;color:rgba(196,224,228,.6)}
.access-form input{width:100%;height:52px;padding:0 15px;border:1px solid rgba(138,207,211,.2);border-radius:6px;outline:0;background:#071a24;font:inherit;font-size:14px;letter-spacing:.3px;color:#edf9f7;caret-color:#83e6d5;transition:border-color .2s,box-shadow .2s,background .2s}
.access-form input::placeholder{color:rgba(176,204,210,.28)}
.access-form input:focus{border-color:rgba(126,232,215,.62);background:#09212b;box-shadow:0 0 0 3px rgba(126,232,215,.07)}
.access-message{min-height:17px;margin-top:-2px;font-size:11px;color:rgba(191,216,221,.45)}
.access-message.error{color:#efaaaa}.access-message.success{color:#84e7d6}
.access-form button{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 19px;border:1px solid rgba(145,239,223,.66);border-radius:6px;background:#73d7c7;color:#05221f;font-size:13px;font-weight:760;letter-spacing:1.3px;cursor:pointer;box-shadow:0 16px 34px rgba(33,137,133,.15),inset 0 1px rgba(255,255,255,.28);transition:transform .16s,opacity .2s,filter .2s}
.access-form button i{width:29px;height:29px;display:grid;place-items:center;border:1px solid rgba(4,39,35,.2);border-radius:50%;font-style:normal;font-size:21px}
.access-form button:active{transform:scale(.985)}
.access-form button:disabled{opacity:.55;cursor:wait;filter:saturate(.45)}
.access-note{margin-top:21px;padding-top:17px;border-top:1px solid rgba(139,201,207,.1);text-align:center;font-size:10.5px;line-height:1.7;color:rgba(181,207,213,.32)}
@media(max-height:700px){.access-brand{margin-bottom:23px}.access-brand img{width:58px;height:58px;margin-bottom:13px}.access-brand h1{font-size:27px}.access-form{gap:11px}.access-form input{height:47px}.access-form button{height:49px}.access-note{margin-top:14px;padding-top:12px}}

/* ============ 沉浸式疗愈播放器（工业级：独立全屏层，绝不触碰地球渲染） ============ */
#player{
  position:fixed;inset:0;z-index:90;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:0 30px;
  background:#000;
  box-shadow:inset 0 -40px 80px rgba(80,60,30,.18),inset 0 80px 120px rgba(80,60,30,.12);
  /* 不用 backdrop-filter：地球在背后持续渲染，逐帧重新模糊会触发 GPU 抖动 → 闪烁。
     用不透明纯色背景彻底遮住 WebGL canvas，避免半透明合成闪烁。暖光效果用 box-shadow 内发光代替。 */
  opacity:0;pointer-events:none;
  transform:scale(1.015);filter:none;
  transition:opacity .42s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);
}
#player.show{opacity:1;pointer-events:auto;transform:scale(1);filter:blur(0)}
.pl-mini{display:none}
#player.is-mini{
  position:fixed!important;inset:auto 12px calc(86px + env(safe-area-inset-bottom,0px)) 12px!important;
  width:auto!important;height:76px!important;min-height:76px!important;z-index:97!important;
  display:block!important;padding:0!important;overflow:hidden!important;text-align:left!important;
  opacity:1!important;pointer-events:auto!important;transform:translateZ(0)!important;
  border:1px solid rgba(143,218,205,.28);border-radius:8px;
  background:rgba(4,23,29,.97)!important;
  box-shadow:0 18px 46px rgba(0,5,10,.48),inset 0 1px 0 rgba(255,255,255,.07)!important;
  transition:opacity .2s ease,transform .24s cubic-bezier(.22,.8,.22,1)!important;
}
#player.is-mini> :not(.pl-mini){display:none!important}
#player.is-mini .pl-mini{width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr) 48px 42px;align-items:center}
.pl-mini-expand{min-width:0;height:100%;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:10px;padding:8px 4px 8px 9px;border:0;background:transparent;color:#edf7f3;text-align:left}
.pl-mini-art{width:54px;height:54px;display:block;overflow:hidden;border:1px solid rgba(229,202,146,.35);border-radius:50%;box-shadow:0 0 18px rgba(116,223,196,.16)}
.pl-mini-art img{width:100%;height:100%;display:block;object-fit:cover;animation:plMiniArtTurn 30s linear infinite}
#player.is-paused .pl-mini-art img{animation-play-state:paused}
@keyframes plMiniArtTurn{to{transform:rotate(360deg)}}
.pl-mini-copy{min-width:0;display:grid;gap:2px}
.pl-mini-copy small{font-size:9px;letter-spacing:1.4px;color:rgba(144,223,206,.7)}
.pl-mini-copy strong,.pl-mini-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-mini-copy strong{font-size:13px;line-height:1.35;color:#f3ead9;font-weight:650}
.pl-mini-copy span{font-size:10px;color:rgba(194,215,211,.58)}
.pl-mini-toggle,.pl-mini-close{width:40px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:#ead3a5}
.pl-mini-toggle{border:1px solid rgba(229,197,137,.32);border-radius:50%}
.pl-mini-close{color:rgba(203,222,219,.62)}
.pl-mini-toggle svg{width:20px;height:20px}.pl-mini-close svg{width:18px;height:18px}
.app.player-mini-active #homeRunes.home-runes,
.app.player-mini-active[data-globe-theme="day"]:not(.china-focus) #homeRunes.home-runes{
  bottom:calc(176px + env(safe-area-inset-bottom,0px));
}
.app.player-mini-active .portal-scroll,
.app.player-mini-active .global-quick-sublist,
.app.player-mini-active .global-aggregate-list,
.app.player-mini-active .yc-panel-list{padding-bottom:112px}
@keyframes plBreathIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.1);opacity:1}100%{transform:scale(1);opacity:1}}
/* 环境氛围层：CSS 微光粒子（不碰 WebGL，纯装饰） */
.pl-ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
/* 声音驱动极光层：铺满播放器背景（在纯黑底之上、内容之下）。仅音频模式显示。 */
#player .pl-aurora{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:1}
#player.video-mode .pl-aurora{display:none}
.pl-star{position:absolute;width:2px;height:2px;border-radius:50%;background:rgba(255,240,220,.6);box-shadow:0 0 6px rgba(255,230,200,.4);animation:drift var(--d,18s) linear infinite}
@keyframes drift{0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:.6}90%{opacity:.4}100%{transform:translateY(-120px) translateX(20px);opacity:0}}
/* 呼吸圆周围的星轨（极淡慢转） */
.pl-orbit{position:absolute;width:min(80vw,340px);height:min(80vw,340px);border-radius:50%;background:conic-gradient(from 0deg,transparent 0%,rgba(255,210,150,.04) 15%,transparent 30%,rgba(122,240,216,.03) 50%,transparent 65%,rgba(255,210,150,.04) 85%,transparent 100%);animation:orbitSpin 60s linear infinite;pointer-events:none;z-index:0}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
/* 视频画面容器（爱奇艺式主视觉，视频模式时铺满） */
#player .pl-video{position:relative;width:min(94vw,560px);aspect-ratio:16/9;margin:0 auto 14px;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 14px 50px rgba(0,0,0,.55);z-index:5;display:block}
#player .pl-video:empty{display:none}
/* 音频模式：视频容器始终含 overlay 层，:empty 匹配不到，直接按模式隐藏，消除漏出的空框 */
#player:not(.video-mode) .pl-video{display:none}
#player .pl-video video{width:100%;height:100%;object-fit:contain;display:block;background:#000}
/* 视频模式：竖屏使用全宽 16:9 舞台，横屏再进入真正全屏。 */
#player.video-mode{
  display:block;padding:0;overflow:hidden;text-align:left;
}
#player.video-mode .pl-video{
  position:absolute;top:0;left:0;right:0;bottom:auto;
  transform:none;width:100%;height:auto;max-width:none;aspect-ratio:16/9;
  margin:0;border:0;border-radius:0;box-shadow:none;z-index:1;
  display:flex;align-items:center;justify-content:center;background:#000;
}
#player.video-mode .pl-video video{width:100%;height:100%;object-fit:contain}
#player.video-mode .pl-bottom{display:none}
#player.video-mode .pl-breath-wrap,
#player.video-mode .pl-orbit,
#player.video-mode .pl-phase,
#player.video-mode .pl-caption,
#player.video-mode .pl-tag{display:none}
/* 视频模式：隐藏音频模式的独立按钮，返回用视频控件层的返回键 */
#player.video-mode .pl-close,
#player.video-mode .pl-fav,
#player.video-mode .pl-timer{display:none !important}
/* 视频点击覆盖层（透明，用于接收点击切换控件显示） */
#player .pl-video-overlay{display:none;position:absolute;inset:0;z-index:2;cursor:pointer}
#player.video-mode .pl-video-overlay{display:block}

/* 播放完成仪式页：单一暖金语义色，动画仅使用 opacity / transform。 */
.pl-done{
  --done-gold:#e5c58e;
  --done-ink:#02090c;
  position:absolute;inset:0;z-index:40;isolation:isolate;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:100%;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));
  text-align:center;background:#02090c;color:#edf5f1;
  opacity:0;pointer-events:none;transition:opacity .46s ease;
}
.pl-done::before{
  content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(circle at 50% 34%,rgba(44,112,98,.23),transparent 31%),
    linear-gradient(180deg,#02080b 0%,#031217 43%,#02090c 73%,#010507 100%);
}
.pl-done::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.38;
  background-image:
    linear-gradient(rgba(126,190,177,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(126,190,177,.035) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:linear-gradient(180deg,transparent 4%,#000 27%,#000 72%,transparent 96%);
  mask-image:linear-gradient(180deg,transparent 4%,#000 27%,#000 72%,transparent 96%);
}
.pl-done.show{opacity:1;pointer-events:auto}
.pl-done.show~.pl-vctrl{opacity:0!important;visibility:hidden;pointer-events:none!important}
.pl-done-horizon{
  position:absolute;z-index:-1;top:34%;left:50%;width:128%;height:1px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(229,197,142,.28) 34%,rgba(229,197,142,.62) 50%,rgba(229,197,142,.28) 66%,transparent);
  box-shadow:0 0 34px rgba(84,172,151,.2);
}
.pl-done-brand{
  position:absolute;top:max(28px,calc(env(safe-area-inset-top) + 18px));left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:9px;color:rgba(225,239,233,.72);
}
.pl-done-brand img{width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 0 12px rgba(119,205,183,.18))}
.pl-done-brand span{font-size:15px;font-weight:650;letter-spacing:0;white-space:nowrap}
.pl-done-content{width:min(100%,340px);display:flex;flex-direction:column;align-items:center}
.pl-done-orb{
  position:relative;width:116px;height:116px;margin:0 0 24px;border-radius:50%;
  display:grid;place-items:center;border:1px solid rgba(229,197,142,.22);
  box-shadow:0 0 0 13px rgba(91,171,151,.025),0 0 52px rgba(83,177,154,.12);
}
.pl-done-orb::before,.pl-done-orb::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.pl-done-orb::before{inset:10px;border:1px solid rgba(126,202,182,.18)}
.pl-done-orb::after{inset:27px;border:1px solid rgba(229,197,142,.18)}
.pl-done-orb-ring{
  position:absolute;inset:-1px;border-radius:50%;
  background:conic-gradient(from 25deg,transparent 0 35%,rgba(229,197,142,.86) 49%,transparent 62% 100%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));
  animation:doneRingTurn 9s linear infinite;
}
.pl-done-orb-core{
  position:relative;z-index:1;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(229,197,142,.48);background:#071719;
  color:var(--done-gold);box-shadow:inset 0 0 18px rgba(82,178,154,.12),0 0 24px rgba(229,197,142,.11);
}
.pl-done-orb-core svg{width:22px;height:22px;stroke-width:1.8}
.pl-done-kicker{margin-bottom:11px;font:600 9px/1.2 "SFMono-Regular",Consolas,monospace;letter-spacing:2.2px;color:rgba(143,203,188,.7)}
.pl-done-title{margin:0 0 16px;font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;font-size:27px;line-height:1.3;font-weight:700;letter-spacing:0;color:#f5f0e7;text-shadow:0 6px 28px rgba(0,0,0,.32)}
.pl-done-min{height:38px;margin:0 0 24px;display:flex;align-items:center;justify-content:center;color:var(--done-gold);font-style:normal}
.pl-done-min strong{font:500 30px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:0}
.pl-done-min span{margin:4px 0 0 6px;font-size:11px;color:rgba(229,197,142,.74)}
.pl-done-min i{width:1px;height:22px;margin:0 15px;background:rgba(229,197,142,.2)}
.pl-done-min em{font-size:12px;font-style:normal;letter-spacing:0;color:rgba(198,220,212,.66)}
.pl-done-msg{width:100%;margin:0 0 30px;color:rgba(210,226,220,.76)}
.pl-done-msg strong,.pl-done-msg span{display:block;font-weight:400;letter-spacing:0}
.pl-done-msg strong{font-size:14px;line-height:1.8;color:rgba(232,241,236,.9)}
.pl-done-msg span{margin-top:5px;font-size:12px;line-height:1.75;color:rgba(183,207,198,.58)}
.pl-done-btn{
  width:224px;height:52px;padding:0 24px;border:1px solid rgba(255,238,204,.48);border-radius:8px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--done-gold);color:#10201d;font-size:14px;font-weight:750;letter-spacing:0;
  cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.26),0 0 26px rgba(229,197,142,.08);
  transition:transform .16s ease,filter .16s ease;
}
.pl-done-btn svg{width:17px;height:17px;stroke-width:2}
.pl-done-btn:active{transform:scale(.975);filter:brightness(.92)}
.pl-done-foot{
  position:absolute;bottom:max(26px,calc(env(safe-area-inset-bottom) + 18px));left:0;right:0;
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:9px;letter-spacing:0;color:rgba(142,176,165,.42);
}
.pl-done-foot i{width:16px;height:1px;background:rgba(142,176,165,.22)}
.pl-done-brand,.pl-done-content>* ,.pl-done-foot{opacity:0;transform:translateY(10px)}
.pl-done.show .pl-done-brand,.pl-done.show .pl-done-content>* ,.pl-done.show .pl-done-foot{opacity:1;transform:translateY(0);transition:opacity .62s ease,transform .62s cubic-bezier(.22,.7,.18,1)}
.pl-done.show .pl-done-brand{transition-delay:.08s}
.pl-done.show .pl-done-orb{transition-delay:.12s}
.pl-done.show .pl-done-kicker{transition-delay:.18s}
.pl-done.show .pl-done-title{transition-delay:.22s}
.pl-done.show .pl-done-min{transition-delay:.26s}
.pl-done.show .pl-done-msg{transition-delay:.3s}
.pl-done.show .pl-done-btn{transition-delay:.34s}
.pl-done.show .pl-done-foot{transition-delay:.42s}
@keyframes doneRingTurn{to{transform:rotate(360deg)}}
@media (max-height:700px){
  .pl-done-brand{top:max(18px,calc(env(safe-area-inset-top) + 10px))}
  .pl-done-orb{width:92px;height:92px;margin-bottom:16px}
  .pl-done-orb-core{width:44px;height:44px}
  .pl-done-title{font-size:23px;margin-bottom:10px}
  .pl-done-min{margin-bottom:14px}
  .pl-done-msg{margin-bottom:18px}
  .pl-done-foot{bottom:max(14px,env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){
  .pl-done,.pl-done-brand,.pl-done-content>* ,.pl-done-foot{transition:none!important}
  .pl-done-orb-ring{animation:none!important}
}
.pl-guest-badge{position:absolute;z-index:12;top:max(68px,calc(env(safe-area-inset-top) + 48px));left:50%;transform:translateX(-50%);padding:6px 10px;border:1px solid rgba(244,210,151,.28);border-radius:5px;background:rgba(3,22,25,.74);backdrop-filter:blur(10px);color:#efd29d;font-size:10px;letter-spacing:0;white-space:nowrap}
.pl-guest-badge[hidden]{display:none}
.pl-preview-lock{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:36px;background:rgba(2,12,17,.94);backdrop-filter:blur(18px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease;text-align:center}
.pl-preview-lock.show{opacity:1;visibility:visible;pointer-events:auto}
.pl-preview-lock strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;color:#f4ead8}
.pl-preview-lock span{font-size:12px;color:rgba(199,220,214,.62)}
.pl-preview-lock button{margin-top:12px;padding:11px 22px;border:1px solid rgba(239,207,149,.34);border-radius:6px;background:rgba(92,73,39,.22);color:#f0d6a7;font-size:13px}
/* 退出键 */
#player .pl-close{
  position:absolute;top:48px;right:22px;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,210,150,.24);background:rgba(30,22,10,.66);color:rgba(255,230,200,.9);
  font-size:20px;display:grid;place-items:center;
  transition:transform .15s var(--ease),background .2s;
}
#player .pl-close:active{transform:scale(.9);background:rgba(255,205,140,.16)}
/* 收藏按钮 */
#player .pl-fav{
  position:absolute;top:48px;right:74px;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,180,180,.2);background:rgba(30,22,10,.66);color:rgba(255,200,200,.7);
  font-size:18px;display:none;place-items:center;transition:transform .15s,background .2s;
}
#player .pl-fav:not([hidden]){display:grid;}
#player .pl-fav.on{color:#ff6b8a;}
#player .pl-fav:active{transform:scale(.9)}
/* 定时关闭按钮 */
#player .pl-timer{
  position:absolute;top:48px;right:126px;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(180,180,255,.2);background:rgba(30,22,10,.66);color:rgba(200,200,255,.7);
  font-size:18px;display:none;place-items:center;transition:transform .15s,background .2s,box-shadow .3s;
}
#player .pl-timer:not([style*="display:none"]){display:grid;}
#player .pl-timer:active{transform:scale(.9)}
#player .pl-timer.active{
  color:rgba(200,180,255,.95);border-color:rgba(180,160,255,.4);
  box-shadow:0 0 14px rgba(160,140,255,.25);font-size:12px;font-weight:700;
}
/* 定时关闭面板 */
#player .pl-timer-panel{
  position:absolute;top:96px;right:14px;width:180px;
  background:rgba(16,28,42,.92);border:1px solid rgba(180,180,255,.18);
  border-radius:18px;padding:16px 14px 12px;z-index:60;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 12px 40px rgba(0,0,0,.4);
}
#player .pl-timer-title{color:rgba(200,200,255,.8);font-size:11px;font-weight:700;margin-bottom:12px;text-align:center;letter-spacing:1px;}
#player .pl-timer-opt{
  display:block;width:100%;padding:10px 0;margin-bottom:6px;border:none;border-radius:12px;
  background:rgba(180,180,255,.08);color:rgba(220,220,255,.88);font-size:13px;
  transition:background .15s;
}
#player .pl-timer-opt:active{background:rgba(180,180,255,.2)}
#player .pl-timer-cancel{
  display:block;width:100%;padding:9px 0;margin-top:4px;border:1px solid rgba(255,140,140,.2);border-radius:12px;
  background:transparent;color:rgba(255,160,160,.7);font-size:12px;transition:background .15s;
}
#player .pl-timer-cancel:active{background:rgba(255,140,140,.12)}
/* 顶部小标签 */
#player .pl-tag{
  position:absolute;top:58px;left:22px;
  color:rgba(143,223,255,.62);font-size:11.5px;font-weight:700;letter-spacing:2.4px;
  display:flex;align-items:center;gap:8px;
}
#player .pl-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 10px var(--accent-2);animation:topDot var(--breath) ease-in-out infinite}
/* 呼吸引导圆（主角）：吸气放大、呼气缩小，配光晕 */
#player .pl-breath-wrap{
  position:relative;width:min(62vw,260px);height:min(62vw,260px);
  display:grid;place-items:center;margin-bottom:8px;
}
#player .pl-breath{
  width:60%;height:60%;border-radius:50%;
  background:
    radial-gradient(circle at 50% 45%,rgba(255,238,200,.42),rgba(255,197,120,.18) 52%,rgba(120,70,30,.10) 78%,transparent 86%);
  border:1px solid rgba(255,205,140,.32);
  box-shadow:0 0 70px rgba(255,197,120,.32),inset 0 0 44px rgba(255,230,180,.22);
  transition:transform var(--breath-dur,8s) cubic-bezier(.45,0,.25,1),box-shadow var(--breath-dur,8s) cubic-bezier(.45,0,.25,1);
  will-change:transform;
}
#player .pl-breath-wrap .pl-ring{
  position:absolute;border:1px solid rgba(255,205,140,.14);border-radius:50%;pointer-events:none;
}
#player .pl-breath-wrap .pl-ring.r1{inset:6%}
#player .pl-breath-wrap .pl-ring.r2{inset:16%;border-color:rgba(255,197,120,.10)}
/* 节律文字（吸气/呼气/屏息） */
#player .pl-phase{
  margin-top:4px;color:#fff5ea;font-size:15px;font-weight:600;letter-spacing:4px;min-height:22px;
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}
/* 字幕缓现区（opening/sound/body 按节奏推进） */
#player .pl-caption{
  max-width:300px;min-height:54px;margin-top:26px;
  color:rgba(214,232,240,.82);font-size:13.5px;line-height:1.95;letter-spacing:.4px;
  font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  opacity:0;transform:translateY(8px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);
  margin-bottom:140px; /* 给底部富控件区留出空间 */
}
#player.video-mode .pl-caption{margin-bottom:200px}
#player .pl-caption.on{opacity:1;transform:translateY(0)}
/* 进度条（可拖拽，含缓冲层 + 已播层 + 拖动手柄） */
#player .pl-progress{
  position:relative;left:20px;right:20px;height:6px;border-radius:99px;background:rgba(255,255,255,.08);
  overflow:visible;cursor:pointer;touch-action:none;margin:0 20px;
}
#player .pl-progress-buffer{display:block;height:100%;width:0;border-radius:inherit;background:rgba(255,255,255,.12);position:absolute;left:0;top:0}
#player .pl-progress-fill{display:block;height:100%;width:0;border-radius:inherit;position:absolute;left:0;top:0;
  background:linear-gradient(90deg,#35e7ff,#7af0d8,#f0c56a);box-shadow:0 0 12px rgba(82,223,244,.4);pointer-events:none}
#player .pl-progress-handle{
  position:absolute;top:50%;width:14px;height:14px;border-radius:50%;
  background:#fff;box-shadow:0 0 8px rgba(82,223,244,.6),0 0 20px rgba(255,197,120,.3);
  transform:translate(-50%,-50%);left:-7px;pointer-events:none;
  opacity:0;transition:opacity .2s;
}
#player .pl-progress:hover .pl-progress-handle,
#player .pl-progress:active .pl-progress-handle{opacity:1}
/* 拖拽气泡提示 */
#player .pl-seek-tip{
  position:absolute;bottom:calc(100% + 8px);transform:translateX(-50%);
  padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.85);color:#fff;font-size:11px;
  font-family:"SFMono-Regular",Consolas,monospace;letter-spacing:1px;white-space:nowrap;
  pointer-events:none;opacity:0;transition:opacity .15s;z-index:12;
}
#player .pl-seek-tip.show{opacity:1}
/* 底部富控件容器（居中，从进度条到曲目名） */
#player .pl-bottom{
  position:absolute;left:0;right:0;bottom:0;
  display:flex;flex-direction:column;align-items:center;
  padding:0 0 env(safe-area-inset-bottom,0px) 0;
  padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));
}
/* 计时 */
#player .pl-clock{
  margin-top:10px;color:rgba(160,205,220,.6);font-size:12px;letter-spacing:3px;
  font-family:"SFMono-Regular",Consolas,monospace;
}
/* 控制条 */
#player .pl-controls{
  display:flex;align-items:center;justify-content:center;gap:16px;margin-top:8px;
}
#player .pl-btn{
  display:grid;place-items:center;border-radius:50%;
  border:1px solid rgba(120,232,255,.26);background:rgba(8,22,34,.6);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--accent);cursor:pointer;
  transition:transform .15s var(--ease),background .2s,border-color .2s;
}
#player .pl-btn:active{transform:scale(.9);background:rgba(82,223,244,.16)}
#player .pl-btn.small{width:44px;height:44px;font-size:17px}
/* 15s 快进/快退按钮 */
#player .pl-btn.rw,#player .pl-btn.ff{width:38px;height:38px;font-size:13px;border-radius:50%;
  border:1px solid rgba(120,232,255,.18);background:rgba(8,22,34,.4);color:rgba(160,205,220,.7);
  position:relative;
}
#player .pl-btn.rw::after,#player .pl-btn.ff::after{
  content:"15s";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);
  font-size:11px;letter-spacing:0;color:rgba(160,205,220,.4);
}
#player .pl-btn.rw.flash,#player .pl-btn.ff.flash{
  background:rgba(82,223,244,.2);border-color:rgba(120,232,255,.4);
  transition:background .05s;
}
/* 播放键（保持金光风格） */
#player .pl-btn.play{width:66px;height:66px;font-size:24px;border-color:rgba(255,205,140,.55);
  background:radial-gradient(circle at 50% -10%,rgba(255,238,200,.4),rgba(190,138,60,.3) 70%,rgba(40,26,10,.5));
  box-shadow:0 0 34px rgba(255,197,120,.34),inset 0 1px 0 rgba(255,255,255,.34);color:#fff7ec}
#player .pl-btn.play.playing{box-shadow:0 0 44px rgba(255,205,140,.42),inset 0 1px 0 rgba(255,255,255,.4)}
/* 底部音轨名 + 倍速 + 全屏（同一行） */
#player .pl-track{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;
  width:100%;text-align:center;
  color:rgba(255,210,150,.5);font-size:11.5px;letter-spacing:1.6px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;padding:0 30px;
}
#player .pl-track b{color:rgba(255,232,200,.78);font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
/* 倍速按钮 */
#player .pl-speed-label{
  font-size:11px;color:rgba(200,200,255,.7);font-weight:700;letter-spacing:1px;
  font-family:"SFMono-Regular",Consolas,monospace;min-width:24px;
}
#player .pl-speed-btn{
  border:none;background:rgba(180,180,255,.1);color:rgba(200,200,255,.7);
  font-size:11px;padding:4px 10px;border-radius:10px;cursor:pointer;
  transition:background .15s;
}
#player .pl-speed-btn:active{background:rgba(180,180,255,.25)}
/* 全屏按钮 */
#player .pl-fullscreen-btn{
  border:none;background:none;color:rgba(200,220,255,.6);
  font-size:20px;padding:6px 10px;cursor:pointer;display:none; /* 默认隐藏，仅视频模式显示 */
  border-radius:8px;transition:background .15s;
}
#player .pl-fullscreen-btn:active{color:rgba(200,220,255,.9);background:rgba(255,255,255,.08)}
/* 全屏模式：视频铺满 */
#player:fullscreen,
#player:-webkit-full-screen{
  width:100vw;height:100vh;background:#000;
  justify-content:flex-start;padding:0;
}
#player:fullscreen .pl-video,
#player:-webkit-full-screen .pl-video{
  position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;
  transform:none;max-width:none;margin:0;border:0;border-radius:0;flex-shrink:0;
}
#player:fullscreen .pl-vctrl,
#player:-webkit-full-screen .pl-vctrl{
  position:absolute;inset:0;
}
/* ════════ 爱奇艺式视频控件层（自动隐藏） ════════ */
#player .pl-vctrl{
  position:absolute;top:0;left:0;right:0;bottom:auto;width:100%;height:auto;aspect-ratio:16/9;z-index:20;
  pointer-events:none;opacity:0;
  transition:opacity .3s ease;
}
#player .pl-vctrl.show{
  opacity:1;pointer-events:auto;
}
/* 顶部栏：返回 + 标题 */
#player .pl-vctrl-top{
  position:absolute;top:0;left:0;right:0;
  display:flex;align-items:center;gap:12px;
  padding:calc(12px + env(safe-area-inset-top,0px)) 16px 44px;
  background:linear-gradient(to bottom,rgba(0,0,0,.65),transparent);
}
#player .pl-vctrl-back{
  border:none;background:none;color:#fff;font-size:16px;
  cursor:pointer;padding:4px 8px;white-space:nowrap;
}
#player .pl-vctrl-title{flex:1;
  color:rgba(255,255,255,.9);font-size:15px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;
}
/* 中央大播放按钮 */
#player .pl-vctrl-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  pointer-events:none;
}
#player .pl-vctrl-bigplay{
  width:64px;height:64px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.28);
  background:rgba(0,0,0,.22);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  color:rgba(255,255,255,.72);font-size:28px;cursor:pointer;
  display:grid;place-items:center;pointer-events:auto;
  opacity:.55;
  transition:transform .15s,background .2s,opacity .2s;
}
#player .pl-vctrl-bigplay:active{transform:scale(.9);opacity:.85;background:rgba(255,255,255,.15)}
/* 底部控制栏 */
#player .pl-vctrl-bottom{
  position:absolute;bottom:0;left:0;right:0;
  padding:36px 16px calc(12px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(to top,rgba(0,0,0,.75),transparent);
}
/* 视频进度条（粗一点，方便触摸） */
#player .pl-vctrl-progress{
  position:relative;height:4px;border-radius:99px;background:rgba(255,255,255,.2);
  overflow:visible;cursor:pointer;touch-action:none;margin-bottom:14px;
  transition:height .15s;
}
#player .pl-vctrl-progress:hover,
#player .pl-vctrl-progress:active{height:6px}
#player .pl-vctrl-progress .pl-progress-fill{
  background:linear-gradient(90deg,#35e7ff,#7af0d8);
  box-shadow:0 0 8px rgba(82,223,244,.4);
}
#player .pl-vctrl-progress .pl-progress-handle{opacity:1}
/* 底部按钮行 */
#player .pl-vctrl-bar{
  display:flex;align-items:center;justify-content:space-between;color:#fff;
}
#player .pl-vctrl-bar-left{display:flex;align-items:center;gap:14px}
#player .pl-vctrl-bar-right{display:flex;align-items:center;gap:14px}
#player .pl-vctrl-play{
  border:none;background:none;color:#fff;font-size:22px;cursor:pointer;
  width:32px;height:32px;display:grid;place-items:center;
}
#player .pl-vctrl-time{
  font-size:13px;color:rgba(255,255,255,.85);
  font-family:"SFMono-Regular",Consolas,monospace;letter-spacing:.5px;
}
#player .pl-vctrl-rw,#player .pl-vctrl-ff,
#player .pl-vctrl-speed-btn,#player .pl-vctrl-fs{
  border:none;background:none;color:rgba(255,255,255,.85);font-size:14px;
  cursor:pointer;padding:4px 6px;white-space:nowrap;
}
#player .pl-vctrl-rw:active,#player .pl-vctrl-ff:active,
#player .pl-vctrl-speed-btn:active,#player .pl-vctrl-fs:active{color:#fff}
#player .pl-vctrl-fs{font-size:18px}

@media (orientation:landscape) and (max-height:600px){
  .device{width:100vw;height:100vh;height:100dvh;padding:0;border-radius:0;box-shadow:none;background:transparent}
  .app{border-radius:0}
  #player.video-mode .pl-video,
  #player.video-mode .pl-vctrl{
    top:0;left:0;right:0;bottom:0;width:100%;height:100%;aspect-ratio:auto;
  }
}
/* 倍速面板 */
#player .pl-speed-panel{
  position:absolute;bottom:calc(180px + env(safe-area-inset-bottom,0px));right:20px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  background:rgba(16,28,42,.92);border:1px solid rgba(180,180,255,.18);
  border-radius:16px;padding:14px;min-width:180px;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:0 12px 40px rgba(0,0,0,.4);z-index:62;
  opacity:0;pointer-events:none;transform:translateY(8px) scale(.95);
  transition:opacity .25s var(--ease),transform .25s var(--ease),pointer-events 0s .25s;
}
#player .pl-speed-panel.show{
  opacity:1;pointer-events:auto;transform:translateY(0) scale(1);
  transition:opacity .25s var(--ease),transform .25s var(--ease),pointer-events 0s 0s;
}
#player .pl-speed-opt{
  padding:9px 0;border:none;border-radius:10px;
  background:rgba(180,180,255,.06);color:rgba(220,220,255,.75);font-size:13px;font-weight:600;
  cursor:pointer;transition:background .15s,color .15s;
}
#player .pl-speed-opt:active{background:rgba(180,180,255,.18)}
#player .pl-speed-opt.active{
  background:rgba(82,223,244,.2);color:#4fd8ff;
  box-shadow:inset 0 0 0 1px rgba(82,223,244,.3);
}

/* ============ 疗愈界面 · 顶级重构 (session2) ============ */
#layer-session .s2-wrap{padding:2px 0 30px}
.s2-section{display:flex;align-items:center;gap:10px;margin:26px 4px 13px}
.s2-section-label{font-size:15px;font-weight:700;letter-spacing:.5px;display:flex;align-items:center;gap:9px}
.s2-section-label::before{content:"";width:3px;height:15px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--accent-2));box-shadow:0 0 10px rgba(79,216,255,.5)}
.s2-section-sub{font-size:11px;letter-spacing:1.4px;color:rgba(157,202,223,.5)}

/* 场景封面：分类色光晕 + 呼吸球 + 城市微缩，一进方案页就是「这是为我准备的场景」 */
.s2-cover{
  position:relative;overflow:hidden;margin:2px 0 6px;padding:30px 22px 26px;border-radius:22px;
  border:1px solid var(--line);
  background:
    radial-gradient(120% 120% at 50% -20%,var(--cat,rgba(89,169,255,.34)),transparent 60%),
    linear-gradient(160deg,rgba(12,28,46,.78),rgba(6,15,26,.82) 64%,rgba(3,9,18,.9));
  box-shadow:0 20px 56px rgba(0,0,0,.4),var(--hl);
}
.s2-cover::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--cat,rgba(121,232,255,.6)),transparent);opacity:.8}
.s2-cover-glow{position:absolute;inset:-40% -10% auto auto;width:60%;height:120%;filter:blur(34px);opacity:.5;background:radial-gradient(circle,var(--cat,rgba(89,169,255,.5)),transparent 68%);pointer-events:none}
.s2-cover-aura{position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 38%,rgba(122,240,216,.12),transparent 70%);pointer-events:none}
.s2-cover-orb{position:absolute;right:24px;top:26px;width:54px;height:54px;display:grid;place-items:center}
.s2-cover-orb i{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.85),var(--cat,rgba(89,169,255,.4)) 70%);box-shadow:0 0 26px var(--cat,rgba(89,169,255,.7));animation:breathDot var(--breath) ease-in-out infinite}
.s2-cover-city{font-size:13px;letter-spacing:2px;color:rgba(214,236,248,.62);font-weight:600}
.s2-cover-cat{font-family:"Noto Serif SC","Songti SC","STSong","SimSun",serif;font-size:30px;font-weight:700;letter-spacing:1px;margin:6px 0 12px;color:#f4fbff;text-shadow:0 4px 26px rgba(0,0,0,.45)}
.s2-cover-line{max-width:280px;font-size:13px;line-height:1.85;color:rgba(214,232,240,.78)}
.s2-cover-mood{margin-top:16px;font-size:11px;letter-spacing:2px;color:rgba(240,197,106,.82);font-weight:600;display:flex;align-items:center;gap:8px}
.s2-cover-mood::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px var(--gold)}

/* 主 CTA：大呼吸按钮，进入沉浸播放器 */
.s2-cta{
  position:relative;display:flex;align-items:center;gap:14px;width:100%;margin-top:16px;
  padding:18px 20px;border-radius:18px;cursor:pointer;overflow:hidden;text-align:left;
  border:1px solid rgba(132,238,255,.55);color:#f5fdff;
  background:
    radial-gradient(140% 160% at 50% -40%,rgba(170,247,255,.42),transparent 60%),
    linear-gradient(180deg,rgba(104,232,255,.30),rgba(36,124,170,.40) 54%,rgba(10,26,44,.72));
  box-shadow:0 14px 34px rgba(42,170,220,.34),inset 0 1px 0 rgba(255,255,255,.4),inset 0 -12px 26px rgba(0,38,68,.5);
  transition:transform .16s var(--ease),box-shadow .2s;
}
.s2-cta:active{transform:scale(.98)}
.s2-cta-ring{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(190,247,255,.7);display:grid;place-items:center;position:relative}
.s2-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}
.s2-cta-ring::before{content:"";width:0;height:0;border-left:11px solid rgba(190,247,255,.95);border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.s2-cta-text{flex:1;display:flex;flex-direction:column;gap:3px}
.s2-cta-text b{font-size:16px;font-weight:700;letter-spacing:1px}
.s2-cta-text em{font-style:normal;font-size:11px;letter-spacing:1px;color:rgba(210,245,252,.82)}
.s2-cta-arrow{font-size:22px;color:rgba(190,247,255,.7)}

/* 时长芯片 */
.s2-durations{display:flex;gap:9px;flex-wrap:wrap}
.s2-dur{
  flex:1;min-width:74px;padding:13px 8px;border-radius:14px;cursor:pointer;text-align:center;
  border:1px solid var(--line);background:var(--glass);
  transition:transform .15s var(--ease),background .2s,border-color .2s,box-shadow .2s;
}
.s2-dur b{display:block;font-size:18px;font-weight:700;letter-spacing:.3px}
.s2-dur span{display:block;margin-top:3px;font-size:11.5px;letter-spacing:1px;color:rgba(157,202,223,.55)}
.s2-dur:active{transform:scale(.96)}
.s2-dur.on{border-color:rgba(132,238,255,.6);background:rgba(82,223,244,.14);box-shadow:0 0 18px rgba(79,216,255,.22),inset 0 1px 0 rgba(255,255,255,.16)}
.s2-dur.on span{color:rgba(190,238,252,.85)}

/* 要素卡 */
.s2-factors{display:grid;gap:11px}
.s2-factor{display:flex;gap:14px;padding:15px 16px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--glass);box-shadow:var(--hl)}
.s2-factor-num{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;font-weight:700;color:rgba(190,238,252,.9);background:rgba(82,223,244,.1);border:1px solid rgba(120,232,255,.2)}
.s2-factor-body b{display:block;margin-bottom:5px;font-size:12px;font-weight:700;letter-spacing:.6px;color:rgba(143,223,255,.92)}
.s2-factor-body p{font-size:12.5px;line-height:1.8;color:var(--muted)}

/* 声景列表（可试听，带波形） */
.s2-sounds{display:grid;gap:10px}
.s2-sound{
  display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:14px;cursor:pointer;
  border:1px solid var(--line);background:var(--glass);box-shadow:var(--hl);
  transition:transform .15s var(--ease),background .2s,border-color .2s;
}
.s2-sound:active{transform:scale(.985)}
.s2-sound.on{border-color:rgba(132,238,255,.5);background:rgba(82,223,244,.12)}
.s2-sound-wave{flex:0 0 auto;width:26px;height:26px;display:flex;align-items:flex-end;justify-content:center;gap:2.5px}
.s2-sound-wave i{width:3px;border-radius:2px;background:var(--accent);height:8px;opacity:.6}
.s2-sound.on .s2-sound-wave i{animation:s2wave .9s ease-in-out infinite}
.s2-sound.on .s2-sound-wave i:nth-child(2){animation-delay:.12s}
.s2-sound.on .s2-sound-wave i:nth-child(3){animation-delay:.24s}
.s2-sound.on .s2-sound-wave i:nth-child(4){animation-delay:.36s}
.s2-sound-wave i:nth-child(1){height:6px}
.s2-sound-wave i:nth-child(2){height:14px}
.s2-sound-wave i:nth-child(3){height:9px}
.s2-sound-wave i:nth-child(4){height:16px}
@keyframes s2wave{0%,100%{transform:scaleY(.4);opacity:.5}50%{transform:scaleY(1.1);opacity:1}}
.s2-sound-meta{flex:1;min-width:0}
.s2-sound-meta b{display:block;font-size:13.5px;font-weight:600;letter-spacing:.2px}
.s2-sound-meta span{display:block;margin-top:2px;font-size:11.5px;line-height:1.5;color:var(--faint)}
.s2-sound-tag{flex:0 0 auto;font-size:11px;letter-spacing:1.2px;color:var(--accent);padding:3px 8px;border-radius:99px;border:1px solid rgba(120,232,255,.26);background:rgba(82,223,244,.06)}

/* 建议条 */
.s2-tips{display:grid;gap:9px}
.s2-tip{display:flex;gap:11px;padding:13px 15px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--glass)}
.s2-tip::before{content:"";flex:0 0 auto;width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 9px var(--accent-2)}
.s2-tip span{font-size:12.5px;line-height:1.7;color:rgba(214,229,242,.72)}

/* ===== 图文正文层（layer-article） ===== */
.layer-article{padding:2px 2px 40px}
.article-hero{padding:8px 22px 18px;border-bottom:1px solid rgba(169,217,238,.12);margin-bottom:18px}
.article-hero .art-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1.4px;color:var(--accent);padding:4px 11px;border-radius:99px;border:1px solid rgba(120,232,255,.26);background:rgba(82,223,244,.07);margin-bottom:14px}
.article-hero .art-title{font-size:24px;line-height:1.3;letter-spacing:1px;color:#f3faff;margin:0 0 8px;font-weight:580}
.article-hero .art-sub{font-size:12.5px;line-height:1.7;color:var(--muted);margin:0}
.article-hero .art-gallery{display:grid;gap:10px;margin-top:14px}
.article-hero .art-gallery img{width:100%;height:auto;border-radius:12px;display:block;background:rgba(120,140,160,.12)}
.art-fav{
  position:absolute;right:18px;top:18px;width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,180,180,.18);background:rgba(20,10,10,.5);
  color:rgba(255,180,180,.6);font-size:18px;display:grid;place-items:center;z-index:10;
  transition:transform .15s,background .15s;
}
.art-fav.on{color:#ff6b8a;border-color:rgba(255,107,138,.3);background:rgba(255,107,138,.1)}
.art-fav:active{transform:scale(.9)}
.article-body{padding:0 22px}
.art-prose{font-size:13.5px;line-height:2;color:rgba(222,238,246,.82)}
.art-prose .art-h{font-size:13px;font-weight:700;letter-spacing:.8px;color:var(--accent);margin:18px 0 8px;padding-bottom:5px;border-bottom:1px solid rgba(120,232,255,.16)}
.art-prose .art-h:first-child{margin-top:0}
.art-prose p{margin:0 0 13px}
.art-prose .art-ul{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:7px}
.art-prose .art-ul li{position:relative;padding-left:18px;font-size:13px;line-height:1.85;color:rgba(214,229,242,.74)}
.art-prose .art-ul li::before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.7;box-shadow:0 0 7px var(--accent)}
.article-foot{padding:24px 22px 8px;text-align:center}
.art-listen{padding:13px 26px;border-radius:999px;border:1px solid rgba(120,232,255,.3);background:linear-gradient(180deg,rgba(82,223,244,.18),rgba(82,223,244,.07));color:#eafcff;font-size:13px;font-weight:550;letter-spacing:1px;cursor:pointer;box-shadow:0 0 20px rgba(82,223,244,.16)}
.art-listen:active{transform:scale(.97)}
.art-end{display:inline-block;font-size:11px;letter-spacing:2px;color:rgba(184,210,224,.4)}

/* ===== 稳定性红线：文字截断/防溢出 ===== */
.catalog-content b,.cc-body b,.cl-title,.ch-title,.yc-hero-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.art-title{overflow-wrap:anywhere}
.cc-sub,.catalog-desc,.art-sub,.yc-hero-copy{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.art-prose p{overflow-wrap:anywhere;word-break:break-word}
.art-prose-empty{color:rgba(184,210,224,.46);font-style:italic;text-align:center;padding:20px 0}

/* ===== 伊春穿越过渡（镜头推近时叠一层柔光晕染，z-index 35，在地球之上、梦境界面之下）=====
   地球镜头由 JS 推近（globeEngine._camTarget=2.62），地图整体被推近/穿越感；
   这里叠一层从中心向外扩散的柔光，衔接地球暗化与梦境界面浮现 */
.yc-dive{position:absolute;inset:0;z-index:35;pointer-events:none;opacity:0;visibility:hidden;
  background:radial-gradient(circle at 50% 46%,rgba(140,180,255,.32) 0%,rgba(80,110,180,.18) 28%,rgba(10,20,40,.55) 62%,rgba(3,6,14,.92) 100%);
  transition:opacity 1s var(--ease),visibility 0s linear 1s}
.yc-dive.show{opacity:1;visibility:visible;transition:opacity 1s var(--ease),visibility 0s linear 0s}
/* 进入穿越态：中国地图 UI 淡出 + 地球画布进一步推近放大（与 JS 的 _camTarget 叠加增强穿越感）
   注意：不放 drop-shadow/blur 这类大半径滤镜——全屏 canvas 上叠它会撑爆移动端 GPU 显存，
   退出时逐帧重算极易导致标签页崩溃。穿越柔光由独立的 #ycDive 径向渐变层承担，更稳。 */
.app.yc-diving #china-focus-ui{opacity:0!important;visibility:hidden;transition:opacity .5s ease,visibility 0s linear .5s}
.app.yc-diving #mobile-globe-canvas{
  transform:translateY(186px) scale(1.32);
  filter:brightness(.62) saturate(1.15);
  transition:transform 1.4s var(--ease),filter 1.2s var(--ease)}

/* ===== 伊春梦境独立全屏层（深空星云，无卡片）===== */
.yc-dream{position:absolute;inset:0;z-index:41;display:flex;flex-direction:column;
  background:
    radial-gradient(120% 70% at 50% 18%,rgba(50,80,140,.22),transparent 55%),
    radial-gradient(90% 60% at 80% 100%,rgba(80,60,140,.16),transparent 60%),
    radial-gradient(70% 50% at 15% 80%,rgba(40,90,120,.14),transparent 60%),
    linear-gradient(180deg,#0a1428 0%,#060b18 50%,#03060e 100%);
  overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  opacity:0;visibility:hidden;transform:scale(1.035);filter:none;
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1),visibility 0s linear .85s;
  will-change:opacity,transform}
.yc-dream::-webkit-scrollbar{display:none}
.yc-dream[aria-hidden="false"]{opacity:1;visibility:visible;transform:scale(1);filter:none;
  transition:opacity .7s cubic-bezier(.22,1,.36,1) .12s,transform .85s cubic-bezier(.22,1,.36,1) .12s,visibility 0s linear 0s}
.yc-dream.show{}
/* 漂浮星尘层（JS 撒 40 个 <i>） */
.yc-dream-stars{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.yc-dream-stars i{position:absolute;border-radius:50%;background:#eaf2ff;
  animation:dreamStarFloat linear infinite,dreamStarTwinkle ease-in-out infinite}
@keyframes dreamStarFloat{0%{transform:translate(0,0)}50%{transform:translate(var(--dx,8px),var(--dy,-14px))}100%{transform:translate(0,0)}}
@keyframes dreamStarTwinkle{0%,100%{opacity:var(--op,.4)}50%{opacity:calc(var(--op,.4) * 1.8)}}
/* 中心呼吸光晕（月光色） */
.yc-dream-aura{position:absolute;left:50%;top:42%;width:340px;height:340px;transform:translate(-50%,-50%);
  border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(160,200,255,.16),rgba(120,160,230,.06) 50%,transparent 72%);
  animation:ycAura var(--breath,10s) ease-in-out infinite}
@keyframes ycAura{0%,100%{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.14)}}
.yc-back{position:absolute;top:48px;right:22px;width:42px;height:42px;border-radius:50%;z-index:5;
  border:1px solid rgba(150,190,255,.3);background:rgba(12,22,40,.7);color:rgba(190,215,255,.92);
  font-size:20px;display:grid;place-items:center;transition:transform .15s var(--ease),background .2s;backdrop-filter:blur(12px)}
.yc-back:active{transform:scale(.9);background:rgba(100,140,220,.25)}

/* Hero 区（深空月光风，无卡片框） */
.yc-hero{position:relative;text-align:center;padding:92px 28px 28px;overflow:hidden;z-index:1}
.yc-hero-tag{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:2.2px;color:rgba(170,200,255,.82);
  padding:5px 13px;border-radius:99px;border:1px solid rgba(150,190,255,.28);background:rgba(120,160,240,.08);margin-bottom:20px}
.yc-hero-name{font-size:50px;font-weight:780;letter-spacing:8px;color:#f5f9ff;margin-bottom:14px;
  font-family:"Noto Serif SC","Songti SC",serif;
  text-shadow:0 0 32px rgba(150,190,255,.4),0 0 60px rgba(120,160,240,.2)}
.yc-hero-copy{font-size:13px;line-height:1.9;color:rgba(200,218,245,.66);max-width:300px;margin:0 auto 24px}
.yc-hero-intro{max-width:340px;margin:0 auto 30px;text-align:left;max-height:0;overflow:hidden;opacity:0;
  transition:max-height .55s var(--ease),opacity .5s var(--ease),margin .5s var(--ease)}
.yc-hero-intro:not(:empty){max-height:520px;opacity:1;margin-bottom:34px}
.yc-hero-intro p{font-size:12px;line-height:1.95;color:rgba(190,208,235,.6);margin:0 0 12px;letter-spacing:.2px}
.yc-hero-intro p:last-child{margin-bottom:0}

/* 4 板块入口（浮空发光符文，无矩形卡片） */
.yc-runes{display:flex;justify-content:center;align-items:flex-start;gap:22px;padding:30px 16px 50px;flex-wrap:wrap;z-index:1;position:relative}
.yc-rune{display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;color:inherit;
  background:transparent;border:none;padding:0;transition:transform .2s var(--ease)}
.yc-rune:nth-child(n){animation:none}
.yc-rune-glyph{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
  font-family:"Noto Serif SC","Songti SC",serif;font-size:26px;font-weight:700;color:rgba(230,240,255,.96);
  background:radial-gradient(circle at 38% 35%,rgba(150,190,255,.28),rgba(60,90,160,.16) 65%,transparent 80%);
  border:1px solid rgba(170,200,255,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 24px rgba(120,160,240,.28);
  transition:transform .2s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.yc-rune:active .yc-rune-glyph{transform:scale(1.12);border-color:rgba(200,225,255,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 40px rgba(150,190,255,.5)}
.yc-rune-label{font-size:11px;letter-spacing:2px;color:rgba(190,210,245,.72);font-weight:600}
@keyframes runeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* 板块面板（点符文后展开，深空风） */
.yc-panel{position:absolute;inset:0;z-index:42;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0a1428 0%,#060b18 50%,#03060e 100%);
  opacity:0;visibility:hidden;transform:translateY(30px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),visibility 0s linear .6s;overflow:hidden}
.yc-panel[aria-hidden="false"]{opacity:1;visibility:visible;transform:translateY(0);
  transition:opacity .6s var(--ease),transform .6s var(--ease),visibility 0s linear 0s}
.yc-panel-back{flex:0 0 auto;align-self:flex-start;margin:50px 0 4px 22px;padding:8px 14px;border-radius:99px;
  border:1px solid rgba(150,190,255,.25);background:rgba(12,22,40,.6);color:rgba(190,215,255,.85);
  font-size:12px;letter-spacing:.6px;cursor:pointer;transition:transform .15s var(--ease)}
.yc-panel-back:active{transform:scale(.94)}
.yc-panel-head{flex:0 0 auto;padding:6px 22px 16px;border-bottom:1px solid rgba(150,190,255,.12);margin-bottom:6px}
.yc-panel-badge{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:1.8px;color:rgba(170,200,255,.82);
  padding:4px 11px;border-radius:99px;border:1px solid rgba(170,200,255,.25);background:rgba(120,160,240,.08);margin-bottom:8px}
.yc-panel-head p{font-size:12px;line-height:1.7;color:rgba(195,215,240,.55);margin:0}
.yc-panel-list{flex:1;overflow-y:auto;padding:8px 20px 40px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.yc-panel-list::-webkit-scrollbar{display:none}

/* 空板块占位：城市暂无后台内容时的优雅兜底（星光球） */
.yc-empty-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:40px 28px;gap:18px;min-height:60vh;animation:ycEmptyIn .7s var(--ease)}
.yc-empty-orb{width:88px;height:88px;border-radius:50%;
  background:radial-gradient(circle at 38% 35%,rgba(170,205,255,.55),rgba(100,140,220,.14) 60%,transparent 72%);
  border:1px solid rgba(170,200,255,.22);position:relative;
  animation:ycOrbPulse 4s ease-in-out infinite}
.yc-empty-orb::after{content:"";position:absolute;inset:-14px;border-radius:50%;
  border:1px solid rgba(170,200,255,.14);animation:ycOrbRing 4s ease-in-out infinite}
.yc-empty-title{font-size:14px;font-weight:680;letter-spacing:1.4px;color:rgba(220,235,255,.9)}
.yc-empty-sub{font-size:12px;line-height:1.8;color:rgba(195,215,240,.5);max-width:240px}
@keyframes ycEmptyIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes ycOrbPulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
@keyframes ycOrbRing{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.18);opacity:.15}}

/* 从伊春独立层打开的 course/article 详情：盖在面板之上，复用 layer-course/layer-article 的 DOM
   通过 body.yc-detail 提升 sheet；隐藏 grip 与标题栏，但保留 sheet-head 作为返回键的渲染宿主
   （返回键用 position:fixed 浮在左上角，不能因父级 display:none 而消失） */
body.yc-detail #sheet{transform:translateY(0)!important;z-index:50;background:linear-gradient(180deg,#0a1428,#03060e)}
body.yc-detail .sheet-grip{display:none}
body.yc-detail .sheet-head{display:block;padding:0;margin:0;height:0;overflow:visible;background:transparent;border:0}
body.yc-detail .sheet-titles{display:none}
body.yc-detail .sheet-scroll{padding-top:60px}
body.yc-detail .sheet-back{display:grid;position:fixed;top:48px;left:22px;z-index:51}

/* ===== 手机端一级导航：全球 / 收藏 / 我的 ===== */
.mobile-dock{
  position:absolute;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:27;
  height:68px;padding:7px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;
  border:1px solid rgba(146,211,235,.18);border-radius:23px;
  background:linear-gradient(180deg,rgba(12,29,43,.92),rgba(5,15,25,.94));
  box-shadow:0 20px 50px rgba(0,0,0,.46),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(24px) saturate(1.15);transition:opacity .28s var(--ease),transform .34s var(--ease),visibility .28s;
}
.mobile-dock.hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(22px)}
.mobile-dock button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:17px;background:transparent;color:rgba(194,218,230,.52);cursor:pointer;transition:background .2s,color .2s,transform .15s}
.mobile-dock button i{font-style:normal;font-size:18px;line-height:1;font-family:Georgia,"Times New Roman",serif}
.mobile-dock button span{font-size:11px;font-weight:650;letter-spacing:1.2px}
.mobile-dock button.active{color:#eafff8;background:linear-gradient(180deg,rgba(87,221,196,.18),rgba(40,145,151,.09));box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.mobile-dock button.active::after{content:"";position:absolute;bottom:3px;width:14px;height:2px;border-radius:99px;background:#7af0d8;box-shadow:0 0 9px rgba(122,240,216,.75)}
.mobile-dock button:active{transform:scale(.94)}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-dock{border-color:rgba(181,226,224,.23);background:linear-gradient(180deg,rgba(13,47,55,.82),rgba(4,23,34,.90));box-shadow:0 22px 52px rgba(0,8,15,.39),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(30px) saturate(1.20)}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-dock button.active{color:#f5f4e8;background:linear-gradient(180deg,rgba(215,198,138,.13),rgba(93,153,144,.10))}
.app[data-globe-theme="day"]:not(.china-focus) .mobile-dock button.active::after{background:#e3c57f;box-shadow:0 0 9px rgba(227,197,127,.55)}

/* 全球入口保留在地球首页：只展开四大板块，不跳转独立页面 */
.global-quick-menu{
  position:absolute;left:18px;right:18px;bottom:96px;z-index:23;
  padding:12px 12px 13px;border-radius:22px;
  border:1px solid rgba(139,219,222,.2);
  background:linear-gradient(145deg,rgba(8,28,39,.9),rgba(4,15,27,.94));
  box-shadow:0 18px 44px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px) scale(.97);
  transform-origin:50% 100%;transition:opacity .28s var(--ease),transform .38s var(--ease),visibility 0s linear .38s;
}
.global-quick-menu[aria-hidden="false"]{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .28s var(--ease),transform .38s var(--ease),visibility 0s}
.global-quick-title{display:flex;align-items:center;justify-content:space-between;padding:0 4px 10px}
.global-quick-title strong{font-size:12px;letter-spacing:.8px;color:rgba(235,250,248,.92)}
.global-quick-title span{font-size:10.5px;letter-spacing:1.2px;color:rgba(122,240,216,.48)}
.global-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.global-quick-grid button{min-width:0;height:72px;border:1px solid rgba(147,214,235,.13);border-radius:16px;background:rgba(12,33,45,.64);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:rgba(230,247,248,.86);cursor:pointer;transition:transform .22s var(--ease),border-color .22s ease,background .22s ease}
.global-quick-grid button:nth-child(1){background:linear-gradient(155deg,rgba(116,61,91,.34),rgba(12,33,45,.7))}
.global-quick-grid button:nth-child(2){background:linear-gradient(155deg,rgba(45,112,91,.34),rgba(12,33,45,.7))}
.global-quick-grid button:nth-child(3){background:linear-gradient(155deg,rgba(119,88,43,.32),rgba(12,33,45,.7))}
.global-quick-grid button:nth-child(4){background:linear-gradient(155deg,rgba(72,67,133,.34),rgba(12,33,45,.7))}
.global-quick-grid button:active{transform:scale(.94)}
.global-quick-grid button.selected{border-color:var(--quick-color,rgba(122,240,216,.52));box-shadow:0 8px 22px rgba(var(--quick-rgb,122,240,216),.18),inset 0 0 0 1px rgba(var(--quick-rgb,122,240,216),.18);transform:translateY(-2px)}
.global-quick-grid button.selected i{border-color:var(--quick-color,#7af0d8);color:#fff;background:rgba(var(--quick-rgb,122,240,216),.18);box-shadow:0 0 18px rgba(var(--quick-rgb,122,240,216),.28)}
.global-quick-grid i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:"Noto Serif SC","Songti SC",serif;font-size:17px;color:#dffbf4;border:1px solid rgba(122,240,216,.24);background:rgba(122,240,216,.08)}
.global-quick-grid span{font-size:11px;font-weight:700;letter-spacing:.5px}
.global-quick-submenu{max-height:0;overflow:hidden;opacity:0;transform:translateY(8px);transition:max-height .46s var(--ease),opacity .28s ease,transform .4s var(--ease),margin .4s var(--ease),padding .4s var(--ease);margin-top:0;padding-top:0;border-top:1px solid transparent}
.global-quick-submenu[aria-hidden="false"]{max-height:282px;opacity:1;transform:translateY(0);margin-top:12px;padding-top:10px;border-top-color:rgba(147,214,235,.12)}
.global-quick-subhead{display:flex;align-items:center;justify-content:space-between;padding:0 3px 8px}
.global-quick-subhead strong{font-size:11px;letter-spacing:.7px;color:rgba(235,249,248,.86)}
.global-quick-subhead span{font-size:11px;letter-spacing:.7px;color:rgba(184,216,222,.38)}
.global-quick-sublist{display:grid;grid-template-columns:1fr;gap:6px;max-height:244px;overflow-y:auto;overscroll-behavior-y:contain;padding:0 3px 3px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.global-quick-sublist::-webkit-scrollbar{display:none}
.global-quick-sublist button{position:relative;width:100%;height:44px;padding:0 12px;border-radius:13px;border:1px solid rgba(var(--quick-rgb,122,240,216),.2);background:linear-gradient(100deg,rgba(var(--quick-rgb,122,240,216),.1),rgba(7,21,32,.8));color:rgba(231,247,247,.9);display:flex;align-items:center;gap:10px;cursor:pointer;animation:quickSubIn .38s var(--ease) both;text-align:left}
.global-quick-sublist button:nth-child(2){animation-delay:.035s}.global-quick-sublist button:nth-child(3){animation-delay:.07s}.global-quick-sublist button:nth-child(4){animation-delay:.105s}.global-quick-sublist button:nth-child(5){animation-delay:.14s}
.global-quick-sublist button:active{transform:scale(.96)}
.global-quick-sublist i{width:25px;height:25px;flex:0 0 auto;border-radius:8px;display:grid;place-items:center;font-style:normal;font-family:"Noto Serif SC","Songti SC",serif;font-size:12px;color:var(--quick-color,#7af0d8);background:rgba(var(--quick-rgb,122,240,216),.12)}
.global-quick-sublist span{min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.25}
.global-quick-sublist b{font-size:11.5px;font-weight:700;letter-spacing:.35px;white-space:nowrap}
.global-quick-sublist small{font-size:11px;font-weight:450;letter-spacing:.15px;color:rgba(194,218,226,.46);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.global-quick-sublist em{margin-left:auto;font-style:normal;font-size:16px;color:rgba(var(--quick-rgb,122,240,216),.45)}
@keyframes quickSubIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:720px){
  .global-quick-submenu[aria-hidden="false"]{max-height:225px}
  .global-quick-sublist{max-height:188px}
}
.global-aggregate-detail{display:none}
.global-aggregate-detail[aria-hidden="false"]{height:min(600px,calc(100vh - 160px));display:flex;flex-direction:column;animation:aggregateIn .42s var(--ease) both}
.global-quick-menu.detail-mode{background:linear-gradient(155deg,rgba(8,28,39,.97),rgba(3,13,23,.98));box-shadow:0 26px 70px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.07)}
.global-quick-menu.detail-mode>.global-quick-title,.global-quick-menu.detail-mode>.global-quick-grid,.global-quick-menu.detail-mode>.global-quick-submenu{display:none}
.global-aggregate-detail>header{height:52px;flex:0 0 auto;display:flex;align-items:center;gap:11px;padding:0 2px 10px;border-bottom:1px solid rgba(147,214,235,.12)}
.global-aggregate-detail>header>button{width:34px;height:34px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(var(--quick-rgb,122,240,216),.24);background:rgba(var(--quick-rgb,122,240,216),.08);color:rgba(232,249,248,.86);font-size:19px;cursor:pointer}
.global-aggregate-detail>header>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.global-aggregate-detail>header strong{font-size:13px;letter-spacing:.5px;color:rgba(240,250,249,.94)}
.global-aggregate-detail>header span{font-size:11px;letter-spacing:.5px;color:rgba(190,217,225,.44)}
.global-aggregate-list{flex:1;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:11px 2px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.global-aggregate-list::-webkit-scrollbar{display:none}
.global-city-content{min-width:0;margin-bottom:12px;padding:10px;border:1px solid rgba(147,214,235,.11);border-radius:17px;background:rgba(8,23,34,.66);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.global-city-content>header{display:flex;align-items:center;justify-content:space-between;padding:0 2px 9px}
.global-city-content>header>div{display:flex;align-items:center;gap:7px}
.global-city-content>header i{width:6px;height:6px;border-radius:50%;background:var(--quick-color,#7af0d8);box-shadow:0 0 10px rgba(var(--quick-rgb,122,240,216),.72)}
.global-city-content>header strong{font-size:11px;letter-spacing:.6px;color:rgba(236,249,248,.9)}
.global-city-content>header span{font-size:11px;color:rgba(188,215,224,.4)}
.global-city-entries{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
.global-city-entries>button{width:100%;min-width:0;max-width:100%;min-height:68px;overflow:hidden;padding:10px;border:1px solid rgba(var(--quick-rgb,122,240,216),.13);border-radius:13px;background:linear-gradient(115deg,rgba(var(--quick-rgb,122,240,216),.075),rgba(5,18,29,.78));display:flex;align-items:flex-start;gap:9px;text-align:left;color:rgba(232,247,248,.88);cursor:pointer}
.global-entry-format{flex:0 0 auto;margin-top:1px;padding:4px 6px;border-radius:8px;background:rgba(var(--quick-rgb,122,240,216),.12);color:var(--quick-color,#7af0d8);font-size:11px;font-weight:750;letter-spacing:.4px}
.global-entry-copy{min-width:0;flex:1 1 0;overflow:hidden;display:flex;flex-direction:column;gap:3px}
.global-entry-copy b{min-width:0;font-size:11.5px;line-height:1.45;font-weight:700;color:rgba(240,250,249,.92);overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.global-entry-copy small{min-width:0;font-size:11px;line-height:1.45;color:rgba(190,215,224,.47);overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.global-entry-copy em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-style:normal;color:rgba(var(--quick-rgb,122,240,216),.58)}
.global-city-entries>button>i{flex:0 0 auto;margin-left:auto;align-self:center;font-style:normal;font-size:16px;color:rgba(var(--quick-rgb,122,240,216),.42)}
.global-aggregate-loading,.global-aggregate-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:rgba(197,221,228,.48)}
.global-aggregate-loading i{width:20px;height:20px;margin-bottom:12px;border-radius:50%;border:2px solid rgba(var(--quick-rgb,122,240,216),.16);border-top-color:var(--quick-color,#7af0d8);animation:aggregateSpin .8s linear infinite}
.global-aggregate-loading span{font-size:11px;letter-spacing:.7px}
.global-aggregate-empty b{font-size:13px;color:rgba(232,248,247,.82);margin-bottom:7px}
.global-aggregate-empty p{max-width:235px;font-size:11px;line-height:1.8}
@keyframes aggregateIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes aggregateSpin{to{transform:rotate(360deg)}}

/* ===== 全球内容目录骨架 ===== */
.mobile-portal{
  position:absolute;inset:0;z-index:24;overflow:hidden;
  background:
    radial-gradient(90% 54% at 90% 0%,rgba(72,134,179,.16),transparent 60%),
    radial-gradient(80% 60% at 0% 45%,rgba(78,194,174,.09),transparent 65%),
    linear-gradient(180deg,rgba(4,14,24,.94),rgba(3,10,18,.985));
  opacity:0;visibility:hidden;transform:translateY(18px);pointer-events:none;
  transition:opacity .42s var(--ease),transform .48s var(--ease),visibility 0s linear .48s;
}
.mobile-portal[aria-hidden="false"]{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .42s var(--ease),transform .48s var(--ease),visibility 0s}
.app.portal-open #home-ui{opacity:0;pointer-events:none}
.app.portal-open #sheet{transform:translateY(110%)!important;opacity:0;visibility:hidden;pointer-events:none}
.portal-head{position:absolute;left:0;right:0;top:0;height:86px;z-index:3;padding:40px 20px 10px;display:flex;align-items:center;gap:13px;background:linear-gradient(180deg,rgba(3,10,18,.96),rgba(3,10,18,.62),transparent)}
.portal-back{width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(140,210,235,.2);background:rgba(12,29,43,.72);color:rgba(220,242,250,.86);font-size:21px;cursor:pointer}
.portal-back{width:42px;height:42px}
.portal-head>div{display:flex;flex-direction:column;gap:2px}
.portal-head strong{font-size:16px;letter-spacing:.5px;color:rgba(239,249,252,.96)}
.portal-head span{font-size:10.5px;font-weight:700;letter-spacing:2.2px;color:rgba(122,240,216,.56)}
.portal-scroll{position:absolute;inset:78px 0 0;overflow-y:auto;padding:10px 18px calc(108px + env(safe-area-inset-bottom,0px));scrollbar-width:none;-webkit-overflow-scrolling:touch}
.portal-scroll::-webkit-scrollbar{display:none}
.portal-page[hidden]{display:none!important}
.portal-page{animation:portalPageIn .38s var(--ease) both}
@keyframes portalPageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.portal-hero{position:relative;padding:20px 20px 19px;margin-bottom:16px;border-radius:24px;overflow:hidden;border:1px solid rgba(147,214,235,.13);background:linear-gradient(145deg,rgba(20,47,61,.75),rgba(7,21,33,.88));box-shadow:0 18px 46px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.05)}
.portal-hero::after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-46px;top:-60px;background:radial-gradient(circle,rgba(122,240,216,.18),transparent 67%)}
.portal-hero>span,.directory-hero>span{display:block;margin-bottom:7px;font-size:10.5px;font-weight:750;letter-spacing:2.2px;color:rgba(122,240,216,.66)}
.portal-hero h2{position:relative;z-index:1;font-family:"Noto Serif SC","Songti SC",serif;font-size:25px;font-weight:650;letter-spacing:1px;color:#f2fbf8;margin-bottom:7px}
.portal-hero p{position:relative;z-index:1;max-width:290px;font-size:11px;line-height:1.8;color:rgba(204,226,236,.58)}
.portal-hero.small{padding-top:28px;padding-bottom:26px}
.portal-search{height:46px;display:flex;align-items:center;gap:10px;padding:0 15px;margin-bottom:22px;border:1px solid rgba(139,210,235,.14);border-radius:15px;background:rgba(8,24,36,.74);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.portal-search i{font-style:normal;font-size:21px;color:rgba(122,240,216,.58)}
.portal-search input{width:100%;border:0;outline:0;background:transparent;font-size:12px;color:rgba(231,246,250,.9)}
.portal-search input::placeholder{color:rgba(190,215,225,.38)}
.portal-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 3px 12px}
.portal-section-head strong{font-size:14px;letter-spacing:.6px;color:rgba(235,247,250,.9)}
.portal-section-head span{font-size:11px;letter-spacing:.8px;color:rgba(183,210,222,.4)}

.global-module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:25px}
.global-module{position:relative;min-height:126px;padding:17px 15px;border-radius:21px;overflow:hidden;border:1px solid color-mix(in srgb,var(--module-color) 27%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--module-color) 13%,rgba(14,32,46,.9)),rgba(5,16,26,.93));text-align:left;cursor:pointer;box-shadow:0 13px 32px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.045);transition:transform .16s var(--ease),border-color .22s}
.global-module::after{content:"";position:absolute;width:92px;height:92px;border-radius:50%;right:-36px;bottom:-42px;background:radial-gradient(circle,color-mix(in srgb,var(--module-color) 22%,transparent),transparent 67%)}
.global-module:active{transform:scale(.975);border-color:color-mix(in srgb,var(--module-color) 50%,transparent)}
.global-module-glyph{width:42px;height:42px;display:grid;place-items:center;margin-bottom:12px;border-radius:50%;font-family:"Noto Serif SC","Songti SC",serif;font-size:20px;font-weight:700;color:color-mix(in srgb,var(--module-color) 70%,white);background:color-mix(in srgb,var(--module-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--module-color) 30%,transparent);box-shadow:0 0 18px color-mix(in srgb,var(--module-color) 15%,transparent)}
.global-module b{display:block;font-size:15px;letter-spacing:1.3px;color:rgba(240,250,252,.94);margin-bottom:4px}
.global-module small{display:block;font-size:11.5px;line-height:1.55;color:rgba(193,216,226,.48)}

.global-destination-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:26px}
.destination-chip{min-height:62px;padding:10px 7px;border:1px solid rgba(142,207,231,.13);border-radius:16px;background:linear-gradient(180deg,rgba(15,34,48,.76),rgba(7,20,31,.82));text-align:center;cursor:pointer;transition:transform .15s,border-color .2s}
.destination-chip:active{transform:scale(.96);border-color:rgba(122,240,216,.35)}
.destination-chip i{display:block;width:7px;height:7px;margin:0 auto 7px;border-radius:50%;background:#7af0d8;box-shadow:0 0 10px rgba(122,240,216,.7)}
.destination-chip b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:650;color:rgba(232,246,249,.86)}
.destination-chip small{display:block;margin-top:3px;font-size:10.5px;color:rgba(184,209,220,.4)}
.global-destination-list.compact{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}

.directory-hero{position:relative;padding:22px 20px;margin-bottom:21px;border-radius:24px;border:1px solid color-mix(in srgb,var(--module-color) 25%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--module-color) 14%,rgba(14,32,46,.9)),rgba(5,15,25,.94));overflow:hidden}
.directory-hero::after{content:attr(data-glyph);position:absolute;right:18px;top:5px;font-family:"Noto Serif SC","Songti SC",serif;font-size:72px;font-weight:700;line-height:1;color:color-mix(in srgb,var(--module-color) 13%,transparent)}
.directory-hero h2{position:relative;z-index:1;font-size:26px;letter-spacing:1px;margin-bottom:7px}
.directory-hero p{position:relative;z-index:1;max-width:275px;font-size:11px;line-height:1.75;color:rgba(202,224,234,.55)}
.subcategory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:26px}
.subcategory-card{min-height:88px;padding:14px;border:1px solid rgba(150,211,232,.13);border-radius:18px;background:linear-gradient(145deg,rgba(17,37,51,.78),rgba(7,20,31,.88));text-align:left;cursor:pointer;transition:transform .15s,border-color .2s,background .2s}
.subcategory-card:last-child:nth-child(odd){grid-column:1/-1;min-height:76px}
.subcategory-card:active,.subcategory-card.selected{transform:scale(.98);border-color:color-mix(in srgb,var(--module-color) 43%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--module-color) 13%,rgba(17,37,51,.8)),rgba(7,20,31,.9))}
.subcategory-card i{font-style:normal;display:block;margin-bottom:10px;font-family:"Noto Serif SC","Songti SC",serif;font-size:17px;color:color-mix(in srgb,var(--module-color) 62%,white)}
.subcategory-card b{display:block;font-size:12px;letter-spacing:.6px;color:rgba(235,247,250,.9);margin-bottom:4px}
.subcategory-card small{display:block;font-size:11px;line-height:1.45;color:rgba(186,211,221,.42)}
.format-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.format-filter button{height:35px;padding:0 14px;border-radius:99px;border:1px solid rgba(144,208,230,.14);background:rgba(10,28,41,.7);font-size:11px;color:rgba(202,225,234,.58);cursor:pointer}
.format-filter button:active,.format-filter button.selected{border-color:color-mix(in srgb,var(--module-color) 42%,transparent);color:color-mix(in srgb,var(--module-color) 58%,white);background:color-mix(in srgb,var(--module-color) 10%,rgba(10,28,41,.8))}
.future-content-note{margin-top:14px;padding:18px;border-radius:18px;border:1px solid color-mix(in srgb,var(--module-color) 24%,transparent);background:color-mix(in srgb,var(--module-color) 7%,rgba(8,22,34,.82));animation:portalPageIn .3s var(--ease)}
.future-content-note strong{display:block;font-size:12px;color:rgba(233,247,250,.9);margin-bottom:6px}
.future-content-note p{font-size:11px;line-height:1.7;color:rgba(192,216,226,.48)}

.portal-empty{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px;border:1px dashed rgba(145,207,228,.16);border-radius:23px;background:rgba(8,22,33,.36)}
.portal-empty i{width:72px;height:72px;display:grid;place-items:center;margin-bottom:18px;border-radius:50%;font-style:normal;font-size:29px;color:rgba(122,240,216,.7);border:1px solid rgba(122,240,216,.2);background:radial-gradient(circle,rgba(122,240,216,.12),transparent 68%)}
.portal-empty strong{font-size:14px;letter-spacing:.8px;margin-bottom:8px}
.portal-empty p{max-width:240px;font-size:11.5px;line-height:1.75;color:rgba(192,216,226,.45)}
/* ===== 我的 · 正式账号入口 ===== */
.profile-auth-page{position:relative;min-height:calc(100dvh - 198px);padding-bottom:8px}
.profile-auth-page::before{content:"";position:absolute;z-index:-1;top:-90px;left:50%;width:330px;height:330px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(93,203,190,.095),rgba(88,144,194,.035) 46%,transparent 72%);pointer-events:none}
.profile-auth-view{width:100%;max-width:430px;margin:0 auto}
.auth-welcome{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3px 15px 21px}
.auth-emblem{position:relative;width:66px;height:66px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;border:1px solid rgba(153,224,214,.3);background:radial-gradient(circle at 38% 30%,rgba(196,245,232,.18),rgba(17,47,56,.7) 44%,rgba(3,13,23,.9) 75%);box-shadow:0 0 0 7px rgba(121,221,205,.025),0 14px 42px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.12)}
.auth-emblem::before,.auth-emblem::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(132,217,213,.16);transform:rotate(-28deg)}
.auth-emblem::before{inset:-6px 9px}.auth-emblem::after{inset:9px -6px;transform:rotate(32deg)}
.auth-emblem>i{position:absolute;left:8px;top:14px;width:7px;height:7px;border-radius:50%;background:#dfbd78;box-shadow:0 0 12px rgba(223,189,120,.75)}
.auth-emblem>span{font-family:"Times New Roman","Noto Serif SC",serif;font-size:31px;font-weight:400;color:#effcf8;line-height:1;text-shadow:0 0 18px rgba(129,235,217,.3)}
.auth-emblem>b{position:absolute;right:8px;bottom:12px;width:4px;height:4px;border-radius:50%;background:#7de8d7;box-shadow:0 0 10px rgba(125,232,215,.8)}
.auth-overline{margin-bottom:8px;font-size:11px;font-weight:760;letter-spacing:2.5px;color:rgba(134,228,211,.63)}
.auth-welcome h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:29px;font-weight:600;letter-spacing:2px;color:#f1faf8;text-shadow:0 8px 26px rgba(0,0,0,.35)}
.auth-welcome p{max-width:285px;margin-top:8px;font-size:11.5px;line-height:1.75;color:rgba(197,220,228,.52)}
.auth-card{position:relative;padding:8px 16px 16px;border:1px solid rgba(157,214,226,.16);border-radius:26px;overflow:hidden;background:linear-gradient(150deg,rgba(18,42,54,.88),rgba(5,19,30,.93) 58%,rgba(8,23,34,.96));box-shadow:0 26px 66px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.055)}
.auth-card::before{content:"";position:absolute;top:-80px;right:-65px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(121,229,210,.13),transparent 68%);pointer-events:none}
.auth-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;height:48px;margin:0 0 17px;border-bottom:1px solid rgba(153,211,223,.1)}
.auth-tabs button{position:relative;border:0;background:transparent;font-size:11px;font-weight:640;letter-spacing:.8px;color:rgba(192,216,225,.42);cursor:pointer;transition:color .25s ease}
.auth-tabs button::after{content:"";position:absolute;left:30%;right:30%;bottom:-1px;height:2px;border-radius:3px;background:#80ead8;box-shadow:0 0 12px rgba(128,234,216,.45);transform:scaleX(0);transition:transform .28s var(--ease)}
.auth-tabs button.active{color:#e9fbf7}.auth-tabs button.active::after{transform:scaleX(1)}
.auth-form{position:relative;display:grid;gap:12px}
.auth-field{display:grid;gap:7px}.auth-field[hidden]{display:none!important}
.auth-field>span{padding-left:2px;font-size:11px;font-weight:630;letter-spacing:.65px;color:rgba(207,229,235,.66)}
.auth-field>span small{margin-left:4px;font-size:11px;font-weight:400;color:rgba(190,215,223,.35)}
.auth-field>input,.auth-password-field>div{height:49px;border:1px solid rgba(147,207,220,.15);border-radius:15px;background:rgba(2,13,23,.46);box-shadow:inset 0 1px 0 rgba(255,255,255,.022);transition:border-color .25s,background .25s,box-shadow .25s}
.auth-field>input,.auth-password-field input{width:100%;padding:0 14px;border:0;outline:0;background:transparent;font:inherit;font-size:12px;color:rgba(237,249,250,.94);caret-color:#85eadb}
.auth-field>input::placeholder,.auth-password-field input::placeholder{color:rgba(178,205,215,.27)}
.auth-field>input:focus,.auth-password-field>div:focus-within{border-color:rgba(126,232,215,.48);background:rgba(7,28,38,.67);box-shadow:0 0 0 3px rgba(126,232,215,.055),inset 0 1px 0 rgba(255,255,255,.035)}
.auth-password-field>div{display:flex;align-items:center;padding-right:5px}
.auth-password-field input{min-width:0;height:100%}
.auth-password-field button{height:36px;min-width:47px;padding:0 8px;border:0;border-radius:11px;background:rgba(126,226,211,.07);font-size:11px;color:rgba(155,229,219,.67);cursor:pointer}
.auth-consent{position:relative;display:flex;align-items:flex-start;gap:8px;margin:1px 1px 0;cursor:pointer}
.auth-consent input{position:absolute;opacity:0;pointer-events:none}
.auth-consent>i{width:15px;height:15px;flex:0 0 auto;margin-top:1px;border:1px solid rgba(152,211,221,.28);border-radius:5px;background:rgba(5,18,28,.6);transition:.2s ease}
.auth-consent input:checked+i{border-color:rgba(126,234,216,.72);background:#73d8c8;box-shadow:0 0 12px rgba(115,216,200,.2)}
.auth-consent input:checked+i::after{content:"";display:block;width:7px;height:4px;margin:3px 0 0 3px;border-left:1.5px solid #06221f;border-bottom:1.5px solid #06221f;transform:rotate(-45deg)}
.auth-consent>span{font-size:11px;line-height:1.65;color:rgba(183,208,217,.43)}
.auth-message{min-height:0;margin-top:-2px;font-size:11px;line-height:1.45;color:rgba(245,153,153,.92);transition:.2s}
.auth-message:empty{display:none}.auth-message.success{color:#83e6d4}
.auth-submit{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 19px;border:1px solid rgba(143,241,224,.62);border-radius:16px;background:linear-gradient(135deg,rgba(93,199,184,.94),rgba(50,142,153,.93));box-shadow:0 14px 28px rgba(48,145,150,.18),inset 0 1px 0 rgba(255,255,255,.28);font-size:12px;font-weight:700;letter-spacing:1px;color:#061c21;cursor:pointer;transition:transform .18s ease,filter .2s ease,opacity .2s}
.auth-submit:active{transform:scale(.985)}.auth-submit:disabled{opacity:.58;cursor:wait;filter:saturate(.55)}
.auth-submit>i{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:15px;background:rgba(3,27,31,.12)}
.auth-divider{height:31px;display:flex;align-items:center;gap:10px;color:rgba(184,211,219,.27)}
.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:rgba(150,208,220,.1)}
.auth-divider span{font-size:11px;letter-spacing:1.8px}
.auth-guest{width:100%;height:42px;border:1px solid rgba(146,205,219,.13);border-radius:14px;background:rgba(6,22,32,.42);font-size:11.5px;letter-spacing:.45px;color:rgba(201,224,230,.59);cursor:pointer}
.auth-footnote{max-width:280px;margin:13px auto 0;text-align:center;font-size:11px;line-height:1.6;color:rgba(177,204,214,.29)}

/* 账号密码登录表单 */
.auth-login-form{display:flex;flex-direction:column;gap:12px;padding:18px 6px 8px}
.auth-input{width:100%;height:48px;padding:0 16px;border:1px solid rgba(146,205,219,.2);border-radius:14px;background:rgba(6,22,32,.55);font-size:15px;letter-spacing:.5px;color:#e9fbf7;outline:none;transition:border-color .2s,box-shadow .2s}
.auth-input::placeholder{color:rgba(177,204,214,.32)}
.auth-input:focus{border-color:rgba(121,229,210,.5);box-shadow:0 0 0 3px rgba(121,229,210,.08)}
.auth-login-btn{height:50px;border:0;border-radius:16px;background:linear-gradient(135deg,rgba(121,229,210,.85),rgba(79,209,197,.8));box-shadow:0 14px 28px rgba(10,80,75,.25),inset 0 1px 0 rgba(255,255,255,.2);font-size:14px;font-weight:700;letter-spacing:2px;color:#062c28;cursor:pointer;transition:transform .18s ease,filter .2s ease}
.auth-login-btn:active{transform:scale(.985)}
.auth-login-btn:disabled{opacity:.6;cursor:wait}
.auth-login-msg{font-size:11.5px;text-align:center;min-height:16px;color:rgba(235,110,110,.75);letter-spacing:.3px}
.auth-login-msg.success{color:rgba(121,229,210,.75)}

.profile-signed-view{width:100%;max-width:430px;margin:0 auto}
.signed-hero{position:relative;padding:25px 21px 22px;margin-bottom:12px;border:1px solid rgba(150,217,224,.16);border-radius:25px;overflow:hidden;background:linear-gradient(145deg,rgba(28,60,66,.8),rgba(8,24,35,.93) 58%,rgba(13,24,37,.95));box-shadow:0 20px 48px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06)}
.signed-hero::after{content:"";position:absolute;right:-38px;top:-53px;width:155px;height:155px;border-radius:50%;background:radial-gradient(circle,rgba(119,231,211,.15),transparent 67%)}
.signed-kicker{display:block;margin-bottom:18px;font-size:11px;font-weight:720;letter-spacing:2.3px;color:rgba(128,231,211,.56)}
.signed-identity{position:relative;z-index:1;display:flex;align-items:center;gap:13px;margin-bottom:15px}
.signed-avatar{width:55px;height:55px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(145,234,218,.4);border-radius:50%;font-family:"Noto Serif SC","Songti SC",serif;font-size:24px;color:#e9fbf7;background:radial-gradient(circle at 35% 30%,rgba(153,240,222,.24),rgba(17,65,67,.6) 48%,rgba(5,26,36,.85));box-shadow:0 10px 28px rgba(0,0,0,.28),0 0 0 5px rgba(127,225,209,.03)}
.signed-identity h2{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"Noto Serif SC","Songti SC",serif;font-size:20px;font-weight:600;letter-spacing:1px;color:#f0faf8}
.signed-identity p{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;color:rgba(191,218,225,.45)}
.signed-scope{display:inline-flex;margin-top:7px;padding:3px 8px;border:1px solid rgba(128,231,211,.22);border-radius:4px;font-size:10px;color:rgba(164,236,220,.78);background:rgba(23,79,73,.22)}

.art-preview-status{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;margin:0 0 16px;padding:9px 11px;border:1px solid rgba(242,202,133,.2);border-radius:6px;color:rgba(248,221,170,.78);background:rgba(10,31,36,.88);backdrop-filter:blur(10px);font-size:11px}
.art-preview-status b{font-weight:650;color:#f4d49b}
.art-preview-lock{display:none;min-height:180px;place-content:center;justify-items:center;gap:10px;text-align:center}
.art-preview-lock strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:20px;color:#eff9f5}
.art-preview-lock span{font-size:12px;color:rgba(198,222,216,.55)}
.art-preview-lock button{margin-top:8px;padding:10px 18px;border:1px solid rgba(127,225,209,.28);border-radius:6px;background:rgba(21,73,67,.36);color:#c9eee5}
.guest-preview-expired .art-prose,.guest-preview-expired .article-foot{display:none}
.guest-preview-expired .art-preview-lock{display:grid}
.signed-hero>p{position:relative;z-index:1;max-width:290px;font-size:11.5px;line-height:1.75;color:rgba(195,219,226,.48)}
.signed-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:12px;border:1px solid rgba(147,208,220,.13);border-radius:19px;background:rgba(8,25,36,.64);overflow:hidden}
.signed-stats>div{height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid rgba(147,208,220,.1)}.signed-stats>div:last-child{border-right:0}
.signed-stats b{font-size:16px;color:rgba(237,249,250,.9)}.signed-stats span{margin-top:5px;font-size:10.5px;color:rgba(185,211,220,.4)}
.signed-menu{display:grid;gap:8px;margin-bottom:16px}
.signed-menu button{min-height:63px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:11px;padding:10px 13px;border:1px solid rgba(145,207,228,.13);border-radius:17px;background:linear-gradient(145deg,rgba(15,36,48,.74),rgba(7,21,32,.84));text-align:left;color:inherit;cursor:pointer}
.signed-menu button>i{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;font-style:normal;color:#82e4d4;background:rgba(122,240,216,.075)}
.signed-menu button>span{display:flex;flex-direction:column;gap:4px}.signed-menu button b{font-size:11px;color:rgba(234,247,249,.86)}.signed-menu button small{font-size:10.5px;color:rgba(190,214,224,.39)}.signed-menu button em{font-style:normal;font-size:16px;color:rgba(190,214,224,.3)}
.auth-logout{width:100%;height:43px;border:1px solid rgba(223,169,169,.15);border-radius:14px;background:rgba(75,35,42,.12);font-size:11.5px;color:rgba(225,181,184,.57);cursor:pointer}

@media(max-width:360px){
  .global-module{min-height:116px;padding:15px 13px}.global-module-grid{gap:8px}
  .global-destination-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-scroll{padding-left:15px;padding-right:15px}
  .auth-welcome{padding-bottom:17px}.auth-emblem{width:59px;height:59px;margin-bottom:12px}.auth-welcome h2{font-size:26px}
  .auth-card{padding-left:13px;padding-right:13px;border-radius:23px}.auth-tabs{margin-bottom:14px}
}

/* ===== 中国地图 · 双层等权城市导航 ===== */
.cn-city-console{
  position:absolute;left:14px;right:14px;bottom:calc(12px + env(safe-area-inset-bottom,0px));
  padding:11px 11px 12px;border:1px solid rgba(255,224,173,.44);border-radius:26px;pointer-events:auto;overflow:hidden;
  background:linear-gradient(145deg,rgba(25,35,42,.91) 0%,rgba(6,18,29,.96) 34%,rgba(3,12,21,.97) 100%);
  box-shadow:0 30px 80px rgba(0,0,0,.66),inset 0 1px 0 rgba(255,244,218,.12),inset 0 -1px 0 rgba(255,203,119,.08),0 0 0 1px rgba(255,205,132,.035);
  -webkit-backdrop-filter:blur(26px) saturate(1.2);backdrop-filter:blur(26px) saturate(1.2);
}
.cn-city-console::before{content:"";position:absolute;left:-12%;top:-42px;width:70%;height:92px;background:radial-gradient(ellipse,rgba(255,218,159,.14),transparent 68%);pointer-events:none}
.cn-city-action{position:relative;height:59px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:1px 4px 11px;border-bottom:1px solid rgba(255,221,169,.13)}
.cn-city-console .cn-caption-count{min-width:48px;font-size:13.5px;font-weight:500;letter-spacing:1.1px;color:rgba(255,235,201,.9);font-variant-numeric:tabular-nums;white-space:nowrap}
.cn-city-current{min-width:0;display:flex;flex-direction:column;gap:2px}
.cn-city-current strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,250,239,.98);font-size:14px;font-weight:600;letter-spacing:.55px;text-shadow:0 5px 20px rgba(0,0,0,.7)}
.cn-city-current p{display:none}
.cn-city-current strong.flash{animation:cnTitleFlash .72s var(--ease)}
.cn-city-console .cn-start{margin:0;width:78px;height:40px;padding:0 11px 0 16px;border-radius:999px;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(255,220,157,.72);background:linear-gradient(180deg,rgba(153,111,51,.3),rgba(56,37,13,.45));color:rgba(255,239,202,.98);font-size:12px;font-weight:650;letter-spacing:1.5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 8px 25px rgba(240,183,86,.12);cursor:pointer}
.cn-city-console .cn-start b{font-size:19px;font-weight:400;color:var(--gold);line-height:1}
.cn-city-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:10px;padding:0;border:1px solid rgba(146,183,198,.28);border-radius:15px;overflow:hidden;background:rgba(4,15,24,.58)}
.cn-city-tab{position:relative;min-width:0;height:103px;padding:8px 2px 9px;border:0;border-right:1px solid rgba(146,183,198,.22);border-radius:0;background:linear-gradient(180deg,rgba(20,36,47,.76),rgba(5,17,27,.9));display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;color:rgba(190,208,216,.63);cursor:pointer;overflow:hidden;transition:background .28s ease,color .28s ease,box-shadow .28s ease,transform .2s ease}
.cn-city-tab:last-child{border-right:0}
.cn-city-tab::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 32%,rgba(255,211,126,.15),transparent 64%);opacity:0;transition:opacity .3s ease}
.cn-city-tab-art{position:relative;width:100%;height:58px;display:grid;place-items:center;color:rgba(156,182,194,.55);filter:drop-shadow(0 4px 9px rgba(0,0,0,.55));transition:color .28s ease,filter .28s ease}
.cn-city-tab-art svg{width:94%;height:54px;fill:none;stroke:currentColor;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round}
.cn-city-tab-label{position:relative;max-width:100%;font-size:11.5px;font-weight:500;line-height:1.1;white-space:nowrap;letter-spacing:.1px;color:inherit}
.cn-city-tab.active{z-index:2;color:rgba(255,238,202,.98);background:linear-gradient(180deg,rgba(48,45,37,.65),rgba(12,25,33,.95));box-shadow:inset 0 0 0 1.5px rgba(255,218,145,.9),inset 0 -20px 28px rgba(177,116,27,.07),0 0 22px rgba(255,193,87,.12)}
.cn-city-tab.active::before{opacity:1}
.cn-city-tab.active .cn-city-tab-art{color:rgba(210,224,224,.72);filter:drop-shadow(0 5px 13px rgba(255,200,105,.14))}
.cn-city-tab.active::after{content:"";position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:#ffd77f;box-shadow:0 0 10px rgba(255,215,127,.92)}
.cn-city-tab.active .cn-city-tab-label{transform:translateY(-6px)}
.cn-city-tab:active{transform:scale(.96)}
@media(max-width:360px){
  .cn-city-console{left:10px;right:10px;padding:10px 10px 11px}
  .cn-city-action{height:56px;gap:8px}
  .cn-city-console .cn-caption-count{min-width:47px;font-size:12.5px}
  .cn-city-current strong{font-size:13px}
  .cn-city-console .cn-start{width:72px;height:38px;padding-left:14px}
  .cn-city-tab{height:96px}
  .cn-city-tab-art{height:52px}
  .cn-city-tab-art svg{height:49px}
  .cn-city-tab-label{font-size:11px}
}

/* ===== 四大板块 · 高级竖向子目录 ===== */
.global-quick-menu{
  left:12px;right:12px;bottom:92px;padding:15px 14px 14px;border-radius:28px;
  border-color:rgba(var(--quick-rgb,122,240,216),.26);
  background:linear-gradient(150deg,rgba(15,32,42,.96),rgba(4,15,25,.975) 52%,rgba(2,10,18,.985));
  box-shadow:0 28px 78px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.075),0 0 0 1px rgba(var(--quick-rgb,122,240,216),.035);
  -webkit-backdrop-filter:blur(24px) saturate(1.14);backdrop-filter:blur(24px) saturate(1.14);
}
.global-quick-menu::before{content:"";position:absolute;left:7%;right:7%;top:-42px;height:80px;background:radial-gradient(ellipse,rgba(var(--quick-rgb,122,240,216),.14),transparent 68%);pointer-events:none}
.global-quick-title{position:relative;padding:0 3px 12px}
.global-quick-title strong{font-size:13px;font-weight:650;letter-spacing:1px}
.global-quick-title span{font-size:10.5px;letter-spacing:1.5px}
.global-quick-grid{gap:7px}
.global-quick-grid button{height:70px;border-radius:18px;border-color:rgba(147,214,235,.15);background:linear-gradient(160deg,rgba(22,42,53,.74),rgba(8,23,34,.84));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.global-quick-grid button.selected{border-color:var(--quick-color,#7af0d8);box-shadow:0 10px 30px rgba(var(--quick-rgb,122,240,216),.13),inset 0 0 0 1px rgba(var(--quick-rgb,122,240,216),.16);transform:translateY(-2px)}
.global-quick-grid i{width:34px;height:34px;font-size:17px}
.global-quick-grid span{font-size:11.5px;letter-spacing:.7px}
.global-quick-submenu[aria-hidden="false"]{max-height:416px;margin-top:14px;padding-top:12px;border-top-color:rgba(var(--quick-rgb,122,240,216),.14)}
.global-quick-subhead{padding:0 3px 10px}
.global-quick-subhead strong{font-size:12px;letter-spacing:.9px;color:rgba(245,251,249,.92)}
.global-quick-subhead span{font-size:11px;letter-spacing:1px;color:rgba(190,217,225,.44)}
.global-quick-sublist{gap:8px;max-height:374px;padding:0 2px 4px}
.global-quick-sublist button{
  height:68px;padding:0 11px 0 9px;border-radius:17px;
  display:grid;grid-template-columns:27px 36px minmax(0,1fr) 18px;align-items:center;gap:9px;
  border-color:rgba(var(--quick-rgb,122,240,216),.18);
  background:linear-gradient(100deg,rgba(var(--quick-rgb,122,240,216),.105),rgba(8,23,34,.86) 54%,rgba(5,17,27,.94));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 8px 24px rgba(0,0,0,.14);overflow:hidden;
}
.global-quick-sublist button::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(var(--quick-rgb,122,240,216),.045),transparent);transform:translateX(-100%);transition:transform .45s var(--ease)}
.global-quick-sublist button:active::before{transform:translateX(100%)}
.global-quick-sublist .quick-sub-index{display:block;min-width:0;font-size:11px;font-weight:650;letter-spacing:.8px;color:rgba(var(--quick-rgb,122,240,216),.5);font-variant-numeric:tabular-nums}
.global-quick-sublist i{width:35px;height:35px;border-radius:12px;font-size:14px;border:1px solid rgba(var(--quick-rgb,122,240,216),.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
.global-quick-sublist .quick-sub-copy{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:6px;row-gap:3px;line-height:1.2}
.global-quick-sublist .quick-sub-copy b{grid-column:1;font-size:11px;font-weight:650;letter-spacing:.45px;color:rgba(244,250,249,.94)}
.global-quick-sublist .quick-sub-copy .quick-sub-desc{grid-column:1;display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:rgba(195,218,226,.48)}
.global-quick-sublist .quick-sub-copy .quick-sub-meta{grid-column:2;grid-row:1/3;align-self:center;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:rgba(var(--quick-rgb,122,240,216),.55)}
.global-quick-sublist button>em{margin-left:0;font-size:18px;color:rgba(var(--quick-rgb,122,240,216),.48)}

.directory-hero{min-height:154px;padding:27px 22px 23px;margin-bottom:24px;border-radius:28px;border-color:color-mix(in srgb,var(--module-color) 34%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--module-color) 17%,rgba(18,37,48,.93)),rgba(5,16,26,.97) 66%);box-shadow:0 22px 54px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.065)}
.directory-hero::before{content:"";position:absolute;right:20px;top:22px;width:76px;height:76px;border:1px solid color-mix(in srgb,var(--module-color) 22%,transparent);border-radius:50%;box-shadow:0 0 40px color-mix(in srgb,var(--module-color) 10%,transparent)}
.directory-hero::after{right:33px;top:27px;font-size:58px;color:color-mix(in srgb,var(--module-color) 28%,transparent)}
.directory-hero>span{margin-bottom:11px;font-size:11px;letter-spacing:2.5px;color:color-mix(in srgb,var(--module-color) 64%,white)}
.directory-hero h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:30px;font-weight:600;letter-spacing:2px;margin-bottom:10px;color:rgba(247,251,247,.97)}
.directory-hero p{max-width:235px;font-size:11px;line-height:1.85;color:rgba(205,226,234,.6)}
.subcategory-grid{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:28px}
.subcategory-card,.subcategory-card:last-child:nth-child(odd){position:relative;min-height:78px;padding:10px 13px 10px 10px;border-radius:19px;display:grid;grid-template-columns:31px 42px minmax(0,1fr) 20px;align-items:center;gap:9px;overflow:hidden;border:1px solid color-mix(in srgb,var(--module-color) 17%,rgba(145,207,228,.11));background:linear-gradient(105deg,color-mix(in srgb,var(--module-color) 8%,rgba(17,37,49,.9)),rgba(6,19,30,.94));box-shadow:0 10px 28px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.035)}
.subcategory-card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:99px;background:var(--module-color);opacity:.22;box-shadow:0 0 14px var(--module-color)}
.subcategory-card:active,.subcategory-card.selected{transform:none;border-color:color-mix(in srgb,var(--module-color) 48%,transparent);background:linear-gradient(105deg,color-mix(in srgb,var(--module-color) 15%,rgba(17,37,49,.92)),rgba(6,19,30,.96));box-shadow:0 12px 34px rgba(0,0,0,.24),inset 0 0 0 1px color-mix(in srgb,var(--module-color) 10%,transparent)}
.subcategory-card.selected::before{opacity:.9}
.subcategory-card .subcategory-index{font-size:11px;font-weight:650;letter-spacing:.8px;color:color-mix(in srgb,var(--module-color) 52%,rgba(196,218,226,.45));font-variant-numeric:tabular-nums}
.subcategory-card>i{width:41px;height:41px;margin:0;border-radius:13px;display:grid;place-items:center;font-size:16px;color:color-mix(in srgb,var(--module-color) 68%,white);border:1px solid color-mix(in srgb,var(--module-color) 24%,transparent);background:color-mix(in srgb,var(--module-color) 9%,rgba(7,21,32,.75));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.subcategory-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
.subcategory-card .subcategory-copy b{margin:0;font-size:12px;font-weight:650;letter-spacing:.65px;color:rgba(240,249,249,.94)}
.subcategory-card .subcategory-copy small{font-size:11px;line-height:1.45;color:rgba(193,216,225,.47);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subcategory-card>em{font-style:normal;font-size:19px;color:color-mix(in srgb,var(--module-color) 48%,rgba(196,218,226,.4))}
.format-filter{gap:7px;margin-bottom:21px;padding:6px;border:1px solid rgba(144,208,230,.11);border-radius:17px;background:rgba(6,19,30,.54)}
.format-filter button{flex:1;min-width:52px;height:37px;padding:0 8px;border:0;border-radius:12px;background:transparent}
.format-filter button:active,.format-filter button.selected{border:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--module-color) 28%,transparent);background:color-mix(in srgb,var(--module-color) 12%,rgba(10,28,41,.82))}
@media(max-height:720px){
  .global-quick-menu{bottom:86px}
  .global-quick-submenu[aria-hidden="false"]{max-height:278px}
  .global-quick-sublist{max-height:232px}
  .global-quick-sublist button{height:62px}
}
@media(max-width:360px){
  .global-quick-menu{left:9px;right:9px;padding-left:11px;padding-right:11px}
  .global-quick-sublist button{grid-template-columns:24px 34px minmax(0,1fr) 15px;gap:7px}
  .global-quick-sublist .quick-sub-copy .quick-sub-meta{max-width:68px}
  .directory-hero{padding-left:19px;padding-right:19px}
  .subcategory-card,.subcategory-card:last-child:nth-child(odd){grid-template-columns:27px 39px minmax(0,1fr) 17px;gap:7px}
}

/* 独立板块入口：进入温心后不再展示锻体、寻味、觅方切换器 */
.global-quick-title{min-height:50px;display:flex;align-items:center;justify-content:flex-start;gap:11px;padding:0 2px 12px}
.global-quick-heading{min-width:0;flex:1;display:flex;align-items:center;gap:11px}
.global-quick-heading>i{width:42px;height:42px;flex:0 0 auto;border-radius:14px;display:grid;place-items:center;font-style:normal;font-family:"Noto Serif SC","Songti SC",serif;font-size:19px;color:color-mix(in srgb,var(--quick-color) 66%,white);border:1px solid rgba(var(--quick-rgb,122,240,216),.28);background:rgba(var(--quick-rgb,122,240,216),.12);box-shadow:0 0 24px rgba(var(--quick-rgb,122,240,216),.13),inset 0 1px 0 rgba(255,255,255,.06)}
.global-quick-heading>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.global-quick-heading strong{font-size:16px;font-weight:650;letter-spacing:1.2px;color:rgba(246,251,249,.96)}
.global-quick-heading span{font-size:10.5px;letter-spacing:1px;color:rgba(var(--quick-rgb,122,240,216),.55);white-space:nowrap}
.global-quick-title>button{width:36px;height:36px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(148,207,226,.2);background:rgba(8,24,35,.76);color:rgba(224,241,245,.82);font-size:25px;font-weight:300;line-height:1;cursor:pointer}
.global-quick-title>button{width:40px;height:40px}
.global-quick-title>button:active{transform:scale(.92);border-color:rgba(var(--quick-rgb,122,240,216),.36);color:#fff}
.global-quick-menu.category-mode>.global-quick-grid{display:none}
.global-quick-menu.category-mode .global-quick-submenu[aria-hidden="false"]{margin-top:0;padding-top:12px}

/* ===== 城市四大板块 · 编辑式内容流 ===== */
.catalog-stream{background:transparent;border:0;overflow:visible}
.catalog-entry-list{display:block;min-width:0}
.catalog-feature{position:relative;width:100%;height:226px;margin:0 0 22px;padding:0;border:1px solid color-mix(in srgb,var(--cat) 34%,rgba(163,205,225,.18));border-radius:24px;overflow:hidden;display:block;background:#071421;color:inherit;text-align:left;box-shadow:0 24px 58px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.08);cursor:default}
button.catalog-feature{cursor:pointer}
.catalog-feature:active{transform:scale(.988)}
.catalog-feature::after{content:"";position:absolute;inset:32% 0 0;z-index:2;background:linear-gradient(180deg,transparent,rgba(3,10,18,.42) 28%,rgba(3,9,16,.94));pointer-events:none}
.catalog-feature-visual{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:
  radial-gradient(circle at 76% 18%,color-mix(in srgb,var(--cat) 34%,rgba(255,239,218,.2)),transparent 23%),
  linear-gradient(158deg,color-mix(in srgb,var(--cat) 16%,#18324a),#071522 54%,#020810)}
.catalog-feature-visual::before,.catalog-card-visual::before{content:"";position:absolute;left:-8%;right:-8%;bottom:-2%;height:64%;opacity:.72;background:linear-gradient(180deg,color-mix(in srgb,var(--cat) 24%,#203b4b),#06121d);clip-path:polygon(0 70%,8% 49%,16% 61%,25% 31%,34% 62%,43% 43%,51% 72%,60% 36%,68% 58%,77% 25%,86% 57%,94% 39%,100% 66%,100% 100%,0 100%)}
.catalog-feature-visual::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 78%,rgba(176,214,226,.13),transparent 42%),linear-gradient(180deg,rgba(1,7,14,.08),rgba(1,7,14,.3));pointer-events:none}
.catalog-feature-visual img,.catalog-card-visual img,.catalog-feature-visual video,.catalog-card-visual video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:#061019}
.catalog-video-preview{pointer-events:none}
.catalog-feature-visual>b{position:relative;z-index:3;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:20px;font-weight:500;color:#fff3e9;border:1px solid color-mix(in srgb,var(--cat) 58%,white);background:rgba(5,15,25,.56);box-shadow:0 0 0 8px rgba(5,15,25,.15),0 8px 28px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.catalog-feature.kind-course .catalog-feature-visual>b,.catalog-feature.kind-reading .catalog-feature-visual>b{font-family:"Noto Serif SC","Songti SC",serif}
.catalog-feature-copy{position:absolute;z-index:4;left:20px;right:20px;bottom:17px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-shadow:0 3px 14px rgba(0,0,0,.72)}
.catalog-feature-copy>small{font-size:10.5px;font-weight:700;letter-spacing:1.8px;color:color-mix(in srgb,var(--cat) 76%,white)}
.catalog-feature-copy>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;font-weight:600;letter-spacing:.7px;color:rgba(255,250,244,.98)}
.catalog-feature-copy>span{max-width:88%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:rgba(218,231,235,.65)}
.catalog-feature-copy>em{margin-top:3px;font-size:11px;font-style:normal;letter-spacing:1px;color:color-mix(in srgb,var(--cat) 68%,#ffe7ca)}
.catalog-feed-head{display:flex;align-items:center;justify-content:space-between;margin:0 3px 11px;padding-bottom:10px;border-bottom:1px solid rgba(169,217,238,.1)}
.catalog-feed-head strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:16px;font-weight:600;letter-spacing:1px;color:rgba(240,248,248,.94)}
.catalog-feed-head span{font-size:10.5px;letter-spacing:1px;color:color-mix(in srgb,var(--cat) 55%,rgba(187,211,221,.45))}
.catalog-feed{display:grid;gap:10px}
.catalog-card{position:relative;width:100%;min-height:104px;padding:9px 11px 9px 10px;display:grid;grid-template-columns:35px 82px minmax(0,1fr) 20px;align-items:center;gap:9px;border:1px solid rgba(157,202,220,.14);border-radius:20px;background:linear-gradient(110deg,color-mix(in srgb,var(--cat) 8%,rgba(16,34,47,.92)),rgba(5,17,27,.95));color:inherit;text-align:left;box-shadow:0 13px 32px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.035);overflow:hidden}
button.catalog-card{cursor:pointer}
.catalog-card::before{content:"";position:absolute;left:0;top:17px;bottom:17px;width:2px;border-radius:99px;background:var(--cat);opacity:.32;box-shadow:0 0 13px var(--cat)}
.catalog-card:active{transform:scale(.985);border-color:color-mix(in srgb,var(--cat) 38%,transparent)}
.catalog-card-no{font-family:"Noto Serif SC","Songti SC",serif;font-size:15px;letter-spacing:1px;text-align:center;color:color-mix(in srgb,var(--cat) 55%,rgba(214,231,235,.55));font-variant-numeric:tabular-nums}
.catalog-card-visual{position:relative;width:82px;height:82px;border-radius:16px;display:grid;place-items:center;overflow:hidden;color:color-mix(in srgb,var(--cat) 68%,white);background:linear-gradient(145deg,color-mix(in srgb,var(--cat) 17%,#173044),#071521 72%);border:1px solid color-mix(in srgb,var(--cat) 18%,rgba(159,205,223,.12))}
.catalog-card-visual::before{height:58%;opacity:.58}
.catalog-card-visual>b{position:relative;z-index:2;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;border:1px solid rgba(236,246,246,.36);background:rgba(4,14,23,.42);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.catalog-card-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.catalog-card-copy>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;line-height:1.4;color:rgba(241,249,249,.94)}
.catalog-card-copy>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;color:rgba(193,216,224,.45)}
.catalog-card-copy>em{font-size:10.5px;font-style:normal;letter-spacing:.5px;color:color-mix(in srgb,var(--cat) 62%,rgba(194,219,226,.55))}
.catalog-card>i{font-style:normal;font-size:15px;color:color-mix(in srgb,var(--cat) 62%,rgba(197,220,228,.5));text-align:center}
.catalog-wave{position:relative;z-index:2;height:34px;display:flex;align-items:center;gap:2px}
.catalog-wave i{display:block;width:2px;border-radius:99px;background:currentColor;opacity:.76}
.catalog-wave i:nth-child(1),.catalog-wave i:nth-child(7){height:8px}.catalog-wave i:nth-child(2),.catalog-wave i:nth-child(6){height:18px}.catalog-wave i:nth-child(3),.catalog-wave i:nth-child(5){height:27px}.catalog-wave i:nth-child(4){height:34px}
.catalog-card.kind-sound .catalog-card-visual>b,.catalog-feature.kind-sound .catalog-feature-visual>b{display:none}
.catalog-folder-feature .catalog-feature-visual>b,.catalog-folder-card .catalog-card-visual>b{display:grid!important;font-family:"Noto Serif SC","Songti SC",serif}
.catalog-folder-feature .catalog-feature-copy>small{letter-spacing:2px}
.catalog-folder-card .catalog-folder-visual{background:linear-gradient(145deg,color-mix(in srgb,var(--cat) 16%,#20364b),#091622 76%)}
.catalog-folder-card .catalog-folder-visual::after{content:"";position:absolute;left:20px;top:24px;width:39px;height:29px;border:1px solid color-mix(in srgb,var(--cat) 35%,rgba(230,242,242,.48));border-radius:5px;background:rgba(5,16,25,.36)}
.catalog-folder-card .catalog-folder-visual::before{left:24px;right:auto;top:19px;bottom:auto;width:17px;height:7px;border:1px solid color-mix(in srgb,var(--cat) 35%,rgba(230,242,242,.48));border-bottom:0;border-radius:4px 4px 0 0;clip-path:none;background:rgba(5,16,25,.36);opacity:1}
.catalog-folder-card .catalog-folder-visual>b{z-index:3;width:27px;height:27px;border:0;background:transparent;color:color-mix(in srgb,var(--cat) 64%,white);font-size:0}
.catalog-folder-detail{animation:catalog-folder-in .24s ease-out both}
.catalog-content-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 2px 20px;padding:0 2px 14px;border-bottom:1px solid rgba(157,202,220,.12)}
.catalog-content-toolbar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:"Noto Serif SC","Songti SC",serif;font-size:18px;font-weight:600;color:rgba(248,250,247,.94)}
.catalog-content-toolbar em{font-style:normal;font-size:10.5px;color:color-mix(in srgb,var(--cat) 57%,rgba(194,219,226,.55));white-space:nowrap}
.catalog-folder-back{height:38px;margin:0 0 18px;padding:0 14px 0 11px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(157,202,220,.17);border-radius:999px;background:rgba(7,21,32,.68);color:rgba(220,237,242,.78);font-size:20px;cursor:pointer}
.catalog-folder-back span{font-size:11px;letter-spacing:.7px}
.catalog-folder-detail>header{margin:0 2px 20px;padding:0 2px 17px;border-bottom:1px solid rgba(157,202,220,.12)}
.catalog-folder-detail>header small{display:block;margin-bottom:7px;font-size:9px;font-weight:700;letter-spacing:2.2px;color:color-mix(in srgb,var(--cat) 61%,white)}
.catalog-folder-detail>header h4{margin:0 0 7px;font-family:"Noto Serif SC","Songti SC",serif;font-size:27px;font-weight:600;letter-spacing:1px;color:rgba(248,250,247,.97)}
.catalog-folder-detail>header p{margin:0 0 8px;font-size:11.5px;line-height:1.65;color:rgba(194,216,225,.54)}
.catalog-folder-detail>header em{font-style:normal;font-size:10.5px;color:color-mix(in srgb,var(--cat) 57%,rgba(194,219,226,.55))}
.catalog-folder-items .catalog-feature{height:205px}
@keyframes catalog-folder-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.catalog-folder-detail{animation:none}}

/* 城市沉浸页头部，与内容流统一为城市 × 板块编辑式页面 */
.yc-panel{background:
  radial-gradient(90% 42% at 78% 0%,color-mix(in srgb,var(--cat) 15%,transparent),transparent 68%),
  radial-gradient(80% 48% at 0% 50%,rgba(61,107,145,.1),transparent 70%),
  linear-gradient(180deg,#081522 0%,#050d18 54%,#02070e 100%)}
.yc-panel-back{width:40px;height:40px;margin:42px 0 4px 20px;padding:0;border-radius:50%;display:grid;place-items:center;border-color:rgba(163,207,225,.2);background:rgba(8,22,34,.66);font-size:25px;line-height:1;color:rgba(225,240,245,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.yc-panel-head{padding:8px 20px 18px;margin-bottom:4px;border-bottom:0}
.yc-panel-kicker{display:block;margin-bottom:9px;font-size:10.5px;font-weight:700;letter-spacing:2.2px;color:color-mix(in srgb,var(--cat) 62%,white)}
.yc-panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.yc-panel-heading>div{min-width:0}
.yc-panel-heading h3{font-family:"Noto Serif SC","Songti SC",serif;font-size:29px;font-weight:600;line-height:1.2;letter-spacing:1.3px;color:rgba(250,249,245,.98);margin:0 0 7px}
.yc-panel-heading p{font-size:11.5px;line-height:1.6;color:rgba(202,221,229,.55);margin:0}
.yc-panel-heading>i{width:52px;height:52px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;color:color-mix(in srgb,var(--cat) 65%,white);border:1px solid color-mix(in srgb,var(--cat) 30%,transparent);background:radial-gradient(circle,color-mix(in srgb,var(--cat) 16%,transparent),rgba(7,20,31,.72));box-shadow:0 0 28px color-mix(in srgb,var(--cat) 12%,transparent)}
.yc-panel-list{padding:8px 18px 48px}
@media(max-width:360px){
  .catalog-feature{height:210px;border-radius:22px}
  .catalog-feature-copy{left:17px;right:17px;bottom:15px}
  .catalog-feature-copy>b{font-size:20px}
  .catalog-card{grid-template-columns:31px 72px minmax(0,1fr) 18px;gap:7px;min-height:94px;padding-left:8px;padding-right:9px}
  .catalog-card-visual{width:72px;height:72px;border-radius:14px}
  .catalog-card-copy>b{font-size:11px}
  .yc-panel-heading h3{font-size:26px}
  .yc-panel-heading>i{width:46px;height:46px;font-size:19px}
}
/* ============ 收藏列表卡片 ============ */
.fav-card{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;margin-bottom:10px;
  border:1px solid rgba(180,200,220,.1);border-radius:18px;
  background:linear-gradient(145deg,rgba(16,36,52,.72),rgba(8,22,35,.85));
  position:relative;cursor:pointer;
  transition:transform .15s,border-color .2s;
}
.fav-card:active{transform:scale(.98)}
.fav-cover{
  width:52px;height:52px;border-radius:14px;flex-shrink:0;
  display:grid;place-items:center;overflow:hidden;position:relative;
}
.fav-glow{
  position:absolute;width:36px;height:36px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.2),transparent 68%);
}
.fav-play{
  color:rgba(255,255,255,.8);font-size:18px;
}
.fav-wave{
  display:flex;align-items:center;gap:2px;height:24px;
}
.fav-wave span{
  display:inline-block;width:2px;border-radius:1px;
  background:rgba(255,255,255,.4);
  animation:waveBar 1.2s ease-in-out infinite;
}
.fav-wave span:nth-child(2){animation-delay:.15s}
.fav-wave span:nth-child(3){animation-delay:.3s}
.fav-wave span:nth-child(4){animation-delay:.45s}
.fav-wave span:nth-child(5){animation-delay:.6s}
.fav-wave span:nth-child(6){animation-delay:.75s}
.fav-wave span:nth-child(7){animation-delay:.9s}
@keyframes waveBar{
  0%,100%{height:8px}
  50%{height:22px}
}
.fav-body{flex:1;min-width:0;padding-right:8px;}
.fav-title{font-size:13px;font-weight:600;color:rgba(240,248,255,.88);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fav-sub{font-size:11px;color:rgba(190,210,225,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.fav-meta{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:rgba(160,190,210,.5);}
.fav-dot{width:3px;height:3px;border-radius:50%;background:rgba(160,190,210,.3);}
.fav-timer-badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 8px;border-radius:99px;border:1px solid rgba(180,180,255,.18);
  background:rgba(180,180,255,.06);color:rgba(200,200,255,.7);
  font-size:11px;margin-top:6px;
}
.fav-del{
  width:28px;height:28px;border-radius:50%;border:none;
  background:rgba(255,140,140,.08);color:rgba(255,140,140,.5);
  font-size:12px;display:grid;place-items:center;flex-shrink:0;
  transition:background .15s;
}
.fav-del:active{background:rgba(255,140,140,.2)}
#favList .portal-empty{min-height:240px}


.pl-vctrl-fav{
  background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.25);
  color:#fff;font-size:20px;line-height:1;width:40px;height:40px;border-radius:50%;
  cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;
  display:grid;place-items:center;transition:.2s;flex-shrink:0;
}
.pl-vctrl-fav.on{color:#ff6b8a;border-color:rgba(255,107,138,.6);background:rgba(255,107,138,.15)}
.pl-vctrl-fav:active{transform:scale(.9)}

@media (max-width:768px), (pointer:coarse){
  #scrim{backdrop-filter:none;-webkit-backdrop-filter:none}
  .sheet{backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(180deg,rgba(8,20,32,.985),rgba(3,11,20,.99))}
}


/* ═══════════════════════════════════════════════════════════
   音频播放器重设计 v5 — 旋转唱片 + 极光美学（参考稿）
   仅作用于音频模式(#player:not(.video-mode))，视频模式不受影响
   ═══════════════════════════════════════════════════════════ */

#player:not(.video-mode){
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(20,54,50,.55), transparent 55%),
    radial-gradient(100% 70% at 50% 100%, rgba(10,30,28,.6), transparent 60%),
    linear-gradient(180deg, #071417 0%, #04100f 45%, #020a09 100%);
  box-shadow:inset 0 -40px 120px rgba(20,60,50,.25),inset 0 60px 120px rgba(15,45,55,.2);
  justify-content:flex-start;
  padding:0;
}

/* ── 顶栏 ── */
.pl-topbar{
  position:absolute;top:0;left:0;right:0;z-index:12;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(18px + env(safe-area-inset-top,0)) 20px 14px;
  pointer-events:none;
}
.pl-topbar>*{pointer-events:auto;}
.pl-tb-back{
  width:40px;height:40px;border:none;background:none;
  color:rgba(240,230,210,.92);font-size:24px;line-height:1;
  display:grid;place-items:center;cursor:pointer;transition:transform .15s;
}
.pl-tb-back:active{transform:scale(.88);}
.pl-tb-title{
  font-family:"Noto Serif SC","Songti SC",serif;
  font-size:16px;letter-spacing:2px;color:rgba(245,236,220,.92);font-weight:600;
  text-shadow:0 0 18px rgba(255,220,160,.25);
}
.pl-tb-actions{display:flex;gap:8px;}
.pl-tb-list,.pl-tb-fav{
  width:40px;height:40px;border:none;background:none;
  color:rgba(240,230,210,.9);font-size:20px;
  display:grid;place-items:center;cursor:pointer;transition:transform .15s,color .2s;
}
.pl-tb-list:active,.pl-tb-fav:active{transform:scale(.88);}
.pl-tb-fav.on{color:#ff7a9c;text-shadow:0 0 14px rgba(255,120,150,.6);}

/* ══════ 旋转唱片（核心视觉） ══════ */
#player:not(.video-mode) .pl-breath-wrap{
  width:min(76vw,340px);height:min(76vw,340px);
  margin:calc(84px + env(safe-area-inset-top,0)) auto 0;
  flex-shrink:0;
}
#player:not(.video-mode) .pl-breath,
#player:not(.video-mode) .pl-ring{display:none;}

.pl-disc{
  position:absolute;inset:0;border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(220,190,120,.55);
  box-shadow:
    0 0 0 1px rgba(255,230,170,.25),
    0 0 40px rgba(120,220,190,.28),
    0 0 90px rgba(60,180,160,.22),
    inset 0 0 60px rgba(0,0,0,.55);
  animation:discSpin 24s linear infinite;
  will-change:transform;
}
#player.is-paused .pl-disc{animation-play-state:paused;}
@keyframes discSpin{to{transform:rotate(360deg);}}

.pl-disc-face{
  position:absolute;inset:0;border-radius:50%;
  background:
    radial-gradient(60% 55% at 42% 40%, rgba(140,240,205,.5), transparent 60%),
    radial-gradient(70% 60% at 65% 62%, rgba(80,180,220,.4), transparent 65%),
    conic-gradient(from 210deg at 50% 50%,
      #0c2b2a 0deg, #124a44 60deg, #1f7a68 120deg,
      #2aa585 165deg, #157a7f 210deg, #0e3d4a 280deg, #0c2b2a 360deg);
}
.pl-disc-face::after{
  content:"";position:absolute;inset:-10%;
  background:
    radial-gradient(40% 22% at 30% 45%, rgba(180,255,220,.55), transparent 70%),
    radial-gradient(45% 26% at 62% 58%, rgba(120,230,200,.45), transparent 72%);
  filter:blur(6px);mix-blend-mode:screen;
}

.pl-disc-grooves{
  position:absolute;inset:0;border-radius:50%;
  background:repeating-radial-gradient(circle at 50% 50%,
    rgba(0,0,0,.16) 0px, rgba(0,0,0,.16) 1px,
    rgba(255,255,255,.02) 2px, rgba(255,255,255,.02) 4px);
  opacity:.5;mix-blend-mode:overlay;
}
.pl-disc-forest{
  position:absolute;left:0;right:0;bottom:0;height:42%;
  background:
    radial-gradient(ellipse 120% 90% at 50% 130%, rgba(2,10,8,.92) 40%, transparent 72%);
}
.pl-disc-forest::before{
  content:"";position:absolute;left:0;right:0;bottom:12%;height:60%;
  background-image:
    conic-gradient(from -30deg at 50% 100%, transparent 40%, rgba(3,14,10,.95) 50%, transparent 60%);
  background-size:14px 100%;background-repeat:repeat-x;
  background-position:bottom;opacity:.9;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 120%, #000 55%, transparent 80%);
          mask-image:radial-gradient(120% 100% at 50% 120%, #000 55%, transparent 80%);
}
.pl-disc-sheen{
  position:absolute;inset:0;border-radius:50%;
  background:linear-gradient(135deg, rgba(255,255,255,.16) 0%, transparent 32%, transparent 70%, rgba(255,255,255,.06) 100%);
  mix-blend-mode:screen;pointer-events:none;
}

.pl-disc-hub{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:34%;height:34%;border-radius:50%;z-index:3;
  display:flex;align-items:center;justify-content:center;gap:4px;
  background:radial-gradient(circle, rgba(6,20,18,.82), rgba(4,14,13,.6) 70%, transparent);
  animation:discSpinRev 24s linear infinite;
}
#player.is-paused .pl-disc-hub{animation-play-state:paused;}
@keyframes discSpinRev{to{transform:translate(-50%,-50%) rotate(-360deg);}}
.pl-disc-hub i{
  width:4px;border-radius:2px;
  background:linear-gradient(180deg, #d9ffe9, #6fe6c0);
  box-shadow:0 0 8px rgba(120,240,200,.7);
  animation:hubBar 1.1s ease-in-out infinite;
}
.pl-disc-hub i:nth-child(1){height:26%;animation-delay:-.2s;}
.pl-disc-hub i:nth-child(2){height:54%;animation-delay:-.5s;}
.pl-disc-hub i:nth-child(3){height:72%;animation-delay:0s;}
.pl-disc-hub i:nth-child(4){height:48%;animation-delay:-.35s;}
.pl-disc-hub i:nth-child(5){height:30%;animation-delay:-.65s;}
@keyframes hubBar{0%,100%{transform:scaleY(.5);}50%{transform:scaleY(1.15);}}
#player.is-paused .pl-disc-hub i{animation-play-state:paused;}

/* ══════ 底部内容区 ══════ */
#player:not(.video-mode) .pl-bottom{
  position:relative;left:auto;right:auto;bottom:auto;
  flex:1;width:100%;max-width:520px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;
  padding:22px 26px calc(20px + env(safe-area-inset-bottom,0));
  z-index:6;
}
.pl-nowtag{
  font-size:11px;letter-spacing:4px;color:rgba(180,230,210,.75);
  margin:6px 0 10px;font-weight:500;
}
.pl-title2{
  font-family:"Noto Serif SC","Songti SC",serif;
  font-size:30px;font-weight:700;letter-spacing:3px;
  color:#f3ecdc;text-shadow:0 0 26px rgba(255,225,165,.28);
  margin:0 0 8px;line-height:1.2;text-align:center;
}
.pl-subtitle{
  font-size:14px;letter-spacing:2px;color:rgba(150,215,195,.9);
  margin-bottom:14px;text-align:center;
}
#player:not(.video-mode) .pl-caption{
  font-size:13.5px;line-height:1.7;color:rgba(210,228,222,.7);
  letter-spacing:1px;margin-bottom:20px;text-align:center;min-height:1.7em;
  opacity:0;transition:opacity .8s ease;max-width:360px;
}
#player:not(.video-mode) .pl-caption.on{opacity:1;}

.pl-wave{display:none;}

#player:not(.video-mode) .pl-progress{
  width:100%;max-width:420px;height:5px;background:rgba(255,255,255,.1);
  border-radius:99px;margin:8px 0 8px;position:relative;cursor:pointer;
}
#player:not(.video-mode) .pl-progress-fill{
  background:linear-gradient(90deg,#7fe6c0,#4fd0b0);
  box-shadow:0 0 10px rgba(110,230,190,.6);border-radius:99px;
}
#player:not(.video-mode) .pl-progress-handle{
  width:14px;height:14px;background:#eafff5;border:2px solid #6fe6c0;
  box-shadow:0 0 12px rgba(110,230,190,.8);
}
#player:not(.video-mode) .pl-clock{
  width:100%;max-width:420px;display:flex;justify-content:space-between;
  font-family:"SFMono-Regular",Consolas,monospace;font-size:12px;
  letter-spacing:1px;color:rgba(190,225,215,.7);margin-bottom:16px;
}

#player:not(.video-mode) .pl-controls{
  display:flex;align-items:center;justify-content:center;gap:30px;margin-bottom:22px;
}
#player:not(.video-mode) .pl-btn{
  width:46px;height:46px;border:none;background:none;
  color:rgba(240,232,214,.9);font-size:22px;display:grid;place-items:center;
  cursor:pointer;transition:transform .15s,color .2s;
}
#player:not(.video-mode) .pl-btn.small{font-size:26px;}
#player:not(.video-mode) .pl-btn:active{transform:scale(.86);}
#player:not(.video-mode) .pl-btn.play{
  width:76px;height:76px;border-radius:50%;
  border:1.5px solid rgba(230,200,130,.7);
  background:radial-gradient(circle at 50% 40%, rgba(60,50,25,.5), rgba(20,30,26,.35));
  color:#f7edd4;font-size:26px;
  box-shadow:0 0 26px rgba(220,190,120,.4),inset 0 0 22px rgba(255,225,160,.15);
}
#player:not(.video-mode) .pl-btn.play:active{transform:scale(.93);}

.pl-iconbar{
  display:flex;align-items:stretch;justify-content:center;
  width:100%;max-width:440px;margin-bottom:18px;
}
.pl-ic{
  flex:1;border:none;background:none;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:4px 2px;position:relative;
  color:rgba(210,228,222,.82);transition:transform .15s,color .2s;
}
.pl-ic+.pl-ic::before{
  content:"";position:absolute;left:0;top:18%;height:64%;width:1px;
  background:rgba(255,255,255,.1);
}
.pl-ic-glyph{font-size:21px;line-height:1;}
.pl-ic .pl-ic-glyph.pl-speed-label{font-size:15px;font-weight:700;letter-spacing:.5px;}
.pl-ic-txt{font-size:10.5px;letter-spacing:1px;color:rgba(180,205,198,.7);}
.pl-ic:active{transform:scale(.9);}
.pl-ic.on{color:#7fe6c0;}
.pl-ic.on .pl-ic-txt{color:rgba(127,230,192,.9);}

.pl-nextup{
  width:100%;max-width:440px;
  display:flex;align-items:center;gap:12px;
  padding:14px 18px;border-radius:16px;
  background:linear-gradient(180deg, rgba(20,44,42,.6), rgba(10,26,24,.5));
  border:1px solid rgba(120,200,180,.16);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.pl-nextup-label{
  font-size:11px;letter-spacing:1px;color:rgba(150,210,195,.75);
  padding:3px 10px;border-radius:99px;background:rgba(120,220,190,.12);flex-shrink:0;
}
.pl-nextup-title{
  flex:1;font-size:13.5px;color:rgba(225,238,232,.9);letter-spacing:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;
}
.pl-nextup-time{
  font-family:"SFMono-Regular",Consolas,monospace;font-size:12px;
  color:rgba(180,215,205,.7);flex-shrink:0;
}

#player:not(.video-mode) .pl-speed-panel{
  background:rgba(10,28,26,.94);border:1px solid rgba(120,200,180,.2);
}
#player:not(.video-mode) .pl-speed-opt.active{
  background:rgba(120,220,190,.18);color:#9ff0d2;
}


/* ═══ 音频播放器重设计 v5.1 修正 ═══ */

/* 1) 隐藏旧的悬浮按钮（🌙♡✕）——音频模式已由新顶栏替代 */
#player:not(.video-mode) .pl-close,
#player:not(.video-mode) .pl-fav,
#player:not(.video-mode) .pl-timer{display:none !important;}

/* 2) 控制按钮：去掉系统 emoji 蓝色渲染，改用金属描边玻璃质感 + 干净字形 */
#player:not(.video-mode) .pl-controls{
  display:flex;align-items:center;justify-content:center;gap:20px;
  margin:6px 0 4px;width:100%;
}
#player:not(.video-mode) .pl-btn{
  border:1px solid rgba(220,200,150,.28);
  background:rgba(18,34,32,.5);
  color:rgba(240,235,220,.92);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .15s,background .2s,box-shadow .3s;
}
#player:not(.video-mode) .pl-btn:active{transform:scale(.9);}

/* 上一段 / 下一段：小号，无边框，纯字形 */
#player:not(.video-mode) .pl-btn.small{
  width:46px;height:46px;border:none;background:none;
  font-size:0;position:relative;
}
#player:not(.video-mode) .pl-btn[data-act=prev]::before{
  content:"⏮";font-size:26px;color:rgba(235,228,210,.9);
}
#player:not(.video-mode) .pl-btn[data-act=next]::before{
  content:"⏭";font-size:26px;color:rgba(235,228,210,.9);
}

/* 后退/前进 15 秒：环形描边 + “15”数字 */
#player:not(.video-mode) .pl-btn.rw,
#player:not(.video-mode) .pl-btn.ff{
  width:50px;height:50px;font-size:0;position:relative;
  border:1.5px solid rgba(220,200,150,.32);
}
#player:not(.video-mode) .pl-btn.rw::before{
  content:"↺";font-size:26px;color:rgba(235,228,210,.9);
  position:absolute;inset:0;display:grid;place-items:center;
}
#player:not(.video-mode) .pl-btn.ff::before{
  content:"↻";font-size:26px;color:rgba(235,228,210,.9);
  position:absolute;inset:0;display:grid;place-items:center;
}
#player:not(.video-mode) .pl-btn.rw::after,
#player:not(.video-mode) .pl-btn.ff::after{
  content:"15";font-size:9px;font-weight:700;
  color:rgba(235,228,210,.9);position:absolute;
  left:0;right:0;bottom:9px;text-align:center;letter-spacing:.5px;
}

/* 中央播放/暂停：大号金环，主视觉 */
#player:not(.video-mode) .pl-btn.play{
  width:74px;height:74px;font-size:26px;
  border:2px solid rgba(230,200,130,.6);
  background:radial-gradient(circle at 50% 40%,rgba(40,60,55,.6),rgba(14,28,26,.7));
  color:#fdf6e6;
  box-shadow:0 0 26px rgba(220,190,120,.3),inset 0 0 20px rgba(120,220,190,.12);
}

/* 3) 图标栏：均分五列，分隔线，柔金字 */
#player:not(.video-mode) .pl-iconbar{
  display:flex;align-items:stretch;justify-content:space-between;
  width:100%;max-width:440px;margin:16px auto 4px;
}
#player:not(.video-mode) .pl-ic{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;
  border:none;background:none;cursor:pointer;padding:6px 0;position:relative;
  transition:transform .15s;
}
#player:not(.video-mode) .pl-ic+.pl-ic::before{
  content:"";position:absolute;left:0;top:20%;height:60%;width:1px;
  background:rgba(220,200,150,.14);
}
#player:not(.video-mode) .pl-ic:active{transform:scale(.92);}
#player:not(.video-mode) .pl-ic-glyph{
  font-size:21px;color:rgba(235,225,200,.9);line-height:1;
  min-height:22px;display:grid;place-items:center;
}
#player:not(.video-mode) .pl-ic .pl-speed-label{
  font-size:15px;font-weight:700;font-family:"SFMono-Regular",Consolas,monospace;
  color:rgba(240,228,200,.95);
}
#player:not(.video-mode) .pl-ic-txt{
  font-size:11px;letter-spacing:1px;color:rgba(200,220,212,.68);
}
#player:not(.video-mode) .pl-ic.on .pl-ic-glyph,
#player:not(.video-mode) .pl-ic.on .pl-ic-txt{color:#7fe6c0;}

/* 4) 下一首卡片 */
#player:not(.video-mode) .pl-nextup{
  display:flex;align-items:center;gap:12px;width:100%;max-width:440px;
  margin:14px auto 0;padding:14px 18px;border-radius:16px;
  background:rgba(14,30,28,.55);border:1px solid rgba(220,200,150,.16);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
#player:not(.video-mode) .pl-nextup-label{
  font-size:11px;letter-spacing:1px;color:rgba(150,215,195,.9);
  padding:4px 12px;border-radius:99px;background:rgba(90,200,170,.14);
  flex-shrink:0;
}
#player:not(.video-mode) .pl-nextup-title{
  flex:1;font-size:14px;color:rgba(235,228,212,.9);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#player:not(.video-mode) .pl-nextup-time{
  font-size:12px;color:rgba(200,220,212,.6);
  font-family:"SFMono-Regular",Consolas,monospace;flex-shrink:0;
}

/* 5) 时钟 */
#player:not(.video-mode) .pl-clock{
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:13px;letter-spacing:2px;color:rgba(200,225,215,.72);
  margin:2px 0 14px;text-align:center;
}

/* 6) 顶部“疗愈进行中”小标 pl-tag：音频模式隐藏（与顶栏冲突） */
#player:not(.video-mode) .pl-tag{display:none;}

/* 7) 唱片尺寸收敛 + 上间距，避免与文字重叠 */
#player:not(.video-mode) .pl-breath-wrap{
  width:min(66vw,290px);height:min(66vw,290px);
  margin:calc(74px + env(safe-area-inset-top,0)) auto 8px;
}


/* ── 底部内容可读性蒙版：压住极光帘，保证文字/控件清晰（仅音频模式） ── */
#player:not(.video-mode) .pl-bottom::before{
  content:"";position:absolute;left:-30px;right:-30px;top:-40px;bottom:-40px;
  z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(4,14,15,.55) 22%,
    rgba(3,11,12,.82) 46%,
    rgba(2,8,9,.92) 100%);
}


/* ═══════════════════════════════════════════════════════════
   音频播放器唱片皮肤 v6 — 对照参考稿补齐（伊春节点基准皮肤）
   参考稿要素：金环唱片(极光盘面+中心波形芯片) / 波形律动条 /
   时间分列进度条两端 / ⏮ ⏸ ⏭ 三键 / 倍速·定时·循环·音量·列表 五图标 /
   「下一首」卡片 / 星空+松林剪影背景
   皮肤与内容解耦：文案与曲目全部由后台 media 数据驱动
   ═══════════════════════════════════════════════════════════ */

/* ── 0) 视频模式不受皮肤影响：顶栏只属于音频皮肤 ── */
#player.video-mode .pl-topbar{display:none;}
#player.video-mode .pl-forest{display:none;}

/* 极光帘画布：轻度模糊+提饱和，把逐列光柱融成丝绸质感的帘（GPU 合成，不逐像素） */
#player:not(.video-mode) .pl-aurora{
  filter:blur(5px) saturate(1.12);
  transform:translateZ(0);
}

/* ── 1) 全屏松林剪影（远近两排三角针叶，参考稿地平线） ── */
#player .pl-forest{
  position:absolute;left:0;right:0;bottom:0;height:34%;
  pointer-events:none;z-index:0;
  background:radial-gradient(120% 70% at 50% 108%, rgba(10,40,32,.5), transparent 70%);
}
#player .pl-forest::before{           /* 远景松林（细密、偏灰绿） */
  content:"";position:absolute;left:-4%;right:-4%;bottom:16%;height:60%;
  background-image:conic-gradient(from -28deg at 50% 100%, transparent 41%, rgba(5,20,15,.85) 50%, transparent 59%);
  background-size:34px 100%;background-repeat:repeat-x;background-position:bottom;
  -webkit-mask-image:radial-gradient(140% 100% at 50% 100%, #000 60%, transparent 92%);
          mask-image:radial-gradient(140% 100% at 50% 100%, #000 60%, transparent 92%);
  opacity:.8;
}
#player .pl-forest::after{            /* 近景松林（高大、近黑，错位排布） */
  content:"";position:absolute;left:-6%;right:-6%;bottom:-2%;height:48%;
  background-image:conic-gradient(from -24deg at 50% 100%, transparent 38%, rgba(2,10,7,.95) 50%, transparent 62%);
  background-size:58px 100%;background-repeat:repeat-x;background-position:29px bottom;
  -webkit-mask-image:radial-gradient(130% 100% at 50% 105%, #000 55%, transparent 90%);
          mask-image:radial-gradient(130% 100% at 50% 105%, #000 55%, transparent 90%);
  opacity:.92;
}

/* ── 2) 唱片：金环 + 内侧细环，尺寸放大到参考稿比例 ── */
#player:not(.video-mode) .pl-breath-wrap{
  width:min(72vw,318px);height:min(72vw,318px);
  margin:calc(76px + env(safe-area-inset-top,0)) auto 6px;
}
.pl-disc{
  border:2px solid rgba(236,208,140,.8);
  box-shadow:
    0 0 0 1px rgba(255,238,190,.3),
    0 0 34px rgba(240,210,140,.2),
    0 0 90px rgba(70,190,160,.26),
    inset 0 0 70px rgba(0,0,0,.5);
}
.pl-disc::after{                      /* 内侧细金环（参考稿盘面内圈） */
  content:"";position:absolute;inset:6%;border-radius:50%;
  border:1px solid rgba(255,240,200,.16);pointer-events:none;
}

/* ── 3) 唱片中心：圆角芯片 + 奶白波形条（替代旧圆形音孔） ── */
.pl-disc-hub{
  width:26%;height:15%;border-radius:14px;
  background:rgba(5,17,15,.78);
  border:1px solid rgba(235,215,165,.4);
  box-shadow:0 0 18px rgba(0,0,0,.45),0 0 10px rgba(120,240,200,.14);
  gap:3px;
}
.pl-disc-hub i{
  width:3px;border-radius:2px;
  background:linear-gradient(180deg,#f4ecd8,#bfe9d2);
  box-shadow:0 0 6px rgba(240,230,200,.45);
}

/* ── 4) 波形律动条（canvas，随实时频谱起伏；暂停时收敛低位呼吸） ── */
#player:not(.video-mode) .pl-wave{
  display:block;width:100%;max-width:440px;height:52px;
  margin:2px auto 4px;position:relative;
}
#player:not(.video-mode) .pl-wave .pl-wave-canvas{
  display:block;width:100%;height:100%;
}

/* ── 5) 进度行：时间分列两端（01:28 ──o── 06:42） ── */
#player:not(.video-mode) .pl-progressrow{
  display:flex;align-items:center;gap:12px;
  width:100%;max-width:440px;margin:2px auto 14px;
}
#player:not(.video-mode) .pl-time{
  flex-shrink:0;min-width:42px;
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:12px;letter-spacing:1px;color:rgba(205,228,218,.78);
}
#player:not(.video-mode) .pl-time-cur{text-align:left;}
#player:not(.video-mode) .pl-time-dur{text-align:right;}
#player:not(.video-mode) .pl-progress{
  flex:1;width:auto;max-width:none;margin:0;left:auto;right:auto;
  height:4px;background:rgba(255,255,255,.12);
}

/* ── 6) 控制区：参考稿三键（⏮ ⏸ ⏭），隐藏 15s 键 ── */
#player:not(.video-mode) .pl-btn.rw,
#player:not(.video-mode) .pl-btn.ff{display:none;}
#player:not(.video-mode) .pl-controls{gap:44px;margin:2px 0 12px;}
/* 前后曲图标：纯 CSS 绘制（三角+竖杆），杜绝系统 emoji 彩色渲染 */
#player:not(.video-mode) .pl-btn.small{
  display:flex;align-items:center;justify-content:center;gap:4px;font-size:0;
}
#player:not(.video-mode) .pl-btn[data-act=prev]::before{
  content:"";width:3px;height:18px;border-radius:2px;border:none;
  background:rgba(242,236,220,.9);position:static;display:block;font-size:0;
}
#player:not(.video-mode) .pl-btn[data-act=prev]::after{
  content:"";width:0;height:0;border-style:solid;border-color:transparent;
  border-width:9px 15px 9px 0;border-right-color:rgba(242,236,220,.9);
  position:static;display:block;background:none;
}
#player:not(.video-mode) .pl-btn[data-act=next]::before{
  content:"";width:0;height:0;border-style:solid;border-color:transparent;
  border-width:9px 0 9px 15px;border-left-color:rgba(242,236,220,.9);
  position:static;display:block;font-size:0;
}
#player:not(.video-mode) .pl-btn[data-act=next]::after{
  content:"";width:3px;height:18px;border-radius:2px;
  background:rgba(242,236,220,.9);position:static;display:block;
}
/* 播放键金环再亮一档，贴近参考稿 */
#player:not(.video-mode) .pl-btn.play{
  width:78px;height:78px;
  border:2px solid rgba(238,210,140,.72);
  box-shadow:0 0 30px rgba(230,200,130,.35),0 0 60px rgba(230,200,130,.12),inset 0 0 20px rgba(120,220,190,.1);
}

/* ── 7) 呼吸节律文字：弱化为小字提示（缓冲/暂停/吸呼引导） ── */
#player:not(.video-mode) .pl-phase{
  font-size:11px;font-weight:500;letter-spacing:3px;
  color:rgba(165,215,196,.62);min-height:16px;margin:0;
  text-shadow:none;
}

/* ── 8) 音量图标（CSS 绘制小喇叭）与音量面板 ── */
.pl-vol-glyph{position:relative;width:24px;height:22px;display:block;}
.pl-vol-glyph i{
  position:absolute;left:1px;top:50%;transform:translateY(-50%);
  width:14px;height:10px;
  background:rgba(235,225,200,.9);
  clip-path:polygon(0 0,45% 0,100% -60%,100% 160%,45% 100%,0 100%);
}
.pl-vol-glyph::before{
  content:"";position:absolute;right:5px;top:50%;transform:translateY(-50%);
  width:5px;height:11px;border:1.6px solid rgba(235,225,200,.85);border-left:none;
  border-radius:0 10px 10px 0;
}
.pl-vol-glyph::after{
  content:"";position:absolute;right:1px;top:50%;transform:translateY(-50%);
  width:7px;height:17px;border:1.6px solid rgba(235,225,200,.5);border-left:none;
  border-radius:0 12px 12px 0;
}
.pl-volbtn.muted .pl-vol-glyph::before,
.pl-volbtn.muted .pl-vol-glyph::after{opacity:.25;}
.pl-volbtn.muted .pl-vol-glyph i{opacity:.55;}
#player .pl-vol-panel{
  position:absolute;bottom:calc(150px + env(safe-area-inset-bottom,0px));right:20px;
  width:210px;padding:14px 16px 16px;
  background:rgba(10,28,26,.94);border:1px solid rgba(120,200,180,.2);
  border-radius:16px;z-index:62;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:0 12px 40px rgba(0,0,0,.4);
  opacity:0;pointer-events:none;transform:translateY(8px) scale(.95);
  transition:opacity .25s var(--ease),transform .25s var(--ease);
}
#player .pl-vol-panel.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);}
#player .pl-vol-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;
}
#player .pl-vol-head span{font-size:11px;letter-spacing:2px;color:rgba(180,225,205,.8);}
#player .pl-vol-head b{
  font-family:"SFMono-Regular",Consolas,monospace;font-size:12px;
  color:rgba(240,232,214,.9);font-weight:600;
}
#player .pl-vol-bar{
  position:relative;height:5px;border-radius:99px;background:rgba(255,255,255,.12);
  cursor:pointer;touch-action:none;margin:6px 2px 4px;
}
#player .pl-vol-fill{
  position:absolute;left:0;top:0;height:100%;width:75%;border-radius:inherit;
  background:linear-gradient(90deg,#7fe6c0,#4fd0b0);
  box-shadow:0 0 10px rgba(110,230,190,.5);pointer-events:none;
}
#player .pl-vol-knob{
  position:absolute;top:50%;left:calc(75% - 7px);width:14px;height:14px;border-radius:50%;
  transform:translateY(-50%);background:#eafff5;border:2px solid #6fe6c0;
  box-shadow:0 0 12px rgba(110,230,190,.7);pointer-events:none;
}

/* ── 9) 「下一首」卡片：可点，右侧 ≡，hidden 时彻底隐藏 ── */
#player:not(.video-mode) .pl-nextup{cursor:pointer;transition:transform .15s var(--ease),background .2s;}
#player:not(.video-mode) .pl-nextup:active{transform:scale(.985);background:rgba(20,40,37,.65);}
#player:not(.video-mode) .pl-nextup::after{
  content:"≡";flex-shrink:0;margin-left:2px;
  color:rgba(220,235,225,.5);font-size:17px;line-height:1;
}
#player:not(.video-mode) .pl-nextup-label{
  background:none;padding:0;color:rgba(185,225,208,.85);letter-spacing:1px;
}
#player:not(.video-mode) .pl-nextup-label::after{content:" ·";color:rgba(185,225,208,.5);}
.pl-nextup[hidden]{display:none!important;}

/* ── 10) 短屏适配（≤720px 高：唱片与间距收敛，保证不裁切） ── */
@media (max-height:720px){
  #player:not(.video-mode) .pl-breath-wrap{
    width:min(60vw,256px);height:min(60vw,256px);
    margin-top:calc(64px + env(safe-area-inset-top,0));
  }
  .pl-title2{font-size:25px;margin-bottom:6px;}
  #player:not(.video-mode) .pl-wave{height:40px;}
  #player:not(.video-mode) .pl-btn.play{width:66px;height:66px;}
  #player:not(.video-mode) .pl-controls{gap:36px;margin-bottom:8px;}
  #player:not(.video-mode) .pl-caption{margin-bottom:10px;}
  #player:not(.video-mode) .pl-nextup{padding:10px 14px;margin-top:8px;}
  #player:not(.video-mode) .pl-iconbar{margin-top:8px;}
}

/* ===== 伊春纯音乐播放器 v7：参考稿定稿皮肤 ===== */
.pl-yichun-scene,
.pl-node-meta,
.pl-location{display:none}
#player.skin-yichun:not(.video-mode){
  --yc-gold:#f2d7a3;
  --yc-ivory:#fff1d7;
  --yc-mint:#8fe3b5;
  --yc-line:rgba(233,211,158,.28);
  height:100%;
  min-height:0;
  overflow:hidden;
  isolation:isolate;
  background:#020b0e;
  box-shadow:none;
  color:var(--yc-ivory);
}
#player.skin-yichun:not(.video-mode) .pl-yichun-scene{
  position:absolute;
  inset:-3%;
  z-index:0;
  display:block;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,9,14,.08) 0%,rgba(0,12,15,.12) 38%,rgba(0,9,11,.72) 69%,rgba(0,6,9,.97) 100%),
    var(--pl-city-scene,url("../images/player-scenes/yichun-scene-v2.png")) center 47% / cover no-repeat;
  opacity:1;
  transform:scale(1.035);
  transition:none;
  animation:ycSceneDrift 24s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
#player.skin-yichun:not(.video-mode) .pl-yichun-scene::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 22% 42%,rgba(91,237,173,.13),transparent 35%),
    radial-gradient(ellipse at 76% 30%,rgba(67,212,177,.1),transparent 31%),
    linear-gradient(180deg,transparent 42%,rgba(0,10,12,.28) 49%,rgba(0,9,11,.76) 65%,rgba(0,5,8,.96) 82%);
  transform:translate3d(-1.5%,0,0);
  animation:ycAuroraVeil 13s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
@keyframes ycSceneDrift{to{transform:scale(1.075) translate3d(0,-.7%,0)}}
@keyframes ycAuroraVeil{0%{opacity:.55;transform:translate3d(-1.5%,0,0)}100%{opacity:1;transform:translate3d(1.5%,-.7%,0)}}

#player.skin-yichun:not(.video-mode) .pl-aurora{
  z-index:1;
  opacity:.34;
  filter:none;
  mix-blend-mode:screen;
  transform:none;
}
#player.skin-yichun:not(.video-mode) .pl-ambient{z-index:2;opacity:.62}
#player.skin-yichun:not(.video-mode) .pl-forest,
#player.skin-yichun:not(.video-mode) .pl-orbit,
#player.skin-yichun:not(.video-mode) .pl-tag{display:none}

#player.skin-yichun:not(.video-mode) .pl-topbar{
  top:0;
  z-index:20;
  min-height:72px;
  padding:calc(16px + env(safe-area-inset-top,0px)) 22px 10px;
}
#player.skin-yichun:not(.video-mode) .pl-tb-title{
  font-family:"Noto Serif SC","Songti SC","STSong",serif;
  color:var(--yc-gold);
  font-size:17px;
  font-weight:600;
  letter-spacing:1px;
  text-shadow:0 0 18px rgba(240,204,139,.23);
}
#player.skin-yichun:not(.video-mode) .pl-tb-back,
#player.skin-yichun:not(.video-mode) .pl-tb-list,
#player.skin-yichun:not(.video-mode) .pl-tb-fav{
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--yc-gold);
  font-family:Arial,sans-serif;
  font-size:25px;
  line-height:1;
  text-shadow:0 0 16px rgba(240,205,145,.18);
}
#player.skin-yichun:not(.video-mode) .pl-tb-list{font-size:27px}
#player.skin-yichun:not(.video-mode) .pl-tb-list:active{transform:scale(.88)}
#player.skin-yichun:not(.video-mode) .pl-tb-fav{font-size:28px}
#player.skin-yichun:not(.video-mode) .pl-tb-fav.on{color:#ffc1cb;text-shadow:0 0 16px rgba(255,132,158,.55)}
#player.skin-yichun:not(.video-mode) .pl-topbar svg{display:block;width:26px;height:26px;stroke:currentColor}
#player.skin-yichun:not(.video-mode) .pl-tb-list svg{width:27px;height:27px}
#player.skin-yichun:not(.video-mode) .pl-tb-fav svg{width:29px;height:29px}
#player.skin-yichun:not(.video-mode) .pl-tb-fav.on svg{fill:currentColor;fill-opacity:.18}
#player.skin-yichun:not(.video-mode) button:focus-visible,
#player.skin-yichun:not(.video-mode) [role="button"]:focus-visible{
  outline:2px solid rgba(143,227,181,.9);
  outline-offset:3px;
}

#player.skin-yichun:not(.video-mode) .pl-breath-wrap{
  position:relative;
  z-index:5;
  flex:0 0 auto;
  width:min(56%,250px);
  height:auto;
  aspect-ratio:1;
  margin:calc(94px + env(safe-area-inset-top,0px)) auto 0;
}
#player.skin-yichun:not(.video-mode) .pl-disc{
  border:1.5px solid rgba(249,220,163,.92);
  background:rgba(1,17,18,.35);
  box-shadow:
    0 0 0 7px rgba(63,203,161,.07),
    0 0 0 16px rgba(63,203,161,.035),
    0 0 32px rgba(103,235,189,.3),
    0 0 80px rgba(45,177,153,.22),
    inset 0 0 65px rgba(0,0,0,.52);
  animation:ycDiscHover 8s ease-in-out infinite;
  will-change:transform,box-shadow;
}
#player.skin-yichun:not(.video-mode) .pl-disc::after{
  inset:5.5%;
  border-color:rgba(248,226,183,.17);
  box-shadow:inset 0 0 24px rgba(100,235,190,.08);
}
#player.skin-yichun:not(.video-mode) .pl-disc-face{
  background:
    radial-gradient(circle at 50% 50%,rgba(0,16,19,.14),rgba(1,12,15,.42) 68%,rgba(0,6,9,.8)),
    url("../images/yichun-aurora-player-v1.png") center 43% / 190% auto no-repeat;
  transform-origin:50% 50%;
  animation:ycRecordSpin var(--yc-disc-turn,28s) linear infinite;
  will-change:transform;
}
#player.skin-yichun:not(.video-mode) .pl-disc-face::after{
  inset:-15%;
  filter:none;
  opacity:.62;
  background:
    radial-gradient(ellipse at 28% 45%,rgba(125,255,194,.32),transparent 31%),
    radial-gradient(ellipse at 72% 52%,rgba(78,221,184,.23),transparent 35%);
  animation:ycDiscLight 9s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
#player.skin-yichun:not(.video-mode) .pl-disc-grooves{
  inset:7%;
  opacity:.62;
  background:repeating-radial-gradient(circle,transparent 0 5px,rgba(220,255,240,.11) 6px,transparent 7px 10px);
  mix-blend-mode:screen;
  animation:ycRecordSpin var(--yc-disc-turn,28s) linear infinite;
  will-change:transform;
}
#player.skin-yichun:not(.video-mode) .pl-disc-forest{display:none}
#player.skin-yichun:not(.video-mode) .pl-disc-sheen{
  opacity:.42;
  background:linear-gradient(118deg,transparent 28%,rgba(215,255,235,.18) 43%,transparent 56%);
  animation:ycDiscSheen 8s ease-in-out infinite;
  will-change:transform,opacity;
}
#player.skin-yichun:not(.video-mode) .pl-disc-hub{
  width:25%;
  height:25%;
  border-radius:50%;
  gap:3px;
  border:1px solid rgba(227,213,171,.2);
  background:rgba(1,17,18,.8);
  box-shadow:0 0 0 12px rgba(1,22,22,.18),0 0 25px rgba(0,0,0,.48),inset 0 0 18px rgba(95,224,179,.08);
  animation:none;
}
#player.skin-yichun:not(.video-mode) .pl-disc-hub i{
  width:3px;
  background:var(--yc-gold);
  box-shadow:0 0 7px rgba(242,215,163,.55);
}
@keyframes ycDiscHover{
  0%,100%{transform:translate3d(0,0,0);box-shadow:0 0 0 7px rgba(63,203,161,.07),0 0 0 16px rgba(63,203,161,.035),0 0 32px rgba(103,235,189,.27),0 0 80px rgba(45,177,153,.2),inset 0 0 65px rgba(0,0,0,.52)}
  50%{transform:translate3d(0,-3px,0);box-shadow:0 0 0 9px rgba(63,203,161,.09),0 0 0 19px rgba(63,203,161,.04),0 0 44px rgba(103,235,189,.36),0 0 96px rgba(45,177,153,.26),inset 0 0 65px rgba(0,0,0,.52)}
}
@keyframes ycRecordSpin{to{transform:rotate(360deg)}}
@keyframes ycDiscLight{to{opacity:.95;transform:translate3d(6%,-2%,0) scale(1.06)}}
@keyframes ycDiscSheen{0%,100%{transform:translate3d(-12%,0,0);opacity:.2}50%{transform:translate3d(12%,0,0);opacity:.55}}

#player.skin-yichun:not(.video-mode) .pl-bottom{
  position:relative;
  z-index:6;
  flex:1 1 auto;
  width:100%;
  max-width:500px;
  min-height:0;
  margin:0 auto;
  padding:12px 22px calc(14px + env(safe-area-inset-bottom,0px));
  overflow:hidden;
}
#player.skin-yichun:not(.video-mode) .pl-bottom::before{display:none}
#player.skin-yichun:not(.video-mode) .pl-track[hidden]{display:none!important}
#player.skin-yichun:not(.video-mode) .pl-nowtag{
  margin:2px 0 5px;
  color:var(--yc-gold);
  font-size:11px;
  letter-spacing:3px;
}
#player.skin-yichun:not(.video-mode) .pl-title2{
  max-width:100%;
  margin:0 0 3px;
  overflow:hidden;
  color:var(--yc-ivory);
  font-family:"Noto Serif SC","Songti SC","STSong",serif;
  font-size:28px;
  font-weight:600;
  line-height:1.28;
  letter-spacing:1px;
  text-overflow:ellipsis;
  text-shadow:0 0 24px rgba(240,208,150,.22);
  white-space:nowrap;
}
#player.skin-yichun.has-long-track-title:not(.video-mode) .pl-title2{
  font-size:22px;
  letter-spacing:.4px;
}
#player.skin-yichun:not(.video-mode) .pl-subtitle{
  max-width:100%;
  margin:0 0 7px;
  overflow:hidden;
  color:rgba(242,215,163,.83);
  font-size:13px;
  letter-spacing:1.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#player.skin-yichun:not(.video-mode) .pl-phase{display:none}
#player.skin-yichun:not(.video-mode) .pl-caption{
  display:block;
  min-height:22px;
  max-height:44px;
  margin:0 auto 4px;
  overflow:hidden;
  color:rgba(157,218,177,.78);
  font-size:12.5px;
  line-height:1.75;
  letter-spacing:.6px;
  text-overflow:ellipsis;
  transform:none;
  white-space:nowrap;
}
#player.skin-yichun:not(.video-mode) .pl-wave{
  width:100%;
  height:38px;
  margin:0 auto 2px;
}
#player.skin-yichun:not(.video-mode) .pl-progressrow{
  width:100%;
  margin:0 auto 8px;
  gap:10px;
}
#player.skin-yichun:not(.video-mode) .pl-time{
  min-width:42px;
  color:rgba(242,215,163,.84);
  font-size:11px;
  letter-spacing:.5px;
}
#player.skin-yichun:not(.video-mode) .pl-progress{
  height:4px;
  background:rgba(198,230,218,.13);
}
#player.skin-yichun:not(.video-mode) .pl-progress-buffer{background:rgba(202,230,219,.17)}
#player.skin-yichun:not(.video-mode) .pl-progress-fill{
  background:linear-gradient(90deg,#a4f3bf,#72d9a2);
  box-shadow:0 0 11px rgba(111,229,168,.48);
}
#player.skin-yichun:not(.video-mode) .pl-progress-handle{
  width:13px;
  height:13px;
  border:2px solid rgba(205,255,220,.9);
  background:#8fe3b5;
  box-shadow:0 0 0 4px rgba(143,227,181,.14),0 0 12px rgba(143,227,181,.58);
  opacity:1;
}

#player.skin-yichun:not(.video-mode) .pl-controls{
  width:100%;
  height:68px;
  gap:52px;
  margin:0 0 5px;
}
#player.skin-yichun:not(.video-mode) .pl-btn{
  border:0;
  background:transparent;
  color:var(--yc-ivory);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  box-shadow:none;
}
#player.skin-yichun:not(.video-mode) .pl-btn.rw,
#player.skin-yichun:not(.video-mode) .pl-btn.ff{display:none}
#player.skin-yichun:not(.video-mode) .pl-btn.small{
  width:48px;
  height:48px;
  gap:3px;
}
#player.skin-yichun:not(.video-mode) .pl-btn.small::before,
#player.skin-yichun:not(.video-mode) .pl-btn.small::after{display:none!important}
#player.skin-yichun:not(.video-mode) .pl-btn.small svg{
  display:block;width:34px;height:34px;stroke:currentColor;stroke-width:1.65;
  fill:currentColor;
  filter:drop-shadow(0 0 8px rgba(242,215,163,.1));
}
#player.skin-yichun:not(.video-mode) .pl-btn[data-act=prev]::before,
#player.skin-yichun:not(.video-mode) .pl-btn[data-act=next]::after{
  width:3px;
  height:21px;
  border:0;
  border-radius:2px;
  background:var(--yc-ivory);
}
#player.skin-yichun:not(.video-mode) .pl-btn[data-act=prev]::after{
  border-width:11px 17px 11px 0;
  border-right-color:var(--yc-ivory);
}
#player.skin-yichun:not(.video-mode) .pl-btn[data-act=next]::before{
  border-width:11px 0 11px 17px;
  border-left-color:var(--yc-ivory);
}
#player.skin-yichun:not(.video-mode) .pl-btn.play{
  position:relative;
  width:70px;
  height:70px;
  border:1.5px solid rgba(242,215,163,.88);
  border-radius:50%;
  background:rgba(3,22,20,.45);
  color:var(--yc-ivory);
  font-size:0;
  box-shadow:0 0 0 5px rgba(242,215,163,.07),0 0 24px rgba(242,215,163,.25),inset 0 0 20px rgba(113,226,167,.09);
}
#player.skin-yichun:not(.video-mode) .pl-btn.play::before{
  content:"";
  width:0;
  height:0;
  margin-left:4px;
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  border-left:17px solid currentColor;
}
#player.skin-yichun:not(.video-mode) .pl-btn.play.playing::before{
  width:20px;
  height:24px;
  margin-left:0;
  border:0;
  background:linear-gradient(90deg,currentColor 0 34%,transparent 34% 66%,currentColor 66% 100%);
}
#player.skin-yichun:not(.video-mode) .pl-btn.play.playing{animation:ycPlayPulse 3.6s ease-in-out infinite}
@keyframes ycPlayPulse{50%{box-shadow:0 0 0 7px rgba(242,215,163,.08),0 0 34px rgba(242,215,163,.34),0 0 48px rgba(97,224,166,.13),inset 0 0 20px rgba(113,226,167,.12)}}

#player.skin-yichun:not(.video-mode) .pl-iconbar{
  width:100%;
  margin:2px auto 8px;
}
#player.skin-yichun:not(.video-mode) .pl-ic{
  min-width:0;
  gap:5px;
  padding:3px 1px;
  color:var(--yc-gold);
}
#player.skin-yichun:not(.video-mode) .pl-ic+.pl-ic::before{
  top:18%;
  height:64%;
  background:rgba(233,211,158,.16);
}
#player.skin-yichun:not(.video-mode) .pl-ic-glyph{
  min-height:21px;
  color:var(--yc-gold);
  font-size:20px;
}
#player.skin-yichun:not(.video-mode) .pl-ic-glyph svg{
  display:block;width:23px;height:23px;stroke:currentColor;stroke-width:1.55;
}
#player.skin-yichun:not(.video-mode) .pl-ic .pl-speed-label{color:var(--yc-gold);font-size:14px}
#player.skin-yichun:not(.video-mode) .pl-ic-txt{
  max-width:100%;
  overflow:hidden;
  color:rgba(242,215,163,.78);
  font-size:10px;
  letter-spacing:.4px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#player.skin-yichun:not(.video-mode) .pl-ic.on .pl-ic-glyph,
#player.skin-yichun:not(.video-mode) .pl-ic.on .pl-ic-txt{color:var(--yc-mint)}

#player.skin-yichun:not(.video-mode) .pl-nextup{
  width:100%;
  min-height:53px;
  margin:2px auto 0;
  padding:10px 14px;
  gap:8px;
  border:1px solid rgba(174,213,184,.25);
  border-radius:12px;
  background:rgba(4,24,23,.6);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 12px 32px rgba(0,0,0,.16);
}
#player.skin-yichun:not(.video-mode) .pl-nextup-label{
  color:rgba(181,225,191,.92);
  font-size:12px;
  letter-spacing:.5px;
}
#player.skin-yichun:not(.video-mode) .pl-nextup-title{
  color:rgba(209,230,213,.82);
  font-size:12px;
  letter-spacing:.4px;
}
#player.skin-yichun:not(.video-mode) .pl-nextup-time{color:rgba(242,215,163,.62);font-size:11px}
#player.skin-yichun:not(.video-mode) .pl-nextup::after{content:none}
#player.skin-yichun:not(.video-mode) .pl-nextup-action{display:grid;place-items:center;flex:0 0 24px;color:rgba(242,215,163,.5)}
#player.skin-yichun:not(.video-mode) .pl-nextup-action svg{display:block;width:19px;height:19px;stroke:currentColor;stroke-width:1.5}

#player.skin-yichun:not(.video-mode) .pl-speed-panel,
#player.skin-yichun:not(.video-mode) .pl-vol-panel{
  border-color:rgba(233,211,158,.22);
  background:rgba(2,20,20,.97);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
#player.skin-yichun:not(.video-mode) .pl-speed-opt.active{color:var(--yc-mint);background:rgba(105,222,165,.12)}
#player.skin-yichun:not(.video-mode) .pl-vol-panel{bottom:calc(172px + env(safe-area-inset-bottom,0px))}

#player.skin-yichun.is-paused:not(.video-mode) .pl-yichun-scene,
#player.skin-yichun.is-paused:not(.video-mode) .pl-yichun-scene::after,
#player.skin-yichun.is-paused:not(.video-mode) .pl-disc,
#player.skin-yichun.is-paused:not(.video-mode) .pl-disc-face,
#player.skin-yichun.is-paused:not(.video-mode) .pl-disc-face::after,
#player.skin-yichun.is-paused:not(.video-mode) .pl-disc-grooves,
#player.skin-yichun.is-paused:not(.video-mode) .pl-disc-sheen,
#player.skin-yichun.is-paused:not(.video-mode) .pl-btn.play,
#player.skin-yichun.is-paused:not(.video-mode) .pl-disc-hub i{animation-play-state:paused}

@media (max-width:370px){
  #player.skin-yichun:not(.video-mode) .pl-topbar{padding-left:14px;padding-right:14px}
  #player.skin-yichun:not(.video-mode) .pl-breath-wrap{width:208px;height:208px;margin-top:82px}
  #player.skin-yichun:not(.video-mode) .pl-bottom{padding-left:16px;padding-right:16px}
  #player.skin-yichun:not(.video-mode) .pl-title2{font-size:25px}
  #player.skin-yichun:not(.video-mode) .pl-controls{gap:38px}
}

@media (max-height:700px) and (orientation:portrait){
  #player.skin-yichun:not(.video-mode) .pl-breath-wrap{width:min(52%,210px);height:auto;aspect-ratio:1;margin-top:76px}
  #player.skin-yichun:not(.video-mode) .pl-bottom{padding-top:7px;padding-bottom:8px}
  #player.skin-yichun:not(.video-mode) .pl-title2{font-size:24px}
  #player.skin-yichun:not(.video-mode) .pl-subtitle{margin-bottom:3px;font-size:11.5px}
  #player.skin-yichun:not(.video-mode) .pl-caption{min-height:18px;margin-bottom:1px;font-size:11.5px}
  #player.skin-yichun:not(.video-mode) .pl-wave{height:31px}
  #player.skin-yichun:not(.video-mode) .pl-progressrow{margin-bottom:4px}
  #player.skin-yichun:not(.video-mode) .pl-controls{height:60px;margin-bottom:2px}
  #player.skin-yichun:not(.video-mode) .pl-btn.play{width:61px;height:61px}
  #player.skin-yichun:not(.video-mode) .pl-iconbar{margin-bottom:4px}
  #player.skin-yichun:not(.video-mode) .pl-nextup{min-height:45px;padding:7px 12px}
}

@media (orientation:landscape) and (max-height:520px){
  #player.skin-yichun:not(.video-mode){display:grid;grid-template-columns:42% 58%;align-items:center;padding-top:0}
  #player.skin-yichun:not(.video-mode) .pl-breath-wrap{grid-column:1;width:min(58vh,230px);height:auto;aspect-ratio:1;margin:54px auto 0}
  #player.skin-yichun:not(.video-mode) .pl-bottom{grid-column:2;align-self:stretch;overflow-y:auto;padding:62px 22px 10px}
  #player.skin-yichun:not(.video-mode) .pl-nowtag{margin-top:0}
  #player.skin-yichun:not(.video-mode) .pl-title2{font-size:22px}
  #player.skin-yichun:not(.video-mode) .pl-caption{display:none}
  #player.skin-yichun:not(.video-mode) .pl-wave{height:28px}
  #player.skin-yichun:not(.video-mode) .pl-controls{height:54px}
  #player.skin-yichun:not(.video-mode) .pl-btn.play{width:54px;height:54px}
  #player.skin-yichun:not(.video-mode) .pl-nextup{display:none}
}

/* 2026-07-15 typography accessibility pass
   Preserve the existing visual system while raising mobile reading sizes. */
.globe-brand strong{font-size:17px;line-height:1.25}
.globe-brand span{font-size:13px;line-height:1.45;letter-spacing:.9px}
.globe-theme-switch button{font-size:13px}
.globe-copy .eyebrow{font-size:13px;letter-spacing:1.8px}
.globe-copy p{max-width:315px;font-size:15px;line-height:1.75}
.home-rune-label,
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-label{font-size:14px;letter-spacing:.6px}
.home-rune-copy small{font-size:12px;line-height:1.3;letter-spacing:.25px}
.mobile-dock button span{font-size:13.5px;letter-spacing:.65px}

.cn-map-title span,
.cn-breath-tag,
.cn-caption-count{font-size:12.5px}
.cn-map-title p,
.cn-city-current span,
.cn-city-action p{font-size:14px;line-height:1.7}
.cn-city-current strong{font-size:18px}
.cn-city-tab{font-size:13px}

.yc-hero-tag,
.yc-panel-badge,
.catalog-title span,
.module-top em,
.yc-sec{font-size:12.5px}
.yc-hero-intro p,
.yc-panel-head p,
.yc-empty-sub,
.catalog-title p,
.module-body span,
.module-foot small,
.sound span{font-size:14px;line-height:1.7}
.yc-rune-label{font-size:13.5px;letter-spacing:1.2px}
.catalog-table-head,
.catalog-format,
.catalog-content small,
.catalog-row>i,
.catalog-empty,
.catalog-course .cc-sub,
.catalog-course .cc-count,
.catalog-ep,
.program-item b{font-size:13px;line-height:1.55}
.catalog-content b,
.catalog-course .cc-title,
.program-item strong{font-size:15px;line-height:1.45}

.global-quick-heading span,
.global-quick-subhead strong,
.global-quick-subhead span,
.global-quick-sublist .quick-sub-index,
.global-quick-sublist .quick-sub-copy .quick-sub-meta{font-size:11.5px}
.global-quick-heading strong{font-size:17px}
.global-quick-sublist .quick-sub-copy b,
.global-quick-sublist .quick-sub-copy .quick-sub-desc,
.global-entry-copy b,
.global-entry-copy small,
.global-entry-copy em,
.global-aggregate-empty p{font-size:13px;line-height:1.6}

.portal-head span,
.portal-hero>span,
.directory-hero>span,
.auth-overline{font-size:12px}
.portal-hero p,
.directory-hero p,
.global-module small,
.destination-chip small,
.subcategory-card small,
.future-content-note p,
.portal-empty p,
.auth-welcome p,
.auth-consent>span{font-size:14px;line-height:1.65}
.portal-search input,
.format-filter button,
.auth-tabs button,
.auth-field>span,
.auth-field>span small,
.auth-field>input,
.auth-password-field input{font-size:14px}
.destination-chip b,
.subcategory-card b,
.future-content-note strong{font-size:15px}

.sheet-titles span,
.sheet-tag,
.badge,
.cat .ct span{font-size:13px;line-height:1.55}
.sheet-titles h2,
.sheet-titles h3{line-height:1.25}

#player:not(.video-mode) .pl-nowtag,
#player.skin-yichun:not(.video-mode) .pl-nowtag{font-size:12.5px;letter-spacing:2.5px}
#player:not(.video-mode) .pl-subtitle,
#player.skin-yichun:not(.video-mode) .pl-subtitle{font-size:14px}
#player:not(.video-mode) .pl-caption{font-size:14px;line-height:1.65}
#player:not(.video-mode) .pl-clock,
#player:not(.video-mode) .pl-nextup-time,
#player.skin-yichun:not(.video-mode) .pl-time{font-size:13px}
#player:not(.video-mode) .pl-ic-txt,
#player.skin-yichun:not(.video-mode) .pl-ic-txt,
#player:not(.video-mode) .pl-nextup-label{font-size:12.5px}
#player:not(.video-mode) .pl-nextup-title,
#player.skin-yichun:not(.video-mode) .pl-nextup-title{font-size:14px;line-height:1.4}
#player.video-mode .pl-vctrl-side span,
#player.video-mode .pl-vctrl-media-sub,
#player.video-mode .pl-vctrl-copy small,
#player.video-mode .pl-vctrl-time{font-size:13px}

@media (max-width:370px){
  .globe-brand strong{font-size:16px}
  .globe-brand span{font-size:12px}
  .globe-copy p{font-size:14px}
  .home-rune-label,
  .app[data-globe-theme="day"]:not(.china-focus) .home-rune-label{font-size:13px}
  .home-rune-copy small{font-size:11px}
  .mobile-dock button span{font-size:12.5px}
}

/* ===== 稳定版手机视频播放器 =====
   手机框与原片比例互不干扰：16:9 画面固定，控制区按音乐播放器布局。 */
#player.video-mode{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:100%;
  padding:0;
  display:block;
  overflow:hidden;
  container-type:inline-size;
  background:#05080b;
  box-shadow:none;
  color:#fff;
}
#player.video-mode .pl-video{
  position:absolute;
  top:calc(76px + env(safe-area-inset-top,0px));
  left:14px;
  right:14px;
  bottom:auto;
  width:auto;
  height:auto;
  max-width:none;
  aspect-ratio:16/9;
  margin:0;
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;
  box-shadow:0 18px 46px rgba(0,0,0,.38);
  display:flex;
  align-items:center;
  justify-content:center;
  background:#000;
  z-index:1;
}
#player.video-mode .pl-video video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#000;
  border-radius:7px;
}
#player.video-mode .pl-video-overlay{inset:0;z-index:2}
#player.video-mode .pl-vctrl{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  z-index:20;
  overflow:hidden;
  opacity:1;
  pointer-events:none;
  transition:none;
}
#player.video-mode .pl-vctrl.show{opacity:1;pointer-events:auto}
#player.video-mode .pl-vctrl::before{display:none}
#player.video-mode .pl-vctrl-top{
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:auto;
  padding:calc(12px + env(safe-area-inset-top,0px)) 16px 10px;
  display:flex;
  align-items:center;
  gap:12px;
  background:none;
  z-index:3;
}
#player.video-mode .pl-vctrl-back{
  width:44px;
  height:44px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#fff;
  -webkit-tap-highlight-color:transparent;
}
#player.video-mode .pl-vctrl-back svg{width:25px;height:25px}
#player.video-mode .pl-vctrl-title{
  min-width:0;
  font-size:16px;
  font-weight:600;
  letter-spacing:0;
  color:rgba(255,255,255,.96);
  text-align:center;
  padding-right:44px;
  text-shadow:none;
}
#player.video-mode .pl-vctrl-center{
  position:absolute;
  top:calc(76px + env(safe-area-inset-top,0px));
  left:14px;
  right:14px;
  bottom:auto;
  width:auto;
  height:calc(56.25cqw - 15.75px);
  transform:none;
  display:grid;
  place-items:center;
  pointer-events:auto;
}
#player.video-mode .pl-vctrl-bigplay{
  position:relative;
  width:58px;
  height:58px;
  border:0;
  border-radius:50%;
  background:rgba(0,0,0,.5);
  box-shadow:0 0 0 1px rgba(255,255,255,.18),0 8px 28px rgba(0,0,0,.28);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  opacity:1;
  color:#fff;
}
#player.video-mode .pl-vctrl-bigplay::before,
#player.video-mode .pl-vctrl-play::before{
  content:"";
  display:block;
  width:0;
  height:0;
  border-top:9px solid transparent;
  border-bottom:9px solid transparent;
  border-left:14px solid currentColor;
  margin-left:4px;
}
#player.video-mode:not(.is-paused) .pl-vctrl-bigplay::before,
#player.video-mode:not(.is-paused) .pl-vctrl-play::before{
  width:14px;
  height:18px;
  margin-left:0;
  border:0;
  background:linear-gradient(90deg,currentColor 0 4px,transparent 4px 10px,currentColor 10px 14px);
}
#player.video-mode:not(.is-paused) .pl-vctrl-bigplay{opacity:0;pointer-events:none}
#player.video-mode .pl-vctrl-side{
  position:absolute;
  left:24px;
  right:24px;
  bottom:calc(22px + env(safe-area-inset-bottom,0px));
  z-index:4;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-around;
  gap:8px;
}
#player.video-mode .pl-vctrl-side button{
  width:72px;
  min-height:48px;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  text-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
#player.video-mode .pl-vctrl-side svg{width:22px;height:22px;filter:none}
#player.video-mode .pl-vctrl-side span{font-size:11px;line-height:1;letter-spacing:0;color:rgba(255,255,255,.64)}
#player.video-mode .pl-vctrl-fav.on{color:#ff4f72;background:none;border:0}
#player.video-mode .pl-vctrl-fav.on svg{fill:#ff4f72;stroke:#ff4f72}
#player.video-mode .pl-vctrl-bottom{
  position:absolute;
  top:calc(84.25px + env(safe-area-inset-top,0px) + 56.25cqw);
  left:22px;
  right:22px;
  bottom:auto;
  padding:0;
  background:none;
  z-index:3;
}
#player.video-mode .pl-vctrl-copy{
  width:100%;
  min-width:0;
  margin-bottom:14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  text-shadow:none;
}
#player.video-mode .pl-vctrl-media-title{
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:20px;
  line-height:1.45;
  font-weight:650;
  letter-spacing:0;
  color:#fff;
}
#player.video-mode .pl-vctrl-media-sub{
  width:100%;
  margin-top:4px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  line-height:1.45;
  letter-spacing:0;
  color:rgba(255,255,255,.78);
}
#player.video-mode .pl-vctrl-copy small{
  display:block;
  margin-top:5px;
  font-size:10px;
  line-height:1.45;
  letter-spacing:0;
  color:rgba(255,255,255,.38);
}
#player.video-mode .pl-vctrl-progress{
  position:relative;
  height:3px;
  margin:23px 0 38px;
  border-radius:3px;
  background:rgba(255,255,255,.18);
  overflow:visible;
  touch-action:none;
}
#player.video-mode .pl-vctrl-progress::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-10px;
  bottom:-10px;
}
#player.video-mode .pl-vctrl-progress .pl-progress-buffer{background:rgba(255,255,255,.28)}
#player.video-mode .pl-vctrl-progress .pl-progress-fill{background:#7edfc5;box-shadow:0 0 8px rgba(126,223,197,.24)}
#player.video-mode .pl-vctrl-progress .pl-progress-handle{
  top:50%;
  width:12px;
  height:12px;
  margin-top:-6px;
  border:0;
  background:#dffbef;
  box-shadow:0 1px 5px rgba(0,0,0,.5);
  opacity:1;
}
#player.video-mode .pl-vctrl-bar{position:relative;min-height:68px;display:flex;align-items:center;justify-content:center}
#player.video-mode .pl-vctrl-bar-left{width:100%;display:flex;align-items:center;justify-content:center;gap:34px}
#player.video-mode .pl-vctrl-bar-right{position:absolute;top:-31px;right:0;display:flex;align-items:center}
#player.video-mode .pl-vctrl-prev,
#player.video-mode .pl-vctrl-next{
  width:44px;height:44px;padding:0;border:0;background:none;color:rgba(255,255,255,.86);display:grid;place-items:center;
}
#player.video-mode .pl-vctrl-prev svg,
#player.video-mode .pl-vctrl-next svg{width:27px;height:27px}
#player.video-mode .pl-vctrl-play{
  width:68px;
  height:68px;
  padding:0;
  border:0;
  border:1px solid rgba(220,255,240,.54);
  border-radius:50%;
  background:rgba(126,223,197,.08);
  color:#fff;
  display:grid;
  place-items:center;
}
#player.video-mode .pl-vctrl-play::before{border-top-width:9px;border-bottom-width:9px;border-left-width:14px;margin-left:4px}
#player.video-mode:not(.is-paused) .pl-vctrl-play::before{width:14px;height:18px;background:linear-gradient(90deg,currentColor 0 4px,transparent 4px 10px,currentColor 10px 14px)}
#player.video-mode .pl-vctrl-time{font-size:11px;letter-spacing:0;color:rgba(255,255,255,.58)}
#player.video-mode .pl-speed-panel,
#player.video-mode .pl-vol-panel{display:none!important}

@media (max-width:360px){
  #player.video-mode .pl-video,
  #player.video-mode .pl-vctrl-center{left:10px;right:10px}
  #player.video-mode .pl-vctrl-center{height:calc(56.25cqw - 11.25px)}
  #player.video-mode .pl-vctrl-bottom{top:calc(84.75px + env(safe-area-inset-top,0px) + 56.25cqw);left:16px;right:16px}
  #player.video-mode .pl-vctrl-media-title{font-size:18px}
  #player.video-mode .pl-vctrl-bar-left{gap:25px}
}

@media (prefers-reduced-motion:reduce){
  #player.video-mode .pl-vctrl{transition:none}
}

@media (prefers-reduced-motion:reduce){
  #player.skin-yichun:not(.video-mode) .pl-yichun-scene,
  #player.skin-yichun:not(.video-mode) .pl-yichun-scene::after,
  #player.skin-yichun:not(.video-mode) .pl-disc,
  #player.skin-yichun:not(.video-mode) .pl-disc-face,
  #player.skin-yichun:not(.video-mode) .pl-disc-face::after,
  #player.skin-yichun:not(.video-mode) .pl-disc-grooves,
  #player.skin-yichun:not(.video-mode) .pl-disc-sheen,
  #player.skin-yichun:not(.video-mode) .pl-btn.play,
  #player.skin-yichun:not(.video-mode) .pl-disc-hub i{animation:none!important}
}

/* ===== 首页四域导航台 v201 =====
   单一连续控制面承载四个等权入口，保留既有 data-home-cat 交互契约。 */
.home-runes{
  --domain-ink:rgba(235,247,246,.94);
  position:absolute;
  left:14px;
  right:14px;
  bottom:calc(96px + env(safe-area-inset-bottom,0px));
  z-index:14;
  width:auto;
  height:116px;
  padding:0 4px 5px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:25px minmax(0,1fr);
  gap:0;
  overflow:hidden;
  border:1px solid rgba(159,211,222,.17);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(8,24,34,.93),rgba(3,14,23,.97));
  box-shadow:0 18px 42px rgba(0,5,12,.34),inset 0 1px 0 rgba(255,255,255,.055);
  transform:none;
  pointer-events:auto;
  isolation:isolate;
}
.home-runes::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(193,235,235,.44) 28%,rgba(193,235,235,.14) 72%,transparent);
  pointer-events:none;
}
.home-runes-rail{
  grid-column:1/-1;
  min-width:0;
  padding:0 8px;
  display:flex;
  align-items:center;
  gap:8px;
  border-bottom:1px solid rgba(153,207,220,.1);
  color:rgba(187,218,222,.47);
  font:600 8px/1 ui-monospace,"SFMono-Regular",Consolas,monospace;
  letter-spacing:1.15px;
}
.home-runes-rail i{
  min-width:18px;
  height:1px;
  flex:1;
  background:linear-gradient(90deg,rgba(170,219,225,.26),transparent);
}
.home-runes-rail em{font-style:normal;color:rgba(190,220,224,.34)}
.home-rune{
  --domain:#83dfcd;
  position:relative;
  min-width:0;
  min-height:84px;
  padding:9px 2px 10px;
  display:grid;
  grid-template-rows:12px 31px 1fr;
  align-items:center;
  justify-items:center;
  gap:2px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--domain-ink);
  cursor:pointer;
  opacity:0;
  animation:homeDomainIn .52s var(--ease) forwards;
  transition:background-color .2s ease,transform .16s ease,opacity .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.home-rune:nth-of-type(1){--domain:#f2a2b4;animation-delay:.12s}
.home-rune:nth-of-type(2){--domain:#73d7a5;animation-delay:.18s}
.home-rune:nth-of-type(3){--domain:#efbb70;animation-delay:.24s}
.home-rune:nth-of-type(4){--domain:#9faaf0;animation-delay:.3s}
#homeRunes .home-rune{animation:homeDomainIn .52s var(--ease) both}
#homeRunes .home-rune:nth-of-type(1){animation-delay:.12s}
#homeRunes .home-rune:nth-of-type(2){animation-delay:.18s}
#homeRunes .home-rune:nth-of-type(3){animation-delay:.24s}
#homeRunes .home-rune:nth-of-type(4){animation-delay:.3s}
.home-rune:not(:first-of-type)::before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(156,207,219,.16) 25%,rgba(156,207,219,.16) 75%,transparent);
}
.home-rune::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:24px;
  height:2px;
  background:var(--domain);
  box-shadow:0 0 10px color-mix(in srgb,var(--domain) 52%,transparent);
  opacity:.58;
  transform:translateX(-50%) scaleX(.72);
  transform-origin:center;
  transition:opacity .2s ease,transform .2s ease;
}
.home-rune-index{
  justify-self:start;
  margin-left:8px;
  color:color-mix(in srgb,var(--domain) 58%,rgba(210,226,230,.35));
  font:600 8px/1 ui-monospace,"SFMono-Regular",Consolas,monospace;
  letter-spacing:.55px;
}
.home-rune-glyph,
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-glyph{
  position:relative;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--domain) 32%,rgba(170,210,218,.12));
  border-radius:7px;
  background:
    radial-gradient(circle at 28% 18%,color-mix(in srgb,var(--domain) 21%,transparent),transparent 52%),
    linear-gradient(150deg,rgba(255,255,255,.045),rgba(3,18,28,.64));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 18px rgba(0,7,14,.24),0 0 15px color-mix(in srgb,var(--domain) 12%,transparent);
  color:var(--domain);
  isolation:isolate;
  transition:transform .18s ease,border-color .2s ease,box-shadow .2s ease,background-color .2s ease;
}
.home-rune-glyph::before{
  content:"";
  position:absolute;
  inset:4px;
  z-index:-1;
  border:1px solid color-mix(in srgb,currentColor 16%,transparent);
  border-radius:4px;
  opacity:.8;
}
.home-rune-glyph::after,
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-glyph::after{
  content:"";
  position:absolute;
  inset:auto 5px auto auto;
  right:5px;
  top:5px;
  width:2px;
  height:2px;
  border:0;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 6px currentColor;
  opacity:.82;
  pointer-events:none;
}
.home-rune-glyph > i[data-lucide]{
  display:block;
  width:18px;
  height:18px;
}
.home-rune-glyph > svg{
  position:relative;
  z-index:1;
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 5px color-mix(in srgb,currentColor 42%,transparent));
}
.home-rune:is(:hover,:focus-visible) .home-rune-glyph{
  border-color:color-mix(in srgb,var(--domain) 58%,rgba(220,244,244,.18));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 10px 22px rgba(0,7,14,.28),0 0 20px color-mix(in srgb,var(--domain) 21%,transparent);
}
.home-rune-copy{min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px}
.home-rune-label,
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-label{
  color:rgba(240,248,247,.92);
  font-size:12px;
  font-weight:680;
  line-height:1;
  letter-spacing:0;
  text-shadow:none;
  white-space:nowrap;
}
.home-rune-copy small{
  max-width:100%;
  overflow:hidden;
  color:rgba(187,211,218,.48);
  font-size:9px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:0;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.home-rune:active{transform:scale(.975);background:rgba(196,232,231,.055)}
.home-rune:active .home-rune-glyph{transform:scale(.94)}
.home-rune:active::after{opacity:1;transform:translateX(-50%) scaleX(1)}
.home-rune:focus-visible{outline:2px solid color-mix(in srgb,var(--domain) 70%,white);outline-offset:-3px}
.app[data-globe-theme="day"]:not(.china-focus) .home-runes{
  bottom:calc(96px + env(safe-area-inset-bottom,0px));
  gap:0;
  border-color:rgba(188,226,226,.24);
  background:linear-gradient(180deg,rgba(10,37,45,.88),rgba(4,24,34,.95));
  box-shadow:0 20px 42px rgba(1,18,28,.3),inset 0 1px 0 rgba(255,255,255,.09);
}
.app[data-globe-theme="day"]:not(.china-focus) .home-rune-copy small{color:rgba(213,230,232,.55)}

/* 四域目录：延续首页导航台的线性、连续信息结构。 */
.global-quick-menu{
  left:14px;
  right:14px;
  bottom:calc(96px + env(safe-area-inset-bottom,0px));
  max-height:calc(100dvh - 132px - env(safe-area-inset-top,0px));
  padding:0 15px 13px;
  overflow:hidden;
  border:1px solid rgba(var(--quick-rgb,122,240,216),.22);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(6,22,32,.985),rgba(2,12,20,.995));
  box-shadow:0 24px 58px rgba(0,4,10,.5),inset 0 1px 0 rgba(255,255,255,.055);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.global-quick-menu::before{
  left:0;
  right:0;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--quick-rgb,122,240,216),.72),transparent 72%);
}
.global-quick-title{
  min-height:72px;
  padding:9px 0 10px;
  gap:10px;
  border-bottom:1px solid rgba(153,207,220,.11);
}
.global-quick-heading{gap:10px}
.global-quick-heading>i{
  width:34px;
  height:38px;
  border:0;
  border-right:1px solid rgba(var(--quick-rgb,122,240,216),.32);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:color-mix(in srgb,var(--quick-color) 72%,white);
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:17px;
}
.global-quick-heading>div{gap:5px}
.global-quick-heading strong{font-size:15px;font-weight:650;letter-spacing:.6px}
.global-quick-heading span{color:rgba(var(--quick-rgb,122,240,216),.52);font-size:9px;letter-spacing:.9px}
.global-quick-title>button{
  order:3;
  width:44px;
  height:44px;
  margin-left:auto;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(218,237,240,.72);
  font-size:27px;
}
.global-quick-title>button::after{content:"CLOSE";display:block;margin-top:-4px;font:500 7px/1 ui-monospace,"SFMono-Regular",Consolas,monospace;letter-spacing:.8px;color:rgba(183,211,218,.35)}
.global-quick-title>button:active{transform:scale(.92);background:rgba(var(--quick-rgb,122,240,216),.055)}
.global-quick-submenu[aria-hidden="false"]{
  max-height:min(416px,calc(100dvh - 230px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));
  margin-top:0;
  padding-top:0;
  border-top:0;
}
.global-quick-subhead{
  min-height:42px;
  padding:0 2px;
  border-bottom:1px solid rgba(153,207,220,.09);
}
.global-quick-subhead strong{font-size:10px;font-weight:600;letter-spacing:1px;color:rgba(231,245,244,.76)}
.global-quick-subhead span{font-size:9px;letter-spacing:.7px;color:rgba(186,213,220,.34)}
.global-quick-sublist{gap:0;max-height:374px;padding:0;scroll-snap-type:y proximity}
.global-quick-sublist button{
  min-height:67px;
  height:67px;
  padding:0 3px;
  grid-template-columns:26px 31px minmax(0,1fr) 18px;
  gap:9px;
  overflow:hidden;
  border:0;
  border-bottom:1px solid rgba(153,207,220,.1);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  scroll-snap-align:start;
  transition:background-color .18s ease,transform .16s ease;
}
.global-quick-sublist button:last-child{border-bottom:0}
.global-quick-sublist button::before{
  left:0;
  right:auto;
  top:17px;
  bottom:17px;
  width:2px;
  background:var(--quick-color,#7af0d8);
  opacity:.28;
  transform:none;
  transition:opacity .18s ease,transform .18s ease;
}
.global-quick-sublist button:active{transform:scale(.987);background:rgba(var(--quick-rgb,122,240,216),.065)}
.global-quick-sublist button:active::before{opacity:.9;transform:scaleY(1.35)}
.global-quick-sublist .quick-sub-index{font-size:9px;letter-spacing:.7px;color:rgba(var(--quick-rgb,122,240,216),.45)}
.global-quick-sublist i{
  width:30px;
  height:30px;
  border:1px solid rgba(var(--quick-rgb,122,240,216),.22);
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  font-size:12px;
}
.global-quick-sublist .quick-sub-copy{row-gap:4px}
.global-quick-sublist .quick-sub-copy b{font-size:11.5px;font-weight:650;letter-spacing:.25px}
.global-quick-sublist .quick-sub-copy .quick-sub-desc{font-size:9.5px;color:rgba(194,217,223,.45)}
.global-quick-sublist .quick-sub-copy .quick-sub-meta{max-width:76px;font-size:9px;color:rgba(var(--quick-rgb,122,240,216),.5)}
.global-quick-sublist button>em{font-size:17px;color:rgba(var(--quick-rgb,122,240,216),.4)}
.global-quick-menu.detail-mode{background:linear-gradient(180deg,rgba(6,22,32,.995),rgba(2,12,20,.998));box-shadow:0 24px 58px rgba(0,4,10,.52),inset 0 1px 0 rgba(255,255,255,.05)}

@keyframes homeDomainIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:360px){
  .home-runes{left:10px;right:10px}
  .home-rune{padding-left:1px;padding-right:1px}
  .home-rune-index{margin-left:6px}
  .home-rune-label{font-size:11.5px}
  .home-rune-copy small{font-size:8.5px}
  .global-quick-menu{left:10px;right:10px;padding-left:12px;padding-right:12px}
  .global-quick-sublist button{grid-template-columns:23px 29px minmax(0,1fr) 16px;gap:7px}
}
@media(max-height:720px){
  .home-runes{bottom:calc(90px + env(safe-area-inset-bottom,0px));height:106px;grid-template-rows:22px minmax(0,1fr)}
  .home-rune{min-height:76px;padding-top:6px;padding-bottom:7px;grid-template-rows:10px 29px 1fr}
  .global-quick-menu{bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .global-quick-submenu[aria-hidden="false"]{max-height:268px}
  .global-quick-sublist{max-height:226px}
  .global-quick-sublist button{height:56px;min-height:56px}
}
@media(prefers-reduced-motion:reduce){
  #homeRunes .home-rune{opacity:1;animation:none;transition:none}
  .home-rune-glyph,.home-rune::after,.global-quick-menu,.global-quick-submenu,.global-quick-sublist button{transition:none}
  .global-quick-sublist button{animation:none}
}

/* 伊春播放器 v8：对应最终视觉稿的一套稳定坐标，不再叠加多轮竖屏补丁。 */
#player.skin-yichun:not(.video-mode) .pl-close,
#player.skin-yichun:not(.video-mode) .pl-fav,
#player.skin-yichun:not(.video-mode) .pl-timer{display:none!important}

#player.skin-yichun:not(.video-mode) .pl-topbar{
  min-height:64px;
  padding:calc(10px + env(safe-area-inset-top,0px)) 18px 6px;
}
#player.skin-yichun:not(.video-mode) .pl-tb-title{
  display:flex;
  align-items:baseline;
  gap:7px;
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:0;
}
#player.skin-yichun:not(.video-mode) .pl-tb-cn{font-size:18px;font-weight:650;letter-spacing:1px}
#player.skin-yichun:not(.video-mode) .pl-tb-en{font-size:15px;font-weight:600;letter-spacing:1.2px}

#player.skin-yichun:not(.video-mode) .pl-node-meta{
  position:absolute;
  top:calc(66px + env(safe-area-inset-top,0px));
  left:50%;
  z-index:9;
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(195,221,211,.64);
  font:500 9px/1.2 ui-monospace,"SFMono-Regular",Consolas,monospace;
  letter-spacing:2.8px;
  white-space:nowrap;
  transform:translateX(-50%);
}
#player.skin-yichun:not(.video-mode) .pl-node-meta span{
  padding-left:10px;
  border-left:1px solid rgba(143,227,181,.28);
  color:rgba(242,215,163,.72);
  letter-spacing:1px;
}
#player.skin-yichun:not(.video-mode) .pl-location{
  position:absolute;
  top:calc(91px + env(safe-area-inset-top,0px));
  left:50%;
  z-index:9;
  display:flex;
  min-height:32px;
  align-items:center;
  gap:8px;
  padding:6px 14px;
  border:1px solid rgba(190,220,203,.22);
  border-radius:999px;
  background:rgba(2,21,21,.42);
  color:rgba(242,215,163,.86);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  font-size:11px;
  letter-spacing:.8px;
  transform:translateX(-50%);
  white-space:nowrap;
}
#player.skin-yichun:not(.video-mode) .pl-location svg{width:15px;height:15px;stroke:var(--yc-gold);stroke-width:1.6}

#player.skin-yichun:not(.video-mode) .pl-yichun-scene{
  background:
    linear-gradient(180deg,rgba(0,9,14,.05) 0%,rgba(0,12,15,.08) 38%,rgba(0,9,11,.56) 66%,rgba(0,6,9,.96) 100%),
    var(--pl-city-scene,url("../images/player-scenes/yichun-scene-v2.png")) center 45% / cover no-repeat;
}
#player.skin-yichun:not(.video-mode) .pl-yichun-scene::after{
  background:
    linear-gradient(180deg,rgba(0,6,10,.48) 0%,rgba(0,7,10,.16) 15%,transparent 28%),
    radial-gradient(ellipse at 50% 35%,rgba(91,237,173,.09),transparent 43%),
    linear-gradient(180deg,transparent 44%,rgba(0,10,12,.13) 55%,rgba(0,8,10,.76) 79%,rgba(0,5,8,.97) 100%);
}
#player.skin-yichun:not(.video-mode) .pl-aurora{opacity:.2}

#player.skin-yichun:not(.video-mode) .pl-breath-wrap{
  position:absolute;
  top:17%;
  left:50%;
  width:min(58.5%,244px);
  height:auto;
  aspect-ratio:1;
  margin:0;
  transform:translateX(-50%);
}
#player.skin-yichun:not(.video-mode) .pl-breath-wrap .pl-ring{
  display:block;
  border:1px solid rgba(143,227,181,.22);
  box-shadow:0 0 20px rgba(83,207,166,.06),inset 0 0 20px rgba(83,207,166,.035);
}
#player.skin-yichun:not(.video-mode) .pl-breath-wrap .pl-ring.r1{inset:-8%;border-color:rgba(242,215,163,.22)}
#player.skin-yichun:not(.video-mode) .pl-breath-wrap .pl-ring.r2{inset:-17%;border-color:rgba(143,227,181,.14)}
#player.skin-yichun:not(.video-mode) .pl-breath-wrap .pl-ring.r1::after{
  content:"";
  position:absolute;
  top:12%;
  right:15%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--yc-mint);
  box-shadow:0 0 12px rgba(143,227,181,.78);
}
#player.skin-yichun:not(.video-mode) .pl-disc{
  box-shadow:
    0 0 0 1px rgba(242,215,163,.12),
    0 0 32px rgba(103,235,189,.22),
    0 0 70px rgba(45,177,153,.14),
    inset 0 0 65px rgba(0,0,0,.5);
}

#player.skin-yichun:not(.video-mode) .pl-bottom{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  max-width:none;
  min-height:0;
  margin:0;
  padding:0;
  overflow:hidden;
  pointer-events:none;
}
#player.skin-yichun:not(.video-mode) .pl-bottom button,
#player.skin-yichun:not(.video-mode) .pl-bottom [role="button"],
#player.skin-yichun:not(.video-mode) .pl-bottom .pl-progress{pointer-events:auto}
#player.skin-yichun:not(.video-mode) .pl-nowtag,
#player.skin-yichun:not(.video-mode) .pl-title2,
#player.skin-yichun:not(.video-mode) .pl-subtitle,
#player.skin-yichun:not(.video-mode) .pl-wave,
#player.skin-yichun:not(.video-mode) .pl-progressrow,
#player.skin-yichun:not(.video-mode) .pl-controls,
#player.skin-yichun:not(.video-mode) .pl-iconbar,
#player.skin-yichun:not(.video-mode) .pl-nextup{
  position:absolute;
  left:22px;
  right:22px;
  width:auto;
  max-width:456px;
  margin-left:auto;
  margin-right:auto;
}
#player.skin-yichun:not(.video-mode) .pl-caption{display:none}
#player.skin-yichun:not(.video-mode) .pl-nowtag{
  top:50.3%;
  margin:0;
  font-size:11px;
  letter-spacing:2.2px;
}
#player.skin-yichun:not(.video-mode) .pl-title2{
  top:53.6%;
  margin:0;
  font-size:26px;
  letter-spacing:.8px;
}
#player.skin-yichun.has-long-track-title:not(.video-mode) .pl-title2{font-size:22px}
#player.skin-yichun:not(.video-mode) .pl-subtitle{
  top:58.3%;
  margin:0;
  color:rgba(183,221,205,.78);
  font-size:12px;
  letter-spacing:1.2px;
}
#player.skin-yichun:not(.video-mode) .pl-wave{top:62.7%;height:36px;margin:0}
#player.skin-yichun:not(.video-mode) .pl-progressrow{top:68.4%;margin:0}
#player.skin-yichun:not(.video-mode) .pl-controls{top:72.4%;height:72px;margin:0;gap:58px}
#player.skin-yichun:not(.video-mode) .pl-btn.play{width:66px;height:66px}
#player.skin-yichun:not(.video-mode) .pl-iconbar{top:83.2%;margin:0}
#player.skin-yichun:not(.video-mode) .pl-nextup{
  top:91.2%;
  min-height:52px;
  margin:0;
  background:rgba(2,24,23,.54);
  -webkit-backdrop-filter:blur(14px) saturate(112%);
  backdrop-filter:blur(14px) saturate(112%);
}

@media (max-width:370px){
  #player.skin-yichun:not(.video-mode) .pl-topbar{padding-left:12px;padding-right:12px}
  #player.skin-yichun:not(.video-mode) .pl-nowtag,
  #player.skin-yichun:not(.video-mode) .pl-title2,
  #player.skin-yichun:not(.video-mode) .pl-subtitle,
  #player.skin-yichun:not(.video-mode) .pl-wave,
  #player.skin-yichun:not(.video-mode) .pl-progressrow,
  #player.skin-yichun:not(.video-mode) .pl-controls,
  #player.skin-yichun:not(.video-mode) .pl-iconbar,
  #player.skin-yichun:not(.video-mode) .pl-nextup{left:16px;right:16px}
  #player.skin-yichun:not(.video-mode) .pl-title2{font-size:23px}
  #player.skin-yichun.has-long-track-title:not(.video-mode) .pl-title2{font-size:20px}
}

@media (max-height:740px) and (orientation:portrait){
  #player.skin-yichun:not(.video-mode) .pl-speed-panel,
  #player.skin-yichun:not(.video-mode) .pl-vol-panel{bottom:calc(210px + env(safe-area-inset-bottom,0px))}
  #player.skin-yichun:not(.video-mode) .pl-node-meta{top:calc(57px + env(safe-area-inset-top,0px))}
  #player.skin-yichun:not(.video-mode) .pl-location{top:calc(77px + env(safe-area-inset-top,0px));min-height:28px;padding:4px 12px}
  #player.skin-yichun:not(.video-mode) .pl-breath-wrap{top:14.5%;width:min(46%,180px)}
  #player.skin-yichun:not(.video-mode) .pl-nowtag{top:40.8%}
  #player.skin-yichun:not(.video-mode) .pl-title2{top:43.8%;font-size:22px}
  #player.skin-yichun.has-long-track-title:not(.video-mode) .pl-title2{font-size:19px}
  #player.skin-yichun:not(.video-mode) .pl-subtitle{top:48.2%;font-size:11px}
  #player.skin-yichun:not(.video-mode) .pl-wave{top:52.4%;height:31px}
  #player.skin-yichun:not(.video-mode) .pl-progressrow{top:58%}
  #player.skin-yichun:not(.video-mode) .pl-controls{top:61.8%;height:58px}
  #player.skin-yichun:not(.video-mode) .pl-btn.play{width:58px;height:58px}
  #player.skin-yichun:not(.video-mode) .pl-iconbar{top:72.5%}
  #player.skin-yichun:not(.video-mode) .pl-nextup{top:84.8%;min-height:47px;padding:7px 12px}
}

@media (orientation:landscape) and (max-height:520px){
  #player.skin-yichun:not(.video-mode){display:grid;grid-template-columns:42% 58%;align-items:center}
  #player.skin-yichun:not(.video-mode) .pl-node-meta,
  #player.skin-yichun:not(.video-mode) .pl-location{display:none}
  #player.skin-yichun:not(.video-mode) .pl-breath-wrap{
    position:relative;
    top:auto;
    left:auto;
    grid-column:1;
    width:min(58vh,230px);
    margin:54px auto 0;
    transform:none;
  }
  #player.skin-yichun:not(.video-mode) .pl-bottom{
    position:relative;
    inset:auto;
    grid-column:2;
    align-self:stretch;
    display:flex;
    overflow-y:auto;
    padding:62px 22px 10px;
    pointer-events:auto;
  }
  #player.skin-yichun:not(.video-mode) .pl-nowtag,
  #player.skin-yichun:not(.video-mode) .pl-title2,
  #player.skin-yichun:not(.video-mode) .pl-subtitle,
  #player.skin-yichun:not(.video-mode) .pl-wave,
  #player.skin-yichun:not(.video-mode) .pl-progressrow,
  #player.skin-yichun:not(.video-mode) .pl-controls,
  #player.skin-yichun:not(.video-mode) .pl-iconbar{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    width:100%;
    max-width:440px;
  }
  #player.skin-yichun:not(.video-mode) .pl-nextup{display:none}
}

/* Final typography layer: keep this block last so later scene/player skins
   cannot reduce readable interface copy back to 8-11px. */
.home-runes-rail{font-size:10.5px;line-height:1.2}
.home-rune-index{font-size:10.5px}
#homeRunes .home-rune-label,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-label{font-size:14px}
#homeRunes .home-rune-copy small,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-copy small{font-size:12px;line-height:1.3;letter-spacing:.2px}
.mobile-node-label,
.china-surface-label .mobile-node-label{font-size:13px}

.yc-panel-kicker{font-size:12.5px;letter-spacing:1.7px}
.catalog-feature{height:244px}
.catalog-feature-copy{gap:5px;bottom:18px}
.catalog-feature-copy>small{font-size:13px;letter-spacing:1.2px}
.catalog-feature-copy>b{font-size:21px;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.catalog-feature-copy>span{max-width:100%;font-size:13.5px;line-height:1.45;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.catalog-feature-copy>em{font-size:13px}
.catalog-feature-visual>b{transform:translateY(-32px)}
.catalog-feed-head strong{font-size:18px}
.catalog-feed-head span{font-size:13px}
.catalog-card{min-height:116px;padding-top:11px;padding-bottom:11px}
.catalog-card-copy>b{font-size:14px;line-height:1.45;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.catalog-card-copy>small{font-size:12.5px;line-height:1.45;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.catalog-card-copy>em{font-size:12.5px;line-height:1.4}
.catalog-card-visual>b{font-size:14px}

@media (max-width:370px){
  .home-runes-rail{font-size:9.5px}
  #homeRunes .home-rune-label{font-size:13px}
  #homeRunes .home-rune-copy small{font-size:11px}
  .catalog-feature{height:232px}
  .catalog-feature-copy>b{font-size:19px}
  .catalog-card{grid-template-columns:30px 72px minmax(0,1fr) 18px;min-height:108px}
  .catalog-card-copy>b{font-size:13px}
  .catalog-card-copy>small,.catalog-card-copy>em{font-size:12px}
}

/* 2026-07-15 icon and type spacing pass */
.home-runes{height:132px;grid-template-rows:24px minmax(0,1fr)}
.home-rune{min-height:102px;padding-top:7px;padding-bottom:9px;grid-template-rows:12px 34px minmax(42px,1fr);gap:3px}
.home-rune-glyph{margin-bottom:2px}
.home-rune-copy{gap:5px;line-height:1.2}
.home-rune-copy small{min-height:15px}
.mobile-dock button{gap:5px}
.mobile-dock button span{line-height:1.25}

.yc-panel-heading{gap:20px}
.yc-panel-heading>i{flex:0 0 auto;margin-left:8px}
.yc-rune{gap:7px}
.yc-rune-glyph{margin-bottom:3px}
.yc-rune-copy{gap:4px}

.catalog-feature-copy{padding-right:4px}
.catalog-feature-visual>b{margin-bottom:18px}
.catalog-card{column-gap:12px}
.catalog-card-copy{gap:6px;padding:3px 0}
.catalog-card>i{margin-left:2px}
.catalog-feed-head{margin-bottom:14px;padding-bottom:12px}

.global-quick-grid button,
.global-module,
.destination-chip,
.subcategory-card{gap:8px}
.global-quick-sublist button{gap:11px}
.global-quick-sublist .quick-sub-copy,
.global-entry-copy{gap:4px}
.portal-section-head{gap:12px}
.auth-tabs button{padding-left:10px;padding-right:10px}

@media (max-width:370px){
  .home-runes{height:124px;grid-template-rows:22px minmax(0,1fr)}
  .home-rune{min-height:96px;grid-template-rows:11px 31px minmax(39px,1fr);gap:2px}
  .home-rune-copy{gap:3px}
  .catalog-card{column-gap:8px}
  .catalog-card-copy{gap:4px}
}

/* 2026-07-22 地域声景星盘唱片。最终覆盖层，保留原播放器布局。 */
#player:not(.video-mode) .pl-breath-wrap{
  isolation:isolate;
  overflow:visible;
}
#player:not(.video-mode) .pl-breath-wrap .pl-ring{z-index:0}
#player:not(.video-mode) .pl-breath-wrap .pl-ring.r1::after{display:none}
#player:not(.video-mode) .pl-disc-spectrum{
  position:absolute;
  inset:-18%;
  z-index:1;
  display:block;
  width:136%;
  height:136%;
  pointer-events:none;
  opacity:.74;
  transition:opacity .9s ease;
}
#player:not(.video-mode) .pl-disc-marker{
  position:absolute;
  top:-7.5%;
  right:10.5%;
  z-index:4;
  width:7px;
  height:7px;
  border:1px solid rgba(255,239,199,.76);
  border-radius:50%;
  background:#d9c893;
  box-shadow:0 0 0 4px rgba(217,200,147,.1),0 0 13px rgba(217,200,147,.38);
  pointer-events:none;
}
#player:not(.video-mode) .pl-disc-marker::after{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:inherit;
  background:rgba(247,244,222,.94);
}
#player:not(.video-mode) .pl-disc{
  z-index:2;
  overflow:hidden;
  border:1px solid rgba(222,213,177,.7);
  background:rgba(3,18,20,.82);
  box-shadow:
    0 0 0 1px rgba(143,227,181,.1),
    0 16px 42px rgba(1,16,18,.36),
    0 0 36px rgba(83,207,166,.16),
    inset 0 0 55px rgba(1,12,14,.56);
  animation:none!important;
  transform-origin:50% 50%;
  transition:box-shadow .9s ease;
  will-change:transform;
}
#player:not(.video-mode) .pl-disc::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit;
  background:
    radial-gradient(circle at 50% 50%,transparent 0 56%,rgba(1,12,14,.22) 73%,rgba(1,9,11,.56) 100%),
    conic-gradient(from 26deg,transparent 0 7%,rgba(217,237,224,.07) 8%,transparent 12% 52%,rgba(143,227,181,.045) 54%,transparent 60% 100%);
  pointer-events:none;
}
#player:not(.video-mode) .pl-disc::after{
  content:"";
  position:absolute;
  inset:5.5%;
  z-index:3;
  border:1px solid rgba(230,225,197,.13);
  border-radius:50%;
  box-shadow:inset 0 0 22px rgba(143,227,181,.055);
  pointer-events:none;
}
#player:not(.video-mode) .pl-disc-rotor{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  border-radius:50%;
  transform:translateZ(0);
  transform-origin:50% 50%;
  will-change:transform;
}
#player:not(.video-mode) .pl-disc-art{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:50%;
  background:rgba(5,27,28,.94);
}
#player:not(.video-mode) .pl-disc-art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 44%;
  transform:scale(1.045);
  filter:saturate(.76) contrast(1.07) brightness(.73);
  -webkit-user-select:none;
  user-select:none;
  pointer-events:none;
}
#player.has-track-artwork:not(.video-mode) .pl-disc-art img{
  transform:scale(1.025);
  filter:saturate(.9) contrast(1.04) brightness(.84);
}
#player:not(.video-mode) .pl-disc-art::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 50%,rgba(8,31,30,.02) 0 32%,rgba(2,16,18,.18) 68%,rgba(1,10,12,.5) 100%),
    linear-gradient(145deg,rgba(218,244,228,.12),transparent 31% 70%,rgba(3,16,18,.2));
  pointer-events:none;
}
#player:not(.video-mode) .pl-disc-grooves{
  position:absolute;
  inset:3.5%;
  border-radius:50%;
  opacity:.68;
  background:
    repeating-radial-gradient(circle at 50% 50%,transparent 0 3px,rgba(228,244,233,.09) 4px,rgba(1,12,14,.14) 5px,transparent 7px),
    radial-gradient(circle at 50% 50%,transparent 0 28%,rgba(2,13,15,.16) 72%,rgba(1,9,11,.34));
  mix-blend-mode:soft-light;
  animation:none!important;
}
#player:not(.video-mode) .pl-disc-face,
#player:not(.video-mode) .pl-disc-forest{display:none!important}
#player:not(.video-mode) .pl-disc-sheen{
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:50%;
  opacity:.5;
  background:linear-gradient(126deg,rgba(238,248,237,.14),transparent 24% 64%,rgba(143,227,181,.065) 75%,transparent 86%);
  mix-blend-mode:screen;
  animation:none!important;
  pointer-events:none;
}
#player:not(.video-mode) .pl-disc-hub{
  position:absolute;
  top:50%;
  left:50%;
  z-index:4;
  display:grid;
  place-items:center;
  width:18%;
  height:18%;
  border:1px solid rgba(226,231,207,.3);
  border-radius:50%;
  background:linear-gradient(145deg,rgba(215,235,221,.22),rgba(5,25,27,.68));
  -webkit-backdrop-filter:blur(10px) saturate(115%);
  backdrop-filter:blur(10px) saturate(115%);
  box-shadow:inset 0 1px 0 rgba(244,247,226,.28),0 8px 22px rgba(1,12,14,.38);
  transform:translate(-50%,-50%);
  animation:none!important;
}
#player:not(.video-mode) .pl-disc-hub span{
  width:30%;
  aspect-ratio:1;
  border:1px solid rgba(239,235,208,.42);
  border-radius:50%;
  background:rgba(221,211,170,.84);
  box-shadow:0 0 0 4px rgba(2,18,20,.22),inset 0 1px 1px rgba(255,255,255,.48);
}
#player.is-paused:not(.video-mode) .pl-disc-spectrum{opacity:.35}
#player.is-paused:not(.video-mode) .pl-disc{
  box-shadow:
    0 0 0 1px rgba(143,227,181,.07),
    0 12px 34px rgba(1,16,18,.3),
    0 0 23px rgba(83,207,166,.09),
    inset 0 0 55px rgba(1,12,14,.6);
}

@media (prefers-reduced-transparency:reduce){
  #player:not(.video-mode) .pl-disc-hub{
    background:rgba(12,35,35,.96);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}

@media (prefers-reduced-motion:reduce){
  #player:not(.video-mode) .pl-disc,
  #player:not(.video-mode) .pl-disc-rotor,
  #player:not(.video-mode) .pl-disc-sheen,
  #player:not(.video-mode) .pl-disc-grooves{
    animation:none!important;
    transform:none!important;
  }
  #player:not(.video-mode) .pl-disc-spectrum{opacity:.26}
}

/* 2026-07-27 手机端转场与合成线稳定性。 */
.pl-entry-bridge{
  position:absolute;z-index:95;overflow:hidden;pointer-events:none;
  background:#06151b;box-shadow:0 18px 54px rgba(0,0,0,.42),0 0 34px rgba(105,222,185,.18);
  border-radius:18px;transform-origin:50% 50%;will-change:transform,opacity;contain:layout paint;
}
.pl-entry-bridge img{display:block;width:100%;height:100%;object-fit:cover}
.pl-entry-scrim{position:absolute;inset:0;z-index:94;pointer-events:none;background:#020b0e;opacity:0;will-change:opacity}
#player{will-change:opacity,transform;transition:opacity .32s cubic-bezier(.22,.8,.22,1),transform .5s cubic-bezier(.22,.8,.22,1)}
#player.is-prewarmed{opacity:.001!important;transform:translateZ(0) scale(1)!important;pointer-events:none!important}
#player.is-leaving{opacity:0!important;transform:scale(.985)!important;pointer-events:none!important;transition-duration:.32s!important}
#player:not(.video-mode) .pl-topbar{
  transition:opacity .42s cubic-bezier(.22,.8,.22,1),transform .52s cubic-bezier(.22,.8,.22,1);
}
#player:not(.video-mode) .pl-breath-wrap{
  transition:opacity .5s cubic-bezier(.22,.8,.22,1),transform .58s cubic-bezier(.22,.8,.22,1);
}
#player:not(.video-mode) .pl-bottom{
  transition:opacity .5s .06s cubic-bezier(.22,.8,.22,1),transform .58s .06s cubic-bezier(.22,.8,.22,1);
}
#player.is-entering:not(.video-mode) .pl-topbar{opacity:0;transform:translate3d(0,-10px,0)}
#player.is-entering:not(.video-mode) .pl-breath-wrap{opacity:0;transform:translate3d(0,14px,0) scale(.94)}
#player.is-entering:not(.video-mode) .pl-bottom{opacity:0;transform:translate3d(0,18px,0)}
#player:not(.video-mode) .pl-disc-rotor{animation:plRecordRotorTurn 36s linear infinite}
#player.is-paused:not(.video-mode) .pl-disc-rotor{animation-play-state:paused}
@keyframes plRecordRotorTurn{to{transform:translateZ(0) rotate(360deg)}}

.yc-panel.is-entering[aria-hidden="false"]{
  opacity:0;transform:translate3d(0,18px,0) scale(.995);will-change:transform,opacity;
}
.yc-panel-list{transition:opacity .2s ease,transform .24s cubic-bezier(.22,.8,.22,1)}
.yc-panel-list.is-swapping{opacity:.28;transform:translate3d(0,5px,0)}
.catalog-panel-loading{display:grid;gap:11px;padding-top:3px;color:rgba(196,219,227,.46)}
.catalog-panel-loading>span{height:18px;font-size:11px;letter-spacing:1px}
.catalog-panel-loading>i{display:block;height:104px;border:1px solid rgba(157,202,220,.1);border-radius:20px;background:linear-gradient(110deg,rgba(20,39,52,.72),rgba(6,18,28,.86));opacity:.58}
.catalog-panel-loading>i.catalog-loading-feature{height:226px;border-radius:24px;opacity:.72}
.catalog-panel-loading{animation:catalogLoadingBreath 1.6s ease-in-out infinite alternate}
@keyframes catalogLoadingBreath{to{opacity:.68}}


@media (pointer:coarse){
  #player{
    position:fixed;
    width:100%;
    height:100%;
    transform:none;
    will-change:opacity;
    transition:opacity .28s cubic-bezier(.22,.8,.22,1);
  }
  #player.show,#player.is-prewarmed,#player.is-leaving{transform:none!important}
  #player:not(.video-mode) .pl-topbar,
  #player:not(.video-mode) .pl-bottom{
    transform:none!important;
    transition:opacity .26s cubic-bezier(.22,.8,.22,1)!important;
    transition-delay:0s!important;
  }
  #player:not(.video-mode) .pl-breath-wrap{
    transition:opacity .26s cubic-bezier(.22,.8,.22,1)!important;
    transition-delay:0s!important;
  }
  #player.skin-yichun:not(.video-mode) .pl-breath-wrap{
    transform:translateX(-50%)!important;
  }
  #player.skin-yichun:not(.video-mode) .pl-yichun-scene{
    inset:0;
    opacity:1;
    transform:none;
    transition:none;
    will-change:auto;
  }
  #player.skin-yichun:not(.video-mode) .pl-yichun-scene::after{
    transform:none;
    will-change:auto;
  }
  .pl-entry-bridge{
    background:
      radial-gradient(circle at 50% 42%,rgba(126,238,210,.34),rgba(25,97,91,.25) 38%,rgba(4,24,29,.96) 76%),
      #06151b;
    box-shadow:0 14px 44px rgba(0,0,0,.38),0 0 28px rgba(105,222,185,.22);
  }
  .pl-entry-bridge img{display:none}
  #player:not(.video-mode) .pl-aurora{display:none}
  .yc-panel-back,.catalog-feature-visual>b,.catalog-card-visual>b{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  #player:not(.video-mode) .pl-disc-hub{
    -webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(12,35,35,.94);
  }
  #player.skin-yichun:not(.video-mode) .pl-yichun-scene,
  #player.skin-yichun:not(.video-mode) .pl-yichun-scene::after,
  #player.skin-yichun:not(.video-mode) .pl-disc,
  #player.skin-yichun:not(.video-mode) .pl-disc-face,
  #player.skin-yichun:not(.video-mode) .pl-disc-grooves,
  #player.skin-yichun:not(.video-mode) .pl-disc-sheen{animation:none!important}
}

@media (prefers-reduced-motion:reduce){
  .pl-entry-bridge,.pl-entry-scrim{display:none!important}
  #player,#player .pl-topbar,#player .pl-breath-wrap,#player .pl-bottom,.yc-panel,.yc-panel-list{transition-duration:.01ms!important;transition-delay:0s!important}
  .catalog-panel-loading{animation:none}
}

/* 2026-07-30 mobile UI polish: tactile feedback and seamless routing. */
.app button,.app [role="button"]{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.app button{transition-property:transform,opacity,color,border-color,background-color,box-shadow;transition-duration:.18s;transition-timing-function:cubic-bezier(.22,.8,.22,1)}
.app button.is-pressing{transform:translate3d(0,1px,0) scale(.975)!important;filter:brightness(1.08)}
.app button:focus-visible,.app input:focus-visible{outline:2px solid rgba(132,235,217,.78);outline-offset:3px}

.route-veil{position:absolute;inset:0;z-index:93;overflow:hidden;pointer-events:none;opacity:0;contain:strict}
.route-veil::before{
  content:"";position:absolute;left:var(--route-x,50%);top:var(--route-y,70%);width:34px;height:34px;border-radius:50%;
  background:radial-gradient(circle,rgba(var(--route-color,122,240,216),.28),rgba(var(--route-color,122,240,216),.08) 44%,transparent 72%);
  transform:translate3d(-50%,-50%,0) scale(.4);opacity:0;will-change:transform,opacity;
}
.route-veil.is-pulsing{opacity:1}
.route-veil.is-pulsing::before{animation:routeVeilPulse .5s cubic-bezier(.18,.8,.24,1) both}
@keyframes routeVeilPulse{
  0%{opacity:.82;transform:translate3d(-50%,-50%,0) scale(.4)}
  62%{opacity:.25}
  100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(25)}
}

.access-gate{transition:opacity .38s cubic-bezier(.22,.8,.22,1),transform .48s cubic-bezier(.22,.8,.22,1)}
.access-gate.is-leaving{opacity:0;transform:scale(1.018);pointer-events:none}
.access-form button.is-loading i{border-color:rgba(4,39,35,.16);border-top-color:#062d29;font-size:0;animation:accessButtonSpin .72s linear infinite}
@keyframes accessButtonSpin{to{transform:rotate(360deg)}}
.app.ui-entering #home-ui{animation:uiHomeReveal .68s cubic-bezier(.22,.8,.22,1) both}
@keyframes uiHomeReveal{from{opacity:0;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}

.global-quick-menu[aria-hidden="false"]{
  animation:quickConsoleReveal .46s cubic-bezier(.18,.82,.22,1) both;
  border-color:rgba(var(--quick-rgb,122,240,216),.24);
  box-shadow:0 28px 74px rgba(0,4,10,.55),inset 0 1px 0 rgba(255,255,255,.07),0 0 34px rgba(var(--quick-rgb,122,240,216),.07);
}
@keyframes quickConsoleReveal{from{opacity:0;transform:translate3d(0,18px,0) scale(.982)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.global-quick-sublist button{min-height:58px}
.global-quick-sublist .quick-sub-copy b{font-size:12px}
.global-quick-sublist .quick-sub-copy .quick-sub-desc{font-size:10.5px;line-height:1.35}
.global-quick-sublist .quick-sub-copy .quick-sub-meta{font-size:10px}
.global-quick-sublist button:focus-visible{outline-color:rgba(var(--quick-rgb,122,240,216),.72);outline-offset:-2px}

.mobile-portal[aria-hidden="false"]{animation:portalSurfaceReveal .48s cubic-bezier(.18,.82,.22,1) both}
@keyframes portalSurfaceReveal{from{opacity:0;transform:translate3d(0,20px,0) scale(.992)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.portal-head::after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(122,240,216,.24),rgba(147,214,235,.08),transparent)}
.portal-page{animation-duration:.46s}

.signed-hero{padding:24px 20px 21px;border-color:rgba(140,229,212,.2);background:linear-gradient(132deg,rgba(23,58,62,.88),rgba(7,23,34,.94) 62%)}
.signed-hero::before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:2px;background:linear-gradient(180deg,transparent,#78decd,transparent);box-shadow:0 0 14px rgba(120,222,205,.42)}
.signed-stats{background:rgba(6,22,32,.48);border-color:rgba(147,208,220,.11)}
.signed-stats b{font-size:19px;font-variant-numeric:tabular-nums}
.signed-stats span{font-size:11px}
.signed-menu{gap:7px}
.signed-menu button{min-height:66px;background:rgba(8,25,36,.56);border-color:rgba(145,207,228,.11)}
.signed-menu button:active{border-color:rgba(122,240,216,.32);background:rgba(13,41,50,.72)}
.signed-menu button b{font-size:12px}.signed-menu button small{font-size:11px}
.signed-menu button>i{box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.auth-logout:active{border-color:rgba(223,169,169,.28);color:rgba(240,199,201,.82)}

.yc-hero-copy{color:rgba(215,226,244,.68)}
.yc-hero-intro{color:rgba(193,208,230,.58)}
.yc-rune{transition:transform .22s cubic-bezier(.22,.8,.22,1),filter .22s ease}
.yc-rune:active .yc-rune-glyph{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 34px color-mix(in srgb,var(--rune-color,#9fc5ff) 35%,transparent)}
.yc-panel[aria-hidden="false"]{animation:ycPanelReveal .46s cubic-bezier(.18,.82,.22,1) both}
@keyframes ycPanelReveal{from{opacity:0;transform:translate3d(0,20px,0) scale(.994)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.catalog-feature,.catalog-card{transition:transform .18s cubic-bezier(.22,.8,.22,1),border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.catalog-feature:active,.catalog-card:active{transform:translate3d(0,1px,0) scale(.988);border-color:color-mix(in srgb,var(--cat) 40%,transparent);box-shadow:0 10px 28px rgba(0,0,0,.22)}
.yc-panel-list[aria-busy="true"]{cursor:progress}

.mobile-dock button{position:relative}
.mobile-dock button.active::after{transition:transform .32s cubic-bezier(.22,.8,.22,1),opacity .24s ease}
#player button:active{filter:brightness(1.12)}
#player input[type="range"]{touch-action:pan-x}

@media (pointer:coarse){
  .global-quick-menu,.mobile-portal,.signed-hero,.yc-panel{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  /* Animated WebGL canvases must not be filtered by the browser compositor on phones. */
  #mobile-globe-canvas,
  .app[data-globe-theme="day"]:not(.china-focus) #mobile-globe-canvas,
  .app.china-focus #mobile-globe-canvas{
    filter:none!important;
    transition:opacity .55s ease,transform .82s cubic-bezier(.22,.8,.22,1)!important;
  }
  .mobile-ambient{mix-blend-mode:normal;opacity:.7}
  .mobile-star,
  .mobile-node::after,
  .china-surface-label::before,
  .china-surface-label::after,
  .app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient,
  .app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::before,
  .app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::after,
  .app[data-globe-theme="day"]:not(.china-focus) #globe-stage::before{
    animation:none!important;
  }
  .app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::before,
  .app[data-globe-theme="day"]:not(.china-focus) .mobile-ambient::after{
    filter:none!important;
    mix-blend-mode:normal!important;
  }
  #homeRunes .home-rune{
    animation:none!important;
    opacity:1;
    transform:none;
  }
}

html[data-mobile-compat="oppo"] #mobile-globe-canvas,
html[data-mobile-compat="oppo"] .app[data-globe-theme="day"] #mobile-globe-canvas,
html[data-mobile-compat="oppo"] .app.china-focus #mobile-globe-canvas{
  filter:none!important;transition:opacity .16s linear!important;backface-visibility:hidden;contain:strict;
}
html[data-mobile-compat="oppo"] .mobile-ambient,
html[data-mobile-compat="oppo"] #globe-stage::before{animation:none!important;filter:none!important;mix-blend-mode:normal!important}
html[data-mobile-compat="oppo"] .global-quick-menu,
html[data-mobile-compat="oppo"] .mobile-portal,
html[data-mobile-compat="oppo"] #player.is-mini{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
@media (prefers-reduced-motion:reduce){
  .route-veil{display:none!important}
  .access-gate,.app.ui-entering #home-ui,.global-quick-menu[aria-hidden="false"],.mobile-portal[aria-hidden="false"],.yc-panel[aria-hidden="false"]{animation:none!important;transition-duration:.01ms!important}
}

/* Four-domain navigation v218: a calm, readable 2x2 action console. */
#homeRunes.home-runes,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes.home-runes{
  left:14px;
  right:14px;
  bottom:calc(96px + env(safe-area-inset-bottom,0px));
  width:auto;
  height:158px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:34px repeat(2,minmax(0,1fr));
  gap:0;
  overflow:hidden;
  border:1px solid rgba(160,213,221,.18);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(9,29,39,.955),rgba(3,15,24,.985) 68%);
  box-shadow:0 22px 52px rgba(0,5,12,.4),inset 0 1px 0 rgba(255,255,255,.06);
}
#homeRunes.home-runes::before{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(195,235,232,.4) 24%,rgba(122,240,216,.12) 72%,transparent);
}
#homeRunes .home-runes-rail{
  grid-column:1/-1;
  height:34px;
  min-width:0;
  padding:0 13px;
  gap:9px;
  border-bottom:1px solid rgba(154,207,217,.11);
  color:rgba(226,240,239,.82);
  font-family:var(--font-cn);
  font-size:11px;
  font-weight:650;
  line-height:1;
  letter-spacing:0;
}
#homeRunes .home-runes-rail i{
  min-width:18px;
  background:linear-gradient(90deg,rgba(167,219,220,.22),transparent);
}
#homeRunes .home-runes-rail em{
  color:rgba(179,211,216,.38);
  font:600 7.5px/1 ui-monospace,"SFMono-Regular",Consolas,monospace;
  letter-spacing:1.1px;
}
#homeRunes .home-rune{
  position:relative;
  min-width:0;
  min-height:0;
  height:auto;
  padding:8px 9px 8px 11px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 12px;
  grid-template-rows:1fr;
  align-items:center;
  justify-items:start;
  gap:8px;
  border:0;
  border-radius:0;
  background:transparent;
}
#homeRunes .home-rune:nth-of-type(1),
#homeRunes .home-rune:nth-of-type(2){border-bottom:1px solid rgba(153,205,216,.1)}
#homeRunes .home-rune:nth-of-type(1),
#homeRunes .home-rune:nth-of-type(3){border-right:1px solid rgba(153,205,216,.1)}
#homeRunes .home-rune:not(:first-of-type)::before{content:none}
#homeRunes .home-rune::after{
  content:"›";
  position:static;
  grid-column:3;
  align-self:center;
  width:auto;
  height:auto;
  color:color-mix(in srgb,var(--domain) 58%,rgba(194,220,224,.35));
  font:300 17px/1 var(--font-cn);
  background:none;
  box-shadow:none;
  opacity:.66;
  transform:none;
  transition:opacity .18s ease,transform .18s ease;
}
#homeRunes .home-rune-index{display:none}
#homeRunes .home-rune-glyph,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-glyph{
  grid-column:1;
  width:34px;
  height:34px;
  margin:0;
  overflow:visible;
  border:1px solid color-mix(in srgb,var(--domain) 42%,rgba(190,224,226,.12));
  border-radius:50%;
  background:radial-gradient(circle at 36% 30%,color-mix(in srgb,var(--domain) 22%,transparent),rgba(4,23,31,.76) 68%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 18px color-mix(in srgb,var(--domain) 14%,transparent);
}
#homeRunes .home-rune-glyph::before{
  inset:-4px;
  z-index:-1;
  border:1px solid color-mix(in srgb,currentColor 22%,transparent);
  border-right-color:transparent;
  border-radius:50%;
  opacity:.78;
  transform:rotate(-32deg);
}
#homeRunes .home-rune-glyph::after,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-glyph::after{
  inset:-1px 2px auto auto;
  width:3px;
  height:3px;
  background:currentColor;
  box-shadow:0 0 7px currentColor;
  opacity:.9;
}
#homeRunes .home-rune-glyph > svg{
  width:16px;
  height:16px;
  stroke-width:1.55;
  filter:drop-shadow(0 0 5px color-mix(in srgb,currentColor 38%,transparent));
}
#homeRunes .home-rune-copy{
  grid-column:2;
  min-width:0;
  align-items:flex-start;
  gap:4px;
  line-height:1;
}
#homeRunes .home-rune-label,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-label{
  color:rgba(241,248,247,.93);
  font-size:13px;
  font-weight:670;
  line-height:1;
}
#homeRunes .home-rune-copy small,
.app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-copy small{
  min-height:0;
  color:rgba(188,211,216,.5);
  font-size:10px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:0;
}
#homeRunes .home-rune:is(:hover,:focus-visible){
  background:linear-gradient(100deg,color-mix(in srgb,var(--domain) 8%,transparent),transparent 76%);
}
#homeRunes .home-rune:is(:hover,:focus-visible) .home-rune-glyph{
  transform:translateY(-1px) scale(1.035);
  border-color:color-mix(in srgb,var(--domain) 64%,rgba(220,244,244,.18));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 24px color-mix(in srgb,var(--domain) 25%,transparent);
}
#homeRunes .home-rune:is(:hover,:focus-visible)::after{opacity:1;transform:translateX(2px)}
#homeRunes .home-rune:active{transform:scale(.985);background:color-mix(in srgb,var(--domain) 8%,rgba(8,29,38,.22))}
#homeRunes .home-rune:active .home-rune-glyph{transform:scale(.95)}

@media (max-width:370px){
  #homeRunes.home-runes,
  .app[data-globe-theme="day"]:not(.china-focus) #homeRunes.home-runes{
    left:10px;
    right:10px;
    bottom:calc(90px + env(safe-area-inset-bottom,0px));
    height:148px;
    grid-template-rows:32px repeat(2,minmax(0,1fr));
  }
  #homeRunes .home-runes-rail{height:32px;padding:0 11px;font-size:10.5px}
  #homeRunes .home-rune{padding:7px 7px 7px 9px;grid-template-columns:34px minmax(0,1fr) 10px;gap:7px}
  #homeRunes .home-rune-glyph,
  .app[data-globe-theme="day"]:not(.china-focus) #homeRunes .home-rune-glyph{width:31px;height:31px}
  #homeRunes .home-rune-label{font-size:12.5px}
  #homeRunes .home-rune-copy small{font-size:9.5px}
}

/* ===== 手机视频播放器 v264 =====
   视频保持 16:9，页面采用成熟视频应用的舞台 + 信息区结构。 */
#player .pl-video-info{display:none}
#player.video-mode{
  --video-stage-top:calc(58px + env(safe-area-inset-top,0px));
  --video-stage-height:56.25cqw;
  background:
    radial-gradient(circle at 76% 34%,rgba(45,117,109,.12),transparent 32%),
    linear-gradient(180deg,#020507 0%,#061014 48%,#02080b 100%);
  color:#edf7f3;
  overflow:hidden;
}
#player.video-mode .pl-video{
  top:var(--video-stage-top);left:0;right:0;width:100%;height:var(--video-stage-height);
  aspect-ratio:16/9;border:0;border-radius:0;background:#000;box-shadow:none;
}
#player.video-mode .pl-video video{border-radius:0}
#player.video-mode .pl-video-overlay{z-index:3;-webkit-tap-highlight-color:transparent}

#player.video-mode .pl-vctrl{
  inset:0;width:100%;height:100%;aspect-ratio:auto;overflow:visible;
  opacity:0;pointer-events:none;transition:opacity .22s ease;
}
#player.video-mode .pl-vctrl.show{opacity:1;pointer-events:none}
#player.video-mode .pl-vctrl-top,
#player.video-mode .pl-vctrl-center,
#player.video-mode .pl-vctrl-bottom{pointer-events:auto}
#player.video-mode .pl-vctrl-top{
  top:0;height:var(--video-stage-top);padding:env(safe-area-inset-top,0px) 12px 0;
  display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px;
  background:linear-gradient(180deg,rgba(1,5,7,.98),rgba(1,5,7,.86));
}
#player.video-mode .pl-vctrl-back,
#player.video-mode .pl-vctrl-more{
  width:44px;height:44px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;
  background:transparent;color:rgba(239,248,245,.94);-webkit-tap-highlight-color:transparent;
}
#player.video-mode .pl-vctrl-back:active,
#player.video-mode .pl-vctrl-more:active{transform:scale(.92);background:rgba(255,255,255,.08)}
#player.video-mode .pl-vctrl-back svg,
#player.video-mode .pl-vctrl-more svg{width:23px;height:23px;stroke-width:1.8}
#player.video-mode .pl-vctrl-title{
  display:block;min-width:0;padding:0;text-align:center;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:15px;font-weight:650;letter-spacing:0;color:rgba(238,247,244,.94);
}
#player.video-mode .pl-vctrl-center{
  top:var(--video-stage-top);left:0;right:0;width:100%;height:var(--video-stage-height);
  display:grid;place-items:center;transform:none;pointer-events:none;
}
#player.video-mode .pl-vctrl-bigplay{
  width:62px;height:62px;pointer-events:auto;border:1px solid rgba(255,255,255,.32);
  background:rgba(0,0,0,.46);box-shadow:0 10px 34px rgba(0,0,0,.32);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1;
}
#player.video-mode:not(.is-paused) .pl-vctrl-bigplay{opacity:0;pointer-events:none}

#player.video-mode .pl-vctrl-bottom{
  top:calc(var(--video-stage-top) + var(--video-stage-height) - 76px);
  left:0;right:0;bottom:auto;height:76px;padding:24px 14px 7px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));
}
#player.video-mode .pl-vctrl-progress{
  height:3px;margin:0 0 9px;border-radius:3px;background:rgba(255,255,255,.24);
}
#player.video-mode .pl-vctrl-progress::before{top:-11px;bottom:-11px}
#player.video-mode .pl-vctrl-progress .pl-progress-buffer{background:rgba(255,255,255,.28)}
#player.video-mode .pl-vctrl-progress .pl-progress-fill{background:#74d8c0;box-shadow:0 0 8px rgba(116,216,192,.32)}
#player.video-mode .pl-vctrl-progress .pl-progress-handle{
  width:12px;height:12px;margin-top:0;background:#effff9;box-shadow:0 1px 7px rgba(0,0,0,.5);opacity:1;
}
#player.video-mode .pl-vctrl-bar{min-height:34px;display:flex;align-items:center;justify-content:space-between}
#player.video-mode .pl-vctrl-bar-left,
#player.video-mode .pl-vctrl-bar-right{position:static;width:auto;display:flex;align-items:center;gap:10px}
#player.video-mode .pl-vctrl-play,
#player.video-mode .pl-vctrl-speed-btn,
#player.video-mode .pl-vctrl-fs{
  min-width:38px;height:36px;padding:0 8px;border:0;border-radius:5px;display:grid;place-items:center;
  background:transparent;color:#fff;-webkit-tap-highlight-color:transparent;
}
#player.video-mode .pl-vctrl-play{width:38px;min-width:38px;height:36px;border:0;background:transparent}
#player.video-mode .pl-vctrl-play::before{border-top-width:7px;border-bottom-width:7px;border-left-width:11px}
#player.video-mode:not(.is-paused) .pl-vctrl-play::before{width:12px;height:15px;background:linear-gradient(90deg,currentColor 0 3px,transparent 3px 9px,currentColor 9px 12px)}
#player.video-mode .pl-vctrl-time{font:500 11px/1 "SFMono-Regular",Consolas,monospace;letter-spacing:0;color:rgba(255,255,255,.76);font-variant-numeric:tabular-nums}
#player.video-mode .pl-vctrl-speed-btn{min-width:46px;font:650 11px/1 "SFMono-Regular",Consolas,monospace}
#player.video-mode .pl-vctrl-fs{width:38px;min-width:38px}
#player.video-mode .pl-vctrl-fs svg{width:19px;height:19px}
#player.video-mode .pl-vctrl-play:active,
#player.video-mode .pl-vctrl-speed-btn:active,
#player.video-mode .pl-vctrl-fs:active{background:rgba(255,255,255,.12);transform:scale(.94)}

#player.video-mode .pl-video-info{
  display:block;
  position:absolute;top:calc(var(--video-stage-top) + var(--video-stage-height));left:0;right:0;bottom:0;
  z-index:8;overflow-y:auto;overscroll-behavior:contain;padding:20px 20px calc(24px + env(safe-area-inset-bottom,0px));
  text-align:left;background:linear-gradient(180deg,rgba(6,18,22,.98),rgba(2,9,12,.99));
  border-top:1px solid rgba(129,207,188,.13);scrollbar-width:none;
}
#player.video-mode .pl-video-info::-webkit-scrollbar{display:none}
#player.video-mode .pl-vctrl-copy{display:block;width:100%;margin:0;text-align:left;text-shadow:none}
#player.video-mode .pl-video-kicker{
  display:block;margin-bottom:9px;color:rgba(125,215,193,.72);font-size:10px;font-weight:700;
  line-height:1.2;letter-spacing:1.4px;
}
#player.video-mode .pl-vctrl-media-title{
  display:-webkit-box;width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  white-space:normal;text-overflow:ellipsis;font-size:21px;line-height:1.38;font-weight:700;letter-spacing:0;color:#f2f8f5;
}
#player.video-mode .pl-vctrl-media-sub{
  display:-webkit-box;width:100%;margin-top:8px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  white-space:normal;font-size:13px;line-height:1.55;letter-spacing:0;color:rgba(211,229,222,.66);
}
#player.video-mode .pl-vctrl-copy small{
  display:block;margin-top:10px;font-size:10.5px;line-height:1.55;letter-spacing:0;color:rgba(181,205,197,.4);
}
#player.video-mode .pl-vctrl-side{
  position:static;margin-top:18px;padding-top:14px;border-top:1px solid rgba(143,205,191,.1);
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
}
#player.video-mode .pl-vctrl-side button{
  width:100%;min-height:58px;padding:7px 4px;border:0;border-radius:6px;background:rgba(120,199,182,.055);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:rgba(232,245,240,.84);
}
#player.video-mode .pl-vctrl-side button:active{transform:scale(.97);background:rgba(120,199,182,.13)}
#player.video-mode .pl-vctrl-side svg{width:21px;height:21px;stroke-width:1.65}
#player.video-mode .pl-vctrl-side span{font-size:11px;line-height:1;color:rgba(210,228,222,.58)}
#player.video-mode .pl-vctrl-fav.on{color:#f29aaa;background:rgba(242,154,170,.08)}
#player.video-mode .pl-vctrl-fav.on svg{fill:#f29aaa;stroke:#f29aaa}

#player.video-mode .pl-video-status{
  position:absolute;z-index:24;top:calc(var(--video-stage-top) + 28.125cqw);left:50%;
  transform:translate(-50%,-50%);min-height:38px;max-width:78%;padding:8px 12px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;gap:9px;background:rgba(0,0,0,.68);
  color:rgba(244,250,247,.9);font-size:11px;line-height:1.4;text-align:center;
}
#player.video-mode .pl-video-status[hidden]{display:none}
#player.video-mode .pl-video-status i{width:14px;height:14px;border:1.5px solid rgba(255,255,255,.22);border-top-color:#7de0c8;border-radius:50%;animation:aggregateSpin .8s linear infinite}
#player.video-mode .pl-video-status[data-state="error"] i{display:none}
#player.video-mode .pl-video-status[data-state="error"]{border:1px solid rgba(242,154,170,.26);color:#ffd9df;background:rgba(41,9,15,.82)}
#player.video-mode .pl-seek-tip{
  bottom:auto;padding:6px 9px;border:1px solid rgba(255,255,255,.14);border-radius:5px;
  background:rgba(0,0,0,.82);font-size:11px;font-variant-numeric:tabular-nums;
}

#player.video-mode .pl-speed-panel{
  position:absolute;right:14px;bottom:max(20px,env(safe-area-inset-bottom,0px));z-index:62;
  display:grid!important;grid-template-columns:repeat(3,minmax(54px,1fr));gap:7px;min-width:210px;
  padding:12px;border:1px solid rgba(126,216,192,.16);border-radius:8px;background:rgba(5,16,20,.96);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
}
#player.video-mode .pl-speed-opt{min-height:42px;border-radius:5px;background:rgba(126,216,192,.06)}
#player.video-mode .pl-speed-opt.active{background:rgba(126,216,192,.18);color:#9ff0dc}
#player.video-mode .pl-vol-panel{display:none!important}
#player.video-mode .pl-done.show~.pl-video-info,
#player.video-mode .pl-done.show~.pl-video-status{display:none!important}

#player.video-mode:fullscreen .pl-video,
#player.video-mode:-webkit-full-screen .pl-video{
  inset:0;width:100%;height:100%;aspect-ratio:auto;
}
#player.video-mode:fullscreen .pl-video-info,
#player.video-mode:-webkit-full-screen .pl-video-info{display:none}
#player.video-mode:fullscreen .pl-vctrl-top,
#player.video-mode:-webkit-full-screen .pl-vctrl-top{
  top:0;height:62px;padding:env(safe-area-inset-top,0px) 18px 0;background:linear-gradient(180deg,rgba(0,0,0,.72),transparent);
}
#player.video-mode:fullscreen .pl-vctrl-center,
#player.video-mode:-webkit-full-screen .pl-vctrl-center{inset:0;width:100%;height:100%}
#player.video-mode:fullscreen .pl-vctrl-bottom,
#player.video-mode:-webkit-full-screen .pl-vctrl-bottom{
  top:auto;bottom:0;height:82px;padding:26px 20px calc(10px + env(safe-area-inset-bottom,0px));
}

@media (orientation:landscape) and (max-height:600px){
  #player.video-mode .pl-video{inset:0;width:100%;height:100%;aspect-ratio:auto}
  #player.video-mode .pl-video-info{display:none}
  #player.video-mode .pl-vctrl-top{top:0;height:58px;padding:env(safe-area-inset-top,0px) 18px 0;background:linear-gradient(180deg,rgba(0,0,0,.72),transparent)}
  #player.video-mode .pl-vctrl-center{inset:0;width:100%;height:100%}
  #player.video-mode .pl-vctrl-bottom{top:auto;bottom:0;height:78px;padding:24px 20px calc(8px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:360px){
  #player.video-mode .pl-video{left:0;right:0}
  #player.video-mode .pl-video-info{padding-left:16px;padding-right:16px}
  #player.video-mode .pl-vctrl-media-title{font-size:18px}
  #player.video-mode .pl-vctrl-side button{min-height:54px}
}
@media (prefers-reduced-motion:reduce){
  #player.video-mode .pl-vctrl{transition:none}
  #player.video-mode .pl-video-status i{animation:none}
}

/* 伊春独立城市皮肤：红松林月夜。极光视觉仅保留给芬兰库奥皮奥。 */
#player:not(.video-mode) .pl-yichun-forestfx{display:none}
#player.skin-city:not(.skin-city-kuopio):not(.video-mode) .pl-aurora{display:none!important}
#player.skin-city-kuopio:not(.video-mode) .pl-aurora{display:block}
#player.skin-city-yichun:not(.video-mode){
  --yc-gold:#e8c992;
  --yc-ivory:#f5eddd;
  --yc-mint:#9dc4b1;
  background:#050b10;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-scene{
  inset:-2.5%;
  background:
    linear-gradient(180deg,rgba(3,8,14,.2) 0%,rgba(3,9,14,.03) 28%,rgba(5,10,13,.18) 56%,rgba(3,7,10,.94) 91%,#03070a 100%),
    var(--pl-city-scene,url("../images/player-scenes/yichun-red-pine-moon-v1.png")) center 48% / cover no-repeat;
  transform:scale(1.035) translate3d(0,0,0);
  animation:yichunForestDrift 34s ease-in-out infinite alternate;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-scene::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 78% 17%,rgba(235,224,194,.13),transparent 19%),
    linear-gradient(180deg,rgba(4,9,16,.2),transparent 25% 63%,rgba(3,8,10,.62));
  opacity:.84;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-scene::after{
  background:
    radial-gradient(ellipse at 50% 72%,rgba(165,193,183,.08),transparent 29%),
    linear-gradient(180deg,rgba(2,7,12,.3) 0%,transparent 27% 54%,rgba(4,9,11,.28) 67%,rgba(2,6,9,.95) 92%);
  opacity:1;
  transform:none;
  animation:none;
}
#player.skin-city-yichun:not(.video-mode) .pl-aurora{display:none!important}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx{
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  overflow:hidden;
  contain:strict;
  pointer-events:none;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx::before{
  content:"";
  position:absolute;
  left:-18%;
  right:-18%;
  top:55%;
  height:25%;
  background:
    radial-gradient(ellipse at 35% 55%,rgba(181,205,199,.095),transparent 43%),
    radial-gradient(ellipse at 72% 42%,rgba(160,186,179,.075),transparent 39%);
  opacity:.72;
  transform:translate3d(-4%,0,0);
  animation:yichunMistDrift 22s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx::after{
  content:"";
  position:absolute;
  left:50%;
  top:70%;
  width:36%;
  aspect-ratio:2.7;
  border:1px solid rgba(212,225,216,.12);
  border-radius:50%;
  opacity:0;
  transform:translate3d(-50%,-50%,0) scale(.45);
  animation:yichunWaterRipple 8s ease-out infinite;
  will-change:transform,opacity;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i{
  position:absolute;
  width:3px;
  height:3px;
  border-radius:50%;
  background:#e7b96f;
  box-shadow:0 0 5px 1px rgba(231,185,111,.52);
  opacity:.22;
  animation:yichunFirefly 7s ease-in-out infinite;
  will-change:transform,opacity;
}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i:nth-child(1){left:14%;top:63%;animation-delay:-1.4s}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i:nth-child(2){left:82%;top:58%;animation-delay:-4.1s}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i:nth-child(3){left:23%;top:76%;animation-delay:-5.8s}
#player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i:nth-child(4){left:75%;top:73%;animation-delay:-2.7s}
#player.skin-city-yichun:not(.video-mode) .pl-disc{
  border-color:rgba(232,201,146,.72);
  box-shadow:0 0 0 1px rgba(232,201,146,.14),0 0 34px rgba(112,151,137,.2),0 0 76px rgba(93,117,126,.14),inset 0 0 65px rgba(0,0,0,.58);
}
#player.skin-city-yichun:not(.video-mode) .pl-disc-art img{
  object-position:50% 58%;
  filter:saturate(.72) contrast(1.1) brightness(.68);
}
#player.skin-city-yichun:not(.video-mode) .pl-disc-art::after{
  background:
    radial-gradient(circle at 50% 50%,rgba(7,18,23,.04) 0 31%,rgba(4,13,18,.2) 68%,rgba(1,7,11,.58) 100%),
    linear-gradient(126deg,rgba(232,201,146,.14),transparent 31% 68%,rgba(111,151,138,.12));
}
#player.skin-city-yichun:not(.video-mode) .pl-breath-wrap .pl-ring{
  border-color:rgba(157,196,177,.19);
  box-shadow:0 0 18px rgba(113,150,137,.06),inset 0 0 18px rgba(113,150,137,.035);
}
#player.skin-city-yichun:not(.video-mode) .pl-progress-fill{
  background:linear-gradient(90deg,#c5d8c9,#9dc4b1);
  box-shadow:0 0 10px rgba(157,196,177,.38);
}
#player.skin-city-yichun:not(.video-mode) .pl-progress-handle{
  border-color:rgba(236,230,208,.9);
  background:#accbb8;
  box-shadow:0 0 0 4px rgba(157,196,177,.12),0 0 11px rgba(157,196,177,.42);
}
#player.skin-city-yichun.is-paused:not(.video-mode) .pl-yichun-scene,
#player.skin-city-yichun.is-paused:not(.video-mode) .pl-yichun-forestfx::before,
#player.skin-city-yichun.is-paused:not(.video-mode) .pl-yichun-forestfx::after,
#player.skin-city-yichun.is-paused:not(.video-mode) .pl-yichun-forestfx i{animation-play-state:paused}

@keyframes yichunForestDrift{
  to{transform:scale(1.065) translate3d(0,-.55%,0)}
}
@keyframes yichunMistDrift{
  0%{opacity:.46;transform:translate3d(-4%,0,0)}
  100%{opacity:.8;transform:translate3d(5%,-4%,0)}
}
@keyframes yichunWaterRipple{
  0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.45)}
  22%{opacity:.2}
  100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(1.5)}
}
@keyframes yichunFirefly{
  0%,100%{opacity:.12;transform:translate3d(0,0,0) scale(.75)}
  42%{opacity:.72;transform:translate3d(6px,-8px,0) scale(1.12)}
  70%{opacity:.28;transform:translate3d(-3px,-13px,0) scale(.9)}
}
@media (pointer:coarse){
  #player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i:nth-child(n+3){display:none}
}
@media (prefers-reduced-motion:reduce){
  #player.skin-city-yichun:not(.video-mode) .pl-yichun-scene,
  #player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx::before,
  #player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx::after,
  #player.skin-city-yichun:not(.video-mode) .pl-yichun-forestfx i{animation:none!important}
}
