/* ============================================================
   玉兔鹅 · 个人站  |  style.css
   设计语言：**太阴 · 广寒**
     —— 深空靛底（近黑、偏青蓝）＋ 月银 ＋ 太阴青 ＋ 极少量金铃色
     —— 直角细边、竖排中文、等宽编号、不用玻璃卡片
   与上一个站（夜蓝紫．粉金．玻璃卡片）刻意拉开：底色不同、构图不同、质感不同
   ============================================================ */
:root{
  /* 底色：深空靛（不是上一个站的紫黑） */
  --ink:#05080d;
  --ink-2:#0d1220;
  --ink-3:#141d33;
  /* 主色：月银 · 太阴青（青绿）· 淡紫（只用来呼应她的裙）· 金（少量点缀） */
  --moon:#eaf1ff;
  --silver:#c8d6ef;
  --jade:#63dcbf;
  --jade-deep:#1f9e88;
  --ice:#8fb6ff;
  --violet:#a98cff;
  --violet-deep:#6b52cc;
  --gold:#e8cc8e;
  --pink:#ffa8d2;
  /* 语义别名（组件按角色取色，换主色只改上面几行） */
  --brand:#63dcbf;
  --brand-2:#8fb6ff;
  --brand-deep:#1f9e88;
  --text:#eef4ff;
  --text-dim:#9dabc7;
  --glass:rgba(255,255,255,.04);
  --glass-2:rgba(255,255,255,.07);
  --line:rgba(160,196,255,.16);
  --radius:4px;              /* ★ 直角细边（上一个站是 20px 大圆角） */
  --shadow:0 18px 60px rgba(0,0,0,.55);
  --player-h:96px;
  /* 兼容老变量名，免得漏改 */
  --pink-deep:#ff7fbc;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:"PingFang SC","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.7;
  overflow-x:hidden;
  padding-bottom:var(--player-h);
}
img{max-width:100%;display:block}
[hidden]{display:none !important}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
code{font-family:"Cascadia Code",Consolas,monospace;background:var(--glass);padding:2px 7px;border-radius:6px;font-size:.9em}
.ico{width:1em;height:1em;fill:currentColor;display:block}
.rare{color:var(--gold-deep)}

/* ---------- 背景装饰（冷色：太阴青光 + 月白，不带粉） ---------- */
#stars{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.8}
.aurora{
  position:fixed;inset:-20% -10% auto -10%;height:120vh;z-index:0;pointer-events:none;
  background:
    radial-gradient(44% 36% at 14% 8%, rgba(99,220,191,.16), transparent 70%),
    radial-gradient(36% 32% at 88% 18%, rgba(143,182,255,.16), transparent 72%),
    radial-gradient(50% 42% at 55% 82%, rgba(169,140,255,.12), transparent 72%);
  filter:blur(32px);
  animation:drift 30s ease-in-out infinite alternate;
}
@keyframes drift{ from{transform:translate3d(-2%,0,0) scale(1)} to{transform:translate3d(3%,2%,0) scale(1.06)} }
#cursor-glow{
  position:fixed;width:420px;height:420px;border-radius:50%;z-index:1;pointer-events:none;
  background:radial-gradient(circle, rgba(99,220,191,.13), transparent 62%);
  transform:translate(-50%,-50%);transition:opacity .4s;opacity:0;mix-blend-mode:screen;
}
main,.nav,.foot{position:relative;z-index:2}

