@font-face {
  font-family: "GuimoBrush";
  src: url("assets/brand/guimo-brush.woff2") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}
:root {
  color-scheme: light;
  --font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "MiSans", "Microsoft YaHei", sans-serif;
  --font-editorial: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  --font-brush: "GuimoBrush", "Xingkai SC", "Kai", "Kaiti SC", "STKaiti", serif;
  --paper: #f1f4f2;
  --ink: #202b28;
  --muted: #656f69;
  --line: #cbd5cf;
  --accent: #24634f;
  --inverse: #fff;
  --measure: 1040px;
  --reading-width: 760px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 22px;
  --space-6: 28px;
  --space-7: 40px;
  --header-height: 68px;
  --page-gutter: 24px;
  --body-size: 16px;
  --body-line: 1.7;
  --site-logo-size: 44px;
  --nav-size: 13px;
  --nav-gap: 28px;
  --hero-top: 76px;
  --hero-bottom: 51px;
  --eyebrow-size: 13px;
  --hero-title-size: 84px;
  --hero-title-line: 1.25;
  --hero-title-weight: 500;
  --hero-letter-spacing: .02em;
  --brand-title-weight: 700;
  --brand-title-min-height: 1.25em;
  --brand-title-glyph-size: 1.08em;
  --brand-title-glyph-gap: .02em;
  --brand-title-static-spacing: .08em;
  --brand-title-ghost-opacity: .08;
  --brand-title-transition: 180ms;
  --brand-title-stroke-width: 230;
  --hero-description-size: 16px;
  --hero-description-gap: 19px;
  --description-max-width: 560px;
  --control-gap: 3px;
  --control-height: 44px;
  --control-pad-x: 8px;
  --control-size: 13px;
  --control-inner-gap: 5px;
  --select-pad-right: 14px;
  --control-arrow-offset: -15px;
  --category-select-max: 132px;
  --date-select-max: 136px;
  --motion-toggle-size: 16px;
  --focus-outline-size: 2px;
  --focus-outline-offset: 3px;
  --feed-top: 40px;
  --feed-bottom: 54px;
  --feed-title-size: 25px;
  --feed-title-line: 1.35;
  --feed-date-size: 12px;
  --top-three-overlap: -18px;
  --feature-rank-column: 42px;
  --feature-arrow-column: 18px;
  --feature-image-width: 88px;
  --feature-image-height: 62px;
  --feature-row-gap: var(--space-4);
  --feature-row-pad-y: 17px;
  --feature-rank-size: 27px;
  --feature-copy-gap: 5px;
  --feature-title-size: 17px;
  --feature-title-line: 1.45;
  --feature-title-weight: 500;
  --feature-rank-weight: 500;
  --feature-arrow-size: 15px;
  --group-title-size: 18px;
  --group-title-line: 1.5;
  --entry-pad-y: 28px;
  --entry-image-width: 124px;
  --entry-image-height: 82px;
  --entry-meta-size: 12px;
  --entry-meta-bottom: var(--space-3);
  --entry-title-size: 24px;
  --entry-title-line: 1.5;
  --entry-title-weight: 600;
  --empty-title-line: 1.4;
  --filter-count-size: var(--feed-date-size);
  --summary-size: 15px;
  --summary-line: 1.85;
  --source-size: 13px;
  --footer-size: 12px;
  --border-size: 1px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html[data-motion-mode="reduced"] { scroll-behavior: auto; }
body { margin: 0; background: var(--paper); color: var(--ink); font: var(--body-size)/var(--body-line) var(--font-sans); }
a { color: inherit; text-decoration: none; }
.site-header { height: var(--header-height); padding: 0 max(var(--page-gutter), calc((100vw - var(--measure)) / 2)); display: flex; align-items: center; justify-content: space-between; border-bottom: var(--border-size) solid var(--line); }
.site-logo { width: var(--site-logo-size); height: var(--site-logo-size); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.site-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
nav { display: flex; gap: var(--nav-gap); }
nav a { font-size: var(--nav-size); }
nav a:hover, .source:hover { color: var(--accent); }
main { width: min(var(--measure), calc(100% - var(--page-gutter) - var(--page-gutter))); margin: 0 auto; }
.hero { width: min(var(--measure), 100%); margin: 0 auto; padding: var(--hero-top) 0 var(--hero-bottom); }
.hero-copy { text-align: center; }
.eyebrow { margin: 0 0 var(--space-3); color: var(--muted); font-size: var(--eyebrow-size); }
h1, h2, h3, p { margin-top: 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.hero h1 { margin-bottom: 0; font: var(--hero-title-weight) var(--hero-title-size)/var(--hero-title-line) var(--font-editorial); letter-spacing: var(--hero-letter-spacing); }
.hero h1.brush-title { position: relative; display: flex; width: 100%; min-height: var(--brand-title-min-height); align-items: center; justify-content: center; font-family: var(--font-brush); font-size: var(--hero-title-size); font-weight: var(--brand-title-weight); letter-spacing: 0; line-height: var(--hero-title-line); }
.write-glyphs { display: flex; align-items: center; justify-content: center; gap: var(--brand-title-glyph-gap); opacity: 1; transition: opacity var(--brand-title-transition) linear; }
.stroke-glyph { display: block; width: var(--brand-title-glyph-size); height: var(--brand-title-glyph-size); overflow: visible; color: var(--ink); flex: 0 0 auto; }
.ink-path { fill: none; stroke: currentColor; stroke-width: var(--brand-title-stroke-width); stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.static-calligraphy { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--ink); font-family: var(--font-brush); font-size: 1em; font-weight: var(--brand-title-weight); letter-spacing: var(--brand-title-static-spacing); line-height: inherit; white-space: nowrap; opacity: var(--brand-title-ghost-opacity); transition: opacity var(--brand-title-transition) linear; }
.brush-title.is-written .write-glyphs { opacity: 0; }
.brush-title.is-written .static-calligraphy { opacity: 1; }
@keyframes draw-brand-title { to { stroke-dashoffset: 0; } }
.description { max-width: var(--description-max-width); margin: var(--hero-description-gap) auto 0; font-size: var(--hero-description-size); }
.top-three { width: min(var(--reading-width), 100%); margin: var(--top-three-overlap) auto var(--space-7); }
.top-three-heading { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: var(--space-3); border-bottom: var(--border-size) solid var(--line); }
.top-three-heading h2 { margin: 0; font: var(--hero-title-weight) var(--feed-title-size)/var(--feed-title-line) var(--font-editorial); }
.top-three-heading > span { color: var(--muted); font-size: var(--feed-date-size); }
.top-three-list { margin: 0; padding: 0; list-style: none; }
.feature-item { display: grid; grid-template-columns: var(--feature-rank-column) minmax(0, 1fr) var(--feature-arrow-column); align-items: center; gap: var(--feature-row-gap); padding: var(--feature-row-pad-y) 0; border-bottom: var(--border-size) solid var(--line); }
.feature-item.has-image { grid-template-columns: var(--feature-rank-column) minmax(0, 1fr) var(--feature-image-width) var(--feature-arrow-column); }
.feature-rank { color: var(--accent); font: var(--feature-rank-weight) var(--feature-rank-size)/1 var(--font-editorial); font-variant-numeric: tabular-nums; }
.feature-copy { display: grid; gap: var(--feature-copy-gap); min-width: 0; }
.feature-meta { color: var(--muted); font-size: var(--entry-meta-size); }
.feature-copy strong { font: var(--feature-title-weight) var(--feature-title-size)/var(--feature-title-line) var(--font-editorial); }
.feature-image, .entry-image { display: flex; align-items: center; justify-content: center; overflow: hidden; border: var(--border-size) solid var(--line); background: var(--paper); }
.feature-image { width: var(--feature-image-width); height: var(--feature-image-height); }
.feature-image img, .entry-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.feature-arrow { color: var(--muted); font-size: var(--feature-arrow-size); text-align: right; }
.feature-item:hover .feature-copy strong, .feature-item:hover .feature-arrow { color: var(--accent); }
.feature-item:focus-visible { outline: var(--focus-outline-size) solid var(--accent); outline-offset: var(--focus-outline-offset); }
.filters { width: min(var(--reading-width), 100%); margin: 0 auto; padding: var(--space-4) 0; display: flex; align-items: center; gap: var(--control-gap); border-top: var(--border-size) solid var(--line); border-bottom: var(--border-size) solid var(--line); }
.control { display: inline-flex; min-height: var(--control-height); align-items: center; padding: 0 var(--control-pad-x); color: var(--ink); font-size: var(--control-size); white-space: nowrap; }
.category-control, .date-control { gap: var(--control-inner-gap); cursor: pointer; }
.category-control select, .date-control select { padding: 0 var(--select-pad-right) 0 0; border: 0; appearance: none; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.category-control select { max-width: var(--category-select-max); }
.date-control select { max-width: var(--date-select-max); }
.category-control::after, .date-control::after { content: "⌄"; margin-left: var(--control-arrow-offset); color: var(--muted); pointer-events: none; }
.filter-count { margin-left: auto; color: var(--muted); font-size: var(--filter-count-size); white-space: nowrap; }
.feed { width: min(var(--reading-width), 100%); margin: 0 auto; padding: var(--feed-top) 0 var(--feed-bottom); }
.feed-heading { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: var(--space-5); border-bottom: var(--border-size) solid var(--line); scroll-margin-top: var(--space-6); }
.feed-heading h2, .archive h2 { margin: 0; font: var(--hero-title-weight) var(--feed-title-size)/var(--feed-title-line) var(--font-editorial); }
.feed-heading > span { color: var(--muted); font-size: var(--feed-date-size); }
.digest-day { scroll-margin-top: var(--space-6); }
.digest-day[hidden] { display: none; }
.entry { display: block; padding: var(--entry-pad-y) 0; border-bottom: var(--border-size) solid var(--line); }
.entry[hidden], .top-three[hidden], .top-three-list li[hidden], .empty-state[hidden] { display: none; }
.entry-meta { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--entry-meta-bottom); color: var(--muted); font-size: var(--entry-meta-size); }
.entry-category { text-align: right; }
.entry-row { display: grid; grid-template-columns: minmax(0, 1fr) var(--entry-image-width); align-items: center; gap: var(--space-5); }
.entry-content { min-width: 0; }
.entry-image { width: var(--entry-image-width); height: var(--entry-image-height); }
.entry-content h4 { margin-bottom: 0; font: var(--entry-title-weight) var(--entry-title-size)/var(--entry-title-line) var(--font-editorial); }
.entry-title-link:hover { color: var(--accent); }
.entry-content p { margin: var(--space-3) 0; font-size: var(--summary-size); line-height: var(--summary-line); }
.entry-more { color: var(--accent); font-size: var(--source-size); }
.entry-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.story-main { width: min(var(--reading-width), calc(100% - var(--page-gutter) - var(--page-gutter))); margin: 0 auto; padding: var(--space-6) 0 var(--space-7); }
.story-back { display: inline-block; margin-bottom: var(--space-6); color: var(--muted); font-size: var(--source-size); }
.story-back:hover, .story-return a:hover { color: var(--accent); }
.story-article { padding-bottom: var(--space-7); border-bottom: var(--border-size) solid var(--line); }
.story-meta { display: flex; flex-wrap: wrap; gap: var(--space-4); color: var(--muted); font-size: var(--entry-meta-size); }
.story-kicker { margin: var(--space-5) 0 var(--space-2); color: var(--muted); font-size: var(--eyebrow-size); }
.story-title { margin: 0; font: var(--entry-title-weight) clamp(28px, 4vw, 38px)/1.45 var(--font-editorial); letter-spacing: .01em; }
.story-summary { margin: var(--space-5) 0 0; font-size: 17px; line-height: 1.9; }
.story-figure { margin: var(--space-6) 0 0; }
.story-figure img { display: block; width: 100%; height: auto; border: var(--border-size) solid var(--line); }
.story-section { margin-top: var(--space-6); }
.story-section h2, .story-sources h2, .story-tags h2 { margin: 0 0 var(--space-3); font: var(--hero-title-weight) var(--group-title-size)/var(--group-title-line) var(--font-editorial); }
.story-section p { margin: 0; font-size: var(--body-size); line-height: 1.9; }
.story-sources, .story-tags { margin-top: var(--space-6); }
.story-sources ul, .story-tags ul { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); margin: 0; padding: 0; list-style: none; }
.story-tags li { color: var(--muted); font-size: var(--source-size); }
.story-return { margin: var(--space-5) 0 0; font-size: var(--source-size); }
.source { color: var(--accent); font-size: var(--source-size); }
.archive { margin-top: var(--space-7); padding-top: var(--space-6); border-top: var(--border-size) solid var(--line); scroll-margin-top: var(--space-6); }
.archive p { margin: var(--space-3) 0 0; color: var(--muted); font-size: var(--summary-size); }
.archive-list { margin: var(--space-4) 0 0; padding: 0; list-style: none; }
.archive-list a { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) 0; border-bottom: var(--border-size) solid var(--line); font-size: var(--summary-size); }
.archive-list a span { color: var(--muted); font-size: var(--source-size); }
.archive-list a:hover { color: var(--accent); }
.empty-state { padding: var(--space-7) 0; border-bottom: var(--border-size) solid var(--line); }
.empty-state h3 { margin: 0; font: var(--hero-title-weight) var(--feed-title-size)/var(--empty-title-line) var(--font-editorial); }
.empty-state p { margin: var(--space-3) 0 0; color: var(--muted); font-size: var(--summary-size); }
a:focus-visible, button:focus-visible, select:focus-visible { outline: var(--focus-outline-size) solid var(--accent); outline-offset: var(--focus-outline-offset); }
footer { display: grid; justify-items: center; gap: var(--space-3); padding: var(--space-6) var(--page-gutter); border-top: var(--border-size) solid var(--line); color: var(--muted); text-align: center; font-size: var(--footer-size); }
.motion-setting { display: inline-flex; min-height: var(--control-height); align-items: center; gap: var(--space-2); padding: 0 var(--space-2); cursor: pointer; }
.motion-setting input { width: var(--motion-toggle-size); height: var(--motion-toggle-size); margin: 0; accent-color: var(--accent); }
.motion-setting input:focus-visible { outline: var(--focus-outline-size) solid var(--accent); outline-offset: var(--focus-outline-offset); }

@media (max-width: 600px) {
  :root {
    --header-height: 56px;
    --page-gutter: 16px;
    --nav-gap: 14px;
    --nav-size: 12px;
    --site-logo-size: 36px;
    --hero-top: 55px;
    --hero-bottom: 37px;
    --eyebrow-size: 12px;
    --hero-title-size: 52px;
    --hero-description-size: 14px;
    --hero-description-gap: 14px;
    --control-height: 44px;
    --control-gap: 3px;
    --control-size: 12px;
    --feed-top: 30px;
    --feed-bottom: 40px;
    --feed-title-size: 22px;
    --entry-pad-y: 23px;
    --entry-title-size: 21px;
    --summary-size: 14px;
  }
  :root {
    --top-three-overlap: -12px;
    --feature-rank-column: 32px;
    --feature-arrow-column: 15px;
    --feature-image-width: 60px;
    --feature-image-height: 44px;
    --feature-row-gap: var(--space-3);
    --feature-row-pad-y: 15px;
    --feature-rank-size: 24px;
    --feature-title-size: 16px;
    --feature-arrow-size: 15px;
    --entry-image-width: 84px;
    --entry-image-height: 58px;
    --category-select-max: 116px;
    --date-select-max: 125px;
    --filter-count-size: 11px;
  }
  .top-three { margin-bottom: var(--space-6); }
  .story-main { padding-top: var(--space-5); }
  .story-back { margin-bottom: var(--space-5); }
  .story-summary { font-size: 15px; }
  .entry-row { gap: var(--space-3); }
}

html[data-motion-mode="reduced"] .brush-title .ink-path { animation: none !important; stroke-dashoffset: 0 !important; }
html[data-motion-mode="reduced"] .brush-title .write-glyphs { opacity: 0; transition: none; }
html[data-motion-mode="reduced"] .brush-title .static-calligraphy { opacity: 1; transition: none; }
@media (prefers-reduced-motion: reduce) {
  html:not([data-motion-mode="full"]) .brush-title .ink-path { animation: none !important; stroke-dashoffset: 0 !important; }
  html:not([data-motion-mode="full"]) .brush-title .write-glyphs { opacity: 0; transition: none; }
  html:not([data-motion-mode="full"]) .brush-title .static-calligraphy { opacity: 1; transition: none; }
  html:not([data-motion-mode="full"]) { scroll-behavior: auto; }
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --paper: #18211c;
    --ink: #e5ece7;
    --muted: #a4b2aa;
    --line: #46564d;
    --accent: #96d7b2;
    --inverse: #18211c;
  }
  .site-logo img { filter: brightness(0) invert(1); }
}

