/* ==========================================================================
   金喜体育 · 共享样式表 /assets/site.css
   赛场夜光 + 数据仪表盘 · 纵向长卷 · 88px 侧边轨道
   ========================================================================== */

:root{
  --ink:#07231C;
  --ink-panel:#0C2E25;
  --ink-line:#17453A;
  --lime:#C8F53F;
  --lime-soft:#E8FFB8;
  --gold:#E7B24C;
  --coral:#FF6A57;
  --paper:#F4F1E4;
  --mist:#9FB6AD;
  --teal-deep:#123B44;

  --rail-w:88px;
  --topbar-h:60px;
  --wrap:1220px;
  --gutter:20px;

  --font-display:"HarmonyOS Sans SC","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",-apple-system,"Segoe UI",system-ui,sans-serif;
  --font-mono:ui-monospace,"SF Mono","JetBrains Mono","Roboto Mono",Consolas,"Liberation Mono",monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow-tile:0 8px 0 -4px rgba(0,0,0,.42),0 20px 34px -22px rgba(0,0,0,.9);
}

@media (min-width:760px){ :root{ --gutter:28px; } }
@media (min-width:1200px){ :root{ --gutter:36px; } }

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--topbar-h) + 16px);
  color-scheme:dark;
}
body{
  margin:0;
  padding-left:var(--rail-w);
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  font-weight:400;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg,picture,video{ max-width:100%; display:block; }
h1,h2,h3,h4,h5,h6{
  margin:0;
  font-family:var(--font-display);
  font-weight:900;
  line-height:1.12;
  letter-spacing:-.01em;
}
p{ margin:0 0 1em; }
ul,ol{ margin:0; padding:0; }
li{ list-style:none; }
button{ font:inherit; color:inherit; }
a{ color:var(--lime-soft); text-underline-offset:3px; }
a:hover{ color:var(--lime); }
table{ border-collapse:collapse; width:100%; }
::selection{ background:var(--lime); color:var(--ink); }

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

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

/* ---------- skip link ---------- */
.skip-link{
  position:fixed;
  top:0;left:50%;
  z-index:200;
  transform:translate(-50%,-130%);
  padding:10px 22px;
  background:var(--lime);
  color:var(--ink);
  font-family:var(--font-display);
  font-size:14px;
  font-weight:900;
  letter-spacing:.06em;
  text-decoration:none;
  border-radius:0 0 3px 3px;
  transition:transform .18s var(--ease);
}
.skip-link:focus{ transform:translate(-50%,0); color:var(--ink); }

/* ==========================================================================
   头部：88px 侧边轨道 + 移动端顶部条
   ========================================================================== */
.site-header{ position:relative; z-index:100; }

.rail{
  position:fixed;
  top:0;left:0;bottom:0;
  z-index:80;
  width:var(--rail-w);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  padding:18px 0 16px;
  background:linear-gradient(180deg,#0C2E25 0%,#08251D 58%,#061D17 100%);
  border-right:1px solid var(--ink-line);
}
.rail::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(200,245,63,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(200,245,63,.055) 1px,transparent 1px);
  background-size:22px 22px;
  opacity:.7;
}

/* 品牌 */
.brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--paper);
}
.brand__mark{
  display:grid;
  place-items:center;
  width:42px;height:42px;
  background:rgba(200,245,63,.1);
  border:1px solid var(--lime);
  box-shadow:inset 0 0 0 3px rgba(7,35,28,.92);
  color:var(--lime);
  font-family:var(--font-display);
  font-weight:900;
  font-size:19px;
  line-height:1;
  transition:background .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease);
}
.brand:hover .brand__mark,
.brand:focus-visible .brand__mark{
  background:var(--lime);
  color:var(--ink);
  box-shadow:inset 0 0 0 3px rgba(7,35,28,.92),0 0 22px -4px rgba(200,245,63,.8);
}
.brand__mark--sm{
  width:32px;height:32px;
  font-size:15px;
  box-shadow:none;
  flex:0 0 auto;
}
.brand__word{
  writing-mode:vertical-rl;
  text-orientation:upright;
  font-family:var(--font-display);
  font-size:12px;
  font-weight:800;
  letter-spacing:.32em;
  color:var(--mist);
  transition:color .2s var(--ease);
}
.brand:hover .brand__word{ color:var(--paper); }

/* 导航 */
.rail__nav{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  display:flex;
  justify-content:center;
  padding:4px 0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
}
.rail__nav::-webkit-scrollbar{ display:none; }

