:root {
  --bg: #f6f5ef;
  --surface: #ffffff;
  --text: #1f2923;
  --muted: #667269;
  --accent: #365c45;
  --accent-soft: #e2ebe5;
  --border: #dfe3dd;
  --max: 1120px;
  --radius: 18px;
}

html[data-theme="navy"] { --bg:#f5f7fa; --surface:#fff; --text:#182234; --muted:#657086; --accent:#244c7a; --accent-soft:#e4edf7; --border:#dde4ec; }
html[data-theme="wine"] { --bg:#faf5f6; --surface:#fff; --text:#332024; --muted:#7c666a; --accent:#7a3042; --accent-soft:#f4e4e8; --border:#eadde0; }
html[data-theme="sand"] { --bg:#fbf8f1; --surface:#fff; --text:#30291e; --muted:#776c5c; --accent:#7c6040; --accent-soft:#f0e7d8; --border:#e9e0d2; }
html[data-theme="charcoal"] { --bg:#f4f4f4; --surface:#fff; --text:#181818; --muted:#696969; --accent:#333; --accent-soft:#e9e9e9; --border:#dedede; }

* { box-sizing: border-box; }
body { margin:0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--text); background:var(--bg); line-height:1.7; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.container { width:min(calc(100% - 36px), var(--max)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:20; backdrop-filter:blur(14px); background:color-mix(in srgb, var(--bg) 88%, transparent); border-bottom:1px solid var(--border); }
.nav { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { font-family: Georgia, "Times New Roman", serif; font-size:1.28rem; font-weight:700; letter-spacing:-.02em; }
.nav-links { display:flex; gap:24px; align-items:center; font-size:.95rem; }
.nav-links a:hover { color:var(--accent); }
.nav-toggle { display:none; border:1px solid var(--border); background:var(--surface); border-radius:10px; padding:8px 11px; }
.hero { padding:92px 0 70px; display:grid; grid-template-columns:1.4fr .7fr; align-items:center; gap:64px; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-weight:700; color:var(--accent); font-size:.78rem; }
h1,h2,h3 { font-family: Georgia, "Times New Roman", serif; line-height:1.08; letter-spacing:-.025em; }
h1 { font-size:clamp(3.1rem, 8vw, 6.8rem); margin:.12em 0 .2em; font-weight:600; }
h2 { font-size:clamp(2rem, 4vw, 3.2rem); margin:0 0 20px; }
h3 { font-size:1.45rem; margin:.2em 0 .55em; }
.lede { font-size:clamp(1.1rem, 2vw, 1.38rem); max-width:720px; color:var(--muted); }
.hero-photo { aspect-ratio:1/1; border-radius:32px; overflow:hidden; border:1px solid var(--border); background:var(--surface); }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; border-radius:999px; border:1px solid var(--accent); background:var(--accent); color:white; font-weight:650; }
.button.secondary { background:transparent; color:var(--accent); }
.section { padding:70px 0; border-top:1px solid var(--border); }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.section-head p { max-width:620px; color:var(--muted); margin:0; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:26px; min-height:220px; transition:transform .18s ease, box-shadow .18s ease; }
.card:hover { transform:translateY(-3px); box-shadow:0 14px 36px rgba(20,30,24,.07); }
.meta { display:flex; flex-wrap:wrap; gap:8px 14px; color:var(--muted); font-size:.88rem; }
.tag { display:inline-block; background:var(--accent-soft); color:var(--accent); border-radius:999px; padding:5px 10px; font-size:.78rem; font-weight:700; }
.card p { color:var(--muted); }
.text-link { color:var(--accent); font-weight:700; }
.page-hero { padding:78px 0 44px; border-bottom:1px solid var(--border); }
.page-hero h1 { font-size:clamp(2.8rem,7vw,5.5rem); }
.prose { width:min(calc(100% - 36px), 760px); margin:56px auto 88px; }
.prose p,.prose li { font-size:1.08rem; }
.prose h2 { margin-top:2.2em; font-size:2rem; }
.prose h3 { margin-top:1.8em; }
.prose blockquote { border-left:4px solid var(--accent); margin:2rem 0; padding:.5rem 1.3rem; color:var(--muted); }
.note-list { display:grid; gap:14px; }
.note { background:var(--surface); border:1px solid var(--border); padding:20px 22px; border-radius:14px; }
.note time { color:var(--muted); font-size:.86rem; }
.empty { color:var(--muted); font-style:italic; }
.site-footer { border-top:1px solid var(--border); padding:36px 0 52px; color:var(--muted); font-size:.92rem; }
.footer-row { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.socials { display:flex; gap:16px; flex-wrap:wrap; }
.admin-link { opacity:.72; }
.skip-link { position:absolute; left:18px; top:-100px; z-index:50; padding:10px 18px; background:var(--surface); border:2px solid var(--accent); }
.skip-link:focus { top:10px; }
a:focus-visible, button:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.nav-links [aria-current="page"] { color:var(--accent); font-weight:700; }
.biography { white-space:pre-wrap; }
.hero-photo img { width:100%; height:100%; object-fit:cover; }
.prose pre { overflow-x:auto; background:var(--accent-soft); padding:20px; border-radius:10px; }
.prose a { color:var(--accent); text-decoration:underline; }
@media (prefers-reduced-motion: reduce) { .card { transition:none; } }

@media (max-width: 820px) {
  .hero { grid-template-columns:1fr; padding-top:58px; gap:34px; }
  .hero-photo { width:min(360px, 100%); }
  .grid { grid-template-columns:1fr; }
  .nav-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:72px; left:18px; right:18px; flex-direction:column; align-items:flex-start; padding:18px; border:1px solid var(--border); border-radius:14px; background:var(--surface); }
  .nav-links.open { display:flex; }
  .section-head { align-items:flex-start; flex-direction:column; }
}
