/* ============================================================
   天行体育平台 · 共享样式 /assets/site.css
   夜场档案室 · 复古出版色 · 非对称编辑部版式
   ============================================================ */

/* ---------- 1. reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body, h1, h2, h3, h4, h5, p, ul, ol, li, figure, figcaption, blockquote, dl, dd { margin: 0; padding: 0; }
ul, ol { 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; text-decoration: none; }
table { border-collapse: collapse; width: 100%; }
main { display: block; }

/* ---------- 2. 变量 ---------- */
:root {
  --tx-pitch: #0B1F17;
  --tx-char: #14181A;
  --tx-cream: #F2EAD9;
  --tx-paper: #E6DCC6;
  --tx-neon: #C8FF3D;
  --tx-orange: #FF5A2A;
  --tx-red: #C7352A;
  --tx-gray: #9AA6A0;
  --tx-white: #F7F4EC;
  --tx-rule: #3A4640;

  --tx-font-display: "Barlow Condensed", "Oswald", "Arial Narrow", "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --tx-font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Courier New", monospace;
  --tx-font-body: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;

  --tx-wrap: 1440px;
  --tx-pad: 40px;
  --tx-gutter: 24px;
  --tx-radius: 2px;
  --tx-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tx-dur-in: 240ms;
  --tx-dur-filter: 160ms;
  --tx-dur-hover: 120ms;
  --tx-scorebar-h: 34px;
}
@media (max-width: 1024px) {
  :root { --tx-pad: 28px; --tx-gutter: 18px; }
}
@media (max-width: 640px) {
  :root { --tx-pad: 18px; --tx-gutter: 14px; --tx-scorebar-h: 38px; }
}

/* ---------- 3. 基础排版 ---------- */
body {
  position: relative;
  z-index: 0;
  background-color: var(--tx-pitch);
  background-image:
    radial-gradient(1200px 420px at 18% -12%, rgba(200, 255, 61, 0.07), transparent 62%),
    radial-gradient(900px 420px at 92% 6%, rgba(255, 90, 42, 0.06), transparent 60%),
    repeating-linear-gradient(0deg, rgba(247, 244, 236, 0.016) 0 1px, transparent 1px 3px);
  background-repeat: no-repeat, no-repeat, repeat;
  color: var(--tx-white);
  font-family: var(--tx-font-body);
  font-size: 17px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1, h2, h3, h4 { font-family: var(--tx-font-display); font-weight: 900; line-height: 1.06; letter-spacing: 0; color: var(--tx-white); }
strong { font-weight: 700; }
small { font-size: 12px; }

:focus-visible {
  outline: 2px solid var(--tx-neon);
  outline-offset: 2px;
  border-radius: var(--tx-radius);
}

::selection { background: var(--tx-neon); color: var(--tx-pitch); }

/* ---------- 4. 排版工具 ---------- */
.tx-display { font-family: var(--tx-font-display); font-weight: 900; line-height: 0.94; letter-spacing: -0.005em; }
.tx-display--xl { font-size: clamp(44px, 7.4vw, 84px); }
.tx-display--lg { font-size: clamp(34px, 4.6vw, 56px); }
.tx-display--md { font-size: clamp(26px, 3vw, 40px); }

.tx-mono { font-family: var(--tx-font-mono); font-variant-numeric: tabular-nums; }

.tx-eyebrow {
  display: inline-block;
  font-family: var(--tx-font-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--tx-gray);
  font-weight: 600;
}
.tx-note { font-size: 13px; line-height: 1.7; color: var(--tx-gray); }

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

.tx-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--tx-gutter); }
.tx-span-3 { grid-column: span 3; }
.tx-span-4 { grid-column: span 4; }
.tx-span-5 { grid-column: span 5; }
.tx-span-6 { grid-column: span 6; }
.tx-span-7 { grid-column: span 7; }
.tx-span-8 { grid-column: span 8; }
.tx-span-9 { grid-column: span 9; }
.tx-span-12 { grid-column: span 12; }

.tx-stack > * + * { margin-top: var(--tx-gutter); }

