:root{
  --max: 1040px;
  --pad: 20px;
  --text: #111;
  --muted: #5e5e5e;
  --line: #e7e7e7;
  --bg: #fff;
  --bg2:#fbfbfb;
  --link:#0b3d91;
  --accent:#111;
}
*{ box-sizing: border-box; }
html,body{ margin:0; padding:0; background:var(--bg); color:var(--text); }
body{ font-family: ui-serif, Georgia, "Times New Roman", Times, serif; line-height: 1.6; text-rendering: optimizeLegibility; }
a{ color:var(--link); text-decoration:none; } a:hover{ text-decoration:underline; }
.container{ max-width:var(--max); margin:0 auto; padding:0 var(--pad); }
.site-header{ border-bottom:1px solid var(--line); background:var(--bg2); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px var(--pad); }
.brand{ display:flex; align-items:center; gap:12px; }
.brand-text{ display:flex; flex-direction:column; }
.brand-title{ font-size:1.05rem; font-weight:650; letter-spacing:.02em; }
.brand-tagline{ color:var(--muted); font-size:.95rem; }
.site-nav{ display:flex; flex-wrap:wrap; gap:14px; font-size:.98rem; }
.site-nav a{ color:var(--text); }
main{ padding:26px 0 50px; }
h1{ font-size:2.0rem; margin:0 0 14px; }
h2{ font-size:1.4rem; margin:28px 0 10px; }
h3{ font-size:1.12rem; margin:22px 0 8px; }
p{ margin:0 0 12px; }
.lead{ color:var(--muted); font-size:1.08rem; max-width:70ch; }
.card{ border:1px solid var(--line); padding:16px 18px; border-radius:12px; background:#fff; }
.grid{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:820px){ .grid-2{ grid-template-columns:1.1fr .9fr; } .grid-cat{ grid-template-columns:1fr 1fr; } }
@media (min-width:1040px){ .grid-cat{ grid-template-columns:1fr 1fr 1fr; } }
.muted{ color:var(--muted); }
.small{ font-size:.95rem; }
.meta{ width:100%; border-collapse:collapse; font-size:.98rem; }
.meta th,.meta td{ border-top:1px solid var(--line); padding:8px 0; vertical-align:top; }
.meta th{ width:220px; color:var(--muted); font-weight:650; padding-right:12px; }
.book-cover{ width:100%; max-width:380px; height:auto; border:1px solid var(--line); border-radius:10px; background:#fff; }
.btn{ display:inline-block; padding:10px 14px; border-radius:10px; border:1px solid var(--accent); color:var(--accent); background:#fff; font-weight:650; }
.btn:hover{ text-decoration:none; background:#f5f5f5; }
.kbd{ font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace; font-size:.92rem; padding:.12rem .35rem; border:1px solid var(--line); border-radius:7px; background:#fff; }
.site-footer{ border-top:1px solid var(--line); background:var(--bg2); }
.footer-inner{ padding:18px var(--pad); font-size:.95rem; }
.list{ margin:0; padding-left:1.05rem; }
hr{ border:0; border-top:1px solid var(--line); margin:22px 0; }
.prose h2{ margin-top:18px; }
.prose p{ margin:0 0 10px; }
