/* ==========================================================================
   爆料瓜 · aiweijiadiban.com 全站样式
   base → layout → components → pages → responsive
   ========================================================================== */

/* ==========================================================================
   1. BASE  变量 / 重置 / 排版
   ========================================================================== */

:root {
  --paper: #f5f2ea;
  --ink: #16181d;
  --brick: #c8452b;
  --stone: #6f6d67;
  --line: #d8d3c7;
  --paper-soft: #efeadf;
  --shell: 1120px;
  --main-col: 760px;
  --side-col: 300px;
  --col-gap: 60px;
  --font-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body.site-body {
  margin: 0;
  padding: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.75;
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
  margin: 0;
  font-weight: 700;
  line-height: 1.28;
}

p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: var(--ink);
  text-decoration: none;
}

a:hover,
a:focus-visible {
  color: var(--brick);
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

button {
  font: inherit;
  color: inherit;
  cursor: pointer;
}

table {
  border-collapse: collapse;
  width: 100%;
}

:focus-visible {
  outline: 2px solid var(--brick);
  outline-offset: 2px;
}

/* ==========================================================================
   2. LAYOUT  外壳 / 页头 / 主导航 / 主容器 / 页脚
   ========================================================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--paper);
  border-bottom: 3px solid var(--ink);
}

.header-inner {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 24px;
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.brand {
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
  padding: 6px 0;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}

.brand::after {
  content: "信息核验与沟通准备";
  font-size: 12px;
  font-weight: 400;
  color: var(--stone);
  border-left: 2px solid var(--line);
  padding-left: 8px;
}

.site-nav ul {
  display: flex;
  align-items: center;
  gap: 4px;
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
  font-size: 15px;
  border-bottom: 3px solid transparent;
  transition: color 0.16s ease, border-color 0.16s ease;
}

.site-nav a:hover,
.site-nav a:focus-visible {
  border-bottom-color: var(--brick);
}

.site-nav a.is-current {
  color: var(--brick);
  border-bottom-color: var(--brick);
}

.nav-toggle {
  display: none;
  width: 46px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: 3px solid var(--ink);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.nav-toggle-bar {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--ink);
}

.mobile-nav {
  border-top: 3px solid var(--ink);
  background: var(--paper);
  padding: 12px 24px 20px;
}

.mobile-nav[hidden] {
  display: none;
}

.mobile-nav-group {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--stone);
  margin: 12px 0 4px;
}

.mobile-nav ul {
  border-top: 1px solid var(--line);
}

.mobile-nav li {
  border-bottom: 1px solid var(--line);
}

.mobile-nav a {
  display: flex;
  align-items: center;
  min-height: 48px;
  font-size: 16px;
}

.site-main {
  display: block;
}

.inner-main {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 24px 72px;
}

/* 面包屑 */

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--stone);
  padding: 22px 0 0;
}

.breadcrumb a {
  color: var(--stone);
  border-bottom: 1px solid var(--line);
}

.breadcrumb a:hover {
  color: var(--brick);
  border-bottom-color: var(--brick);
}

.breadcrumb-sep {
  font-family: var(--font-mono);
  color: var(--line);
}

.breadcrumb-current {
  color: var(--ink);
}

/* 页面标题区 */

.page-header {
  padding: 18px 0 0;
}

.page-title {
  font-size: 40px;
  line-height: 1.2;
  max-width: 900px;
  border-bottom: 3px solid var(--ink);
  padding-bottom: 16px;
}

section.page-title {
  padding: 14px 0 0;
  max-width: var(--main-col);
}

.page-lead,
.page-lede {
  font-size: 17px;
  color: var(--stone);
  line-height: 1.8;
}

.page-anchor-tip,
.page-anchor-hint,
.page-title-anchor {
  margin-top: 12px;
  font-size: 13px;
  color: var(--stone);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
}

.page-anchor-tip a,
.page-anchor-hint a,
.page-title-anchor a {
  font-family: var(--font-mono);
  color: var(--stone);
  border-bottom: 1px solid var(--line);
  padding-bottom: 1px;
}

