/* =========================================================
   KOK / 中欧体育数据 — 共享站点样式 (/assets/site.css)
   结构：变量 → 重置与中文排版 → 通用版式 → 组件 → 头部 → 页脚 → 响应式 → 可访问性
   ========================================================= */

/* ---------- 1. 变量 ---------- */
:root{
  --ink:#0B1220;
  --ink-deep:#060A12;
  --panel:#131C2B;
  --grid-line:#263449;
  --num-idle:#3B4C64;
  --text:#F7FAFF;
  --muted:#93A4BB;
  --amber:#F2B03C;
  --amber-deep:#B87B1E;
  --cyan:#35E0D0;
  --up:#4FB477;
  --down:#D9635F;

  --radius:2px;
  --header-h:72px;
  --header-h-compact:56px;
  --gutter:clamp(20px,5vw,96px);
  --gap:24px;
  --maxw:1440px;
  --line:1px solid var(--grid-line);
  --speed:180ms;
  --ease:cubic-bezier(.2,.7,.3,1);

  --font-display:"Arial Narrow","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"SFMono-Regular","JetBrains Mono","IBM Plex Mono",Menlo,Consolas,"Courier New",monospace;

  --fs-12:.75rem;
  --fs-14:.875rem;
  --fs-16:1rem;
  --fs-20:1.25rem;
  --fs-28:clamp(1.5rem,2.4vw,1.75rem);
  --fs-44:clamp(2rem,3.6vw,2.75rem);
  --fs-72:clamp(2.75rem,6vw,4.5rem);
  --fs-120:clamp(3.5rem,10vw,7.5rem);
}

/* ---------- 2. 重置与中文排版 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  margin:0;
  min-height:100%;
  background-color:var(--ink);
  background-image:
    radial-gradient(1100px 560px at 82% -8%,rgba(53,224,208,.09),transparent 62%),
    radial-gradient(900px 520px at 8% -4%,rgba(242,176,60,.07),transparent 64%),
    repeating-linear-gradient(to bottom,rgba(255,255,255,.016) 0 1px,transparent 1px 4px);
  background-attachment:fixed;
  color:var(--text);
  font-family:var(--font-body);
  font-size:var(--fs-16);
  line-height:1.75;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,video{display:block;max-width:100%;height:auto}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0}
h1,h2,h3,h4{
  margin:0;
  font-family:var(--font-display);
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.15;
  color:var(--text);
}
h1{font-size:var(--fs-44)}
h2{font-size:var(--fs-28)}
h3{font-size:var(--fs-20);letter-spacing:0}
h4{font-size:var(--fs-16);letter-spacing:.02em}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:var(--text);text-decoration:none;transition:color var(--speed) var(--ease),border-color var(--speed) var(--ease)}
a:hover{color:var(--amber)}
strong,b{color:var(--text);font-weight:600}
small{font-size:var(--fs-12)}
hr{border:0;border-top:var(--line);margin:0}
::selection{background:var(--amber);color:#0B1220}

/* ---------- 3. 通用版式 ---------- */
#main-content{padding-top:var(--header-h);display:block}
#main-content:focus{outline:none}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(48px,6vw,96px) 0;border-top:var(--line)}
.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-bottom:clamp(24px,3vw,40px)}
.section-title{margin:0;font-size:var(--fs-28)}
.section-note{margin:0;font-size:var(--fs-14);color:var(--muted);max-width:46ch}
.rule{height:1px;background:var(--grid-line);border:0;margin:clamp(24px,3vw,40px) 0}
.rule--amber{background:linear-gradient(90deg,var(--amber),rgba(242,176,60,0))}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:var(--fs-12);
  letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--cyan);flex:0 0 auto}

.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.lead{font-size:var(--fs-20);line-height:1.6;color:var(--text);max-width:30ch}
.muted{color:var(--muted)}

.prose{max-width:36em}
.prose p{line-height:1.75}
.prose ul,.prose ol{list-style:disc;padding-left:1.2em;margin:0 0 1em}
.prose ol{list-style:decimal}
.prose li{margin:.35em 0}
.prose a{color:var(--cyan);border-bottom:1px solid rgba(53,224,208,.4)}
.prose a:hover{color:var(--amber);border-bottom-color:var(--amber)}

