/* ============================================================
   乐竞赛场 · /assets/site.css
   共享外壳：reset、变量、中文排版、页头页脚、通用组件
   ============================================================ */

:root{
  --turf-deep:#0F3D2E;
  --turf-mid:#1E6B4A;
  --turf-shadow:#0B2E22;
  --amber:#E5A11F;
  --amber-soft:#F7D48C;
  --slate:#46596B;
  --slate-soft:#A7B5C2;
  --paper:#F5F1E7;
  --paper-lift:#FBF8F1;
  --ink:#15191D;
  --ink-soft:#2A3138;
  --red:#C2452E;
  --zebra:#E4E1D4;
  --line:rgba(70,89,107,.28);
  --line-soft:rgba(70,89,107,.16);
  --on-dark:rgba(245,241,231,.78);
  --on-dark-dim:rgba(245,241,231,.56);
  --rail:24px;
  --wrap:1240px;
  --f-cn:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --f-cond:"Oswald","Barlow Condensed","Arial Narrow",var(--f-cn);
  --f-mono:"IBM Plex Mono","JetBrains Mono","SFMono-Regular",Consolas,monospace;
  --t:.2s cubic-bezier(.2,.7,.3,1);
  --shadow-print:10px 10px 0 rgba(70,89,107,.14);
}

/* ---------- reset ---------- */
*,
*::before,
*::after{ box-sizing:border-box; }

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

body,
h1, h2, h3, h4, h5, h6,
p, figure, blockquote, dl, dd, pre{ margin:0; }

ul, ol{ margin:0; padding:0; list-style:none; }

img, svg, video{
  display:block;
  max-width:100%;
  height:auto;
}

button, input, select, textarea{
  font:inherit;
  color:inherit;
}

a{ color:inherit; }

table{ border-collapse:collapse; }

[hidden]{ display:none !important; }

/* ---------- 全局排版与页面刻度带 ---------- */
html{ scroll-behavior:smooth; }

body{
  font-family:var(--f-cn);
  font-size:17px;
  line-height:1.75;
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px 28px),
    repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px 28px);
  background-size:10px 100%, 10px 100%;
  background-position:0 0, 100% 0;
  background-repeat:no-repeat;
  -webkit-font-smoothing:antialiased;
}

h1, h2, h3, h4{
  font-weight:700;
  line-height:1.3;
  letter-spacing:.01em;
}

h1{ font-size:40px; }
h2{ font-size:28px; }
h3{ font-size:21px; }

p{ text-wrap:pretty; }

::selection{
  background:var(--amber-soft);
  color:var(--ink);
}

:focus-visible{
  outline:3px solid var(--amber);
  outline-offset:2px;
}

#main-content{
  display:block;
  min-height:50vh;
  scroll-margin-top:140px;
}

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

.section{ padding-block:48px; }
.section--tight{ padding-block:28px; }

.grid{
  display:grid;
  gap:20px;
}
.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)); }

