/* =========================================================
   stadium-huobo.com.cn — 共享样式 /assets/site.css
   主场夜灯视觉系统：深炭黑底 + 火焰橙主场灯 + 荧光青数据流
   ========================================================= */

/* ---------- 1. 变量 ---------- */
:root{
  --ink:#0B0E11;
  --ink-2:#121A2B;
  --line:#1E2A3D;
  --orange:#FF6B1A;
  --red:#E4312B;
  --cyan:#2BE3C6;
  --gold:#F2C14E;
  --green:#1F6B4A;
  --fog:#E8EDF2;
  --stone:#8A97A6;

  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --container:1200px;
  --gutter:clamp(16px,4vw,40px);
  --radius:18px;
  --radius-sm:12px;
  --header-space:118px;
}

@media (max-width:960px){ :root{ --header-space:104px; } }
@media (max-width:560px){ :root{ --header-space:96px; } }

/* ---------- 2. Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  padding-top:var(--header-space);
  background-color:var(--ink);
  color:var(--fog);
  font:400 16px/1.75 var(--font-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.nav-open{ overflow:hidden; }
img,svg,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }
table{ width:100%; border-collapse:collapse; }
[hidden]{ display:none !important; }

/* 夜场灯光氛围：对角光带 + 两处看台光晕 */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(58vw 38vh at 80% -8%, rgba(255,107,26,.15), transparent 70%),
    radial-gradient(46vw 32vh at 4% 14%, rgba(43,227,198,.09), transparent 72%),
    linear-gradient(118deg, transparent 41.6%, rgba(30,42,61,.55) 41.9%, transparent 42.3%);
}

/* ---------- 3. 排版 ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:900;
  line-height:1.12;
  letter-spacing:-.02em;
  color:var(--fog);
}
h1{ font-size:clamp(2.4rem,6vw,4.8rem); }
h2{ font-size:clamp(1.8rem,3.6vw,3rem); }
h3{ font-size:clamp(1.15rem,1.8vw,1.55rem); }
h4{ font-size:1.02rem; letter-spacing:0; }
p{ color:var(--fog); }
strong{ font-weight:700; }

.lede{ max-width:64ch; font-size:clamp(1rem,1.4vw,1.15rem); color:#C6D0DA; }
.note{ font-size:12.5px; line-height:1.7; color:var(--stone); }
.mono{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.is-accent{ color:var(--orange); }
.is-cyan{ color:var(--cyan); }
.is-gold{ color:var(--gold); }

.text-link{
  color:var(--fog);
  border-bottom:1px solid rgba(255,107,26,.6);
  padding-bottom:1px;
  transition:border-color .22s ease,color .22s ease;
}
.text-link:hover{ color:var(--cyan); border-color:var(--cyan); }

:focus{ outline:none; }
:focus-visible{ outline:2px solid var(--cyan); outline-offset:3px; border-radius:4px; }

.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- 4. 容器与区块 ---------- */
.container,.container--wide{
  width:100%;
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.container{ max-width:var(--container); }
.container--wide{ max-width:1440px; }

.section{ position:relative; padding-block:clamp(56px,8vw,120px); }
.section--night{ background:var(--ink-2); }
.section--deep{ background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 100%); }

.section-head{
  display:grid;
  gap:16px;
  margin-bottom:clamp(28px,4vw,56px);
  max-width:76ch;
}
.section-index{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--orange);
}
.section-title{
  font-size:clamp(1.9rem,4.2vw,3.2rem);
  transform:skewX(-2deg);
  transform-origin:left center;
}
.section-lede{ max-width:62ch; color:var(--stone); font-size:1rem; }
.section-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:6px; }

.page-head{
  position:relative;
  padding-block:clamp(38px,6vw,84px) clamp(22px,3.4vw,44px);
}
.page-head::after{
  content:"";
  position:absolute;
  left:var(--gutter); right:var(--gutter); bottom:0;
  height:1px;
  background:linear-gradient(90deg, rgba(255,107,26,.7), rgba(43,227,198,.35), transparent);
}

.divider{
  height:1px;
  border:0;
  margin-block:clamp(24px,4vw,48px);
  background:linear-gradient(90deg, var(--line), transparent);
}