/* 网格 */
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}
.span-4{grid-column:span 4}
.span-5{grid-column:span 5}
.span-6{grid-column:span 6}
.span-7{grid-column:span 7}
.span-8{grid-column:span 8}
.span-12{grid-column:span 12}

/* ---------- 4. 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 18px;border:1px solid transparent;border-radius:var(--radius);
  font-family:var(--font-mono);font-size:var(--fs-14);letter-spacing:.06em;line-height:1;
  cursor:pointer;text-align:center;white-space:nowrap;
  transition:background var(--speed) var(--ease),color var(--speed) var(--ease),border-color var(--speed) var(--ease);
}
.btn-primary{background:var(--amber);border-color:var(--amber);color:#0B1220}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--amber-deep);border-color:var(--amber-deep);color:#0B1220}
.btn-line{background:transparent;border-color:var(--amber);color:var(--amber)}
.btn-line:hover,.btn-line:focus-visible{background:rgba(242,176,60,.12);color:var(--amber)}
.btn-ghost{background:transparent;border-color:var(--grid-line);color:var(--muted)}
.btn-ghost:hover,.btn-ghost:focus-visible{color:var(--text);border-color:var(--cyan)}
.btn-sm{padding:9px 14px;font-size:var(--fs-12);letter-spacing:.08em}
.btn-block{display:flex;width:100%}
.btn-subscribe{white-space:nowrap}

/* ---------- 5. 面包屑 ---------- */
.breadcrumb{background:rgba(6,10,18,.55);border-bottom:var(--line)}
.breadcrumb-list{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  max-width:var(--maxw);margin:0 auto;padding:12px var(--gutter);
  font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.06em;color:var(--muted);
  list-style:none;
}
.breadcrumb-item{display:inline-flex;align-items:center;gap:8px}
.breadcrumb-item + .breadcrumb-item::before{content:"/";color:var(--grid-line)}
.breadcrumb-link{color:var(--muted)}
.breadcrumb-link:hover{color:var(--cyan)}
.breadcrumb-current{color:var(--text);font-weight:700}

/* ---------- 6. 章节与数据模块 ---------- */
.chapter{
  display:grid;
  grid-template-columns:clamp(56px,6vw,96px) minmax(0,1fr);
  gap:var(--gap);
  padding:clamp(32px,4vw,56px) 0;
  border-top:var(--line);
}
.chapter-num{
  grid-column:1;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:clamp(1.75rem,4vw,2.75rem);line-height:1;letter-spacing:-.03em;
  color:var(--num-idle);
  transition:color var(--speed) var(--ease);
}
.chapter.is-active .chapter-num{color:var(--amber)}
.chapter-main{grid-column:2;min-width:0}
.chapter-en{
  display:block;margin-bottom:8px;
  font-family:var(--font-mono);font-size:var(--fs-12);
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.chapter-title{margin:0 0 12px;font-size:var(--fs-28)}
.chapter-body{max-width:36em}
.chapter-aside{margin-top:24px;padding-top:20px;border-top:var(--line)}

.stat{display:flex;flex-direction:column;gap:6px;padding:18px 0;border-top:var(--line)}
.stat-value{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:var(--fs-72);line-height:.95;letter-spacing:-.03em;color:var(--amber);
}
.stat-unit{font-family:var(--font-mono);font-size:var(--fs-14);letter-spacing:.04em;color:var(--muted);margin-left:4px}
.stat-label{font-size:var(--fs-12);letter-spacing:.08em;color:var(--muted)}

.panel{background:var(--panel);border:var(--line);border-radius:var(--radius);padding:clamp(16px,2vw,24px)}
.panel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;padding-bottom:12px;border-bottom:var(--line);margin-bottom:16px}
.panel-title{margin:0;font-family:var(--font-display);font-size:var(--fs-16);font-weight:700;letter-spacing:.02em}
.panel-meta{font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.08em;color:var(--muted)}

