/* reset + 排版 + 布局原语 + 响应式断点(mobile-first,PC 在断点内增强) */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--rb-font-sans);
  color: var(--rb-ink);
  background: var(--rb-cream);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }

/* 布局容器:移动端 20px 边距,PC 大留白 */
.container { width: 100%; max-width: var(--rb-maxw); margin: 0 auto; padding: 0 20px; }
.section { padding: 64px 0; }
@media (min-width: 768px) {
  .container { padding: 0 40px; }
  .section { padding: 100px 0; }
}

/* 章节头部:kicker(衬线小标) + 大标题 + 引导文 */
.kicker {
  font-family: var(--rb-font-serif);
  font-size: 13px; letter-spacing: 3px;
  color: var(--rb-red); text-transform: uppercase;
}
.h2 {
  font-family: var(--rb-font-serif);
  font-size: clamp(1.9rem, 4.5vw, 3.1rem);
  font-weight: 700; line-height: 1.2; margin-top: 10px;
}
.lead {
  font-size: clamp(1rem, 2vw, 1.15rem);
  color: #6b6b6b; margin-top: 16px; max-width: 60ch;
}

/* 滚动入场动画(配合 home.js 的 IntersectionObserver;尊重 reduced-motion) */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--rb-ease), transform .7s var(--rb-ease); }
.reveal.is-in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; } .reveal.d3 { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* 工具类 */
.text-center { text-align: center; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mt-24 { margin-top: 24px; } .mt-40 { margin-top: 40px; }