.page-anchor-tip a:hover,
.page-anchor-hint a:hover,
.page-title-anchor a:hover {
  color: var(--brick);
  border-bottom-color: var(--brick);
}

.page-title-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

.page-title-text {
  max-width: var(--main-col);
}

/* 页脚 */

.site-footer {
  background: var(--ink);
  color: var(--paper);
  margin-top: 40px;
}

.footer-inner {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 52px 24px 36px;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 0.8fr;
  gap: 40px;
}

.footer-col {
  min-width: 0;
}

.footer-brand {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 12px;
}

.footer-about p {
  font-size: 14px;
  line-height: 1.85;
  color: #c9c4b8;
  max-width: 42ch;
}

.footer-title {
  font-size: 13px;
  font-family: var(--font-mono);
  letter-spacing: 0.08em;
  color: #9c978c;
  margin-bottom: 14px;
}

.footer-nav ul li {
  margin-bottom: 2px;
}

.footer-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  font-size: 15px;
  color: var(--paper);
  border-bottom: 1px solid transparent;
}

.footer-nav a:hover {
  color: #f0b7a5;
  border-bottom-color: #f0b7a5;
}

.footer-bottom {
  border-top: 1px solid #3a3d45;
  max-width: var(--shell);
  margin: 0 auto;
  padding: 20px 24px 32px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 24px;
}

.footer-bottom p {
  font-size: 13px;
  color: #9c978c;
  line-height: 1.7;
}

.footer-copy {
  font-family: var(--font-mono);
}

/* ==========================================================================
   3. COMPONENTS  通用组件
   ========================================================================== */

/* 按钮 */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  font-size: 15px;
  font-weight: 700;
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--paper);
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease, color 0.16s ease;
}

.btn-primary {
  background: var(--ink);
  color: var(--paper);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--brick);
  border-color: var(--brick);
  color: #fff;
  transform: translateX(2px);
}

.btn-ghost {
  background: transparent;
  color: var(--ink);
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
  border-color: var(--brick);
  color: var(--brick);
  transform: translateX(2px);
}

.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  border-bottom: 2px solid var(--brick);
}

.text-link:hover {
  color: var(--brick);
}

/* 区块标题 */

.section-lead,
.section-lede {
  margin-top: 12px;
  font-size: 16px;
  color: var(--stone);
  max-width: 62ch;
}

.section-title {
  font-size: 26px;
}

/* 双栏布局：主内容在前，侧栏在后 */

.page-layout {
  display: grid;
  grid-template-columns: minmax(0, var(--main-col)) var(--side-col);
  gap: var(--col-gap);
  align-items: start;
}

.page-layout.sidebar-left {
  grid-template-columns: var(--side-col) minmax(0, var(--main-col));
}

/* 侧栏目录 */

.aside-title,
.side-index-title {
  font-size: 13px;
  font-family: var(--font-mono);
  letter-spacing: 0.08em;
  color: var(--stone);
  padding-bottom: 10px;
  border-bottom: 3px solid var(--ink);
}

.side-index,
.scope-topics,
.faq-topics,
.faq-toc {
  position: sticky;
  top: 96px;
}

.index-list,
.toc-list {
  margin-top: 12px;
  border-top: 1px solid var(--line);
}

.index-list li,
.toc-list li {
  border-bottom: 1px solid var(--line);
}

.index-list a,
.toc-list a {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: 15px;
  color: var(--ink);
  transition: color 0.16s ease, transform 0.16s ease;
}

.index-list a:hover,
.toc-list a:hover {
  color: var(--brick);
  transform: translateX(2px);
}

.side-index-note {
  margin-top: 14px;
  font-size: 13px;
  color: var(--stone);
  line-height: 1.7;
}

/* 图片容器 */

.hero-figure,
.scope-figure,
.role-figure,
.page-figure,
.page-media,
.media-figure,
.faq-toc-figure {
  margin: 0;
  border: 3px solid var(--ink);
  background: var(--paper-soft);
}

