:root { --ink:#2b2a27; --muted:#7a766e; --bg:#f6f3ee; --line:#e2dcd2; --accent:#8a5a3c; --card:#fffdf9; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.65 Georgia, "Times New Roman", serif; }
header, main, footer { max-width:920px; margin:0 auto; padding:0 24px; }
header { padding-top:40px; display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--line); padding-bottom:18px; flex-wrap:wrap; gap:10px; }
.logo { font-size:21px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); text-decoration:none; }
nav a { color:var(--muted); text-decoration:none; margin-left:22px; font-size:15px; }
nav a.current, nav a:hover { color:var(--accent); }
h1 { font-weight:normal; font-size:34px; line-height:1.25; margin:52px 0 16px; max-width:640px; }
h2 { font-weight:normal; font-size:24px; margin:44px 0 12px; }
h3 { font-weight:normal; margin:0 0 6px; font-size:19px; }
.lead { color:var(--muted); max-width:580px; margin-bottom:44px; font-size:17px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:28px; margin:0 0 48px; }
.item a { color:inherit; text-decoration:none; }
.item p { margin:0; color:var(--muted); font-size:15px; }
.item figure { margin:0 0 12px; border-radius:4px; overflow:hidden; background:var(--card); border:1px solid var(--line); }
.item svg { display:block; width:100%; height:auto; }
.about { border-top:1px solid var(--line); padding:34px 0; color:var(--muted); max-width:640px; }
.hero { margin:36px 0 8px; border-radius:6px; overflow:hidden; border:1px solid var(--line); background:var(--card); }
.hero svg { display:block; width:100%; height:auto; }
.caption { color:var(--muted); font-size:14px; margin:8px 0 36px; }
.prose { max-width:640px; }
.prose p { margin:0 0 18px; }
dl.facts { display:grid; grid-template-columns:150px 1fr; gap:6px 16px; max-width:640px; margin:24px 0; }
dl.facts dt { color:var(--muted); } dl.facts dd { margin:0; }
footer { border-top:1px solid var(--line); margin-top:40px; padding:20px 24px 48px; color:var(--muted); font-size:14px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
footer a, .prose a { color:var(--accent); }
@media (max-width:600px){ h1{font-size:28px} nav a{margin-left:14px} }