/* ---------- 5. 按钮与标签 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 22px;
  border:1px solid transparent;
  border-radius:999px;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.02em;
  line-height:1.2;
  transition:background-color .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease;
}
.btn--primary{
  background:var(--orange);
  color:#1A0A02;
  box-shadow:0 12px 30px -14px rgba(255,107,26,.8);
}
.btn--primary:hover{ background:#FF8341; }
.btn--ghost{ border-color:var(--line); color:var(--fog); }
.btn--ghost:hover{ border-color:var(--cyan); color:var(--cyan); }
.btn--sm{ padding:8px 16px; font-size:.84rem; }

.chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(30,42,61,.5);
  color:var(--stone);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  line-height:1.6;
}
.chip--live{ color:var(--cyan); border-color:rgba(43,227,198,.45); background:rgba(43,227,198,.08); }
.chip--red{ color:#FF9A95; border-color:rgba(228,49,43,.5); background:rgba(228,49,43,.12); }
.chip--gold{ color:var(--gold); border-color:rgba(242,193,78,.45); background:rgba(242,193,78,.1); }
.chip--accent{ color:var(--orange); border-color:rgba(255,107,26,.5); background:rgba(255,107,26,.1); }

/* ---------- 6. 栅格 / 卡片 / 数据 ---------- */
.grid{ display:grid; gap:clamp(16px,2.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--split{ grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); }

.card{
  position:relative;
  padding:clamp(18px,2.4vw,28px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(160deg, rgba(18,26,43,.96), rgba(11,14,17,.96));
  transition:border-color .25s ease,box-shadow .25s ease,background-color .25s ease;
}
.card:hover{
  border-color:rgba(255,107,26,.55);
  box-shadow:0 22px 48px -30px rgba(255,107,26,.75);
}
.card--accent{ border-left:2px solid var(--orange); }
.card-head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.card-title{ font-family:var(--font-display); font-weight:900; font-size:1.12rem; letter-spacing:-.01em; }
.card-meta{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; color:var(--stone); }
.card-body{ color:#C6D0DA; font-size:.94rem; }

.stat{ display:grid; gap:4px; }
.stat-value{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:clamp(1.5rem,2.8vw,2.3rem);
  letter-spacing:-.02em;
  color:var(--cyan);
  font-variant-numeric:tabular-nums;
}
.stat-label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; color:var(--stone); text-transform:uppercase; }

/* ---------- 7. 时间轴 ---------- */
.timeline{ position:relative; padding-left:26px; border-left:1px solid var(--line); }
.timeline-item{ position:relative; padding-bottom:26px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-dot{
  position:absolute;
  left:-33px; top:7px;
  width:13px; height:13px;
  border-radius:50%;
  background:var(--line);
  box-shadow:0 0 0 3px rgba(30,42,61,.6);
}
.timeline-dot--red{ background:var(--red); box-shadow:0 0 0 3px rgba(228,49,43,.25); }
.timeline-dot--cyan{ background:var(--cyan); box-shadow:0 0 0 3px rgba(43,227,198,.22); }
.timeline-dot--gold{ background:var(--gold); box-shadow:0 0 0 3px rgba(242,193,78,.22); }
.timeline-time{ display:block; font-family:var(--font-mono); font-size:12px; color:var(--stone); letter-spacing:.06em; }
.timeline-text{ color:var(--fog); font-size:.95rem; }

/* ---------- 8. 表格 ---------- */
.table-scroll{
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(18,26,43,.6);
}
.data-table th{
  padding:14px 16px;
  text-align:left;
  white-space:nowrap;
  border-bottom:1px solid var(--line);
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--stone);
  font-weight:500;
}
.data-table td{
  padding:14px 16px;
  border-bottom:1px solid rgba(30,42,61,.6);
  font-size:.94rem;
  vertical-align:top;
  color:#C6D0DA;
}
.data-table tr:last-child td{ border-bottom:0; }
.data-table .num{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; color:var(--fog); }

/* ---------- 9. 面包屑 ---------- */
.breadcrumbs{ padding-block:16px; border-bottom:1px solid rgba(30,42,61,.7); }
.breadcrumbs-list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.06em;
  color:var(--stone);
}
.breadcrumbs-item{ display:inline-flex; align-items:center; gap:8px; }
.breadcrumbs-item:not(:first-child)::before{ content:"/"; color:var(--line); }
.breadcrumbs-link{ color:var(--stone); transition:color .2s ease; }
.breadcrumbs-link:hover{ color:var(--cyan); }
.breadcrumbs-current{ color:var(--fog); }

/* ---------- 10. 图片容器 ---------- */
.media{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(140deg,var(--ink-2),var(--green));
}
.media img{ width:100%; height:100%; object-fit:cover; }
.media::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:2px;
  background:linear-gradient(90deg, rgba(255,107,26,.75), rgba(43,227,198,.4), transparent);
  opacity:.8;
  pointer-events:none;
}
.media--wide{ aspect-ratio:16/9; }
.media--tall{ aspect-ratio:3/4; }
.media--square{ aspect-ratio:1/1; }
.media-placeholder{
  display:flex;
  align-items:flex-end;
  aspect-ratio:16/9;
  padding:18px;
  background:
    linear-gradient(140deg, rgba(31,107,74,.35), rgba(18,26,43,.92) 62%),
    repeating-linear-gradient(90deg, rgba(232,237,242,.06) 0 1px, transparent 1px 64px);
}
.media-caption{ font-size:12px; line-height:1.65; color:var(--stone); margin-top:10px; }

