
:root{--paper:#e9e2d2;--sheet:#f5f0e4;--ink:#1a1714;--ink2:#4e463c;--ink3:#8b8171;
 --frame:#3d352c;--rule:#c9bfa9;--cin:#a8332a;--celadon:#4f6b57;--ochre:#8a6b2f}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--paper);
 font:15px/1.95 -apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
a{color:inherit;text-decoration:none}
.song{font-family:"Songti SC","STSong","SimSun",serif}

.top{max-width:1180px;margin:0 auto;padding:22px 30px 0;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:12px;flex:none;cursor:pointer}
.wm{font-family:"Songti SC","STSong",serif;font-size:23px;letter-spacing:.22em;
 color:var(--ink);font-weight:600}
.menu{display:flex;flex-wrap:wrap;align-items:center;flex:1}
/* 账号入口靠页头最右端，与主导航拉开——直接接在最后一项后面会贴住，
   通例是右上角单独一块 */
/* 右上角账号入口。落款的规矩是先写款、后钤印，所以印在名字右边；
   整块右对齐，印在右就钉在固定位置上，名字长短不影响它。
   这里**不能**用 flex：印要靠 vertical-align 落到字的基线上，
   而 flex 项目按行盒对齐，align-items 的 center/flex-end/baseline
   三种都会让印比基线低 6~8px（实测）。 */
#acct{margin-left:auto;padding-left:26px;white-space:nowrap}
#acct a{padding:6px 0;border-left:0;font-size:14px;letter-spacing:.16em}
/* 拉丁名字不跟中文一个字距，否则 stoneface10 会被撑成 s t o n e f a c e 1 0 */
#acct a.lat{letter-spacing:.04em}
.menu a{font-family:"Songti SC",serif;font-size:15.5px;letter-spacing:.24em;color:var(--ink2);
 padding:8px 20px;border-left:1px solid var(--rule);position:relative}
.menu a:first-child{border-left:0;padding-left:0}
.menu a.on{color:var(--cin)}
.menu a.on::after{content:"";position:absolute;left:20px;right:calc(20px + .24em);bottom:0;height:2px;background:var(--cin)}
.menu a:first-child.on::after{left:0}

.stage{max-width:1180px;margin:22px auto 0;padding:0 30px}
.screen{display:block}
.sheet{padding:0 58px}

/* ══ 皮肤一：雕版印痕（内页）——默认中档；body.light 时切轻（默认反转防丢 class） ══ */
.skin-wc{position:relative}
.skin-wc>svg.bd{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.skin-wc>.in{position:relative;background:var(--sheet);margin:14px;z-index:1}
.skin-wc>.yin,.skin-rb>.yin{position:absolute;right:30px;bottom:22px;z-index:4;opacity:.85;transform:rotate(-6deg)}
.skin-rb>.yin{opacity:.9}
.g-light{display:none}
.g-mid{display:block}
body.light .g-light{display:block}
body.light .g-mid{display:none}

/* ══ 皮肤二：毛边纸（首页） ══ */
.skin-dk{filter:drop-shadow(0 4px 16px rgba(60,50,35,.20))}
.skin-dk>.in{background:var(--sheet);position:relative;
 background-image:repeating-linear-gradient(0deg,rgba(120,100,70,.028) 0 1px,transparent 1px 3px),
  repeating-linear-gradient(90deg,rgba(120,100,70,.02) 0 1px,transparent 1px 4px);
 clip-path:polygon(
  0.30% 0.4%,6% 0.12%,13% 0.5%,21% 0.08%,29% 0.45%,37% 0.1%,45% 0.42%,53% 0.06%,
  61% 0.38%,69% 0.08%,77% 0.42%,85% 0.12%,93% 0.46%,99.72% 0.32%,
  99.52% 7%,99.86% 16%,99.56% 25%,99.9% 34%,99.6% 43%,99.86% 52%,99.5% 61%,
  99.9% 70%,99.6% 79%,99.85% 88%,99.72% 99.68%,
  93% 99.5%,85% 99.88%,77% 99.52%,69% 99.9%,61% 99.56%,53% 99.94%,45% 99.55%,
  37% 99.9%,29% 99.5%,21% 99.92%,13% 99.48%,6% 99.88%,0.26% 99.66%,
  0.44% 88%,0.1% 79%,0.4% 70%,0.08% 61%,0.42% 52%,0.1% 43%,0.44% 34%,0.1% 25%,0.46% 16%,0.14% 7%)}

/* ══ 皮肤三：拓片（专题） ══ */
.skin-rb{background:#221d19;position:relative;overflow:hidden}
.skin-rb::before{content:"";position:absolute;inset:0;z-index:0;opacity:.75;
 background-image:
  radial-gradient(ellipse 3px 2px at 17% 23%,rgba(230,220,200,.10),transparent),
  radial-gradient(ellipse 2px 3px at 62% 41%,rgba(230,220,200,.08),transparent),
  radial-gradient(ellipse 4px 2px at 38% 71%,rgba(230,220,200,.07),transparent),
  radial-gradient(ellipse 2px 2px at 84% 62%,rgba(230,220,200,.09),transparent),
  radial-gradient(ellipse 3px 3px at 11% 84%,rgba(230,220,200,.06),transparent),
  radial-gradient(ellipse 2px 4px at 73% 12%,rgba(230,220,200,.08),transparent);
 background-size:53px 61px,71px 67px,47px 59px,83px 73px,61px 79px,67px 53px}
.skin-rb::after{content:"";position:absolute;inset:0;z-index:0;
 background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.035),transparent 55%),
  radial-gradient(ellipse at 75% 80%,rgba(0,0,0,.28),transparent 60%)}
.skin-rb>.in{position:relative;z-index:1}
.skin-rb>.bd2{position:absolute;inset:16px;border:1px solid rgba(230,220,200,.16);z-index:1;pointer-events:none}
.skin-rb h3.sec{color:#ece4d4;border-left-color:#a8332a}
.skin-rb .crumb{color:#8b8171}
.skin-rb .crumb:hover{color:#d4867a}
.skin-rb .fact .c{color:#c8bda9}
.skin-rb .fact{border-bottom-color:#3a322b}
.skin-rb .fact .s{color:#9a9080}
.skin-rb .qian2.qf{color:#8fae98;border-color:rgba(143,174,152,.4)}
.skin-rb .qian2.ql{color:#c9a45f;border-color:rgba(201,164,95,.4)}
.skin-rb .qian2.qd{color:#d4867a;border-color:rgba(212,134,122,.4)}
.skin-rb .tiba{border-top-color:#a8332a}
.skin-rb .tiba h4{color:#ece4d4}
.skin-rb .tiba p{color:#b5aa96}
.skin-rb .btn{color:#d99a8e;border-color:#8a2f26}
.skin-rb .btn.s{background:#8a2f26;color:#f0e6d8}

/* 内容通用 */
.hero{padding:60px 0 48px;border-bottom:1px solid var(--rule);text-align:center}
.hero h1{font-family:"Songti SC","STSong","STZhongsong","SimSun",serif;font-weight:700;
 font-size:clamp(27px,5.4vw,50px);letter-spacing:.06em;text-indent:.06em;
 margin:0 0 22px;line-height:1.5}
.hero .sub{font-family:"Songti SC","STSong",serif;color:var(--ink3);font-size:14.5px;
 margin:0 0 42px;letter-spacing:.42em;text-indent:.42em}
.sbox{max-width:660px;margin:0 auto;display:flex;align-items:stretch;
 border:2px solid var(--frame);background:#fff;box-shadow:3px 3px 0 rgba(61,53,44,.10)}
/* 结果页的条件行：视觉降一档——它是工具，不是舞台 */
.sbox.sm{margin:0;max-width:none;border-width:1px;box-shadow:none}
.sbox.sm input{font-size:15px;padding:11px 14px}
.sbox.sm .f1{flex:0 0 22%}
.sbox.sm button{font-size:15px;letter-spacing:.28em;padding:0 24px 0 calc(24px + .28em)}
.cond{margin:13px 0 0;font-size:12.5px;color:var(--ink3);letter-spacing:.04em}
.cond span{margin-left:16px;color:var(--ink2);cursor:pointer;
 border-bottom:1px dashed var(--rule);padding-bottom:2px}
.cond span:hover{color:var(--cin);border-bottom-color:rgba(168,51,42,.5)}
/* 查找家谱的两个状态：从导航进＝空态，搜过之后＝结果态 */
#s-search .res-only{display:none}
#s-search.res .res-only{display:block}
#s-search.res .empty-only{display:none}
.quiet{font-size:13px;color:var(--ink3);margin:16px 0 0;padding-bottom:16px;
 border-bottom:1px solid var(--rule);letter-spacing:.03em}
.brow{display:grid;grid-template-columns:repeat(12,1fr);
 border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.brow.r6{grid-template-columns:repeat(6,1fr)}
.brow span{font-family:"Songti SC",serif;font-size:15.5px;padding:11px 2px;text-align:center;
 cursor:pointer;letter-spacing:.04em;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.brow span:hover{color:var(--cin);background:rgba(168,51,42,.045)}

/* ── 专题页构件（沿用全站 token，深底由 .skin-rb 覆写）── */
.body>p,.body>ul,.body>ol{max-width:700px}
/* 居中的那几类要连块一起居中，不然文字在左对齐的 700px 块里居中，看着偏左 */
.body>p[class*="mnote"],.body>p.oneline{margin-left:auto;margin-right:auto}
.lede{max-width:700px;font-size:15.5px;line-height:2.2;color:var(--ink2);margin:0 0 24px}
.kj{max-width:700px;font-size:13px;line-height:2.05;color:var(--ink3);
 border-top:1px solid var(--rule);padding-top:14px;margin:0}
.kj b{color:var(--ink2);font-weight:400}
.mp{width:100%;height:auto;display:block;margin:0 -8px}
.mleg{display:flex;gap:28px;justify-content:center;font-size:12.5px;color:var(--ink3);
 margin:6px 0 0;flex-wrap:wrap}
.mleg i{display:inline-block;width:22px;height:2px;vertical-align:3px;margin-right:8px}
.mnote{text-align:center;font-size:12px;color:var(--ink3);margin:14px 0 0;line-height:1.95}
.mnote.l{text-align:left;margin-top:18px;font-size:12.5px;line-height:2}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--rule)}
.tbl th{font-family:"Songti SC",serif;font-size:12.5px;letter-spacing:.14em;
 color:var(--ink3);font-weight:400}
.tbl td.n{font-family:"Songti SC",serif;font-size:19px;color:var(--ink);text-align:right;width:76px}
.tbl td.src{color:var(--ink3);font-size:12.5px;line-height:1.9}
.tbl tr.me td,.tbl tr.me td.n{color:var(--cin)}
.grid{display:grid;grid-template-columns:repeat(14,1fr);
 border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.grid span{font-family:"Songti SC",serif;font-size:15px;padding:10px 2px;text-align:center;
 border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--ink2)}
.grid span.hot{color:var(--ink)}
.grid span em{display:block;font-style:normal;font-size:10px;color:var(--ink3);
 font-family:ui-monospace,monospace;line-height:1.3;margin-top:1px}
.pth{display:flex;align-items:center;padding:11px 0;border-bottom:1px solid var(--rule);
 font-size:14px;gap:13px}
.pth:last-child{border-bottom:0}
.pth .a{color:var(--ink3);flex:none;width:60px;font-family:"Songti SC",serif}
.pth .ar{color:var(--rule);flex:none}
.pth .b{color:var(--ink);flex:1;font-family:"Songti SC",serif;font-size:15px}
.pth .c{flex:none;font-family:"Songti SC",serif;font-size:16px;color:var(--cin)}
.pth.i .c{color:var(--celadon)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 44px}
.cty{padding:15px 0;border-bottom:1px solid var(--rule)}
.cty:last-child{border-bottom:0}
.cty .h{font-family:"Songti SC",serif;font-size:15.5px;color:var(--ink);margin-bottom:6px}
.cty .h em{font-style:normal;font-size:12px;color:var(--ink3);margin-left:12px;font-family:inherit}
.cty .s{font-size:13px;color:var(--ink3);line-height:2;letter-spacing:.06em}
.evt{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
 border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.evt div{padding:15px 17px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.evt dt{font-size:11.5px;color:var(--ink3);letter-spacing:.14em;
 font-family:"Songti SC",serif;margin-bottom:5px}
.evt dd{margin:0;font-family:"Songti SC",serif;font-size:15px;color:var(--ink);line-height:1.7}
/* 窄屏并成一列：auto-fit 的 148px 下限在 390px 屏上会硬挤出两列，
   《英村罗氏族谱》这类八字书名要 120px、格子只给 114px，末字被裁掉。 */
@media(max-width:480px){.evt{grid-template-columns:1fr}}
.ctr{padding:24px 28px;border-left:3px solid var(--celadon);background:rgba(79,107,87,.06)}
.ctr h4{font-family:"Songti SC",serif;font-size:16px;letter-spacing:.12em;margin:0 0 10px;color:var(--ink)}
.ctr p{margin:0;font-size:14px;line-height:2.1;color:var(--ink2)}
.ctr b{color:var(--celadon)}
/* 拓片深底覆写 */
.skin-rb .lede,.skin-rb .ctr p{color:#c8bda9}
.skin-rb .kj{border-top-color:#3a322b;color:#8b8171}
.skin-rb .kj b{color:#c8bda9}
.skin-rb .mnote{color:#8b8171}
.skin-rb .tbl th,.skin-rb .tbl td{border-bottom-color:#3a322b}
.skin-rb .tbl th,.skin-rb .tbl td.src{color:#8b8171}
.skin-rb .tbl td{color:#c8bda9}
.skin-rb .tbl td.n{color:#ece4d4}
.skin-rb .tbl tr.me td,.skin-rb .tbl tr.me td.n{color:#d4867a}
.skin-rb .grid{border-top-color:#3a322b;border-left-color:#3a322b}
.skin-rb .grid span{border-right-color:#3a322b;border-bottom-color:#3a322b;color:#a89d8c}
.skin-rb .grid span.hot{color:#ece4d4}
.skin-rb .grid span em{color:#8b8171}
.skin-rb .pth{border-bottom-color:#3a322b}
.skin-rb .pth .a{color:#8b8171}.skin-rb .pth .ar{color:#3a322b}
.skin-rb .pth .b{color:#ece4d4}
.skin-rb .pth .c{color:#d4867a}.skin-rb .pth.i .c{color:#8fae98}
.skin-rb .cty{border-bottom-color:#3a322b}
.skin-rb .cty .h{color:#ece4d4}.skin-rb .cty .h em,.skin-rb .cty .s{color:#8b8171}
.skin-rb .evt{border-top-color:#3a322b;border-left-color:#3a322b}
.skin-rb .evt div{border-right-color:#3a322b;border-bottom-color:#3a322b}
.skin-rb .evt dt{color:#8b8171}.skin-rb .evt dd{color:#ece4d4}
.skin-rb .ctr{background:rgba(0,0,0,.22);border-left-color:#4f6b57}
.skin-rb .ctr h4{color:#ece4d4}.skin-rb .ctr b{color:#8fae98}
.skin-rb .item .t{color:#ece4d4}
.skin-rb .item .m,.skin-rb .item .p{color:#8b8171}
.skin-rb .item{border-bottom-color:#3a322b}
.skin-rb .q{border-left-color:#3a322b;color:#a89d8c}
.skin-rb h3.sec span{color:#8b8171}
.sbox input{border:0;outline:0;background:transparent;font:16.5px/1.6 inherit;
 padding:17px 18px;color:var(--ink);min-width:0}
.sbox .f1{flex:0 0 32%;border-right:1px solid var(--rule);text-align:center;
 letter-spacing:.1em;text-indent:.1em}
.sbox .f2{flex:1}
.sbox input::placeholder{color:#b3a894}
.sbox button{flex:none;background:var(--cin);color:var(--sheet);border:0;cursor:pointer;
 font-family:"Songti SC",serif;font-size:17px;letter-spacing:.32em;
 padding:0 32px 0 calc(32px + .32em)}
.eg{margin:20px 0 0;font-size:13px;color:var(--ink3)}
.eg span{cursor:pointer;color:var(--ink2);border-bottom:1px solid var(--rule);
 margin:0 0 0 16px;padding-bottom:2px}
.rline{font-size:13.5px;color:var(--ink2);margin:16px 0 0;padding-bottom:16px;
 border-bottom:1px solid var(--rule);letter-spacing:.03em}
.rline b{font-family:"Songti SC",serif;color:var(--cin);font-size:15px;padding:0 2px}
.crumb{font-size:12.5px;color:var(--ink3);margin:0 0 20px;cursor:pointer;letter-spacing:.04em}
.crumb:hover{color:var(--cin)}
.ent{cursor:pointer;border-bottom:1px dotted var(--rule)}
.nums{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--rule)}
.nums.n3{grid-template-columns:repeat(3,1fr)}
.n{padding:24px 6px;text-align:center;border-left:1px solid var(--rule)}
.n:first-child{border-left:0}
.n b,.fs b{display:block;font-family:"Songti SC",serif;font-size:clamp(18px,5.5vw,25px);line-height:1.4}
.n span{font-size:12.5px;color:var(--ink2);letter-spacing:.1em;text-indent:.1em}
.body{padding:40px 0 52px}
h3.sec{font-family:"Songti SC",serif;font-size:17px;letter-spacing:.22em;margin:0 0 24px;
 padding-left:15px;border-left:3px solid var(--cin);line-height:1.6}
/* 副题：此前只在拓片皮肤下定了颜色，毛边纸皮肤下与主题一模一样，
   652 个页面上都是「家谱解读一页老谱，读出四层」这样连成一句 */
h3.sec span{display:inline-block;margin-left:18px;padding-left:19px;position:relative;
 font-size:13px;letter-spacing:.1em;color:var(--ink3);font-weight:400}
h3.sec span::before{content:"";position:absolute;left:0;top:.72em;width:11px;height:1px;
 background:var(--rule)}
h3.sec.mt{margin-top:44px}
@media(max-width:640px){h3.sec span{display:block;margin:6px 0 0;padding-left:0}
 h3.sec span::before{display:none}}
/* 卷端题：文武边上下夹持，居中大字——线装书每卷开头的题法 */
.juanti{text-align:center;margin:0 0 30px}
.juanti .ln{height:3px;background:var(--frame);position:relative}
.juanti .ln::after{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--frame);opacity:.55}
.juanti .ln.b::after{top:-5px}
.juanti .z{font-family:"Songti SC",serif;font-size:19px;letter-spacing:.5em;text-indent:.5em;
 padding:17px 0 19px;color:var(--ink)}
/* 应用入口：一字门类 + 一句真话（数字不重复上面那排统计） */
.men{display:grid;grid-template-columns:repeat(3,1fr);
 border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.mc{padding:26px 26px 24px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
 cursor:pointer;display:flex;gap:20px;align-items:flex-start}
.mc:hover{background:rgba(168,51,42,.03)}
.mc:hover .nm{color:var(--cin)}
.mc .z{flex:none;width:52px;height:52px;line-height:50px;text-align:center;
 font-family:"Songti SC",serif;font-size:30px;color:var(--ink);
 border:1px solid var(--rule);background:rgba(201,191,169,.14)}
.mc .r{flex:1;min-width:0}
.mc .nm{font-family:"Songti SC",serif;font-size:16px;letter-spacing:.12em;margin-bottom:9px}
.mc .ju{font-family:"Songti SC",serif;font-size:15.5px;color:var(--ink);line-height:1.85;letter-spacing:.03em}
.mc .sr{font-size:11.5px;color:var(--ink3);line-height:1.8;margin-top:7px}
.item{padding:20px 0;border-bottom:1px solid var(--rule)}
.item:last-child,.item:has(+.tiba){border-bottom:0}
.item+.fact{margin-top:12px}
.item .t{font-family:"Songti SC",serif;font-size:16px;letter-spacing:.05em;margin-bottom:10px}
.item .p{font-size:14px;color:var(--ink2);margin-bottom:8px}
.item .p b{color:var(--ink)}.item .p em{font-style:normal;color:var(--ink3);padding:0 7px}
.item .lk{font-size:12.5px;color:var(--cin);cursor:pointer;
 border-bottom:1px solid rgba(168,51,42,.35);padding-bottom:1px}
.more{padding:18px 0 4px;font-size:13px;color:var(--ink2);cursor:pointer}
.more u{text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px}
.q{border-left:2px solid var(--rule);padding:4px 0 4px 16px;margin:10px 0 0;
 max-width:700px;font-size:14px;color:var(--ink2);line-height:2.1}
.mk{display:inline-block;font-size:10.5px;letter-spacing:.1em;text-indent:.1em;
 padding:1px 8px;margin-left:9px;border:1px solid;vertical-align:2px;
 font-family:"Songti SC",serif;color:var(--celadon);border-color:rgba(79,107,87,.4)}
.funnel{display:flex;align-items:center;margin:0 0 30px;flex-wrap:wrap}
.fs{flex:1;min-width:126px;text-align:center;padding:6px 4px}
.fs b{color:var(--ink3)}
.fs.last b{color:var(--cin)}
.fs span{font-size:12.5px;color:var(--ink2);letter-spacing:.08em;text-indent:.08em}
.arw{flex:none;color:var(--rule);font-size:12px;padding:0 6px}
.ai{border-left:2px solid var(--celadon);padding:4px 0 4px 22px;margin:0 0 30px}
.ai h4{font-family:"Songti SC",serif;font-size:13px;color:var(--celadon);
 letter-spacing:.26em;margin:0 0 14px;font-weight:600}
.ai p{margin:0 0 12px;font-size:14.5px;line-height:2;max-width:700px}
.cite{color:var(--cin);font-size:11.5px;cursor:pointer;border-bottom:1px solid rgba(168,51,42,.35);white-space:nowrap}
.fact{padding:18px 0;border-bottom:1px solid var(--rule);display:flex;gap:20px;align-items:flex-start}
.fact:last-of-type{border-bottom:0}
.qian2{flex:none;width:54px;text-align:center;font-family:"Songti SC",serif;font-size:12.5px;
 letter-spacing:.14em;text-indent:.14em;padding:5px 0;border:1px solid;line-height:1.5}
.qf{color:var(--celadon);border-color:rgba(79,107,87,.45)}
.ql{color:var(--ochre);border-color:rgba(138,107,47,.45)}
.qd{color:var(--cin);border-color:rgba(168,51,42,.4)}
.fact .c{flex:1;max-width:700px;font-size:15px;line-height:2.05}
.fact .s{font-size:11.5px;color:var(--ink3);margin-top:8px;line-height:1.9}
.svc{max-width:700px;font-size:15px;color:var(--ink2);line-height:2.05}
.tiba{border-top:1px solid var(--cin);margin:40px 0 0;padding:22px 0 0;position:relative}
.tiba::before{content:"";position:absolute;left:0;top:-1px;width:54px;height:3px;background:var(--cin)}
.tiba h4{font-family:"Songti SC",serif;font-size:16px;letter-spacing:.12em;margin:0 0 10px}
.tiba p{font-size:14.5px;color:var(--ink2);margin:0 0 18px;line-height:2;max-width:700px}
.btn{background:transparent;border:1px solid var(--cin);color:var(--cin);
 font-family:"Songti SC",serif;font-size:14px;letter-spacing:.18em;
 padding:9px 26px 9px calc(26px + .18em);cursor:pointer;margin-right:12px}
.btn.s{background:var(--cin);color:var(--sheet)}
.foot{max-width:1180px;margin:10px auto 0;padding:0 30px 44px;text-align:center;
 font-size:11.5px;color:var(--ink3);line-height:2.1}
.foot::before{content:"";display:block;width:54px;height:1px;background:var(--rule);margin:0 auto 24px}
.foot .nm{font-family:"Songti SC",serif;font-size:14px;letter-spacing:.14em;color:var(--ink2);margin:14px 0 10px}
/* 原文弹层（替代系统 alert） */
.pop{position:fixed;inset:0;background:rgba(26,23,20,.45);z-index:200;display:none;
 align-items:center;justify-content:center;padding:24px}
.pop.on{display:flex}
.pop .card{background:var(--sheet);max-width:560px;width:100%;padding:30px 34px 26px;
 border:1px solid var(--frame);box-shadow:6px 6px 0 rgba(61,53,44,.18);position:relative}
.pop h5{font-family:"Songti SC",serif;font-size:13px;letter-spacing:.26em;color:var(--ink2);
 margin:0 0 16px;font-weight:600}
.pop .qt{border-left:2px solid var(--cin);padding:4px 0 4px 16px;font-size:14.5px;
 line-height:2.05;color:var(--ink);font-family:"Songti SC",serif}
.pop .src{font-size:12px;color:var(--ink3);margin-top:14px;text-align:right}
.pop .x{position:absolute;right:14px;top:8px;cursor:pointer;color:var(--ink3);font-size:17px;line-height:1}
/* 调试浮窗（对外版整体删除） */
.swch{position:fixed;right:14px;bottom:14px;background:var(--frame);color:var(--sheet);
 padding:10px 14px;font-size:11.5px;z-index:99;line-height:2.1}
.swch b{color:#e0a878;font-weight:400}
.swch .jmp{color:#c9bfa9;cursor:pointer;border-bottom:1px dotted #6b6053;margin-right:10px}
.lvbtn{display:inline-block;padding:2px 13px;margin-left:8px;border:1px solid #e0a878;
 color:#e0a878;cursor:pointer;font-size:11.5px;letter-spacing:.12em}
.lvbtn.on{background:#e0a878;color:#2a2420}

@media(max-width:820px){
 .sheet{padding:0 26px}.top{padding:16px 14px 0;gap:12px}
 /* 导航一折行，第二行开头那项仍带着 border-left，就成了一道悬空竖线
    （.menu a:first-child 只去掉整组的第一项，管不到换行处）。
    手机上索性不用竖线分隔，靠间距分开。 */
 .menu a{border-left:0;padding:6px 16px 6px 0;letter-spacing:.16em}
 .menu a.on::after{left:0;right:calc(16px + .16em)}
 /* 手机上导航要自己占满一行，不能挤在 logo 旁边当窄列——
    那样 flex:1 只分到两百来像素，五项会折成三行，logo 被夹在中间 */
 /* 注意顺序：flex 简写会把 flex-basis 重置成 auto，
    写成 flex-basis:100%;flex:none 等于没设，而且 flex:none 不许收缩，
    导航一行放不下就直接溢出被裁（「家谱编修」只露半个字） */
 .menu{width:100%;flex:none;row-gap:2px}
 #acct{margin-left:0;padding-left:0;width:100%;margin-top:6px}.stage{padding:0 12px}
 .hero{padding:40px 0 34px}.hero .sub{margin-bottom:28px;letter-spacing:.28em;text-indent:.28em}
 .sbox{flex-wrap:wrap}
 .sbox .f1{flex:0 0 30%}
 .sbox .f2{flex:1 1 0;min-width:0}
 .sbox button{flex:1 0 100%;padding:12px 0;text-indent:.32em;border-top:1px solid var(--rule)}
 .sbox input{padding:13px 14px}
 .nums{grid-template-columns:repeat(3,1fr)}
 .n{padding:18px 4px}
 .n:nth-child(4){border-left:0}.n:nth-child(n+4){border-top:1px solid var(--rule)}
 .men{grid-template-columns:1fr}
 .brow{grid-template-columns:repeat(6,1fr)}
 .brow.r6{grid-template-columns:repeat(3,1fr)}
/* 好几处 .grid 把列数写在行内（姓氏页 repeat(20)、字辈页 repeat(14) …），
    行内样式压过样式表，所以这一条原先在窄屏上**从来没生效过**——
    姓氏页在 390px 上要 446px 宽，横向溢出 71px。必须 !important 才盖得住。 */
 .grid{grid-template-columns:repeat(7,1fr)!important}
 .two{grid-template-columns:1fr;gap:0}
 .tp{border-left:0;border-bottom:1px solid var(--rule);padding:18px 0}
 .tp:last-child{border-bottom:0}
 .arw{display:none}.fs{flex:1 1 0;min-width:0}
 .skin-dk>.in{clip-path:none;border:1px solid var(--rule)}
 .skin-dk{filter:drop-shadow(0 2px 8px rgba(60,50,35,.15))}
 .swch{font-size:10.5px;padding:7px 10px;line-height:1.9;max-width:calc(100vw - 28px)}
 .swch .lab{display:none}
 .foot{padding-bottom:88px}
}

/* ══ 迁徙地详情页 · 右上角枢纽切换器 ══════════════════════════════
   收起时是石面上压着的一枚纸签；展开时一张纸覆到石面上——
   拓片的做法本就是把纸覆在碑上捶拓，这个动作与页面语言是同一件事。
   定位锚在 .skin-rb（它是 position:relative），贴住石面右上角。
   取色全走变量，浅底皮肤照样能用。 */
/* 收起时：石上凿浅的一格——仍是石头，不是纸。原先是一枚毛边纸签压在石面上，
   纸覆石本是拓片的动作，可收着的时候就把它摊开，太响，还把界痕压断了。
   右上角嵌进框角（top/right 都是 16，与 .bd2 的 inset 同值），界痕不再被切断。
   印与字取账号那枚 .yinz 的同一副尺寸（24×24 / 14px），右上角两行成一副对子。
   取色写死为深底那套：这个切换器只挂在十三处拓片详情页上。 */
.hsw{position:absolute;top:16px;right:16px;z-index:6;font-family:"Songti SC",serif}
.hsw-tab{display:flex;align-items:center;gap:8px;padding:9px 14px 9px 11px;
 background:rgba(236,228,212,.06);color:#ece4d4;border:1px solid rgba(230,220,200,.20);
 cursor:pointer;font-family:inherit;font-size:14.5px;letter-spacing:.2em;transition:.15s}
.hsw-tab:hover{background:rgba(236,228,212,.11);border-color:rgba(230,220,200,.36)}
.hsw-tab i{font-style:normal;width:24px;height:24px;line-height:24px;text-align:center;
 font-size:14px;letter-spacing:0;color:var(--sheet);background:var(--cin);flex:none}
.hsw-tab em{font-style:normal;font-size:10px;color:#8b8171;letter-spacing:0;
 transition:transform .2s}
.hsw.open .hsw-tab{background:rgba(168,51,42,.14);border-color:var(--cin)}
.hsw.open .hsw-tab em{transform:rotate(180deg);color:var(--cin)}
.hsw-sheet{position:absolute;top:100%;right:0;width:min(460px,86vw);
 background:var(--sheet);border:1px solid var(--rule);
 box-shadow:0 14px 40px rgba(0,0,0,.34);
 transform-origin:top right;animation:hswdrop .18s ease-out}
@keyframes hswdrop{from{opacity:0;transform:scaleY(.92) translateY(-6px)}
 to{opacity:1;transform:none}}
.hsw-hd{display:flex;align-items:baseline;justify-content:space-between;
 padding:14px 16px 12px;border-bottom:1px solid var(--rule)}
.hsw-hd b{font-size:14px;letter-spacing:.14em;color:var(--ink);font-weight:400}
.hsw-hd i{font-style:normal;font-size:11.5px;letter-spacing:.1em;color:var(--ink3)}
/* 你在这一处：朱文印，单占一行——抽走它，余下十二处正好四行三列不留空格 */
.hsw-now{display:flex;align-items:center;gap:10px;padding:11px 16px;
 background:rgba(168,51,42,.055);border-bottom:1px solid var(--rule)}
.hsw-now i{font-style:normal;width:26px;height:26px;line-height:24px;text-align:center;
 font-size:14px;color:var(--sheet);background:var(--cin);flex:none}
.hsw-now b{font-size:14px;letter-spacing:.06em;color:var(--cin);font-weight:400}
.hsw-now span{margin-left:auto;font-size:10.5px;color:var(--ink3);
 font-family:-apple-system,"PingFang SC",sans-serif}
.hsw-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.hsw-grid .hsw-i:nth-last-child(-n+3){border-bottom:0}
.hsw-i{display:block;padding:13px 8px;text-align:center;text-decoration:none;
 border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:.12s}
.hsw-i:nth-child(3n){border-right:0}
.hsw-i:hover{background:rgba(168,51,42,.05)}
.hsw-i i{display:block;font-style:normal;width:30px;height:30px;line-height:28px;
 margin:0 auto 7px;font-size:15px;color:var(--cin);border:1px solid var(--cin);
 background:transparent}
.hsw-i b{display:block;font-size:13px;letter-spacing:.04em;color:var(--ink);
 font-weight:400;margin-bottom:3px}
.hsw-i span{display:block;font-size:10.5px;color:var(--ink3);
 font-family:-apple-system,"PingFang SC",sans-serif}
.hsw-ft{margin:0;padding:11px 16px;font-size:11px;color:var(--ink3);
 border-top:1px solid var(--rule);letter-spacing:.04em;
 font-family:-apple-system,"PingFang SC",sans-serif}
@media(max-width:640px){
 .hsw-tab{padding:8px 11px 8px 9px;font-size:13px;letter-spacing:.14em;gap:7px}
 .hsw-tab i{width:22px;height:22px;line-height:22px;font-size:13px}
 .hsw-sheet{width:min(340px,92vw)}
 .hsw-grid{grid-template-columns:repeat(2,1fr)}
 .hsw-grid .hsw-i:nth-last-child(-n+3){border-bottom:1px solid var(--rule)}
 .hsw-grid .hsw-i:nth-last-child(-n+2){border-bottom:0}
 .hsw-i:nth-child(3n){border-right:1px solid var(--rule)}
 .hsw-i:nth-child(2n){border-right:0}}

/* ══ 七卷 ══════════════════════════════════════════════════
   查找家谱 + 卷目六项（祖地/堂号/字辈/始迁祖/家规/名人）＝七个同级页面，
   在标题那一行互相切换。当前这一卷就是页面的 h3，其余六卷同样打扮——
   素文字，不加框、不加印，副题落在条下一行。

   两次返工的教训都在这儿：
   ① 先做成书口页签，每卷一个框、框里再套印框，一行**十四个方框**，
      底下压一条横线，顶栏还有四道竖界——用户一眼看出「视觉有些乱」。
   ② 再退成「卷端题 + 一行小灰字」，干净了，但六卷退得太远，不像能切换。
   现在这版取中：七项齐头，只用字。与顶栏的区别是三处——字更小更紧
   （14/.14em 对 15.5/.24em）、项间没有界格竖线、整行底下一道贯通线；
   而且它在雕版框里头，顶栏在框外头，中间隔着那道粗边。 */
.qsw{margin:0 0 22px}
.qs{display:flex;flex-wrap:wrap;align-items:baseline;margin:0;
 border-bottom:1px solid var(--rule)}
.qs-i{font-family:"Songti SC",serif;font-weight:400;text-decoration:none;
 font-size:14px;letter-spacing:.14em;color:var(--ink2);
 padding:8px 18px 11px;position:relative;margin:0;border:0;transition:color .13s}
.qs-i:first-child{padding-left:2px}
.qs-i:hover{color:var(--cin)}
.qs-i.on{color:var(--cin)}
.qs-i.on::after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;
 height:2px;background:var(--cin)}
.qs-i:first-child.on::after{left:2px}
.qs-sub{font-size:12.5px;color:var(--ink3);letter-spacing:.04em;margin:10px 0 0;
 max-width:700px}
/* 平板宽度下七项本来会折成两行，收紧字距与左右留白让它一行装下 */
@media(max-width:900px){
 .qs-i{padding:8px 12px 10px;letter-spacing:.08em}
 .qs-i.on::after{left:12px;right:12px}
 .qs-i:first-child.on::after{left:2px}}
@media(max-width:640px){
 .qs-i{padding:7px 8px 9px;font-size:13.5px;letter-spacing:.02em}
 .qs-i.on::after{left:8px;right:8px}
 .qs-i:first-child.on::after{left:2px}}
/* 行内写死列数的 .grid 在窄屏放不下（姓氏页 repeat(20)），行内样式压过样式表 */
@media(max-width:520px){.grid{grid-template-columns:repeat(4,1fr)!important}}

/* 分页器 —— 界格式，与全站同语言 */
.pager{display:flex;gap:0;margin:26px 0 0;border-top:1px solid var(--rule);padding-top:18px;
 flex-wrap:wrap;align-items:center}
.pager span{font-family:"Songti SC",serif;font-size:14px;padding:7px 14px;cursor:pointer;
 border:1px solid var(--rule);margin:0 -1px 0 0;color:var(--ink2);letter-spacing:.06em}
.pager span:hover{color:var(--cin);border-color:rgba(168,51,42,.4);position:relative;z-index:1}
.pager span.on{background:var(--cin);color:var(--sheet);border-color:var(--cin);position:relative;z-index:1}
.pager i{font-style:normal;color:var(--ink3);padding:0 8px}
.fbar{display:flex;gap:12px;margin:13px 0 0;flex-wrap:wrap;align-items:center}
.fbar select{font:13px/1.6 inherit;font-family:"Songti SC",serif;padding:7px 12px;
 border:1px solid var(--rule);background:var(--sheet);color:var(--ink2);cursor:pointer;
 letter-spacing:.06em;border-radius:0}
.fbar select:focus{outline:0;border-color:var(--cin)}
.fbar .lb{font-size:12.5px;color:var(--ink3);letter-spacing:.06em}
.item .t a{color:inherit}
.item .t a:hover{color:var(--cin)}


/* 辨认页：线索条 · 谱名列表 · 「还写着」小标 */
.frag{display:flex;align-items:baseline;flex-wrap:wrap;gap:0;margin:0 0 14px}
.frag .lb{font-size:12px;color:var(--ink3);letter-spacing:.14em;margin-right:14px}
.frag .f{font-family:"Songti SC",serif;font-size:14px;color:var(--ink2);
 padding:0 14px;border-left:1px solid var(--rule)}
.frag .f:first-of-type{border-left:0;padding-left:0}
.frag .f b{font-weight:400;color:var(--ink)}
.frag .edit{margin-left:14px;font-size:12px;color:var(--cin);cursor:pointer;
 border-bottom:1px solid rgba(168,51,42,.35)}
.item .t .ct{float:right;font-family:-apple-system,"PingFang SC",sans-serif;
 font-size:11.5px;color:var(--ink3);letter-spacing:.06em;font-weight:400}
.q .qsrc{display:block;margin-top:6px;font-size:11.5px;color:var(--ink3);
 font-family:-apple-system,"PingFang SC",sans-serif}
.also{font-size:11.5px;color:var(--ink3);letter-spacing:.14em;margin:14px 0 2px}
/* 迁徙路径：起点这里是谱上全称（「南雄府保昌县沙水村珠玑巷」），
   不是十三处枢纽页那种两字地名——60px 的固定列会把它折成三行。
   只在 #mbody 里放宽，全站 .pth 一个字不动（十三处枢纽页都用着它）。 */
#mbody .pth{align-items:baseline}
#mbody .pth .a{flex:0 1 auto;width:auto;max-width:38%}
.pl{font-size:12px;color:var(--ink3);margin:12px 0 0;line-height:2}
.pl a{color:var(--ink2);text-decoration:none;border-bottom:1px solid var(--rule)}
.pl a:hover{color:var(--cin);border-bottom-color:var(--cin)}
@media(max-width:640px){
 .frag .f{padding:0 8px;font-size:13px}
 .frag .lb{flex-basis:100%;margin-bottom:4px}
 .item .t .ct{float:none;display:block;margin-top:3px}
 /* 漏斗这里最多五层（原型只有三层）。窄屏一行挤五个，「138,492」与「6,763」
    会叠在一起——全站规则是 flex:1 1 0 单行铺开，这里改成两个一行、自动换行。 */
 #mbody .funnel{flex-wrap:wrap;row-gap:14px}
 #mbody .funnel .fs{flex:0 0 50%;min-width:0}
}

/* 共建留资表单 —— 沿用全站的界格与朱线语言，不引任何组件库 */
.fld{display:flex;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--rule);
 flex-wrap:wrap}
.fld label{flex:none;width:106px;font-family:"Songti SC",serif;font-size:13.5px;
 letter-spacing:.14em;color:var(--ink2)}
/* 必填标记：一个朱色小字，比星号更合这套版面；88px 装不下「宗族·所在地」，已放宽到 106 */
.fld label i{font-style:normal;font-size:10px;color:var(--cin);letter-spacing:0;
 margin-left:5px;vertical-align:1px}
.fld input[type=text],.fld input:not([type]){flex:1;min-width:200px}
.fld>input{flex:1;min-width:200px;border:0;border-bottom:1px solid transparent;outline:0;
 background:transparent;font:15px/1.8 inherit;color:var(--ink);padding:4px 0}
.fld>input:focus{border-bottom-color:var(--cin)}
.fld>input::placeholder{color:#b3a894}
.chips{display:flex;gap:0;flex-wrap:wrap;flex:1}
.chips label{width:auto;cursor:pointer;position:relative;margin:0 -1px 0 0}
.chips input{position:absolute;opacity:0;width:0;height:0}
.chips span{display:inline-block;font-family:"Songti SC",serif;font-size:13.5px;
 padding:7px 16px;border:1px solid var(--rule);color:var(--ink2);letter-spacing:.06em}
.chips input:checked+span{background:var(--cin);color:var(--sheet);border-color:var(--cin)}
.chips label:hover span{color:var(--cin)}
.chips input:checked+span,.chips label:hover span{position:relative;z-index:1}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cons{display:flex;gap:10px;align-items:flex-start;margin:18px 0 0;font-size:13px;
 color:var(--ink2);line-height:1.95;cursor:pointer}
.cons input{margin-top:5px;flex:none;accent-color:var(--cin)}
.cons a{color:var(--cin);border-bottom:1px solid rgba(168,51,42,.35)}
/* 夹注：解释「为什么问这一栏」。挂在 .fld 里、不塞进 <label>——
   106px 定宽列会把它折成竖条，还会继承朱色 */
.zhu{flex-basis:100%;margin:6px 0 0 122px;font-size:12.5px;line-height:1.9;
 color:var(--ink3);letter-spacing:.04em}
@media(max-width:520px){.zhu{margin-left:0}}
/* 计数态：默认「必填」是朱色警示，勾过之后变成墨色的陈述 */
.fld label i.cnt{color:var(--ink3)}
.act{margin:20px 0 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.act .hint{font-size:13px;color:var(--cin)}
/* 提交前的预告：.act 已 flex-wrap + gap:16，flex-basis:100% 让它独占按钮下一行 */
.anhint{flex-basis:100%;font-size:12.5px;color:var(--ink3);letter-spacing:.04em;line-height:1.9}
.leadok{border-top:1px solid var(--cin);padding:24px 0 0;position:relative}
.leadok::before{content:"";position:absolute;left:0;top:-1px;width:54px;height:3px;background:var(--cin)}
.leadok h4{font-family:"Songti SC",serif;font-size:17px;letter-spacing:.12em;margin:0 0 12px}
.leadok .code{font-family:"Songti SC",serif;font-size:27px;color:var(--cin);letter-spacing:.1em;margin:0 0 10px}
.leadok p{font-size:14.5px;color:var(--ink2);line-height:2;margin:0 0 8px}
.leadok .togo{margin:20px 0 14px;color:var(--ink3);font-size:13.5px}

/* 解读页：切换、上传、进度、四层结果 */
/* 贴文字：与上传区同一副骨架——毛边纸底、界线收边、聚焦转朱。
   此前只写了 class 没写样式，浏览器给了默认的等宽小方框，与全站两回事 */
.pastebox{margin:22px 0 0;border:1px solid var(--rule);background:var(--sheet);
 transition:border-color .15s}
.pastebox:focus-within{border-color:var(--cin)}
.pastebox textarea{display:block;width:100%;box-sizing:border-box;border:0;outline:0;
 background:transparent;resize:vertical;min-height:150px;
 font:16px/2.15 "Songti SC",serif;color:var(--ink);padding:20px 22px;letter-spacing:.03em}
.pastebox textarea::placeholder{color:#b3a894;letter-spacing:.06em;line-height:2.15}
.pastebar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:13px 20px;
 border-top:1px solid var(--rule);background:rgba(201,191,169,.09)}
.eg2{font-family:"Songti SC",serif;font-size:13.5px;letter-spacing:.1em;color:var(--ink3);
 cursor:pointer;border-bottom:1px solid transparent;padding-bottom:2px;transition:.15s}
.eg2:hover{color:var(--cin);border-bottom-color:rgba(168,51,42,.45)}
.pastebar .hint{font-size:12.5px;color:var(--ink3);margin-left:auto;letter-spacing:.04em}
@media(max-width:640px){.pastebox textarea{font-size:15px;padding:16px 16px;min-height:130px}
 .pastebar{padding:11px 16px;gap:14px}.pastebar .hint{margin-left:0;width:100%}}
.tabs{display:flex;gap:0;margin:26px 0 0;border-bottom:1px solid var(--rule)}
.tabs .tab{font-family:"Songti SC",serif;font-size:15px;letter-spacing:.12em;padding:11px 24px;
 cursor:pointer;color:var(--ink3);border:1px solid transparent;border-bottom:0;margin-bottom:-1px}
.tabs .tab.on{color:var(--ink);border-color:var(--rule);background:var(--sheet);
 border-bottom:1px solid var(--sheet)}
.drop{margin:22px 0 0}
.dz{border:2px dashed var(--rule);background:rgba(201,191,169,.08);padding:34px 24px;
 text-align:center;cursor:pointer;transition:border-color .15s}
.dz:hover,.drop.over .dz{border-color:var(--cin);background:rgba(168,51,42,.04)}
.dzi{width:52px;height:52px;line-height:50px;margin:0 auto 14px;font-family:"Songti SC",serif;
 font-size:26px;color:var(--cin);border:1px solid rgba(168,51,42,.4)}
.dzt{font-family:"Songti SC",serif;font-size:16px;letter-spacing:.08em;color:var(--ink)}
.dzs{font-size:12.5px;color:var(--ink3);margin-top:9px;line-height:1.9}
.pgs{display:grid;grid-template-columns:repeat(10,1fr);border-top:1px solid var(--rule);
 border-left:1px solid var(--rule);margin:16px 0 0}
.pgs label{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
 padding:9px 2px;text-align:center;cursor:pointer;font-family:"Songti SC",serif;font-size:14px;
 color:var(--ink2);position:relative}
.pgs input{position:absolute;opacity:0;width:0;height:0}
.pgs label.has{color:var(--celadon)}
.pgs input:checked+span{color:var(--sheet)}
.pgs label:has(input:checked){background:var(--cin);color:var(--sheet)}
.pgs em{display:block;font-style:normal;font-size:9.5px;color:var(--ink3);margin-top:1px}
.pgs label:has(input:checked) em{color:rgba(245,240,228,.75)}
.jbar{display:flex;align-items:center;gap:14px;margin:18px 0 0;flex-wrap:wrap}
.jbar .hint{font-size:13px;color:var(--cin)}
.prog{height:3px;background:var(--rule);margin:18px 0 0;position:relative;overflow:hidden}
.prog i{position:absolute;left:0;top:0;bottom:0;background:var(--cin);width:0;transition:width .4s}
.pgcard{border-top:1px solid var(--rule);padding:22px 0 0;margin:26px 0 0}
.pgcard .ph{font-family:"Songti SC",serif;font-size:16px;letter-spacing:.1em;margin-bottom:4px}
.pgcard .ph em{font-style:normal;font-size:11.5px;color:var(--ink3);margin-left:12px;
 letter-spacing:.04em;font-family:-apple-system,sans-serif}
/* 层一 原文校录：这是谱上的字，纸感与行距要撑得住，不能是一坨正文 */
.jorig{margin:14px 0 0;border:1px solid var(--rule);background:var(--sheet);
 padding:24px 26px;font:17px/2.4 "Songti SC",serif;color:var(--ink);letter-spacing:.06em}
/* 层三 考据：左边谱上原来的写法，右边今天的说法，注文另起一行退到右栏 */
.xz{display:flex;align-items:baseline;gap:0 16px;flex-wrap:wrap;padding:12px 0;
 border-bottom:1px solid var(--rule)}
.xz .k{flex:none;min-width:150px;padding-right:22px;position:relative;
 font-family:"Songti SC",serif;font-size:15.5px;letter-spacing:.08em;color:var(--ink)}
.xz .k::after{content:"→";position:absolute;right:0;color:var(--ink3);font-size:12px}
.xz .v{flex:1;min-width:200px;font-size:14.5px;line-height:1.95;color:var(--ink2)}
.xzn{flex-basis:100%;margin-top:5px;padding-left:166px;font-size:12.5px;
 line-height:1.9;color:var(--ink3)}
@media(max-width:640px){
 .jorig{padding:18px 15px;font-size:16px;line-height:2.2}
 .xz .k{min-width:0;flex-basis:100%;padding-right:0}
 .xz .k::after{position:static;margin-left:10px}
 .xz .v{min-width:0;flex-basis:100%}
 .xzn{padding-left:0}}
.unc{background:rgba(138,107,47,.14);border-bottom:1px dotted var(--ochre);cursor:help}
.uncnote{font-size:12px;color:var(--ochre);margin:8px 0 0;line-height:1.9}
/* ══ 家谱编修页 begin ══ */
/* 家谱编修页：这是一张广告页 —— 一个主张压全场，其余全是它的支撑。
   视觉冲击靠尺度对比：主张极大、正文极小极少、留白极多。 */
.claim{max-width:640px;margin:0 auto 34px;font-size:15.5px;line-height:2.15;
 color:var(--ink2);letter-spacing:.04em}
.claim b{color:var(--cin);font-weight:400}
.cta{display:inline-block;font-family:"Songti SC",serif;font-size:15.5px;letter-spacing:.18em;
 text-indent:.18em;padding:15px 46px;background:var(--cin);color:var(--sheet);
 border:1px solid var(--cin);cursor:pointer;transition:.15s}
.cta:hover{background:transparent;color:var(--cin)}
.cta.gh{background:transparent;color:var(--cin);margin-left:14px}
.cta.gh:hover{background:var(--cin);color:var(--sheet)}
.ctarow{text-align:center;margin:52px 0 0;padding:38px 0 0;border-top:1px solid var(--rule)}
.ctarow p{font-family:"Songti SC",serif;font-size:17px;letter-spacing:.1em;color:var(--ink);
 margin:0 0 22px}
/* 居中的碑额式小题，比左界题更适合这种一屏一节的排布 */
.ctit{text-align:center;margin:64px 0 8px}
.ctit b{display:block;font-family:"Songti SC",serif;font-size:19px;letter-spacing:.3em;
 text-indent:.3em;color:var(--ink)}
.ctit i{display:block;font-style:normal;font-size:13px;letter-spacing:.12em;
 color:var(--ink3);margin-top:11px}
.ctit::after{content:"";display:block;width:28px;height:2px;background:var(--cin);
 margin:16px auto 0}
/* 六项服务：3×2，界格分隔 */
.svc6{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);
 border-left:1px solid var(--rule);margin:30px 0 0}
.svc6>div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
 padding:28px 24px;transition:background .15s}
.svc6>div:hover{background:rgba(168,51,42,.03)}
.sq{width:36px;height:36px;line-height:34px;text-align:center;font-family:"Songti SC",serif;
 font-size:18px;color:var(--sheet);background:var(--cin);margin-bottom:16px}
.svc6 b{display:block;font-family:"Songti SC",serif;font-size:16px;letter-spacing:.14em;
 color:var(--ink);margin-bottom:9px}
.svc6 span{display:block;font-size:13px;line-height:1.95;color:var(--ink3)}
/* 五步：横排，步与步之间一条细线 */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:34px 0 0;
 position:relative}
.flow>div{text-align:center;padding:0 8px;position:relative}
.flow>div+div::before{content:"";position:absolute;left:-50%;top:22px;width:100%;height:1px;
 background:var(--rule)}
.flow .no{position:relative;z-index:1;width:44px;height:44px;line-height:42px;margin:0 auto 15px;
 font-family:"Songti SC",serif;font-size:19px;color:var(--cin);background:var(--sheet);
 border:1px solid var(--cin)}
.flow b{display:block;font-family:"Songti SC",serif;font-size:16px;letter-spacing:.12em;
 color:var(--ink);margin-bottom:8px}
.flow span{display:block;font-size:13px;line-height:1.9;color:var(--ink3)}
/* 装帧三格 */
.bind{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);
 border-left:1px solid var(--rule);margin:30px 0 0}
.bind>div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
 padding:26px 24px;text-align:center}
.bind b{display:block;font-family:"Songti SC",serif;font-size:16px;letter-spacing:.14em;
 color:var(--ink);margin-bottom:9px}
.bind span{display:block;font-size:13px;line-height:1.95;color:var(--ink3)}
/* 一句实话，单独一行，不再单开一节 */
.oneline{text-align:center;font-family:"Songti SC",serif;font-size:15px;letter-spacing:.06em;
 color:var(--ink2);line-height:2.25;max-width:620px;margin:44px auto 0;padding:26px 0 0;
 border-top:1px solid var(--rule)}
@media(max-width:820px){
 .svc6,.bind{grid-template-columns:repeat(2,1fr)}
 .flow{grid-template-columns:1fr;gap:0}
 .flow>div{display:flex;align-items:baseline;text-align:left;gap:16px;padding:14px 0;
  border-bottom:1px solid var(--rule)}
 .flow>div+div::before{display:none}
 .flow .no{width:34px;height:34px;line-height:32px;margin:0;flex:none;font-size:16px}
 .flow b{margin:0 0 4px}
 .ctit{margin-top:46px}}
@media(max-width:520px){.svc6,.bind{grid-template-columns:1fr}}
/* 第一步是门：名字可点，但方号不动（.flow .no 按 div 写死 44×44） */
.flow b a{color:inherit;text-decoration:none;border-bottom:1px solid var(--cin);
 padding-bottom:2px}
.flow b a:hover{color:var(--cin)}
/* 朱笔圈点：朱1px／纸3px／朱1px 的子母框，雕版语汇；
   用 box-shadow 不参与布局，44×44 与移动端 34×34 零位移 */
.flow>div.key .no{box-shadow:inset 0 0 0 3px var(--sheet),inset 0 0 0 4px var(--cin)}
.flow>div.key b{color:var(--cin)}
/* 凡例复用 .bind 三格；只多一条链接外观 */
.bind a{color:var(--cin);border-bottom:1px solid rgba(168,51,42,.35)}
/* 数字条提级（清单必做七）：全页最硬的三个证据原先只有 25px、跟小题一样大。
   只加 scoped 规则，绝不动全站 .n b——629 张单姓页与 mine/zudi 共用 */
.nums.n3{position:relative}
.nums.n3::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;
 background:var(--rule);opacity:.5}
.nums.n3 .n{padding:32px 6px}
.nums.n3 .n b{font-size:clamp(19px,4.6vw,32px);font-variant-numeric:tabular-nums}
.nums.n3 a{display:block;color:inherit;text-decoration:none}
/* ══ 家谱编修页 end ══ */

/* 账号三页：只多两样——单叶框、朱文印；其余全部沿用界格与朱线 */
/* display:flow-root：不加的话 .in 的 16px 上边距会与 .leaf 发生父子塌陷，
   纸面顶到框顶，把顶部横线整条盖住（实测 in 与 leaf 顶差 0px） */
.leaf{position:relative;max-width:520px;margin:38px auto 0;display:flow-root}
/* z-index:2 让边框画在纸面之上（全站 .bd 那条规则套不到这里，实测 z=auto）；
   pointer-events:none 必须一起给，否则这层盖住表单，什么都点不了 */
.leaf .bd{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.leaf .in{position:relative;background:var(--sheet);margin:16px;z-index:1}
.leaf .sheet{padding:0 40px}
.leaf .body{padding:38px 0 34px}
.lhd{text-align:center;margin:0 0 24px}
.lhd b{display:block;font-family:"Songti SC",serif;font-size:26px;letter-spacing:.32em;
 text-indent:.32em;color:var(--ink)}
.lhd i{display:block;font-style:normal;font-size:12px;letter-spacing:.16em;
 color:var(--ink3);margin-top:10px}
.lhd::after{content:"";display:block;width:26px;height:2px;background:var(--cin);margin:15px auto 0}
.ways{display:flex;border:1px solid var(--rule);margin:0 0 8px}
.ways span{flex:1;text-align:center;padding:10px 0;font-family:"Songti SC",serif;
 font-size:14px;letter-spacing:.14em;color:var(--ink3);cursor:pointer;
 border-right:1px solid var(--rule)}
.ways span:last-child{border-right:0}
.ways span.on{background:var(--cin);color:var(--sheet)}
.leaf .fld{padding:14px 0;gap:12px}
.leaf .fld label{width:76px}
.leaf .fld label em{font-style:normal;font-size:10px;color:var(--cin);margin-left:5px;
 vertical-align:1px}
.leaf .fld input{flex:1;min-width:120px;border:0;border-bottom:1px solid transparent;
 outline:0;background:transparent;font:15px/1.8 inherit;color:var(--ink);padding:4px 0}
.leaf .fld input:focus{border-bottom-color:var(--cin)}
.leaf .fld input::placeholder{color:#b3a894}
/* 浏览器自动填充默认刷蓝底，会把毛边纸破掉 */
.leaf input:-webkit-autofill,.leaf input:-webkit-autofill:focus{
 -webkit-box-shadow:0 0 0 60px var(--sheet) inset;box-shadow:0 0 0 60px var(--sheet) inset;
 -webkit-text-fill-color:var(--ink);caret-color:var(--ink)}
.vcode{flex:none;font-family:"Songti SC",serif;font-size:12.5px;letter-spacing:.06em;
 padding:7px 13px;border:1px solid var(--cin);background:transparent;color:var(--cin);
 cursor:pointer;white-space:nowrap}
.vcode[disabled]{border-color:var(--rule);color:var(--ink3);cursor:default}
.btn.wide{width:100%;padding:13px 0;font-size:15px;letter-spacing:.32em;text-indent:.32em}
.lft{text-align:center;font-size:13px;color:var(--ink3);margin:20px 0 0}
.lft a{color:var(--cin);border-bottom:1px solid rgba(168,51,42,.35)}
.lhint{text-align:center;font-size:13px;color:var(--cin);margin:16px 0 0;min-height:1px}
.lhint.ok{color:var(--celadon)}
.lnote{text-align:center;font-size:12.5px;line-height:2;color:var(--ink3);margin:20px 0 0;
 padding-top:16px;border-top:1px solid var(--rule)}
/* 朱文印：已登录时的身份标记，兼作头像。印在名字右边——先写款、后钤印。
   overflow 非 visible 的 inline-block，基线就是它的下外边距边，
   于是 vertical-align:baseline 把印的底边正好放到字的基线上（实测差 0px）。
   别改回 flex：flex 项目按行盒对齐，center / flex-end / baseline
   三种都会让印比基线低 6~8px。 */
.yinz{display:inline-block;overflow:hidden;vertical-align:baseline;font-style:normal;
 width:24px;height:24px;line-height:22px;text-align:center;
 font-family:"Songti SC",serif;font-size:14px;letter-spacing:0;
 color:var(--sheet);background:var(--cin);margin:0 0 0 9px;transition:.15s}
/* 白文印：还没落款的人。纸底朱边，登录后这一方才落上你的姓、转朱文 */
.yinz.ke{background:transparent;color:var(--cin);border:1px solid var(--cin)}
#acct a:hover .yinz.ke{background:rgba(168,51,42,.10)}
.yinz.big{width:56px;height:56px;line-height:56px;font-size:28px;margin:0;
 vertical-align:middle}
.navdot{color:var(--ink3);margin:0 6px;font-size:12px;letter-spacing:0}
/* 私卷 */
.owner{display:flex;align-items:center;gap:20px;padding:22px 0 24px;
 border-bottom:1px solid var(--rule);flex-wrap:wrap}
.oi{flex:1;min-width:180px}
.oi b{display:block;font-family:"Songti SC",serif;font-size:20px;letter-spacing:.1em;
 margin-bottom:7px}
.oi span{font-size:12.5px;color:var(--ink3)}
.juans>div{display:flex;align-items:center;padding:22px 6px;
 border-bottom:1px solid var(--rule);cursor:pointer;transition:background .15s;
 flex-wrap:wrap;gap:6px 0}
.juans>div:hover{background:rgba(168,51,42,.03)}
.jn{flex:none;width:56px;font-family:"Songti SC",serif;font-size:12.5px;
 letter-spacing:.14em;color:var(--ink3)}
.juans b{flex:none;width:100px;font-family:"Songti SC",serif;font-size:17px;
 letter-spacing:.16em;color:var(--ink)}
.jd{flex:1;min-width:180px;font-size:13px;line-height:1.95;color:var(--ink3)}
.juans em{flex:none;font-style:normal;font-family:"Songti SC",serif;font-size:14.5px;
 color:var(--cin);margin-right:14px}
.juans em.que{color:var(--ink3)}
/* 空的那一卷：整行不可点，只给一个「去哪儿才能有这一卷」的入口 */
.juans>div.que{cursor:default}
.juans>div.que:hover{background:transparent}
.jgo{flex:none;font-family:"Songti SC",serif;font-size:12.5px;letter-spacing:.06em;
 color:var(--cin);border-bottom:1px solid rgba(168,51,42,.35);white-space:nowrap;
 margin-left:4px}
.jgo:hover{border-bottom-color:var(--cin)}
.juans>div>i{flex:none;font-style:normal;color:var(--ink3);font-size:17px;width:12px;
 text-align:right}
.q3{display:inline-block;font-size:11px;letter-spacing:.1em;padding:2px 8px;
 border:1px solid;margin-left:8px}
.q3.qing{color:var(--celadon);border-color:rgba(79,107,87,.45)}
.q3.zhe{color:var(--ochre);border-color:rgba(138,107,47,.45)}
/* 卷内列表：日期 + 一句摘要 + 状态签 */
.lst{border-top:1px solid var(--rule);margin-top:20px}
.lst>div{display:flex;align-items:baseline;gap:14px;padding:15px 6px;
 border-bottom:1px solid var(--rule);flex-wrap:wrap}
.lst>div[onclick]{cursor:pointer}
.lst>div[onclick]:hover{background:rgba(168,51,42,.03)}
.lst .dt{flex:none;width:42px;font-family:"Songti SC",serif;font-size:12px;color:var(--ink3)}
.lst b{flex:none;max-width:340px;font-family:"Songti SC",serif;font-size:15px;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lst .ds{flex:1;min-width:150px;font-size:12.5px;color:var(--ink3)}
.juans>div[data-kind]{cursor:pointer}
.empty{text-align:center;padding:40px 0 8px}
.eq{font-family:"Songti SC",serif;font-size:44px;color:var(--rule);margin:0 0 16px;
 letter-spacing:.2em}
.empty p{font-size:13.5px;line-height:2.1;color:var(--ink3);margin:0 0 22px}
.aset{display:flex;flex-wrap:wrap;gap:10px 24px;margin:26px 0 0;padding-top:20px;
 border-top:1px solid var(--rule);font-size:13px}
.aset a{color:var(--ink2);border-bottom:1px solid var(--rule);cursor:pointer}
.aset a:hover{color:var(--cin);border-bottom-color:var(--cin)}
.aset a.warn:hover{color:var(--cin)}
@media(max-width:640px){
 .leaf{margin:24px 12px 0}.leaf .sheet{padding:0 20px}
 /* 手机上标签独占一行 —— 横排时 76px 装不下「手机号」+「必填」，
    「必填」会被挤到第二行，输入框也跟着错位；竖排一并解决了
    「获取验证码」被挤下去的问题 */
 .leaf .fld{flex-direction:column;align-items:stretch;gap:6px;padding:12px 0}
 .leaf .fld label{width:auto;font-size:13px}
 .leaf .fld input{min-width:0;width:100%;font-size:16px}  /* 16px：iOS 聚焦时不再自动放大 */
 .leaf .fld:has(.vcode){flex-direction:row;flex-wrap:wrap}
 .leaf .fld:has(.vcode) label{flex-basis:100%}
 .leaf .fld:has(.vcode) input{flex:1;width:auto}
 .vcode{padding:8px 12px}
 .juans b{width:auto;margin-right:14px}
 .juans .jd{flex-basis:100%;padding-left:56px}}