/* ---------- 通用文字工具 ---------- */
.u-mono{
  font-family:var(--f-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.05em;
}

.prose{
  max-width:68ch;
  font-size:17px;
  line-height:1.75;
}
.prose > * + *{ margin-top:1em; }
.prose h2{ font-size:28px; margin-top:1.6em; }
.prose h3{ font-size:21px; margin-top:1.4em; }
.prose ul,
.prose ol{
  padding-left:1.3em;
  list-style:disc;
}
.prose li + li{ margin-top:.4em; }
.prose a{
  color:var(--turf-mid);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* ---------- 跳转链接 ---------- */
.skip-link{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:200;
  padding:10px 16px;
  background:var(--amber);
  color:var(--ink);
  font-weight:700;
  text-decoration:none;
}
.skip-link:focus{
  left:12px;
  top:10px;
}

/* ---------- 页头：框架式导航 ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:80;
  background:var(--turf-deep);
  color:var(--paper);
  border-bottom:4px solid var(--amber);
}

.header-bar{
  position:relative;
  display:flex;
  align-items:center;
  gap:18px;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:10px 20px;
}

.brand{
  margin-right:auto;
  min-width:0;
}
.brand__link{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--paper);
  text-decoration:none;
}
.brand__mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  padding:4px 6px;
  font-family:var(--f-cond);
  font-size:19px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--amber);
  border:2px solid var(--amber);
}
.brand__text{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.brand__name{
  font-size:21px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:.02em;
}
.brand__tagline{
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--on-dark-dim);
  line-height:1.4;
}

.site-nav{ display:block; }
.site-nav__list{
  display:flex;
  align-items:center;
  gap:2px;
}
.site-nav__link{
  display:block;
  padding:9px 13px;
  font-size:16px;
  color:var(--on-dark);
  text-decoration:none;
  border-bottom:3px solid transparent;
  transition:color var(--t), background-color var(--t), border-color var(--t);
}
.site-nav__link:hover{
  color:var(--paper);
  background:rgba(245,241,231,.08);
}
.site-nav__link[aria-current="page"]{
  color:var(--amber);
  background:rgba(229,161,31,.14);
  border-bottom-color:var(--amber);
  font-weight:700;
}

.header-tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}

.tool-btn{
  display:inline-flex;
  align-items:center;
  padding:9px 12px;
  font-family:var(--f-mono);
  font-size:13px;
  letter-spacing:.05em;
  background:transparent;
  border:2px solid rgba(245,241,231,.32);
  color:rgba(245,241,231,.9);
  cursor:pointer;
  transition:color var(--t), border-color var(--t), background-color var(--t);
}
.tool-btn:hover{
  border-color:var(--amber-soft);
  color:var(--paper);
}
.tool-btn[aria-expanded="true"]{
  background:var(--paper);
  border-color:var(--paper);
  color:var(--turf-deep);
}

.cta-link{
  display:inline-flex;
  align-items:center;
  padding:10px 15px;
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  background:var(--amber);
  border:2px solid var(--amber);
  text-decoration:none;
  transition:color var(--t), background-color var(--t);
}
.cta-link:hover{
  background:transparent;
  color:var(--amber);
}

.nav-toggle{
  display:none;
  align-items:center;
  padding:9px 12px;
  font-family:var(--f-mono);
  font-size:13px;
  letter-spacing:.06em;
  background:transparent;
  border:2px solid rgba(245,241,231,.42);
  color:var(--paper);
  cursor:pointer;
  transition:color var(--t), border-color var(--t), background-color var(--t);
}
.nav-toggle:hover{
  border-color:var(--amber);
  color:var(--amber);
}
.nav-toggle[aria-expanded="true"]{
  background:var(--amber);
  border-color:var(--amber);
  color:var(--ink);
}

/* 头部窄边：联赛索引 + 轮次滑块 */
.site-header__dock{
  background:var(--turf-shadow);
  border-top:1px solid rgba(245,241,231,.16);
  max-height:150px;
  overflow:hidden;
  transition:max-height var(--t), visibility var(--t);
}
.site-header[data-scrolled="true"] .site-header__dock{
  max-height:0;
  visibility:hidden;
}
.dock-inner{
  display:flex;
  align-items:center;
  gap:18px;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:9px 20px;
  transition:padding var(--t);
}
.site-header[data-scrolled="true"] .dock-inner{ padding-block:0; }

.league-strip{
  flex:1 1 auto;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:thin;
}
.league-strip__list{
  display:flex;
  gap:6px;
  white-space:nowrap;
}
.league-strip__item{
  padding:3px 8px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--on-dark);
  border:1px solid rgba(245,241,231,.2);
}

.round-slider{
  display:flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
}
.round-slider__label{
  margin-right:6px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--on-dark-dim);
}
.round-chip{
  padding:4px 9px;
  font-family:var(--f-mono);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:rgba(245,241,231,.85);
  background:transparent;
  border:1px solid rgba(245,241,231,.28);
  cursor:pointer;
  transition:color var(--t), background-color var(--t), border-color var(--t);
}
.round-chip:hover{
  background:rgba(229,161,31,.22);
  border-color:var(--amber);
  color:var(--paper);
}
.round-chip[aria-pressed="true"]{
  background:var(--amber);
  border-color:var(--amber);
  color:var(--ink);
  font-weight:700;
}

