/* ==========================================================================
   贝博服务 · 共享样式表  /assets/site.css
   视觉体系：数字航海图鉴 × 档案资料体系
   ========================================================================== */

/* ---------- 1. 重置 ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body, h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, dl, dd, fieldset, legend { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg, video, canvas { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
a { color: inherit; }
table { border-collapse: collapse; width: 100%; }

/* ---------- 2. 设计令牌 ---------- */
:root {
  /* 自然矿物色 + 航海色系 */
  --c-deep: #0B2A45;
  --c-night: #071B2E;
  --c-tide: #14507A;
  --c-cyan: #3E8CB5;
  --c-orange: #F26A21;
  --c-gold: #E8B33C;
  --c-clay: #B4552F;
  --c-moss: #5F7F62;
  --c-cream: #F5F0E6;
  --c-rock: #C7C1B6;
  --c-paper: #FFFFFF;

  --ink-1: #F5F0E6;
  --ink-2: rgba(245, 240, 230, 0.76);
  --ink-3: rgba(199, 193, 182, 0.68);
  --ink-inv: #071B2E;

  --line-soft: rgba(62, 140, 181, 0.26);
  --line-hard: rgba(199, 193, 182, 0.40);

  /* 字体栈：全部使用系统字体，避免远程加载 */
  --font-sans: "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC",
    "Noto Sans CJK SC", "Microsoft YaHei", system-ui, -apple-system,
    "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas,
    "Liberation Mono", "Courier New", monospace;

  --shell-max: 1440px;
  --gutter: clamp(18px, 4vw, 56px);
  --header-h: 74px;
  --radius-card: 6px;
  --ease-out: cubic-bezier(0.2, 0.75, 0.3, 1);
  --dur: 220ms;
}

/* ---------- 3. 基础排版 ---------- */
body {
  min-height: 100vh;
  overflow-x: clip;
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.85;
  font-weight: 400;
  color: var(--ink-1);
  background-color: var(--c-night);
  background-image:
    radial-gradient(1100px 620px at 10% -6%, rgba(20, 80, 122, 0.58) 0%, rgba(20, 80, 122, 0) 68%),
    radial-gradient(820px 520px at 96% 4%, rgba(242, 106, 33, 0.13) 0%, rgba(242, 106, 33, 0) 64%),
    linear-gradient(180deg, #0B2A45 0%, #071B2E 58%, #05121C 100%);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

::selection { background: var(--c-gold); color: var(--c-night); }

h1, h2, h3, h4 { line-height: 1.18; font-weight: 700; color: var(--c-cream); }
strong, b { font-weight: 700; color: var(--c-cream); }

:focus-visible {
  outline: 3px solid var(--c-gold);
  outline-offset: 3px;
  border-radius: 3px;
}
:focus:not(:focus-visible) { outline: none; }

/* ---------- 4. 跳转链接 ---------- */
.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 999;
  transform: translateY(-180%);
  padding: 12px 20px;
  border-radius: 4px;
  background: var(--c-gold);
  color: var(--c-night);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: transform var(--dur) var(--ease-out);
}
.skip-link:focus { transform: translateY(0); }

/* ---------- 5. 布局容器 ---------- */
.shell {
  width: 100%;
  max-width: var(--shell-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.content-shell {
  width: 100%;
  max-width: var(--shell-max);
  margin-inline: auto;
  padding: clamp(26px, 4vw, 62px) var(--gutter) 0;
}

.stack > * + * { margin-top: clamp(18px, 2.4vw, 34px); }

/* ---------- 6. 头部导航带 ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 120;
  background:
    linear-gradient(105deg,
      rgba(7, 27, 46, 0.97) 0%,
      rgba(11, 42, 69, 0.95) 52%,
      rgba(20, 80, 122, 0.92) 100%);
  border-bottom: 1px solid var(--line-soft);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  backdrop-filter: blur(10px) saturate(140%);
}

.site-header__rule {
  height: 5px;
  background-image:
    repeating-linear-gradient(90deg,
      rgba(62, 140, 181, 0.75) 0 2px,
      rgba(62, 140, 181, 0) 2px 15px);
  opacity: 0.6;
}

.site-header__inner {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.8vw, 28px);
  width: 100%;
  max-width: var(--shell-max);
  margin-inline: auto;
  padding: 10px var(--gutter);
  min-height: var(--header-h);
}

/* 品牌区 */
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  text-decoration: none;
  border-radius: 4px;
}

.brand__mark {
  position: relative;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid var(--c-gold);
  background: radial-gradient(circle at 50% 50%,
    rgba(242, 106, 33, 0.34) 0%,
    rgba(11, 42, 69, 0.94) 72%);
  box-shadow: inset 0 0 0 3px rgba(7, 27, 46, 0.85);
}

.brand__mark::before {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  border: 1px dashed rgba(232, 179, 60, 0.55);
}

.brand__needle {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2px;
  height: 21px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--c-orange) 0 50%, var(--c-cyan) 50% 100%);
  transform: translate(-50%, -50%) rotate(-28deg);
  transition: transform 320ms var(--ease-out);
}
.brand:hover .brand__needle,
.brand:focus-visible .brand__needle { transform: translate(-50%, -50%) rotate(28deg); }

