@import "tailwindcss"; @custom-variant dark (&:where(.dark, .dark *)); @theme { --font-serif: 'Source Serif 4', 'Noto Serif SC', 'Source Han Serif SC', 'Songti SC', Georgia, serif; --color-paper-theme: #faf9f6; --color-paper-entry: #ffffff; --color-paper-primary: #1c1917; --color-paper-secondary: #78716c; --color-paper-tertiary: #d6d3d1; --color-paper-content: #292524; --color-paper-code-block: #eff1f5; --color-paper-code-bg: #f5f4f0; --color-paper-border: #e7e5e0; --color-paper-accent: #5c7a5e; --color-paper-accent-soft: #e8f0e8; --color-paper-accent-2: #83495b; --color-paper-accent-2-soft: #f3e8eb; --radius-paper: 8px; --gap-paper: 24px; --content-gap-paper: 20px; --nav-width-paper: 1024px; --main-width-paper: 720px; } @layer base { html { scroll-behavior: smooth; background-color: var(--color-paper-theme); } body { background-color: var(--color-paper-theme); color: var(--color-paper-primary); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .dark { --color-paper-theme: #141416; --color-paper-entry: #1e1f22; --color-paper-primary: #e7e5df; --color-paper-secondary: #8c8981; --color-paper-tertiary: #3a3a3d; --color-paper-content: #d4d2cc; --color-paper-code-block: #1e1e2e; --color-paper-code-bg: #28292d; --color-paper-border: #2a2b2e; --color-paper-accent: #7da97f; --color-paper-accent-soft: #1e2e1e; --color-paper-accent-2: #cca4b0; --color-paper-accent-2-soft: #331f25; } } @layer components { .post-single { margin: 0 auto; } .post-header { margin: 24px auto var(--content-gap-paper) auto; } .post-title { font-size: 40px; line-height: 1.2; color: var(--color-paper-primary); word-break: break-word; letter-spacing: -0.02em; } .post-description { margin-top: 10px; color: var(--color-paper-secondary); font-size: 16px; line-height: 1.7; } .post-meta { margin-top: 5px; color: var(--color-paper-secondary); font-size: 14px; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; } .post-meta a { color: var(--color-paper-secondary); text-decoration-style: dotted; text-underline-offset: 0.3rem; text-decoration: underline; } .post-meta a:hover { color: var(--color-paper-primary); } .breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem; color: var(--color-paper-secondary); font-size: 14px; margin-bottom: 10px; } .breadcrumbs a { font-size: 16px; color: var(--color-paper-primary); } .breadcrumbs a:hover { text-decoration: underline; text-underline-offset: 0.2rem; } .entry-hint { display: inline-flex; margin-left: 0.5rem; color: var(--color-paper-secondary); } details.toc { margin-bottom: var(--content-gap-paper); background: var(--color-paper-code-bg); border-radius: var(--radius-paper); border: 1px solid var(--color-paper-border); } details.toc summary { padding: 0.3rem 1.2rem; border-radius: var(--radius-paper); cursor: pointer; display: list-item; width: 100%; user-select: none; color: var(--color-paper-primary); } details.toc .title { display: inline; font-weight: 500; margin-inline-start: 0.2rem; } details.toc .inner { margin: 0 2.4rem; padding-bottom: 0.6rem; } details.toc ul { list-style: none; padding: 0; margin: 0; } details.toc li { margin: 0.3rem 0; } details.toc a { color: var(--color-paper-secondary); text-decoration: none; font-size: 14px; } details.toc a:hover { color: var(--color-paper-primary); text-decoration: underline; text-underline-offset: 0.3rem; } details.toc li ul { margin-inline-start: var(--gap-paper); } details { interpolate-size: allow-keywords; } details::details-content { height: 0; opacity: 0; overflow: clip; transition: height 150ms ease, opacity 150ms ease, content-visibility 150ms allow-discrete; } details[open]::details-content { height: auto; opacity: 1; } .entry-cover { margin-bottom: var(--content-gap-paper); } /* 封面用 blur-img 结构:去 margin、保持圆角,内层 img cover 填充 */ .entry-cover .blur-img { margin: 0; border-radius: var(--radius-paper); } .entry-cover img { width: 100%; height: 100%; object-fit: cover; } .post-content { color: var(--color-paper-content); margin: 30px 0; } .md-content h1 { margin: 40px auto 32px; font-size: 40px; color: var(--color-paper-primary); letter-spacing: -0.01em; } .md-content h2 { margin: 32px auto 24px; font-size: 32px; color: var(--color-paper-primary); letter-spacing: -0.01em; } .md-content h3 { margin: 24px 0 16px; font-size: 24px; color: var(--color-paper-primary); } .md-content h4 { margin: 24px 0 16px; font-size: 16px; color: var(--color-paper-primary); } .md-content h5 { margin: 24px 0 16px; font-size: 14px; color: var(--color-paper-primary); } .md-content h6 { margin: 24px 0 16px; font-size: 12px; color: var(--color-paper-primary); } .md-content a:not(.anchor) { text-underline-offset: 0.3rem; text-decoration: underline; color: var(--color-paper-accent); } .md-content a:not(.anchor):hover { color: #4a6249; } .md-content p { margin-bottom: var(--content-gap-paper); line-height: 1.85; } .md-content p:last-child { margin-bottom: 0; } .md-content blockquote { margin: 1rem 0; padding-inline-start: 1rem; border-inline-start: 0.3rem solid var(--color-paper-content); color: var(--color-paper-secondary); } .md-content blockquote p:last-child { margin-bottom: 0; } .md-content ol, .md-content ul { padding-inline-start: 1.25rem; margin-bottom: var(--content-gap-paper); } .md-content li { margin-top: 0.3rem; } .md-content li p { margin-bottom: 0; } /* 任务列表:pulldown-cmark 把 - [ ] / - [x] 渲染成裸
  • … * (无