.tx-prose { max-width: 68ch; font-size: 17px; line-height: 1.75; color: var(--tx-white); }
.tx-prose p { margin-bottom: 1.1em; }
.tx-prose h2 { font-size: 32px; margin: 1.6em 0 0.6em; }
.tx-prose h3 { font-size: 24px; margin: 1.4em 0 0.5em; }
.tx-prose ul { list-style: none; margin-bottom: 1.1em; }
.tx-prose ul li { position: relative; padding-left: 20px; margin-bottom: 0.5em; }
.tx-prose ul li::before { content: ""; position: absolute; left: 0; top: 0.72em; width: 8px; height: 2px; background: var(--tx-neon); }
.tx-prose a { color: var(--tx-neon); border-bottom: 1px solid var(--tx-rule); }
.tx-prose a:hover { border-color: var(--tx-neon); }

/* ---------- 6. 按钮 / 标签 / 贴纸 ---------- */
.tx-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  background: transparent;
  color: var(--tx-white);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.06em;
  transition: background-color var(--tx-dur-hover) var(--tx-ease), color var(--tx-dur-hover) var(--tx-ease), border-color var(--tx-dur-hover) var(--tx-ease), transform var(--tx-dur-hover) var(--tx-ease);
}
.tx-btn:hover { border-color: var(--tx-neon); color: var(--tx-neon); transform: translateY(-1px); }
.tx-btn--accent { background: var(--tx-neon); border-color: var(--tx-neon); color: var(--tx-pitch); }
.tx-btn--accent:hover { background: var(--tx-white); border-color: var(--tx-white); color: var(--tx-pitch); }
.tx-btn--ghost { border-color: var(--tx-gray); color: var(--tx-cream); }
.tx-btn--ghost:hover { border-color: var(--tx-orange); color: var(--tx-orange); }
.tx-btn--paper { background: var(--tx-cream); border-color: var(--tx-char); color: var(--tx-char); }
.tx-btn--paper:hover { background: var(--tx-paper); border-color: var(--tx-char); color: var(--tx-char); }

.tx-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  background: rgba(247, 244, 236, 0.04);
  color: var(--tx-cream);
  font-family: var(--tx-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}
.tx-tag--neon { background: var(--tx-neon); border-color: var(--tx-neon); color: var(--tx-pitch); }
.tx-tag--orange { background: var(--tx-orange); border-color: var(--tx-orange); color: var(--tx-char); }
.tx-tag--red { background: var(--tx-red); border-color: var(--tx-red); color: var(--tx-white); }

.tx-sticker {
  display: inline-block;
  padding: 6px 12px;
  background: var(--tx-neon);
  color: var(--tx-pitch);
  border: 1px solid var(--tx-pitch);
  font-family: var(--tx-font-mono);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.3;
  transform: rotate(-4deg);
  box-shadow: 2px 3px 0 rgba(0, 0, 0, 0.35);
  transition: transform var(--tx-dur-hover) var(--tx-ease);
}
.tx-sticker:hover { transform: rotate(-2deg); }
.tx-sticker--orange { background: var(--tx-orange); color: var(--tx-char); }
.tx-sticker--pin { position: absolute; top: 14px; right: -6px; z-index: 2; }

/* ---------- 7. 纸张 / 卡片 / 章节头 ---------- */
.tx-paper {
  position: relative;
  padding: 24px;
  background: var(--tx-cream);
  color: var(--tx-char);
  border: 1px solid #CFC3A6;
  border-radius: var(--tx-radius);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}
.tx-paper--layer { isolation: isolate; }
.tx-paper--layer::before {
  content: "";
  position: absolute;
  inset: 6px -6px -6px 6px;
  z-index: -1;
  background: var(--tx-paper);
  border: 1px solid #CFC3A6;
  border-radius: var(--tx-radius);
}

.tx-card {
  position: relative;
  padding: 22px;
  background: var(--tx-char);
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  transition: border-color var(--tx-dur-hover) var(--tx-ease), transform var(--tx-dur-in) var(--tx-ease);
}
.tx-card:hover { border-color: var(--tx-neon); transform: translateY(-2px); }

.tx-section-head {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding-bottom: 10px;
  margin-bottom: 28px;
  border-bottom: 2px solid var(--tx-cream);
}
.tx-section-head__no { font-family: var(--tx-font-mono); font-size: 13px; letter-spacing: 0.1em; color: var(--tx-orange); }
.tx-section-head__title { font-size: 32px; line-height: 1; }
.tx-section-head__meta { margin-left: auto; font-family: var(--tx-font-mono); font-size: 12px; color: var(--tx-gray); }

