:root {
  --contrast: #222;
  --muted: #575760;
  --border: #e6e7e8;
  --canvas: #f7f8f9;
  --surface: #fff;
  --accent: #5092cc;
  --max-width: 1100px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--contrast);
  background: var(--canvas);
  font: 17px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a { color: var(--accent); }
img { display: block; max-width: 100%; height: auto; }
main { min-width: 0; }
.skip-link, .sr-only {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.skip-link:focus { z-index: 10; width: auto; height: auto; clip: auto; padding: 12px; background: #fff; }
.site-header { background: var(--surface); }
.header-inner {
  max-width: var(--max-width); min-height: 110px; margin: 0 auto; padding: 16px 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 30px;
}
.brand img { width: 200px; }
.brand-text { color: var(--contrast); font-size: 2rem; font-weight: 600; text-decoration: none; }
#site-nav { display: flex; align-items: center; gap: 25px; }
#site-nav a { color: var(--contrast); font-weight: 600; text-decoration: none; }
#site-nav a:hover, #site-nav a:focus { color: var(--accent); }
.menu-toggle { display: none; }
.page-shell {
  max-width: var(--max-width); margin: 40px auto; padding: 0 20px;
  display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 40px;
}
.entry, .archive-header, .sidebar {
  margin-bottom: 30px; padding: 40px; background: var(--surface);
}
.entry h1, .entry h2, .archive-header h1 { margin: 0 0 8px; line-height: 1.25; font-weight: 500; }
.entry h1 { font-size: clamp(2rem, 5vw, 2.7rem); }
.entry h2 { font-size: clamp(1.55rem, 4vw, 2rem); }
.entry h2 a, .sidebar h3 a { color: var(--contrast); text-decoration: none; }
.byline { margin: 0 0 24px; color: var(--muted); font-size: .875rem; }
.featured { width: 100%; margin: 24px auto; }
.card > a { display: block; max-width: 100%; }
.entry { min-width: 0; overflow-wrap: anywhere; }
.entry-content img, .entry-content iframe, .entry-content table { max-width: 100%; }
.entry-content h2, .entry-content h3 { line-height: 1.3; margin-top: 1.5em; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content td, .entry-content th { padding: 10px; border: 1px solid var(--border); }
.more { display: inline-block; margin-top: 5px; }
.sidebar { padding: 30px; }
.sidebar h2 { margin-top: 0; font-size: 1.25rem; }
.sidebar-card { padding: 0 0 24px; margin: 0 0 24px; border-bottom: 1px solid var(--border); }
.sidebar-card:last-child { border: 0; }
.sidebar-card h3 { margin: 12px 0 5px; font-size: 1rem; line-height: 1.35; }
.sidebar-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.pagination { display: flex; gap: 8px; list-style: none; padding: 0; }
.page-link { display: block; padding: 8px 13px; background: #fff; text-decoration: none; }
.active .page-link { color: #fff; background: var(--accent); }
.site-footer { background: var(--surface); }
.footer-inner { max-width: var(--max-width); margin: auto; padding: 35px 20px; color: var(--muted); font-size: .9rem; }
@media (max-width: 860px) {
  .header-inner { min-height: 90px; flex-wrap: wrap; }
  .menu-toggle { display: block; margin-left: auto; padding: 10px 14px; border: 0; background: var(--contrast); color: #fff; }
  #site-nav { display: none; flex: 1 0 100%; flex-direction: column; align-items: stretch; gap: 0; }
  #site-nav.is-open { display: flex; }
  #site-nav a { padding: 12px 0; border-top: 1px solid var(--border); }
  .page-shell { grid-template-columns: 1fr; margin-top: 24px; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .header-inner, .page-shell { padding-left: 16px; padding-right: 16px; }
  .entry, .archive-header, .sidebar { padding: 24px; }
}
