:root {
  --page: #fbfaf7;
  --surface: #ffffff;
  --surface-soft: #f3f0ea;
  --text: #243447;
  --muted: #7a7466;
  --primary: #6f8494;
  --accent: #b59b6b;
  --border: #e5e0d4;
}

html { scroll-behavior: smooth; }

body {
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* prose 内文优化 */
.prose {
  color: #3a4555;
  line-height: 1.85;
}
.prose h2 {
  font-family: 'Noto Serif SC', Georgia, serif;
  font-weight: 600;
  color: #243447;
  font-size: 1.5rem;
  margin-top: 2.5em;
  margin-bottom: 0.8em;
  padding-bottom: 0.4em;
  border-bottom: 1px solid #e5e0d4;
}
.prose h3 {
  font-family: 'Noto Serif SC', Georgia, serif;
  font-weight: 600;
  color: #243447;
  font-size: 1.2rem;
  margin-top: 2em;
  margin-bottom: 0.7em;
}
.prose p { margin-bottom: 1.1em; }
.prose strong { color: #243447; font-weight: 600; }
.prose a { color: var(--primary); text-decoration: none; border-bottom: 1px solid var(--primary); }
.prose a:hover { color: var(--accent); border-color: var(--accent); }
.prose ul, .prose ol { padding-left: 1.4em; margin-bottom: 1.1em; }
.prose ul li, .prose ol li { margin-bottom: 0.4em; }

/* line-clamp 兼容 */
.line-clamp-1 {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 选中态颜色 */
::selection {
  background: var(--accent);
  color: #fff;
}

/* 滚动条 */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d6cfc0; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* hero 切换平滑 */
.hero-slide { transition: opacity 0.7s ease-in-out; }

/* 微动画 */
@keyframes fade-in-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in-up { animation: fade-in-up 0.6s ease-out both; }