/* ---------- 11. 显现动画基底 ---------- */
.js-on [data-reveal]{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1);
}
.js-on [data-reveal].is-visible{ opacity:1; transform:none; }

/* =========================================================
   12. 页头：透明叠加 → 实色阅读态
   ========================================================= */
.skip-link{
  position:fixed;
  top:0; left:8px;
  z-index:200;
  padding:10px 18px;
  border-radius:0 0 12px 12px;
  background:var(--cyan);
  color:#04241F;
  font-weight:700;
  font-size:.9rem;
  transform:translateY(-130%);
  transition:transform .2s ease;
}
.skip-link:focus{ transform:translateY(0); }

.site-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:100;
  background:linear-gradient(180deg, rgba(11,14,17,.96) 0%, rgba(11,14,17,.74) 62%, rgba(11,14,17,.18) 100%);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transition:background-color .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.site-header[data-scrolled="true"]{
  background:rgba(11,14,17,.97);
  border-bottom:1px solid var(--line);
  box-shadow:0 18px 44px -30px #000;
}
.header-glow{
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,107,26,.6), rgba(43,227,198,.4), transparent);
  opacity:.7;
}

/* --- 赛事栏 --- */
.ticker-bar{
  overflow:hidden;
  max-height:60px;
  border-bottom:1px solid rgba(30,42,61,.75);
  transition:max-height .34s ease,opacity .26s ease,border-color .3s ease;
}
.site-header[data-scrolled="true"] .ticker-bar{
  max-height:0;
  opacity:0;
  border-color:transparent;
}
.ticker-inner{
  display:flex;
  align-items:center;
  gap:18px;
  width:min(calc(100% - var(--gutter) * 2), 1440px);
  margin-inline:auto;
  padding-block:8px;
}
.ticker-days{ display:flex; flex:0 0 auto; gap:6px; }
.ticker-day{
  padding:5px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.1em;
  color:var(--stone);
  transition:color .2s ease,border-color .2s ease,background-color .2s ease;
}
.ticker-day:hover{ color:var(--fog); border-color:var(--orange); }
.ticker-day.is-active{
  background:var(--orange);
  border-color:var(--orange);
  color:#1A0A02;
  font-weight:700;
}
.ticker-track{
  display:flex;
  flex:1 1 auto;
  gap:14px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
}
.ticker-track::-webkit-scrollbar{ display:none; }
.ticker-item{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  gap:10px;
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:rgba(18,26,43,.72);
  font-size:13px;
  line-height:1.4;
  transition:border-color .22s ease,background-color .22s ease;
}
.ticker-item:hover{ border-color:rgba(255,107,26,.6); background:rgba(18,26,43,.95); }
.ticker-team{ color:var(--fog); font-weight:500; white-space:nowrap; }
.ticker-team--away{ color:var(--stone); font-weight:400; }
.ticker-score{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:14px;
  color:var(--fog);
  font-variant-numeric:tabular-nums;
}
.score-sep{ color:var(--line); margin-inline:2px; }
.ticker-meta{ font-family:var(--font-mono); font-size:11.5px; color:var(--stone); white-space:nowrap; }
.ticker-status{
  padding:2px 7px;
  border:1px solid transparent;
  border-radius:6px;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.1em;
  white-space:nowrap;
}
.ticker-status.is-live{ color:var(--cyan); background:rgba(43,227,198,.1); border-color:rgba(43,227,198,.4); }
.ticker-status.is-soon{ color:var(--gold); background:rgba(242,193,78,.1); border-color:rgba(242,193,78,.38); }
.ticker-status.is-final{ color:var(--stone); background:rgba(30,42,61,.6); border-color:var(--line); }
.ticker-status.is-red{ color:#FF9A95; background:rgba(228,49,43,.16); border-color:rgba(228,49,43,.5); }

/* --- 主导航区 --- */
.header-main{ position:relative; }
.header-inner{
  display:flex;
  align-items:center;
  gap:clamp(12px,3vw,30px);
  width:min(calc(100% - var(--gutter) * 2), 1440px);
  margin-inline:auto;
  padding-block:14px;
}

.brand{ display:inline-flex; flex:0 0 auto; align-items:center; gap:12px; }
.brand-mark{
  position:relative;
  display:grid;
  place-items:center;
  width:38px; height:38px;
  border-radius:13px;
  background:linear-gradient(150deg,var(--orange),var(--red));
  box-shadow:0 0 28px -7px rgba(255,107,26,.85);
}
.brand-mark::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(150deg, rgba(43,227,198,0), rgba(43,227,198,.5));
  opacity:0;
  transition:opacity .25s ease;
}
.brand:hover .brand-mark::before{ opacity:1; }
.brand-mark-core{
  width:13px; height:13px;
  border-radius:50%;
  background:var(--fog);
  box-shadow:0 0 14px 3px rgba(232,237,242,.85);
}
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{ font-family:var(--font-display); font-weight:900; font-size:1.1rem; letter-spacing:.02em; color:var(--fog); }
.brand-sub{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.24em; color:var(--stone); }