.hero-figure img,
.scope-figure img,
.role-figure img,
.page-figure img,
.page-media img,
.media-figure img,
.faq-toc-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: var(--paper-soft);
}

.hero-figure figcaption,
.scope-figure figcaption,
.role-figure figcaption,
.page-figure figcaption,
.page-media figcaption,
.media-figure figcaption,
.faq-toc-figure figcaption {
  border-top: 1px solid var(--line);
  padding: 10px 14px;
  font-size: 13px;
  color: var(--stone);
  line-height: 1.6;
}

/* 折叠问答 */

.faq-item {
  border: 3px solid var(--ink);
  background: var(--paper);
  margin-bottom: 12px;
}

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 56px;
  padding: 12px 18px;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "＋";
  font-family: var(--font-mono);
  font-size: 18px;
  color: var(--brick);
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}

.faq-item[open] summary::after {
  content: "－";
}

.faq-item summary:hover {
  color: var(--brick);
}

.faq-item > p,
.faq-answer {
  padding: 0 18px 18px;
  font-size: 15px;
  color: #33363d;
  line-height: 1.8;
}

.faq-answer p {
  margin-bottom: 8px;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

/* 下一步入口带 */

.next-step {
  margin-top: 56px;
  border-top: 3px solid var(--ink);
  padding-top: 26px;
}

.next-step-title,
.next-step > h2 {
  font-size: 26px;
}

.next-step-grid,
.next-step-cols,
.next-step-columns,
.next-columns {
  margin-top: 20px;
  display: grid;
  gap: 24px;
}

.next-step-grid,
.next-step-cols,
.next-step-columns,
.next-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.next-step-col,
.next-col,
.next-column {
  border: 3px solid var(--ink);
  padding: 20px;
  min-width: 0;
}

.next-step-col h3,
.next-col h3,
.next-column h3 {
  font-size: 17px;
  margin-bottom: 10px;
}

.next-step-col p,
.next-col p,
.next-column p {
  font-size: 15px;
  color: #33363d;
}

.next-step-links,
.next-links {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

/* 相关链接条 */

.related-links {
  margin-top: 32px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px;
}

.related-links-label {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--stone);
}

.related-links-item {
  font-size: 15px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 1px;
}

/* 表格通用 */

.table-scroll {
  overflow-x: auto;
  border: 3px solid var(--ink);
  -webkit-overflow-scrolling: touch;
}

.ledger-table,
.ledger,
.support-table {
  width: 100%;
  min-width: 640px;
  font-size: 14px;
}

.ledger-table caption,
.ledger caption,
.support-table caption {
  text-align: left;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--stone);
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--paper-soft);
}

.ledger-table th,
.ledger-table td,
.ledger th,
.ledger td,
.support-table th,
.support-table td {
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
  line-height: 1.65;
}

.ledger-table thead th,
.ledger thead th,
.support-table thead th {
  background: var(--ink);
  color: var(--paper);
  font-size: 13px;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  border-bottom: 3px solid var(--ink);
}

.ledger-table tbody tr:nth-child(even),
.ledger tbody tr:nth-child(even),
.support-table tbody tr:nth-child(even) {
  background: var(--paper-soft);
}

.ledger-table tbody th,
.ledger tbody th,
.support-table tbody th {
  font-weight: 700;
  width: 22%;
}

/* ==========================================================================
   4. PAGES  首页
   ========================================================================== */

.home-main {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 24px 72px;
}

/* 首屏 */

.hero {
  padding: 44px 0 8px;
}

.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
  gap: 48px;
  align-items: start;
}

.hero-copy {
  min-width: 0;
}

.hero-eyebrow {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--brick);
  margin-bottom: 14px;
}

.hero-copy h1 {
  font-size: 46px;
  line-height: 1.16;
  max-width: 15ch;
}

.hero-lead {
  margin-top: 20px;
  font-size: 17px;
  color: var(--stone);
  line-height: 1.85;
  max-width: 46ch;
}