/* ---------- 8. 图片容器（供页面阶段放置图片） ---------- */
.tx-figure {
  position: relative;
  overflow: hidden;
  background: var(--tx-char);
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
}
.tx-figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9) contrast(1.06); }
.tx-figure--wide { aspect-ratio: 16 / 9; }
.tx-figure--band { aspect-ratio: 21 / 9; }
.tx-figure--tall { aspect-ratio: 3 / 4; }
.tx-figure--square { aspect-ratio: 1 / 1; }

.tx-figure__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  max-width: 92%;
  padding: 6px 12px;
  background: rgba(11, 31, 23, 0.86);
  color: var(--tx-cream);
  border-top: 1px solid var(--tx-rule);
  border-right: 1px solid var(--tx-rule);
  font-family: var(--tx-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
}
.tx-figure__sticker { position: absolute; top: 14px; right: -6px; z-index: 2; }

.tx-figure--empty {
  background-color: #0E1A15;
  background-image: repeating-linear-gradient(135deg, rgba(154, 166, 160, 0.10) 0 1px, transparent 1px 12px);
}
.tx-figure--empty::after {
  content: attr(data-label);
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  padding: 6px 12px;
  border: 1px dashed var(--tx-rule);
  color: var(--tx-gray);
  font-family: var(--tx-font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  white-space: nowrap;
  text-align: center;
}

/* ---------- 9. 面包屑 ---------- */
.tx-breadcrumb { padding: 14px 0; border-bottom: 1px solid var(--tx-rule); }
.tx-breadcrumb__list { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--tx-font-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--tx-gray); }
.tx-breadcrumb__list li + li::before { content: "/"; margin-right: 8px; color: var(--tx-rule); }
.tx-breadcrumb__list a:hover { color: var(--tx-neon); }

/* ---------- 10. 筛选器 ---------- */
.tx-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 14px 0;
  border-bottom: 1px solid var(--tx-rule);
}
.tx-filter__label { margin-right: 6px; font-family: var(--tx-font-mono); font-size: 11px; letter-spacing: 0.2em; color: var(--tx-gray); text-transform: uppercase; }
.tx-filter__btn {
  padding: 7px 14px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  color: var(--tx-cream);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.06em;
  transition: background-color var(--tx-dur-filter) var(--tx-ease), color var(--tx-dur-filter) var(--tx-ease), border-color var(--tx-dur-filter) var(--tx-ease);
}
.tx-filter__btn:hover { border-color: var(--tx-neon); color: var(--tx-neon); }
.tx-filter__btn[aria-pressed="true"] { background: var(--tx-neon); border-color: var(--tx-neon); color: var(--tx-pitch); }
.tx-filter__count { margin-left: auto; font-family: var(--tx-font-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--tx-gray); }
[data-filter-item][hidden] { display: none !important; }

/* ---------- 11. 时间轴 ---------- */
.tx-timeline { padding-left: 18px; border-left: 1px solid var(--tx-rule); }
.tx-timeline__item { position: relative; padding-bottom: 22px; }
.tx-timeline__item::before {
  content: "";
  position: absolute;
  left: -23px;
  top: 8px;
  width: 9px;
  height: 9px;
  background: var(--tx-pitch);
  border: 2px solid var(--tx-neon);
  transform: rotate(45deg);
}
.tx-timeline__item--current::before { background: var(--tx-neon); }
.tx-timeline__round { display: block; font-family: var(--tx-font-mono); font-size: 12px; letter-spacing: 0.1em; color: var(--tx-neon); }
.tx-timeline__text { font-size: 14px; line-height: 1.65; color: var(--tx-gray); }

/* ---------- 12. 跳转链接 / 进度 / 显现 ---------- */
.tx-skip {
  position: absolute;
  left: 12px;
  top: -72px;
  z-index: 120;
  padding: 10px 16px;
  background: var(--tx-neon);
  color: var(--tx-pitch);
  font-weight: 700;
  border-radius: var(--tx-radius);
  transition: top var(--tx-dur-hover) var(--tx-ease);
}
.tx-skip:focus { top: 12px; }

.tx-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 90; pointer-events: none; }
.tx-progress__bar { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--tx-neon), var(--tx-orange)); transition: width 90ms linear; }

.tx-reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--tx-dur-in) var(--tx-ease), transform var(--tx-dur-in) var(--tx-ease);
}
.tx-reveal.is-in { opacity: 1; transform: none; }