.brand__text { display: flex; flex-direction: column; line-height: 1.25; }

.brand__line {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: var(--c-cream);
}

.brand__tagline {
  margin-top: 3px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.17em;
  color: var(--c-gold);
  opacity: 0.9;
}

/* 移动端切换按钮 */
.nav-toggle {
  display: none;
  align-items: center;
  gap: 9px;
  margin-left: auto;
  padding: 10px 14px;
  border-radius: 4px;
  border: 1.5px solid var(--line-soft);
  background: rgba(20, 80, 122, 0.5);
  color: var(--c-cream);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  transition: border-color var(--dur) var(--ease-out),
              background-color var(--dur) var(--ease-out);
}
.nav-toggle:hover { border-color: var(--c-gold); background: rgba(20, 80, 122, 0.78); }

.nav-toggle__bars {
  position: relative;
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  transition: background-color var(--dur) var(--ease-out);
}
.nav-toggle__bars::before,
.nav-toggle__bars::after {
  content: "";
  position: absolute;
  left: 0;
  width: 18px;
  height: 2px;
  background: currentColor;
  transition: transform var(--dur) var(--ease-out);
}
.nav-toggle__bars::before { top: -6px; }
.nav-toggle__bars::after { top: 6px; }

.nav-toggle[aria-expanded="true"] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

.nav-toggle__label { display: inline-block; }

/* 主导航 */
.site-nav { margin-left: auto; min-width: 0; }

.site-nav__list {
  display: flex;
  align-items: center;
  gap: 2px;
}

.site-nav__list > li { display: block; }

.site-nav__list a {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 4px;
  border-bottom: 2px solid transparent;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--dur) var(--ease-out),
              background-color var(--dur) var(--ease-out),
              transform var(--dur) var(--ease-out);
}
.site-nav__list a:hover {
  color: var(--c-cream);
  background: rgba(62, 140, 181, 0.18);
  transform: translateY(-1px);
}

.site-nav__num {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: rgba(232, 179, 60, 0.72);
}

.site-nav__list a[aria-current="page"] {
  color: var(--c-night);
  background: linear-gradient(180deg, var(--c-gold) 0%, #D19A22 100%);
  box-shadow: 0 5px 16px rgba(232, 179, 60, 0.28);
  transform: none;
}
.site-nav__list a[aria-current="page"] .site-nav__num { color: rgba(7, 27, 46, 0.62); }

.site-nav__cta { display: none; }

/* 右侧常驻入口 */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  margin-left: 8px;
}

/* ---------- 7. 按钮 ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 4px;
  border: 1.5px solid transparent;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  transition: transform var(--dur) var(--ease-out),
              background-color var(--dur) var(--ease-out),
              border-color var(--dur) var(--ease-out),
              color var(--dur) var(--ease-out),
              box-shadow var(--dur) var(--ease-out);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

.btn--primary {
  background: var(--c-orange);
  border-color: var(--c-orange);
  color: #1A0C03;
  box-shadow: 0 6px 18px rgba(242, 106, 33, 0.3);
}
.btn--primary:hover {
  background: #FF7D34;
  border-color: #FF7D34;
  box-shadow: 0 10px 26px rgba(242, 106, 33, 0.42);
}

.btn--ghost {
  background: transparent;
  border-color: rgba(199, 193, 182, 0.42);
  color: var(--c-cream);
}
.btn--ghost:hover { border-color: var(--c-gold); color: var(--c-gold); }

.btn--line {
  background: transparent;
  border-color: var(--c-cyan);
  color: var(--c-cyan);
}
.btn--line:hover { background: rgba(62, 140, 181, 0.16); }

/* ---------- 8. 滚动进度 ---------- */
.scroll-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  background: linear-gradient(90deg, var(--c-cyan) 0%, var(--c-gold) 55%, var(--c-orange) 100%);
  transform: scaleX(0);
  transform-origin: 0 50%;
  will-change: transform;
  pointer-events: none;
}

