:root{
  --bg:#0d0f1a; --bg2:#14182b; --card:#1b2138; --ink:#e9e6da;
  --gold:#ffce6b; --jade:#5fe0c0; --muted:#8a90a8;
  --n:#9fb2c9; --r:#4fc3f7; --sr:#b388ff; --ssr:#ffb300; --ur:#ff4d6d;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;overscroll-behavior:none;}
body{overflow-x:hidden;}
#app{max-width:480px;margin:0 auto;min-height:100vh;position:relative;z-index:2;
  display:flex;flex-direction:column;padding-bottom:64px;}

/* ============ 分层背景：随热度 data-lv 0-7 进化 ============ */
#bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:
  radial-gradient(120% 70% at 50% -10%,#1c2140 0%,#0d0f1a 62%);transition:background 1.2s;}
#bg>div{position:absolute;inset:0;opacity:0;transition:opacity 1.2s;pointer-events:none;}
.bg-grid{background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);
  background-size:34px 34px;opacity:.45!important;}
.bg-blobs{background:radial-gradient(38% 30% at 18% 22%,#5fe0c033,transparent 70%),
  radial-gradient(34% 28% at 82% 68%,#b388ff33,transparent 70%);}
.bg-rays{background:conic-gradient(from 0deg at 50% 42%,#ffce6b12 0deg,transparent 22deg,
  #ffce6b12 44deg,transparent 66deg,#ffce6b12 88deg,transparent 110deg,#ffce6b12 132deg,
  transparent 154deg,#ffce6b12 176deg,transparent 198deg,#ffce6b12 220deg,transparent 242deg,
  #ffce6b12 264deg,transparent 286deg,#ffce6b12 308deg,transparent 330deg,#ffce6b12 352deg);
  animation:spin 26s linear infinite;}
.bg-rainbow{background:linear-gradient(115deg,#ff8fbf22,#ffe06622,#8ff0c022,#8fd9ff22,#c7a6ff22);
  filter:blur(40px);}
.bg-cosmos{background:radial-gradient(2px 2px at 20% 30%,#fff,transparent),
  radial-gradient(2px 2px at 70% 20%,#fff,transparent),radial-gradient(1px 1px at 40% 70%,#fff,transparent),
  radial-gradient(2px 2px at 85% 60%,#fff,transparent),radial-gradient(1px 1px at 12% 82%,#fff,transparent),
  radial-gradient(2px 2px at 55% 45%,#ffce6b,transparent);}
@keyframes spin{to{transform:rotate(360deg)}}
#bg[data-lv="0"] .bg-blobs{opacity:.25}
#bg[data-lv="1"] .bg-blobs{opacity:.55}
#bg[data-lv="2"] .bg-blobs{opacity:.8}
#bg[data-lv="2"] .bg-rays{opacity:.25}
#bg[data-lv="3"] .bg-blobs{opacity:.9}#bg[data-lv="3"] .bg-rays{opacity:.55}
#bg[data-lv="4"] .bg-blobs{opacity:1}#bg[data-lv="4"] .bg-rays{opacity:.8}#bg[data-lv="4"] .bg-rainbow{opacity:.6}
#bg[data-lv="5"] .bg-rays{opacity:1}#bg[data-lv="5"] .bg-rainbow{opacity:.85}#bg[data-lv="5"] .bg-blobs{opacity:1}
#bg[data-lv="6"] .bg-rays{opacity:1}#bg[data-lv="6"] .bg-rainbow{opacity:1}#bg[data-lv="6"] .bg-cosmos{opacity:1}
#bg[data-lv="7"] .bg-rays{opacity:1}#bg[data-lv="7"] .bg-rainbow{opacity:1}#bg[data-lv="7"] .bg-cosmos{opacity:1}
#bg[data-lv="7"]{background:radial-gradient(120% 70% at 50% -10%,#4a2a5e 0%,#1a1030 60%,#0d0f1a 100%)}
body.lv7 .brand{text-shadow:0 0 18px #ffce6b,0 0 36px #ff4d6d}
#fx{position:fixed;inset:0;z-index:45;pointer-events:none;}

/* ============ HUD ============ */
.hud{padding:12px 14px 6px;}
.hud-top{display:flex;align-items:center;gap:8px;}
.brand{font-size:20px;font-weight:800;letter-spacing:3px;
  background:linear-gradient(90deg,var(--gold),var(--jade));-webkit-background-clip:text;
  background-clip:text;color:transparent;transition:.3s;}
.account-chip{flex:1;font-size:11px;color:var(--muted);background:#1b2138cc;
  padding:5px 10px;border-radius:20px;border:1px solid #2a3150;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.icon-btn{width:30px;height:30px;border-radius:50%;border:1px solid #2a3150;background:var(--card);
  color:var(--jade);font-size:14px;cursor:pointer;flex:0 0 auto;}
.icon-btn.off{color:#555;}

.dopa{display:flex;align-items:baseline;gap:6px;padding:8px 12px;margin-top:8px;
  background:linear-gradient(90deg,#1b2138,#14182b);border:1px solid #2a3150;
  border-radius:12px;position:relative;overflow:hidden;}
.dopa-label{font-size:11px;color:var(--muted);}
.dopa-val{font-size:26px;font-weight:800;color:var(--gold);line-height:1;
  font-variant-numeric:tabular-nums;text-shadow:0 0 14px #ffce6b55;}
.dopa-unit{font-size:12px;color:var(--jade);}
.dopa-total{margin-left:auto;font-size:10px;color:var(--muted);}

.resources{display:flex;gap:6px;margin-top:8px;}
.res{flex:1;background:var(--card);border:1px solid #262d4a;border-radius:10px;
  padding:6px 4px;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;}
.res i{font-style:normal;font-size:13px;}
.res b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;}
.res small{width:100%;text-align:center;font-size:9px;color:var(--muted);}
.res.coin i,.res.coin b{color:var(--gold);}
.res.pack i,.res.pack b{color:var(--jade);}
.res.fever i,.res.fever b{color:#b388ff;}
.res.read i,.res.read b{color:#8fd9ff;}
.res.bump{animation:bump .5s;}
@keyframes bump{50%{transform:scale(1.14);box-shadow:0 0 16px #ffce6b66}}

/* 热度条 */
.meter{display:flex;align-items:center;gap:6px;padding:6px 14px 0;}
.pips{display:flex;gap:3px;flex:1;}
.pips i{flex:1;height:5px;border-radius:3px;background:#2a3150;transition:.4s;}
.pips i.on{background:linear-gradient(90deg,var(--jade),var(--gold));box-shadow:0 0 8px #ffce6b88;}
.pips i.hot{background:linear-gradient(90deg,var(--gold),var(--ur));box-shadow:0 0 10px #ff4d6d88;}
.lvname{font-size:11px;color:var(--gold);font-weight:700;white-space:nowrap;}
.chain-tag{font-size:10px;color:#fff;background:linear-gradient(90deg,#b388ff,#ff4d6d);
  padding:2px 7px;border-radius:10px;white-space:nowrap;}
.rank-chip{font-size:10px;color:var(--jade);background:var(--card);border:1px solid #2a3150;
  padding:3px 8px;border-radius:12px;cursor:pointer;white-space:nowrap;}

/* ============ 舞台 ============ */
#stage{flex:1;padding:8px 14px;display:flex;flex-direction:column;}
.banner-card{background:linear-gradient(135deg,#241b3d,#1a2540);border:1px solid #34305c;
  border-radius:14px;padding:10px 12px;position:relative;overflow:hidden;}
.banner-card::after{content:"";position:absolute;right:-24px;top:-24px;width:88px;height:88px;
  border-radius:50%;background:radial-gradient(circle,var(--sr),transparent 70%);opacity:.35;}
.banner-title{font-size:15px;font-weight:700;color:var(--gold);}
.banner-desc{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.45;}
.banner-boost{margin-top:5px;font-size:10px;color:var(--jade);}
.banner-daily{margin-top:4px;font-size:10px;color:#ffd98a;}

.machine{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-height:210px;}
.halo{position:absolute;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,#5fe0c033,transparent 65%);animation:pulse 3s ease-in-out infinite;}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.65}50%{transform:scale(1.1);opacity:1}}
.orb-ring{position:absolute;width:206px;height:206px;border-radius:50%;border:2px solid transparent;
  transition:.4s;opacity:0;}
.capsule{width:158px;height:158px;border-radius:26px;background:linear-gradient(160deg,#2a3160,#161b33);
  border:2px solid #3a4480;box-shadow:0 0 40px #5fe0c033,inset 0 0 28px #0008;
  display:flex;align-items:center;justify-content:center;position:relative;z-index:2;transition:.35s;}
.char-show{font-size:82px;font-weight:800;color:var(--ink);text-shadow:0 0 22px #ffce6b66;transition:.25s;}
.capsule.drop{animation:capDrop .58s cubic-bezier(.5,0,1,.6);}
@keyframes capDrop{0%{transform:translateY(-160px) scale(.7)}70%{transform:translateY(8px) scale(1.04)}100%{transform:none}}
.capsule.landed{animation:landed .2s;}
@keyframes landed{50%{transform:scale(1.07)}}
.capsule.up{transform:scale(1.1);}
.capsule.open{animation:capOpen .45s ease-out;}
@keyframes capOpen{0%{transform:scale(1.1)}40%{transform:scale(1.35);filter:brightness(2)}100%{transform:scale(1)}}
#app.shaking{animation:shake .42s;}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translate(-7px,3px) rotate(-1deg)}
  50%{transform:translate(6px,-3px) rotate(1deg)}80%{transform:translate(-4px,2px)}}
.upgrade-label{position:absolute;bottom:6px;font-size:12px;font-weight:800;letter-spacing:2px;
  color:var(--gold);opacity:0;transition:.25s;text-shadow:0 0 12px currentColor;}
.upgrade-label.show{opacity:1;animation:upPop .4s;}
@keyframes upPop{from{transform:scale(.6)}to{transform:scale(1)}}

.prob{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;padding:6px 0 2px;}
.prob .p{font-size:10px;color:var(--muted);background:#14182b;padding:3px 7px;
  border-radius:20px;border:1px solid #262d4a;}

/* ============ 底部控制 ============ */
.controls{padding:6px 14px 10px;}
.packs-line{display:flex;justify-content:space-between;align-items:center;font-size:11px;
  color:var(--muted);margin-bottom:8px;}
.packs-line b{color:var(--ink);font-size:13px;}
.pk-timer{color:var(--jade);}
.btns{display:flex;gap:8px;}
.btn{flex:1;border:none;border-radius:14px;padding:11px 0;font-size:15px;font-weight:800;
  color:#0d0f1a;cursor:pointer;transition:.15s;display:flex;flex-direction:column;align-items:center;gap:1px;}
.btn small{font-size:9px;font-weight:600;opacity:.75;}
.btn:active{transform:scale(.96);}
.btn:disabled{opacity:.5;}
.btn-single{background:linear-gradient(135deg,#9fe7d3,var(--jade));}
.btn-ten{background:linear-gradient(135deg,var(--gold),#ff9d4d);box-shadow:0 6px 20px #ff9d4d55;}
.btn-fever{background:linear-gradient(135deg,#c9a6ff,#ff6fa8);color:#fff;box-shadow:0 6px 20px #b388ff55;}
.ad-refill{width:100%;margin-top:8px;border:1px dashed #b388ff;background:#b388ff1a;color:#d9c6ff;
  border-radius:12px;padding:9px;font-size:12px;font-weight:700;cursor:pointer;}

/* ============ 底部导航 ============ */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;
  display:flex;background:#0d0f1af2;border-top:1px solid #262d4a;backdrop-filter:blur(10px);z-index:30;}
.tab{flex:1;background:none;border:none;color:var(--muted);padding:9px 0 11px;font-size:11px;cursor:pointer;}
.tab.active{color:var(--gold);font-weight:800;}

/* ============ 视图切换 ============ */
.view{display:none;flex:1;padding:8px 14px;animation:fade .25s ease;}
#app[data-view="gacha"] #stage{display:flex;}
#app:not([data-view="gacha"]) #stage{display:none;}
#app:not([data-view="gacha"]) .controls{display:none;}
#app[data-view="shop"] .view{display:none;}
.view.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ============ 图鉴 ============ */
.dex-head{position:sticky;top:0;background:#0d0f1ae8;padding:6px 0 8px;z-index:3;}
.dex-progress{font-size:14px;font-weight:700;color:var(--gold);margin-bottom:6px;}
.tier-filters{display:flex;gap:5px;overflow-x:auto;padding-bottom:4px;}
.tier-filters .tf{flex:0 0 auto;font-size:11px;padding:4px 10px;border-radius:20px;
  background:var(--card);color:var(--muted);border:1px solid #262d4a;cursor:pointer;}
.tier-filters .tf.active{color:#0d0f1a;font-weight:700;background:var(--gold);border-color:var(--gold);}
.dex-note{font-size:10px;color:var(--muted);margin-top:6px;}
.dex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:6px;}
.dex-cell{aspect-ratio:3/4;border-radius:9px;background:var(--card);display:flex;flex-direction:column;
  align-items:center;justify-content:center;border:1px solid #262d4a;position:relative;overflow:hidden;cursor:pointer;}
.dex-cell .dc{font-size:28px;font-weight:800;}
.dex-cell .dt{font-size:8px;color:var(--muted);margin-top:2px;}
.dex-cell.locked .dc{color:#2a3050;filter:blur(3px);}
.dex-cell.locked .dt{color:#2a3050;}
.dex-cell .cnt{position:absolute;top:2px;right:4px;font-size:9px;color:var(--gold);}
.dex-cell .cost{position:absolute;bottom:5px;font-size:9px;color:var(--gold);}
.dex-cell .tier-bar{position:absolute;bottom:0;left:0;right:0;height:3px;}
.dex-cell:active{transform:scale(.94);}

/* ============ 灵聊 ============ */
.chat-head{font-size:14px;color:var(--jade);padding:4px 0 8px;font-weight:700;}
.chat-head small{font-size:10px;color:var(--muted);font-weight:400;}
.chat-box{height:calc(100vh - 300px);overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding-bottom:8px;}
.msg{max-width:82%;padding:9px 11px;border-radius:14px;font-size:13px;line-height:1.55;word-break:break-word;}
.msg.ai{align-self:flex-start;background:var(--card);border:1px solid #2a3150;border-bottom-left-radius:4px;}
.msg.me{align-self:flex-end;background:linear-gradient(135deg,var(--jade),#3fb89c);color:#06231d;border-bottom-right-radius:4px;}
.chat-input{display:flex;gap:8px;padding:8px 0 4px;}
.chat-input input{flex:1;background:var(--card);border:1px solid #2a3150;border-radius:20px;
  padding:9px 13px;color:var(--ink);font-size:13px;outline:none;}
.chat-input button{background:var(--gold);border:none;border-radius:20px;padding:0 16px;font-weight:700;color:#0d0f1a;}

/* ============ 我的 ============ */
.me-card{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:14px;
  padding:12px;border:1px solid #262d4a;}
.me-avatar{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;color:#0d0f1a;background:linear-gradient(135deg,var(--gold),var(--jade));flex:0 0 auto;}
.me-info{flex:1;min-width:0;}
.me-name{font-size:16px;font-weight:800;}
.me-sub{font-size:11px;color:var(--muted);margin-top:2px;}
.rank-bar{height:6px;background:#0d0f1a;border-radius:4px;overflow:hidden;margin:6px 0 3px;}
.rank-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--jade),var(--gold));width:0;}
.stat-row{display:flex;gap:7px;margin:12px 0;}
.stat{flex:1;background:var(--card);border-radius:10px;padding:10px 0;text-align:center;border:1px solid #262d4a;}
.stat-num{font-size:19px;font-weight:800;color:var(--gold);}
.stat-lbl{font-size:10px;color:var(--muted);margin-top:2px;}
.pity-box{background:var(--card);border-radius:12px;padding:12px;border:1px solid #262d4a;margin-bottom:12px;}
.pity-item{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin:5px 0;}
.pity-bar{flex:1;height:7px;background:#0d0f1a;border-radius:5px;overflow:hidden;}
.pity-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--ssr));width:0;}
.pity-bar.ur i{background:linear-gradient(90deg,var(--sr),var(--ur));}
.me-btns{display:flex;gap:8px;margin-bottom:12px;}
.me-btns button{flex:1;background:var(--card);border:1px solid #2a3150;color:var(--ink);
  border-radius:10px;padding:10px;font-size:12px;cursor:pointer;}
.account-box{background:var(--card);border-radius:12px;padding:12px;border:1px solid #262d4a;}
.ab-title{font-size:12px;color:var(--jade);font-weight:700;margin-bottom:7px;}
#vipTag{background:linear-gradient(90deg,var(--gold),#ff9d4d);color:#0d0f1a;padding:1px 7px;
  border-radius:8px;font-size:9px;margin-left:6px;}
.ab-row{display:flex;align-items:center;gap:8px;font-size:13px;margin:7px 0;}
.ab-row span{color:var(--muted);width:32px;}
.ab-row b{flex:1;font-family:monospace;letter-spacing:1px;}
.copy{background:#2a3150;border:none;color:var(--ink);font-size:10px;padding:4px 9px;border-radius:9px;cursor:pointer;}
.ab-tip{font-size:10px;color:var(--muted);margin-top:7px;line-height:1.5;}

/* ============ 演出层 ============ */
#flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:60;}
#flash.go{animation:flashGo .42s ease-out;}
#flash.gold.go{background:#ffe9a8;}
@keyframes flashGo{0%{opacity:.95}100%{opacity:0}}
#cut{position:fixed;inset:0;z-index:58;display:flex;align-items:center;justify-content:center;
  pointer-events:none;perspective:600px;}
#cut .cutin{font-size:44px;font-weight:900;letter-spacing:6px;color:#fff;
  text-shadow:0 0 22px currentColor,0 6px 0 #0006;animation:cutIn .75s ease-out forwards;}
#cut .cutin.chance{color:#8fd9ff;}#cut .cutin.hot{color:#ffb300;}#cut .cutin.sure{color:#ff4d6d;}
@keyframes cutIn{0%{transform:scale(2.6) rotate(-12deg);opacity:0}
  25%{transform:scale(1) rotate(0);opacity:1}75%{opacity:1}100%{transform:scale(1.15);opacity:0}}
#skipBtn{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:70;
  background:#0009;border:1px solid #ffffff44;color:#fff;border-radius:20px;
  padding:8px 12px;font-size:11px;cursor:pointer;}

.overlay{position:fixed;inset:0;background:#05060ce6;display:none;align-items:center;justify-content:center;
  z-index:50;padding:16px;backdrop-filter:blur(3px);}
.overlay.show{display:flex;animation:fade .2s;}

/* 抽卡结果 */
.pull-result{background:linear-gradient(160deg,#1a2540,#12162a);border-radius:18px;padding:16px;
  max-width:440px;width:100%;max-height:88vh;overflow-y:auto;border:1px solid #34305c;}
.pr-head{text-align:center;font-size:16px;font-weight:800;color:var(--gold);margin-bottom:10px;}
.pr-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;perspective:700px;}
.pr-card{aspect-ratio:3/4;border-radius:9px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;position:relative;overflow:hidden;transform:rotateY(90deg);opacity:0;}
.pr-card.flip{animation:flipIn .42s cubic-bezier(.2,.8,.3,1) forwards;}
@keyframes flipIn{0%{transform:rotateY(90deg) scale(.8);opacity:0}
  100%{transform:rotateY(0) scale(1);opacity:1}}
.pr-card .pc{font-size:29px;font-weight:800;line-height:1;}
.pr-card .pt{font-size:8px;margin-top:3px;opacity:.95;}
.pr-card .newb{position:absolute;top:3px;right:3px;font-size:7px;background:var(--ur);
  color:#fff;padding:1px 3px;border-radius:4px;font-weight:800;}
.pr-card .daily{position:absolute;top:3px;left:3px;font-size:7px;background:var(--gold);
  color:#0d0f1a;padding:1px 3px;border-radius:4px;font-weight:800;}
.pr-card.rare{box-shadow:0 0 16px currentColor;}
.pr-summary{margin-top:12px;text-align:center;font-size:12px;color:var(--jade);line-height:1.7;}
.pr-summary b{color:var(--gold);}
.pr-chain{margin-top:10px;border-top:1px dashed #34305c;padding-top:10px;min-height:0;}
.chain-step{display:flex;align-items:center;gap:8px;font-size:12px;padding:5px 0;animation:fade .3s;}
.chain-step .cs-n{font-weight:800;color:#ff9d4d;min-width:56px;}
.chain-step .cs-best{color:var(--gold);}
.chain-step .cs-sub{color:var(--muted);font-size:10px;}
.chain-fever{text-align:center;font-size:15px;font-weight:900;letter-spacing:3px;color:#ff6fa8;
  text-shadow:0 0 16px #ff4d6d;animation:feverPulse .6s infinite alternate;}
@keyframes feverPulse{to{transform:scale(1.06);color:#ffce6b}}
.pr-close{width:100%;margin-top:14px;border:none;border-radius:12px;padding:12px;font-weight:800;
  font-size:14px;background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;}

/* 通用面板 */
.panel{background:linear-gradient(160deg,#1a2540,#12162a);border-radius:18px;padding:16px;
  max-width:440px;width:100%;max-height:84vh;overflow-y:auto;border:1px solid #34305c;}
.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.panel-head b{font-size:17px;color:var(--gold);letter-spacing:2px;}
.panel-coins{margin-left:auto;font-size:12px;color:var(--gold);}
.panel-coins i{font-style:normal;font-weight:800;}
.x{margin-left:6px;background:#2a3150;border:none;color:var(--ink);width:26px;height:26px;
  border-radius:50%;cursor:pointer;font-size:12px;}

.shop-tabs{display:flex;gap:6px;margin-bottom:12px;}
.shop-tabs button{flex:1;padding:8px 0;font-size:11px;border-radius:10px;border:1px solid #2a3150;
  background:var(--card);color:var(--muted);cursor:pointer;}
.shop-tabs button.active{background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;font-weight:800;border:none;}
.shop-body{min-height:120px;}
.shop-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid #262d4a;
  border-radius:12px;padding:10px;margin-bottom:8px;}
.si-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:18px;background:#2a3150;flex:0 0 auto;}
.si-main{flex:1;min-width:0;}
.si-name{font-size:13px;font-weight:700;}
.si-desc{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.4;}
.si-btn{border:none;border-radius:10px;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;white-space:nowrap;}
.si-btn:disabled{opacity:.45;}
.si-btn.ad{background:linear-gradient(135deg,#9fe7d3,var(--jade));}
.si-btn.pay{background:linear-gradient(135deg,#c9a6ff,#ff6fa8);color:#fff;}
.si-tag{font-size:9px;background:var(--ur);color:#fff;padding:1px 5px;border-radius:6px;margin-left:5px;}
.shop-foot{font-size:10px;color:var(--muted);line-height:1.6;margin-top:10px;border-top:1px solid #262d4a;padding-top:8px;}
.recharge-perks{font-size:10px;color:var(--jade);margin-top:4px;line-height:1.6;}

/* 任务 / 成就 */
.quest-body{font-size:13px;}
.quest-sec{font-size:12px;color:var(--jade);font-weight:700;margin:12px 0 7px;}
.quest-row{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid #262d4a;
  border-radius:10px;padding:9px;margin-bottom:6px;}
.qr-main{flex:1;}
.qr-name{font-size:12px;}
.qr-bar{height:5px;background:#0d0f1a;border-radius:4px;overflow:hidden;margin-top:5px;}
.qr-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--jade),var(--gold));}
.qr-state{font-size:10px;color:var(--muted);}
.qr-state.done{color:var(--gold);font-weight:800;}
.tro-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.tro{padding:8px;border-radius:9px;background:var(--card);border:1px solid #262d4a;font-size:11px;}
.tro.done{border-color:var(--gold);color:var(--gold);}
.tro b{display:block;font-size:11px;}
.tro small{color:var(--muted);font-size:9px;}

/* 广告播放 */
.ad-player{background:#12162a;border-radius:18px;padding:14px;max-width:360px;width:100%;border:1px solid #34305c;}
.ad-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);}
.ad-visual{height:230px;border-radius:12px;background:linear-gradient(150deg,#2a3160,#3a1e52,#161b33);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:10px 0;
  position:relative;overflow:hidden;}
.ad-visual::before{content:"";position:absolute;inset:0;background:conic-gradient(from 0deg at 50% 50%,
  #ffce6b18,transparent 60deg,#b388ff18 120deg,transparent 180deg,#5fe0c018 240deg,transparent 300deg);
  animation:spin 8s linear infinite;}
.ad-logo{font-size:26px;font-weight:900;letter-spacing:6px;color:var(--gold);z-index:1;}
.ad-slogan{font-size:11px;color:var(--ink);z-index:1;letter-spacing:2px;}
.ad-glyph{font-size:90px;font-weight:800;color:#ffffff22;position:absolute;bottom:-16px;right:6px;}
.ad-info{font-size:12px;color:var(--jade);text-align:center;}
.ad-count{text-align:center;font-size:40px;font-weight:900;color:var(--gold);margin:6px 0;
  font-variant-numeric:tabular-nums;}
.ad-claim{width:100%;border:none;border-radius:12px;padding:13px;font-weight:800;font-size:14px;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;}
.ad-claim:disabled{background:#2a3150;color:var(--muted);}

/* 充值确认 */
.pay-card{background:linear-gradient(160deg,#241b3d,#12162a);border-radius:18px;padding:20px;
  max-width:360px;width:100%;border:1px solid #b388ff66;}
.pay-title{font-size:19px;font-weight:800;color:var(--gold);text-align:center;}
.pay-item{margin:14px 0;font-size:14px;line-height:1.9;background:#ffffff0a;border-radius:10px;padding:12px;}
.pay-item b{color:var(--gold);font-size:20px;}
.pay-notice{font-size:10px;color:var(--muted);line-height:1.6;background:#b388ff14;
  border:1px solid #b388ff33;border-radius:8px;padding:9px;}
.pay-btns{display:flex;gap:8px;margin-top:14px;}
.pay-btns button{flex:1;border:none;border-radius:11px;padding:12px;font-weight:800;cursor:pointer;font-size:13px;}
.pay-cancel{background:#2a3150;color:var(--ink);}
.pay-ok{background:linear-gradient(135deg,#c9a6ff,#ff6fa8);color:#fff;}

/* 奖励弹层 */
.reward-card{background:linear-gradient(160deg,#2a2140,#12162a);border-radius:18px;padding:22px;
  max-width:340px;width:100%;border:1px solid var(--gold);text-align:center;}
.rw-title{font-size:20px;font-weight:900;color:var(--gold);letter-spacing:3px;}
.rw-items{margin:16px 0;display:flex;flex-direction:column;gap:8px;}
.rw-item{background:#ffffff0d;border-radius:10px;padding:9px;font-size:14px;color:var(--ink);}
.rw-item b{color:var(--gold);}
.rw-sub{font-size:11px;color:var(--muted);line-height:1.6;}
.rw-ok{width:100%;margin-top:16px;border:none;border-radius:12px;padding:12px;font-weight:800;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;}

/* 欢迎 / 字灵详情 */
.welcome{background:linear-gradient(160deg,#241b3d,#161b33);border-radius:18px;padding:22px;
  max-width:350px;width:100%;border:1px solid #34305c;text-align:center;}
.w-title{font-size:23px;font-weight:800;color:var(--gold);letter-spacing:3px;}
.w-sub{font-size:12px;color:var(--muted);margin:7px 0 16px;}
.w-row{display:flex;align-items:center;gap:8px;justify-content:center;margin:9px 0;font-size:14px;}
.w-row span{color:var(--muted);}
.w-row b{font-family:monospace;letter-spacing:1px;}
.w-gift{font-size:12px;color:var(--jade);margin:10px 0;}
.w-tip{font-size:11px;color:var(--muted);margin:12px 0;line-height:1.5;}
.w-btns{display:flex;gap:8px;}
.w-copy,.w-ok{flex:1;border:none;border-radius:11px;padding:11px;font-weight:700;cursor:pointer;}
.w-copy{background:#2a3150;color:var(--ink);}
.w-ok{background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;}

.lore-card{background:linear-gradient(160deg,#1a2540,#12162a);border-radius:18px;padding:20px;
  max-width:350px;width:100%;border:1px solid #34305c;text-align:center;max-height:88vh;overflow-y:auto;}
.lore-char{font-size:74px;font-weight:800;text-shadow:0 0 28px #ffce6b66;}
.lore-meta{font-size:11px;color:var(--muted);margin:5px 0 10px;}
.lore-name{font-size:19px;font-weight:800;color:var(--gold);}
.lore-vibe{font-size:12px;color:var(--jade);margin:5px 0 12px;}
.lore-poem{font-size:15px;line-height:1.8;font-style:italic;margin-bottom:10px;}
.lore-story{font-size:12px;color:var(--muted);line-height:1.6;}
.lore-deep{font-size:12px;color:#d9c6ff;line-height:1.7;margin-top:12px;text-align:left;
  background:#b388ff12;border-left:2px solid #b388ff;padding:9px;border-radius:0 8px 8px 0;}
.lore-deep-btn{margin-top:10px;width:100%;border:none;border-radius:11px;padding:10px;font-weight:700;
  background:linear-gradient(135deg,#b388ff,#ff4d6d);color:#fff;cursor:pointer;font-size:12px;}
.lore-deep-btn:disabled{opacity:.6;}
.lore-exchange{margin-top:8px;width:100%;border:none;border-radius:11px;padding:10px;font-weight:700;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;font-size:12px;}
.lore-close{margin-top:8px;width:100%;border:none;border-radius:11px;padding:10px;font-weight:700;
  background:var(--card);color:var(--ink);cursor:pointer;}

.toast{position:fixed;bottom:78px;left:50%;transform:translateX(-50%);background:#000d;
  color:#fff;padding:9px 16px;border-radius:20px;font-size:12px;opacity:0;pointer-events:none;
  transition:.25s;z-index:99;max-width:86%;text-align:center;}
.toast.show{opacity:1;}

@media(max-width:360px){.dex-grid{grid-template-columns:repeat(3,1fr)}.pr-grid{gap:5px}}

/* ==================== v1.0.0 增量：AI公告 / 核销 / 集卡 / 交换 ==================== */
.ops-notice{margin:10px 14px 0;padding:8px 12px;border-radius:12px;font-size:11px;line-height:1.5;
  background:linear-gradient(90deg,#ffce6b18,#5fe0c010);border:1px solid #ffce6b40;color:var(--gold);
  display:flex;gap:8px;align-items:flex-start;}
.ops-tag{flex:none;background:var(--gold);color:#0d0f1a;padding:2px 6px;border-radius:6px;font-weight:800;font-size:10px;}
.me-admin{text-align:center;margin:10px 0 2px;font-size:11px;}
.me-admin a{color:var(--muted);text-decoration:none;border-bottom:1px dashed #8a90a860;}

.rc-intro{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:12px;}
.rc-input{display:flex;gap:8px;}
.rc-input input{flex:1;min-width:0;background:var(--bg2);border:1px solid #2a3152;border-radius:10px;
  padding:11px 12px;color:var(--ink);font-size:14px;letter-spacing:1px;text-transform:uppercase;outline:none;}
.rc-input button{flex:none;background:linear-gradient(135deg,var(--gold),#ff9d4d);border:none;border-radius:10px;
  padding:0 18px;font-weight:800;color:#0d0f1a;cursor:pointer;}
.rc-result{margin:10px 0;font-size:12px;line-height:1.7;color:var(--jade);min-height:18px;}
.rc-title,.ext-title{margin:14px 0 8px;font-size:12px;color:var(--gold);font-weight:700;
  border-left:3px solid var(--gold);padding-left:8px;}
.ext-row{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--bg2);
  border-radius:9px;margin-bottom:6px;font-size:11px;color:var(--muted);}
.ext-row b{color:var(--ink);font-weight:600;}
.ext-empty{text-align:center;color:var(--muted);font-size:12px;padding:24px 10px;line-height:1.8;}

.set-card{background:var(--bg2);border:1px solid #2a3152;border-radius:14px;padding:12px;margin-bottom:10px;}
.set-card.done{border-color:var(--gold);box-shadow:0 0 18px #ffce6b22;}
.set-head{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.set-head b{font-size:14px;color:var(--ink);}
.set-head span{font-size:11px;color:var(--muted);}
.set-desc{font-size:11px;color:var(--muted);margin:5px 0 9px;line-height:1.5;}
.set-chars{display:flex;flex-wrap:wrap;gap:5px;}
.set-chars i{font-style:normal;width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  border-radius:7px;background:#0d0f1a;border:1px solid #2a3152;font-size:14px;color:#555d78;}
.set-chars i.have{color:var(--gold);border-color:var(--gold);background:#ffce6b12;}
.set-bar{height:5px;border-radius:5px;background:#0d0f1a;margin-top:9px;overflow:hidden;}
.set-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--jade),var(--gold));}
.set-btn{margin-top:9px;width:100%;border:none;border-radius:10px;padding:9px;font-weight:800;font-size:12px;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;}
.set-btn:disabled{background:var(--card);color:var(--muted);cursor:default;}

.trade-tabs{display:flex;gap:5px;padding:8px 12px 0;}
.trade-tabs button{flex:1;background:var(--bg2);border:1px solid #2a3152;border-radius:9px 9px 0 0;
  padding:9px 2px;font-size:11px;color:var(--muted);cursor:pointer;}
.trade-tabs button.active{background:var(--card);color:var(--gold);border-color:var(--gold);font-weight:800;}
.tr-row{display:flex;align-items:center;gap:10px;background:var(--bg2);border:1px solid #262d4a;
  border-radius:12px;padding:10px;margin-bottom:8px;}
.tr-chars{display:flex;align-items:center;gap:6px;flex:none;}
.tr-glyph{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-size:19px;font-weight:700;background:#0d0f1a;border:1px solid #3a4480;}
.tr-arrow{color:var(--gold);font-size:13px;}
.tr-info{flex:1;min-width:0;font-size:11px;color:var(--muted);line-height:1.5;}
.tr-info b{color:var(--ink);}
.tr-btn{flex:none;border:none;border-radius:9px;padding:8px 12px;font-size:11px;font-weight:800;
  background:linear-gradient(135deg,var(--jade),#3fb0a0);color:#0d0f1a;cursor:pointer;}
.tr-btn.ghost{background:var(--card);color:var(--muted);}
.tr-btn:disabled{opacity:.45;cursor:default;}
.ext-form{display:flex;flex-direction:column;gap:9px;}
.ext-form label{font-size:11px;color:var(--muted);}
.ext-form select,.ext-form input{width:100%;background:var(--bg2);border:1px solid #2a3152;border-radius:10px;
  padding:10px;color:var(--ink);font-size:13px;outline:none;}
.ext-form .btn-main{border:none;border-radius:10px;padding:12px;font-weight:800;font-size:13px;
  background:linear-gradient(135deg,var(--gold),#ff9d4d);color:#0d0f1a;cursor:pointer;}
.dup-pick{display:flex;flex-wrap:wrap;gap:6px;max-height:150px;overflow:auto;padding:8px;
  background:var(--bg2);border:1px solid #2a3152;border-radius:10px;}
.dup-pick label{display:flex;align-items:center;gap:5px;background:#0d0f1a;border:1px solid #2a3152;
  border-radius:8px;padding:5px 8px;font-size:12px;color:var(--ink);cursor:pointer;}
.dup-pick label.on{border-color:var(--gold);color:var(--gold);}
.dup-pick input{display:none;}
.ext-note{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0;}