.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 9px;border:1px solid var(--grid-line);border-radius:var(--radius);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);background:rgba(19,28,43,.7);
}
.chip--amber{border-color:rgba(242,176,60,.45);color:var(--amber);background:rgba(242,176,60,.08)}
.chip--cyan{border-color:rgba(53,224,208,.45);color:var(--cyan);background:rgba(53,224,208,.08)}
.chip--up{border-color:rgba(79,180,119,.45);color:var(--up);background:rgba(79,180,119,.08)}
.chip--down{border-color:rgba(217,99,95,.45);color:var(--down);background:rgba(217,99,95,.08)}
.chip-dot{width:6px;height:6px;background:currentColor;display:inline-block}

.delta--up,.delta--down{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700}
.delta--up{color:var(--up)}
.delta--down{color:var(--down)}
.delta--up::before{content:"▲";font-size:.72em;margin-right:4px}
.delta--down::before{content:"▼";font-size:.72em;margin-right:4px}

.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-14);line-height:1.45}
.data-table caption{
  caption-side:top;text-align:left;padding-bottom:10px;
  font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
}
.data-table th{
  padding:10px 12px;text-align:left;border-bottom:1px solid var(--grid-line);
  font-family:var(--font-mono);font-size:var(--fs-12);font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.data-table td{
  padding:10px 12px;border-bottom:1px solid rgba(38,52,73,.7);
  font-variant-numeric:tabular-nums;color:var(--text);
}
.data-table tbody tr{transition:background var(--speed) var(--ease)}
.data-table tbody tr:hover{background:rgba(242,176,60,.06)}
.data-table tbody tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--amber)}
.data-table .is-num{text-align:right;font-family:var(--font-mono)}

/* ---------- 7. 图片容器 ---------- */
.media-figure{margin:0}
.media-frame{
  position:relative;overflow:hidden;border:var(--line);border-radius:var(--radius);
  background:var(--ink-deep);
}
.media-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(6,10,18,.12) 0%,rgba(6,10,18,.72) 100%),
    repeating-linear-gradient(to bottom,rgba(53,224,208,.05) 0 1px,transparent 1px 3px);
}
.media-frame img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.05) brightness(.86)}
.media-frame--wide{aspect-ratio:16/9}
.media-frame--tall{aspect-ratio:4/5}
.media-frame--square{aspect-ratio:1/1}
.media-frame--placeholder{
  display:grid;place-items:center;aspect-ratio:16/9;
  background-image:
    linear-gradient(to right,rgba(38,52,73,.55) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(38,52,73,.55) 1px,transparent 1px);
  background-size:32px 32px;
  color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.14em;
}
.media-caption{
  display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px;
  font-size:var(--fs-12);line-height:1.6;color:var(--muted);letter-spacing:.03em;
}
.media-caption .mono{color:var(--num-idle);letter-spacing:.1em}
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--gap)}

/* ---------- 8. 头部 ---------- */
.skip-link{
  position:fixed;left:16px;top:-64px;z-index:300;
  padding:10px 16px;border-radius:var(--radius);
  background:var(--amber);color:#0B1220;
  font-family:var(--font-mono);font-size:var(--fs-14);letter-spacing:.06em;
  transition:top var(--speed) var(--ease);
}
.skip-link:focus,.skip-link:focus-visible{top:12px;color:#0B1220}

.site-header{
  position:fixed;inset:0 0 auto 0;z-index:200;
  background:linear-gradient(180deg,rgba(6,10,18,.78) 0%,rgba(6,10,18,0) 100%);
  border-bottom:1px solid transparent;
  transition:background var(--speed) var(--ease),border-color var(--speed) var(--ease);
}
.site-header[data-scrolled="true"]{
  background:rgba(11,18,32,.97);
  border-bottom-color:var(--grid-line);
}
.header-inner{
  display:flex;align-items:center;gap:20px;
  width:100%;max-width:var(--maxw);margin:0 auto;
  height:var(--header-h);padding:0 var(--gutter);
  transition:height var(--speed) var(--ease);
}
.site-header[data-scrolled="true"] .header-inner{height:var(--header-h-compact)}

.brand{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;color:var(--text)}
.brand-mark{font-family:var(--font-mono);font-size:var(--fs-16);font-weight:700;letter-spacing:.18em}
.brand-divider{width:1px;height:18px;background:var(--amber);display:inline-block}
.brand-name{
  font-family:var(--font-display);font-size:var(--fs-14);font-weight:700;
  letter-spacing:.08em;color:var(--muted);transition:color var(--speed) var(--ease);
}
.brand:hover .brand-name{color:var(--text)}

.site-nav{margin-left:auto;min-width:0;position:relative}
.nav-list{
  display:flex;align-items:center;gap:2px;
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;
}
.nav-list::-webkit-scrollbar{display:none}
.nav-item{flex:0 0 auto}
.nav-link{
  display:inline-flex;align-items:baseline;gap:6px;
  padding:10px 11px;border-bottom:2px solid transparent;
  font-size:var(--fs-14);line-height:1.4;color:var(--muted);white-space:nowrap;
}
.nav-index{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;
  color:var(--muted);opacity:.5;transition:color var(--speed) var(--ease),opacity var(--speed) var(--ease);
}
.nav-label{letter-spacing:.02em}
.nav-link:hover,.nav-link:focus-visible{color:var(--text);border-bottom-color:var(--amber-deep)}
.nav-link:hover .nav-index,.nav-link:focus-visible .nav-index{opacity:1;color:var(--amber)}
.nav-link[aria-current="page"]{color:var(--text);border-bottom-color:var(--amber)}
.nav-link[aria-current="page"] .nav-index{color:var(--amber);opacity:1}

.header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-left:8px}