/* ---------- 导航 ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:14px clamp(16px,4vw,56px);
  backdrop-filter:blur(18px) saturate(1.4);
  background:linear-gradient(180deg, rgba(10,9,19,.72), rgba(10,9,19,.16));
  border-bottom:1px solid transparent;transition:border-color .3s, background .3s;
}
.nav.is-solid{border-bottom-color:var(--line);background:rgba(10,9,19,.84)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.06em}
.brand-logo{
  width:30px;height:30px;border-radius:50%;object-fit:cover;
  border:1px solid var(--line);box-shadow:0 0 16px rgba(255,231,178,.35);
}
.nav-links{display:flex;gap:clamp(10px,2.2vw,28px);font-size:.94rem}
.nav-links a{position:relative;color:var(--text-dim);transition:color .25s}
.nav-links a::after{
  content:"";position:absolute;left:50%;bottom:-6px;width:0;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),var(--violet));transform:translateX(-50%);transition:width .3s;
}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover::after{width:100%}
.nav-toggle{display:none}
.nav-purse{
  display:flex;align-items:center;gap:7px;font-size:.86rem;color:var(--gold);
  padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--glass);
  white-space:nowrap;
}
.nav-purse .ico{color:var(--gold)}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.12);transition:opacity 1.8s ease, transform 9s linear;
}
.hero-slide.is-on{opacity:1;transform:scale(1.02)}
.hero-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(10,9,19,.94) 0%, rgba(10,9,19,.66) 40%, rgba(10,9,19,.2) 72%, rgba(10,9,19,.6) 100%),
    linear-gradient(180deg, rgba(10,9,19,.55), transparent 32%, rgba(10,9,19,.88));
}
.hero-inner{
  position:relative;z-index:2;width:100%;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:center;gap:clamp(20px,4vw,60px);
  padding:clamp(96px,14vh,160px) clamp(20px,5vw,80px) clamp(60px,10vh,110px);
}
.hero-kicker{margin:0 0 10px;font-size:.72rem;letter-spacing:.4em;color:var(--gold);text-transform:uppercase}
.hero-title{
  margin:0;font-size:clamp(3.6rem,13vw,9.5rem);line-height:.94;letter-spacing:.02em;font-weight:800;
  display:flex;gap:.04em;
}
.hero-title span{
  background:linear-gradient(160deg,#fff 6%, var(--moon) 26%, var(--violet) 62%, var(--pink) 88%, var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 6px 30px rgba(169,140,255,.5));
  display:inline-block;will-change:transform;
}
.hero-sub{margin:16px 0 20px;color:var(--text-dim);font-size:clamp(.95rem,2.1vw,1.12rem);max-width:34em}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.hero-tags span{
  font-size:.8rem;padding:5px 13px;border-radius:999px;
  border:1px solid var(--line);background:var(--glass);color:var(--text-dim);
  backdrop-filter:blur(8px);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.btn{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  padding:13px 26px;border-radius:999px;font-size:.95rem;font-weight:600;
  border:1px solid var(--line);background:var(--glass);color:var(--text);
  transition:transform .25s, box-shadow .25s, background .25s;
  backdrop-filter:blur(10px);
}
.btn .ico{width:1.05em;height:1.05em}
.btn:hover{transform:translateY(-2px)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-primary{
  background:linear-gradient(120deg,var(--violet-deep),var(--pink-deep));
  border-color:transparent;box-shadow:0 12px 34px rgba(125,92,240,.36);
}
.btn-primary:hover:not(:disabled){box-shadow:0 18px 44px rgba(169,140,255,.5)}
.btn-ghost:hover{background:var(--glass-2)}

.hero-art{position:relative;display:flex;justify-content:center;align-items:center}
.art-halo{
  position:absolute;width:min(80%,540px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,246,220,.30),rgba(169,140,255,.16) 46%,transparent 70%);
  filter:blur(26px);animation:breathe 5.5s ease-in-out infinite;
}
@keyframes breathe{50%{transform:scale(1.09);opacity:.86}}
.art-main{
  position:relative;max-height:min(76svh,760px);width:auto;
  filter:saturate(1.06) brightness(1.05) drop-shadow(0 30px 60px rgba(0,0,0,.55));
  animation:floaty 7s ease-in-out infinite;
}
@keyframes floaty{50%{transform:translateY(-16px)}}
.art-petal{
  position:absolute;width:12px;height:12px;border-radius:60% 0 60% 0;
  background:linear-gradient(140deg,var(--moon),var(--gold-deep));opacity:.8;
  filter:blur(.4px);animation:petal 9s linear infinite;
}
.art-petal.p1{left:8%;top:22%;animation-delay:-1s}
.art-petal.p2{right:10%;top:38%;animation-delay:-4s;width:9px;height:9px}
.art-petal.p3{left:22%;bottom:16%;animation-delay:-7s;width:8px;height:8px}
@keyframes petal{
  0%{transform:translate(0,0) rotate(0);opacity:0}
  15%{opacity:.9}
  100%{transform:translate(38px,-160px) rotate(320deg);opacity:0}
}
.scroll-hint{
  position:absolute;left:50%;bottom:22px;transform:translateX(-50%);
  width:26px;height:44px;border:2px solid var(--line);border-radius:16px;z-index:3;
}
.scroll-hint span{
  position:absolute;left:50%;top:8px;width:4px;height:8px;border-radius:3px;background:var(--gold);
  transform:translateX(-50%);animation:wheel 1.8s ease-in-out infinite;
}
@keyframes wheel{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,18px)}}

/* ---------- 数据条 ---------- */
.stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  margin:0 clamp(16px,4vw,56px);border-radius:var(--radius);overflow:hidden;
  background:var(--line);border:1px solid var(--line);
  transform:translateY(-38px);
}
.stat{
  background:linear-gradient(180deg,rgba(20,17,50,.94),rgba(10,9,19,.94));
  padding:22px 12px;text-align:center;backdrop-filter:blur(12px);
}
.stat b{
  display:block;font-size:clamp(1.5rem,3.4vw,2.1rem);
  background:linear-gradient(120deg,var(--moon),var(--violet));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat span{font-size:.82rem;color:var(--text-dim)}

/* ---------- 通用区块 ---------- */
.section{padding:clamp(56px,9vh,110px) clamp(16px,4vw,56px)}
.sec-head{margin-bottom:clamp(22px,3vw,38px)}
.sec-head h2{
  margin:0 0 8px;font-size:clamp(1.7rem,4.4vw,2.7rem);letter-spacing:.02em;
  position:relative;display:inline-block;
}
.sec-head h2::after{
  content:"";position:absolute;left:0;bottom:-8px;width:52%;height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--moon),var(--violet),transparent);
}
.sec-head p{margin:14px 0 0;color:var(--text-dim);font-size:.95rem}
.sec-head b{color:var(--gold)}

