/* ==========================================================
   牛爸英语阅读站 · 公共样式 niuba.css
   语义配色：一色一职，全站统一
   ========================================================== */

/* ---------- 自托管字体（子集化） ---------- */
@font-face{
  font-family:"ZCOOL KuaiLe";
  src:url("/assets/fonts/zcool-subset.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Baloo 2";
  src:url("/assets/fonts/baloo2-subset.woff2") format("woff2");
  font-weight:400 800; font-style:normal; font-display:swap;
}

:root{
  /* —— 语义色：一色一职 —— */
  --focus:#ffd84d;   --focus-d:#c88a1c;   /* 🟡 今天要盯的 */
  --method:#dcecf6;  --method-d:#3f7fa0;  /* 🔵 方法 / 长句 */
  --word:#f8dde3;    --word-d:#c25c76;    /* 🌸 词与家族 */
  --plot:#e8e0f4;    --plot-d:#7c62ad;    /* 💜 作者埋的 / 剧情 */
  --done:#d7efe3;    --done-d:#3f9070;    /* 🌿 完成 / 奖励 */
  --answer:#fbf1da;  --answer-d:#a8791f;  /* 🍦 答案 / 对照 */

  --ink:#332f3a; --ink-soft:#6b6577; --paper:#fffdf8; --line:#ece6dd;
  --shadow:0 4px 16px rgba(120,105,140,.08);
  --shadow-lg:0 6px 22px rgba(120,105,140,.10);
  --r-lg:20px; --r-md:14px; --r-sm:11px;
  --tap:44px;                 /* iOS 最小触控尺寸 */
  --wrap:760px;
}

/* ---------- 基础 ---------- */
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC",
              "Source Han Sans SC","Noto Sans SC","Microsoft YaHei",sans-serif;
  color:var(--ink); font-style:normal; font-size:17px; line-height:1.85;
  background:linear-gradient(160deg,#fdf7ee 0%,#eef6f4 100%);
  -webkit-font-smoothing:antialiased; padding:18px 18px 96px;
}
.wrap{max-width:var(--wrap);margin:0 auto;}
/* 拉丁字形走 Baloo 2，汉字自动回退到 ZCOOL —— 逐字回退 */
.zc,h1,h2,.step-t,.brand,.fam-t,.dt,.rt,.wt,.bt,.qt,.bnum,.no,.stat .n,.big,.aa .big{
  font-family:"Baloo 2","ZCOOL KuaiLe",-apple-system,"PingFang SC",sans-serif;
  font-weight:400;font-style:normal;
}
/* 纯中文标题仍优先 ZCOOL 的圆润感 */
.step-t,.fam-t,.dt,.rt,.wt,.bt,.qt,.clear .big{
  font-family:"ZCOOL KuaiLe","Baloo 2",-apple-system,"PingFang SC",sans-serif;
}
.en{font-family:"Baloo 2",-apple-system,"PingFang SC",sans-serif;font-weight:700;}
a{color:inherit;text-decoration:none;}

/* ---------- 页头 ---------- */
.head{background:var(--paper);border-radius:22px;padding:24px 22px;
  box-shadow:var(--shadow-lg);border:1px solid var(--line);position:relative;
  overflow:hidden;text-align:center;}
.head::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;
  background:linear-gradient(90deg,var(--plot),var(--method),var(--answer),var(--word),var(--done));}
.head .kicker{font-size:13.5px;letter-spacing:.5px;font-weight:700;color:var(--method-d);margin-bottom:6px;}
.head h1{font-size:29px;line-height:1.3;}
.head .chap{color:var(--plot-d);font-size:22px;}
.head .pages{font-size:13.5px;color:var(--ink-soft);margin-top:3px;}

/* ---------- 卡块 ---------- */
.step{background:var(--paper);border-radius:var(--r-lg);padding:20px 22px;margin-top:18px;
  border:1px solid var(--line);box-shadow:var(--shadow);}
