:root{--paper:#f5f0e5;--card:#fffaf0;--ink:#292720;--muted:#716f64;--red:#8c342c;--line:#ddd3bd;--gold:#bd9760}
*{box-sizing:border-box}
html{max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Songti SC","Noto Serif SC","STSong",serif;-webkit-font-smoothing:antialiased}
a{color:var(--red)}a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.shell{max-width:960px;margin:auto;padding:0 24px}
header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;font-weight:700;letter-spacing:.08em}.brand span{display:inline-grid;place-items:center;width:34px;height:34px;margin-right:10px;border:1px solid var(--red);font-size:19px}
nav{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}
main{padding:48px 0 72px}.eyebrow{font-size:11px;letter-spacing:.25em;color:var(--red);font-weight:700}.lead{max-width:680px;color:var(--muted);line-height:1.9;font-size:15px}
h1{font-size:clamp(34px,5vw,58px);font-weight:600;line-height:1.3;letter-spacing:.05em;margin:12px 0 18px}h2{font-size:21px;font-weight:600;letter-spacing:.08em;margin:0 0 14px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:38px}.person-card{display:block;min-width:0;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;box-shadow:0 4px 16px rgba(54,40,26,.05);transition:transform .2s,box-shadow .2s}.person-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(54,40,26,.1)}.portrait-mark{display:flex;height:220px;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--figure-color);color:#f4e7cb}.portrait-mark span{font-size:72px;line-height:1}.portrait-mark small{font-size:12px;letter-spacing:.2em}.person-card .copy{display:block;padding:14px}.person-card strong{display:block;font-size:18px}.person-card small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.6}.person-card p{margin:9px 0 0;font-size:12px;line-height:1.7;color:#5a554a}
.detail-hero{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:36px;align-items:center;margin:24px 0 36px}.detail-mark{display:flex;width:100%;aspect-ratio:3/4;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--figure-color);color:#f4e7cb;border:8px solid var(--card);box-shadow:0 14px 30px rgba(54,40,26,.12)}.detail-mark span{font-size:120px;line-height:1}.detail-mark small{font-size:18px;letter-spacing:.2em}.detail-hero .epithet{color:var(--red);letter-spacing:.12em}.detail-hero p{line-height:1.9;color:#514d42}.button{display:inline-block;margin-top:17px;padding:15px 23px;background:var(--red);color:#fffaf0;text-decoration:none;font-weight:700;letter-spacing:.08em;border-radius:3px}.button:hover{background:#6e2925}
.content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.section{background:var(--card);border:1px solid var(--line);padding:26px;min-width:0}.section p{margin:0;font-size:14px;line-height:2;color:#514d42}.section.wide{grid-column:1/-1}.section .tag{display:block;margin-bottom:12px;color:var(--red);font-size:11px;letter-spacing:.2em}
.backline{margin-top:30px;font-size:13px}.backline a{text-decoration:none}.backline a:hover{text-decoration:underline}
footer{border-top:1px solid var(--line);padding:20px 0 30px;color:#8d8678;font-size:11px;line-height:1.7}
@media(max-width:700px){.shell{padding:0 16px}header{padding:15px 0;align-items:flex-start}.brand{font-size:13px}.brand span{width:28px;height:28px;margin-right:6px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.portrait-mark{height:160px}.portrait-mark span{font-size:55px}.person-card .copy{padding:11px}.person-card strong{font-size:16px}.person-card p{font-size:11px}.detail-hero{grid-template-columns:1fr;gap:18px}.detail-mark{max-width:320px;margin:auto;aspect-ratio:4/3}.content{grid-template-columns:1fr}.section{padding:19px}.section.wide{grid-column:auto}main{padding:28px 0 48px}}
@media(max-width:360px){.grid{grid-template-columns:1fr}.portrait-mark{height:230px}}
.archive-search{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:28px 0 4px}.archive-search label{font-size:13px;color:var(--red);font-weight:700}.archive-search input{flex:1;min-width:180px;max-width:420px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:3px;font-size:14px;font-family:inherit;line-height:1.4;color:var(--ink)}.archive-search input:focus{outline:2px solid var(--gold);outline-offset:2px}.archive-search span{font-size:12px;color:var(--muted)}.person-card[hidden]{display:none}
