
:root{
  --paper:#FBF6EC; --card:#FFFFFF; --card-sub:#FFFDF8; --ink:#26221B; --ink2:#6B6257; --ink3:#9C9286;
  --line:#E4DAC6; --line2:#EEE5D2; --gold:#B08A3E; --gold-soft:#F0E3C4; --jade:#1F8A4C; --jade-soft:#E2F1E6;
  --mono:"SF Mono",Menlo,Consolas,monospace; --kai:"Kaiti SC",STKaiti,"Noto Serif SC",serif;
  --serif:"Songti SC","STSong","Noto Serif SC",serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,"PingFang SC","Hiragino Sans GB",sans-serif;background:var(--paper);color:var(--ink);
  padding-bottom:calc(24px + env(safe-area-inset-bottom));min-height:100vh}
.wrap{max-width:720px;margin:0 auto;padding:0 18px}
/* 顶栏 */
.top{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 0 8px}
.back{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.75);border:1px solid #E5DECC;border-radius:999px;
  padding:6px 13px;font-size:12.5px;color:var(--ink);text-decoration:none}
.back:active{transform:scale(.95)}
.top .sp{flex:1}
.top .tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--gold)}
/* Hero */
.hero{padding:14px 0 4px}
.hero .kick{font-family:var(--mono);font-size:9.5px;letter-spacing:.26em;color:var(--gold);font-weight:700}
.hero h1{font-family:-apple-system,"PingFang SC","Hiragino Sans GB",sans-serif;
  font-size:32px;font-weight:900;line-height:1.32;letter-spacing:1px;margin-top:8px}
.hero h1 em{font-style:normal;color:var(--jade);position:relative}
.hero h1 em::after{content:"";position:absolute;left:-2px;right:-2px;bottom:1px;height:8px;border-radius:5px;
  background:rgba(31,138,76,.16);z-index:-1}
.hero .sub{font-size:12.5px;color:var(--ink2);line-height:1.9;margin-top:8px}
.stats{display:flex;gap:10px;margin:16px 0 6px}
.st{flex:1;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:11px 13px;box-shadow:0 2px 0 var(--line)}
.st b{display:block;font-family:var(--mono);font-size:22px;line-height:1.1;color:var(--ink)}
.st b i{font-style:normal;font-size:11px;color:var(--ink3);margin-left:2px}
.st span{display:block;font-size:10.5px;color:var(--ink3);letter-spacing:.08em;margin-top:4px}
.bar{height:6px;border-radius:999px;background:var(--line2);overflow:hidden;margin:12px 0 4px}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--jade));transition:width .5s var(--ease)}
.bar-t{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--ink3)}
.cont{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:14px 0 4px;padding:13px;
  border:none;border-radius:999px;background:linear-gradient(120deg,#2E9159,#1F8A4C);color:#FFFDF8;
  font-size:14px;font-weight:800;font-family:inherit;letter-spacing:.06em;
  cursor:pointer;box-shadow:0 3px 0 #16713A,0 8px 18px rgba(31,138,76,.18)}
.cont:active{transform:translateY(2px);box-shadow:0 1px 0 #16713A}
.cont .k{font-family:var(--mono);font-size:11px;opacity:.6;font-weight:400}
/* 列表 */
.sechead{display:flex;align-items:baseline;justify-content:space-between;margin:26px 0 10px}
.sechead h2{font-family:var(--serif);font-size:18px;letter-spacing:1px}
.sechead span{font-family:var(--mono);font-size:9.5px;color:var(--ink3);letter-spacing:.14em}
.list{display:grid;gap:10px}
@media(min-width:680px){.list{grid-template-columns:1fr 1fr}}
.lv{display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid var(--line2);border-radius:15px;
  padding:13px 13px 12px;text-decoration:none;color:inherit;position:relative;overflow:hidden;
  box-shadow:0 2px 0 var(--line);transition:transform .16s,border-color .2s}
.lv:active{transform:scale(.985)}
.lv:hover{border-color:var(--acc)}
.lv::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--acc)}
.lv .no{flex:none;width:38px;text-align:center}
.lv .no b{display:block;font-family:var(--mono);font-size:19px;line-height:1;color:var(--acc)}
.lv .no span{display:block;font-size:8.5px;letter-spacing:.14em;color:var(--ink3);margin-top:3px}
.lv .body{min-width:0;flex:1}
.lv h3{font-family:var(--serif);font-size:16.5px;line-height:1.35;letter-spacing:.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv p{font-size:11px;color:var(--ink3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv .foot{display:flex;align-items:center;gap:8px;margin-top:9px}
.lv .pi{flex:1;height:4px;border-radius:999px;background:var(--line2);overflow:hidden}
.lv .pi i{display:block;height:100%;width:0;background:var(--acc)}
.lv .pn{font-family:var(--mono);font-size:9.5px;color:var(--ink3);white-space:nowrap}
.lv .pn b{color:var(--acc)}
.lv.done .pn b{color:var(--jade)}
.lv .chk{position:absolute;right:10px;top:10px;color:var(--jade);font-size:12px;display:none}
.lv.done .chk{display:block}
/* 页尾 */
.foot{margin:28px 0 6px;padding:14px;background:var(--card-sub);border:1px solid var(--line2);border-radius:14px}
.foot h4{font-size:10.5px;letter-spacing:.2em;color:var(--gold);margin-bottom:6px}
.foot p{font-size:11.5px;color:var(--ink2);line-height:1.9}
.foot .src{font-family:var(--mono);font-size:10.5px;color:var(--ink3);word-break:break-all;margin-top:6px}
