:root {
  --ink: #0A0A1A; --paper: #EFEDE4; --paper-deep: #E2E0D5; --card: #3A3A4A;
  --teal: #7EC8C8; --lavender: #9B8AC4; --ember: #FF8C42; --slate: #7A8A9A; --crimson: #C24958;
  --line: rgba(10,10,26,0.13); --line-light: rgba(239,237,228,0.15);
  --accent: #7EC8C8; --accent-ink: #2F7E7E;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: 'Inter', sans-serif; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }

/* ── NAV ─────────────────────────────────────── */
nav { position: sticky; top: 0; z-index: 100; background: var(--ink); border-bottom: 1px solid var(--line-light); padding: 0 5vw; height: 60px; display: flex; align-items: center; justify-content: space-between; }
.nav-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--paper); }
.nav-wordmark { font-family: 'EB Garamond', serif; font-size: 17px; font-weight: 500; letter-spacing: 0.01em; }
.nav-links { display: flex; align-items: center; gap: 24px; list-style: none; }
.nav-links a { font-size: 13.5px; font-weight: 500; color: var(--paper); text-decoration: none; opacity: 0.6; transition: opacity 0.15s; }
.nav-links a:hover { opacity: 1; }
.nav-links .nav-cta { background: var(--ember); color: var(--ink); padding: 6px 14px; border-radius: 6px; opacity: 1; font-weight: 600; font-size: 13px; }
.nav-links .nav-cta:hover { background: #ffa066; }

/* ── HERO ────────────────────────────────────── */
.hero { background: var(--ink); color: var(--paper); padding: 72px 5vw 60px; }
.hero-inner { max-width: 780px; margin: 0 auto; }
.hero-kicker { font-size: 11px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin-bottom: 16px; }
.hero-title { font-family: 'EB Garamond', serif; font-size: clamp(38px, 6vw, 60px); font-weight: 400; line-height: 1.04; letter-spacing: -0.01em; }
.hero-tagline { font-family: 'EB Garamond', serif; font-size: clamp(17px, 2.3vw, 22px); font-style: italic; line-height: 1.5; opacity: 0.85; max-width: 620px; margin-top: 18px; }

/* ── CONTENT ─────────────────────────────────── */
.content { padding: 52px 5vw 40px; max-width: 780px; margin: 0 auto; }
.empty { opacity: 0.6; font-style: italic; }

/* ── POST LIST ───────────────────────────────── */
.post { padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid var(--line); }
.post:last-of-type { border-bottom: none; margin-bottom: 0; }
.post-cover { display: block; margin-bottom: 20px; border-radius: 12px; overflow: hidden; }
.post-cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.post-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.post-date { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--card); opacity: 0.6; }
.post-title { font-family: 'EB Garamond', serif; font-size: clamp(26px, 3.6vw, 36px); font-weight: 500; line-height: 1.12; letter-spacing: -0.01em; margin-bottom: 14px; }
.post-title a { color: inherit; text-decoration: none; }
.post-title a:hover { color: var(--accent-ink); }
.post-excerpt { font-size: 16px; line-height: 1.78; }
.post-excerpt p { margin-bottom: 12px; }
.post-excerpt p:last-child { margin-bottom: 0; }
.read-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 13.5px; font-weight: 600; color: var(--accent-ink); text-decoration: none; }
.read-more:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── CATEGORY BADGE (colour per category) ────── */
.cat-badge { font-size: 10.5px; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; padding: 3px 10px; border-radius: 4px; border: 1px solid var(--accent); color: var(--accent-ink); background: rgba(126,200,200,0.14); text-decoration: none; }
.cat-badge[data-cat="travel"]        { color: #4E5D6B; border-color: var(--slate);    background: rgba(122,138,154,0.16); }
.cat-badge[data-cat="drawings"]      { color: #6E5AA6; border-color: var(--lavender); background: rgba(155,138,196,0.16); }
.cat-badge[data-cat="general"]       { color: #2F7E7E; border-color: var(--teal);     background: rgba(126,200,200,0.16); }
.cat-badge[data-cat="build-release"] { color: #A33B48; border-color: var(--crimson);  background: rgba(194,73,88,0.14);  }
.cat-badge[data-cat="ideas"]         { color: #B5561A; border-color: var(--ember);    background: rgba(255,140,66,0.16); }

/* ── SINGLE POST ─────────────────────────────── */
.post--single { padding-bottom: 0; border-bottom: none; }
.back-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 500; color: var(--ink); text-decoration: none; opacity: 0.55; margin-bottom: 28px; }
.back-link:hover { opacity: 1; }
.post-title.single { font-size: clamp(30px, 5vw, 46px); margin: 4px 0 20px; }
.post-cover.single { margin: 0 0 28px; }
.post-cover.single img { width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--line); background: #fff; display: block; }

/* content rendered from Markdown */
.content-body { font-size: 16.5px; line-height: 1.8; }
.content-body > * + * { margin-top: 18px; }
.content-body h2 { font-family: 'EB Garamond', serif; font-size: 27px; font-weight: 600; line-height: 1.15; margin-top: 36px; }
.content-body h3 { font-family: 'EB Garamond', serif; font-size: 22px; font-weight: 600; margin-top: 30px; }
.content-body a { color: var(--accent-ink); text-underline-offset: 3px; }
.content-body img { border-radius: 10px; border: 1px solid var(--line); background: #fff; display: block; }
.content-body blockquote { border-left: 3px solid var(--accent); padding: 4px 0 4px 20px; font-family: 'EB Garamond', serif; font-style: italic; font-size: 20px; line-height: 1.45; color: var(--ink); }
.content-body ul, .content-body ol { padding-left: 1.3em; }
.content-body li { margin-top: 6px; }
.content-body code { background: var(--paper-deep); border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; font-size: 0.9em; }
.content-body pre { background: var(--ink); color: var(--paper); border-radius: 10px; padding: 18px; overflow-x: auto; }
.content-body pre code { background: none; border: none; padding: 0; color: inherit; }
.content-body hr { border: none; border-top: 1px solid var(--line); }

.post-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.post-tags .tag { font-size: 12.5px; color: var(--accent-ink); text-decoration: none; opacity: 0.8; }
.post-tags .tag:hover { opacity: 1; text-decoration: underline; text-underline-offset: 2px; }

/* ── PAGINATION ──────────────────────────────── */
.paginator { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.paginator .page-link { font-size: 13.5px; font-weight: 600; color: var(--ink); text-decoration: none; opacity: 0.7; }
.paginator .page-link:hover { opacity: 1; }
.paginator .page-current { font-size: 12.5px; opacity: 0.5; }

/* ── FOOTER ──────────────────────────────────── */
.site-footer { background: var(--ink); color: var(--paper); border-top: 1px solid var(--line-light); padding: 32px 5vw; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 64px; }
.footer-brand { display: flex; align-items: center; gap: 8px; font-family: 'EB Garamond', serif; font-size: 15px; font-weight: 500; color: var(--paper); text-decoration: none; }
.footer-meta { font-size: 12px; opacity: 0.45; line-height: 1.6; text-align: right; }
.footer-meta a { color: inherit; text-decoration: none; opacity: 0.8; }
.footer-meta a:hover { opacity: 1; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* ── HAMBURGER / MOBILE NAV ──────────────────── */
.nav-toggle { display: none; background: none; border: 0; padding: 8px; margin-right: -8px; cursor: pointer; color: var(--paper); }
.nav-toggle svg { display: block; }
@media (max-width: 767px) {
  .nav-toggle { display: inline-flex; }
  .nav-links { position: absolute; top: 60px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--ink); border-bottom: 1px solid var(--line-light); padding: 6px 5vw 16px; display: none; box-shadow: 0 16px 32px rgba(10,10,26,0.22); }
  .nav-links.open { display: flex; }
  .nav-links li { width: 100%; }
  .nav-links a { display: block; padding: 13px 2px; font-size: 15px; opacity: 0.9; border-bottom: 1px solid var(--line-light); }
  .nav-links li:last-child a { border-bottom: 0; }
  .nav-links .nav-cta { display: inline-block; width: auto; margin-top: 12px; padding: 9px 16px; border-bottom: 0; }
}
@media (max-width: 520px) {
  .footer-meta { text-align: left; }
  nav { padding: 0 4vw; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } html { scroll-behavior: auto; } }