.nav-toggle{
  display:none;align-items:center;gap:8px;
  padding:9px 12px;border:1px solid var(--grid-line);border-radius:var(--radius);
  font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.12em;
  color:var(--text);cursor:pointer;
  transition:border-color var(--speed) var(--ease),color var(--speed) var(--ease);
}
.nav-toggle:hover{border-color:var(--amber);color:var(--amber)}
.nav-toggle-text{line-height:1}
.nav-toggle-icon{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:16px}
.nav-toggle-icon span{display:block;height:1px;width:100%;background:var(--amber);transition:transform var(--speed) var(--ease),opacity var(--speed) var(--ease)}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

.read-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:rgba(38,52,73,.55);overflow:hidden;pointer-events:none}
.read-progress-fill{
  display:block;width:100%;height:100%;background:var(--amber);
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform 80ms linear;
}

/* ---------- 9. 页脚 ---------- */
.site-footer{background:var(--ink-deep);border-top:1px solid var(--grid-line);margin-top:clamp(48px,6vw,96px)}
.footer-inner{width:100%;max-width:var(--maxw);margin:0 auto;padding:clamp(32px,4vw,56px) var(--gutter) 28px}

.footer-top{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;
  padding-bottom:20px;border-bottom:var(--line);
}
.footer-brand{display:inline-flex;align-items:center;gap:12px;color:var(--text)}
.footer-brand-mark{font-family:var(--font-mono);font-size:var(--fs-20);font-weight:700;letter-spacing:.2em;color:var(--amber)}
.footer-brand-name{font-family:var(--font-display);font-size:var(--fs-16);font-weight:700;letter-spacing:.06em;color:var(--text)}
.footer-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 10px;border:1px solid rgba(53,224,208,.35);border-radius:var(--radius);
  font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.12em;color:var(--cyan);
}

.footer-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px;
  padding:clamp(24px,3vw,40px) 0;
}
.footer-col{min-width:0}
.footer-col-title{
  margin:0 0 14px;padding-bottom:10px;border-bottom:var(--line);
  font-family:var(--font-mono);font-size:var(--fs-12);font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.footer-list{display:grid;gap:9px}
.footer-link{display:inline-block;font-size:var(--fs-14);color:var(--muted);line-height:1.5}
.footer-link:hover,.footer-link:focus-visible{color:var(--amber)}
.footer-link-strong{color:var(--cyan);font-family:var(--font-mono);font-size:var(--fs-14);letter-spacing:.04em;border-bottom:1px solid rgba(53,224,208,.4);padding-bottom:2px}
.footer-link-strong:hover{color:var(--amber);border-bottom-color:var(--amber)}
.footer-text{margin:0 0 12px;font-size:var(--fs-14);line-height:1.7;color:var(--muted)}
.footer-text:last-of-type{margin-bottom:14px}

.contact-line{display:flex;gap:10px;margin:0 0 10px;font-size:var(--fs-14);line-height:1.6}
.contact-label{
  flex:0 0 40px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--num-idle);padding-top:3px;
}
.contact-value{color:var(--text);word-break:break-word;font-variant-numeric:tabular-nums}