/* ---------- 9. 通用文字组件 ---------- */
.mono { font-family: var(--font-mono); letter-spacing: 0.04em; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--c-gold);
}
.eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--c-gold);
  opacity: 0.85;
}

.display-xl {
  font-size: clamp(48px, 9vw, 132px);
  font-weight: 900;
  line-height: 0.94;
  letter-spacing: -0.02em;
  color: var(--c-cream);
  transform: skewX(-3deg);
  transform-origin: left bottom;
  overflow-wrap: break-word;
}

.section-title {
  font-size: clamp(28px, 4vw, 56px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--c-cream);
  transform: skewX(-2deg);
  transform-origin: left center;
}

.lede {
  max-width: 62ch;
  font-size: clamp(17px, 1.35vw, 19px);
  color: var(--ink-2);
}

.section {
  position: relative;
  padding-left: clamp(16px, 2vw, 28px);
}
.section::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 3px;
  height: 46px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--c-gold) 0%, var(--c-orange) 100%);
}

.rule-waves {
  height: 10px;
  border: 0;
  background-image:
    repeating-linear-gradient(90deg,
      rgba(62, 140, 181, 0.55) 0 1px,
      rgba(62, 140, 181, 0) 1px 9px);
  opacity: 0.7;
}

/* ---------- 10. 档案卡与标签 ---------- */
.archive-card {
  position: relative;
  padding: 34px 24px 24px;
  border: 2px solid var(--line-hard);
  border-radius: var(--radius-card);
  background: linear-gradient(160deg,
    rgba(20, 80, 122, 0.62) 0%,
    rgba(11, 42, 69, 0.88) 100%);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
  transition: transform var(--dur) var(--ease-out),
              border-color var(--dur) var(--ease-out),
              box-shadow var(--dur) var(--ease-out);
}
.archive-card:hover {
  transform: translateY(-4px);
  border-color: var(--c-cyan);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.42);
}

.archive-card__no {
  position: absolute;
  top: 12px;
  left: 18px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: rgba(232, 179, 60, 0.88);
}

.paper-card {
  padding: 24px;
  border: 2px solid var(--line-hard);
  border-radius: var(--radius-card);
  background: var(--c-paper);
  color: #22303C;
}
.paper-card h3, .paper-card h2 { color: #0B2A45; }
.paper-card a { color: var(--c-tide); }

.tag {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid currentColor;
  border-radius: 3px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  line-height: 1.4;
  color: var(--c-cyan);
  transition: transform var(--dur) var(--ease-out);
}
.tag:hover { transform: rotate(-2deg); }
.tag--gold { color: var(--c-gold); }
.tag--moss { color: var(--c-moss); }
.tag--clay { color: var(--c-clay); }
.tag--cream { color: var(--c-cream); }

.badge-float {
  display: inline-block;
  padding: 9px 18px;
  border-radius: 999px;
  background: var(--c-orange);
  color: #1A0C03;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-decoration: none;
  transform: rotate(-2deg);
  box-shadow: 0 12px 26px rgba(242, 106, 33, 0.34);
  transition: transform var(--dur) var(--ease-out),
              background-color var(--dur) var(--ease-out);
}
.badge-float:hover { transform: rotate(0deg) translateY(-2px); background: #FF7D34; }

/* ---------- 11. 栅格 ---------- */
.grid { display: grid; gap: clamp(16px, 2vw, 28px); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--sidebar { grid-template-columns: minmax(0, 250px) minmax(0, 1fr); }

/* ---------- 12. 面包屑 ---------- */
.breadcrumb { padding-top: 18px; }
.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ink-3);
}
.breadcrumb li { display: flex; align-items: center; gap: 8px; }
.breadcrumb li + li::before { content: "/"; color: rgba(199, 193, 182, 0.42); }
.breadcrumb a {
  text-decoration: none;
  color: var(--ink-2);
  border-bottom: 1px solid transparent;
  transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}
.breadcrumb a:hover { color: var(--c-gold); border-bottom-color: var(--c-gold); }
.breadcrumb [aria-current="page"] { color: var(--c-gold); }

/* ---------- 13. 正文容器 ---------- */
.prose { max-width: 74ch; }
.prose p { margin: 0 0 1.2em; }
.prose p:last-child { margin-bottom: 0; }
.prose h2 { margin: 1.8em 0 0.6em; font-size: clamp(22px, 2.4vw, 30px); }
.prose h3 { margin: 1.5em 0 0.5em; font-size: clamp(18px, 1.8vw, 22px); }
.prose a {
  color: var(--c-gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(232, 179, 60, 0.45);
  transition: border-color var(--dur) var(--ease-out);
}
.prose a:hover { border-bottom-color: var(--c-gold); }
.prose ul, .prose ol { margin: 1.2em 0; padding-left: 1.35em; list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin: 0.45em 0; }
.prose blockquote {
  margin: 1.6em 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid var(--c-gold);
  color: var(--ink-2);
}
.prose hr { margin: 2.4em 0; border: 0; border-top: 1px solid var(--line-soft); }

/* ---------- 14. 图片容器（可复用，响应式） ---------- */
.media-frame {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border: 2px solid var(--line-hard);
  border-radius: var(--radius-card);
  aspect-ratio: 16 / 9;
  background-color: var(--c-tide);
  background-image:
    linear-gradient(135deg, rgba(7, 27, 46, 0.88) 0%, rgba(20, 80, 122, 0.55) 100%),
    repeating-linear-gradient(45deg,
      rgba(245, 240, 230, 0.05) 0 2px,
      rgba(245, 240, 230, 0) 2px 13px);
}
.media-frame > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.media-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(245, 240, 230, 0.12);
  pointer-events: none;
}
.media-frame--wide { aspect-ratio: 21 / 9; }
.media-frame--portrait { aspect-ratio: 3 / 4; }
.media-frame--tall { aspect-ratio: 4 / 5; }
.media-frame--square { aspect-ratio: 1 / 1; }

/* ---------- 15. 侧边目录 ---------- */
.toc {
  position: sticky;
  top: calc(var(--header-h) + 26px);
  align-self: start;
}
.toc__title {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--c-gold);
  margin-bottom: 14px;
}
.toc__list li + li { margin-top: 2px; }
.toc__list a {
  display: block;
  padding: 8px 12px;
  border-left: 2px solid rgba(62, 140, 181, 0.3);
  font-size: 14.5px;
  color: var(--ink-2);
  text-decoration: none;
  transition: color var(--dur) var(--ease-out),
              border-color var(--dur) var(--ease-out),
              background-color var(--dur) var(--ease-out);
}
.toc__list a:hover { color: var(--c-cream); border-left-color: var(--c-cyan); }
.toc__list a[aria-current="true"] {
  color: var(--c-gold);
  border-left-color: var(--c-gold);
  background: rgba(232, 179, 60, 0.08);
}