/* ---------- 两个入口卡 ---------- */
.entries{display:grid;gap:18px}
.entry{
  position:relative;display:flex;align-items:center;gap:clamp(16px,3vw,34px);
  padding:clamp(20px,3vw,34px);border-radius:calc(var(--radius) + 8px);
  border:1px solid var(--line);overflow:hidden;cursor:pointer;
  background:linear-gradient(120deg, rgba(125,92,240,.18), rgba(255,185,221,.12) 45%, rgba(255,231,178,.10));
  backdrop-filter:blur(14px);
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s, border-color .45s;
}
.entry--alt{background:linear-gradient(120deg, rgba(255,231,178,.12), rgba(125,92,240,.14) 55%, rgba(233,230,255,.08))}
.entry:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 22px 60px rgba(169,140,255,.28)}
.entry-glow{
  position:absolute;inset:-40% -10% auto auto;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,246,220,.32), transparent 65%);
  filter:blur(20px);pointer-events:none;animation:breathe 6s ease-in-out infinite;
}
.entry-thumbs{display:flex;flex:0 0 auto}
.entry-thumbs i{
  width:clamp(54px,7vw,92px);aspect-ratio:3/4;border-radius:14px;background-size:cover;background-position:center;
  border:2px solid rgba(255,255,255,.18);box-shadow:0 12px 28px rgba(0,0,0,.45);
  transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
.entry-thumbs i + i{margin-left:calc(-1 * clamp(18px,2.4vw,32px))}
.entry-thumbs i:nth-child(1){transform:rotate(-8deg)}
.entry-thumbs i:nth-child(2){transform:rotate(-1deg) translateY(-4px)}
.entry-thumbs i:nth-child(3){transform:rotate(7deg)}
.entry:hover .entry-thumbs i:nth-child(1){transform:rotate(-12deg) translateY(-6px)}
.entry:hover .entry-thumbs i:nth-child(2){transform:rotate(0deg) translateY(-12px)}
.entry:hover .entry-thumbs i:nth-child(3){transform:rotate(11deg) translateY(-6px)}
.entry-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.entry-body strong{
  font-size:clamp(1.25rem,2.8vw,1.85rem);
  background:linear-gradient(110deg,#fff,var(--moon) 45%,var(--violet) 78%,var(--pink));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.entry-body small{color:var(--text-dim);font-size:.92rem}
.entry-go{
  flex:0 0 auto;font-size:.92rem;padding:11px 20px;border-radius:999px;white-space:nowrap;
  border:1px solid var(--line);background:var(--glass);color:var(--text);transition:.3s;
}
.entry:hover .entry-go{background:linear-gradient(120deg,var(--violet-deep),var(--pink-deep));border-color:transparent}

/* ---------- 窄版首屏（专区页） ---------- */
.hero--slim{min-height:58svh;align-items:flex-end}
.hero--slim .hero-veil{
  background:
    linear-gradient(180deg, rgba(10,9,19,.74), rgba(10,9,19,.44) 40%, rgba(10,9,19,.95)),
    linear-gradient(90deg, rgba(10,9,19,.82), transparent 60%);
}
.nest-inner{
  position:relative;z-index:2;width:100%;
  padding:clamp(90px,13vh,140px) clamp(20px,5vw,80px) clamp(50px,8vh,80px);
}
.nest-title{
  margin:0 0 14px;font-size:clamp(2.1rem,6.4vw,4.2rem);font-weight:800;letter-spacing:.02em;
  background:linear-gradient(150deg,#fff 10%,var(--moon) 40%,var(--violet) 74%,var(--pink));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 8px 30px rgba(169,140,255,.45));
}
.hero--slim .hero-tags b{color:var(--gold);font-weight:700}

/* ---------- 歌单 ---------- */
.song-tools{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:22px}
.search-wrap{
  display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:999px;
  border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);flex:1 1 260px;max-width:380px;
}
.search-wrap .ico{width:18px;height:18px;color:var(--text-dim)}
.search-wrap input{
  border:0;background:transparent;color:var(--text);font-size:.95rem;outline:none;width:100%;font-family:inherit;
}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{
  font-family:inherit;font-size:.86rem;color:var(--text-dim);cursor:pointer;
  padding:9px 18px;border-radius:999px;border:1px solid var(--line);background:var(--glass);
  white-space:nowrap;flex:0 0 auto;transition:.25s;height:40px;
}
.chip:hover{color:var(--text);border-color:var(--gold)}
.chip.is-active{background:linear-gradient(120deg,var(--violet-deep),var(--pink-deep));color:#fff;border-color:transparent}
.chip--clear{border-style:dashed;color:var(--gold);border-color:rgba(255,231,178,.5)}
.chip--clear:hover{background:rgba(255,231,178,.12)}
.song-empty{
  grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  padding:24px;border-radius:var(--radius);border:1px dashed var(--line);background:rgba(255,255,255,.03);
}
.song-empty p{margin:0;color:var(--text-dim);font-size:.92rem}
.song-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.song{
  display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;
  border:1px solid var(--line);background:rgba(255,255,255,.035);
  cursor:pointer;transition:background .25s, border-color .25s, transform .25s;
}
.song:hover{background:var(--glass-2);border-color:var(--gold);transform:translateX(3px)}
.song.is-playing{background:linear-gradient(120deg,rgba(125,92,240,.26),rgba(255,185,221,.16));border-color:var(--gold)}
.song-no{flex:0 0 30px;font-size:.76rem;color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right}
.song-name{flex:1;font-size:.94rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.song-cat{
  flex:0 0 auto;font-size:.7rem;color:var(--text-dim);padding:2px 8px;border-radius:999px;
  border:1px solid var(--line);background:rgba(255,255,255,.03);white-space:nowrap;
}
.song-tag{font-size:.72rem;color:var(--gold);flex:0 0 auto}
.song.is-playing .song-no{color:var(--gold)}
.bars{display:none;gap:2px;align-items:flex-end;height:14px;flex:0 0 auto}
.song.is-playing .bars{display:flex}
.bars i{width:3px;background:var(--gold);border-radius:2px;animation:bar .9s ease-in-out infinite}
.bars i:nth-child(2){animation-delay:.15s}.bars i:nth-child(3){animation-delay:.3s}
@keyframes bar{0%,100%{height:4px}50%{height:14px}}
.song-foot{margin:20px 0 0;color:var(--text-dim);font-size:.83rem}

/* ---------- 会员专区 ---------- */
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.member-card{
  display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--radius);
  border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);
  cursor:pointer;transition:transform .3s, border-color .3s, background .3s;
}
.member-card:hover{transform:translateY(-4px);border-color:var(--gold);background:var(--glass-2)}
.member-card.is-playing{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 14px 34px rgba(125,92,240,.26)}
.member-card.is-locked{opacity:.66}
.member-thumb{
  flex:0 0 58px;width:58px;height:58px;border-radius:14px;overflow:hidden;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid var(--line);
}
.member-thumb img{width:100%;height:100%;object-fit:cover}
.member-ph{font-size:20px}
.member-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.member-meta strong{font-size:.97rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-meta small{color:var(--text-dim);font-size:.8rem}
.member-empty{
  grid-column:1/-1;display:flex;flex-direction:column;gap:6px;align-items:flex-start;
  padding:26px;border-radius:var(--radius);border:1px dashed var(--line);
  background:rgba(255,255,255,.03);color:var(--text-dim);
}
.member-empty strong{color:var(--text);font-size:1rem}

/* ---------- 口令门禁 ---------- */
.gate{display:flex;justify-content:center;padding:8px 0 6px}
/* 整页门禁（月兔小窝那一页，2026-10-12 起：小游戏在会员专区里） */
.gate--page{flex-direction:column;align-items:center;gap:14px;padding:13vh 20px 64px}
.gate-box{
  width:min(100%,520px);display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:clamp(24px,3vw,38px);border-radius:calc(var(--radius) + 6px);text-align:center;
  border:1px solid var(--line);background:linear-gradient(140deg, rgba(125,92,240,.16), rgba(255,185,221,.1));
  backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.gate-lock{
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:22px;
  background:var(--glass-2);border:1px solid var(--line);
}
.gate-box strong{font-size:1.12rem}
.gate-row{display:flex;gap:10px;width:100%;flex-wrap:wrap;justify-content:center}
.gate-row input{
  flex:1 1 200px;min-width:0;font-family:inherit;font-size:.98rem;color:var(--text);
  padding:13px 18px;border-radius:999px;border:1px solid var(--line);
  background:rgba(0,0,0,.3);outline:none;letter-spacing:.16em;transition:border-color .25s;
}
.gate-row input:focus{border-color:var(--gold)}
.gate-row input::placeholder{letter-spacing:normal;color:var(--text-dim)}
.gate-row .btn{padding:13px 30px}
.gate-err{margin:0;min-height:1.2em;font-size:.86rem;color:var(--pink-deep)}
.gate-hint{margin:0;font-size:.8rem;color:var(--text-dim);opacity:.8}
.gate-box.is-shake{animation:shake .42s cubic-bezier(.36,.07,.19,.97)}
@keyframes shake{
  10%,90%{transform:translateX(-2px)}
  20%,80%{transform:translateX(4px)}
  30%,50%,70%{transform:translateX(-7px)}
  40%,60%{transform:translateX(7px)}
}
.gate-wall{
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  padding:clamp(28px,4vw,46px);border-radius:calc(var(--radius) + 6px);
  border:1px dashed var(--line);background:linear-gradient(140deg, rgba(125,92,240,.1), rgba(255,231,178,.06));
}
.gate-wall-ico{font-size:26px;opacity:.85}
.gate-wall strong{font-size:1.05rem;color:var(--text)}
.gate-wall-sub{font-size:.88rem;color:var(--text-dim)}

/* ---------- 专区：区 → 卡 ---------- */
.zone-teaser-tip{margin:0 0 16px;color:var(--text-dim);font-size:.95rem}
.zone-teaser-tip b{color:var(--gold)}
.zone-teaser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.zone-teaser-card{
  display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;
  border:1px dashed var(--line);background:rgba(255,255,255,.03);color:var(--text-dim);
  font-size:.92rem;position:relative;overflow:hidden;
}
.zone-teaser-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 40%,rgba(255,246,220,.12) 50%,transparent 60%);
  transform:translateX(-100%);transition:transform .8s;
}
.zone-teaser-card:hover::after{transform:translateX(100%)}
.zt-ico{font-size:1.1rem;filter:grayscale(.35)}
.zone-tier{margin-bottom:clamp(26px,4vw,46px)}
.tier-head{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--line);
}
.tier-badge{
  width:26px;height:26px;flex:0 0 26px;border-radius:8px;display:grid;place-items:center;
  font-size:.82rem;font-weight:700;color:#fff;background:linear-gradient(120deg,var(--violet-deep),var(--pink-deep));
}
.tier-head strong{font-size:1.06rem}
.tier-head small{color:var(--text-dim);font-size:.85rem}
.zone-card{
  border:1px solid var(--line);border-radius:var(--radius);padding:clamp(14px,2vw,20px);
  background:rgba(255,255,255,.028);margin-bottom:12px;
}
.zone-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.zone-ico{
  flex:0 0 40px;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:18px;
  background:var(--glass-2);border:1px solid var(--line);
}
.zone-title{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.zone-title strong{font-size:1rem}
.zone-title small{color:var(--text-dim);font-size:.84rem}
.zone-count{
  flex:0 0 auto;font-size:.76rem;padding:4px 12px;border-radius:999px;white-space:nowrap;
  border:1px solid var(--line);background:var(--glass);color:var(--text-dim);
}
.zone-soon{
  margin-top:6px;border:1px dashed var(--line);border-radius:var(--radius);
  background:rgba(255,255,255,.022);overflow:hidden;
}
.zone-soon > summary{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer;list-style:none;
  padding:16px clamp(14px,2vw,20px);font-size:.95rem;color:var(--text-dim);transition:background .3s;
}
.zone-soon > summary::-webkit-details-marker{display:none}
.zone-soon > summary:hover{background:var(--glass)}
.zone-soon > summary::after{content:"▾";margin-left:auto;transition:transform .3s;opacity:.6}
.zone-soon[open] > summary::after{transform:rotate(180deg)}
.zone-soon > summary small{font-size:.82rem;opacity:.7}
.zone-soon-dot{
  width:8px;height:8px;border-radius:50%;flex:0 0 8px;
  background:var(--text-dim);opacity:.5;box-shadow:0 0 0 3px rgba(255,246,220,.1);
}
.zone-soon-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;padding:0 clamp(14px,2vw,20px) 18px}
.zone-soon-item{
  padding:9px 14px;border-radius:11px;border:1px solid var(--line);
  background:rgba(255,255,255,.03);color:var(--text-dim);font-size:.86rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.card-date{
  flex:0 0 auto;font-size:.72rem;letter-spacing:.02em;color:var(--gold);opacity:.9;
  padding:2px 8px;border-radius:999px;background:rgba(255,231,178,.1);white-space:nowrap;
}

/* ---------- 页脚 ---------- */
.foot{
  padding:60px clamp(16px,4vw,56px) 40px;text-align:center;
  border-top:1px solid var(--line);color:var(--text-dim);font-size:.88rem;
}
.foot-art{width:150px;margin:0 auto 18px;opacity:.92;filter:drop-shadow(0 14px 30px rgba(0,0,0,.55))}
.foot-dim{font-size:.78rem;opacity:.7}

/* ---------- 播放器 ---------- */
.player{
  position:fixed;left:0;right:0;bottom:0;z-index:60;height:var(--player-h);
  display:flex;align-items:center;gap:clamp(10px,2vw,22px);
  padding:0 clamp(14px,3vw,40px);
  background:linear-gradient(180deg, rgba(20,17,50,.88), rgba(10,9,19,.97));
  backdrop-filter:blur(22px) saturate(1.4);
  border-top:1px solid var(--line);
  transition:transform .4s;
}
.pl-art{
  position:relative;flex:0 0 62px;width:62px;height:62px;border-radius:50%;overflow:hidden;
  border:2px solid var(--line);cursor:pointer;background:var(--ink-2);padding:0;
}
.pl-art img{width:100%;height:100%;object-fit:cover}
.pl-art-veil{position:absolute;inset:0;background:radial-gradient(circle,transparent 40%,rgba(10,9,19,.5))}
.player.is-playing .pl-art{animation:spin 9s linear infinite;border-color:var(--gold)}
@keyframes spin{to{transform:rotate(360deg)}}
.pl-meta{flex:1 1 auto;min-width:0}
.pl-title{font-size:.98rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-sub{font-size:.8rem;color:var(--text-dim)}
.pl-bar{height:5px;border-radius:5px;background:rgba(255,255,255,.12);margin-top:9px;cursor:pointer;position:relative}
.pl-bar-fill{height:100%;width:0;border-radius:5px;background:linear-gradient(90deg,var(--violet),var(--gold));transition:width .2s linear}
.pl-btns{display:flex;align-items:center;gap:10px}
.pl-btns button{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--line);background:var(--glass);color:var(--text);font-size:17px;transition:.25s;
}
.pl-btns button:hover{border-color:var(--gold);background:var(--glass-2)}
.pl-btns .pl-main{
  width:52px;height:52px;font-size:20px;border-color:transparent;
  background:linear-gradient(120deg,var(--violet-deep),var(--pink-deep));
  box-shadow:0 10px 28px rgba(125,92,240,.36);
}
.pl-viz{flex:0 0 200px;width:200px;height:42px;opacity:.92}
.pl-time{font-size:.8rem;color:var(--text-dim);font-variant-numeric:tabular-nums;flex:0 0 auto}

/* ---------- 灯箱 ---------- */
.lightbox{
  position:fixed;inset:0;z-index:90;background:rgba(6,5,14,.95);backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,60px);
  animation:fade .25s ease;
}
.lightbox[hidden]{display:none !important}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lightbox img{max-width:100%;max-height:78vh;border-radius:14px;box-shadow:var(--shadow)}
.lb-close,.lb-nav{
  position:absolute;background:var(--glass);border:1px solid var(--line);color:var(--text);
  cursor:pointer;border-radius:50%;display:grid;place-items:center;font-size:24px;
  backdrop-filter:blur(10px);transition:.25s;
}
.lb-close{top:20px;right:22px;width:44px;height:44px}
.lb-nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:32px;line-height:0}
.lb-prev{left:18px}.lb-next{right:18px}
.lb-close:hover,.lb-nav:hover{border-color:var(--gold);background:var(--glass-2)}
.lb-cap{
  position:absolute;bottom:22px;left:0;right:0;text-align:center;color:var(--text-dim);font-size:.9rem;
  padding:0 20px;line-height:1.9;
}
.lb-cap b{color:var(--text);font-size:1.05rem}
.lb-cap .cap-line{color:var(--moon);font-size:1rem}
.lb-cap .cap-gain{color:var(--gold);font-size:.9rem}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:calc(var(--player-h) + 22px);transform:translate(-50%,20px);
  padding:12px 22px;border-radius:999px;background:rgba(20,17,50,.96);border:1px solid var(--line);
  color:var(--text);font-size:.9rem;z-index:95;opacity:0;pointer-events:none;transition:.35s;
  backdrop-filter:blur(12px);max-width:min(90vw,560px);text-align:center;
}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