.header-focus{
  display:none;
  align-items:center;
  gap:10px;
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(18,26,43,.85);
  font-size:12px;
}
.site-header[data-scrolled="true"] .header-focus{ display:inline-flex; }
.focus-tag{ font-family:var(--font-mono); font-size:10px; letter-spacing:.16em; color:var(--orange); }
.focus-score{ font-family:var(--font-mono); font-weight:700; color:var(--fog); }
.focus-clock{ font-family:var(--font-mono); font-size:11px; color:var(--cyan); }

.nav-toggle{
  display:none;
  align-items:center;
  gap:10px;
  margin-left:auto;
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  font-size:.84rem;
  color:var(--fog);
  transition:border-color .2s ease;
}
.nav-toggle:hover{ border-color:var(--orange); }
.nav-toggle-box{ display:grid; gap:4px; width:18px; }
.nav-toggle-bar{
  display:block;
  height:2px;
  border-radius:2px;
  background:var(--orange);
  transition:transform .25s ease,opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
.nav-toggle-text{ font-family:var(--font-mono); letter-spacing:.08em; }

.site-nav{ display:flex; align-items:center; gap:clamp(10px,2vw,26px); margin-left:auto; }
.nav-list{ display:flex; align-items:center; gap:clamp(8px,1.6vw,22px); }
.nav-item{ display:block; }
.nav-link{
  position:relative;
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  padding:8px 2px;
  font-size:.94rem;
  font-weight:500;
  color:var(--stone);
  transition:color .2s ease;
}
.nav-link::after{
  content:"";
  position:absolute;
  left:0; right:100%; bottom:2px;
  height:2px;
  background:var(--orange);
  transition:right .25s ease,background-color .25s ease;
}
.nav-link:hover{ color:var(--fog); }
.nav-link:hover::after{ right:0; }
.nav-link[aria-current="page"]{ color:var(--fog); }
.nav-link[aria-current="page"]::after{ right:0; background:var(--cyan); }
.nav-index{ font-family:var(--font-mono); font-size:10px; color:var(--line); transition:color .2s ease; }
.nav-link:hover .nav-index,
.nav-link[aria-current="page"] .nav-index{ color:var(--orange); }
.nav-aside{
  display:flex;
  align-items:center;
  gap:10px;
  padding-left:clamp(8px,1.6vw,18px);
  border-left:1px solid var(--line);
}

.scroll-progress{
  position:absolute;
  left:0; bottom:0;
  width:100%; height:2px;
  pointer-events:none;
  --progress:0%;
}
.scroll-progress::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:var(--progress);
  background:linear-gradient(90deg,var(--orange),var(--cyan));
  box-shadow:0 0 12px rgba(255,107,26,.55);
}