.hero-actions {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero-visual {
  min-width: 0;
  display: grid;
  gap: 22px;
}

.method-index {
  border: 3px solid var(--ink);
  padding: 18px 20px 20px;
}

.method-index ol {
  counter-reset: method;
}

.method-index li {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 4px 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.method-index li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.method-index .idx {
  grid-row: 1 / span 2;
  font-family: var(--font-mono);
  font-size: 15px;
  color: var(--brick);
  padding-top: 2px;
}

.method-index .idx-name {
  font-size: 17px;
  font-weight: 700;
}

.method-index .idx-name a {
  border-bottom: 2px solid transparent;
}

.method-index .idx-name a:hover {
  border-bottom-color: var(--brick);
}

.method-index .idx-desc {
  font-size: 14px;
  color: var(--stone);
  line-height: 1.7;
}

/* 三条核心判断 */

.core-judgment {
  margin-top: 64px;
}

.core-judgment h2 {
  font-size: 26px;
}

.judgment-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.judgment-item {
  border: 3px solid var(--ink);
  padding: 22px 20px;
  min-width: 0;
  transition: transform 0.16s ease, border-color 0.16s ease;
}

.judgment-item:hover {
  border-color: var(--brick);
  transform: translateX(2px);
}

.judgment-num {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--brick);
  margin-bottom: 10px;
}

.judgment-item h3 {
  font-size: 19px;
  margin-bottom: 10px;
}

.judgment-item p {
  font-size: 15px;
  color: #33363d;
}

.judgment-premise {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 13px;
  color: var(--stone);
}

/* 核验范围预览 */

.scope-preview {
  margin-top: 64px;
}

.scope-preview h2 {
  font-size: 26px;
}

.scope-preview .page-layout {
  margin-top: 24px;
}

.scope-body {
  min-width: 0;
}

.scope-list {
  margin-top: 22px;
  border-top: 3px solid var(--ink);
}

.scope-list li {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.scope-list h3 {
  font-size: 17px;
  margin-bottom: 6px;
}

.scope-list p {
  font-size: 15px;
  color: #33363d;
  max-width: 60ch;
}

.scope-list a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--brick);
  border-bottom: 1px solid var(--brick);
}

.scope-list a:hover {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

/* 编辑推荐 */

.editor-picks {
  margin-top: 64px;
}

.editor-picks h2 {
  font-size: 26px;
}

.picks-list {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.pick-item {
  border: 3px solid var(--ink);
  border-left-width: 8px;
  padding: 22px 20px;
  min-width: 0;
  transition: transform 0.16s ease, border-color 0.16s ease;
}

.pick-item:hover {
  border-color: var(--brick);
  transform: translateX(2px);
}

.pick-item h3 {
  font-size: 18px;
  margin-bottom: 12px;
}

.pick-item h3 a {
  border-bottom: 2px solid transparent;
}

.pick-item h3 a:hover {
  border-bottom-color: var(--brick);
}

.pick-reason {
  font-size: 15px;
  color: #33363d;
}

.pick-audience {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 13px;
  color: var(--stone);
}

/* 角色任务速览 */

.role-brief {
  margin-top: 64px;
}

.role-brief h2 {
  font-size: 26px;
}

.role-brief .role-figure {
  margin-top: 24px;
}

.role-brief .role-figure img {
  aspect-ratio: 21 / 9;
}

.role-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.role-column {
  border: 3px solid var(--ink);
  padding: 20px 18px;
  min-width: 0;
}

.role-column h3 {
  font-size: 17px;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 3px solid var(--brick);
}

.role-column .role-line {
  font-size: 14px;
  color: #33363d;
  margin-bottom: 10px;
  line-height: 1.7;
}

.role-column .role-line:last-child {
  margin-bottom: 0;
}

.role-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--stone);
  margin-bottom: 2px;
}

/* 首页 FAQ 中心 */

.faq-center {
  margin-top: 64px;
}