/* 站内检索面板 */
.search-dock{
  background:var(--paper);
  color:var(--ink);
  border-bottom:3px solid var(--amber);
}
.search-dock__inner{
  display:grid;
  gap:10px;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:20px 20px 24px;
}
.search-dock__label{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate);
}
.search-dock__input{
  width:100%;
  padding:12px 14px;
  font-size:17px;
  color:var(--ink);
  background:var(--paper-lift);
  border:2px solid var(--slate);
  border-radius:0;
}
.search-dock__input:focus-visible{
  outline-offset:0;
  border-color:var(--turf-mid);
}
.search-dock__hint,
.search-dock__empty{
  font-size:14px;
  color:var(--slate);
}
.search-dock__empty{ color:var(--red); }

.search-results{
  border-top:1px solid var(--line);
}
.search-results__item{
  border-bottom:1px solid var(--line);
}
.search-results__link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 6px;
  color:var(--ink);
  text-decoration:none;
  transition:background-color var(--t), padding var(--t);
}
.search-results__link:hover{
  background:var(--amber-soft);
  padding-left:12px;
}
.search-results__key{
  flex:0 0 auto;
  min-width:76px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--slate);
}
.search-source{ display:none; }

/* ---------- 通用按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 18px;
  font-size:16px;
  font-weight:700;
  color:var(--ink);
  background:var(--paper);
  border:2px solid var(--turf-deep);
  text-decoration:none;
  transition:color var(--t), background-color var(--t), border-color var(--t);
}
.btn:hover{
  background:var(--turf-deep);
  color:var(--paper);
}
.btn--amber{
  background:var(--amber);
  border-color:var(--amber);
  color:var(--ink);
}
.btn--amber:hover{
  background:var(--turf-deep);
  border-color:var(--turf-deep);
  color:var(--amber-soft);
}
.btn--ghost{
  background:transparent;
  border-color:var(--slate-soft);
  color:var(--slate);
}
.btn--ghost:hover{
  background:var(--slate);
  border-color:var(--slate);
  color:var(--paper);
}
.btn--sm{
  padding:7px 12px;
  font-size:14px;
}

/* ---------- 面包屑 ---------- */
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding-block:14px;
  font-size:14px;
  color:var(--slate);
}
.breadcrumbs a{
  color:var(--slate);
  text-decoration:none;
  border-bottom:1px solid var(--slate-soft);
}
.breadcrumbs a:hover{
  color:var(--turf-mid);
  border-bottom-color:var(--turf-mid);
}
.breadcrumbs__sep{
  color:var(--slate-soft);
}

/* ---------- 区块标题 ---------- */
.section-head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px 14px;
  padding-bottom:10px;
  margin-bottom:22px;
  border-bottom:2px solid var(--ink);
}
.section-head__kicker{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--slate);
}
.section-head__title{
  font-size:28px;
  font-weight:700;
}
.section-head__meta{
  margin-left:auto;
  font-family:var(--f-mono);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:var(--slate);
}

/* ---------- 框景容器 ---------- */
.tick-frame{
  position:relative;
  padding:26px 22px;
  background:var(--paper-lift);
  border:1px solid var(--line);
}
.tick-frame::before,
.tick-frame::after{
  content:"";
  position:absolute;
  top:-1px;
  bottom:-1px;
  width:10px;
  background-image:repeating-linear-gradient(to bottom, var(--slate-soft) 0 1px, transparent 1px 9px);
}
.tick-frame::before{
  left:-11px;
  border-right:1px solid var(--line);
}
.tick-frame::after{
  right:-11px;
  border-left:1px solid var(--line);
}