.step-head{display:flex;align-items:center;gap:14px;margin-bottom:15px;}
.bnum{flex:none;width:46px;height:46px;border-radius:15px;display:flex;align-items:center;
  justify-content:center;font-family:"ZCOOL KuaiLe";font-size:25px;color:#fff;line-height:1;}
.step-t{font-size:22px;line-height:1.2;}
.step-sub{font-size:14px;font-weight:700;color:var(--ink-soft);margin-top:2px;}

/* 语义主题：给 .step 加 t-xxx 即可换色 */
.t-focus  .bnum{background:var(--focus-d);}  .t-focus  .step-t{color:var(--focus-d);}
.t-method .bnum{background:var(--method-d);} .t-method .step-t{color:var(--method-d);}
.t-word   .bnum{background:var(--word-d);}   .t-word   .step-t{color:var(--word-d);}
.t-plot   .bnum{background:var(--plot-d);}   .t-plot   .step-t{color:var(--plot-d);}
.t-done   .bnum{background:var(--done-d);}   .t-done   .step-t{color:var(--done-d);}

/* ---------- 通用提示条 ---------- */
.banner{border-radius:16px;padding:14px 17px;margin-top:14px;font-size:16.5px;
  font-weight:700;line-height:1.75;text-align:left;}
.banner.b-done{background:var(--done);color:#2f6b52;}
.banner.b-focus{background:#fff4c6;border:2px solid var(--focus-d);color:#7a5f14;}
.banner.b-plot{background:var(--plot);color:#5f4d86;}
.banner.b-answer{background:var(--answer);color:#8a6d2e;}
.banner .em{color:var(--done-d);}
.banner .sm{display:block;font-size:14.5px;font-weight:400;margin-top:7px;}
.banner .t{display:block;font-family:"ZCOOL KuaiLe";font-size:19px;margin-bottom:6px;}
.banner.b-focus .t{color:var(--focus-d);}

/* ---------- 🟡 今天要盯的 ---------- */
.bigword{background:var(--focus);border-radius:16px;padding:16px 18px;text-align:center;
  margin:8px 0 14px;box-shadow:0 4px 0 #e6bf2e;}
.bigword .w{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:32px;color:#5a4600;
  line-height:1.15;letter-spacing:.3px;display:block;}
.bigword .cn{display:block;font-size:16px;font-weight:700;color:#8a6a10;margin-top:4px;}
.tally{font-size:15.5px;color:var(--focus-d);font-weight:700;margin-bottom:9px;}
.tgrid{display:flex;flex-wrap:wrap;gap:11px;align-items:center;margin-bottom:12px;}
.tbox{width:var(--tap);height:var(--tap);border:2.5px solid var(--focus-d);border-radius:10px;
  flex:none;background:#fffdf5;cursor:pointer;transition:background .15s;}
.tbox.on{background:var(--focus);}
.discover{background:var(--focus);border-radius:18px;padding:18px;margin-top:16px;box-shadow:0 4px 0 #e6bf2e;}
.dt{font-size:22px;color:#5a4600;text-align:center;line-height:1.3;}
.ds{font-size:15px;color:#8a6a10;text-align:center;margin-top:5px;}
.chips-c{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 11px;}
.nchip{background:#fffdf5;border:2px solid #e6bf2e;border-radius:10px;padding:6px 12px;
  font-family:"Baloo 2",sans-serif;font-weight:700;font-size:15px;color:#5a4600;}
.drule{background:#fffdf5;border-radius:12px;padding:12px 15px;font-size:15.5px;
  color:#7a5f14;text-align:center;line-height:1.8;}
.drule b{color:var(--focus-d);}
mark.hi-word{background:var(--focus);border-radius:5px;padding:1px 5px;color:#5a4600;}

/* ---------- 🔵 方法 / 长句 ---------- */
.sentbox{background:var(--method);border-radius:var(--r-md);padding:16px;font-size:19px;
  line-height:1.95;color:#274d60;font-weight:600;text-align:center;
  font-family:"Baloo 2",-apple-system,"PingFang SC",sans-serif;}
.sentbox .slash{color:var(--word-d);font-weight:700;padding:0 4px;}
.sentbox .mid-hi{background:#fff;border-radius:7px;padding:1px 8px;color:var(--word-d);font-weight:700;}
.sentbox .mid-hi2{background:#ffe9b8;border-radius:7px;padding:1px 8px;color:#8a6a10;font-weight:700;}
.hint{background:var(--plot);border-radius:12px;padding:12px 15px;font-size:15px;
  color:#5f4d86;margin:12px 0;line-height:1.8;}
.hint b{color:var(--plot-d);}
.ladder{background:var(--method);border-radius:var(--r-md);padding:15px 16px;font-size:15px;color:#2f5568;}
.ladder .r{padding:6px 0;}
.ladder .ch{display:inline-block;min-width:58px;font-weight:700;color:var(--method-d);}
.ladder .now{background:#fff;border-radius:8px;padding:3px 8px;}
.ladder .dim{color:#7b96a6;}
.fill-label{font-size:15px;font-weight:700;color:var(--method-d);margin-top:8px;}
.writeline{display:block;border-bottom:2.5px dashed #b3d0dd;min-height:38px;margin-top:8px;}

/* ---------- 🌸 词与家族 ---------- */
.fam{border:2px solid var(--word);border-radius:16px;padding:14px 16px;margin-bottom:13px;background:#fffafb;}
.fam-t{font-size:20px;color:var(--word-d);margin-bottom:2px;}
.fam-cn{font-size:14.5px;color:var(--ink-soft);margin-bottom:9px;}
.fam-eg{background:var(--word);border-radius:10px;padding:10px 13px;font-size:15px;
  color:#8f4459;margin-bottom:10px;line-height:1.7;}
.fam-eg .en{color:var(--word-d);}
.kin{font-size:14.5px;color:var(--ink-soft);}
.kin .lbl{font-weight:700;color:var(--word-d);}
.chipline{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px;}
.kchip{background:#fff;border:1.5px solid var(--word);color:#a05a6f;border-radius:8px;
  padding:5px 11px;font-family:"Baloo 2",sans-serif;font-weight:600;font-size:14px;}
.kchip .src{color:#c9a5b0;font-size:11.5px;font-family:inherit;font-weight:400;margin-left:4px;}
.solo{font-size:14.5px;color:var(--ink-soft);background:#f7f4ee;border-radius:10px;
  padding:10px 13px;margin-top:6px;line-height:1.8;}

/* ---------- 💜 作者埋的 / 剧情 ---------- */
.echo{border:2px solid var(--plot-d);border-radius:16px;padding:15px 16px;margin-bottom:15px;background:#faf8fe;}
.echo-n{display:inline-block;background:var(--plot-d);color:#fff;border-radius:20px;
  padding:2px 14px;font-size:13.5px;font-weight:700;margin-bottom:10px;}
.pair{background:#fff;border-radius:12px;padding:12px 14px;margin-bottom:5px;}
.pair .src{font-size:12.5px;color:var(--plot-d);font-weight:700;margin-bottom:3px;}
.pair .txt{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:16px;color:#4a4356;line-height:1.6;}
.pair .cn{font-size:14px;color:var(--ink-soft);font-weight:400;margin-top:2px;}
.pair b{color:var(--word-d);}
.vs{text-align:center;font-size:19px;color:var(--plot-d);line-height:1.1;margin:3px 0;font-weight:700;}
.poke{background:var(--plot);border-radius:12px;padding:12px 15px;font-size:15px;
  color:#5f4d86;margin-top:10px;line-height:1.8;}
.poke b{color:var(--plot-d);}
mark.hi-key{background:var(--plot);border-radius:5px;padding:1px 5px;color:#4a3d6b;}
.read2{border-radius:16px;padding:16px 17px;margin-bottom:12px;}
.readA{background:#fdeef0;border:2px solid var(--word-d);}
.readB{background:#e9f4ee;border:2px solid var(--done-d);}
.rt{font-size:19px;margin-bottom:8px;}
.readA .rt{color:var(--word-d);} .readB .rt{color:var(--done-d);}
.read2 p{font-size:15px;line-height:1.8;}
.readA p{color:#8a4a5c;} .readB p{color:#356a52;}
.evi{background:#fff;border-radius:10px;padding:10px 13px;margin-top:9px;font-size:14.5px;line-height:1.75;}
.readA .evi{color:#8a4a5c;} .readB .evi{color:#356a52;}
.evi .lbl{font-weight:700;display:block;margin-bottom:3px;}
.choose{background:#fff;border:2px dashed var(--plot-d);border-radius:var(--r-md);
  padding:15px 16px;font-size:15.5px;color:#5f4d86;line-height:1.85;}
.choose b{color:var(--plot-d);}

/* ---------- 🍦 答案 / 对照 ---------- */
.ansrow{display:flex;align-items:flex-start;gap:12px;background:var(--answer);
  border-radius:var(--r-md);padding:13px 15px;margin-bottom:11px;}
.abox{width:32px;height:32px;border:2.5px solid var(--focus-d);border-radius:9px;
  flex:none;margin-top:4px;cursor:pointer;background:#fffdf5;transition:background .15s;}
.abox.on{background:var(--focus);}
.aq{font-size:15px;color:#8a6d2e;font-weight:700;}
.aa{font-size:16.5px;color:#7a5f14;margin-top:3px;}
.aa .big{font-family:"ZCOOL KuaiLe";font-size:23px;color:var(--focus-d);}
.aa .note{display:block;font-size:14px;color:#9a8348;font-weight:400;margin-top:4px;line-height:1.8;}
.eg{background:var(--answer);border-radius:12px;padding:11px 15px;font-size:16px;
  color:#7a5f14;line-height:1.75;}
.eg .en{color:#8a6a10;}

/* ---------- 🌿 完成 / 奖励 ---------- */
.done-row{display:flex;align-items:center;gap:12px;margin-top:16px;background:#f7f4ee;
  border-radius:13px;padding:12px 16px;cursor:pointer;}
.check{width:var(--tap);height:var(--tap);border:3px solid var(--done-d);border-radius:11px;
  flex:none;background:#fff;transition:background .15s;}
.check.on{background:var(--done);}
.done-t{font-size:17px;font-weight:700;color:var(--done-d);}
.badges{display:flex;flex-direction:column;gap:10px;}
.badge{display:flex;align-items:flex-start;gap:12px;background:#f7f4ee;
  border-radius:var(--r-md);padding:12px 15px;cursor:pointer;}
.star{width:36px;height:36px;border:3px solid var(--done-d);border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:16px;color:#c9dfd4;
  margin-top:1px;transition:background .15s,color .15s;}
.star.on{background:var(--done);color:var(--done-d);}
.btxt{font-size:15.5px;font-weight:700;color:#3d7a5f;}
.bsub{display:block;font-size:13.5px;font-weight:400;color:var(--ink-soft);margin-top:2px;line-height:1.7;}
.qbox{background:var(--done);border-radius:12px;padding:13px 16px;font-size:17px;
  font-weight:700;color:#2f6b52;margin-bottom:6px;line-height:1.75;}
.qbox.q-plot{background:var(--plot);color:#5f4d86;}
.qbox.q-word{background:var(--word);color:#8f4459;}
.nowrite{font-size:14px;font-weight:700;color:var(--word-d);margin:8px 0 4px;}
.clear{background:var(--paper);border:2px dashed var(--word-d);border-radius:var(--r-lg);
  padding:20px;text-align:center;margin-top:18px;}
.clear .big{font-family:"ZCOOL KuaiLe";font-size:23px;color:var(--word-d);line-height:1.4;}
.clear .sub{font-size:15px;color:var(--ink-soft);margin-top:7px;line-height:1.8;}

/* ---------- 跳过词 / 白送词 ---------- */
.skips{display:flex;flex-wrap:wrap;gap:9px;margin:4px 0 14px;}
.skip{background:#eee9e0;color:#8a8494;border-radius:9px;padding:6px 13px;font-size:15px;
  text-decoration:line-through;text-decoration-color:#c7bfd0;font-family:"Baloo 2",sans-serif;}
.rule{background:var(--plot);border-radius:12px;padding:12px 15px;font-size:15px;
  color:#5f4d86;line-height:1.8;}
.rule b{color:var(--plot-d);}
.gift{background:var(--done);border:2px solid var(--done-d);border-radius:var(--r-md);
  padding:13px 16px;font-size:15.5px;color:#2f6b52;margin-bottom:12px;line-height:1.75;}
.gift b{color:var(--done-d);}
.gift .row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:6px;}
.gift .en{font-size:19px;}

/* ---------- 开放问题 ---------- */
.openq{background:var(--paper);border:2px solid var(--method-d);border-radius:18px;
  padding:20px;margin-top:16px;text-align:center;}
.openq .qt{font-size:20px;color:var(--method-d);margin-bottom:8px;}
.openq .qq{font-size:18px;color:#274d60;font-weight:700;line-height:1.75;
  background:var(--method);border-radius:12px;padding:14px;}
.openq .qn{font-size:14.5px;color:var(--ink-soft);margin-top:10px;line-height:1.8;}

/* ---------- 导航（JS 注入） ---------- */
.nb-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;
  background:rgba(255,253,248,.92);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:16px;padding:9px 13px;margin-bottom:16px;}
.nb-top a{display:flex;align-items:center;gap:6px;font-size:14.5px;font-weight:700;
  color:var(--plot-d);min-height:36px;}
.nb-top .sp{flex:1;}
.nb-top .cur{font-size:13.5px;color:var(--ink-soft);font-weight:700;}

.nb-bottom{position:fixed;left:0;right:0;bottom:0;z-index:30;
  background:rgba(255,253,248,.94);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:9px 14px calc(9px + env(safe-area-inset-bottom));}
.nb-inner{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;gap:8px;}
.nb-arrow{display:flex;align-items:center;justify-content:center;min-width:var(--tap);
  height:var(--tap);padding:0 12px;border-radius:12px;background:#f3efe7;
  font-size:14px;font-weight:700;color:var(--ink-soft);white-space:nowrap;}
.nb-arrow.live{background:var(--plot);color:var(--plot-d);}
.nb-arrow.off{opacity:.35;}
.nb-seg{flex:1;display:flex;background:#f3efe7;border-radius:12px;padding:3px;gap:3px;}
.nb-seg a{flex:1;display:flex;align-items:center;justify-content:center;height:38px;
  border-radius:10px;font-size:14.5px;font-weight:700;color:var(--ink-soft);}
.nb-seg a.on{background:#fff;color:var(--plot-d);box-shadow:0 1px 4px rgba(0,0,0,.07);}
.nb-seg a.locked{opacity:.4;}

/* ---------- 目录页 ---------- */
.shelf{display:flex;flex-direction:column;gap:14px;margin-top:18px;}
.bookcard{display:block;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.bookcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--plot-d);}
.bookcard.finished::before{background:var(--done-d);}
.bookcard .bt2{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:21px;color:var(--ink);}
.bookcard .bmeta{font-size:14px;color:var(--ink-soft);margin-top:4px;}
.bookcard .bbar{height:9px;border-radius:6px;background:#efe9e0;margin-top:12px;overflow:hidden;}
.bookcard .bbar i{display:block;height:100%;background:var(--done-d);border-radius:6px;}

.chaplist{display:flex;flex-direction:column;gap:11px;margin-top:18px;}
.chapitem{display:flex;align-items:center;gap:14px;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--shadow);}
.chapitem .no{flex:none;width:42px;height:42px;border-radius:13px;background:var(--plot);
  color:var(--plot-d);display:flex;align-items:center;justify-content:center;
  font-family:"ZCOOL KuaiLe";font-size:20px;}
.chapitem.read .no{background:var(--done);color:var(--done-d);}
.chapitem .ci{flex:1;min-width:0;}
.chapitem .cn2{font-size:16.5px;font-weight:700;}
.chapitem .ce{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:13.5px;
  color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chapitem .go{display:flex;gap:7px;flex:none;}
.chapitem .go a{display:flex;align-items:center;justify-content:center;height:38px;padding:0 12px;
  border-radius:10px;font-size:13.5px;font-weight:700;}
.chapitem .go .g1{background:var(--method);color:var(--method-d);}
.chapitem .go .g2{background:var(--plot);color:var(--plot-d);}
.chapitem .go .g2.locked{background:#f0ece5;color:#b5aec0;}

.stats{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}
.stat{flex:1;min-width:96px;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r-md);padding:14px 12px;text-align:center;box-shadow:var(--shadow);}
.stat .n{font-family:"ZCOOL KuaiLe";font-size:27px;line-height:1.1;color:var(--plot-d);}
.stat .l{font-size:13px;color:var(--ink-soft);margin-top:3px;}

/* ---------- 页脚 ---------- */
.foot{text-align:center;margin:24px 0 8px;font-size:13.5px;color:var(--ink-soft);}
.foot .brand{color:var(--plot-d);font-size:16px;}
.foot .motto{margin-top:5px;color:var(--word-d);}

/* ---------- 平板 / 手机 ---------- */
@media (max-width:600px){
  body{padding:12px 12px 92px;font-size:16px;}
  .head h1{font-size:24px;} .head .chap{font-size:18px;}
  .sentbox{font-size:16px;} .bigword .w{font-size:26px;} .dt{font-size:19px;}
  .chapitem{flex-wrap:wrap;} .chapitem .go{width:100%;}
  .chapitem .go a{flex:1;}
}
@media (min-width:1024px){ body{font-size:17.5px;} }

/* ---------- 打印（仍可导出 PDF） ---------- */
@media print{
  body{background:#fff;padding:0;font-size:14.5px;}
  .nb-top,.nb-bottom,.toggle{display:none !important;}
  .step,.head,.clear,.discover,.openq,.echo,.read2,.fam,.bookcard,.chapitem{
    box-shadow:none;break-inside:avoid;}
  .wrap{max-width:100%;}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  @page{size:A4;margin:12mm;}
}

/* ==========================================================
   兼容别名：让早期卡片的类名直接沿用公共样式
   ========================================================== */
.book{font-size:13.5px;letter-spacing:.5px;font-weight:700;color:var(--method-d);margin-bottom:6px;}
.relax{background:var(--done);color:#2f6b52;border-radius:16px;padding:14px 17px;margin-top:14px;
  font-size:16.5px;font-weight:700;line-height:1.75;}
.relax .em{color:var(--done-d);}
.phone,.scenes,.switch{background:#fff4c6;border:2px solid var(--focus-d);color:#7a5f14;
  border-radius:16px;padding:14px 17px;margin-top:12px;font-size:15.5px;text-align:left;line-height:1.8;}
.phone b,.scenes b,.switch b{color:var(--focus-d);}
.scenes .t,.switch .t{display:block;font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;
  font-size:19px;color:var(--focus-d);margin-bottom:6px;}
.scenelist{margin:8px 0 0;list-style:none;}
.scenelist li{padding:5px 0 5px 26px;position:relative;font-size:15px;}
.scenelist li::before{content:"›";position:absolute;left:8px;color:var(--focus-d);font-weight:700;font-size:18px;}
.dots{display:flex;justify-content:center;gap:10px;margin-top:14px;}
.dot{width:14px;height:14px;border-radius:50%;background:var(--line);}
.say{font-size:16.5px;margin-bottom:12px;}
.when{font-size:14px;font-weight:700;color:var(--ink-soft);margin-top:2px;}
.big-word{background:var(--focus);border-radius:16px;padding:16px 18px;text-align:center;
  margin:8px 0 14px;box-shadow:0 4px 0 #e6bf2e;}
.big-word .w{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:32px;color:#5a4600;
  line-height:1.15;display:block;}
.big-word .cn{display:block;font-size:16px;font-weight:700;color:#8a6a10;margin-top:4px;}
.oldfriend,.lastnote,.whybox{background:var(--word);border-radius:12px;padding:12px 15px;
  font-size:15.5px;color:#8f4459;margin-bottom:12px;line-height:1.8;}
.oldfriend b,.lastnote b,.whybox b{color:var(--word-d);}
.keep{background:var(--done);border:2px solid var(--done-d);border-radius:12px;padding:12px 15px;
  font-size:15.5px;color:#2f6b52;margin-bottom:12px;line-height:1.8;}
.keep b{color:var(--done-d);}
.guess{background:#fff;border:2.5px dashed var(--focus-d);border-radius:14px;padding:13px 16px;
  margin-bottom:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  font-size:16px;font-weight:700;color:var(--focus-d);}
.guessbox{width:76px;height:var(--tap);border:2.5px solid var(--focus-d);border-radius:10px;
  flex:none;background:#fffdf5;}
.tbox.last{border-color:var(--word-d);border-width:3.5px;background:#fff6f8;}
.tbox.last.on{background:var(--word);}
.mathline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:19px;font-weight:700;
  color:#8f4459;margin:10px 0 4px;font-family:"Baloo 2",sans-serif;}
.mathbox{width:100px;height:var(--tap);border:2.5px solid var(--word-d);border-radius:10px;
  background:#fff;flex:none;}
.writeline-g,.writeline-p{display:block;min-height:38px;margin-top:12px;border-bottom:2.5px dashed;}
.writeline-g{border-color:#a9dcc4;} .writeline-p{border-color:#cdbfe6;}
.qbox.why{background:var(--plot);color:#5f4d86;}
.qbox.guessq{background:var(--word);color:#8f4459;}
.done{display:flex;align-items:center;gap:12px;margin-top:16px;background:#f7f4ee;
  border-radius:13px;padding:12px 16px;cursor:pointer;}
.mid-hi2{background:#ffe9b8;border-radius:7px;padding:1px 8px;color:#8a6a10;font-weight:700;}


/* ==========================================================
   那扇窗 · 本书大门
   ========================================================== */
.winwrap{margin:18px 0 0;background:var(--paper);border:1px solid var(--line);
  border-radius:22px;padding:20px 18px 16px;box-shadow:var(--shadow-lg);}
.winwrap svg{display:block;width:100%;height:auto;max-width:600px;margin:0 auto;}
.pane{cursor:pointer;}
.pane .glass{transition:fill .35s;}
.pane:hover .glass,.pane:focus .glass{fill:#ffe9a8;}
.pane.dark{cursor:default;}
.pane.dark:hover .glass{fill:#5d6b74;}
.winlegend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
  margin-top:14px;font-size:13.5px;color:var(--ink-soft);}
.winlegend i{display:inline-block;width:13px;height:13px;border-radius:3px;
  margin-right:5px;vertical-align:-2px;}
.wincap{text-align:center;font-size:15px;color:var(--ink-soft);margin-top:10px;line-height:1.7;}
.wincap b{color:var(--plot-d);}

/* ==========================================================
   故事优先版式：大图主视觉 + 一章一格
   ========================================================== */
body.story{padding:0 0 96px;background:#f7f2ea;}
.story .wrap{max-width:920px;padding:0 16px;}

/* 主视觉 */
.hero{position:relative;margin:0 -16px;overflow:hidden;background:#141b24;}
.hero svg{display:block;width:100%;height:auto;}
.hero-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 22px 30px;
  background:linear-gradient(to top,rgba(12,17,23,.92) 25%,rgba(12,17,23,0));
  text-align:center;color:#fff;}
.hero-cap .t1{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:34px;
  line-height:1.15;letter-spacing:.3px;text-shadow:0 2px 18px rgba(0,0,0,.6);}
.hero-cap .t2{font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;font-size:19px;
  color:#ffd06b;margin-top:5px;}
.hero-cap .t3{font-size:14.5px;color:#c9d3dc;margin-top:9px;line-height:1.7;}
@media (max-width:520px){ .hero-cap .t1{font-size:25px;} .hero-cap .t2{font-size:16px;} }

/* 开场白 */
.prologue{background:var(--paper);border-radius:0 0 24px 24px;margin:0 -16px 4px;
  padding:26px 24px 28px;text-align:center;box-shadow:var(--shadow);}
.prologue .big2{font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;font-size:23px;
  line-height:1.55;color:var(--ink);}
.prologue .sm2{font-size:16px;color:var(--ink-soft);margin-top:12px;line-height:1.85;}
.prologue .sm2 b{color:var(--plot-d);}

/* 章节格 */
.sectitle{display:flex;align-items:center;gap:12px;margin:30px 0 14px;}
.sectitle .line{flex:1;height:2px;background:var(--line);}
.sectitle .lbl{font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;font-size:20px;color:var(--ink-soft);}

.panel{display:block;background:var(--paper);border:1px solid var(--line);
  border-radius:22px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:16px;
  transition:transform .18s,box-shadow .18s;}
.panel:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(120,105,140,.16);}
.panel .scene{display:block;width:100%;height:auto;}
.panel .pbody{padding:18px 20px 20px;}
.panel .pno{display:inline-block;font-family:"Baloo 2",sans-serif;font-weight:700;
  font-size:12.5px;letter-spacing:1.2px;color:#fff;border-radius:20px;padding:3px 12px;}
.panel .ptitle{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:21px;
  margin-top:9px;line-height:1.3;}
.panel .pcn{font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;font-size:17px;
  color:var(--ink-soft);margin-top:2px;}
.panel .phook{font-size:16.5px;line-height:1.8;margin-top:11px;}
.panel .phook b{color:var(--plot-d);}
.panel .pgo{display:inline-flex;align-items:center;gap:6px;margin-top:13px;
  font-size:15px;font-weight:700;color:var(--plot-d);}

.panel.locked2{opacity:.62;}
.panel.locked2 .pbody{text-align:center;}
.panel.locked2 .ptitle{color:var(--ink-soft);}

/* 底部：单词区（收起） */
.vocabbox{background:var(--paper);border:1px solid var(--line);border-radius:20px;
  box-shadow:var(--shadow);margin-top:26px;overflow:hidden;}
.vocabbox summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;
  align-items:center;gap:12px;}
.vocabbox summary::-webkit-details-marker{display:none;}
.vocabbox summary .vi{width:42px;height:42px;border-radius:13px;background:var(--word);
  color:var(--word-d);display:flex;align-items:center;justify-content:center;
  font-family:"ZCOOL KuaiLe";font-size:19px;flex:none;}
.vocabbox summary .vt{flex:1;}
.vocabbox summary .vt b{font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;
  font-size:18px;font-weight:400;}
.vocabbox summary .vt span{display:block;font-size:13.5px;color:var(--ink-soft);margin-top:2px;}
.vocabbox summary .vc{color:var(--ink-soft);font-size:20px;}
.vocabbox[open] summary .vc{transform:rotate(180deg);}
.vocabbox .vinner{padding:0 20px 20px;}


/* 章节页主视觉 */
.story .hero{border-radius:0;margin-bottom:0;}
.story .hero svg{width:100%;height:auto;}
.story .hero .scene{min-height:180px;}
.story .prologue{margin-top:0;text-align:center;}

/* ---------- 书架封面 ---------- */
.cover{display:block;background:var(--paper);border:1px solid var(--line);
  border-radius:22px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:16px;
  transition:transform .18s,box-shadow .18s;}
.cover:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(120,105,140,.18);}
.cover svg{display:block;width:100%;height:auto;}
.cover .cbody{padding:18px 20px 20px;}
.cover .ctag{display:inline-block;font-family:"Baloo 2",sans-serif;font-weight:700;
  font-size:12px;letter-spacing:1.2px;color:#fff;border-radius:20px;padding:3px 12px;}
.cover .ct{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:23px;margin-top:10px;line-height:1.25;}
.cover .ccn{font-family:"ZCOOL KuaiLe","Baloo 2",sans-serif;font-size:17px;color:var(--ink-soft);margin-top:2px;}
.cover .cline{font-size:16px;line-height:1.8;margin-top:11px;}
.cover .cline b{color:var(--plot-d);}
.cover .cgo{display:inline-flex;gap:6px;margin-top:13px;font-size:15px;font-weight:700;color:var(--plot-d);}
