:root{
  --paper:#f4ebd9;--paper2:#ece0c8;--ink:#241d18;--ink2:#564a3d;
  --zhu:#8c2b22;--zhu-l:#b4493c;--qing:#2f5566;--jin:#a8812f;--line:#d6c6a6;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --serif:Georgia,"Songti SC","Noto Serif CJK SC",serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--serif);line-height:1.85;font-size:16px;
  -webkit-text-size-adjust:100%;
}
.wrap{max-width:62rem;margin:0 auto;padding:0 1.1rem}
a{color:var(--zhu)}

/* 顶部题头：朱红双线 + 印章 */
.head{border-bottom:3px double var(--zhu);background:var(--paper2)}
.head .wrap{padding-top:2.4rem;padding-bottom:1.8rem}
.seal{
  display:inline-block;border:2px solid var(--zhu);color:var(--zhu);
  padding:.18rem .5rem;font-size:.78rem;letter-spacing:.22em;
  font-family:var(--mono);margin-bottom:1rem;
}
h1{
  margin:0 0 .6rem;font-weight:700;line-height:1.3;
}
h1 .kw{display:block;font-size:clamp(1.9rem,7vw,3.1rem);color:var(--zhu);letter-spacing:.04em}
h1 .sub{display:block;font-size:clamp(.95rem,2.8vw,1.22rem);color:var(--ink2);font-weight:400;margin-top:.35rem;letter-spacing:.04em}
.lede{margin:1.1rem 0 0;max-width:46rem;color:var(--ink2)}

.notice{
  margin:1.4rem 0 0;padding:.85rem 1rem;background:#fffaf0;
  border-left:5px solid var(--jin);font-size:.92rem;color:var(--ink2);
}
.notice strong{color:var(--ink)}

nav.toc{border-bottom:1px solid var(--line);background:var(--paper)}
nav.toc ul{list-style:none;display:flex;flex-wrap:wrap;gap:.2rem 1.4rem;margin:0;padding:.7rem 0}
nav.toc a{text-decoration:none;color:var(--qing);font-size:.9rem;border-bottom:1px dotted var(--qing)}

section{padding:2.6rem 0 .6rem}
h2{
  font-size:clamp(1.25rem,4vw,1.6rem);margin:0 0 .4rem;color:var(--ink);
  border-left:7px solid var(--zhu);padding-left:.6rem;line-height:1.4;
}
.h2note{color:var(--ink2);font-size:.9rem;margin:.1rem 0 1.4rem;padding-left:.75rem}
h3{font-size:1.02rem;margin:1.6rem 0 .5rem;color:var(--qing)}

/* 源流时间轴 */
.era-bar{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.3rem}
.era-bar button{
  font:inherit;font-size:.86rem;cursor:pointer;background:transparent;
  border:1px solid var(--line);color:var(--ink2);padding:.32rem .8rem;border-radius:0;
}
.era-bar button[aria-pressed="true"]{background:var(--zhu);border-color:var(--zhu);color:#fdf7ea}
.tl{list-style:none;margin:0;padding:0 0 0 1.6rem;border-left:2px solid var(--line)}
.tl li{position:relative;padding:0 0 1.5rem .3rem}
.tl li::before{
  content:"";position:absolute;left:-2.05rem;top:.62rem;width:.62rem;height:.62rem;
  background:var(--zhu);border-radius:50%;
}
.tl .when{font-family:var(--mono);font-size:.8rem;color:var(--jin);letter-spacing:.06em}
.tl .what{display:block;font-weight:700;margin:.1rem 0 .15rem}
.tl .desc{display:block;color:var(--ink2);font-size:.95rem}
.tl-empty{color:var(--ink2);font-style:italic}

/* 形象 */
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.1rem;margin-top:1rem}
.fig{border:1px solid var(--line);background:#fffaf0;padding:1rem}
.fig svg{display:block;width:100%;height:auto;max-width:9rem;margin:0 auto .6rem}
.fig h3{margin:0 0 .3rem;color:var(--ink)}
.fig p{margin:0;font-size:.92rem;color:var(--ink2)}

/* 作品检索 */
.filters{border:1px solid var(--line);background:var(--paper2);padding:1rem 1.1rem}
.frow{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.8rem}
.frow:last-child{margin-bottom:0}
.frow .lab{font-size:.84rem;color:var(--ink2);min-width:4.6rem;font-family:var(--mono);letter-spacing:.08em}
.chip{
  font:inherit;font-size:.85rem;cursor:pointer;border:1px solid var(--qing);
  color:var(--qing);background:transparent;padding:.25rem .7rem;
}
.chip[aria-pressed="true"]{background:var(--qing);color:#f2ead8}
.tally{margin:1.1rem 0 .9rem;font-family:var(--mono);font-size:.88rem;color:var(--zhu)}
.works{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.work{border:1px solid var(--line);border-top:4px solid var(--qing);background:#fffaf0;padding:.95rem 1.05rem}
.work.borrow{border-top-color:var(--jin)}
.work .t{font-size:1.08rem;font-weight:700;margin:0 0 .25rem}
.work .meta{font-family:var(--mono);font-size:.8rem;color:var(--ink2);letter-spacing:.04em;margin:0 0 .45rem}
.work .n{margin:0;font-size:.94rem;color:var(--ink2)}
.work .tag{display:inline-block;font-size:.74rem;border:1px solid var(--jin);color:var(--jin);padding:.05rem .4rem;margin-left:.4rem;font-family:var(--mono)}

.src{font-size:.9rem;color:var(--ink2)}
.src ol{padding-left:1.3rem}
.src li{margin-bottom:.4rem}

footer{margin-top:3rem;border-top:3px double var(--zhu);background:var(--paper2)}
footer .wrap{padding:1.5rem 1.1rem 2.4rem;font-size:.86rem;color:var(--ink2)}

/* 404 */
.p404{padding:4rem 0 2rem}
.p404 .big{font-family:var(--mono);font-size:clamp(3rem,16vw,6rem);color:var(--zhu);line-height:1;margin:0}
.backlink{display:inline-block;margin-top:1.4rem;border:1px solid var(--zhu);color:var(--zhu);padding:.45rem 1.1rem;text-decoration:none}

@media(max-width:560px){
  body{font-size:15.5px}
  .frow .lab{min-width:100%}
  nav.toc ul{gap:.2rem .9rem}
}

.src li,.work .n{overflow-wrap:anywhere}