.footer-bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;
  padding-top:20px;border-top:var(--line);
}
.footer-legal{
  display:flex;flex-wrap:wrap;gap:6px 16px;
  font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.05em;line-height:1.7;color:var(--muted);
}
.footer-legal-links{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:var(--fs-12)}
.footer-legal-links .footer-link{font-family:var(--font-mono);letter-spacing:.06em;font-size:var(--fs-12)}
.footer-note{
  margin:16px 0 0;max-width:64ch;
  font-size:var(--fs-12);line-height:1.7;color:var(--muted);
}

/* ---------- 10. 入场动效 ---------- */
[data-reveal]{opacity:0;transform:translateY(8px);transition:opacity 220ms ease-out,transform 220ms ease-out}
[data-reveal].is-revealed{opacity:1;transform:none}

/* ---------- 11. 响应式 ---------- */
@media (max-width:1200px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:1024px){
  .nav-toggle{display:inline-flex}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;margin-left:0;
    background:rgba(6,10,18,.98);border-top:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);
    visibility:hidden;opacity:0;transform:translateY(-8px);
    transition:opacity var(--speed) var(--ease),transform var(--speed) var(--ease),visibility var(--speed) var(--ease);
    max-height:70vh;
  }
  .site-nav[data-open="true"]{visibility:visible;opacity:1;transform:translateY(0)}
  .nav-list{
    gap:8px;padding:14px var(--gutter);
    overflow-x:auto;flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
  }
  .nav-link{
    padding:8px 14px;border:1px solid var(--grid-line);border-radius:var(--radius);
    border-bottom-width:1px;align-items:center;background:rgba(19,28,43,.6);
  }
  .nav-link:hover,.nav-link:focus-visible{border-color:var(--amber-deep)}
  .nav-link[aria-current="page"]{border-color:var(--amber);background:rgba(242,176,60,.1)}
  .nav-label{font-size:var(--fs-14)}
  .grid-12{grid-template-columns:repeat(8,minmax(0,1fr))}
  .span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 8}
}

@media (max-width:880px){
  :root{--gap:20px}
  #main-content{padding-top:var(--header-h)}
  .chapter{grid-template-columns:clamp(48px,12vw,64px) minmax(0,1fr)}
  .lead{font-size:var(--fs-16);max-width:34em}
}

@media (max-width:640px){
  :root{--header-h:60px;--header-h-compact:56px;--gutter:20px}
  .btn-subscribe{display:none}
  .brand-name,.brand-divider{display:none}
  .brand-mark{letter-spacing:.14em}
  .header-inner{gap:12px}
  .header-actions{margin-left:auto}
  .site-footer{margin-top:56px}
  .footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .footer-top{gap:12px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .footer-legal{flex-direction:column;gap:4px}
  .grid-12{grid-template-columns:repeat(4,minmax(0,1fr))}
  .span-4,.span-5,.span-6,.span-7,.span-8,.span-12{grid-column:span 4}
  .stat-value{font-size:var(--fs-72)}
  .data-table{font-size:var(--fs-12)}
  .data-table th,.data-table td{padding:8px 8px}
}

@media (max-width:420px){
  .chapter{grid-template-columns:minmax(0,1fr)}
  .chapter-num{grid-column:1;margin-bottom:8px}
  .chapter-main{grid-column:1}
}

/* ---------- 12. 可访问性与动效偏好 ---------- */
:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:1px}
a:focus-visible,button:focus-visible{outline:2px solid var(--amber);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    transition-delay:0ms !important;
  }
  [data-reveal]{opacity:1;transform:none}
  .read-progress-fill{transition:none}
}

@media print{
  .site-header,.site-footer,.skip-link,.read-progress{display:none}
  body{background:#fff;color:#000}
  #main-content{padding-top:0}
}