.faq-center h2 {
  font-size: 26px;
}

.faq-center .page-layout {
  margin-top: 24px;
}

.faq-body {
  min-width: 0;
}

.faq-more {
  margin-top: 16px;
  font-size: 15px;
}

.faq-more a {
  font-weight: 700;
  border-bottom: 2px solid var(--brick);
}

/* 启动条件入口带 */

.start-band {
  margin-top: 64px;
  border-top: 3px solid var(--ink);
  padding-top: 28px;
}

.start-band h2 {
  font-size: 26px;
}

.start-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.start-item {
  border: 3px solid var(--ink);
  padding: 20px;
  min-width: 0;
  background: var(--paper-soft);
}

.start-item h3 {
  font-size: 17px;
  margin-bottom: 8px;
}

.start-item p {
  font-size: 15px;
  color: #33363d;
}

.start-entry {
  margin-top: 26px;
}

/* ==========================================================================
   5. PAGES  内页
   ========================================================================== */

/* 核验范围 */

.scope-main {
  margin-top: 34px;
}

.scope-group {
  margin-bottom: 46px;
}

.group-head {
  border-top: 3px solid var(--ink);
  padding-top: 16px;
  margin-bottom: 18px;
}

.group-num,
.group-index {
  display: block;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--brick);
  margin-bottom: 6px;
}

.group-head h2 {
  font-size: 26px;
}

.group-desc {
  margin-top: 8px;
  font-size: 15px;
  color: var(--stone);
  max-width: 62ch;
}

.entry-list {
  border-top: 1px solid var(--line);
}

.entry-item {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.entry-title {
  font-size: 17px;
  margin-bottom: 10px;
}

.entry-meta {
  margin: 0;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 6px 16px;
  font-size: 14px;
}

.entry-meta dt {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--stone);
}

.entry-meta dd {
  margin: 0;
  color: #33363d;
  line-height: 1.7;
}

.entry-meta dd a {
  border-bottom: 1px solid var(--brick);
}

.gap-guide {
  margin-top: 8px;
  border-top: 3px solid var(--ink);
  padding-top: 22px;
}

.gap-guide h2 {
  font-size: 26px;
}

.gap-guide > p {
  margin-top: 10px;
  font-size: 15px;
  color: #33363d;
  max-width: 62ch;
}

.gap-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.gap-card {
  border: 3px solid var(--ink);
  padding: 20px;
  min-width: 0;
}

.gap-card h3 {
  font-size: 17px;
  margin-bottom: 8px;
}

.gap-card p {
  font-size: 15px;
  color: #33363d;
}

/* 角色任务 */

.role-entry-row {
  margin-top: 34px;
  border-top: 3px solid var(--ink);
  padding-top: 22px;
}

.role-entry-list {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.role-entry-list a {
  display: block;
  border: 3px solid var(--ink);
  padding: 16px;
  min-height: 100%;
  transition: transform 0.16s ease, border-color 0.16s ease;
}

.role-entry-list a:hover {
  border-color: var(--brick);
  transform: translateX(2px);
}

.role-entry-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--brick);
  margin-bottom: 6px;
}

.role-entry-name {
  display: block;
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 6px;
}

.role-entry-desc {
  display: block;
  font-size: 14px;
  color: var(--stone);
  line-height: 1.7;
}

.role-section {
  margin-top: 46px;
}

.role-section-head {
  border-top: 3px solid var(--ink);
  padding-top: 16px;
  margin-bottom: 18px;
}

.role-section-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--brick);
  margin-bottom: 6px;
}

.role-section-head h2 {
  font-size: 26px;
}

.role-section-head p {
  margin-top: 8px;
  font-size: 15px;
  color: var(--stone);
  max-width: 62ch;
}

.role-columns {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.role-col {
  border: 3px solid var(--ink);
  padding: 18px;
  min-width: 0;
}

.role-col h3 {
  font-size: 16px;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.role-col .role-list li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  color: #33363d;
  line-height: 1.7;
  margin-bottom: 10px;
}

.role-col .role-list li:last-child {
  margin-bottom: 0;
}

.role-col .role-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  background: var(--brick);
}