/* ---------- 入场动画 ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1;transform:none}

/* ============================================================
   ★ 小游戏「月兔小窝」
   ============================================================ */
.page-game{padding-bottom:60px}
.game-top{padding-top:clamp(78px,11vh,130px)}
.hut{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(14px,2vw,22px);align-items:stretch}
.hut-scene{
  position:relative;min-height:clamp(340px,52vh,520px);border-radius:calc(var(--radius) + 6px);
  border:1px solid var(--line);overflow:hidden;
  background:
    radial-gradient(70% 60% at 50% 34%, rgba(255,246,220,.16), transparent 70%),
    linear-gradient(180deg,#181338,#0d0a20 70%,#080712);
  display:flex;align-items:flex-end;justify-content:center;
}
.hut-scene::before{
  content:"";position:absolute;right:-8%;top:-14%;width:46%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 38% 34%, #fff8e2, #ffe7b2 42%, rgba(255,231,178,0) 72%);
  opacity:.85;filter:blur(.5px);
}
.hut-scene.is-away::before{opacity:.4;transform:translate(6%,-6%)}
.hut-art{
  position:relative;z-index:2;max-height:clamp(300px,46vh,460px);width:auto;
  filter:drop-shadow(0 22px 44px rgba(0,0,0,.6));animation:floaty 6.5s ease-in-out infinite;
  transform-origin:50% 100%;
}
.hut-scene.is-away .hut-art{opacity:.35;filter:grayscale(.35) blur(1px);animation:none;transform:translateY(6px)}
.hut-scene.is-back .hut-art{animation:pop .6s ease}
@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.hut-veil{
  position:absolute;inset:auto 0 0 0;height:46%;z-index:3;
  background:linear-gradient(180deg,transparent,rgba(8,7,18,.94));
}
.hut-stage{
  position:absolute;left:0;right:0;bottom:0;z-index:4;padding:clamp(14px,2.4vw,22px);
  display:flex;flex-direction:column;gap:4px;
}
.stage-chip{
  align-self:flex-start;font-size:.74rem;padding:3px 12px;border-radius:999px;
  border:1px solid var(--line);background:rgba(10,9,19,.6);color:var(--gold);backdrop-filter:blur(8px);
}
.hut-stage strong{font-size:clamp(1rem,1.6vw,1.18rem)}
.stage-sub{font-size:.85rem;color:var(--text-dim)}
.hut-timer{display:flex;align-items:baseline;gap:8px;margin-top:4px;font-size:.84rem;color:var(--text-dim)}
.hut-timer b{font-size:1.16rem;color:var(--gold);font-variant-numeric:tabular-nums}
.deco{position:absolute;left:0;right:0;top:14px;z-index:4;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.deco-item{
  width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;
  background:rgba(10,9,19,.55);border:1px solid var(--line);backdrop-filter:blur(8px);
}
/* 行囊 */
.bag{
  border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);padding:clamp(16px,2vw,22px);
  background:rgba(255,255,255,.028);display:flex;flex-direction:column;gap:14px;
}
.bag-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.bag-head strong{font-size:1.05rem}
.bag-head span{font-size:.82rem;color:var(--text-dim)}
.bag-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.slot{
  aspect-ratio:1;border-radius:16px;border:1px dashed var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:rgba(255,255,255,.02);color:var(--text-dim);font-size:.76rem;text-align:center;padding:6px;
}
.slot.is-on{border-style:solid;border-color:var(--gold);background:rgba(255,231,178,.09);color:var(--text);cursor:pointer}
.slot-ico{font-size:26px;line-height:1}
.slot-ico--empty{opacity:.35}
.slot-name{font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.bag-actions{display:flex;gap:10px;flex-wrap:wrap}
.bag-actions .btn{flex:1 1 auto;justify-content:center}
.bag-tip{margin:0;font-size:.82rem;color:var(--text-dim)}
/* 抽屉 */
.game-panels{padding-top:0}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.tab{
  font-family:inherit;font-size:.9rem;cursor:pointer;color:var(--text-dim);
  padding:9px 18px;border-radius:999px;border:1px solid var(--line);background:var(--glass);
  transition:.25s;white-space:nowrap;
}
.tab:hover{color:var(--text);border-color:var(--gold)}
.tab.is-active{background:linear-gradient(120deg,var(--violet-deep),var(--pink-deep));color:#fff;border-color:transparent}
.tab b{color:var(--gold);font-weight:700}
.tab.is-active b{color:#fff}
.panel-tip{margin:0 0 16px;color:var(--text-dim);font-size:.9rem}
.panel-tip b{color:var(--gold)}
/* 架子 */
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.shelf-item,.shop-item{
  display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:var(--radius);
  border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer;transition:.25s;
}
.shelf-item:hover,.shop-item:hover{border-color:var(--gold);background:var(--glass-2);transform:translateY(-3px)}
.shelf-item.is-out{opacity:.62}
.shelf-item.is-bag{border-color:var(--pink-deep);box-shadow:0 0 0 1px rgba(255,127,188,.5)}
.sf-ico{flex:0 0 40px;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--glass-2);border:1px solid var(--line)}
.sf-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.sf-meta strong{font-size:.95rem}
.sf-meta small{color:var(--text-dim);font-size:.78rem}
.sf-meta em{font-style:normal;font-size:.74rem;color:var(--gold);opacity:.9}
.sf-num{flex:0 0 auto;font-size:.82rem;color:var(--text-dim);font-variant-numeric:tabular-nums}
.sf-act{
  flex:0 0 auto;font-size:.76rem;padding:5px 12px;border-radius:999px;white-space:nowrap;
  border:1px solid var(--line);background:var(--glass);color:var(--text-dim);
}
.shelf-item:hover .sf-act,.shop-item:hover .sf-act{color:var(--text);border-color:var(--gold)}
.shop-item.is-owned{opacity:.6;cursor:default}
/* 纪念册 */
.book{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.book-card{
  position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
  background:var(--ink-3);cursor:pointer;transition:.35s;
}
.book-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .7s}
.book-card:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:var(--shadow)}
.book-card:hover img{transform:scale(1.06)}
.book-card.is-rare{border-color:rgba(233,192,105,.6)}
.bc-body{display:flex;flex-direction:column;gap:3px;padding:11px 13px 14px}
.bc-body strong{font-size:.94rem}
.bc-body small{color:var(--text-dim);font-size:.79rem;line-height:1.6}
.bc-rare{
  position:absolute;top:10px;right:10px;font-size:.7rem;padding:3px 10px;border-radius:999px;
  background:linear-gradient(120deg,var(--gold-deep),var(--gold));color:#3a2a06;font-weight:700;
}
/* ★ 终极隐藏（2026-10-13）：比「稀有」再高一档 —— 卡面偏粉，角标也换色 */
.book-card.is-secret{border-color:rgba(255,183,221,.7);box-shadow:0 0 0 1px rgba(255,183,221,.18) inset}
.book-card.is-unknown.is-secret .bc-unknown{color:var(--pink-deep);opacity:.8}
.bc-rare.bc-secret{background:linear-gradient(120deg,var(--pink-deep),var(--gold));color:#2b0d1c}
.book-card.is-unknown{background:rgba(255,255,255,.02);border-style:dashed;cursor:default}
.book-card.is-unknown:hover{transform:none;border-color:var(--line);box-shadow:none}
.bc-unknown{
  display:grid;place-items:center;aspect-ratio:16/10;font-size:34px;color:var(--text-dim);opacity:.5;
  background:linear-gradient(160deg,rgba(255,255,255,.03),transparent);
}
/* 记录 */
.log{display:flex;flex-direction:column;gap:8px}
.log-row{
  display:grid;grid-template-columns:120px minmax(0,1fr) 60px;gap:10px;align-items:baseline;
  padding:12px 15px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.03);
  font-size:.88rem;
}
.lr-when{color:var(--text-dim);font-size:.8rem;font-variant-numeric:tabular-nums}
.lr-gain{color:var(--gold);text-align:right;font-variant-numeric:tabular-nums}
.lr-line{grid-column:2/4;color:var(--text-dim);font-size:.82rem}
.log-empty{padding:22px;border-radius:var(--radius);border:1px dashed var(--line);color:var(--text-dim);font-size:.9rem}

/* ============================================================
   ★★ 主站专用：太阴 · 广寒 布局层（2026-10-10 按马先生意见重做）
   改这里就等于换主站的构图；内页（小窝 / 专区）走上面的通用组件。
   ============================================================ */

/* ---------- 竖排题头与竖排名（中式排版，上一个站没有的构件） ---------- */
.vtitle{
  position:absolute;left:clamp(14px,2.4vw,34px);top:clamp(88px,14vh,150px);z-index:4;
  writing-mode:vertical-rl;text-orientation:upright;
  display:flex;gap:14px;align-items:flex-start;pointer-events:none;
}
.vt-cn{
  font-size:clamp(1.05rem,1.7vw,1.45rem);letter-spacing:.42em;color:var(--moon);
  text-shadow:0 0 24px rgba(99,220,191,.35);
  border-left:1px solid var(--line);padding-left:12px;
}
.vt-en{font-size:.62rem;letter-spacing:.34em;color:var(--text-dim);opacity:.75;padding-top:4px}
.vname{
  position:absolute;right:clamp(14px,2.4vw,34px);top:50%;transform:translateY(-50%);z-index:4;
  writing-mode:vertical-rl;text-orientation:upright;pointer-events:none;
  font-size:clamp(.95rem,1.6vw,1.3rem);letter-spacing:.5em;color:transparent;
  -webkit-text-stroke:1px rgba(234,241,255,.45);
  opacity:.85;
}

/* ---------- 导航：主站改成"浮岛长条"（旧站是通栏＋底部细线，这里刻意不同） ---------- */
.page-home .nav{
  top:14px;left:50%;right:auto;transform:translateX(-50%);
  width:min(100% - 28px,1340px);
  padding:10px clamp(14px,2.4vw,26px);
  border:1px solid var(--line);border-radius:3px;
  background:rgba(9,13,24,.72);
  box-shadow:0 12px 40px rgba(0,0,0,.42);
  backdrop-filter:blur(16px) saturate(1.2);
}
.page-home .nav.is-solid{background:rgba(9,13,24,.9);border-bottom-color:var(--line)}

/* ---------- 首屏：一座月台（居中，单列；不是左右两栏） ---------- */
.page-home .hero{min-height:100svh;display:block;overflow:hidden}
.page-home .hero-inner{display:block;padding:0}   /* 老结构若还在也不生效 */
.page-home .hero-veil{
  background:
    radial-gradient(48% 42% at 50% 34%, rgba(99,220,191,.10), transparent 70%),
    linear-gradient(180deg, rgba(5,8,13,.86) 0%, rgba(5,8,13,.52) 34%, rgba(5,8,13,.9) 92%);
}
.page-home .hero-slide{filter:saturate(.72) hue-rotate(-14deg) brightness(.5)}
.stage-wrap{
  position:relative;z-index:3;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-start;
  padding:clamp(84px,11vh,132px) clamp(20px,5vw,80px) clamp(40px,6vh,68px);
  gap:clamp(16px,2.6vh,32px);
}
.stage{
  position:relative;display:grid;place-items:center;
  align-self:center;justify-self:center;
  width:min(84vw,min(52svh,560px));flex:0 0 auto;
  aspect-ratio:1;
}
/* 月轮：整站的主角 */
.moon-disc{
  position:absolute;inset:8%;border-radius:50%;
  background:radial-gradient(circle at 42% 36%, #ffffff 0%, #f2f7ff 34%, #cddcf6 62%, #8ea6d8 84%, rgba(120,145,200,0) 100%);
  box-shadow:0 0 90px rgba(200,220,255,.30), 0 0 200px rgba(99,220,191,.14);
  animation:breathe 7s ease-in-out infinite;
}
.moon-ring{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(160,196,255,.26);
}
.moon-ring::after{
  content:"";position:absolute;inset:6.5%;border-radius:50%;
  border:1px dashed rgba(160,196,255,.16);
}
.page-home .art-main{
  position:relative;z-index:2;max-height:104%;max-width:104%;width:auto;
  filter:drop-shadow(0 26px 54px rgba(0,0,0,.62)) drop-shadow(0 0 26px rgba(99,220,191,.16));
  animation:floaty 8s ease-in-out infinite;
}
.stage-ground{
  position:absolute;left:50%;bottom:6%;transform:translateX(-50%);
  width:62%;height:1px;background:linear-gradient(90deg,transparent,var(--brand),transparent);opacity:.55;
}
.stage-name{
  position:absolute;left:50%;bottom:-4px;transform:translateX(-50%);
  font-size:.7rem;letter-spacing:.34em;color:var(--text-dim);white-space:nowrap;opacity:.85;
}
/* 月台上的说明条（左文案／右按钮，两栏在"台子之下"，与上一个站的"文案—立绘"两栏完全不同） */
.hero-info{
  width:100%;max-width:1180px;justify-self:center;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(16px,3vw,44px);align-items:end;
  border-top:1px solid var(--line);padding-top:clamp(14px,2.2vh,24px);
}
.hi-left{text-align:left}
.page-home .hero-kicker{margin:0 0 8px;color:var(--brand)}
.page-home .hero-title{
  margin:0 0 10px;display:block;
  font-size:clamp(2.6rem,7.2vw,4.6rem);line-height:1.02;letter-spacing:.08em;font-weight:800;
}
.page-home .hero-title span{
  background:none;-webkit-text-stroke:0;color:var(--moon);
  text-shadow:0 0 34px rgba(200,220,255,.34), 0 2px 0 rgba(31,158,136,.22);
}
.page-home .hero-sub{margin:0 0 14px;max-width:30em}
.page-home .hero-tags{margin-bottom:0}
.page-home .hero-tags span{border-radius:2px;border-color:var(--line);background:transparent;color:var(--silver)}
.hi-right{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.hi-right .btn{width:100%;justify-content:center;border-radius:2px}
.hi-note{margin:6px 0 0;font-size:.76rem;line-height:1.9;color:var(--text-dim);opacity:.8}
.page-home .btn-primary{
  background:linear-gradient(100deg,var(--brand-deep),var(--brand-2));
  box-shadow:0 12px 34px rgba(31,158,136,.32);
}
.page-home .btn-primary:hover{box-shadow:0 18px 44px rgba(99,220,191,.42)}
.page-home .brand-dot,.page-home .brand-logo{box-shadow:0 0 16px rgba(99,220,191,.5)}

/* ---------- 规条（细线刻度，不是大数字卡片） ---------- */
.spec{border-block:1px solid var(--line);background:rgba(13,18,32,.5);backdrop-filter:blur(6px)}
.spec-in{
  display:flex;align-items:center;gap:clamp(16px,4vw,54px);flex-wrap:wrap;
  padding:16px clamp(20px,5vw,80px);
}
.spec-item{display:flex;align-items:baseline;gap:9px}
.spec-item em{font-style:normal;font-size:.76rem;letter-spacing:.2em;color:var(--text-dim)}
.spec-item b{
  font-size:1.32rem;font-weight:700;color:var(--moon);font-variant-numeric:tabular-nums;
  font-family:"Cascadia Code",Consolas,monospace;
}
.spec-verse{margin-left:auto;font-size:.82rem;color:var(--text-dim);opacity:.8}

/* ---------- 小标题（眉标） ---------- */
.sec-eyebrow{
  margin:0 0 14px;font-size:.7rem;letter-spacing:.42em;color:var(--brand);text-transform:uppercase;
  display:flex;align-items:center;gap:12px;
}
.sec-eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}

/* ---------- 两扇门：编号长条（不是圆角入口卡） ---------- */
.doors{display:grid;gap:0;border-top:1px solid var(--line)}
.door{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;gap:clamp(14px,2.6vw,32px);
  padding:clamp(20px,3vw,30px) 0;border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;transition:padding-left .4s cubic-bezier(.2,.7,.2,1), background .4s;
}
.door::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:0;
  background:linear-gradient(90deg,rgba(99,220,191,.12),transparent);
  transition:width .5s cubic-bezier(.2,.7,.2,1);
}
.door:hover{padding-left:clamp(10px,2vw,26px)}
.door:hover::before{width:60%}
.door-no{
  position:relative;z-index:1;flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:2px;color:var(--brand);
  font-size:1.05rem;letter-spacing:.06em;background:rgba(99,220,191,.06);
}
.door-main{position:relative;z-index:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.door-main strong{
  font-size:clamp(1.15rem,2.4vw,1.7rem);font-weight:700;color:var(--moon);letter-spacing:.02em;
}
.door-main small{color:var(--text-dim);font-size:.9rem}
.door-strip{position:relative;z-index:1;display:flex;gap:6px}
.door-strip i{
  width:clamp(40px,5vw,64px);aspect-ratio:3/4;background-size:cover;background-position:center;
  border:1px solid var(--line);border-radius:2px;filter:saturate(.85) brightness(.92);
  transition:transform .45s cubic-bezier(.2,.7,.2,1), filter .45s;
}
.door:hover .door-strip i{filter:saturate(1.05) brightness(1.02)}
.door:hover .door-strip i:nth-child(1){transform:translateY(-5px)}
.door:hover .door-strip i:nth-child(2){transform:translateY(-9px)}
.door:hover .door-strip i:nth-child(3){transform:translateY(-5px)}
.door-go{
  position:relative;z-index:1;flex:0 0 auto;font-size:.86rem;color:var(--brand);
  border:1px solid var(--line);border-radius:2px;padding:9px 16px;white-space:nowrap;transition:.3s;
}
.door:hover .door-go{background:var(--brand);border-color:transparent;color:#04120e}

/* ---------- 歌单：成卷曲目单（不是卡片墙） ---------- */
.songs-sec .song-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,40px) clamp(24px,4vw,64px)}
.grp{border-left:1px solid var(--line);padding-left:clamp(12px,1.6vw,20px)}
.grp-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.grp-head strong{
  font-size:1.02rem;letter-spacing:.1em;color:var(--moon);
}
.grp-head span{font-size:.74rem;color:var(--text-dim);font-variant-numeric:tabular-nums}
.grp-head i{flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.grp-list{display:flex;flex-direction:column}
.page-home .song{
  display:flex;align-items:center;gap:12px;padding:7px 4px;border:0;border-bottom:1px solid rgba(160,196,255,.09);
  border-radius:0;background:transparent;transition:background .25s, padding-left .25s;
}
.page-home .song:hover{background:transparent;border-color:transparent;border-bottom-color:rgba(160,196,255,.09);padding-left:10px;transform:none}
.page-home .song:hover .song-name{color:var(--brand)}
.page-home .song.is-playing{border-color:transparent;border-bottom-color:var(--brand);background:transparent}
.page-home .song-no{
  flex:0 0 30px;font-family:"Cascadia Code",Consolas,monospace;font-size:.74rem;
  color:var(--text-dim);opacity:.75;text-align:left;
}
.page-home .song-name{color:var(--silver);transition:color .25s}
.page-home .song-cat{display:none}
.page-home .song-empty{border-radius:2px;border-style:dashed}

/* ---------- 页脚 / 播放器 / 提示：也跟着换成细边冷色 ---------- */
.foot{border-top:1px solid var(--line)}
.player{
  background:linear-gradient(180deg, rgba(13,18,32,.92), rgba(5,8,13,.98));
  border-top:1px solid var(--line);
}
.pl-art{border-radius:50%}
.pl-btns .pl-main{
  background:linear-gradient(100deg,var(--brand-deep),var(--brand-2));
  box-shadow:0 10px 28px rgba(31,158,136,.32);
}
.pl-bar-fill{background:linear-gradient(90deg,var(--brand),var(--moon))}
.pl-viz{opacity:.8}
.nav-links a::after{background:linear-gradient(90deg,var(--brand),var(--brand-2))}
.brand-sub{font-size:.72rem;color:var(--text-dim);letter-spacing:.14em;margin-left:8px;opacity:.75}
.chip{border-radius:2px}
.chip.is-active{background:linear-gradient(100deg,var(--brand-deep),var(--brand-2));color:#04120e}
.chip:hover{border-color:var(--brand)}
.chip--clear{color:var(--brand);border-color:rgba(99,220,191,.45)}
.chip--clear:hover{background:rgba(99,220,191,.1)}
.search-wrap{border-radius:2px}
.search-wrap input:focus{outline:none}
.sec-head h2::after{background:linear-gradient(90deg,var(--brand),var(--brand-2),transparent)}
.btn-ghost:hover{background:var(--glass-2);border-color:var(--brand)}
.toast{border-radius:2px}

/* 内页（小窝 / 专区 / 小游戏）跟随新配色：把大圆角收细、主色换成太阴青 */
.hut-scene{
  background:
    radial-gradient(70% 60% at 50% 34%, rgba(200,220,255,.14), transparent 70%),
    linear-gradient(180deg,#0e1526,#080c16 70%,#05080d);
}
.bag{background:rgba(255,255,255,.025)}
.page-game .bag-fill,.bag-fill{background:linear-gradient(90deg,var(--brand),var(--brand-2))}
.btn-primary:disabled{background:rgba(99,220,191,.16);box-shadow:none;color:var(--text-dim)}
.zone-card,.member-card,.book-card,.shelf-item,.shop-item,.bag,.hut-scene,.gate-box,.gate-wall,
.zone-soon,.log-row,.slot{border-radius:var(--radius)}
.tier-badge,.zone-ico,.sf-ico,.member-thumb,.deco-item,.gate-lock,.door-no{border-radius:2px}
.tab,.btn,.gate-row input,.gate-row .btn,.zone-count,.card-date,.sf-act,.stage-chip,.bc-rare{border-radius:2px}
.member-card{border-radius:3px}
.zone-tier .tier-badge{background:linear-gradient(100deg,var(--brand-deep),var(--brand-2))}
.tab.is-active{background:linear-gradient(100deg,var(--brand-deep),var(--brand-2));color:#04120e}
.tab.is-active b{color:#04120e}
.zone-card--voice .sf-ico{color:var(--brand)}
.member-card:hover,.book-card:hover{border-color:var(--brand)}
.member-card.is-playing{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),0 14px 34px rgba(31,158,136,.22)}
.card-date{color:var(--gold);background:rgba(232,204,142,.1)}
.bars i{background:var(--brand)}
.song.is-playing .song-no{color:var(--brand)}
.song-tag{color:var(--gold)}
.lightbox img{border-radius:4px}
.lb-close,.lb-nav{border-radius:2px}

/* 主站响应式：月台与说明条在窄屏改成上下堆叠 */
@media (max-width:820px){
  .vtitle,.vname{display:none}
  .stage{width:min(94vw,460px)}
  .hero-info{grid-template-columns:1fr;align-items:start;text-align:center}
  .hi-left{text-align:center}
  .hi-right{align-items:stretch;width:100%}
  .hi-note{text-align:center}
  .spec-verse{display:none}
  .songs-sec .song-list{grid-template-columns:1fr}
  .door{grid-template-columns:auto minmax(0,1fr) auto}
  .door-strip{display:none}
}

/* ---------- 响应式 ---------- */
@media (max-width:1100px){
  .hut{grid-template-columns:1fr}
}
@media (max-width:960px){
  .hero-inner{grid-template-columns:1fr;text-align:center;padding-top:120px}
  .hero-copy{order:2}
  .hero-art{order:1}
  .hero-title{justify-content:center}
  .hero-sub{margin-left:auto;margin-right:auto}
  .hero-tags,.hero-actions{justify-content:center}
  .art-main{max-height:44svh}
  .pl-viz{display:none}
}
@media (max-width:720px){
  .nav-links{position:fixed;inset:60px 0 auto 0;flex-direction:column;gap:0;padding:8px 0;
    background:rgba(10,9,19,.98);border-bottom:1px solid var(--line);display:none}
  .nav-links.is-open{display:flex}
  .nav-links a{padding:14px 22px}
  .nav-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
  .nav-toggle span{width:24px;height:2px;background:var(--text);border-radius:2px;transition:.3s}
  .stats{grid-template-columns:repeat(3,1fr);transform:translateY(-24px)}
  .stat{padding:16px 8px}
  .entry{flex-direction:column;align-items:flex-start;gap:16px}
  .entry-go{align-self:flex-start}
  .pl-time{display:none}
  .pl-art{flex-basis:50px;width:50px;height:50px}
  .bag-slots{grid-template-columns:repeat(3,1fr)}
  .log-row{grid-template-columns:1fr auto}
  .lr-line{grid-column:1/3}
  :root{--player-h:84px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
}