/* =========================================================
   13. 页脚
   ========================================================= */
.site-footer{
  position:relative;
  margin-top:clamp(56px,9vw,120px);
  overflow:hidden;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, var(--ink) 0%, #080A0D 58%, #06080A 100%);
}
.footer-lights{
  position:absolute;
  left:0; right:0; top:0;
  height:2px;
  background:linear-gradient(90deg, transparent, var(--orange), var(--cyan), transparent);
  opacity:.75;
}
.site-footer::after{
  content:"";
  position:absolute;
  left:50%; top:-150px;
  width:min(880px,100%);
  height:290px;
  transform:translateX(-50%);
  pointer-events:none;
  background:radial-gradient(50% 60% at 50% 50%, rgba(255,107,26,.16), transparent 70%);
}
.footer-inner{
  position:relative;
  width:min(calc(100% - var(--gutter) * 2), 1440px);
  margin-inline:auto;
  padding-block:clamp(40px,6vw,72px) 24px;
}
.footer-grid{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr)) minmax(0,1.15fr);
  gap:clamp(24px,3.4vw,48px);
}
.footer-col{ min-width:0; }
.footer-tagline{ margin-top:16px; max-width:34ch; color:var(--stone); font-size:.94rem; }
.footer-heading{
  margin-bottom:16px;
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--orange);
}
.footer-nav{ display:block; }
.footer-list{ display:grid; gap:10px; }
.footer-link{
  display:inline-block;
  color:var(--stone);
  font-size:.93rem;
  transition:color .2s ease,transform .2s ease;
}
.footer-link:hover{ color:var(--cyan); transform:translateX(3px); }
.footer-link[aria-current="page"]{ color:var(--fog); }
.footer-contact{ display:grid; gap:12px; }
.contact-line{ display:grid; gap:2px; }
.contact-label{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; color:var(--stone); }
.contact-value{ color:var(--fog); font-size:.94rem; word-break:break-word; }
.footer-note{ margin-top:16px; max-width:36ch; font-size:12px; line-height:1.7; color:var(--stone); }
.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 24px;
  margin-top:clamp(28px,4vw,48px);
  padding-top:20px;
  border-top:1px solid rgba(30,42,61,.85);
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--stone);
}
.footer-icp{ color:var(--fog); }
.footer-mail{ letter-spacing:.02em; }
.footer-year{ color:var(--stone); }

/* =========================================================
   14. 响应式
   ========================================================= */
@media (max-width:1100px){
  .grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1024px){
  .footer-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:960px){
  .site-header{ background:rgba(11,14,17,.97); }
  .nav-toggle{ display:inline-flex; }

  .site-nav{
    position:fixed;
    inset:0;
    z-index:99;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    margin:0;
    padding:calc(var(--header-space) + 12px) var(--gutter) 40px;
    overflow-y:auto;
    background:rgba(11,14,17,.985);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .25s ease,transform .25s ease,visibility .25s ease;
  }
  .site-nav[data-open]{ opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .nav-list{ flex-direction:column; align-items:stretch; gap:0; }
  .nav-link{
    justify-content:space-between;
    padding:16px 4px;
    font-size:1.22rem;
    border-bottom:1px solid rgba(30,42,61,.7);
  }
  .nav-link::after{ display:none; }
  .nav-link[aria-current="page"]{ color:var(--orange); }
  .nav-link[aria-current="page"] .nav-index{ color:var(--orange); }
  .nav-index{ font-size:12px; }
  .nav-aside{ margin-top:26px; padding-left:0; border-left:0; }
  .ticker-days{ gap:4px; }
}

@media (max-width:900px){
  .grid--3,.grid--split{ grid-template-columns:1fr; }
}
@media (max-width:720px){
  .grid--2{ grid-template-columns:1fr; }
  .header-focus{ display:none !important; }
  .section-title{ transform:skewX(-1.4deg); }
}
@media (max-width:620px){
  .footer-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .ticker-inner{ gap:10px; }
}
@media (max-width:380px){
  .nav-toggle-text{ display:none; }
}

/* =========================================================
   15. 动效偏好
   ========================================================= */
@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-on [data-reveal]{ opacity:1 !important; transform:none !important; }
  .skip-link{ transition:none; }
}