/* ---------- 13. 头部 ---------- */
.tx-header {
  position: relative;
  z-index: 60;
  background: var(--tx-pitch);
  border-bottom: 1px solid var(--tx-rule);
}
@media (min-width: 901px) {
  .tx-header { position: sticky; top: calc(-1 * var(--tx-scorebar-h)); }
}

/* 13.1 比分条 */
.tx-scorebar { height: var(--tx-scorebar-h); background: var(--tx-char); border-bottom: 1px solid var(--tx-rule); }
.tx-scorebar__inner {
  display: flex;
  align-items: center;
  height: 100%;
  max-width: var(--tx-wrap);
  margin-inline: auto;
  padding-inline: var(--tx-pad);
  overflow-x: auto;
  scrollbar-width: none;
}
.tx-scorebar__inner::-webkit-scrollbar { display: none; }
.tx-scorebar__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 100%;
  padding-inline: 16px;
  border-right: 1px solid var(--tx-rule);
  white-space: nowrap;
  font-size: 12px;
}
.tx-scorebar__item:first-child { padding-left: 0; }
.tx-scorebar__label { font-family: var(--tx-font-mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tx-gray); }
.tx-scorebar__num { font-family: var(--tx-font-mono); font-weight: 700; font-size: 13px; color: var(--tx-white); }
.tx-scorebar__num--neon { color: var(--tx-neon); }
.tx-scorebar__num--orange { color: var(--tx-orange); }
.tx-scorebar__state { font-family: var(--tx-font-mono); font-size: 10px; letter-spacing: 0.16em; color: var(--tx-gray); }
.tx-scorebar__link {
  margin-left: auto;
  padding: 4px 10px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  color: var(--tx-neon);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  white-space: nowrap;
  transition: background-color var(--tx-dur-hover) var(--tx-ease), color var(--tx-dur-hover) var(--tx-ease), border-color var(--tx-dur-hover) var(--tx-ease);
}
.tx-scorebar__link:hover { background: var(--tx-neon); border-color: var(--tx-neon); color: var(--tx-pitch); }

/* 13.2 品牌签发层 */
.tx-masthead { background: var(--tx-pitch); border-bottom: 1px solid var(--tx-rule); }
.tx-masthead__inner {
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: var(--tx-wrap);
  margin-inline: auto;
  padding: 14px var(--tx-pad);
}
.tx-brand { display: flex; align-items: center; gap: 12px; }
.tx-brand__mark {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--tx-neon);
  border: 1px solid var(--tx-pitch);
  color: var(--tx-pitch);
  font-family: var(--tx-font-display);
  font-weight: 900;
  font-size: 20px;
  letter-spacing: 0.02em;
  transform: rotate(-3deg);
}
.tx-brand__text { display: flex; flex-direction: column; min-width: 0; }
.tx-brand__name { font-family: var(--tx-font-display); font-weight: 900; font-size: 24px; line-height: 1; color: var(--tx-white); }
.tx-brand__sub { margin-top: 5px; font-size: 11px; letter-spacing: 0.2em; color: var(--tx-gray); }
.tx-masthead__note {
  padding-left: 20px;
  border-left: 1px solid var(--tx-rule);
  font-family: var(--tx-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--tx-gray);
  white-space: nowrap;
}
.tx-quick { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.tx-quick__link {
  padding: 9px 14px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  color: var(--tx-cream);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  transition: background-color var(--tx-dur-hover) var(--tx-ease), color var(--tx-dur-hover) var(--tx-ease), border-color var(--tx-dur-hover) var(--tx-ease);
}
.tx-quick__link:hover { border-color: var(--tx-neon); color: var(--tx-neon); }
.tx-quick__link--accent { background: var(--tx-neon); border-color: var(--tx-neon); color: var(--tx-pitch); }
.tx-quick__link--accent:hover { background: var(--tx-white); border-color: var(--tx-white); color: var(--tx-pitch); }

.tx-nav-toggle {
  display: none;
  align-items: center;
  gap: 10px;
  margin-left: 12px;
  padding: 9px 12px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  color: var(--tx-cream);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.12em;
  transition: border-color var(--tx-dur-hover) var(--tx-ease), color var(--tx-dur-hover) var(--tx-ease);
}
.tx-nav-toggle:hover { border-color: var(--tx-neon); color: var(--tx-neon); }
.tx-nav-toggle__icon { display: grid; gap: 4px; }
.tx-nav-toggle__icon span { display: block; width: 16px; height: 2px; background: var(--tx-neon); transition: transform var(--tx-dur-filter) var(--tx-ease); }
.tx-nav-toggle[aria-expanded="true"] .tx-nav-toggle__icon span:first-child { transform: translateY(3px) rotate(45deg); }
.tx-nav-toggle[aria-expanded="true"] .tx-nav-toggle__icon span:last-child { transform: translateY(-3px) rotate(-45deg); }
.tx-nav-toggle__label { line-height: 1; }

/* 13.3 栏目层 */
.tx-navbar { background: var(--tx-char); border-bottom: 1px solid var(--tx-rule); }
.tx-navbar__inner {
  display: flex;
  align-items: center;
  gap: 24px;
  max-width: var(--tx-wrap);
  margin-inline: auto;
  padding-inline: var(--tx-pad);
}
.tx-nav { flex: 1 1 auto; min-width: 0; }
.tx-nav__list { display: flex; align-items: stretch; flex-wrap: wrap; }
.tx-nav__link {
  position: relative;
  display: block;
  padding: 15px 18px;
  border-right: 1px solid var(--tx-rule);
  color: var(--tx-cream);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.05em;
  transition: color var(--tx-dur-hover) var(--tx-ease), background-color var(--tx-dur-hover) var(--tx-ease);
}
.tx-nav__list li:first-child .tx-nav__link { border-left: 1px solid var(--tx-rule); }
.tx-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  background: var(--tx-neon);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--tx-dur-in) var(--tx-ease);
}
.tx-nav__link:hover { color: var(--tx-neon); background: rgba(200, 255, 61, 0.06); }
.tx-nav__link:hover::after,
.tx-nav__link:focus-visible::after { transform: scaleX(1); }
.tx-nav__link[aria-current="page"] { color: var(--tx-neon); background: rgba(200, 255, 61, 0.08); }
.tx-nav__link[aria-current="page"]::after { transform: scaleX(1); }
.tx-nav__meta { margin-left: auto; font-family: var(--tx-font-mono); font-size: 11px; letter-spacing: 0.16em; color: var(--tx-gray); white-space: nowrap; }

