/* 卷 · 共享文房样式(三色纸墨朱)。本地服务,非 claude.ai 故可外链。 */
/* 全站同书:HuiwenSub(汇文明朝+思源宋补字面)自带,不再看设备脸色 */
@import url("../web/fonts/fonts.css?v=24");
:root{--paper:#f5f0e8;--card:#faf6ec;--ink:#2b2723;--ink-soft:#6b6358;--ink-faint:#a89f91;
  --zhu:#8a2a1c;--zhu-soft:rgba(138,42,28,.5);--line:rgba(43,39,35,.12);--line-strong:rgba(43,39,35,.22);
  --serif:"HuiwenSub","Songti SC","STSong","SimSun","NSimSun","Noto Serif CJK SC","Source Han Serif SC","AR PL UMing CN",serif}
@media (prefers-color-scheme:dark){:root{--paper:#15130f;--card:#1e1a15;--ink:#e9e0cf;--ink-soft:#b0a692;
  --ink-faint:#7a7060;--zhu:#d0563f;--zhu-soft:rgba(208,86,63,.5);--line:rgba(233,224,207,.13);--line-strong:rgba(233,224,207,.24)}}
:root[data-theme="dark"]{--paper:#15130f;--card:#1e1a15;--ink:#e9e0cf;--ink-soft:#b0a692;--ink-faint:#7a7060;
  --zhu:#d0563f;--zhu-soft:rgba(208,86,63,.5);--line:rgba(233,224,207,.13);--line-strong:rgba(233,224,207,.24)}
:root[data-theme="light"]{--paper:#f5f0e8;--card:#faf6ec;--ink:#2b2723;--ink-soft:#6b6358;--ink-faint:#a89f91;
  --zhu:#8a2a1c;--zhu-soft:rgba(138,42,28,.5);--line:rgba(43,39,35,.12);--line-strong:rgba(43,39,35,.22)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);line-height:1.85;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  /* 纸上不许弹系统菜单:手指在诗上按久一点,安卓会浮出「复制/分享/全选/朗读」,
     还把选中的字染成青绿高亮——一个现代组件盖在刻本上,三色全破。炼字早已如此设防 */
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.wrap{max-width:33rem;margin:0 auto;padding:2.4rem 1.4rem 5rem}
.eyebrow{font-size:.72rem;letter-spacing:.42em;color:var(--ink-faint);text-transform:uppercase;margin:0 0 .9rem;padding-left:.42em}
h1{font-size:2.15rem;margin:.1rem 0 .5rem;letter-spacing:.14em;font-weight:600;text-wrap:balance}
.lede{color:var(--ink-soft);font-size:1.02rem;margin:0 0 .3rem;text-wrap:balance}
.hint{color:var(--ink-faint);font-size:.86rem;margin:.2rem 0 0}
.rule{height:1px;background:var(--line);margin:2.4rem 0}
.rule.zhu{background:var(--zhu-soft);opacity:.5}
.intro{border:1px solid var(--line-strong);border-left:3px solid var(--zhu);background:var(--card);border-radius:2px;
  padding:1.1rem 1.2rem;margin:1.5rem 0 .4rem;font-size:.95rem;line-height:1.9;color:var(--ink-soft)}
.intro .lbl{font-size:.7rem;letter-spacing:.36em;color:var(--zhu);text-transform:uppercase;display:block;margin-bottom:.5rem}
.intro b{color:var(--ink)}
.verdict{border:1px solid var(--line-strong);background:var(--card);border-radius:2px;padding:1.15rem 1.25rem;
  margin:1.4rem 0 .2rem;font-size:1.04rem;line-height:2.25}
.verdict .lbl{font-size:.7rem;letter-spacing:.4em;color:var(--ink-faint);display:block;margin-bottom:.55rem;text-transform:uppercase}
.slot{color:var(--zhu);border-bottom:1.5px dashed var(--zhu-soft);padding:0 .5em;transition:all .5s}
.slot.filled{border-bottom-color:transparent;font-weight:600}
.zhe{font-size:.7rem;letter-spacing:.4em;color:var(--zhu);text-transform:uppercase;margin:2.6rem 0 -.4rem;padding-left:.42em}
.jian{border:1px solid var(--line);background:var(--card);border-radius:2px;padding:1.5rem 1.35rem 1.35rem;margin:1.5rem 0}
.jian .no{font-size:.7rem;letter-spacing:.4em;color:var(--zhu);text-transform:uppercase;margin-bottom:1.1rem}
.jian .no b{color:var(--ink-soft);font-weight:400}
.poem{writing-mode:vertical-rl;text-orientation:upright;font-size:1.44rem;line-height:2.35;letter-spacing:.12em;
  max-height:13em;width:fit-content;max-width:100%;overflow-x:auto;margin:0 auto 1.5rem;padding:.5rem .2rem}
.poem .col{display:block;white-space:nowrap}
.poem .eye{color:var(--zhu);border:1px solid var(--zhu-soft);border-radius:2px;padding:0 .04em}
.poem .eye.filled{border-color:transparent;font-weight:600}
.poem .src{font-size:.9rem;color:var(--ink-faint);letter-spacing:.1em}
.q{margin:1.4rem 0 0}
.q .ask{font-size:.98rem;color:var(--ink);margin-bottom:.7rem;display:flex;align-items:baseline;gap:.5em;flex-wrap:wrap}
.q .ask .mk{color:var(--zhu);font-size:1.1rem;opacity:0;transition:opacity .5s;flex:none}
.q.done .ask .mk{opacity:1}
.badge{font-size:.66rem;letter-spacing:.2em;color:var(--paper);background:var(--zhu);border-radius:2px;padding:.12rem .5rem;flex:none;align-self:center}
.tiles{display:flex;flex-wrap:wrap;gap:.5rem}
.tile{font-family:var(--serif);font-size:1.02rem;color:var(--ink);background:transparent;border:1px solid var(--line-strong);
  border-radius:2px;padding:.42rem .85rem;cursor:pointer;transition:transform .12s,border-color .3s,color .3s,background .3s;letter-spacing:.05em}
.tile:hover{border-color:var(--ink-soft)}
.tile:active{transform:scale(.93)}
.tile:focus-visible{outline:2px solid var(--zhu);outline-offset:2px}
.tile.lock{color:var(--paper);background:var(--zhu);border-color:var(--zhu)}
.tile.near{color:var(--zhu);border-color:var(--zhu);border-style:dashed}
.tile.dim{opacity:.34}
.tile[disabled]{cursor:default}
.pi{margin:.85rem 0 0;padding:.15rem 0 .15rem .95rem;border-left:2px solid var(--zhu-soft);color:var(--zhu);
  font-size:.94rem;line-height:1.8;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .5s ease,padding .5s}
.pi.show{max-height:26em;opacity:1}
.pi .tag{font-size:.72rem;letter-spacing:.24em;color:var(--ink-faint);display:block;margin-bottom:.25rem}
.pi .tag.recall{color:var(--zhu);font-weight:600}
.anjie{margin:1.1rem 0 0;max-height:0;overflow:hidden;opacity:0;transition:max-height .7s ease,opacity .7s ease}
.anjie.show{max-height:44em;opacity:1}
.anjie .box{border:1px solid var(--zhu-soft);border-radius:2px;padding:1.05rem 1.15rem}
.anjie .t{font-size:.7rem;letter-spacing:.34em;color:var(--zhu);text-transform:uppercase;display:block;margin-bottom:.6rem}
.anjie p{margin:0;font-size:.96rem;line-height:1.95;color:var(--ink)}
.anjie b{color:var(--zhu)}
.act{display:flex;justify-content:center;margin:2rem 0}
.seal{font-family:var(--serif);font-size:1.05rem;letter-spacing:.35em;color:var(--ink-faint);background:transparent;
  border:1px solid var(--line-strong);border-radius:2px;padding:.8rem 2.2rem;padding-left:calc(2.2rem + .35em);cursor:not-allowed;transition:all .4s}
.seal.ready{color:var(--zhu);border-color:var(--zhu);cursor:pointer}
.seal.ready:hover{background:var(--zhu);color:var(--paper)}
.seal:focus-visible{outline:2px solid var(--zhu);outline-offset:2px}
.reveal{display:none}
.reveal.show{display:block;animation:rise .8s ease}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.locked-line{font-size:1.1rem;line-height:2.05;color:var(--ink);border-left:3px solid var(--zhu);padding:.5rem 0 .5rem 1rem;margin:.6rem 0 0}
.setup{margin:1.6rem 0 0;padding:1.05rem 1.15rem;border:1px dashed var(--line-strong);border-radius:2px;color:var(--ink-soft);font-size:.95rem;line-height:1.85}
.setup b{color:var(--zhu)}
.foot{margin-top:2.6rem;color:var(--ink-faint);font-size:.8rem;line-height:1.7;text-align:center}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 收卷页尾·盛唐群像(每卷收卷共用;活:按已读点亮) */
.faces{margin:2.6rem 0 0;border-top:1px solid var(--line);padding-top:1.4rem}
.faces .ft{font-size:.66rem;letter-spacing:.36em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:.9rem;text-align:center}
.faces .face{display:block;text-decoration:none;text-align:center;font-size:1rem;letter-spacing:.16em;
  color:var(--ink-faint);padding:.4rem 0;transition:color .3s}
.faces .face.lit{color:var(--ink-soft)}
.faces .face.cur{color:var(--zhu);font-weight:600}
.faces .face.cur::after{content:"· 此卷";font-size:.62em;letter-spacing:.1em;margin-left:.5em;color:var(--zhu-soft)}
.faces .fn{margin:1rem 0 0;text-align:center;color:var(--ink-faint);font-size:.78rem;letter-spacing:.06em}

/* 群像·断代小标(盛唐/中唐分组) */
.faces .era{font-size:.6rem;letter-spacing:.5em;color:var(--zhu-soft);text-align:center;
  margin:1.1rem 0 .3rem;padding-left:.5em}
.faces .era:first-of-type{margin-top:.2rem}
