:root{--bg:#eaf0eb;--paper:#fafcf9;--ink:#293d37;--muted:#7b8882;--line:#ccd7ce;--green:#496d5c;--accent:#985d62;--gold:#a27744;--serif:'Songti SC','Noto Serif SC','STSong',serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.8 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
button{font:inherit;color:inherit;cursor:pointer}
button:disabled{opacity:.45;cursor:not-allowed}
button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
footer{text-align:center;color:var(--muted);font-size:11px;padding:24px 12px}
.serif{font-family:var(--serif)}
.muted{color:var(--muted);font-size:12px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:18px;margin-bottom:14px}
.card h2{font-size:13px;letter-spacing:2px;color:var(--muted);font-weight:500;margin:0 0 12px}
.primary{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:12px 22px;border-radius:3px}
.ghost{background:transparent;border:1px solid var(--line);padding:6px 12px;border-radius:3px;font-size:12px}
.ghost.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* 出生登记 */
.birth{max-width:640px;margin:40px auto;background:var(--paper);border:1px solid var(--line);padding:36px 40px;outline:1px solid var(--line);outline-offset:-8px}
.birth .kicker{text-align:center;letter-spacing:6px;font-size:11px;color:var(--muted)}
.birth h1{text-align:center;font-family:var(--serif);color:var(--accent);letter-spacing:12px;font-weight:500;font-size:30px;margin:6px 0 20px}
.birth .name{font-family:var(--serif);font-size:34px;letter-spacing:6px;margin:6px 0 14px}
.birth .lead{font-family:var(--serif);font-size:16px;line-height:2;border-top:1px solid var(--line);padding-top:14px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px;margin:18px 0}
.grid .k{font-size:11px;color:var(--muted)}
.grid .v{font-size:15px}
.yinian-note{background:#f4efe6;border-left:3px solid var(--gold);padding:10px 14px;font-family:var(--serif);font-size:14px;margin:14px 0}
.birth .primary{width:100%;margin-top:12px;font-size:15px}

/* 主界面 */
.top{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line)}
.topin{max-width:1220px;margin:auto;padding:12px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.top .age{font-family:var(--serif);font-size:30px;line-height:1}
.top .age small{font-size:13px;margin-left:2px}
.top .when{font-size:13px}
.top .bar{flex:1;min-width:120px;height:3px;background:var(--line);position:relative}
.top .bar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent)}
.controls{display:flex;flex-wrap:wrap;gap:6px}
.layout{max-width:1220px;margin:auto;padding:18px 20px;display:grid;grid-template-columns:290px 1fr 290px;gap:18px;align-items:start}
.row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px dashed var(--line);font-size:13px}
.row:last-child{border-bottom:0}
.row .k{color:var(--muted)}
.meter{height:5px;background:#e2e8e3;border-radius:3px;overflow:hidden;margin:4px 0 8px}
.meter i{display:block;height:100%;background:var(--green)}
.meter.warn i{background:var(--accent)}
.stat{font-size:12px;display:flex;justify-content:space-between}
.focus{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.scene{height:120px;border-radius:3px;margin-bottom:14px;position:relative;overflow:hidden;border:1px solid var(--line)}
.scene .cap{position:absolute;left:16px;bottom:12px;font-family:var(--serif);font-size:18px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.scene .cap small{display:block;font-size:12px;opacity:.9}
.feed{list-style:none;margin:0;padding:0}
.feed li{display:grid;grid-template-columns:54px 1fr 22px;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.feed li .t{font-size:11px;color:var(--muted);line-height:1.5}
.feed li .b{font-family:var(--serif);font-size:15px;line-height:1.9}
.feed li .b strong{font-family:-apple-system,'PingFang SC',sans-serif;font-size:13px;display:block;color:var(--ink);margin-bottom:2px}
.feed li.k-daily .b{color:#4c5a55;font-size:14px}
.feed li .b .inner{font-size:14px;color:#6b5a45;line-height:1.7;margin-top:2px}
.feed li .b .tag{font-family:-apple-system,'PingFang SC',sans-serif;font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:2px}
.feed li.k-history .b strong{color:var(--accent)}
.feed li.k-family .b strong{color:var(--green)}
.feed li.k-data .b{font-family:inherit;font-size:13px;background:#f1f4ef;padding:10px 12px;border-radius:3px}
.feed li.k-yinian .b{color:var(--gold)}
.feed li.k-end .b{font-size:17px}
.star{border:0;background:none;color:var(--line);font-size:16px;padding:0;line-height:1}
.star.on{color:var(--gold)}
.qbtn{border:1px solid var(--line);background:#fff;border-radius:50%;width:18px;height:18px;font-size:11px;line-height:16px;padding:0;margin-left:6px;color:var(--muted)}
.src{margin-top:8px;font-size:11px;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px}
.src a{color:var(--green)}
.tabs{display:flex;gap:12px;margin-bottom:6px;font-size:12px}
.tabs button{border:0;background:none;padding:2px 0;color:var(--muted)}
.tabs button.on{color:var(--ink);border-bottom:2px solid var(--ink)}
.yearbar{display:flex;align-items:center;gap:10px;margin:6px 0 10px;font-size:11px;color:var(--muted)}
.yearbar .y{min-width:44px;font-variant-numeric:tabular-nums}
.yearbar .yb{flex:1;display:grid;grid-template-columns:repeat(4,1fr);position:relative;height:16px;align-items:end;border-bottom:3px solid var(--line)}
.yearbar .yb i{position:absolute;left:0;bottom:-3px;height:3px;background:var(--green);transition:width .2s linear}
.yearbar .yb b{font-weight:normal;padding-bottom:3px;padding-left:2px;border-left:1px solid var(--line);line-height:1}
.yearbar .yb b.now{color:var(--ink)}
.yearbar .yb b.past{color:var(--muted);opacity:.7}
.person{padding:8px 0;border-bottom:1px dashed var(--line)}
.person:last-child{border-bottom:0}
.person .n{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.person .n .k{color:var(--muted);white-space:nowrap}
.person .s{text-align:right}
.person .n b{font-weight:500;text-align:right;margin-left:12px}
.person .s{font-size:12px;color:var(--muted)}
.person.gone{opacity:.5}

/* 抉择 */
#decision{position:fixed;inset:0;background:rgba(35,48,44,.38);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}
#decision[hidden]{display:none}
.dbox{background:var(--paper);max-width:560px;width:100%;border-radius:4px;padding:28px 28px 22px;box-shadow:0 16px 50px rgba(0,0,0,.18)}
.dbox .when{font-size:11px;color:var(--muted);letter-spacing:1px}
.dbox h3{font-family:var(--serif);font-size:22px;font-weight:500;margin:6px 0 10px}
.dbox p{font-family:var(--serif);font-size:16px;line-height:2;margin:0 0 18px}
.dbox .ch{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:3px;padding:11px 14px;margin-bottom:8px;font-size:14px}
.dbox .ch:hover:not(:disabled){border-color:var(--ink)}
.dbox .ch small{display:block;color:var(--accent);font-size:11px}
.dbox .ch .like{float:right;font-size:11px;color:var(--green);border:1px solid currentColor;border-radius:9px;padding:0 6px;margin-left:8px}
.dbox .ch .like.un{color:var(--muted)}
.dbox.history h3{color:var(--accent)}

/* 终章 */
.endpage{max-width:720px;margin:30px auto}
.endpage h1{font-family:var(--serif);font-weight:500;font-size:28px;letter-spacing:4px;text-align:center;margin:10px 0 4px}
.endpage .sub{text-align:center;color:var(--muted);margin-bottom:24px}
.endpage .story p{font-family:var(--serif);font-size:16px;line-height:2.1;margin:0 0 12px}
.endpage .pick{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:3px;padding:10px 14px;margin-bottom:8px;font-family:var(--serif)}
.endpage .pick.on{border-color:var(--gold);background:#f8f2e6}
.endpage .pick small{display:block;font-family:-apple-system,sans-serif;color:var(--muted);font-size:11px}

@media (max-width:980px){.layout{grid-template-columns:1fr}.layout aside{order:2}.layout .center{order:1}.grid{grid-template-columns:repeat(2,1fr)}.birth{margin:12px;padding:24px}}
.focus.pace{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.focus.pace button{text-align:left;padding:10px 12px;line-height:1.5}
.focus.pace button .muted{font-size:12px}

/* 账：收入绿、支出红，只染小标题、左边一道细线和数目，不染整块 */
.book-in,.book-out{border-left:2px solid var(--line);padding-left:10px;margin-top:6px}
.book-out{margin-top:12px}
.book-h{font-size:12px;letter-spacing:2px;margin-bottom:4px}
.book-in{border-left-color:var(--green)}.book-in .book-h,.book-in .row span:last-child{color:var(--green)}
.book-out{border-left-color:var(--accent)}.book-out .book-h,.book-out .row span:last-child{color:var(--accent)}

/* 结局里只属于这一生的几句话 */
.story.closing{margin-top:14px;padding-top:14px;border-top:1px solid rgba(0,0,0,.12)}
.story.closing p{margin:.35em 0}

/* 人生地图：一格一年 */
.lifemap .lmh{display:flex;justify-content:space-between;align-items:baseline}
.lifemap .lmh h2{margin-bottom:10px}
.lmg{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.lmg i{aspect-ratio:1;border-radius:3px;background:#dce3e0;box-sizing:border-box;border:2px solid transparent}
.lmg i.nd{background:#cbd3cf}
.lmg i.m1{background:#cdd5a0}.lmg i.m2{background:#74b089}.lmg i.m3{background:#1f5f63}
.lmg i.now{border-color:var(--accent)}
.lmg i:hover{border-color:#5f6b67}
.lmg i.now:hover{border-color:var(--accent)}
.lml{display:flex;align-items:center;gap:4px;margin-top:10px;font-size:12px}
.lml i{display:inline-block;width:12px;height:12px;border-radius:2px}
.lml i.m1{background:#cdd5a0}.lml i.m2{background:#74b089}.lml i.m3{background:#1f5f63}

/* 弹窗：底下不滚；内容太长时在框里滚 */
body.modal{overflow:hidden}
.dbox{max-height:calc(100vh - 32px);overflow:auto}
/* 手机竖屏：顶栏压成两行（岁数年份一行、按钮一行可横滑），场景条变矮 */
@media (max-width:600px){
  .topin{padding:8px 12px;gap:6px 12px}
  .top .age{font-size:24px}
  .top .when{font-size:12px;line-height:1.5}
  .top .bar{min-width:60px}
  .controls{flex-wrap:nowrap;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .controls::-webkit-scrollbar{display:none}
  .controls button{flex:none;padding:5px 10px;font-size:12px;white-space:nowrap}
  .layout{padding:10px 12px;gap:10px}
  .scene{height:60px;margin-bottom:10px}
  .scene .cap{font-size:15px;bottom:8px;left:12px}
  .scene .cap small{display:none}
  .card{padding:14px;margin-bottom:10px}
  .feed li{grid-template-columns:44px 1fr 20px;gap:8px;padding:10px 0}
  .dbox{padding:20px 16px 14px}
  .dbox h3{font-size:19px}
  .dbox p{font-size:15px;line-height:1.85;margin-bottom:14px}
}
/* 单栏（手机、窄窗口）：纪录在自己的框里滚，下面的这一户、你、人生地图、家人不用翻完纪录才看得到 */
@media (max-width:980px){.center .feed{max-height:58vh;overflow:auto;-webkit-overflow-scrolling:touch}}

/* 投资弹窗（11-13） */
#invest{position:fixed;inset:0;background:rgba(35,48,44,.38);display:flex;align-items:center;justify-content:center;z-index:21;padding:16px}
#invest[hidden]{display:none}
.ghost.mini{padding:2px 10px;margin-left:8px;font-size:12px;border-color:var(--green);color:var(--green)}
.invbox{max-height:86vh;display:flex;flex-direction:column}
.iv-head{display:flex;align-items:center;justify-content:space-between}
.iv-head h3{margin:0 0 4px}
.iv-x{background:none;border:0;font-size:22px;color:var(--muted);padding:0 4px;cursor:pointer}
.iv-msg{margin:10px 0 0;padding:8px 10px;background:#eef4ef;border-left:3px solid var(--green);font-size:13px}
.iv-list{overflow-y:auto;margin:10px 0 12px;border-top:1px solid var(--line)}
.iv{padding:10px 0;border-bottom:1px dashed var(--line)}
.iv-t{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.iv-t b{font-weight:500;font-size:14px}
.iv-q{margin-left:auto;background:none;border:0;color:var(--muted);font-size:11px;text-decoration:underline;cursor:pointer;padding:0}
.iv-note{font-size:12px;color:var(--muted);line-height:1.7;margin:6px 0 2px;background:#f6f8f5;padding:6px 8px}
.iv-b{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.iv-b .ghost{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:5px 10px;font-size:13px;background:#fff}
.iv-b .ghost small{font-size:10px;color:var(--muted)}
.iv-b .ghost:hover{border-color:var(--ink)}
.iv-done{text-align:center !important;margin-bottom:0 !important}

/* 转世开场（11-13，intro.js） */
.intro{max-width:720px;margin:40px auto;min-height:620px;background:#1f2a26;color:#efe9dc;border-radius:4px;padding:40px 36px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;cursor:pointer;font-family:var(--serif);box-shadow:0 18px 50px rgba(0,0,0,.18)}
.in-kick{font-size:11px;letter-spacing:6px;color:#9fb0a8;font-family:inherit}
.in-line{font-size:18px;letter-spacing:3px;min-height:28px;color:#d9d2c2}
.in-year{text-align:center}
.in-y{font-size:84px;line-height:1;letter-spacing:2px;font-variant-numeric:tabular-nums;color:#e0c08f;transition:transform .5s,color .5s}
.in-y.land{transform:scale(1.08);color:#f3dcaa}
.in-era{font-size:20px;letter-spacing:6px;margin-top:6px;color:#efe9dc;min-height:30px}
.in-map{width:100%;opacity:0;transform:translateY(12px);transition:opacity .9s,transform .9s}
.in-map.on{opacity:1;transform:none}
.in-map svg{width:100%;height:auto;display:block}
.ir{fill:none;stroke:#5f7f8f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.ir.he{stroke:#a98f5c}.ir.jiang{stroke:#6f97a8;stroke-width:3}.ir.canal{stroke:#8fa8a0;stroke-dasharray:5 5;stroke-width:1.6}
.ir-n{fill:#7f948c;font-size:12px;letter-spacing:3px}
.if circle{fill:#56675f}.if text{fill:#6f8079;font-size:11px}
.ic-dot{fill:#c9c2b2;transition:fill .25s,r .25s}
.ic-ring{fill:none;stroke:#e0c08f;stroke-width:2;opacity:0;transition:opacity .25s}
.ic-n{fill:#efe9dc;font-size:16px;letter-spacing:2px}
.ic-p{fill:#9fb0a8;font-size:12px}
.ic.hot .ic-dot{fill:#e0c08f}.ic.hot .ic-ring{opacity:.8}
.ic.land .ic-dot{fill:#d9705f}.ic.land .ic-ring{opacity:1;stroke:#d9705f;animation:inpulse 1.2s ease-out infinite}
.ic.land .ic-n{fill:#f3dcaa;font-weight:600}
@keyframes inpulse{0%{stroke-width:2;opacity:1}100%{stroke-width:10;opacity:0}}
.in-cap{text-align:center;font-size:16px;letter-spacing:1px;color:#d9d2c2;margin-top:6px;min-height:24px}
.in-cap b{color:#f3dcaa;font-weight:600}.in-cap .muted{color:#9fb0a8}
.in-skip{margin-top:auto;font-size:11px;color:#7f948c;letter-spacing:3px}
@media (max-width:640px){.intro{margin:0;border-radius:0;min-height:100vh;padding:32px 16px 20px}.in-y{font-size:64px}}

/* 一生的长图（11-13，share.js） */
.share-img{width:100%;max-width:400px;display:block;margin:0 auto;border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.08)}

/* 结局页（11-13，endpage.js） */
.ep{max-width:1040px;margin:24px auto;padding:0 14px;font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;color:var(--ink)}
.ep-bar{display:flex;justify-content:space-between;background:#2f3a37;color:#e9e4d8;padding:14px 22px;border-radius:4px 4px 0 0;font-size:13px;letter-spacing:2px;font-family:ui-monospace,Menlo,monospace}
.ep-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:22px 24px;margin-bottom:16px}
.ep-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:34px;border-top:0;border-radius:0 0 4px 4px}
.ep-kick{font-size:13px;color:var(--muted);letter-spacing:2px}
.ep h1{font-family:var(--serif);font-size:54px;font-weight:600;letter-spacing:4px;margin:6px 0 4px;text-align:left}
.ep-sub{color:#56635e;font-size:15px;margin-bottom:14px}
.ep-tex{display:inline-flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--c) 22%,#fff);color:#2b2925;border-radius:20px;padding:6px 14px;font-weight:600;font-size:14px}
.ep-tex i{width:12px;height:12px;border-radius:50%;background:var(--c)}
.ep-sum{font-family:var(--serif);font-size:18px;line-height:1.9;margin:16px 0 18px}
.ep-cause{font-size:18px;margin-bottom:8px}.ep-cause b{color:var(--accent);font-size:22px}
.ep-stat{color:#56635e;font-size:14px;line-height:1.8;margin:6px 0}
.ep-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}
.ep-facts>div{border-top:1px solid var(--line);padding:10px 0 12px}
.ep-facts .k,.ep-texbox .k{font-size:12px;color:var(--muted)}
.ep-facts .v{font-size:17px;font-weight:600;margin-top:4px;line-height:1.4}
.ep-facts .s,.ep-texbox .s{font-size:12px;color:var(--muted);margin-top:3px}
.ep-texbox{margin-top:8px;background:color-mix(in srgb,var(--c) 14%,#fff);border-radius:8px;padding:14px 16px}
.ep-tb{display:grid;grid-template-columns:96px 1fr 96px;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:8px 0}
.ep-tb span:last-child{text-align:right}.ep-tb span.on{color:var(--ink);font-weight:600}
.ep-tbl{position:relative;height:4px;background:#fff;border-radius:2px}
.ep-tbl i{position:absolute;top:-5px;width:14px;height:14px;border-radius:50%;transform:translateX(-50%);border:2px solid #fff}
.ep-texname{font-family:var(--serif);font-size:26px;margin-top:10px;display:flex;align-items:center;gap:10px}
.ep-texname .sw{width:22px;height:22px;border-radius:4px;background:var(--c)}.ep-texname small{font-size:12px;color:var(--muted);font-family:ui-monospace,monospace}
.ep-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.ep-h h2{font-size:20px;font-weight:600;letter-spacing:1px;color:var(--ink);margin:0}
.ep-recall{font-family:var(--serif);font-size:20px;line-height:1.9;margin:0}
.ep-story summary{cursor:pointer;color:var(--muted);font-size:13px;margin-top:12px}
.ep-story p{font-family:var(--serif);font-size:15px;line-height:2;margin:8px 0}
.ep-moments{list-style:none;margin:0;padding:0}
.ep-moments li{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.7}
.ep-moments .a{color:var(--muted);font-size:13px;padding-top:2px}
.ep-moments .b small{display:block;color:var(--muted);font-size:12px}
.ep-moments li.h .b{color:var(--accent)}
.ep-note{margin-top:12px;background:#f1f4ef;border-left:3px solid var(--green);padding:10px 14px;font-size:14px;line-height:1.7}
.ep-keep{background:#f3e7d3;border-color:#e2d1b2}
.ep-keepin{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:center}
.ep-kpic{display:flex;justify-content:center}
.ep-scroll{width:150px;height:200px;background:#f6f1e6;border-left:10px solid #8c6a4a;border-right:10px solid #8c6a4a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:0 10px 24px rgba(80,50,20,.18);font-family:var(--serif)}
.ep-scroll b{font-size:22px;letter-spacing:3px}.ep-scroll span{font-size:12px;color:var(--muted)}
.ep-ksmall{color:#a8473f;font-size:13px;letter-spacing:2px}
.ep-keep h2{font-family:var(--serif);font-size:30px;font-weight:500;margin:6px 0 8px;color:var(--ink)}
.ep-keep p{color:#5c5247;line-height:1.8;margin:0 0 14px}
.ep-share{display:grid;grid-template-columns:300px 1fr;gap:24px}
.ep-sbox{text-align:center}.ep-sbox .share-img{max-width:300px}
.ep-sr .k{font-size:14px;font-weight:600;display:block;margin-bottom:6px}
.ep-sr textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:4px;padding:10px;font:inherit;font-size:14px;background:#fff;resize:vertical}
.ep-post{white-space:pre-wrap;background:#eef1ed;border-radius:4px;padding:14px 16px;margin:12px 0;font-size:14px;line-height:1.8}
.ep-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.ep-btns button{min-height:40px}
.ep-peer{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.ep-peer .age{font-family:var(--serif);font-size:32px;color:var(--green);line-height:1}.ep-peer .age small{font-size:16px}
.ep-peer.me .age{color:var(--accent)}
.ep-peer .nm{font-weight:600;font-size:15px}.ep-peer .ln{color:#56635e;font-size:14px;line-height:1.7;margin-top:4px}
.ep-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.ep-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.ep-grid i{aspect-ratio:1;border-radius:3px;background:#e1e6e2;font-style:normal;font-size:11px;color:#fff;display:flex;align-items:center;justify-content:center}
.ep-grid i.m1{background:#b9c99f}.ep-grid i.m2{background:#6f9f84}.ep-grid i.m3{background:#2f6b5c}.ep-grid i.nd{background:#cfd6d1}.ep-grid i.end{background:#2f3a37}
.ep-grid i.avg{outline:2px solid #2f3a37;outline-offset:-2px}
.ep-gl{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted);margin:10px 0 6px}
.ep-gl i{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}
.ep-gl i.m1{background:#b9c99f}.ep-gl i.m2{background:#6f9f84}.ep-gl i.m3{background:#2f6b5c}
.ep-surv,.ep-wc{width:100%;height:auto;display:block;margin-top:8px}
.ep-surv .g,.ep-wc .g{stroke:#dfe5e0}.ep-surv .t,.ep-wc .t{fill:#7b8882;font-size:11px}
.ep-surv .area,.ep-wc .area{fill:#2f6b5c;opacity:.1}.ep-surv .ln,.ep-wc .ln{fill:none;stroke:#2f6b5c;stroke-width:2.5}
.ep-surv .mk{stroke:#56635e;stroke-width:1}.ep-surv .dot{fill:#985d62;stroke:#fff;stroke-width:2}.ep-surv .lb{fill:#293d37;font-size:13px;font-weight:600}
.ep-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.ep-tabs .ghost{border-radius:16px}
.ep-feed{max-height:720px;overflow-y:auto}
.ep-band{display:flex;height:22px;gap:2px;margin-top:4px;font-size:11px}
.ep-band span{display:flex;align-items:center;justify-content:center;border-radius:3px;color:#2b2925}
.ep-band .lo{background:#e3d9c6}.ep-band .mid{background:#cfdcc9}.ep-band .hi{background:#e8cf9c}
.ep-end{display:flex;justify-content:center;margin:24px 0 40px}.ep-end .primary{min-width:220px}
@media (max-width:760px){.ep-head,.ep-two,.ep-share,.ep-keepin{grid-template-columns:1fr}.ep h1{font-size:40px}.ep-keepin{text-align:center}.ep-sbox .share-img{max-width:100%}}

/* 轮回簿（11-13，lunhui.js） */
.lh{max-width:1040px;margin:24px auto;padding:0 14px;font-family:-apple-system,'PingFang SC','Noto Sans SC',sans-serif;color:var(--ink)}
.lh-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}
.lh h1{font-family:var(--serif);font-size:40px;font-weight:600;letter-spacing:8px;margin:0}
.lh-head{display:grid;grid-template-columns:140px 1fr;gap:24px;align-items:center}
.lh-big{font-family:var(--serif);color:var(--accent);text-align:center}.lh-big b{font-size:72px;font-weight:600;line-height:1}.lh-big span{font-size:22px;margin-left:4px}
.lh-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 22px}
.lh-stats .k{font-size:12px;color:var(--muted)}.lh-stats .v{font-size:17px;font-weight:600;margin-top:3px}.lh-stats .v.small{font-size:14px;font-weight:400}
.lh-stones{grid-column:1/-1;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.lh-stones i{width:12px;height:9px;border-radius:50%;background:#b9bdb5;display:inline-block}
.lh-grid{width:100%;border-collapse:separate;border-spacing:4px;font-size:13px}
.lh-grid th{color:var(--muted);font-weight:400;font-size:12px}
.lh-grid td{background:#eef0ec;color:#a3aba6;text-align:center;height:44px;border-radius:4px}
.lh-grid td.on{background:color-mix(in srgb,var(--c) 30%,#fff);color:var(--ink)}.lh-grid td.on b{font-size:18px}
.lh-spec{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.lh-spec span{border:1px dashed var(--line);border-radius:14px;padding:3px 10px;font-size:12px;color:#a3aba6}.lh-spec span.on{border-style:solid;color:var(--ink);background:#f6f1e6}
.lh-tex{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.lh-tex>div{border:1px dashed var(--line);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:2px;min-height:64px}
.lh-tex i{width:100%;height:16px;border-radius:3px;background:#eef0ec}
.lh-tex b{font-family:var(--serif);font-size:15px;font-weight:600;color:#a3aba6}.lh-tex span{font-size:11px;color:#a3aba6}
.lh-tex>div.on{border-style:solid;background:color-mix(in srgb,var(--c) 10%,#fff)}.lh-tex>div.on i{background:var(--c)}.lh-tex>div.on b,.lh-tex>div.on span{color:var(--ink)}
.lh-river{width:100%;height:auto;display:block}.lh-river .t{fill:#7b8882;font-size:11px}.lh-river .n{fill:#56635e;font-size:10px}
.lh-river .era{fill:#eef1ed}.lh-river .war{fill:#f1dcd6}
.lh-life{border-bottom:1px solid var(--line);padding:12px 0}
.lh-life summary{display:grid;grid-template-columns:70px 1fr;gap:12px;cursor:pointer;list-style:none}.lh-life summary::-webkit-details-marker{display:none}
.lh-life.un{display:grid;grid-template-columns:70px 1fr;gap:12px;opacity:.6}
.lh-life .no{font-family:var(--serif);color:var(--accent);font-size:16px}
.lh-life .nm{font-weight:600;font-size:15px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lh-life .nm .ep-tex{font-size:12px;padding:2px 10px}
.lh-life .ln{color:#56635e;font-size:14px;margin-top:4px}
.lh-life .ep-moments{margin:8px 0 0 82px}
.ep-past{font-family:var(--serif);color:#8c4356;font-size:16px;margin:10px 0 0}
.ep-end{gap:12px}
@media (max-width:760px){.lh-head{grid-template-columns:1fr}.lh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lh-tex{grid-template-columns:repeat(2,minmax(0,1fr))}.lh-life .ep-moments{margin-left:0}}