/* MCP 接口入口（运营 additions，2026-11-06） */
.site-nav { display: flex; align-items: center; }
.mcp-menu { position: relative; }
.mcp-menu summary { cursor: pointer; list-style: none; font-size: var(--nav-size); color: var(--ink); }
.mcp-menu summary::-webkit-details-marker { display: none; }
.mcp-menu summary:hover { color: var(--accent); }
.mcp-panel { position: absolute; right: 0; top: calc(100% + 12px); width: min(350px, calc(100vw - 32px)); background: var(--paper); border: var(--border-size) solid var(--line); padding: 14px 16px; z-index: 60; text-align: left; }
.mcp-note { font-size: 12px; line-height: 1.7; color: var(--muted); margin: 0 0 10px; }
.mcp-url { display: block; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 11.5px; line-height: 1.6; word-break: break-all; border: var(--border-size) solid var(--line); padding: 8px 10px; margin: 0 0 10px; color: var(--ink); }
.mcp-copy { font-size: 12px; background: var(--ink); color: var(--paper); border: 0; padding: 6px 14px; cursor: pointer; margin: 0 0 10px; }
.mcp-copy:hover { background: var(--accent); }
.mcp-tools { font-size: 11.5px; line-height: 1.7; color: var(--muted); margin: 0; }

/* 无限滚动（运营 additions，2026-11-06） */
.feed-sentinel { height: 1px; }
.feed-end { text-align: center; color: var(--muted); font-size: 12px; padding: 20px 0 4px; margin: 0; }