/* ---------- 面板与数据组 ---------- */
.panel{
  padding:20px;
  background:var(--paper-lift);
  border:1px solid var(--line);
}
.panel--ink{
  background:var(--turf-deep);
  border-color:var(--turf-deep);
  color:var(--paper);
}
.panel--amber{
  background:var(--amber-soft);
  border-color:var(--amber);
}
.panel__title{
  font-size:21px;
  font-weight:700;
  line-height:1.4;
}
.panel__meta{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--slate);
}
.panel--ink .panel__meta{ color:var(--amber-soft); }
.panel__title + .panel__meta{ margin-top:8px; }

.stat{
  display:grid;
  gap:4px;
}
.stat__value{
  font-family:var(--f-mono);
  font-size:40px;
  font-weight:700;
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.stat__label{
  font-size:14px;
  color:var(--slate);
}
.panel--ink .stat__label{ color:var(--on-dark); }

/* ---------- 数据表 ---------- */
.table-wrap{
  width:100%;
  overflow-x:auto;
  background:var(--paper-lift);
  border:1px solid var(--line);
}
.data-table{
  width:100%;
  min-width:560px;
  font-size:15px;
}
.data-table caption{
  padding:10px 12px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--slate);
  text-align:left;
  border-bottom:1px solid var(--line);
}
.data-table th,
.data-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line-soft);
}
.data-table thead th{
  background:var(--slate);
  color:var(--paper);
  font-size:13px;
  font-weight:700;
  letter-spacing:.05em;
  vertical-align:middle;
}
.data-table tbody tr:nth-child(even){ background:var(--zebra); }
.data-table tbody tr:hover{ background:var(--amber-soft); }
.data-table td.num,
.data-table th.num{
  font-family:var(--f-mono);
  font-variant-numeric:tabular-nums;
  text-align:right;
}
.data-table th[aria-sort="ascending"],
.data-table th[aria-sort="descending"]{
  background:var(--turf-deep);
}
.sort-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0;
  font:inherit;
  letter-spacing:inherit;
  color:inherit;
  background:none;
  border:0;
  border-bottom:2px solid transparent;
  cursor:pointer;
}
.sort-btn:hover{ border-bottom-color:var(--amber-soft); }
th[aria-sort="ascending"] .sort-btn,
th[aria-sort="descending"] .sort-btn{
  border-bottom-color:var(--amber);
  color:var(--amber-soft);
}
.sort-btn::after{
  content:"↕";
  font-size:11px;
  opacity:.6;
}
th[aria-sort="ascending"] .sort-btn::after{ content:"↑"; opacity:1; }
th[aria-sort="descending"] .sort-btn::after{ content:"↓"; opacity:1; }