/* ---------- 16. 显现动画 ---------- */
.js-ready [data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 420ms var(--ease-out), transform 420ms var(--ease-out);
}
[data-reveal][data-revealed] {
  opacity: 1;
  transform: none;
}

/* ---------- 17. 页脚 ---------- */
.site-footer {
  position: relative;
  margin-top: clamp(72px, 9vw, 140px);
  border-top: 1px solid var(--line-soft);
  background:
    radial-gradient(900px 400px at 6% 0%, rgba(20, 80, 122, 0.46) 0%, rgba(20, 80, 122, 0) 62%),
    linear-gradient(180deg, #071B2E 0%, #04101A 100%);
  color: var(--ink-2);
  font-size: 15px;
}
.site-footer::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    rgba(62, 140, 181, 0) 0%,
    var(--c-cyan) 22%,
    var(--c-gold) 62%,
    rgba(242, 106, 33, 0) 100%);
  opacity: 0.75;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.55fr) repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 48px);
  padding-block: clamp(48px, 6vw, 84px);
}

.footer-brand { max-width: 34ch; }

.footer-brand__mark {
  position: relative;
  display: block;
  width: 44px;
  height: 44px;
  margin-bottom: 16px;
  border-radius: 50%;
  border: 2px solid var(--c-gold);
  background: conic-gradient(from 0deg,
    rgba(232, 179, 60, 0.7) 0 25%,
    rgba(232, 179, 60, 0) 25% 50%,
    rgba(62, 140, 181, 0.6) 50% 75%,
    rgba(62, 140, 181, 0) 75% 100%);
  box-shadow: inset 0 0 0 6px rgba(7, 27, 46, 0.92);
}
.footer-brand__mark::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  margin: -3.5px 0 0 -3.5px;
  border-radius: 50%;
  background: var(--c-orange);
}

.footer-brand__name {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0.02em;
  color: var(--c-cream);
}

.footer-brand__desc {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1.8;
  color: var(--ink-3);
}

.footer-brand__region {
  display: inline-block;
  margin-top: 18px;
  padding: 5px 12px;
  border: 1px solid rgba(232, 179, 60, 0.5);
  border-radius: 3px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--c-gold);
}

.footer-col__title {
  margin-bottom: 16px;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--c-gold);
}

.footer-col__list li + li { margin-top: 10px; }

