:root{
  --ink:#1C2541;
  --paper:#FBF9F4;
  --paper-raised:#FFFFFF;
  --gold:#B8863A;
  --maroon:#7A2430;
  --sage:#3F5D4E;
  --line:#E4DFD2;
  --text:#332F2A;
  --text-soft:#6B6459;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  line-height:1.6;
}
h1,h2,h3,.brand{font-family:'Fraunces',Georgia,serif;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1080px; margin:0 auto; padding:0 24px;}

header.site{background:var(--paper); border-bottom:1px solid var(--line);}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:20px 0;}
.brand{font-size:21px; font-weight:600; text-decoration:none; color:var(--ink); display:flex; align-items:center; gap:9px;}
.brand .mark{width:28px; height:28px; border:1.5px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--gold);}
nav.links{display:flex; gap:26px; font-size:15px;}
nav.links a{text-decoration:none; color:var(--text-soft);}
nav.links a:hover{color:var(--ink);}

.page-head{padding:48px 0 32px; border-bottom:1px solid var(--line);}
.page-head h1{font-size:clamp(30px,4vw,42px); margin:0 0 8px; color:var(--ink); font-weight:600;}
.page-head p{color:var(--text-soft); margin:0; max-width:56ch;}

.blog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; padding:48px 0;}
@media (max-width:720px){.blog-grid{grid-template-columns:1fr;}}

.post-card{border:1px solid var(--line); background:var(--paper-raised); display:flex; flex-direction:column;}
.post-card .thumb{width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--line);}
.post-card .body{padding:22px;}
.post-card .cat{font-size:12px; font-weight:600; color:var(--sage); text-transform:none; margin:0 0 10px;}
.post-card h2{font-size:20px; margin:0 0 10px; color:var(--ink); font-weight:600; line-height:1.3;}
.post-card h2 a{text-decoration:none;}
.post-card h2 a:hover{color:var(--maroon);}
.post-card p.excerpt{font-size:14px; color:var(--text-soft); margin:0 0 16px;}
.post-card .meta{font-size:13px; color:var(--text-soft); border-top:1px solid var(--line); padding-top:12px;}

.empty-state{padding:64px 24px; text-align:center; color:var(--text-soft); border:1px dashed var(--line);}

/* single post */
article.post-full{padding:48px 0 72px;}
article.post-full .cat{font-size:13px; font-weight:600; color:var(--sage); margin:0 0 12px;}
article.post-full h1{font-size:clamp(28px,4vw,44px); color:var(--ink); margin:0 0 16px; font-weight:600; max-width:22ch;}
article.post-full .meta{font-size:14px; color:var(--text-soft); margin:0 0 28px; padding-bottom:24px; border-bottom:1px solid var(--line);}
article.post-full .featured{width:100%; max-height:420px; object-fit:cover; margin-bottom:32px; border:1px solid var(--line);}
article.post-full .content{font-size:17px; color:var(--text); max-width:72ch;}
article.post-full .content p{margin:0 0 20px;}
article.post-full .content img{margin:24px 0; border:1px solid var(--line);}
article.post-full .content h2, article.post-full .content h3{color:var(--ink); margin:32px 0 14px;}
article.post-full .content ul, article.post-full .content ol{margin:0 0 20px; padding-left:22px;}
article.post-full .content li{margin-bottom:8px;}
article.post-full .content table{width:100%; border-collapse:collapse; margin:12px 0 32px; font-size:15px;}
article.post-full .content th{background:var(--ink); color:var(--paper); text-align:left; padding:12px 16px; font-weight:600;}
article.post-full .content td{padding:12px 16px; border-bottom:1px solid var(--line);}
article.post-full .content tbody tr:nth-child(even) td{background:#F3F0E6;}
article.post-full .content table{border:1px solid var(--line);}
.back-link{display:inline-block; margin-bottom:24px; font-size:14px; color:var(--maroon); text-decoration:none; font-weight:600;}

.pagination{display:flex; gap:8px; justify-content:center; padding:0 0 56px;}
.pagination a, .pagination span{
  border:1px solid var(--line); padding:8px 14px; font-size:14px; text-decoration:none; color:var(--text);
}
.pagination a:hover{border-color:var(--gold);}
.pagination .current{background:var(--ink); color:var(--paper); border-color:var(--ink);}

footer.site{border-top:1px solid var(--line); padding:32px 0; font-size:13px; color:var(--text-soft); text-align:center;}