/* ---------- 标签与名次跃迁 ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 8px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--slate);
  background:var(--paper);
  border:1px solid var(--slate-soft);
}
.tag--amber{
  background:var(--amber-soft);
  border-color:var(--amber);
  color:var(--ink);
}
.tag--live{
  background:var(--amber);
  border-color:var(--amber);
  color:var(--ink);
  font-weight:700;
}
.tag--down{
  color:var(--red);
  border-color:var(--red);
}

.delta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  padding:1px 6px;
  font-family:var(--f-mono);
  font-size:13px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.delta--up{
  color:var(--ink);
  background:var(--amber-soft);
}
.delta--down{
  color:var(--paper);
  background:var(--red);
}

/* ---------- 可展开内容组 ---------- */
.fold{
  background:var(--paper-lift);
  border:1px solid var(--line);
  border-left:4px solid var(--turf-mid);
  transition:border-color var(--t), background-color var(--t);
}
.fold + .fold{ margin-top:-1px; }
.fold[data-open="true"]{
  border-left-color:var(--amber);
  background:var(--paper);
}
.fold__btn{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  padding:16px 18px;
  font-size:17px;
  font-weight:700;
  text-align:left;
  background:none;
  border:0;
  cursor:pointer;
}
.fold__index{
  flex:0 0 auto;
  min-width:3ch;
  font-family:var(--f-mono);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:var(--slate);
}
.fold__title{ flex:1 1 auto; }
.fold__sign{
  flex:0 0 auto;
  font-family:var(--f-mono);
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--turf-mid);
}
.fold[data-open="true"] .fold__sign{ color:var(--turf-deep); }
.fold__panel{
  display:none;
  padding:0 18px 18px;
  font-size:16px;
  color:var(--ink-soft);
}
.fold[data-open="true"] .fold__panel{ display:block; }
.fold__panel > * + *{ margin-top:.9em; }

/* ---------- 图片容器 ---------- */
.media-frame{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:var(--turf-deep);
  border:1px solid var(--line);
  box-shadow:var(--shadow-print);
}
.media-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.media-frame__placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  text-align:center;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(245,241,231,.66);
  background-image:
    repeating-linear-gradient(135deg, rgba(245,241,231,.07) 0 12px, transparent 12px 24px),
    linear-gradient(160deg, var(--turf-mid), var(--turf-deep));
}
.media-frame--band{ aspect-ratio:21 / 9; }
.media-frame--square{ aspect-ratio:1 / 1; }
.media-frame--portrait{ aspect-ratio:4 / 5; }
.media-frame__cap{
  margin-top:10px;
  font-size:14px;
  color:var(--slate);
}
.media-grid{
  display:grid;
  gap:20px;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}

/* ---------- 横向索引带 ---------- */
.match-strip{
  overflow-x:auto;
  border-block:1px solid var(--line);
  background:var(--paper-lift);
  scrollbar-width:thin;
}
.match-strip__list{
  display:flex;
  min-width:max-content;
}
.match-strip__item{
  padding:12px 18px;
  font-family:var(--f-mono);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
  color:var(--slate);
  border-right:1px solid var(--line);
}

/* ---------- 滚动显现 ---------- */
.js-reveal [data-reveal]{
  opacity:0;
  transform:translateY(12px);
}
.js-reveal [data-reveal].is-revealed{
  opacity:1;
  transform:none;
  transition:opacity .32s ease, transform .32s ease;
}

/* ---------- 页脚 ---------- */
.site-footer{
  margin-top:64px;
  background:var(--turf-deep);
  color:var(--paper);
  border-top:4px solid var(--amber);
}
.footer-inner{
  display:grid;
  grid-template-columns:minmax(240px, 1.1fr) 2.4fr;
  gap:36px;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:44px 20px 30px;
}
.footer-brand__name{
  font-size:26px;
  font-weight:700;
  letter-spacing:.02em;
}
.footer-brand__tagline{
  margin-top:6px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber);
}
.footer-brand__desc{
  max-width:34ch;
  margin-top:14px;
  font-size:15px;
  line-height:1.7;
  color:var(--on-dark);
}
.footer-brand__cta{
  display:inline-flex;
  margin-top:18px;
  padding:10px 16px;
  font-weight:700;
  color:var(--ink);
  background:var(--amber);
  border:2px solid var(--amber);
  text-decoration:none;
  transition:color var(--t), background-color var(--t);
}
.footer-brand__cta:hover{
  background:transparent;
  color:var(--amber);
}

.footer-cols{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:24px;
}
.footer-col__title{
  padding-bottom:8px;
  margin-bottom:10px;
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber-soft);
  border-bottom:1px solid rgba(245,241,231,.24);
}
.footer-col__list{
  display:grid;
  gap:7px;
  font-size:15px;
  color:var(--on-dark);
}
.footer-col__list a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color var(--t), border-color var(--t);
}
.footer-col__list a:hover{
  color:var(--amber);
  border-bottom-color:var(--amber);
}

