*{box-sizing:border-box}
body{margin:0;background:#f7f4ee;color:#29271f;font-family:"Microsoft YaHei","PingFang SC",sans-serif}
a{color:inherit}
.top{height:70px;background:#fbfaf7;border-bottom:1px solid #e9e3d8;display:flex;align-items:center;padding:0 6%;gap:30px;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.seal{width:36px;height:36px;border-radius:11px;background:#b64c38;color:#fff;display:grid;place-items:center;font:22px serif}
.brand b{display:block;letter-spacing:1px;font-size:14px}
.brand small{display:block;font-size:11px;color:#9d8b74;margin-top:2px}
.top nav{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:#8e877c;margin-left:auto}
.top nav a{text-decoration:none;white-space:nowrap}
.top nav a:hover{color:#b64c38}
.wrap{width:min(1060px,calc(100% - 40px));margin:22px auto 60px}
.hero{display:flex;align-items:center;gap:26px;background:linear-gradient(135deg,#fbf7f1,#f1e6d8);border:1px solid #eee2d2;border-radius:18px;padding:30px 34px}
.hero-seal{width:112px;height:112px;object-fit:contain;background:transparent;flex:none;display:block}
.eyebrow{color:#b64c38;font-size:11px;letter-spacing:4px;font-weight:bold;margin:0 0 6px}
h1{font:38px/1.35 serif;letter-spacing:3px;margin:0 0 8px}
.tagline{color:#b64c38;font-size:15px;margin:0 0 6px;font-family:serif}
.meta{color:#8a8074;font-size:12.5px;line-height:1.8;margin:0}
.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}
.btn{border:1px solid #dccfbd;background:#fff;color:#7a6a58;border-radius:20px;padding:9px 17px;font-size:12.5px;text-decoration:none;cursor:pointer}
.btn:hover{background:#fff8f0}
.btn.primary{background:#b64c38;border-color:#b64c38;color:#fff}
.panel{background:#fff;border:1px solid #eee5d8;border-radius:14px;padding:24px 28px;margin-top:16px}
.panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.panel-title h2{font:25px serif;margin:0}
.panel-title span{color:#aaa198;font-size:11.5px}
.panel h3{font:18px serif;margin:18px 0 6px;color:#3a332c}
.text{color:#5f574d;font-size:14px;line-height:2;margin:0;white-space:pre-wrap}
.spirit{color:#b64c38;font-family:serif;font-size:15px}
.note{color:#a2968a;font-size:12px;line-height:1.8;margin:14px 0 0;border-top:1px dashed #eee3d7;padding-top:12px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.card{background:#fffaf3;border:1px solid #eee3d7;border-radius:10px;padding:16px 18px}
.card h3{font:17px serif;margin:0 0 8px;color:#3a332c}
.card p{margin:0;color:#6d645a;font-size:13.5px;line-height:1.9}
.card blockquote{margin:10px 0 0;padding-left:12px;border-left:3px solid #e3c9b8;color:#b64c38;font-family:serif;font-size:13.5px;line-height:1.8}
.card .lesson{color:#8a8176;font-size:12px;margin-top:8px}
.card .quote{color:#8a4b36;font-family:serif;font-size:14px}
.card .small{color:#8a8176;font-size:12px;margin-top:7px;line-height:1.8}
.pill{display:inline-block;font-size:10.5px;color:#b64c38;background:#fbefe9;border-radius:4px;padding:2px 7px;margin-left:6px;vertical-align:2px}
.couplets{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.couplet{background:#fffaf3;border:1px solid #eee3d7;border-radius:9px;padding:13px 16px}
.couplet span{display:block;font:16px serif;color:#4b443b;line-height:1.8}
.couplet small{display:block;color:#a99c8c;font-size:11px;margin-top:5px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:10px 12px;border-bottom:1px solid #f0e8dc;text-align:left;vertical-align:top;line-height:1.8}
th{background:#fbf6ee;color:#8a7f71;font-weight:normal;white-space:nowrap}
td{color:#5f574d}
.fname{font-family:serif;color:#b64c38;white-space:nowrap}
.lineage{display:flex;flex-wrap:wrap;gap:8px}
.lnode{background:#fffaf3;border:1px solid #eee3d7;border-radius:9px;padding:9px 13px;display:flex;flex-direction:column;min-width:100px}
.lnode b{font:17px serif;color:#b64c38}
.lnode span{color:#8a8176;font-size:11.5px;margin-top:3px}
.stage{border-left:3px solid #b64c38;padding:4px 0 4px 14px;margin:14px 0}
.stage b{color:#3a332c;font-size:14px}
.stage p{color:#6d645a;font-size:13px;line-height:1.85;margin:5px 0 0}
.cta{background:#b64c38;color:#fff;border:0}
.cta h2{color:#fff}
.cta p{color:#f7e3d6;font-size:13.5px;line-height:1.9;margin:0}
.cta .btn{background:#fff;border-color:#fff;color:#b64c38}
.cta .btn.primary{background:#302e29;border-color:#302e29;color:#fff}
footer{background:#302e29;color:#aaa;padding:28px 7%;font-size:12px;line-height:1.9}
footer b{color:#fff}
footer a{color:#d8cbb8;text-decoration:none;margin-left:10px}
@media(max-width:800px){.top nav{display:none}.hero{flex-direction:column;align-items:flex-start;padding:24px}.hero-seal{width:76px;height:76px;font:44px serif;border-radius:20px}h1{font-size:29px}.grid,.couplets{grid-template-columns:1fr}.panel{padding:20px}}
@media print{.top,.actions,footer{display:none}.wrap{width:100%;margin:0}.panel{break-inside:avoid;border-color:#ddd}.hero{background:#fff}}

.hall-box{margin:14px 0 6px;border:1px solid #eee3d7;border-radius:14px;background:#fffdf9;overflow:hidden}
.hall-box-head{display:flex;justify-content:space-between;gap:10px;padding:12px 16px;background:#fbf7f1;border-bottom:1px solid #f0e6d8;font-size:13px;color:#8d3a2b;flex-wrap:wrap}
.hall-box-head span{font-size:11px;color:#a2968a}
.hall-jun{padding:10px 16px 0;font-size:12.5px;color:#6f655a;line-height:1.8}
.hall-box ul{list-style:none;margin:8px 0 0;padding:0 16px}
.hall-box li{display:grid;grid-template-columns:120px 1fr auto auto;gap:10px;align-items:center;padding:9px 0;border-top:1px dashed #f0eadf;font-size:12.5px;color:#6f655a}
.hall-box li b{color:#b64c38;font-weight:normal;font-size:13.5px}
.hall-box li em{font-style:normal;color:#a2968a;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.hall-box li a{font-size:11px;color:#b64c38;text-decoration:none;white-space:nowrap}
.hall-foot{padding:10px 16px 14px;border-top:1px dashed #f0eadf;font-size:12px}
.hall-foot a{color:#b64c38;text-decoration:none}
@media(max-width:640px){.hall-box li{grid-template-columns:1fr auto;gap:6px}.hall-box li em{grid-column:1/-1;max-width:none}}