.support-summary {
  margin-top: 52px;
  border-top: 3px solid var(--ink);
  padding-top: 24px;
}

.support-summary h2 {
  font-size: 26px;
}

.support-summary .section-lede {
  margin-bottom: 20px;
}

.support-table tbody th {
  width: 20%;
}

.support-table td a {
  border-bottom: 1px solid var(--brick);
}

/* 事实台账 */

.table-notes {
  margin-top: 34px;
  border-top: 3px solid var(--ink);
  padding-top: 22px;
}

.table-notes h2 {
  font-size: 26px;
}

.notes-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.note-item {
  border: 3px solid var(--ink);
  padding: 18px;
  min-width: 0;
}

.note-index {
  display: block;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--brick);
  margin-bottom: 8px;
}

.note-item h3 {
  font-size: 17px;
  margin-bottom: 8px;
}

.note-item p {
  font-size: 15px;
  color: #33363d;
}

.ledger-group {
  margin-top: 46px;
}

.gap-note {
  margin-top: 48px;
  border-top: 3px solid var(--ink);
  padding-top: 24px;
}

.gap-note h2 {
  font-size: 26px;
}

.gap-columns {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.gap-col {
  border: 3px solid var(--ink);
  padding: 20px;
  min-width: 0;
}

.gap-col h3 {
  font-size: 17px;
  margin-bottom: 10px;
}

.gap-col p {
  font-size: 15px;
  color: #33363d;
}

.gap-list {
  margin-top: 12px;
  border-top: 1px solid var(--line);
}

.gap-list li {
  position: relative;
  padding: 10px 0 10px 16px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  color: #33363d;
  line-height: 1.7;
}

.gap-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  width: 6px;
  height: 6px;
  background: var(--brick);
}

/* 响应节奏 */

.rhythm-intro {
  margin-top: 34px;
  border-top: 3px solid var(--ink);
  padding-top: 22px;
}

.section-head h2 {
  font-size: 26px;
}

.section-head p {
  margin-top: 10px;
  font-size: 15px;
  color: var(--stone);
  max-width: 62ch;
}

.rhythm-intro .media-figure {
  margin-top: 22px;
}

.rhythm-intro .media-figure img {
  aspect-ratio: 21 / 9;
}

.rhythm-rail {
  margin-top: 52px;
}

.rhythm-rail > h2 {
  font-size: 26px;
  border-top: 3px solid var(--ink);
  padding-top: 22px;
}

.rhythm-row {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 28px;
  border-bottom: 1px solid var(--line);
  padding: 24px 0;
}

.rhythm-row:first-of-type {
  margin-top: 18px;
  border-top: 1px solid var(--line);
}

.rhythm-index {
  min-width: 0;
}

.rhythm-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 15px;
  color: var(--brick);
  margin-bottom: 6px;
}

.rhythm-name {
  font-size: 20px;
}

.rhythm-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.rhythm-col {
  min-width: 0;
  border-left: 3px solid var(--line);
  padding-left: 16px;
}

.rhythm-col h4 {
  font-size: 14px;
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
  color: var(--stone);
  margin-bottom: 8px;
}

.rhythm-col p {
  font-size: 15px;
  color: #33363d;
}

.pause-note {
  margin-top: 48px;
  border-top: 3px solid var(--ink);
  padding-top: 24px;
}

.pause-note h2 {
  font-size: 26px;
}

.pause-cols {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.pause-col {
  border: 3px solid var(--ink);
  padding: 20px;
  min-width: 0;
}

.pause-col h3 {
  font-size: 17px;
  margin-bottom: 12px;
}

.pause-col ul {
  border-top: 1px solid var(--line);
}

.pause-col li {
  position: relative;
  padding: 10px 0 10px 16px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
  color: #33363d;
  line-height: 1.7;
}

.pause-col li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  width: 6px;
  height: 6px;
  background: var(--brick);
}