.footer-meta{
  background:var(--turf-shadow);
  border-top:1px solid rgba(245,241,231,.16);
}
.footer-meta__inner{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:16px 32px;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:22px 20px 26px;
  font-size:14px;
  color:var(--on-dark);
}
.footer-contact{
  display:grid;
  gap:5px;
}
.footer-contact__item{
  font-family:var(--f-mono);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:var(--on-dark);
}
.footer-note{
  max-width:62ch;
  margin-top:4px;
  font-size:14px;
  color:var(--on-dark-dim);
}
.footer-meta__side{
  display:grid;
  gap:10px;
  justify-items:start;
}
.footer-legal{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
}
.footer-legal a{
  color:var(--amber-soft);
  text-decoration:none;
}
.footer-legal a:hover{
  color:var(--amber);
  text-decoration:underline;
  text-underline-offset:3px;
}
.footer-copy{
  padding-top:12px;
  font-family:var(--f-mono);
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:var(--on-dark-dim);
  border-top:1px dashed rgba(245,241,231,.22);
}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  body{ background-image:none; }

  .header-bar{ gap:12px; }
  .site-nav__link{
    padding:8px 9px;
    font-size:15px;
  }
  .brand__tagline{ display:none; }
}

@media (max-width:900px){
  .header-bar{
    flex-wrap:wrap;
    row-gap:8px;
    padding-inline:16px;
  }
  .nav-toggle{ display:inline-flex; }

  .site-nav{
    display:none;
    position:absolute;
    top:100%;
    left:-16px;
    right:-16px;
    z-index:90;
    padding:10px 16px 16px;
    background:var(--turf-shadow);
    border-top:1px solid rgba(245,241,231,.18);
    border-bottom:3px solid var(--amber);
  }
  .site-nav[data-open="true"]{ display:block; }
  .site-nav__list{
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .site-nav__link{
    padding:12px 6px;
    font-size:16px;
    border-bottom:1px solid rgba(245,241,231,.14);
  }
  .site-nav__link[aria-current="page"]{
    padding-left:12px;
    border-bottom-color:rgba(245,241,231,.14);
  }

  .dock-inner{
    flex-wrap:wrap;
    gap:10px;
    padding:10px 16px;
  }
  .league-strip{
    order:1;
    flex-basis:100%;
  }
  .round-slider{ order:2; }
  .site-header__dock{ max-height:200px; }

  .footer-inner{
    grid-template-columns:1fr;
    gap:28px;
    padding:34px 16px 24px;
  }
  .footer-cols{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .footer-meta__inner{
    grid-template-columns:1fr;
    padding:20px 16px 24px;
  }
}

@media (max-width:640px){
  h1{ font-size:28px; }
  h2{ font-size:21px; }
  .container{ padding-inline:16px; }
  .brand__mark{ display:none; }
  .brand__name{ font-size:18px; }
  .header-tools .cta-link{ display:none; }
  .section{ padding-block:34px; }
  .grid--2,
  .grid--3,
  .grid--4{ grid-template-columns:1fr; }
  .section-head__meta{
    margin-left:0;
    flex-basis:100%;
  }
  .tick-frame{
    padding:20px 16px;
  }
  .tick-frame::before{ left:-7px; width:6px; }
  .tick-frame::after{ right:-7px; width:6px; }
  .data-table th,
  .data-table td{ padding:9px 10px; }
  .footer-cols{ grid-template-columns:1fr; }
  .media-frame{ box-shadow:6px 6px 0 rgba(70,89,107,.14); }
}

/* ---------- 动效偏好 ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js-reveal [data-reveal]{
    opacity:1 !important;
    transform:none !important;
  }
}
