/* ==========================================================================
   文章正文排版（.prose）
   --------------------------------------------------------------------------
   这个文件是自包含的：字号与行距走 CSS 变量并带回退值，
   所以既能用在站点阅读页，也能直接用在后台的实时预览里 —— 保证所见即所得。
   外层只要设置 --prose-size / --prose-leading 就能实现"读者可调字号行距"。
   ========================================================================== */

.prose{
  font-size:var(--prose-size,17px);
  line-height:var(--prose-leading,1.95);
  color:var(--prose-ink,#e6dccd);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",
              system-ui,-apple-system,"Segoe UI",sans-serif;
  text-align:justify;
  text-justify:inter-ideograph;
  overflow-wrap:break-word;
  word-break:break-word;
}

.prose > *:first-child{ margin-top:0 }
.prose > *:last-child{ margin-bottom:0 }

.prose p{ margin:0 0 1.15em }

/* ---------- 标题 ---------- */
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{
  font-family:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",Georgia,serif;
  font-weight:600;
  line-height:1.5;
  color:#f3ead9;
  text-align:left;
  scroll-margin-top:5rem;
}
.prose h1{ font-size:1.5em;  margin:2.2em 0 .75em }
.prose h2{ font-size:1.34em; margin:2.2em 0 .8em; padding-bottom:.35em;
           border-bottom:1px solid rgba(230,220,205,.12) }
.prose h3{ font-size:1.16em; margin:1.9em 0 .6em }
.prose h4{ font-size:1.04em; margin:1.6em 0 .5em; color:#c9bda9 }
.prose h5,.prose h6{ font-size:1em; margin:1.4em 0 .5em; color:#a2937f }

/* ---------- 行内元素 ---------- */
.prose a{
  color:#e3ab68;
  text-decoration:none;
  border-bottom:1px solid rgba(227,171,104,.34);
  padding-bottom:.04em;
  transition:color .18s,border-color .18s;
}
.prose a:hover{ color:#f7cd97; border-bottom-color:#f7cd97 }

.prose strong{ font-weight:700; color:#fbf4e8 }
.prose em{ font-style:italic }
.prose del{ color:#8a8071; text-decoration:line-through }
.prose mark{ background:rgba(227,171,104,.24); color:#fdf4e4; padding:.05em .22em; border-radius:3px }
.prose sup{ font-size:.74em; vertical-align:super }
.prose sub{ font-size:.74em; vertical-align:sub }
.prose abbr{ border-bottom:1px dotted #8a8071; cursor:help }

/* ---------- 列表 ---------- */
.prose ul,.prose ol{ margin:0 0 1.15em; padding-left:1.65em }
.prose li{ margin:.34em 0 }
.prose li > ul,.prose li > ol{ margin:.34em 0 }
.prose ul.task-list{ padding-left:.2em }
.prose .task-list-item{ list-style:none; margin-left:0 }
.prose .task-list-item-checkbox{ margin-right:.55em }

/* ---------- 引用 ---------- */
.prose blockquote{
  margin:1.45em 0;
  padding:.2em 0 .2em 1.15em;
  border-left:3px solid rgba(227,171,104,.42);
  color:#a99d8a;
}
.prose blockquote p:last-child{ margin-bottom:0 }
.prose blockquote blockquote{ margin:1em 0 }

/* ---------- 分隔线 ---------- */
.prose hr{
  border:0; height:1px; background:rgba(230,220,205,.13);
  width:40%; margin:2.4em auto;
}

/* ---------- 图片 ---------- */
.prose img{
  display:block; max-width:100%; height:auto;
  margin:1.7em auto; border-radius:7px;
}
.prose figure{ margin:1.7em 0 }
.prose figure img{ margin:0 auto }
.prose figcaption{
  margin-top:.7em; text-align:center;
  font-size:.82em; color:#8a8071;
}

/* ---------- 代码 ---------- */
.prose code{
  font-family:"Cascadia Mono",Consolas,"DejaVu Sans Mono","Liberation Mono",monospace;
  font-size:.875em;
  background:rgba(255,240,220,.06);
  color:#e8cb9c;
  padding:.16em .42em;
  border-radius:4px;
}
.prose pre{
  background:rgba(0,0,0,.42);
  border:1px solid rgba(230,220,205,.11);
  border-radius:8px;
  padding:1em 1.15em;
  margin:1.5em 0;
  overflow-x:auto;
  text-align:left;
  line-height:1.65;
}
.prose pre code{
  background:none; padding:0; color:#dbcfbc; font-size:.86em;
}

/* ---------- 表格 ---------- */
.prose table{
  width:100%; border-collapse:collapse;
  margin:1.55em 0; font-size:.92em;
  display:block; overflow-x:auto;
}
.prose th,.prose td{
  border:1px solid rgba(230,220,205,.13);
  padding:.52em .85em; text-align:left;
}
.prose th{ background:rgba(255,240,220,.055); font-weight:600; color:#f3ead9 }

/* ---------- 定义列表 ---------- */
.prose dl{ margin:0 0 1.15em }
.prose dt{ font-weight:600; color:#f3ead9 }
.prose dd{ margin:.2em 0 .85em 1.4em; color:#a99d8a }

/* ---------- 脚注 ---------- */
.prose .footnote{ font-size:.88em; color:#a99d8a; margin-top:2.5em }
.prose .footnote-ref a{ border-bottom:0 }

/* ---------- 数学公式（KaTeX） ---------- */
.prose .katex{ font-size:1.06em }
.prose .katex-display{
  margin:1.45em 0;
  padding:.35em 0;
  overflow-x:auto;
  overflow-y:hidden;
}
.prose .arithmatex{ text-align:center }
.prose .arithmatex > .katex{ text-align:initial }

/* ---------- 其它 ---------- */
.prose :target{ background:rgba(227,171,104,.1); border-radius:3px }

.prose-error{
  color:#e0906f;
  border:1px dashed rgba(224,144,111,.5);
  border-radius:6px;
  padding:.85em 1.05em;
  font-size:.92em;
}

@media print{
  .prose{ color:#111; font-size:11pt; line-height:1.75 }
  .prose h1,.prose h2,.prose h3,.prose h4{ color:#000 }
  .prose a{ color:#000; border-bottom:0 }
  .prose pre{ background:#f4f4f4; border-color:#ccc }
}