/* 常见疑问 */

.faq-main {
  margin-top: 34px;
}

.faq-toc-figure {
  margin-top: 20px;
}

.faq-toc-figure img {
  aspect-ratio: 4 / 3;
}

.faq-content {
  min-width: 0;
}

.faq-group {
  margin-bottom: 40px;
}

.faq-group > h2 {
  font-size: 24px;
  border-top: 3px solid var(--ink);
  padding-top: 16px;
}

.group-note {
  margin: 8px 0 18px;
  font-size: 14px;
  color: var(--stone);
  max-width: 62ch;
}

.related-entry {
  margin-top: 52px;
  border-top: 3px solid var(--ink);
  padding-top: 24px;
}

.related-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.related-card {
  border: 3px solid var(--ink);
  padding: 20px;
  min-width: 0;
  transition: transform 0.16s ease, border-color 0.16s ease;
}

.related-card:hover {
  border-color: var(--brick);
  transform: translateX(2px);
}

.related-card h3 {
  font-size: 17px;
  margin-bottom: 10px;
}

.related-card h3 a {
  border-bottom: 2px solid transparent;
}

.related-card h3 a:hover {
  border-bottom-color: var(--brick);
}

.related-card p {
  font-size: 14px;
  color: #33363d;
}

/* 启动条件 */

.fit-check {
  margin-top: 34px;
  border-top: 3px solid var(--ink);
  padding-top: 22px;
}

.fit-check h2 {
  font-size: 26px;
}

