/* Post content, shared between the public site and the editor preview.
 * Every rule is scoped under .prose so the block renders identically
 * wherever it is embedded; colors come from the including page's
 * variables (--fg, --muted, --accent, --rule), which both stylesheets
 * define with the same palette. */

.prose {
  max-width: 648px;
  margin: 0 auto;
  color: var(--fg);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 17px;
  line-height: 1.6;
}

.prose h1, .prose h2, .prose h3 { line-height: 1.25; }
.prose h1 { font-size: 1.7em; }

.prose a { color: var(--accent); }

.prose .post-meta { color: var(--muted); margin-top: -0.8em; }

.prose figure { margin: 24px 0; text-align: center; }
.prose img { max-width: 100%; height: auto; }
.prose figcaption { color: var(--muted); font-size: 0.9em; margin-top: 8px; }

.prose a.attachment::before { content: "\2913\00a0"; } /* ⤓ */
.prose a.attachment { font-weight: 600; }

.prose blockquote {
  margin: 16px 0;
  padding: 0 16px;
  border-left: 4px solid var(--rule);
  color: var(--muted);
}

.prose code, .prose pre {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.9em;
}
.prose pre {
  padding: 12px;
  overflow-x: auto;
  border: 1px solid var(--rule);
  border-radius: 6px;
}

.prose table { border-collapse: collapse; }
.prose th, .prose td { border: 1px solid var(--rule); padding: 6px 12px; }

.prose hr { border: none; border-top: 1px solid var(--rule); margin: 32px 0; }

/* Editor preview only: a reference to a deleted or renamed file.
 * Publishing refuses such posts, so this never appears on the site. */
.prose .missing-image { color: var(--danger, #cf222e); font-weight: 600; }
