/* rendek-dark · terminal theme
   spec: docs/superpowers/specs/2026-07-11-terminal-theme-design.md */

:root {
  --bg:         #191a2a;
  --surface:    #212337;
  --panel:      #2f334d;
  --panel-edge: #3b4066;
  --ink:        #c8d3f5;
  --ink-dim:    #828bb8;
  --lav:        #b4c2f0;
  --green:      #c3e88d;
  --green-dim:  #a9c979;
  --blue:       #388ED6;
  --blue-soft:  #82aaff;
  --red:        #E84A4A;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--bg); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 16px;
  line-height: 1.6;
}
.page {
  max-width: 84ch;
  margin: 0 auto;
  padding: 32px 20px 48px;
}

a { color: var(--green); }
a:hover { color: var(--green-dim); }
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

.skip {
  position: absolute;
  left: -9999px;
  background: var(--green);
  color: var(--bg);
  padding: 8px 16px;
  font-family: var(--mono);
}
.skip:focus { left: 12px; top: 12px; z-index: 10; }

/* ---------- masthead ---------- */
.masthead { margin-bottom: 34px; }
.site-title {
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 2px;
}
.site-title a { color: var(--lav); text-decoration: none; }
.site-title .brace { color: var(--green); }
.cursor {
  display: inline-block;
  width: 11px;
  height: 22px;
  background: var(--green);
  vertical-align: -3px;
  margin-left: 6px;
  animation: blink 1.1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }
.tagline { color: var(--ink-dim); font-size: 13px; margin: 0 0 22px; }
.tagline .heart { color: var(--red); letter-spacing: -2px; }

.site-nav {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  font-size: 13.5px;
  border-top: 1px dashed var(--panel-edge);
  border-bottom: 1px dashed var(--panel-edge);
  padding: 12px 2px;
}
.site-nav a { color: var(--ink); text-decoration: none; text-transform: lowercase; }
.site-nav a::before { content: "./"; color: var(--ink-dim); }
.site-nav a:hover { color: var(--green); }

main { display: block; margin-top: 34px; }

/* ---------- post list (home) ---------- */
.post-entry {
  max-width: 72ch;
  margin-bottom: 36px;
  padding-left: 18px;
  border-left: 2px solid var(--panel);
}
.post-entry:hover, .post-entry:focus-within { border-left-color: var(--green); }
.date { color: var(--ink-dim); font-size: 12.5px; margin: 0; }
.date::before { content: "// "; }
.entry-title { font-size: 19px; line-height: 1.35; margin: 4px 0 10px; }
.entry-title a { color: var(--green); text-decoration: none; }
.entry-title a:hover { background: var(--green); color: var(--bg); }
.entry-summary { font-family: var(--sans); font-size: 15px; line-height: 1.65; }
.entry-summary p { margin: 0 0 12px; }
.readmore { margin: 0; font-size: 13px; }
.readmore a { color: var(--blue-soft); text-decoration: none; }
.readmore a::after { content: " →"; }
.readmore a:hover { text-decoration: underline; }
.tagrow { font-size: 12.5px; color: var(--ink-dim); margin: 8px 0 0; }
.tagrow a { color: var(--blue-soft); text-decoration: none; }
.tagrow a:hover { text-decoration: underline; }

/* ---------- single post ---------- */
.post { max-width: 72ch; }
.post-title {
  font-size: 24px;
  line-height: 1.3;
  color: var(--green);
  margin: 0 0 4px;
}
.post .content {
  font-family: var(--sans);
  font-size: 16.5px;
  line-height: 1.7;
  margin-top: 22px;
}
.post .content h2, .post .content h3, .post .content h4 {
  font-family: var(--mono);
  color: var(--lav);
  line-height: 1.3;
  margin: 1.6em 0 .5em;
}
.post .content h2 { font-size: 20px; }
.post .content h3 { font-size: 17px; }
.post .content h4 { font-size: 15.5px; }
.post .content img { max-width: 100%; height: auto; display: block; margin: 1.5em auto; }

/* code */
code { font-family: var(--mono); font-size: .92em; background: var(--surface); padding: 1px 5px; border-radius: 3px; }
pre, .highlight pre {
  background: var(--surface);
  border: 1px solid var(--panel-edge);
  border-radius: 6px;
  padding: 14px 16px;
  overflow-x: auto;
  font-size: 13px;
  line-height: 1.65;
}
pre code { background: none; padding: 0; }
.highlight { margin: 0 0 20px; }
.highlight .ln { color: var(--ink-dim); margin-right: 10px; user-select: none; }

/* tables (fixes blog-0ef) */
.table-wrap { overflow-x: auto; margin: 1.2em 0; }
table { border-collapse: collapse; font-size: .95em; }
.table-wrap table { margin: 0; }
th { background: var(--panel); text-align: left; }
th, td { border: 1px solid var(--panel-edge); padding: 6px 12px; }
tr:hover td { background: var(--surface); }

blockquote {
  background: var(--surface);
  border-left: 3px solid var(--green);
  margin: 1.5em 0;
  padding: .6em 14px;
}
blockquote p { margin: .3em 0; }

hr { border: 0; border-top: 1px dashed var(--panel-edge); margin: 2em 0; }

/* ---------- list / archive / terms ---------- */
.list-title { font-size: 22px; color: var(--lav); margin: 0 0 20px; }
.year { font-size: 16px; color: var(--blue-soft); margin: 26px 0 10px; }
.content-item { display: flex; gap: 14px; margin-bottom: 6px; font-size: 14px; }
.content-item .item-date { color: var(--ink-dim); flex: none; }
.content-item a { color: var(--ink); text-decoration: none; }
.content-item a:hover { color: var(--green); }
.terms { list-style: none; padding: 0; font-size: 14.5px; }
.terms li { margin-bottom: 8px; }

/* ---------- pagination ---------- */
.pagination {
  display: flex;
  gap: 18px;
  align-items: baseline;
  font-size: 13.5px;
  margin: 40px 0 0;
}
.pagination a { color: var(--blue-soft); text-decoration: none; }
.pagination a:hover { text-decoration: underline; }
.page-count { color: var(--ink-dim); }

/* ---------- footer ---------- */
.site-footer { margin-top: 56px; }
.footer-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--ink-dim);
  margin-bottom: 14px;
}
.footer-links a { color: var(--ink-dim); }
.footer-links a:hover { color: var(--green); }
.statusbar { display: flex; font-size: 12px; border-radius: 4px; overflow: hidden; }
.statusbar span { padding: 5px 14px; white-space: nowrap; }
.sb-mode { background: var(--green); color: var(--bg); font-weight: 700; }
.sb-file { background: var(--panel); color: var(--ink); flex: 1; overflow: hidden; text-overflow: ellipsis; }
.sb-pos { background: var(--blue); color: var(--bg); font-weight: 700; }

/* ---------- 404 ---------- */
.err-404 h1 { color: var(--green); }