/* ---------- 14. 页脚 ---------- */
.tx-footer { position: relative; background: var(--tx-char); border-top: 1px solid var(--tx-rule); color: var(--tx-cream); }
.tx-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: repeating-linear-gradient(90deg, var(--tx-neon) 0 40px, var(--tx-orange) 40px 80px, var(--tx-red) 80px 100px, var(--tx-char) 100px 140px);
}
.tx-footer__inner { max-width: var(--tx-wrap); margin-inline: auto; padding: 56px var(--tx-pad) 28px; }
.tx-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 36px 40px; }
.tx-footer__col--brand { min-width: 0; }
.tx-brand--footer { margin-bottom: 16px; }
.tx-brand--footer .tx-brand__name { font-size: 22px; }
.tx-footer__note { max-width: 34ch; margin-bottom: 18px; font-size: 14px; line-height: 1.7; color: var(--tx-gray); }
.tx-footer__title {
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--tx-rule);
  color: var(--tx-gray);
  font-family: var(--tx-font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.tx-footer__list li { margin-bottom: 10px; }
.tx-footer__link {
  font-size: 15px;
  color: var(--tx-cream);
  border-bottom: 1px solid transparent;
  transition: color var(--tx-dur-hover) var(--tx-ease), border-color var(--tx-dur-hover) var(--tx-ease);
}
.tx-footer__link:hover,
.tx-footer__link[aria-current="page"] { color: var(--tx-neon); border-bottom-color: var(--tx-neon); }

.tx-contact li { margin-bottom: 14px; }
.tx-contact__label { display: block; margin-bottom: 3px; font-family: var(--tx-font-mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tx-gray); }
.tx-contact__value { font-family: var(--tx-font-mono); font-size: 14px; line-height: 1.5; color: var(--tx-white); word-break: break-all; }
.tx-contact__value--text { font-family: var(--tx-font-body); font-size: 14px; word-break: normal; }

.tx-copy {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 7px;
  border: 1px solid var(--tx-rule);
  border-radius: var(--tx-radius);
  color: var(--tx-gray);
  font-family: var(--tx-font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  transition: background-color var(--tx-dur-hover) var(--tx-ease), color var(--tx-dur-hover) var(--tx-ease), border-color var(--tx-dur-hover) var(--tx-ease);
}
.tx-copy:hover { border-color: var(--tx-neon); color: var(--tx-neon); }
.tx-copy.is-done { background: var(--tx-neon); border-color: var(--tx-neon); color: var(--tx-pitch); }

.tx-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: 44px;
  padding-top: 20px;
  border-top: 1px solid var(--tx-rule);
}
.tx-footer__icp { font-family: var(--tx-font-mono); font-size: 12px; letter-spacing: 0.08em; color: var(--tx-gray); }
.tx-footer__legal { display: flex; flex-wrap: wrap; gap: 18px; font-size: 13px; }
.tx-footer__legal a { color: var(--tx-cream); border-bottom: 1px dotted var(--tx-rule); transition: color var(--tx-dur-hover) var(--tx-ease), border-color var(--tx-dur-hover) var(--tx-ease); }
.tx-footer__legal a:hover { color: var(--tx-neon); border-bottom-color: var(--tx-neon); }
.tx-footer__copy { margin-left: auto; font-family: var(--tx-font-mono); font-size: 12px; color: var(--tx-gray); }

.tx-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 80;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: var(--tx-cream);
  border: 1px solid var(--tx-pitch);
  border-radius: var(--tx-radius);
  color: var(--tx-char);
  font-family: var(--tx-font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity var(--tx-dur-in) var(--tx-ease), transform var(--tx-dur-in) var(--tx-ease), visibility var(--tx-dur-in) var(--tx-ease), background-color var(--tx-dur-hover) var(--tx-ease);
}
.tx-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.tx-top:hover { background: var(--tx-neon); }

/* ---------- 15. 响应式 ---------- */
@media (max-width: 1180px) {
  .tx-footer__grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .tx-footer__col--brand { grid-column: span 3; }
}
@media (max-width: 1024px) {
  .tx-masthead__note { display: none; }
  .tx-nav__meta { display: none; }
}
@media (max-width: 900px) {
  body { font-size: 16px; }
  .tx-header { position: relative; top: auto; }
  .tx-nav-toggle { display: inline-flex; }
  .tx-navbar { display: none; }
  .tx-navbar[data-open] { display: block; }
  .tx-navbar__inner { flex-direction: column; align-items: stretch; gap: 0; padding-block: 8px; }
  .tx-nav { flex: 1 1 auto; }
  .tx-nav__list { flex-direction: column; }
  .tx-nav__link { padding: 14px 6px; border-right: 0; border-bottom: 1px solid var(--tx-rule); font-size: 17px; }
  .tx-nav__list li:first-child .tx-nav__link { border-left: 0; }
  .tx-nav__link::after { display: none; }
  .tx-nav__link[aria-current="page"] { padding-left: 12px; border-left: 3px solid var(--tx-neon); }
  .tx-nav__meta { display: block; margin: 12px 0 6px; padding-left: 6px; }
  .tx-span-3, .tx-span-4, .tx-span-5, .tx-span-6, .tx-span-7, .tx-span-8, .tx-span-9 { grid-column: span 12; }
  .tx-footer__grid { grid-template-columns: 1fr 1fr; }
  .tx-footer__col--brand { grid-column: span 2; }
  .tx-footer__copy { margin-left: 0; width: 100%; }
}
@media (max-width: 720px) {
  .tx-quick { display: none; }
  .tx-nav-toggle { margin-left: auto; }
}
@media (max-width: 640px) {
  .tx-brand__mark { flex-basis: 38px; width: 38px; height: 38px; font-size: 17px; }
  .tx-brand__name { font-size: 20px; }
  .tx-brand__sub { font-size: 10px; letter-spacing: 0.14em; }
  .tx-masthead__inner { gap: 12px; padding-block: 12px; }
  .tx-scorebar__item { padding-inline: 12px; }
  .tx-section-head__title { font-size: 24px; }
  .tx-footer__inner { padding-top: 40px; }
  .tx-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .tx-footer__col--brand { grid-column: span 1; }
  .tx-footer::before { height: 3px; background: repeating-linear-gradient(90deg, var(--tx-neon) 0 28px, var(--tx-orange) 28px 56px, var(--tx-char) 56px 84px); }
  .tx-top { right: 14px; bottom: 14px; padding: 8px 10px; font-size: 11px; }
}

/* ---------- 16. 可访问性偏好 ---------- */
@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;
  }
  .tx-reveal { opacity: 1; transform: none; }
  .tx-progress__bar { transition: none; }
  .tx-top { transform: none; }
}
