/* =====================================================================
 * css/screens/disciples.css — 弟子页（.dp-*）+ 武林谱（.at-*）专属样式（归属：disciples 组）
 * 依赖 theme.css 的变量/组件（.btn .tab-wood .seal .stars .bar .slot .item .fate-list .kv .section-title .toggle .q-*）。
 * 画布 448×960，尺寸写死。index.html 只链接 disciples.css，atlas 的样式也在此。
 *
 * 注意：文件末段「极致打磨（美术总监补丁 · 2026-09-08）」是**全局**覆盖段，
 *   加强 theme.css 的通用组件 .portrait / .avatar / .slot / .card（配合 components.js 新增的
 *   .gild .card-rays .card-sect .card-rim .card-motes .card-cnr .card-unknown 等节点），
 *   因此会影响所有页面的头像框与槽位观感（这是有意为之：头像统一改用 assets/avatars/{id}.webp）。
 *   全部为覆盖式规则，整段删除即回到改动前。
 * ===================================================================== */

/* ---------- 页面骨架 ---------- */
.dp-page,.at-page{position:relative;height:100%;display:flex;flex-direction:column;background:var(--bg-paper);overflow:hidden}
.dp-bg{position:absolute;left:0;right:0;bottom:0;height:300px;z-index:0;pointer-events:none;opacity:.32;background-size:cover;background-position:50% 100%;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 60%);mask-image:linear-gradient(180deg,transparent,#000 60%)}
.dp-page>*{position:relative;z-index:1}
.dp-page>.dp-bg{position:absolute;z-index:0}
.dp-tabs,.at-tabs{padding:6px 8px 0;background:var(--bg-wood-dark);flex:none}
.dp-tabs .tab{height:40px;font-size:20px;letter-spacing:1px;padding:0 4px;white-space:nowrap}
.dp-tabs .tab.active{height:44px}
.dp-tabs .tab.q-甲{color:#ffe08a}.dp-tabs .tab.q-乙{color:#dcbcff}.dp-tabs .tab.q-丙{color:#a9cdff}.dp-tabs .tab.q-丁{color:#bdf0b3}
.dp-tabs .tab.active.q-甲,.dp-tabs .tab.active.q-乙,.dp-tabs .tab.active.q-丙,.dp-tabs .tab.active.q-丁{color:#fff3c2}
.dp-tabs .tab .badge{right:2px;top:-6px}
.dp-bar{flex:none;display:flex;align-items:center;justify-content:space-between;height:42px;padding:0 10px;font-size:13px;color:var(--ink);
  background:var(--tex-paper),linear-gradient(180deg,#e2cb95,#c9a96e);box-shadow:inset 0 1px 0 #fff3cf,inset 0 -2px 0 #7a4f00,0 2px 4px rgba(0,0,0,.25)}
.dp-bar b{color:var(--red);font-size:15px;font-weight:700;margin:0 1px}
.dp-bar .r{display:flex;align-items:center;gap:6px}
.dp-bar .lab{font-family:var(--font-brush);font-size:16px;color:var(--ink-soft)}
.dp-bar .toggle .opt{height:26px;line-height:26px;font-size:16px;padding:0 10px}
.dp-bar .pick{font-family:var(--font-brush);font-size:17px;color:#7a1e12}
.dp-scroll,.at-scroll{flex:1 1 auto;min-height:0}
.dp-foot{flex:none;display:flex;align-items:center;gap:12px;height:48px;padding:0 12px;background:var(--bg-wood-dark);box-shadow:inset 0 2px 0 rgba(242,194,69,.5)}
.dp-foot .tip{font-size:12px;color:#ffe9a3;text-shadow:0 1px 0 #000}

/* ---------- 弟子小卡网格 ---------- */
.dp-grid{display:grid;grid-template-columns:repeat(3,136px);gap:14px 10px;justify-content:center;padding:14px 0 26px}
.dp-card{position:relative;width:136px;height:190px;border-radius:8px;cursor:pointer;color:var(--ink);transition:transform .1s,filter .12s;
  background:radial-gradient(ellipse 70% 40% at 50% 34%,rgba(255,240,190,.9),rgba(244,206,110,0) 70%),var(--tex-paper),linear-gradient(180deg,#f6e6b8 0%,#efd48f 55%,#e2c274 100%);
  box-shadow:0 0 0 2px var(--qc),0 0 0 3px var(--qc2),0 0 0 4px #3a1d0c,0 3px 7px rgba(0,0,0,.55)}
.dp-card::before{content:'';position:absolute;inset:3px;border-radius:6px;pointer-events:none;border:1px solid rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px var(--qc2)}
.dp-card.card-乙,.dp-card.q-乙{background:radial-gradient(ellipse 70% 40% at 50% 34%,rgba(240,225,255,.9),rgba(200,160,240,0) 70%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 55%,#d9c08a)}
.dp-card.q-丙{background:radial-gradient(ellipse 70% 40% at 50% 34%,rgba(225,240,255,.9),rgba(150,190,250,0) 70%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 55%,#d9c08a)}
.dp-card.q-丁{background:radial-gradient(ellipse 70% 40% at 50% 34%,rgba(230,250,230,.9),rgba(150,220,160,0) 70%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 55%,#d9c08a)}
.dp-card:hover{filter:brightness(1.05)}
.dp-card:active{transform:scale(.96)}
.dp-card-av{position:relative;width:104px;height:104px;margin:11px auto 0;border-radius:8px;background:var(--qbg);
  box-shadow:0 0 0 2px var(--qc),0 0 0 3px #2b1d12,inset 0 0 0 1px rgba(255,255,255,.55),inset 0 -8px 10px rgba(0,0,0,.18)}
.dp-card-av::before{content:'';position:absolute;inset:0;border-radius:8px;pointer-events:none;background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.55),transparent 60%)}
.dp-av{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:50% 100%;border-radius:8px;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.dp-av.is-portrait{object-fit:cover;object-position:50% 6%}
.dp-av-pm{display:none}
.missing .dp-av-pm{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;font-family:var(--font-brush);font-size:30px;font-style:normal;color:rgba(255,240,200,.95);text-shadow:0 1px 0 #000,0 0 6px rgba(0,0,0,.6);z-index:1}
.dp-card-av.missing{background:radial-gradient(circle at 50% 35%,#6a5238,#2a1a0e 75%)}
.dp-card-lv{position:absolute;left:-5px;bottom:-5px;z-index:3;min-width:26px;height:18px;padding:0 5px;border-radius:3px;font-family:var(--font-body);font-size:11px;font-weight:700;line-height:18px;text-align:center;color:#ffe9a3;
  background:linear-gradient(180deg,#4a2410,#1a0c04);box-shadow:0 0 0 1px #f2c245,0 1px 2px rgba(0,0,0,.6);text-shadow:0 1px 0 #000}
.dp-card-seal.seal{position:absolute;right:-9px;top:-9px;z-index:3}
.dp-card-name{margin-top:9px;text-align:center;font-family:var(--font-brush);font-size:20px;line-height:1.1;letter-spacing:2px;color:#1a0f08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px;text-shadow:0 1px 0 rgba(255,250,235,.8)}
.dp-card-stars{display:flex;justify-content:center;margin-top:3px}
.dp-card-stars .stars svg{width:13px;height:13px}
.dp-card-power{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:5px;font-family:var(--font-body);font-size:13px;font-weight:700;color:#3a1d0c}
.dp-card-power i{font-style:normal;font-family:var(--font-brush);font-size:12px;font-weight:400;line-height:17px;padding:0 5px;border-radius:3px;color:#ffe08a;background:var(--bg-red);box-shadow:0 0 0 1px #3f0a06;text-shadow:0 1px 0 #3f0a06;letter-spacing:1px}
.dp-mark{position:absolute;left:-7px;top:6px;z-index:4;writing-mode:vertical-rl;padding:7px 3px 9px;border-radius:3px;font-family:var(--font-brush);font-size:14px;line-height:1;letter-spacing:2px;color:#fff3c2;
  background:linear-gradient(90deg,#8f1d13,#c8331f 45%,#a8261b 60%,#6e140c);box-shadow:inset 0 0 0 1px rgba(255,214,120,.55),0 2px 4px rgba(0,0,0,.5);text-shadow:0 1px 0 #3f0a06;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 6px),50% 100%,0 calc(100% - 6px))}
.dp-cur{position:absolute;left:0;right:0;bottom:-2px;z-index:4;text-align:center;font-family:var(--font-brush);font-size:12px;letter-spacing:1px;color:#fff3c2;background:var(--bg-red);border-radius:0 0 8px 8px;line-height:16px}
.dp-card.current{box-shadow:0 0 0 2px #fff0b3,0 0 0 4px #f2c245,0 0 0 5px #3a1d0c,0 0 14px 4px rgba(255,210,80,.7)}
.dp-awk{position:absolute;right:-5px;bottom:34px;z-index:4;font-family:var(--font-brush);font-size:12px;line-height:18px;padding:0 6px;border-radius:9px;color:#7a1e12;background:var(--bg-gold);box-shadow:0 0 0 1px #5a3800,0 0 8px rgba(255,220,80,.8);letter-spacing:1px}
.dp-card.awakened .dp-card-av{box-shadow:0 0 0 2px #fff0b3,0 0 0 3px #f2c245,0 0 14px 3px rgba(255,210,80,.75)}
.dp-card.awakened .dp-card-av::before{background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.55),transparent 60%),conic-gradient(from 0deg,rgba(255,240,180,0) 0deg,rgba(255,240,180,.55) 15deg,rgba(255,240,180,0) 30deg,rgba(255,240,180,0) 90deg,rgba(255,240,180,.5) 105deg,rgba(255,240,180,0) 120deg,rgba(255,240,180,0) 180deg,rgba(255,240,180,.55) 195deg,rgba(255,240,180,0) 210deg,rgba(255,240,180,0) 270deg,rgba(255,240,180,.5) 285deg,rgba(255,240,180,0) 300deg);animation:spin 18s linear infinite}

/* 通用头像框（列表行/传功/魂魄） */
.dp-avbox{position:relative;flex:none;width:56px;height:56px;border-radius:7px;background:var(--qbg);box-shadow:0 0 0 2px var(--qc),0 0 0 3px #2b1d12,inset 0 0 0 1px rgba(255,255,255,.5)}
.dp-avbox .dp-av{border-radius:7px}
.dp-avbox.sm{width:44px;height:44px}
.dp-avbox.md{width:56px;height:56px}
.dp-avbox.lg{width:96px;height:96px}
.dp-avbox.missing{background:radial-gradient(circle at 50% 35%,#6a5238,#2a1a0e 75%)}
.dp-avbox.missing .dp-av-pm{font-size:18px}
.dp-avbox.lg.missing .dp-av-pm{font-size:28px}

/* ---------- 魂魄合成 ---------- */
.dp-soul-head{display:flex;align-items:center;gap:12px;margin:10px 10px 4px;padding:10px 12px;border-radius:6px;background:var(--bg-paper-light);border:1px solid rgba(90,60,20,.45);box-shadow:inset 0 0 0 1px rgba(255,248,225,.6),inset 0 0 16px rgba(120,80,30,.2)}
.dp-soul-head .t{font-size:13px;line-height:1.5;color:var(--ink)}
.dp-soul-head .t b{color:#7b3fb5;font-size:16px}
.dp-soul-head .t small{font-size:11px;color:var(--ink-soft)}
.dp-soul-list{padding:4px 6px 20px}
.dp-soul-row{display:flex;align-items:center;gap:10px;margin:8px 4px 0;padding:8px 10px;border-radius:7px;background:var(--bg-paper-light);border:1px solid #8c7355;box-shadow:inset 0 0 0 1px rgba(255,248,225,.6),inset 0 0 18px rgba(120,80,30,.18),0 1px 2px rgba(0,0,0,.35)}
.dp-soul-row.can{box-shadow:inset 0 0 0 2px #f2c245,inset 0 0 14px rgba(255,210,80,.35),0 1px 2px rgba(0,0,0,.35)}
.dp-soul-row .body{flex:1 1 auto;min-width:0}
.dp-soul-row .t{display:flex;align-items:center;gap:5px;font-size:15px;color:var(--ink);margin-bottom:4px}
.dp-soul-row .t b{font-family:var(--font-brush);font-size:18px}
.dp-soul-row .t small{font-size:11px;color:var(--ink-soft)}
.dp-soul-row .own{font-size:11px;color:#fff;background:var(--jade);padding:0 5px;border-radius:3px;line-height:16px}
.dp-soul-row .d{font-size:11px;color:var(--ink-soft);margin-top:3px}
.dp-soul-row .ops{flex:none}
.dp-new{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0 4px}
.dp-new .t{font-size:15px;text-align:center;line-height:1.6}
.dp-new .t b{color:var(--red);font-family:var(--font-brush);font-size:20px}

/* ---------- 人物信息弹窗（t019） ---------- */
.dp-modal .modal-body{padding:8px 8px 6px}
.dp-info{position:relative}
.dp-info-top{display:flex;gap:8px;align-items:stretch}
.dp-icard{position:relative;flex:none;width:200px;height:300px;border-radius:8px;overflow:hidden;color:var(--ink);
  background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(255,236,160,.95) 0%,rgba(244,206,110,.75) 40%,rgba(235,190,90,0) 72%),radial-gradient(ellipse 120% 40% at 50% 100%,rgba(120,80,30,.35),transparent 60%),var(--tex-paper),linear-gradient(180deg,#f6e6b8 0%,#efd48f 45%,#e7c777 100%);
  box-shadow:0 0 0 2px var(--qc),0 0 0 4px var(--qc2),0 0 0 5px #3a1d0c,0 4px 10px rgba(0,0,0,.5)}
.dp-icard.card-乙{background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(240,225,255,.9),rgba(205,170,240,.6) 40%,rgba(200,160,240,0) 72%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 45%,#d9c08a)}
.dp-icard.card-丙{background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(225,240,255,.9),rgba(160,200,250,.55) 40%,rgba(150,190,250,0) 72%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 45%,#d9c08a)}
.dp-icard.card-丁{background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(230,250,230,.9),rgba(170,225,175,.55) 40%,rgba(150,220,160,0) 72%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 45%,#d9c08a)}
.dp-icard .ic-frame{position:absolute;inset:0;z-index:6;pointer-events:none;border-radius:8px;border:1.5px solid rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px var(--qc2),inset 0 0 0 2px rgba(255,255,255,.3);
  background:var(--tex-cloud) left 4px top 0 / 70px 24px no-repeat,var(--tex-cloud) right 4px bottom 60px / 70px 24px no-repeat;opacity:.9}
.dp-icard .ic-halo{position:absolute;left:50%;top:40px;width:190px;height:190px;margin-left:-95px;z-index:1;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,rgba(255,250,210,.95) 0%,rgba(255,225,120,.55) 30%,rgba(255,215,100,0) 70%);animation:haloPulse 4s ease-in-out infinite}
.dp-icard.card-乙 .ic-halo{background:radial-gradient(circle,rgba(240,225,255,.95),rgba(190,140,240,.5) 30%,rgba(150,90,220,0) 70%)}
.dp-icard.card-丙 .ic-halo{background:radial-gradient(circle,rgba(230,245,255,.95),rgba(140,190,250,.5) 30%,rgba(60,130,240,0) 70%)}
.dp-icard.card-丁 .ic-halo{background:radial-gradient(circle,rgba(235,255,235,.95),rgba(150,220,160,.5) 30%,rgba(60,175,80,0) 70%)}
.dp-icard .ic-portrait{position:absolute;left:22px;right:22px;top:24px;height:210px;z-index:2;display:flex;align-items:flex-end;justify-content:center}
.dp-icard .ic-portrait .portrait{width:150px;height:210px;-webkit-mask-image:linear-gradient(180deg,#000 84%,transparent 100%);mask-image:linear-gradient(180deg,#000 84%,transparent 100%)}
.dp-icard .ic-portrait .portrait img{object-position:50% 0}
.dp-icard .ic-portrait .portrait .pm{font-size:26px}
.dp-icard .ic-stars{position:absolute;left:0;right:0;top:6px;display:flex;justify-content:center;z-index:7}
.dp-icard .ic-stars svg{width:17px;height:17px}
.dp-icard .ic-title{position:absolute;right:10px;top:0;z-index:8;writing-mode:vertical-rl;padding:8px 2px 10px;font-family:var(--font-brush);font-size:15px;line-height:1;letter-spacing:2px;color:#ffe9a3;text-shadow:0 1px 0 #3f0a06;
  background:linear-gradient(90deg,#8f1d13,#c8331f 45%,#a8261b 60%,#6e140c);box-shadow:inset 0 0 0 1px rgba(255,214,120,.55),0 2px 4px rgba(0,0,0,.5);clip-path:polygon(0 0,100% 0,100% calc(100% - 7px),50% 100%,0 calc(100% - 7px))}
.dp-icard .ic-name{position:absolute;left:9px;top:30px;z-index:7;writing-mode:vertical-rl;font-family:var(--font-brush);font-size:32px;line-height:1;letter-spacing:1px;color:#1a0f08;
  text-shadow:-1px -1px 0 rgba(255,250,235,.9),1px -1px 0 rgba(255,250,235,.9),-1px 1px 0 rgba(255,250,235,.9),1px 1px 0 rgba(255,250,235,.9),0 2px 4px rgba(0,0,0,.45)}
.dp-icard .ic-seal{position:absolute;left:10px;top:156px;z-index:8}
.dp-icard .ic-seal .seal{width:30px;height:30px;font-size:19px}
.dp-icard .ic-seal .stat-seal{display:flex;margin:6px 0 0 7px}
.dp-icard .ic-foot{position:absolute;left:0;right:0;bottom:0;z-index:7;padding:5px 7px 15px;background:linear-gradient(180deg,rgba(243,230,196,0),rgba(243,230,196,.88) 18%,rgba(243,230,196,.96))}
.dp-icard .ic-lv{display:flex;align-items:center;gap:5px;height:22px}
.dp-icard .ic-lv .lv{display:inline-flex;align-items:baseline;height:20px;padding:0 8px;border-radius:10px;background:var(--bg-red);color:#fff;font-family:var(--font-body);font-weight:700;font-size:14px;box-shadow:0 0 0 1px #3f0a06,inset 0 1px 0 rgba(255,200,150,.4);text-shadow:0 1px 0 #6e140c;white-space:nowrap}
.dp-icard .ic-lv .lv small{font-size:10px;margin-left:2px;color:#ffe08a}
.dp-icard .ic-lv .bar{flex:1 1 auto;height:12px}
.dp-icard .ic-stats{display:flex;justify-content:space-between;gap:2px;margin-top:5px;font-family:var(--font-body);font-size:11px;font-weight:700;color:var(--ink);letter-spacing:-.2px}
.dp-icard .ic-stats .st{display:flex;align-items:center;gap:1px;white-space:nowrap}
.dp-icard .ic-stats .st .stat-seal{width:15px;height:15px;font-size:10px;line-height:15px}
/* 觉醒：金色光效层 + 觉醒标 */
.dp-icard .ic-glow{display:none;position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(ellipse 60% 50% at 50% 45%,rgba(255,235,150,.55),rgba(255,215,90,0) 70%),conic-gradient(from 0deg at 50% 45%,rgba(255,240,180,0) 0deg,rgba(255,240,180,.6) 10deg,rgba(255,240,180,0) 20deg,rgba(255,240,180,0) 60deg,rgba(255,240,180,.55) 70deg,rgba(255,240,180,0) 80deg,rgba(255,240,180,0) 120deg,rgba(255,240,180,.6) 130deg,rgba(255,240,180,0) 140deg,rgba(255,240,180,0) 180deg,rgba(255,240,180,.55) 190deg,rgba(255,240,180,0) 200deg,rgba(255,240,180,0) 240deg,rgba(255,240,180,.6) 250deg,rgba(255,240,180,0) 260deg,rgba(255,240,180,0) 300deg,rgba(255,240,180,.55) 310deg,rgba(255,240,180,0) 320deg);
  -webkit-mask-image:radial-gradient(circle at 50% 45%,#000 30%,transparent 72%);mask-image:radial-gradient(circle at 50% 45%,#000 30%,transparent 72%);animation:spin 22s linear infinite}
.dp-icard.awakened .ic-glow{display:block}
.dp-icard.awakened{box-shadow:0 0 0 2px #fff0b3,0 0 0 4px #f2c245,0 0 0 5px #3a1d0c,0 0 18px 4px rgba(255,210,80,.75)}
.dp-icard.awakened .ic-frame{box-shadow:inset 0 0 0 1px #f2c245,inset 0 0 0 2px rgba(255,255,255,.4),inset 0 0 26px rgba(255,220,100,.55)}
.dp-icard .ic-awaken{position:absolute;right:8px;top:96px;z-index:8;writing-mode:vertical-rl;padding:7px 3px 8px;border-radius:4px;font-family:var(--font-brush);font-size:16px;line-height:1;letter-spacing:2px;color:#7a1e12;
  background:var(--bg-gold);box-shadow:0 0 0 1.5px #5a3800,0 0 12px rgba(255,220,80,.9),inset 0 1px 0 rgba(255,255,255,.7);text-shadow:0 1px 0 rgba(255,245,210,.8);animation:dpGlow 2.2s ease-in-out infinite}
@keyframes dpGlow{0%,100%{box-shadow:0 0 0 1.5px #5a3800,0 0 8px rgba(255,220,80,.6)}50%{box-shadow:0 0 0 1.5px #5a3800,0 0 18px rgba(255,220,80,1)}}
/* 右侧竹节栏：简介 / 天赋武功 / 战力 */
.dp-side{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.dp-bamboo{flex:1 1 auto;position:relative;padding:8px 8px 10px 9px;border:7px solid transparent;border-radius:8px;font-size:12px;line-height:1.5;color:var(--ink);overflow:hidden;
  background:linear-gradient(var(--paper-light),var(--paper-light)) padding-box,repeating-linear-gradient(180deg,#a6d474 0 16px,#5d8f36 16px 20px) border-box;
  box-shadow:inset 0 0 12px rgba(90,60,20,.28),0 2px 4px rgba(0,0,0,.35)}
.dp-bamboo::before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(90,120,50,.45)}
.dp-bamboo .lab{font-family:var(--font-brush);font-size:15px;letter-spacing:1px;color:#7a1e12;margin-top:5px;line-height:1.2}
.dp-bamboo .lab:first-child{margin-top:0}
.dp-bamboo .txt{max-height:112px;overflow-y:auto;font-size:12px;line-height:1.55;color:var(--ink-soft);scrollbar-width:none;padding-right:2px}
.dp-bamboo .txt::-webkit-scrollbar{display:none}
.dp-bamboo .nick{font-family:var(--font-brush);font-size:16px;color:var(--ink)}
.dp-talent{display:flex;align-items:center;gap:8px;cursor:pointer;margin-top:3px}
.dp-talent .slot{width:auto;pointer-events:none}
.dp-talent .slot .box{width:52px;height:52px}
.dp-talent .tn{font-family:var(--font-brush);font-size:16px;line-height:1.2;color:var(--ink);letter-spacing:1px}
.dp-talent .tn small{display:block;font-family:var(--font-body);font-size:10px;color:#b8860b;letter-spacing:0;font-weight:700}
.dp-talent .tn.none{color:var(--ink-faint)}
.dp-talent:active{filter:brightness(.92)}
.dp-worth{margin-top:3px}
.dp-worth .power-tag{height:26px;font-size:14px}
/* 昵称钮：金色横条 */
.dp-nick-row{position:relative;z-index:9;display:flex;justify-content:flex-start;padding-left:52px;margin:-14px 0 2px}
.dp-nick{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 22px;border-radius:15px;cursor:pointer;font-family:var(--font-brush);font-size:19px;letter-spacing:3px;line-height:1;color:#7a1e12;
  background:var(--bg-gold);border:2px solid #5a3800;box-shadow:0 0 0 1px #f2c245,inset 0 2px 0 rgba(255,255,255,.6),inset 0 -3px 0 rgba(120,80,10,.4),0 2px 4px rgba(0,0,0,.55);text-shadow:0 1px 0 rgba(255,245,210,.8);transition:transform .1s}
.dp-nick:active{transform:scale(.95)}
/* 四大钮 + 养成小钮 */
.dp-btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;padding:8px 22px 4px}
.dp-btn-grid .btn{width:100%;height:50px;font-size:25px;letter-spacing:3px}
.dp-btn-row{display:flex;justify-content:center;gap:6px;padding:10px 2px 4px}
.dp-btn-row .btn.dp-mini{min-width:56px;height:32px;padding:0 6px;font-size:17px;letter-spacing:1px}
.dp-btn-row .btn.dp-mini::before,.dp-btn-row .btn.dp-mini::after{width:5px}
.dp-btn-row .btn .badge{right:-3px;top:-6px}
/* 缘分 */
.dp-fates{margin:8px 2px 2px;padding:6px 6px 4px;border-top:2px solid rgba(122,79,0,.35)}
.dp-fates-t{font-family:var(--font-brush);font-size:16px;letter-spacing:4px;color:#7a1e12;text-align:center;margin-bottom:3px;opacity:.85}
.dp-fate-list .fr,.at-fates .fr{white-space:normal;overflow:visible;font-size:14px;line-height:1.45;margin-bottom:4px;text-indent:0}
.dp-fate-list .fr .fn,.at-fates .fr .fn{font-weight:700;color:#3a1d0c}
.dp-fate-list .fr .fd,.at-fates .fr .fd{color:#a8261b}
.dp-fate-list .fr.on .fn{color:#7a1e12;text-shadow:0 1px 0 rgba(255,245,210,.6)}
.dp-fate-list .fr.off .fn,.at-fates .fr.off .fn{color:#8c7355;font-weight:700}
.dp-fate-list .fr.off .fd,.at-fates .fr.off .fd{color:#9a8a70}
.dp-fate-empty{padding:10px 0 6px;text-align:center;font-family:var(--font-brush);font-size:16px;letter-spacing:1px;color:var(--ink-faint)}

/* ---------- 子弹窗通用 ---------- */
.dp-sub .modal-body{padding:10px 12px 12px}
.dp-head{display:flex;align-items:center;gap:10px;padding-bottom:8px;margin-bottom:6px;border-bottom:1px dashed rgba(90,60,20,.4)}
.dp-head .body{flex:1 1 auto;min-width:0}
.dp-head .nm{display:flex;align-items:center;gap:5px;font-family:var(--font-brush);font-size:22px;letter-spacing:1px;color:var(--ink);line-height:1.2}
.dp-head .nm small{font-family:var(--font-body);font-size:12px;color:var(--ink-soft);letter-spacing:0}
.dp-head .sub{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);margin-top:3px;white-space:nowrap}
.dp-head .sub .lv{display:inline-flex;align-items:baseline;height:18px;padding:0 7px;border-radius:9px;background:var(--bg-red);color:#fff;font-family:var(--font-body);font-weight:700;font-size:12px;box-shadow:0 0 0 1px #3f0a06;text-shadow:0 1px 0 #6e140c}
.dp-head .sub .lv small{font-size:10px;color:#ffe08a;margin-left:1px}
.dp-head .sub .stars svg{width:12px;height:12px}
.dp-head .extra{max-width:46%}
.dp-head .extra .stars svg{width:14px;height:14px}
.dp-head .extra{flex:none;text-align:right}
.dp-head .capv{font-size:12px;color:var(--ink-soft);line-height:1.4}
.dp-head .capv b{font-size:16px;color:var(--red)}
.dp-cost{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:8px 0 2px;font-size:13px;color:var(--ink)}
.dp-cost .c{display:inline-flex;align-items:center;gap:3px;font-weight:700}
.dp-cost .c small{font-weight:400;color:var(--ink-soft)}
.dp-cost .c.lack{color:var(--red-bright)}
.dp-cost svg{width:20px;height:20px}
.dp-req{margin:6px 0 2px}
.dp-req .r{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 2px;border-bottom:1px dashed rgba(90,60,20,.3);font-size:13px}
.dp-req .r .t{flex:1 1 auto;min-width:0}
.dp-req .r .v{flex:none;font-weight:700}
.dp-req .r.ok .v{color:var(--jade)}
.dp-req .r.no .v{color:var(--red-bright)}
.dp-actrow{display:flex;justify-content:center;gap:16px;margin-top:12px;flex-wrap:wrap}
.dp-actrow.sm{gap:8px;margin-top:8px}
.dp-tip{margin-top:8px;font-size:12px;line-height:1.5;color:var(--ink-soft);text-align:center}
.dp-tip.warn{color:#a8261b}
.dp-tip b{color:var(--red)}
.dp-effect{margin:6px 0;padding:8px 10px;border-radius:5px;font-size:13px;line-height:1.55;color:var(--ink);background:rgba(255,248,225,.55);box-shadow:inset 0 0 0 1px rgba(184,134,11,.4)}
.dp-effect b{color:var(--red)}
.dp-next{margin:8px 0 2px;text-align:center;font-family:var(--font-brush);font-size:18px;letter-spacing:1px;color:var(--ink)}
.dp-next b{color:var(--red)}
.dp-next .arr{color:#b8860b;margin:0 4px}
.dp-dots{display:flex;justify-content:center;gap:8px;margin:6px 0}
.dp-dots .dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-brush);font-size:18px;color:#9a8a70;background:radial-gradient(circle at 40% 35%,#e8d3a3,#c9a96e 60%,#9a8a70);box-shadow:0 0 0 1px #5b4630,inset 0 -2px 3px rgba(0,0,0,.25)}
.dp-dots .dot.on{color:#fff6e6;background:radial-gradient(circle at 40% 35%,#e8523a,#c22f1f 45%,#8f1d13);box-shadow:0 0 0 1.5px #fff0c8,0 0 0 3px #a8261b,0 0 8px rgba(216,50,31,.6);text-shadow:0 1px 0 #6e140c}
.dp-learned{font-size:13px;line-height:1.5;color:var(--ink);margin:4px 0}
.dp-learned .lab{color:#7a1e12;font-family:var(--font-brush);font-size:15px}
.dp-souls{display:flex;justify-content:center;gap:16px;margin:8px 0 4px}
.dp-tboxes{display:flex;align-items:stretch;gap:6px;margin:6px 0}
.dp-tboxes .arr{align-self:center;font-size:22px;color:#b8860b}
.dp-tbox{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:6px;background:rgba(255,248,225,.55);box-shadow:inset 0 0 0 1px rgba(184,134,11,.4);text-align:center}
.dp-tbox .lab{font-family:var(--font-brush);font-size:14px;color:#7a1e12;letter-spacing:1px}
.dp-tbox .slot{width:auto}
.dp-tbox .tn{font-family:var(--font-brush);font-size:16px;color:var(--ink)}
.dp-tbox .td{font-size:11px;line-height:1.4;color:var(--ink-soft)}
.dp-tbox.dim{opacity:.55;filter:grayscale(.6)}
.dp-tbox.none .tn{color:var(--ink-faint)}
.dp-expbar{margin:2px 0 8px}
.dp-expbar .bar{height:18px}
.dp-expbar .bar .txt{font-size:11px}
/* 丹药行 */
.dp-pill-list{margin-top:4px}
.dp-pill-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px dashed rgba(90,60,20,.35)}
.dp-pill-row:last-child{border-bottom:0}
.dp-pill-row.none{opacity:.6}
.dp-pill-row .body{flex:1 1 auto;min-width:0}
.dp-pill-row .t{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:700;color:var(--ink)}
.dp-pill-row .t small{font-weight:400;font-size:11px;color:var(--ink-soft)}
.dp-pill-row .e{font-size:12px;color:#a8261b;font-weight:700;margin-top:1px}
.dp-pill-row .d{font-size:11px;line-height:1.35;color:var(--ink-soft);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dp-pill-row .ops{flex:none;display:flex;flex-direction:column;gap:5px}
.dp-pill-row .ops .btn{min-width:66px}
/* 培养 */
.dp-cult{margin-top:2px}
.dp-cult-row{display:flex;align-items:center;gap:6px;height:38px;padding:0 4px;border-bottom:1px dashed rgba(90,60,20,.35);font-size:14px}
.dp-cult-row .k{width:62px;color:var(--ink)}
.dp-cult-row .cur{width:34px;text-align:right;font-weight:700;font-family:var(--font-body)}
.dp-cult-row .arrow{color:#b8860b}
.dp-cult-row .nv{width:66px;font-weight:700;font-family:var(--font-body);display:inline-flex;align-items:center;gap:3px}
.dp-cult-row .nv b{font-size:12px;font-weight:700}
.dp-cult-row .nv.up{color:#d8321f}
.dp-cult-row .nv.down{color:#3f8f5a}
.dp-cult-row .nv.flat{color:var(--ink-faint)}
.dp-cult-row .alloc{flex:1 1 auto;display:flex;justify-content:flex-end;gap:4px}
.dp-cult-row .alloc .btn{min-width:38px;height:26px;padding:0 6px;font-size:14px;letter-spacing:0}
.dp-cult-tip{margin:6px 0;font-size:12px;line-height:1.5;color:var(--ink-soft);text-align:center}
.dp-cult-tip .warn{color:#a8261b}
.dp-cult-cost{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.dp-cult-cost .c1{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;border-radius:6px;background:rgba(255,248,225,.55);box-shadow:inset 0 0 0 1px rgba(184,134,11,.4)}
.dp-cult-cost .ct{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--ink);white-space:nowrap}
.dp-cult-cost .ct b{color:var(--red)}
.dp-cult-cost .btn{min-width:110px}
.dp-cult-pool{margin-top:8px;font-size:12px;line-height:1.5;text-align:center;color:var(--ink-soft)}
.dp-cult-pool b{color:#7b3fb5;font-size:15px}
.dp-cult-pool svg{width:14px;height:14px;vertical-align:-2px}
/* 传功 */
.dp-tr-top{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:8px}
.dp-tr-top .toggle .opt{font-size:16px;height:28px;line-height:28px}
.dp-tr-pv{display:flex;align-items:center;justify-content:space-around;padding:8px 4px;border-radius:6px;background:rgba(255,248,225,.55);box-shadow:inset 0 0 0 1px rgba(184,134,11,.4)}
.dp-tr-pv.empty{justify-content:center;font-family:var(--font-brush);font-size:16px;color:var(--ink-faint);padding:14px}
.dp-tr-pv .who{display:flex;flex-direction:column;align-items:center;gap:3px;width:120px}
.dp-tr-pv .who .nm{font-family:var(--font-brush);font-size:16px;color:var(--ink)}
.dp-tr-pv .who .lv{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap}
.dp-tr-pv .who .lv small{display:block;font-weight:400;color:var(--ink-soft)}
.dp-tr-pv .arr{color:#b8860b}
.dp-tr-pv .up{color:#d8321f}
.dp-tr-pv .down{color:#7b7b7b}
.dp-tr-pv .mid{text-align:center}
.dp-tr-pv .mid .arrow{font-family:var(--font-brush);font-size:18px;color:#a8261b;letter-spacing:1px}
.dp-tr-pv .mid .exp{font-size:11px;color:var(--ink-soft);line-height:1.3}
.dp-tr-tip{margin:6px 0;font-size:11px;line-height:1.45;color:var(--ink-soft);text-align:center}
.dp-tr-list{max-height:250px;overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;scrollbar-width:none}
.dp-tr-list::-webkit-scrollbar{display:none}
.dp-tr-list .list-row{min-height:60px;margin:6px 4px 0;padding:5px 8px}
.dp-tr-list .list-row .title{font-size:15px}
/* 更换阵位 */
.dp-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:4px 0}
.dp-slot{position:relative;height:96px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;overflow:hidden;
  background:var(--qbg,radial-gradient(circle at 50% 40%,#f3e6c4,#c9a96e 60%,#8c7355));box-shadow:0 0 0 2px var(--qc,#9a8a70),0 0 0 3px #2b1d12;transition:transform .1s}
.dp-slot .dp-av{width:56px;height:56px;border-radius:6px}
.dp-slot .nm{font-size:12px;font-weight:700;color:var(--ink);text-shadow:0 1px 0 rgba(255,245,220,.7);white-space:nowrap;max-width:76px;overflow:hidden;text-overflow:ellipsis}
.dp-slot .pos{position:absolute;left:2px;top:2px;z-index:2;width:18px;height:18px;border-radius:50%;background:var(--bg-red);color:#ffe9a3;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px #3f0a06}
.dp-slot .empty{font-family:var(--font-brush);font-size:18px;color:rgba(90,60,20,.7)}
.dp-slot .lk{position:absolute;left:0;right:0;bottom:0;font-size:10px;line-height:16px;text-align:center;color:#ffe9a3;background:rgba(0,0,0,.6)}
.dp-slot.locked{filter:grayscale(.6) brightness(.8);cursor:not-allowed}
.dp-slot.me{box-shadow:0 0 0 2px #fff0b3,0 0 0 4px #f2c245,0 0 12px 2px rgba(255,210,80,.7)}
.dp-slot:active{transform:scale(.95)}
.dp-slot .dp-av-pm{font-size:16px}
/* 皮肤 */
.dp-skin{display:flex;flex-direction:column;align-items:center;gap:8px}
.dp-skin-big{position:relative;width:200px;height:300px;border-radius:8px;overflow:hidden;
  background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(255,236,160,.95),rgba(244,206,110,.6) 40%,rgba(235,190,90,0) 72%),var(--tex-paper),linear-gradient(180deg,#f6e6b8,#efd48f 45%,#e7c777);
  box-shadow:0 0 0 2px var(--qc),0 0 0 4px var(--qc2),0 0 0 5px #3a1d0c}
.dp-skin-big .portrait{width:100%;height:100%}
.dp-skin .t{font-size:14px;color:var(--ink)}
.dp-skin .t b{color:var(--red)}
.dp-skin .tip{font-size:12px;color:var(--ink-soft);text-align:center;line-height:1.5}
.dp-skin-list{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.dp-skin-list .sk{padding:4px 10px;border-radius:4px;background:var(--bg-gold);font-family:var(--font-brush);color:#7a1e12}
/* 天赋详情 */
.dp-tdetail .top{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.dp-tdetail .top .slot{width:auto}
.dp-tdetail .nm{font-family:var(--font-brush);font-size:24px;color:var(--ink);letter-spacing:1px}
.dp-tdetail .nm small{display:block;font-family:var(--font-body);font-size:12px;color:var(--ink-soft);letter-spacing:0}
.dp-tdetail .desc{margin-top:8px;font-size:13px;line-height:1.6;color:var(--ink)}
/* 金光爆闪（突破/觉醒/升星/传功） */
.dp-burst{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:8px;overflow:hidden;
  background:radial-gradient(circle at 50% 50%,rgba(255,245,200,.95),rgba(255,210,90,.6) 35%,rgba(255,200,80,0) 70%);animation:dpBurst 1.2s ease-out forwards}
.dp-burst::before{content:'';position:absolute;left:50%;top:50%;width:600px;height:600px;margin:-300px 0 0 -300px;
  background:conic-gradient(from 0deg,rgba(255,240,180,0) 0deg,rgba(255,240,180,.7) 8deg,rgba(255,240,180,0) 16deg,rgba(255,240,180,0) 45deg,rgba(255,240,180,.7) 53deg,rgba(255,240,180,0) 61deg,rgba(255,240,180,0) 90deg,rgba(255,240,180,.7) 98deg,rgba(255,240,180,0) 106deg,rgba(255,240,180,0) 135deg,rgba(255,240,180,.7) 143deg,rgba(255,240,180,0) 151deg,rgba(255,240,180,0) 180deg,rgba(255,240,180,.7) 188deg,rgba(255,240,180,0) 196deg,rgba(255,240,180,0) 225deg,rgba(255,240,180,.7) 233deg,rgba(255,240,180,0) 241deg,rgba(255,240,180,0) 270deg,rgba(255,240,180,.7) 278deg,rgba(255,240,180,0) 286deg,rgba(255,240,180,0) 315deg,rgba(255,240,180,.7) 323deg,rgba(255,240,180,0) 331deg);
  animation:spin 2.4s linear infinite;opacity:.8}
.dp-burst span{position:relative;font-family:var(--font-brush);font-size:84px;letter-spacing:8px;color:#fff3c2;-webkit-text-stroke:2px #a8261b;text-shadow:0 0 24px #f2c245,0 4px 0 #6e140c,0 6px 10px rgba(0,0,0,.5);animation:dpBurstText 1.2s cubic-bezier(.2,.9,.3,1.2) forwards}
@keyframes dpBurst{0%{opacity:0}15%{opacity:1}70%{opacity:1}100%{opacity:0}}
@keyframes dpBurstText{0%{transform:scale(.3) rotate(-12deg);opacity:0}25%{transform:scale(1.15) rotate(2deg);opacity:1}55%{transform:scale(1) rotate(0)}100%{transform:scale(1.05);opacity:0}}

/* ---------- 武林谱（atlas） ---------- */
.at-bar .toggle .opt{padding:0 9px}
.at-group{margin:10px 12px 4px;font-size:19px}
.at-group small{font-family:var(--font-body);font-size:12px;color:var(--ink-soft);letter-spacing:0;margin-left:4px}
.at-grid{display:grid;grid-template-columns:repeat(5,80px);gap:12px 6px;justify-content:center;padding:6px 0 10px}
.at-cell{position:relative;width:80px;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .1s}
.at-cell:active{transform:scale(.94)}
.at-cell .fr{position:relative;width:72px;height:72px;border-radius:7px;background:var(--qbg);box-shadow:0 0 0 2px var(--qc),0 0 0 3px #2b1d12,inset 0 0 0 1px rgba(255,255,255,.5),inset 0 -8px 10px rgba(0,0,0,.15);overflow:hidden}
.at-cell .fr::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.5),transparent 60%)}
.at-cell .fr .dp-av{border-radius:7px}
.at-cell .fr.missing,.at-cell .fr .missing{background:radial-gradient(circle at 50% 35%,#6a5238,#2a1a0e 75%)}
.at-cell .fr .dp-av-pm{font-size:20px}
.at-cell .q{position:absolute;right:-1px;top:-6px;z-index:3;transform:scale(.85);transform-origin:right top}
.at-cell .nm{margin-top:5px;font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 0 rgba(255,245,220,.7)}
.at-cell.locked .fr{background:radial-gradient(circle at 50% 40%,#5a4a3a,#241a12 72%);box-shadow:0 0 0 2px #6b5a46,0 0 0 3px #1a120a,inset 0 0 12px rgba(0,0,0,.7)}
.at-cell.locked .fr::before{background:none}
.at-cell.locked .fr .dp-av{filter:grayscale(1) brightness(.28) contrast(1.15);opacity:.9}
.at-cell.locked .fr::after{content:'未寻访';position:absolute;left:0;right:0;bottom:0;z-index:2;font-family:var(--font-brush);font-size:12px;letter-spacing:1px;line-height:18px;text-align:center;color:#d9bf8a;background:rgba(0,0,0,.6)}
.at-cell.locked .nm{color:var(--ink-faint)}
.at-cell.locked .q{filter:grayscale(.7);opacity:.75}
.at-foot-tip{padding:6px 0 22px;text-align:center;font-family:var(--font-brush);font-size:14px;letter-spacing:1px;color:var(--ink-faint)}
/* 详情弹窗 */
.at-modal .modal-body{padding:10px}
.at-top{display:flex;gap:10px;align-items:stretch}
.at-portrait{position:relative;flex:none;width:170px;height:250px;border-radius:8px;overflow:hidden;
  background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(255,236,160,.95),rgba(244,206,110,.6) 40%,rgba(235,190,90,0) 72%),var(--tex-paper),linear-gradient(180deg,#f6e6b8,#efd48f 45%,#e7c777);
  box-shadow:0 0 0 2px var(--qc),0 0 0 4px var(--qc2),0 0 0 5px #3a1d0c,0 3px 8px rgba(0,0,0,.5)}
.at-portrait.card-乙{background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(240,225,255,.9),rgba(205,170,240,.6) 40%,rgba(200,160,240,0) 72%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 45%,#d9c08a)}
.at-portrait.card-丙{background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(225,240,255,.9),rgba(160,200,250,.55) 40%,rgba(150,190,250,0) 72%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 45%,#d9c08a)}
.at-portrait.card-丁{background:radial-gradient(ellipse 70% 45% at 50% 40%,rgba(230,250,230,.9),rgba(170,225,175,.55) 40%,rgba(150,220,160,0) 72%),var(--tex-paper),linear-gradient(180deg,#f3e6c4,#e6d3a8 45%,#d9c08a)}
.at-portrait .halo{position:absolute;left:50%;top:30px;width:170px;height:170px;margin-left:-85px;border-radius:50%;background:radial-gradient(circle,rgba(255,250,210,.95),rgba(255,225,120,.5) 30%,rgba(255,215,100,0) 70%);animation:haloPulse 4s ease-in-out infinite}
.at-portrait .portrait{position:absolute;left:10px;right:10px;top:8px;bottom:0;width:auto;height:auto;-webkit-mask-image:linear-gradient(180deg,#000 88%,transparent);mask-image:linear-gradient(180deg,#000 88%,transparent)}
.at-portrait .portrait .pm{font-size:26px}
.at-portrait.locked .portrait img{filter:grayscale(1) brightness(.35) contrast(1.1)}
.at-portrait.locked{background:radial-gradient(circle at 50% 40%,#5a4a3a,#241a12 75%);box-shadow:0 0 0 2px #6b5a46,0 0 0 4px #3a2a1c,0 0 0 5px #1a120a}
.at-portrait.locked .halo{opacity:.15}
.at-portrait .lock{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:6px 0;text-align:center;font-family:var(--font-brush);font-size:20px;letter-spacing:3px;color:#e8d3a3;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.7) 40%);text-shadow:0 1px 0 #000}
.at-portrait .lv{position:absolute;left:6px;bottom:6px;z-index:3;padding:0 8px;height:20px;line-height:20px;border-radius:10px;background:var(--bg-red);color:#fff;font-size:12px;font-weight:700;box-shadow:0 0 0 1px #3f0a06}
.at-portrait.awakened{box-shadow:0 0 0 2px #fff0b3,0 0 0 4px #f2c245,0 0 0 5px #3a1d0c,0 0 16px 3px rgba(255,210,80,.75)}
.at-portrait.npc .halo{background:radial-gradient(circle,rgba(200,180,160,.6),rgba(120,90,60,.3) 40%,rgba(80,60,40,0) 70%)}
.at-kvs{flex:1 1 auto;min-width:0}
.at-kvs .nm{display:flex;align-items:center;gap:8px;font-family:var(--font-brush);font-size:28px;color:var(--ink);line-height:1.1}
.at-kvs .ttl{display:inline-block;margin:4px 0 6px;padding:0 8px;line-height:20px;border-radius:3px;font-family:var(--font-brush);font-size:14px;letter-spacing:1px;color:#ffe9a3;background:linear-gradient(90deg,#8f1d13,#c8331f 45%,#a8261b 60%,#6e140c);box-shadow:inset 0 0 0 1px rgba(255,214,120,.55);text-shadow:0 1px 0 #3f0a06}
.at-kvs .kv{font-size:12px;padding:3px 0}
.at-kvs .kv .v{font-size:11.5px;text-align:right;max-width:68%;line-height:1.35}
.at-kvs .kv .k{flex:none;font-size:12px}
.at-desc{margin:10px 0 4px;padding:8px 10px;border-radius:5px;font-size:13px;line-height:1.6;color:var(--ink);background:rgba(255,248,225,.55);box-shadow:inset 0 0 0 1px rgba(184,134,11,.4)}
.at-sec{margin:10px 0 4px;font-size:18px}
.at-talent{display:flex;align-items:center;gap:10px;padding:6px 4px;border-bottom:1px dashed rgba(90,60,20,.3);cursor:pointer;opacity:.75}
.at-talent.on{opacity:1}
.at-talent:last-child{border-bottom:0}
.at-talent .slot{width:auto;pointer-events:none}
.at-talent .body{flex:1 1 auto;min-width:0}
.at-talent .t{font-family:var(--font-brush);font-size:17px;color:var(--ink);letter-spacing:1px}
.at-talent .t .lab{display:inline-block;margin-right:5px;padding:0 5px;border-radius:3px;font-size:12px;line-height:17px;color:#fff3c2;background:var(--bg-red);letter-spacing:0}
.at-talent .t small{display:block;font-family:var(--font-body);font-size:11px;color:var(--ink-soft);letter-spacing:0}
.at-talent .d{font-size:12px;line-height:1.45;color:var(--ink);margin-top:2px}
.at-ways{font-size:13px;line-height:1.6;color:var(--ink)}
.at-ways .w{padding:2px 0 2px 14px;position:relative}
.at-ways .w::before{content:'◆';position:absolute;left:0;top:2px;font-size:10px;color:#b8860b}
.at-ways .w b{color:var(--red)}

/* =====================================================================
 * 极致打磨（美术总监补丁 · 2026-09-08）
 * 本段在 theme.css 之后加载，用于覆盖/加强通用组件（.portrait .avatar .slot .card）
 * 与弟子/图鉴页自身的品质光效、翻转、印章、数值动画。
 * 只加不改：所有规则均为覆盖式，删除本段即回到原样。
 * ===================================================================== */

/* ---------- A. 头像图源：avatars/{id}.webp 优先，缺图退回立绘 ---------- */
.portrait.p-head img{object-fit:cover;object-position:50% 50%}
.portrait.p-head img.is-portrait{object-fit:cover;object-position:50% 6%}
.avatar .frame .portrait.p-head img{object-position:50% 50%}
.avatar .frame .portrait.p-head img.is-portrait{object-position:50% 7%}

/* 头像框：品质径向渐变底 + 内阴影 + 金属高光包边 */
.avatar .frame{background:var(--qbg,radial-gradient(circle at 50% 40%,#f3e6c4,#c9a96e 60%,#8c7355))}
.avatar .frame .gild{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.30) 0,rgba(255,255,255,.05) 26%,transparent 46%,transparent 72%,rgba(0,0,0,.22) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),inset 0 0 9px rgba(0,0,0,.45),inset 0 -6px 9px rgba(60,35,5,.28)}
.avatar .frame::after{background:none;box-shadow:none}
.avatar.q-甲 .frame{box-shadow:0 0 0 2px #ffe9a3,0 0 0 3.5px #b8860b,0 0 0 4.5px #3a1d0c,0 0 9px rgba(255,205,80,.55),0 2px 4px rgba(0,0,0,.6)}
.avatar.q-乙 .frame{box-shadow:0 0 0 2px #e5cffb,0 0 0 3.5px #5c2d8e,0 0 0 4.5px #2a1230,0 0 8px rgba(180,110,240,.45),0 2px 4px rgba(0,0,0,.6)}
.avatar.q-丙 .frame{box-shadow:0 0 0 2px #cfe2ff,0 0 0 3.5px #1d4f9e,0 0 0 4.5px #0e2340,0 0 8px rgba(90,150,250,.45),0 2px 4px rgba(0,0,0,.6)}
.avatar.q-丁 .frame{box-shadow:0 0 0 2px #d8f3d9,0 0 0 3.5px #2a6e2e,0 0 0 4.5px #10280f,0 0 8px rgba(90,200,110,.4),0 2px 4px rgba(0,0,0,.6)}
.avatar .lv{border-radius:3px 0 6px 0;left:-1px;bottom:-1px;box-shadow:0 0 0 1px #f2c245,0 1px 2px rgba(0,0,0,.5)}
.avatar .av-stars{margin-top:2px;display:flex;justify-content:center;line-height:0}
.avatar .av-stars svg{width:9px;height:9px}
.avatar.empty .frame .gild{display:none}

/* ---------- B. 装备 / 武学槽：金框 + 品阶角标 + 强化数字 ---------- */
.slot .box .gild{position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.06) 38%,transparent 55%,rgba(0,0,0,.18));
  box-shadow:inset 0 0 0 1px rgba(255,248,220,.7),inset 0 0 8px rgba(90,55,5,.35)}
.slot .box::before{display:none}
.slot.q-甲 .box{box-shadow:0 0 0 2px #ffe08a,0 0 0 3.5px #8a5a00,0 0 0 4.5px #2b1d12,0 0 8px rgba(255,205,80,.5),0 2px 4px rgba(0,0,0,.55)}
.slot.q-乙 .box{box-shadow:0 0 0 2px #dcbcff,0 0 0 3.5px #5c2d8e,0 0 0 4.5px #2b1d12,0 2px 4px rgba(0,0,0,.55)}
.slot.q-丙 .box{box-shadow:0 0 0 2px #a9cdff,0 0 0 3.5px #1d4f9e,0 0 0 4.5px #2b1d12,0 2px 4px rgba(0,0,0,.55)}
.slot.q-丁 .box{box-shadow:0 0 0 2px #bdf0b3,0 0 0 3.5px #2a6e2e,0 0 0 4.5px #2b1d12,0 2px 4px rgba(0,0,0,.55)}
.slot .tier{box-shadow:0 0 0 1px #2b1d12,0 1px 2px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.4)}
.slot .nm.q-甲{color:#8a5a00}.slot .nm.q-乙{color:#5c2d8e}.slot .nm.q-丙{color:#1d4f9e}.slot .nm.q-丁{color:#2a6e2e}
.slot.empty .box{background:rgba(43,29,18,.08);border:2px dashed rgba(122,79,0,.55);
  box-shadow:inset 0 0 12px rgba(0,0,0,.14),0 1px 2px rgba(0,0,0,.25)}
.slot.empty .box::after{content:'+';position:absolute;left:0;right:0;top:50%;bottom:auto;transform:translateY(-50%);text-align:center;font-size:26px;line-height:1;color:rgba(120,80,25,.6);text-shadow:0 1px 0 rgba(255,248,220,.6)}

/* ---------- C. 弟子大卡（C.card / C.cardMini 通用件） ---------- */
.card{box-shadow:
  0 0 0 2px var(--qc3,#fff0b3),0 0 0 4px var(--qc,#f2c245),0 0 0 5.5px var(--qc2,#b8860b),
  0 0 0 7px #4a2a10,0 0 0 8px #1e0e04,0 8px 20px rgba(0,0,0,.62),0 0 22px rgba(255,200,90,.18)}
.card::before{inset:5px;border:2px solid rgba(255,255,255,.55);
  box-shadow:inset 0 0 0 1.5px var(--qc2,#b8860b),inset 0 0 0 3px rgba(255,255,255,.28),inset 0 0 22px rgba(120,80,10,.2)}
.card-rays{position:absolute;left:50%;top:150px;width:330px;height:330px;margin:-40px 0 0 -165px;z-index:1;pointer-events:none;opacity:.55;
  background:conic-gradient(from 0deg,rgba(255,245,200,0) 0deg,rgba(255,245,200,.75) 9deg,rgba(255,245,200,0) 18deg,rgba(255,245,200,0) 45deg,rgba(255,245,200,.6) 54deg,rgba(255,245,200,0) 63deg,rgba(255,245,200,0) 90deg,rgba(255,245,200,.75) 99deg,rgba(255,245,200,0) 108deg,rgba(255,245,200,0) 135deg,rgba(255,245,200,.6) 144deg,rgba(255,245,200,0) 153deg,rgba(255,245,200,0) 180deg,rgba(255,245,200,.75) 189deg,rgba(255,245,200,0) 198deg,rgba(255,245,200,0) 225deg,rgba(255,245,200,.6) 234deg,rgba(255,245,200,0) 243deg,rgba(255,245,200,0) 270deg,rgba(255,245,200,.75) 279deg,rgba(255,245,200,0) 288deg,rgba(255,245,200,0) 315deg,rgba(255,245,200,.6) 324deg,rgba(255,245,200,0) 333deg);
  -webkit-mask-image:radial-gradient(circle,#000 14%,transparent 60%);mask-image:radial-gradient(circle,#000 14%,transparent 60%);
  animation:cardSpin 40s linear infinite}
.card-sect{position:absolute;left:50%;top:110px;width:212px;height:212px;margin-left:-106px;z-index:1;pointer-events:none;opacity:.14;
  background:
    repeating-conic-gradient(from 0deg,rgba(110,72,18,.95) 0deg 2.4deg,transparent 2.4deg 15deg),
    radial-gradient(circle,transparent 27%,rgba(110,72,18,.85) 28%,transparent 30%),
    radial-gradient(circle,transparent 44%,rgba(110,72,18,.7) 45%,transparent 47%),
    radial-gradient(circle,transparent 61%,rgba(110,72,18,.6) 62%,transparent 64%);
  -webkit-mask-image:radial-gradient(circle,#000 26%,transparent 70%);mask-image:radial-gradient(circle,#000 26%,transparent 70%);
  animation:cardSpin 90s linear infinite reverse}
.card-portrait .card-shadow{position:absolute;left:50%;bottom:6px;width:150px;height:22px;margin-left:-75px;z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(ellipse,rgba(70,45,10,.45),rgba(70,45,10,0) 70%)}
.card-portrait .portrait{animation:cardBreathe 5.2s ease-in-out infinite}
.card-cnr{position:absolute;width:26px;height:26px;z-index:9;pointer-events:none;background:var(--corner-tl) center / 26px 26px no-repeat;filter:drop-shadow(0 1px 1px rgba(0,0,0,.55))}
.card-cnr.tl{left:2px;top:2px}
.card-cnr.tr{right:2px;top:2px;background-image:var(--corner-tr)}
.card-cnr.bl{left:2px;bottom:2px;background-image:var(--corner-bl)}
.card-cnr.br{right:2px;bottom:2px;background-image:var(--corner-br)}
.card-mini .card-cnr{width:16px;height:16px;background-size:16px 16px}
.card-title{clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),50% 100%,0 calc(100% - 8px))}
.card-title>span{display:block;writing-mode:vertical-rl;font-family:var(--font-brush);font-size:20px;line-height:1;letter-spacing:3px;color:#ffe9a3;text-shadow:0 1px 0 #3f0a06,0 0 4px rgba(0,0,0,.4)}
.card-awkb{display:block;margin-top:6px;font-family:var(--font-brush);font-size:12px;line-height:16px;padding:0 5px;border-radius:3px;color:#fff;letter-spacing:1px;
  background:linear-gradient(180deg,#c264ff,#4c1a8f);box-shadow:0 0 0 1px #2a0a4a,0 0 7px rgba(180,90,255,.7)}
.card-mark{position:absolute;left:-6px;top:8px;z-index:9;writing-mode:vertical-rl;padding:6px 3px 8px;border-radius:2px;font-family:var(--font-brush);font-size:13px;letter-spacing:2px;color:#fff3c2;
  background:linear-gradient(90deg,#8f1d13,#c8331f 50%,#7e1a10);box-shadow:0 1px 3px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,214,120,.5);
  clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 6px),0 100%)}
/* 未获得：灰剪影 + 朱红「未寻访」印章 */
.card.card-locked{filter:none}
.card-locked .card-portrait .portrait img{filter:grayscale(1) brightness(.38) contrast(1.15)}
.card-locked .card-halo,.card-locked .card-rays{opacity:.12}
.card-unknown{position:absolute;left:50%;top:56%;z-index:10;transform:translate(-50%,-50%) rotate(-12deg);
  width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-brush);font-size:19px;line-height:1.05;letter-spacing:1px;text-align:center;color:#fff3ea;
  background:radial-gradient(circle at 38% 32%,rgba(200,60,42,.92),rgba(122,20,10,.92));
  box-shadow:0 0 0 2px rgba(255,240,215,.85),0 0 0 5px rgba(140,26,14,.9),0 2px 6px rgba(0,0,0,.5);
  text-shadow:0 1px 0 rgba(0,0,0,.5)}
/* 甲级流动金边（mask-composite 不支持则不显示，无副作用） */
.card-rim,.card-motes{display:none;position:absolute;inset:0;z-index:9;pointer-events:none;border-radius:inherit}
@supports ((-webkit-mask-composite:xor) or (mask-composite:exclude)){
  .card-甲>.card-rim,.card-awk>.card-rim{display:block;padding:3px;
    background:conic-gradient(from var(--rimA,0deg),rgba(255,246,205,0) 0deg,rgba(255,246,205,0) 40deg,rgba(255,250,225,.95) 68deg,#fffdf2 76deg,rgba(255,246,205,.9) 84deg,rgba(255,246,205,0) 118deg,rgba(255,246,205,0) 220deg,rgba(255,240,180,.75) 250deg,rgba(255,246,205,0) 280deg,rgba(255,246,205,0) 360deg);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
    mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
    animation:cardRim 3.6s linear infinite}
}
/* 觉醒紫金粒子 */
.card-awk>.card-motes{display:block;overflow:hidden;
  background:
    radial-gradient(circle 2px at 18% 92%,rgba(255,235,170,.95),transparent 60%),
    radial-gradient(circle 1.6px at 34% 78%,rgba(210,150,255,.9),transparent 60%),
    radial-gradient(circle 2.4px at 52% 96%,rgba(255,240,190,.9),transparent 60%),
    radial-gradient(circle 1.4px at 66% 84%,rgba(200,140,255,.95),transparent 60%),
    radial-gradient(circle 2px at 82% 90%,rgba(255,235,170,.9),transparent 60%),
    radial-gradient(circle 1.6px at 26% 66%,rgba(230,180,255,.8),transparent 60%),
    radial-gradient(circle 1.8px at 74% 70%,rgba(255,245,200,.85),transparent 60%),
    radial-gradient(circle 1.4px at 44% 62%,rgba(210,150,255,.75),transparent 60%);
  -webkit-mask-image:linear-gradient(0deg,#000 30%,transparent 92%);mask-image:linear-gradient(0deg,#000 30%,transparent 92%);
  animation:cardMotes 6.5s linear infinite}
.card-awk{box-shadow:
  0 0 0 2px #fff6d8,0 0 0 4px #f2c245,0 0 0 5.5px #7b3fb5,
  0 0 0 7px #3a1d0c,0 0 0 8px #1e0e04,0 8px 20px rgba(0,0,0,.62),0 0 26px rgba(190,110,255,.42)}
.card-fates .f{position:relative;padding-left:11px;color:#9a8a70}
.card-fates .f::before{content:'';position:absolute;left:0;top:5px;width:6px;height:6px;margin:0;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#d9cdb4,#9a8a70);box-shadow:0 0 0 1px rgba(90,60,20,.3)}
.card-fates .f.on{color:#8a5a00}
.card-fates .f.on::before{background:radial-gradient(circle at 35% 30%,#fffbe0,#f2c245 55%,#b8860b);
  box-shadow:0 0 0 1px rgba(120,80,0,.5),0 0 7px 1px rgba(255,205,80,.95);animation:fateDot 1.9s ease-in-out infinite}
@keyframes cardSpin{to{transform:rotate(360deg)}}
@keyframes cardBreathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes cardMotes{0%{transform:translateY(14px);opacity:.15}25%{opacity:.95}100%{transform:translateY(-62px);opacity:0}}
@property --rimA{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes cardRim{to{--rimA:360deg}}

/* ---------- D. 弟子小卡：品质光效 / 上阵标记 / 翻转 ---------- */
.dp-card{box-shadow:0 0 0 2px var(--qc3),0 0 0 3.5px var(--qc),0 0 0 5px var(--qc2),0 0 0 6px #2a1608,0 4px 10px rgba(0,0,0,.5)}
.dp-card.q-甲{background:radial-gradient(ellipse 68% 40% at 50% 30%,rgba(255,241,185,.95),rgba(255,226,140,.4) 46%,rgba(255,220,120,0) 74%),var(--tex-paper),linear-gradient(180deg,#fbeec4,#f3dfa4 52%,#e8cd85);
  box-shadow:0 0 0 2px #fff3cf,0 0 0 3.5px #f2c245,0 0 0 5px #8a5a00,0 0 0 6px #2a1608,0 0 13px rgba(255,205,80,.55),0 4px 10px rgba(0,0,0,.5)}
.dp-card.q-乙{background:radial-gradient(ellipse 68% 40% at 50% 30%,rgba(244,232,255,.95),rgba(214,178,250,.4) 46%,rgba(200,160,240,0) 74%),var(--tex-paper),linear-gradient(180deg,#f7ecd6,#eaddba 52%,#dcc99e)}
.dp-card.q-丙{background:radial-gradient(ellipse 68% 40% at 50% 30%,rgba(230,242,255,.95),rgba(166,204,250,.4) 46%,rgba(150,190,250,0) 74%),var(--tex-paper),linear-gradient(180deg,#f7ecd6,#eaddba 52%,#dcc99e)}
.dp-card.q-丁{background:radial-gradient(ellipse 68% 40% at 50% 30%,rgba(233,252,233,.95),rgba(176,228,181,.4) 46%,rgba(150,220,160,0) 74%),var(--tex-paper),linear-gradient(180deg,#f7ecd6,#eaddba 52%,#dcc99e)}
.dp-card.q-甲 .dp-card-av{box-shadow:0 0 0 2px #ffe9a3,0 0 0 3.5px #8a5a00,0 0 0 4.5px #2b1d12,0 0 14px 2px rgba(255,205,80,.6),inset 0 0 0 1px rgba(255,255,255,.5)}
.dp-card.q-乙 .dp-card-av{box-shadow:0 0 0 2px #e5cffb,0 0 0 3.5px #5c2d8e,0 0 0 4.5px #2b1d12,0 0 12px 2px rgba(170,110,240,.5),inset 0 0 0 1px rgba(255,255,255,.5)}
.dp-card.q-丙 .dp-card-av{box-shadow:0 0 0 2px #cfe2ff,0 0 0 3.5px #1d4f9e,0 0 0 4.5px #2b1d12,0 0 12px 2px rgba(80,150,250,.5),inset 0 0 0 1px rgba(255,255,255,.5)}
.dp-card.q-丁 .dp-card-av{box-shadow:0 0 0 2px #d8f3d9,0 0 0 3.5px #2a6e2e,0 0 0 4.5px #2b1d12,0 0 12px 2px rgba(90,200,110,.5),inset 0 0 0 1px rgba(255,255,255,.5)}
.dp-card .dp-av{object-position:50% 50%}
.dp-card .dp-av.is-portrait{object-position:50% 7%}
.dp-mark{box-shadow:0 1px 4px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,214,120,.55);
  clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 5px),0 100%)}
.dp-card.on::before{box-shadow:inset 0 0 0 1px var(--qc2),inset 0 0 14px rgba(255,200,90,.35)}
.dp-grid.flip .dp-card{animation:dpFlip .34s cubic-bezier(.2,.75,.35,1) both}
.dp-grid.flip .dp-card:nth-child(3n+2){animation-delay:.05s}
.dp-grid.flip .dp-card:nth-child(3n+3){animation-delay:.1s}
.dp-grid.flip .dp-card:nth-child(n+4){animation-delay:.08s}
.dp-grid.flip .dp-card:nth-child(n+7){animation-delay:.14s}
.dp-grid.flip .dp-card:nth-child(n+10){animation-delay:.2s}
@keyframes dpFlip{0%{transform:perspective(700px) rotateY(-88deg) scale(.94);opacity:0}55%{opacity:1}100%{transform:none;opacity:1}}

/* ---------- E. 人物信息卡（弹窗内 200×300） ---------- */
.dp-icard{box-shadow:0 0 0 2px var(--qc3),0 0 0 3.5px var(--qc),0 0 0 5px var(--qc2),0 0 0 6px #2a1608,0 5px 14px rgba(0,0,0,.55)}
.dp-icard .ic-frame{background:var(--tex-cloud) left 6px top -4px / 84px 28px no-repeat,var(--tex-cloud) right 6px bottom -4px / 84px 28px no-repeat}
.dp-icard .ic-portrait .portrait{animation:cardBreathe 5.2s ease-in-out infinite}
.dp-icard .ic-stars{top:5px;padding:0 34px 0 8px}
.dp-icard .ic-stars .stars{flex-wrap:nowrap}
.dp-icard .ic-stars svg{width:15px;height:15px}
.dp-icard .ic-name{text-shadow:-1.5px -1.5px 0 rgba(255,250,235,.92),1.5px -1.5px 0 rgba(255,250,235,.92),-1.5px 1.5px 0 rgba(255,250,235,.92),1.5px 1.5px 0 rgba(255,250,235,.92),0 3px 5px rgba(0,0,0,.4)}
.dp-icard .ic-sect{position:absolute;left:50%;top:52px;width:150px;height:150px;margin-left:-75px;z-index:1;pointer-events:none;opacity:.13;
  background:repeating-conic-gradient(from 0deg,rgba(110,72,18,.95) 0deg 2.4deg,transparent 2.4deg 15deg),
    radial-gradient(circle,transparent 30%,rgba(110,72,18,.8) 31%,transparent 33%),
    radial-gradient(circle,transparent 52%,rgba(110,72,18,.65) 53%,transparent 55%);
  -webkit-mask-image:radial-gradient(circle,#000 26%,transparent 70%);mask-image:radial-gradient(circle,#000 26%,transparent 70%);
  animation:cardSpin 90s linear infinite reverse}
.dp-icard .ic-shadow{position:absolute;left:50%;bottom:78px;width:112px;height:16px;margin-left:-56px;z-index:1;pointer-events:none;border-radius:50%;
  background:radial-gradient(ellipse,rgba(70,45,10,.42),rgba(70,45,10,0) 70%)}
.dp-icard .ic-motes{display:none}
.dp-icard.awakened .ic-motes{display:block;position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden;
  background:radial-gradient(circle 1.8px at 20% 90%,rgba(255,235,170,.95),transparent 60%),
    radial-gradient(circle 1.4px at 38% 76%,rgba(210,150,255,.9),transparent 60%),
    radial-gradient(circle 2px at 58% 92%,rgba(255,240,190,.9),transparent 60%),
    radial-gradient(circle 1.4px at 76% 82%,rgba(200,140,255,.9),transparent 60%),
    radial-gradient(circle 1.6px at 30% 64%,rgba(255,245,200,.8),transparent 60%);
  -webkit-mask-image:linear-gradient(0deg,#000 30%,transparent 92%);mask-image:linear-gradient(0deg,#000 30%,transparent 92%);
  animation:cardMotes 6.5s linear infinite}
.dp-icard .ic-awaken{box-shadow:0 0 0 1px #2a0a4a,0 0 8px rgba(180,90,255,.7)}
.dp-icard .ic-stats .st .stat-seal{width:15px;height:15px;font-size:10px;line-height:15px;margin-right:1px}
.dp-icard .ic-stats{font-size:11.5px;letter-spacing:-.3px}
.dp-icard .ic-foot{padding:5px 7px 21px}
/* 弹窗小卡也用多层浮雕金框（按 200×300 缩比：9px 带宽） */
.dp-icard .ic-frame{border:0;border-radius:8px;
  box-shadow:
    inset 0 0 0 1px rgba(255,252,235,.9),
    inset 0 0 0 3.5px var(--qc,#f2c245),
    inset 0 0 0 5px var(--qc2,#b8860b),
    inset 0 0 0 5.8px rgba(255,250,225,.95),
    inset 0 0 0 8px var(--qc,#f2c245),
    inset 0 0 0 9px rgba(38,20,4,.9),
    inset 0 0 20px rgba(110,72,10,.18)}
.dp-icard{box-shadow:0 0 0 2px var(--qc),0 0 0 3.5px var(--qc2),0 0 0 5px #1e0e04,0 5px 14px rgba(0,0,0,.55)}
.dp-icard .ic-gem{position:absolute;left:50%;top:-1px;width:11px;height:11px;margin-left:-5.5px;z-index:9;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 36% 30%,#ffb49a,#e8523a 38%,#c22f1f 62%,#6e140c 100%);
  box-shadow:0 0 0 1.5px var(--qc,#f2c245),0 0 0 2.5px #7a4f00,0 1px 3px rgba(0,0,0,.55)}
.dp-icard .ic-stars{top:15px;padding:0 30px 0 8px}
.dp-icard .ic-name{top:38px;left:13px}
.dp-icard .ic-title{top:-1px;right:9px}
.dp-icard .ic-seal{left:13px}
.dp-icard .ic-portrait{left:16px;right:16px;top:20px;height:206px}

/* ---------- F. 缘分列表：激活金字 + 小金光点 ---------- */
.dp-fate-list .fr,.at-fates .fr{position:relative;padding-left:15px}
.dp-fate-list .fr::before,.at-fates .fr::before{content:'';position:absolute;left:2px;top:7px;width:7px;height:7px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#d9cdb4,#9a8a70);box-shadow:0 0 0 1px rgba(90,60,20,.35)}
.dp-fate-list .fr.on::before,.at-fates .fr.on::before{background:radial-gradient(circle at 35% 30%,#fffbe0,#f2c245 55%,#b8860b);
  box-shadow:0 0 0 1px rgba(120,80,0,.5),0 0 7px 1px rgba(255,205,80,.95);animation:fateDot 1.9s ease-in-out infinite}
.dp-fate-list .fr.on .fn,.at-fates .fr.on .fn{color:#8a5a00;text-shadow:0 1px 0 rgba(255,248,220,.8)}
.dp-fate-list .fr.on .fd,.at-fates .fr.on .fd{color:#a8261b}
.dp-fate-list .fr.off .fd,.at-fates .fr.off .fd{color:#9a8a70}
.dp-fates-toggle{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:2px;cursor:pointer;
  font-family:var(--font-brush);font-size:15px;letter-spacing:2px;color:#7a4f00}
.dp-fates-toggle i{font-style:normal;transition:transform .18s}
.dp-fates.collapsed .fate-list .fr:nth-child(n+4){display:none}
.dp-fates.collapsed .dp-fates-toggle i{transform:rotate(-90deg)}
@keyframes fateDot{0%,100%{box-shadow:0 0 0 1px rgba(120,80,0,.5),0 0 5px 1px rgba(255,205,80,.75)}50%{box-shadow:0 0 0 1px rgba(120,80,0,.5),0 0 10px 2px rgba(255,215,110,1)}}

/* ---------- G. 培养面板：头部不再重叠 + 数值红绿箭头动画 ---------- */
.dp-head .body{min-width:0;overflow:visible}
.dp-head .sub{flex-wrap:wrap;row-gap:2px;min-width:0;white-space:normal}
.dp-head .sub .stars{flex:0 0 100%;min-width:0}
.dp-head .sub .stars svg{width:12px;height:12px}
.dp-head .extra{max-width:40%;padding-left:6px}
.dp-cult-row .nv b{display:inline-block}
.dp-cult-row .nv.up b{animation:numUp .55s cubic-bezier(.25,1.4,.5,1) both}
.dp-cult-row .nv.down b{animation:numDown .55s cubic-bezier(.25,1.4,.5,1) both}
.dp-cult-row .nv.up{text-shadow:0 0 6px rgba(216,50,31,.35)}
.dp-cult-row .nv.down{text-shadow:0 0 6px rgba(63,143,90,.35)}
@keyframes numUp{0%{transform:translateY(7px);opacity:0}60%{transform:translateY(-3px);opacity:1}100%{transform:none;opacity:1}}
@keyframes numDown{0%{transform:translateY(-7px);opacity:0}60%{transform:translateY(3px);opacity:1}100%{transform:none;opacity:1}}

/* ---------- H. 武林谱：未获得灰剪影 +「未寻访」朱红印章 ---------- */
.at-cell.locked .fr::after{content:'未寻访';left:auto;right:-3px;top:auto;bottom:-3px;width:42px;height:42px;
  transform:rotate(-12deg);border-radius:50%;background:radial-gradient(circle at 38% 32%,rgba(206,66,46,.86),rgba(122,20,10,.86));
  display:flex;align-items:center;justify-content:center;font-family:var(--font-brush);font-size:13px;line-height:1.02;letter-spacing:0;color:#fff3ea;
  box-shadow:0 0 0 1.5px rgba(255,240,215,.8),0 0 0 3px rgba(140,26,14,.8),0 2px 4px rgba(0,0,0,.45);text-shadow:0 1px 0 rgba(0,0,0,.45)}
.at-cell.locked .fr{overflow:visible;background:radial-gradient(circle at 50% 38%,#6d5a46,#241a12 74%)}
.at-cell.locked .fr .dp-av{filter:grayscale(1) brightness(.34) contrast(1.15);opacity:.95}
.at-grid .at-cell .fr{background:var(--qbg)}
.at-cell.q-甲 .fr{box-shadow:0 0 0 2px #ffe9a3,0 0 0 3.5px #8a5a00,0 0 0 4.5px #2b1d12,0 0 9px rgba(255,205,80,.45),inset 0 -8px 10px rgba(0,0,0,.15)}
.at-cell.locked.q-甲 .fr{box-shadow:0 0 0 2px #6b5a46,0 0 0 3.5px #1a120a,inset 0 0 12px rgba(0,0,0,.7)}
.at-portrait .lock{font-size:0;background:none;padding:0;bottom:14px;top:auto;left:auto;right:12px;width:78px;height:78px;
  transform:rotate(-12deg);border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 38% 32%,rgba(206,66,46,.86),rgba(122,20,10,.86));
  box-shadow:0 0 0 2px rgba(255,240,215,.8),0 0 0 5px rgba(140,26,14,.8),0 2px 8px rgba(0,0,0,.5)}
.at-portrait .lock::after{content:'未寻访';font-size:21px;line-height:1.02;letter-spacing:1px;color:#fff3ea;text-shadow:0 1px 0 rgba(0,0,0,.45)}
.at-portrait.locked .portrait img{filter:grayscale(1) brightness(.42) contrast(1.1)}
.dp-fates-t small{margin-left:8px;font-family:var(--font-body);font-size:12px;letter-spacing:0;color:var(--ink-soft)}
.dp-fates-toggle:active{opacity:.7}
