/* ========================================================================== 文章正文排版 · prose ========================================================================== */ .prose { font-size: clamp(1rem, 0.4rem + 1.6vw, 1.125rem); line-height: 1.85; color: var(--ink); word-wrap: break-word; overflow-wrap: break-word; } .prose > * + * { margin-top: 1.4em; } /* 标题 */ .prose h2, .prose h3, .prose h4 { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.02em; scroll-margin-top: calc(var(--nav-h) + 24px); } .prose h2 { font-size: clamp(1.4rem, 1rem + 1.8vw, 1.75rem); margin-top: 2.2em; padding-bottom: .4em; border-bottom: 1px solid rgba(79,163,255,.25); position: relative; } .prose h2::before { content: ''; display: inline-block; width: 5px; height: 1em; margin-right: 12px; vertical-align: -0.05em; border-radius: 6px; background: linear-gradient(180deg, var(--blue-500), var(--cyan-400)); } .prose h3 { font-size: clamp(1.2rem, 0.9rem + 1.2vw, 1.4rem); margin-top: 1.8em; color: var(--ink); } .prose h4 { font-size: 1.05rem; margin-top: 1.6em; } .prose p { color: var(--ink); } .prose a { color: var(--blue-600); text-decoration: underline; text-decoration-color: rgba(47,127,224,.35); text-underline-offset: 3px; } .prose a:hover { text-decoration-color: var(--blue-500); } /* 列表 */ .prose ul, .prose ol { padding-left: 1.4em; } .prose ul { list-style: disc; } .prose ol { list-style: decimal; } .prose li { margin-top: .4em; } .prose li::marker { color: var(--blue-500); } /* 引用 */ .prose blockquote { padding: 1em 1.4em; margin: 1.6em 0; border-left: 4px solid var(--blue-400); border-radius: 0 var(--r-md) var(--r-md) 0; background: linear-gradient(90deg, rgba(132,194,255,.12), transparent); color: var(--ink-soft); font-style: normal; } .prose blockquote p { color: var(--ink-soft); } /* 代码 */ .prose :not(pre) > code { font-family: var(--font-mono); font-size: 0.88em; padding: 2px 7px; border-radius: 6px; background: rgba(47,127,224,.12); color: var(--blue-700); border: 1px solid rgba(47,127,224,.18); word-break: break-word; } .prose pre { padding: 1.15em 1.4em; border-radius: var(--r-md); overflow-x: auto; border: 1px solid var(--glass-border); background: rgba(255,255,255,.62); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: var(--glass-shadow); font-size: 0.88rem; line-height: 1.7; } .prose pre code { font-family: var(--font-mono); background: none; border: 0; padding: 0; color: inherit; } /* 行内元素 */ .prose strong { font-weight: 800; color: var(--ink); } .prose em { font-style: italic; } .prose del { color: var(--ink-faint); } .prose mark { background: var(--blue-200); color: var(--ink); padding: 1px 4px; border-radius: 4px; } .prose kbd { font-family: var(--font-mono); font-size: .85em; padding: 2px 6px; border-radius: 6px; background: #fff; border: 1px solid var(--blue-200); box-shadow: 0 2px 0 var(--blue-200); } /* 分割线 */ .prose hr { height: 1px; border: 0; margin: 2.4em 0; background: linear-gradient(90deg, transparent, rgba(79,163,255,.3), transparent); } /* 图片 */ .prose img { border-radius: var(--r-md); border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow); margin: 1.6em auto; } /* 表格 */ .prose table { width: 100%; margin: 1.6em 0; font-size: .92em; overflow-x: auto; display: block; } .prose thead { background: rgba(132,194,255,.18); } .prose th, .prose td { padding: .6em .9em; border: 1px solid rgba(79,163,255,.25); text-align: left; } .prose tbody tr:nth-child(even) { background: rgba(132,194,255,.06); } /* 移动端:代码块横向滚动不撑破布局 */ @media (max-width: 768px) { .prose pre { font-size: 0.82rem; padding: 1em; } .prose table { font-size: 0.85rem; } } /* KaTeX 数学公式 */ .prose .katex { font-size: 1.05em; } .prose .katex-display { margin: 1.4em 0; padding: 0.6em 0.2em; overflow-x: auto; overflow-y: hidden; } .prose .katex-display > .katex { font-size: 1.15em; }