@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0d0d0d;
  --fg:#e8e8e8;
  --dim:#666;
  --link:#ccc;
  --accent:#fff;
  --card-bg:#161616;
  --border:#2a2a2a;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
}
body{background:var(--bg);color:var(--fg);font:16px/1.7 var(--sans);font-weight:300;min-height:100vh;-webkit-font-smoothing:antialiased}
.container{max-width:800px;margin:0 auto;padding:3rem 2rem}

/* Header */
header{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.site-title{font:700 1.8rem/1 var(--serif);color:var(--accent);text-decoration:none;letter-spacing:.02em}
.site-title:hover{opacity:.8}
nav{margin-top:.75rem}
nav a{color:var(--dim);text-decoration:none;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}
nav a:hover{color:var(--accent)}

/* Hero */
.hero{position:relative;margin:-3rem -2rem 3rem;overflow:hidden;height:320px}
.hero img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.2);opacity:.6}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(transparent 30%,var(--bg));display:flex;align-items:flex-end;padding:2rem 2rem 2.5rem}
.hero-text{font:italic 400 2rem/1.3 var(--serif);color:var(--accent);max-width:500px}

/* Post list */
.post-list{list-style:none;display:flex;flex-direction:column;gap:1.5rem}
.post-card{background:var(--card-bg);border:1px solid var(--border);border-radius:4px;overflow:hidden;display:flex;transition:border-color .2s}
.post-card:hover{border-color:#444}
.post-card-img{width:160px;min-height:140px;flex-shrink:0;overflow:hidden}
.post-card-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.1);opacity:.7;transition:opacity .2s}
.post-card:hover .post-card-img img{opacity:.9}
.post-card-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;justify-content:center;gap:.4rem}
.post-card-body .date{color:var(--dim);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.post-card-body h2{font:700 1.15rem/1.3 var(--serif);color:var(--accent);margin:0}
.post-card-body h2 a{color:inherit;text-decoration:none}
.post-card-body h2 a:hover{opacity:.8}
.post-card-body .summary{color:var(--dim);font-size:.85rem;line-height:1.5}
.post-card-body .tags{display:flex;gap:.5rem;flex-wrap:wrap}
.tag{color:var(--dim);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--border);padding:.1rem .4rem;border-radius:2px}

/* Single post */
article{max-width:680px}
.post-meta{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.post-meta .date{color:var(--dim);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.post-meta .tags{margin-top:.5rem;display:flex;gap:.5rem}
article h1{font:700 2.2rem/1.2 var(--serif);color:var(--accent);margin-bottom:1rem;letter-spacing:.01em}
.summary{color:var(--dim);font-style:italic;font-family:var(--serif);font-size:1.05rem;margin-bottom:2rem;line-height:1.6}
.post-body{line-height:1.9;font-size:1rem;letter-spacing:.01em}
.post-body h2{font:700 1.4rem/1.3 var(--serif);color:var(--accent);margin:2.5rem 0 1rem}
.post-body h3{font:500 1.1rem/1.4 var(--sans);color:var(--accent);margin:2rem 0 .75rem}
.post-body p{margin-bottom:1.25rem}
.post-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.post-body pre{background:#111;padding:1.25rem;overflow-x:auto;border:1px solid var(--border);border-radius:4px;margin:1.5rem 0;font-size:.85rem;line-height:1.6}
.post-body code{color:#ccc;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.85rem}
.post-body pre code{color:var(--fg)}
.post-body blockquote{border-left:2px solid var(--dim);padding:0 0 0 1.5rem;margin:1.5rem 0;color:var(--dim);font:italic 400 1.05rem/1.6 var(--serif)}
.post-body img{max-width:100%;border-radius:4px;margin:1.5rem 0}

.back{display:inline-block;margin-top:3rem;color:var(--dim);text-decoration:none;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}
.back:hover{color:var(--accent)}

/* Footer */
footer{margin-top:4rem;border-top:1px solid var(--border);padding-top:1.5rem;color:var(--dim);font-size:.75rem;letter-spacing:.03em}

/* Responsive */
@media(max-width:600px){
  .container{padding:2rem 1.25rem}
  .hero{height:220px;margin:-2rem -1.25rem 2rem}
  .hero-text{font-size:1.4rem}
  article h1{font-size:1.6rem}
  .post-card{flex-direction:column}
  .post-card-img{width:100%;height:160px}
}