.nav-list{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.nav-list a{
  display:block;
  writing-mode:vertical-rl;
  text-orientation:upright;
  padding:13px 9px;
  font-family:var(--font-display);
  font-size:13px;
  font-weight:700;
  letter-spacing:.2em;
  color:var(--mist);
  text-decoration:none;
  border:1px solid transparent;
  border-radius:2px;
  transition:color .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.nav-list a:hover{
  color:var(--lime-soft);
  background:rgba(200,245,63,.07);
  border-color:var(--ink-line);
}
.nav-list a[aria-current="page"]{
  color:var(--ink);
  background:var(--lime);
  border-color:var(--lime);
  font-weight:900;
  letter-spacing:.14em;
  box-shadow:0 0 0 1px rgba(200,245,63,.35),0 0 24px -6px rgba(200,245,63,.85);
}

/* 轨道底部 */
.rail__foot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  width:100%;
  padding:0 8px;
}
.rail__cta{
  writing-mode:vertical-rl;
  text-orientation:upright;
  padding:11px 7px;
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.22em;
  color:var(--gold);
  text-decoration:none;
  border:1px dashed rgba(231,178,76,.55);
  border-radius:2px;
  transition:color .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease);
}
.rail__cta:hover{
  color:var(--ink);
  background:var(--gold);
  border-style:solid;
  border-color:var(--gold);
}
.rail__progress{
  position:relative;
  width:3px;
  height:64px;
  background:var(--ink-line);
  border-radius:2px;
  overflow:hidden;
}
.rail__progress-bar{
  position:absolute;
  top:0;left:0;
  width:100%;
  height:0;
  background:linear-gradient(180deg,var(--lime) 0%,var(--lime-soft) 100%);
  box-shadow:0 0 10px rgba(200,245,63,.75);
}

/* 移动端顶部条 */
.topbar{ display:none; }

.nav-toggle{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:8px 13px;
  background:transparent;
  border:1px solid var(--ink-line);
  border-radius:2px;
  color:var(--lime);
  font-family:var(--font-display);
  font-size:13px;
  font-weight:800;
  letter-spacing:.14em;
  cursor:pointer;
  transition:border-color .2s var(--ease),background .2s var(--ease);
}
.nav-toggle:hover{ border-color:var(--lime); background:rgba(200,245,63,.08); }
.nav-toggle__bars{
  position:relative;
  display:block;
  width:18px;height:12px;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content:"";
  position:absolute;
  left:0;right:0;
  height:2px;
  background:var(--lime);
  transition:transform .24s var(--ease);
}
.nav-toggle__bars::before{ top:0; }
.nav-toggle__bars::after{ bottom:0; }
.nav-toggle__text{
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.2em;
}

/* ==========================================================================
   移动 / 平板：顶部条 + 抽屉
   ========================================================================== */
@media (max-width:899px){
  body{
    padding-left:0;
    padding-top:var(--topbar-h);
  }

  .topbar{
    position:fixed;
    top:0;left:0;right:0;
    z-index:90;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    height:var(--topbar-h);
    padding:0 16px;
    background:rgba(10,40,32,.97);
    border-bottom:1px solid var(--ink-line);
  }
  .topbar__brand{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    color:var(--paper);
  }
  .topbar__title{
    font-family:var(--font-display);
    font-size:16px;
    font-weight:900;
    letter-spacing:.02em;
  }

  .site-header::after{
    content:"";
    position:fixed;
    inset:var(--topbar-h) 0 0 0;
    z-index:70;
    background:rgba(4,17,13,.74);
    opacity:0;
    visibility:hidden;
    transition:opacity .3s var(--ease),visibility .3s var(--ease);
  }
  .site-header[data-open]::after{
    opacity:1;
    visibility:visible;
  }

  .rail{
    width:min(86vw,340px);
    align-items:stretch;
    padding:calc(var(--topbar-h) + 18px) 0 26px;
    gap:0;
    transform:translateX(-102%);
    transition:transform .3s var(--ease);
    overflow-y:auto;
    box-shadow:0 0 0 1px var(--ink-line),0 30px 60px -20px rgba(0,0,0,.9);
  }
  .site-header[data-open] .rail{ transform:translateX(0); }

  .brand{
    flex-direction:row;
    align-items:center;
    gap:12px;
    padding:0 20px 18px;
    border-bottom:1px solid var(--ink-line);
  }
  .brand__word{
    writing-mode:horizontal-tb;
    text-orientation:mixed;
    font-size:15px;
    letter-spacing:.08em;
    color:var(--paper);
  }

  .rail__nav{
    flex:0 0 auto;
    display:block;
    padding:10px 0 0;
    overflow:visible;
  }
  .nav-list{
    align-items:stretch;
    gap:0;
    width:100%;
  }
  .nav-list a{
    writing-mode:horizontal-tb;
    text-orientation:mixed;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 20px;
    font-size:15px;
    letter-spacing:.08em;
    border:0;
    border-bottom:1px solid rgba(23,69,58,.75);
    border-radius:0;
  }
  .nav-list a::after{
    content:"→";
    font-family:var(--font-mono);
    font-size:13px;
    color:var(--ink-line);
  }
  .nav-list a:hover{
    background:rgba(200,245,63,.07);
    border-bottom-color:var(--ink-line);
  }
  .nav-list a[aria-current="page"]{
    background:rgba(200,245,63,.13);
    color:var(--lime);
    font-weight:900;
    border-bottom-color:var(--lime);
    box-shadow:inset 3px 0 0 var(--lime);
  }
  .nav-list a[aria-current="page"]::after{ color:var(--lime); }

  .rail__foot{
    align-items:stretch;
    width:auto;
    padding:20px 20px 0;
    margin-top:auto;
    gap:14px;
  }
  .rail__cta{
    writing-mode:horizontal-tb;
    text-orientation:mixed;
    padding:12px 16px;
    text-align:center;
    font-size:12px;
    letter-spacing:.16em;
  }
  .rail__progress{ display:none; }
}