.footer-col__list a {
  font-size: 15px;
  color: var(--ink-2);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}
.footer-col__list a:hover { color: var(--c-cream); border-bottom-color: var(--c-cyan); }

.footer-col__list--plain li {
  font-size: 14px;
  color: var(--ink-3);
  font-family: var(--font-mono);
  letter-spacing: 0.04em;
}
.footer-col__list--plain a {
  font-family: var(--font-sans);
  font-size: 15px;
  letter-spacing: 0;
}

.site-footer__base {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 28px;
  padding-block: 24px 42px;
  border-top: 1px solid rgba(62, 140, 181, 0.2);
}

.footer-meta {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.05em;
  color: var(--ink-3);
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-left: auto;
}
.footer-legal a {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--ink-3);
  text-decoration: none;
  border-bottom: 1px solid rgba(199, 193, 182, 0.3);
  transition: color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}
.footer-legal a:hover { color: var(--c-gold); border-bottom-color: var(--c-gold); }

/* ---------- 18. 返回顶部 ---------- */
.to-top {
  position: fixed;
  right: clamp(16px, 3vw, 34px);
  bottom: clamp(16px, 3vw, 34px);
  z-index: 110;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1.5px solid rgba(232, 179, 60, 0.55);
  background: rgba(20, 80, 122, 0.94);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.42);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity var(--dur) var(--ease-out),
              transform var(--dur) var(--ease-out),
              visibility var(--dur) var(--ease-out),
              border-color var(--dur) var(--ease-out);
}
.to-top[data-visible] { opacity: 1; visibility: visible; transform: translateY(0); }
.to-top:hover { border-color: var(--c-gold); }

.to-top__arrow {
  position: relative;
  display: block;
  width: 12px;
  height: 12px;
  border-left: 2px solid var(--c-gold);
  border-top: 2px solid var(--c-gold);
  transform: rotate(45deg) translate(1px, 1px);
}

/* ---------- 19. 响应式：平板 ---------- */
@media (max-width: 1180px) {
  .site-footer__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .footer-brand { grid-column: 1 / -1; max-width: 46ch; }
}

@media (max-width: 1024px) {
  .nav-toggle { display: inline-flex; }

  .site-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin-left: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    border-bottom: 1px solid var(--line-soft);
    background: linear-gradient(180deg, rgba(7, 27, 46, 0.99) 0%, rgba(11, 42, 69, 0.99) 100%);
    box-shadow: 0 26px 52px rgba(0, 0, 0, 0.46);
    transition: max-height 300ms var(--ease-out),
                opacity 200ms var(--ease-out),
                visibility 200ms var(--ease-out);
  }

  .site-nav[data-open] {
    max-height: min(72vh, 560px);
    overflow-y: auto;
    opacity: 1;
    visibility: visible;
  }

  .site-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px var(--gutter) 20px;
  }
  .site-nav__list > li + li { border-top: 1px solid rgba(62, 140, 181, 0.18); }
  .site-nav__list a {
    padding: 14px 4px;
    font-size: 16px;
    border-radius: 0;
    border-bottom: 0;
    justify-content: flex-start;
  }
  .site-nav__list a[aria-current="page"] {
    background: transparent;
    color: var(--c-gold);
    box-shadow: none;
    padding-left: 12px;
    border-left: 3px solid var(--c-gold);
  }
  .site-nav__list a[aria-current="page"] .site-nav__num { color: rgba(232, 179, 60, 0.8); }

  .site-nav__cta { display: block; padding-top: 16px; border-top: 1px solid rgba(62, 140, 181, 0.18); }
  .site-nav__cta .btn { width: 100%; }

  .header-actions { display: none; }

  .grid--sidebar { grid-template-columns: minmax(0, 1fr); }
  .toc { position: static; top: auto; }
}

/* ---------- 20. 响应式：手机 ---------- */
@media (max-width: 760px) {
  body { font-size: 16px; line-height: 1.8; }

  .brand__mark { width: 34px; height: 34px; }
  .brand__line { font-size: 12.5px; }
  .brand__tagline { font-size: 9.5px; letter-spacing: 0.14em; }

  .grid--2, .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); }

  .site-footer__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .site-footer__base { flex-direction: column; align-items: flex-start; }
  .footer-legal { margin-left: 0; }
}

@media (max-width: 480px) {
  .brand__text { display: none; }
  .nav-toggle { margin-left: auto; }
}

/* ---------- 21. 可访问性：降低动效 ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .js-ready [data-reveal] { opacity: 1; transform: none; }
  .archive-card:hover, .btn:hover, .badge-float:hover, .brand:hover .brand__needle { transform: none; }
}
