body {
  color: #e0e0e0;
  background-color: #161618;
  margin: 0;
  min-height: 100vh;

  /* Dark mode design tokens — set on body to override :root in first.css */
  --bg: #161618;
  --fg: #e0e0e0;
  --fg-muted: #8a8a8a;
  --fg-faint: #555;
  --accent: #e05555;
  --accent-glow: rgba(224, 85, 85, 0.06);
  --border: #2a2a2c;
  --surface: #1e1e20;
  --maincolor: #e05555;
  --bordercl: #2a2a2c;
  --hovercolor: darkseagreen;
}

html {
  background-color: #161618;
  min-height: 100%;
}

::-moz-selection {
  background: var(--accent);
  color: #fff;
  text-shadow: none;
}

::selection {
  background: var(--accent);
  color: #fff;
  text-shadow: none;
}

hr {
  border-top: 3px dotted var(--darkMaincolor);
}

code {
  background-color: #2a2a2c;
  color: #e0e0e0;
  padding: 0.1em 0.2em;
}

pre {
  background-color: #1e1e20;
  line-height: 1.4;
  overflow-x: auto;
  padding: 1em;
}

blockquote {
  border-color: var(--darkMaincolor);
}

h1, h2, h3, h4, h5, h6 {
  color: #ddd;
}

h1::before { color: var(--darkMaincolor); content: "[ "; }
h2::before { color: var(--darkMaincolor); content: "## "; }
h3::before { color: var(--darkMaincolor); content: "### "; }
h4::before { color: var(--darkMaincolor); content: "#### "; }
h5::before { color: var(--darkMaincolor); content: "##### "; }
h6::before { color: var(--darkMaincolor); content: "###### "; }
h1::after { color: var(--darkMaincolor); content: ' ]'; }

.title {
  color: #c2c1c1;
  letter-spacing: .03rem;
}

.toc {
  background-color: #1e1e20;
  color: #e0e0e0;
}

a {
  border-bottom: 2px solid var(--darkMaincolor);
  color: inherit;
}

a:hover {
  background-color: var(--darkMaincolor);
  color: black;
}

/* ── HEADER (dark) ── */
header {
  border-bottom-color: var(--border);
}

header nav a {
  color: var(--fg-muted);
}

header nav a:hover {
  color: var(--darkMaincolor);
  background: none;
}

header .main a {
  color: #e0e0e0;
  border-bottom: none;
}

header .main a:hover {
  background: none;
}

/* ── FEATURED POST (dark) ── */
.featured-post {
  background: var(--surface);
  border-color: var(--border);
  border-left-color: var(--accent);
}

.featured-label {
  color: var(--accent);
}

.featured-title a {
  color: var(--fg);
}

.featured-title a:hover {
  color: var(--accent);
}

.featured-meta {
  color: var(--fg-faint);
}

.featured-meta time {
  color: var(--fg-faint);
}

.featured-excerpt {
  color: var(--fg-muted);
}

.featured-footer {
  border-top-color: var(--border);
}

/* ── POST LIST (dark) ── */
.post-list-header {
  color: var(--fg-faint);
  border-bottom-color: var(--border);
}

.post-item {
  border-bottom-color: var(--border);
}

.post-item:hover {
  background: var(--accent-glow);
}

.post-item-title a {
  color: var(--fg);
}

.post-item-title a:hover {
  color: var(--accent);
  background: none;
}

.post-item-date {
  color: var(--fg-faint);
}

.post-item-desc {
  color: var(--fg-muted);
}

/* ── SHARED ELEMENTS (dark) ── */
.read-time {
  color: var(--fg-faint);
}

.tag-pill {
  color: var(--fg-muted);
  border-color: var(--border) !important;
}

.tag-pill:hover {
  border-color: var(--darkMaincolor) !important;
  color: var(--darkMaincolor);
  background: rgba(143, 188, 143, 0.08);
}

.draft-label {
  color: var(--darkMaincolor);
  border-color: var(--darkMaincolor);
  background: none;
}

/* ── PAGINATION (dark) ── */
.pagination a {
  color: var(--fg-muted);
  border-color: var(--border);
}

.pagination a:hover {
  border-color: var(--darkMaincolor);
  color: var(--darkMaincolor);
  background: none;
}

/* ── FOOTER (dark) ── */
footer {
  border-top-color: var(--border);
}

/* ── POST NAV (dark) ── */
.prevnext {
  border-top-color: var(--border);
}

.post-nav-compact a {
  color: var(--fg-faint);
}

.post-nav-compact a:hover {
  color: var(--darkMaincolor);
}

.footer-info {
  color: var(--fg-faint);
}

.compiled {
  color: var(--fg-faint);
}

/* ── MISC (dark) ── */
.site-description a {
  color: #ddd;
}

.site-description a:hover {
  color: black;
}

.tags a {
  border-bottom: 2px solid var(--darkMaincolor);
}

.tags a:hover {
  background-color: var(--darkMaincolor);
  color: black;
}

.list-item {
  border-bottom-color: var(--border);
}

.header nav, .footer {
  border-color: var(--border);
}

.highlight {
  background-color: #1e1e20;
}

.soc:hover {
  color: black;
}

time {
  color: var(--fg-faint);
}

/* ── TABLES (dark) ── */
table {
  border-color: #333;
}

table th {
  background-color: #252528;
  color: #e0e0e0;
  border-color: #333;
}

table td {
  background-color: #1e1e20;
  color: #d0d0d0;
  border-color: #333;
}

table tr:nth-child(even) td {
  background-color: #222225;
}

/* ── PHOTO GRID (dark) ── */
.page-subtitle {
  color: var(--fg-faint);
}

.photo-card {
  border-color: var(--border);
  background: var(--surface);
}

.photo-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.photo-card-title {
  color: var(--fg);
}

.photo-card-date {
  color: var(--fg-faint);
}

/* ── CODE LANGUAGE LABELS (dark) ── */
.highlight pre code[class=language-javaScript]::before,
.highlight pre code[class="language-js"]::before {
  content: "js";
  background: #f7df1e;
  color: black;
}
.highlight pre code[class*='language-yml']::before,
.highlight pre code[class*='language-yaml']::before {
  content: 'yaml';
  background: #f71e6a;
  color: white;
}
.highlight pre code[class*='language-shell']::before,
.highlight pre code[class*='language-bash']::before,
.highlight pre code[class*='language-sh']::before {
  content: 'shell';
  background: green;
  color: white;
}
.highlight pre code[class*='language-json']::before {
  content: 'json';
  background: dodgerblue;
  color: #000000;
}
.highlight pre code[class*='language-python']::before,
.highlight pre code[class*='language-py']::before {
  content: 'py';
  background: blue;
  color: yellow;
}
.highlight pre code[class*='language-css']::before {
  content: 'css';
  background: cyan;
  color: black;
}
.highlight pre code[class*='language-go']::before {
  content: 'Go';
  background: cyan;
  color: royalblue;
}
.highlight pre code[class*='language-md']::before {
  content: 'Markdown';
  background: royalblue;
  color: whitesmoke;
}