/* ==========================================================================
   通用内容组件
   ========================================================================== */
.wrap{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.band{
  position:relative;
  padding:clamp(48px,7vw,96px) 0;
}
.band--panel{ background:var(--ink-panel); }
.band--teal{ background:var(--teal-deep); }
.band--paper{ background:var(--paper); color:var(--ink); }
.band--paper a{ color:#14503F; }
.band--paper a:hover{ color:#0B2F26; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 0 14px;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--lime);
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:currentColor;
}

.chapter-num{
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:600;
  letter-spacing:.2em;
  color:var(--gold);
}

.num{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-weight:600;
  letter-spacing:-.02em;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 22px;
  border:1px solid var(--ink-line);
  border-radius:2px;
  background:transparent;
  color:var(--paper);
  font-family:var(--font-display);
  font-size:14px;
  font-weight:800;
  letter-spacing:.08em;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s var(--ease),background .18s var(--ease),
             border-color .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease);
}
.btn:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-tile);
}
.btn--primary{
  background:var(--lime);
  border-color:var(--lime);
  color:var(--ink);
}
.btn--primary:hover{
  background:var(--lime-soft);
  border-color:var(--lime-soft);
  color:var(--ink);
}
.btn--ghost{
  color:var(--lime);
  border-color:rgba(200,245,63,.45);
}
.btn--ghost:hover{
  background:rgba(200,245,63,.1);
  border-color:var(--lime);
  color:var(--lime-soft);
}

.tag{
  display:inline-block;
  padding:4px 9px;
  border:1px solid var(--ink-line);
  border-radius:1px;
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.14em;
  color:var(--mist);
  text-decoration:none;
  transition:transform .18s var(--ease),color .18s var(--ease),
             background .18s var(--ease),border-color .18s var(--ease);
}
.tag:hover{
  transform:translateY(-2px);
  color:var(--ink);
  background:var(--lime);
  border-color:var(--lime);
}

.breadcrumbs{
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.04em;
  color:var(--mist);
}
.breadcrumbs ol{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.breadcrumbs li{
  display:flex;
  align-items:center;
  gap:6px;
}
.breadcrumbs li + li::before{
  content:"／";
  color:var(--ink-line);
}
.breadcrumbs a{
  color:var(--mist);
  text-decoration:none;
}
.breadcrumbs a:hover{ color:var(--lime); }
.breadcrumbs [aria-current="page"]{ color:var(--paper); }

/* ---------- 图片容器基础规则 ---------- */
.figure-frame{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:
    radial-gradient(120% 90% at 18% 0%,rgba(200,245,63,.1) 0%,transparent 60%),
    var(--ink-panel);
  border:1px solid var(--ink-line);
  border-radius:2px;
}
.figure-frame--wide{ aspect-ratio:21 / 9; }
.figure-frame--tall{ aspect-ratio:4 / 5; }
.figure-frame--square{ aspect-ratio:1 / 1; }
.figure-frame img,
.figure-frame picture,
.figure-frame svg,
.figure-frame canvas{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.figure-frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,rgba(7,35,28,.82) 100%);
}
.figure-frame__cap{
  position:absolute;
  left:14px;right:14px;bottom:12px;
  z-index:1;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.1em;
  color:var(--lime-soft);
}

/* ---------- 网格 ---------- */
.grid{
  display:grid;
  gap:clamp(16px,2.4vw,28px);
}
.grid--2{ grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }
.grid--3{ grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }

/* ---------- 标签页 ---------- */
.tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:6px;
  background:rgba(12,46,37,.72);
  border:1px solid var(--ink-line);
  border-radius:3px;
}
.tab{
  appearance:none;
  padding:9px 16px;
  border:1px solid transparent;
  border-radius:2px;
  background:transparent;
  color:var(--mist);
  font-family:var(--font-mono);
  font-size:13px;
  font-weight:600;
  letter-spacing:.08em;
  cursor:pointer;
  transition:color .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease);
}
.tab:hover{
  color:var(--lime-soft);
  border-color:var(--ink-line);
}
.tab[aria-selected="true"]{
  background:var(--lime);
  border-color:var(--lime);
  color:var(--ink);
  font-weight:700;
}
.tabpanel{ display:none; }
.tabpanel[data-active]{ display:block; animation:panel-in .24s ease-out both; }
@keyframes panel-in{
  from{ opacity:0; transform:translateX(10px); }
  to{ opacity:1; transform:none; }
}

/* ---------- 进入视口显现 ---------- */
html[data-reveal="on"] [data-reveal]{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .65s var(--ease),transform .65s var(--ease);
}
html[data-reveal="on"] [data-reveal].is-in{
  opacity:1;
  transform:none;
}

/* ==========================================================================
   页脚
   ========================================================================== */
.site-footer{
  position:relative;
  margin-top:clamp(40px,6vw,96px);
  background:var(--ink-panel);
  border-top:1px solid var(--ink-line);
  color:var(--paper);
  overflow:hidden;
}
.site-footer::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,
    var(--lime) 0%,var(--lime) 24%,
    var(--gold) 24%,var(--gold) 36%,
    var(--coral) 36%,var(--coral) 42%,
    var(--ink-line) 42%,var(--ink-line) 100%);
}

.footer-inner{
  max-width:var(--wrap);
  margin-inline:auto;
  padding:clamp(38px,5vw,64px) var(--gutter) clamp(26px,4vw,44px);
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1.9fr) minmax(0,1.2fr);
  gap:clamp(24px,4vw,56px);
  align-items:start;
}

.footer-brand__link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--paper);
}
.footer-brand__mark{
  display:grid;
  place-items:center;
  width:40px;height:40px;
  border:1px solid var(--lime);
  background:rgba(200,245,63,.1);
  box-shadow:inset 0 0 0 3px rgba(12,46,37,.95);
  color:var(--lime);
  font-family:var(--font-display);
  font-size:18px;
  font-weight:900;
  line-height:1;
  flex:0 0 auto;
}
.footer-brand__name{
  font-family:var(--font-display);
  font-size:20px;
  font-weight:900;
  letter-spacing:.02em;
}
.footer-brand__line{
  margin:14px 0 20px;
  max-width:28ch;
  font-size:13px;
  line-height:1.8;
  color:var(--mist);
}

.footer-cols{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(126px,1fr));
  gap:clamp(16px,2.4vw,32px);
}
.footer-col__title{
  margin:0 0 14px;
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:600;
  letter-spacing:.24em;
  color:var(--gold);
  text-transform:uppercase;
}
.footer-col__list{
  display:flex;
  flex-direction:column;
  gap:9px;
}
.footer-col__list a{
  color:var(--mist);
  font-size:14px;
  text-decoration:none;
  transition:color .18s var(--ease),padding-left .18s var(--ease);
}
.footer-col__list a:hover{
  color:var(--lime);
  padding-left:4px;
}

.footer-contact__line{
  margin:0 0 8px;
  font-size:13px;
  line-height:1.7;
  color:var(--mist);
  overflow-wrap:anywhere;
}
.footer-contact__note{
  margin:14px 0 0;
  padding-left:12px;
  border-left:2px solid var(--ink-line);
  font-size:12px;
  line-height:1.8;
  color:rgba(159,182,173,.86);
}

.footer-legal{
  border-top:1px solid var(--ink-line);
  background:var(--ink);
  padding:16px var(--gutter);
}
.footer-legal__inner{
  max-width:var(--wrap);
  margin-inline:auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 24px;
}
.footer-legal__line,
.footer-legal__copy{
  margin:0;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--mist);
}
.footer-legal__copy{ color:var(--gold); }

@media (max-width:1023px){
  .footer-inner{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .footer-brand{ grid-column:1 / -1; }
  .footer-contact{ grid-column:1 / -1; }
}

@media (max-width:639px){
  .footer-inner{ grid-template-columns:minmax(0,1fr); }
  .footer-cols{ grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); }
  .footer-legal__inner{ flex-direction:column; align-items:flex-start; }
}

/* ==========================================================================
   动态偏好与打印
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  html[data-reveal="on"] [data-reveal]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .btn:hover{ transform:none; }
  .tag:hover{ transform:none; }
}

@media print{
  .rail,.topbar,.skip-link,.nav-toggle,.site-footer::before{ display:none !important; }
  body{ padding:0; background:#fff; color:#000; }
  a{ color:#000; }
}