.fit-check-columns {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.fit-column {
  border: 3px solid var(--ink);
  padding: 22px;
  min-width: 0;
}

.fit-column > h3 {
  font-size: 19px;
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 3px solid var(--ink);
}

.fit-yes > h3 {
  border-bottom-color: var(--brick);
}

.fit-no > h3 {
  border-bottom-color: var(--stone);
}

.fit-list li {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.fit-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.fit-list h4 {
  font-size: 16px;
  margin-bottom: 4px;
}

.fit-list p {
  font-size: 14px;
  color: #33363d;
  line-height: 1.7;
}

.material-list {
  margin-top: 52px;
  border-top: 3px solid var(--ink);
  padding-top: 24px;
}

.material-list h2 {
  font-size: 26px;
}

.material-item {
  margin-top: 20px;
  border: 3px solid var(--ink);
  padding: 20px;
}

.material-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.material-index {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--brick);
}

.material-head h3 {
  font-size: 18px;
}

.material-purpose {
  font-size: 15px;
  color: #33363d;
}

.material-text {
  margin: 14px 0 0;
  padding: 14px 16px;
  background: var(--paper-soft);
  border: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.8;
  color: #33363d;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: auto;
}

.copy-button {
  margin-top: 12px;
  min-height: 44px;
  padding: 0 18px;
  background: var(--paper);
  border: 3px solid var(--ink);
  font-size: 14px;
  font-weight: 700;
  transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.copy-button:hover {
  border-color: var(--brick);
  color: var(--brick);
  transform: translateX(2px);
}

.confirm-table {
  margin-top: 52px;
  border-top: 3px solid var(--ink);
  padding-top: 24px;
}

.confirm-table h2 {
  font-size: 26px;
}

.confirm-table .table-scroll {
  margin-top: 20px;
}

/* 404 */

.error-main {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 72px 24px 96px;
}

.error-block {
  max-width: 760px;
  border: 3px solid var(--ink);
  padding: 40px 36px;
}

.error-code {
  font-family: var(--font-mono);
  font-size: 15px;
  color: var(--brick);
  margin-bottom: 12px;
}

.error-block h1 {
  font-size: 40px;
  margin-bottom: 16px;
}

.error-lead {
  font-size: 16px;
  color: var(--stone);
  max-width: 52ch;
}

.error-links {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.error-links a {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 0 14px;
  border: 2px solid var(--line);
  font-size: 15px;
  transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.error-links a:hover {
  border-color: var(--brick);
  color: var(--brick);
  transform: translateX(2px);
}

.error-home {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  margin-top: 26px;
  padding: 0 22px;
  background: var(--ink);
  color: var(--paper);
  font-weight: 700;
  border: 3px solid var(--ink);
}

.error-home:hover {
  background: var(--brick);
  border-color: var(--brick);
  color: #fff;
}

/* 滚动出现增强：默认完全可见，仅在支持脚本时叠加位移 */

@media (prefers-reduced-motion: no-preference) {
  .js .reveal {
    transform: translateY(8px);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }

  .js .reveal.is-visible {
    transform: none;
  }
}

/* ==========================================================================
   6. RESPONSIVE  1120 / 960 / 640
   ========================================================================== */

@media (max-width: 1120px) {
  .hero-copy h1 {
    font-size: 40px;
  }

  .page-title {
    font-size: 36px;
  }

  .role-grid,
  .role-columns,
  .role-entry-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rhythm-row {
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 22px;
  }
}

@media (max-width: 960px) {
  .header-inner {
    min-height: 66px;
  }

  .brand::after {
    display: none;
  }

  .header-nav {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .hero {
    padding-top: 32px;
  }

  .hero-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .hero-copy h1 {
    font-size: 34px;
    max-width: none;
  }

  .judgment-grid,
  .picks-list,
  .start-grid,
  .gap-grid,
  .notes-grid,
  .related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-layout,
  .page-layout.sidebar-left {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .side-index,
  .scope-topics,
  .faq-topics,
  .faq-toc {
    position: static;
  }

  .index-list,
  .toc-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border-top: 0;
  }

  .index-list li,
  .toc-list li {
    border-bottom: 0;
  }

  .index-list a,
  .toc-list a {
    min-height: 44px;
    padding: 0 14px;
    border: 2px solid var(--line);
  }

  .index-list a:hover,
  .toc-list a:hover {
    border-color: var(--brick);
  }

  .rhythm-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .rhythm-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .footer-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    padding-top: 44px;
  }
}

@media (max-width: 640px) {
  body.site-body {
    font-size: 16px;
  }

  .header-inner,
  .inner-main,
  .home-main,
  .footer-inner,
  .footer-bottom,
  .mobile-nav,
  .error-main {
    padding-left: 18px;
    padding-right: 18px;
  }

  .brand {
    font-size: 22px;
  }

  .page-title {
    font-size: 28px;
  }

  .error-block h1 {
    font-size: 28px;
  }

  .hero-copy h1 {
    font-size: 28px;
    line-height: 1.25;
  }

  .hero-lead {
    font-size: 16px;
  }

  .hero-actions .btn {
    flex: 1 1 100%;
  }

  .method-index {
    padding: 16px;
  }

  .method-index li {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .judgment-grid,
  .picks-list,
  .start-grid,
  .gap-grid,
  .notes-grid,
  .related-grid,
  .role-grid,
  .role-columns,
  .role-entry-list,
  .fit-check-columns,
  .gap-columns,
  .pause-cols,
  .next-step-grid,
  .next-step-cols,
  .next-step-columns,
  .next-columns {
    grid-template-columns: minmax(0, 1fr);
  }

  .rhythm-cols {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .rhythm-col {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-left: 0;
    padding-top: 12px;
  }

  .entry-meta {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }

  .entry-meta dt {
    margin-top: 8px;
  }

  .error-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .error-block {
    padding: 28px 20px;
  }

  .footer-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .footer-bottom {
    flex-direction: column;
  }

  .faq-item summary {
    font-size: 16px;
    padding: 12px 14px;
  }

  .faq-item > p,
  .faq-answer {
    padding: 0 14px 16px;
  }

  .table-scroll {
    border-width: 2px;
  }

  .ledger-table,
  .ledger,
  .support-table {
    min-width: 560px;
  }

  .material-item {
    padding: 16px;
  }

  .next-step {
    margin-top: 44px;
  }
}
