/* =========================================================
   买球网 · /assets/site.css · 共享外壳样式
   蓝图网格 / 球场绿锚点 / 荧光黄路径 / 锐利直角
   ========================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  --court-900:#0B3D2E;
  --court-600:#1F7A4D;
  --court-100:#DDF2E4;
  --fluo:#D7FF3E;
  --net:#F7F9F6;
  --sky:#4FA8E0;
  --ink:#0A0C0A;
  --graphite:#2B2F2C;
  --line:#C9D1CB;
  --alert:#FF6B4A;

  --shell-w:1240px;
  --pad:24px;
  --gap:24px;

  --mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;

  --dur:200ms;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;}
h1,h2,h3,h4,h5,p,figure,blockquote{margin:0;}
ul,ol,menu{margin:0;padding:0;list-style:none;}
img,svg,picture,video{display:block;max-width:100%;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
a{color:inherit;}
table{border-collapse:collapse;}
[id]{scroll-margin-top:110px;}

/* ---------- 3. Base / 中文排版 ---------- */
body{
  font-family:var(--sans);
  font-size:17px;
  line-height:1.7;
  color:var(--ink);
  background-color:var(--net);
  background-image:
    linear-gradient(to right, rgba(11,61,46,.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(11,61,46,.045) 1px, transparent 1px);
  background-size:48px 48px;
  background-position:0 0;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-weight:900;letter-spacing:-.02em;line-height:1.15;color:var(--ink);}
h1{font-size:clamp(40px,6vw,72px);}
h2{font-size:clamp(28px,3.4vw,40px);}
h3{font-size:clamp(20px,2vw,24px);line-height:1.3;}
h4{font-size:18px;}
strong,b{font-weight:700;}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--sky);
  outline-offset:2px;
  border-radius:2px;
}

.mono{font-family:var(--mono);letter-spacing:.04em;}
.muted{color:var(--graphite);}
.lead{font-size:20px;line-height:1.6;color:var(--graphite);}
.prose{max-width:68ch;font-size:17px;line-height:1.75;color:var(--graphite);}
.prose p + p{margin-top:16px;}
.prose a{color:var(--court-600);text-decoration:underline;text-underline-offset:3px;}
.prose a:hover{color:var(--court-900);background:var(--fluo);}
.index-num{
  display:inline-block;
  font-family:var(--mono);
  font-size:clamp(28px,3vw,42px);
  font-weight:700;
  line-height:1;
  letter-spacing:-.01em;
  color:var(--court-600);
}
.index-num--fluo{color:var(--fluo);}
.index-num--ink{color:var(--ink);}

/* ---------- 4. 布局 ---------- */
.shell{
  width:100%;
  max-width:calc(var(--shell-w) + var(--pad) * 2);
  margin-inline:auto;
  padding-inline:var(--pad);
}
.section{padding-block:72px;}
.section--tight{padding-block:40px;}
.section--green{background:var(--court-100);}
.section--ink{background:var(--court-900);color:var(--net);}
.section--ink h2,.section--ink h3{color:var(--net);}
.section-head{margin-bottom:32px;border-top:1px solid var(--line);padding-top:16px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--court-600);
}
.eyebrow::before{content:"";width:14px;height:2px;background:var(--fluo);display:inline-block;}
.sec-title{margin-top:10px;}
.rule{height:1px;background:var(--line);border:0;margin:32px 0;}
.rule--strong{background:var(--court-900);}

.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap);}
.span-3{grid-column:span 3;}
.span-4{grid-column:span 4;}
.span-6{grid-column:span 6;}
.span-8{grid-column:span 8;}
.span-12{grid-column:span 12;}

/* ---------- 5. 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:46px;padding:10px 22px;
  border:1px solid transparent;border-radius:2px;
  font-size:15px;font-weight:700;text-decoration:none;letter-spacing:.01em;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),
             border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.btn--primary{background:var(--court-600);color:var(--net);}
.btn--primary:hover{background:var(--court-900);color:var(--fluo);}
.btn--ghost{background:transparent;color:var(--court-900);border-color:var(--court-900);}
.btn--ghost:hover{background:var(--court-900);color:var(--net);}
.btn--fluo{background:var(--fluo);color:var(--court-900);}
.btn--fluo:hover{background:var(--net);border-color:var(--court-900);}
.btn:active{transform:translateY(1px);}

/* ---------- 6. 面包屑 ---------- */
.breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;
  color:var(--graphite);padding-block:16px;
}
.breadcrumb-item{display:inline-flex;align-items:center;gap:8px;}
.breadcrumb-link{text-decoration:none;color:var(--court-600);border-bottom:1px solid transparent;}
.breadcrumb-link:hover{border-bottom-color:var(--fluo);}
.breadcrumb-sep{color:var(--line);}
.breadcrumb [aria-current="page"]{color:var(--ink);}

/* ---------- 7. 卡片与标签 ---------- */
.card{
  position:relative;
  display:flex;flex-direction:column;gap:10px;
  padding:24px;
  background:var(--net);
  border:1px solid var(--line);
  border-radius:2px;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.card::before{
  content:"";position:absolute;left:-1px;top:-1px;width:22px;height:22px;
  border-left:2px solid var(--line);border-top:2px solid var(--line);
  transition:border-color var(--dur) var(--ease);
}
.card:hover{border-color:var(--court-600);box-shadow:0 10px 28px rgba(11,61,46,.08);}
.card:hover::before{border-color:var(--fluo);}
.card-idx{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--court-600);}
.card:hover .card-idx{color:var(--court-900);background:var(--fluo);}
.card-title{font-size:20px;font-weight:900;letter-spacing:-.01em;}
.card-text{font-size:15px;color:var(--graphite);}
.card--green{background:var(--court-900);border-color:var(--court-900);color:var(--court-100);}
.card--green .card-title{color:var(--net);}
.card--green .card-idx{color:var(--fluo);}
.card--green .card-text{color:rgba(247,249,246,.78);}

.tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border:1px solid var(--line);border-radius:2px;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;
  color:var(--court-900);background:var(--net);
}
.tag--fluo{background:var(--fluo);border-color:var(--fluo);color:var(--court-900);}
.tag--sky{background:transparent;border-color:var(--sky);color:var(--sky);}

/* ---------- 8. 媒体容器 ---------- */
.media-frame{
  position:relative;display:block;overflow:hidden;
  background:var(--court-100);
  border:1px solid var(--line);
  border-radius:2px;
}
.media-frame > img,
.media-frame > picture > img{
  width:100%;height:100%;object-fit:cover;
}
.media-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(11,61,46,.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(11,61,46,.07) 1px, transparent 1px);
  background-size:32px 32px;
}
.media-frame--16x10{aspect-ratio:16/10;}
.media-frame--4x3{aspect-ratio:4/3;}
.media-frame--1x1{aspect-ratio:1/1;}
.media-frame--21x9{aspect-ratio:21/9;}
.media-frame--tall{aspect-ratio:3/4;}
.media-frame__tag{
  position:absolute;left:0;bottom:0;z-index:2;
  padding:6px 12px;
  background:var(--court-900);color:var(--fluo);
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;
}

/* ---------- 9. 跳过链接 ---------- */
.skip-link{
  position:fixed;top:10px;left:10px;z-index:999;
  transform:translateY(-180%);
  padding:10px 18px;
  background:var(--fluo);color:var(--court-900);
  border:1px solid var(--court-900);
  font-weight:700;font-size:15px;text-decoration:none;
  transition:transform var(--dur) var(--ease);
}
.skip-link:focus{transform:translateY(0);}

/* ---------- 10. 滚动进度 ---------- */
.progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:90;
  background:rgba(11,61,46,.10);
  pointer-events:none;
}
.progress-fill{
  display:block;width:0;height:100%;
  background:var(--fluo);
  transition:width 80ms linear;
}

/* ---------- 11. 头部 ---------- */
.site-head{
  position:sticky;top:0;z-index:60;
  padding:6px var(--pad) 10px;
  background:linear-gradient(to bottom,
    rgba(247,249,246,.97) 0%,
    rgba(247,249,246,.90) 58%,
    rgba(247,249,246,0) 100%);
}
.head-ruler{
  max-width:var(--shell-w);
  height:7px;
  margin:0 auto 8px;
  border-top:1px solid var(--line);
  background-image:repeating-linear-gradient(to right,var(--line) 0 1px,transparent 1px 24px);
}
.head-bar{
  position:relative;
  max-width:var(--shell-w);
  margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}

/* 品牌 */
.brand{
  display:inline-flex;align-items:center;gap:12px;
  text-decoration:none;flex:none;
}
.brand-glyph{
  position:relative;width:34px;height:34px;flex:none;
  display:block;border:1px solid var(--court-900);
  background:var(--court-100);
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.brand-glyph i{
  position:absolute;left:0;right:0;height:1px;background:var(--line);
}
.brand-glyph i:nth-child(1){top:11px;}
.brand-glyph i:nth-child(2){top:22px;}
.brand-glyph::before{
  content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;
  background:var(--court-600);
}
.brand-glyph::after{
  content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;
  transform:translate(-50%,-50%);
  background:var(--fluo);border:1px solid var(--court-900);
  transition:background var(--dur) var(--ease);
}
.brand:hover .brand-glyph{background:var(--court-900);border-color:var(--court-900);}
.brand:hover .brand-glyph::after{background:var(--net);}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.brand-name{font-size:19px;font-weight:900;letter-spacing:-.02em;color:var(--ink);}
.brand-sub{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  color:var(--court-600);text-transform:uppercase;
}

/* 导航胶囊 */
.nav-capsule{
  display:flex;align-items:center;gap:6px;
  padding:6px;
  border:1px solid var(--line);border-radius:999px;
  background:rgba(247,249,246,.94);
  backdrop-filter:blur(8px);
  box-shadow:0 1px 0 rgba(11,61,46,.05),0 8px 24px rgba(11,61,46,.05);
}
.nav-list{display:flex;align-items:center;gap:2px;}
.nav-item{display:list-item;}
.nav-link{
  position:relative;
  display:inline-flex;align-items:baseline;gap:6px;
  padding:9px 12px;border-radius:999px;
  font-size:15px;font-weight:500;color:var(--graphite);text-decoration:none;
  white-space:nowrap;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.nav-idx{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
  color:var(--court-600);
  transition:color var(--dur) var(--ease);
}
.nav-link::after{
  content:"";position:absolute;left:12px;right:12px;bottom:5px;height:2px;
  background:var(--fluo);
  transform:scaleX(0);transform-origin:left center;
  transition:transform var(--dur) var(--ease);
}
.nav-link:hover{color:var(--court-900);background:var(--court-100);}
.nav-link:hover::after{transform:scaleX(1);}
.nav-link[aria-current="page"]{background:var(--court-900);color:var(--net);}
.nav-link[aria-current="page"] .nav-idx{color:var(--fluo);}
.nav-link[aria-current="page"]::after{display:none;}
.nav-cta{
  margin-left:6px;
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 18px;border-radius:999px;
  background:var(--court-600);color:var(--net);
  font-size:15px;font-weight:700;text-decoration:none;white-space:nowrap;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.nav-cta:hover{background:var(--fluo);color:var(--court-900);}

/* 菜单按钮 */
.nav-toggle{
  display:none;align-items:center;gap:10px;
  min-height:44px;padding:0 14px;
  border:1px solid var(--court-900);border-radius:999px;background:var(--net);
  color:var(--court-900);font-size:14px;font-weight:700;
}
.nav-toggle-bars{display:grid;gap:4px;width:18px;}
.nav-toggle-bars i{
  display:block;height:2px;background:var(--court-900);
  transition:transform var(--dur) var(--ease),background var(--dur) var(--ease);
}
.site-head[data-open] .nav-toggle{background:var(--court-900);color:var(--net);}
.site-head[data-open] .nav-toggle-bars i{background:var(--fluo);}
.site-head[data-open] .nav-toggle-bars i:first-child{transform:translateY(3px) rotate(45deg);}
.site-head[data-open] .nav-toggle-bars i:last-child{transform:translateY(-3px) rotate(-45deg);}

/* ---------- 12. 页脚 ---------- */
.site-foot{
  position:relative;overflow:hidden;
  margin-top:96px;
  padding-block:0 24px;
  background:var(--court-900);
  color:var(--court-100);
  border-top:3px solid var(--fluo);
}
.site-foot::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(215,255,62,.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(215,255,62,.07) 1px, transparent 1px);
  background-size:48px 48px;
}
.foot-grid{
  position:relative;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.3fr;
  gap:40px 32px;
  padding-block:64px 40px;
}
.foot-col{min-width:0;}
.foot-brand{display:flex;flex-direction:column;gap:14px;}
.foot-mark{
  display:inline-flex;align-items:center;gap:8px;
  font-size:22px;font-weight:900;letter-spacing:-.02em;color:var(--net);
}
.foot-mark-dot{width:10px;height:10px;background:var(--fluo);display:inline-block;}
.foot-desc{font-size:15px;line-height:1.7;color:rgba(221,242,228,.82);max-width:32ch;}
.foot-coord{
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;
  color:var(--fluo);text-transform:uppercase;
}
.foot-title{
  display:flex;align-items:center;gap:8px;
  margin-bottom:16px;
  font-size:15px;font-weight:900;letter-spacing:.02em;color:var(--net);
  padding-bottom:10px;border-bottom:1px solid rgba(215,255,62,.28);
}
.foot-idx{font-family:var(--mono);font-size:11px;color:var(--fluo);letter-spacing:.1em;}
.foot-list{display:flex;flex-direction:column;gap:2px;}
.foot-link{
  display:inline-block;padding:6px 0;
  font-size:15px;color:rgba(221,242,228,.88);text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),padding-left var(--dur) var(--ease);
}
.foot-link:hover{color:var(--fluo);border-bottom-color:var(--fluo);padding-left:6px;}
.foot-meta{display:flex;flex-direction:column;gap:10px;font-size:14px;color:rgba(221,242,228,.72);}
.foot-meta-strong{
  display:block;
  font-family:var(--mono);font-size:13px;letter-spacing:.02em;
  color:var(--net);word-break:break-all;
}
.foot-base{
  position:relative;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  padding-top:20px;
  border-top:1px solid rgba(247,249,246,.16);
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;
  color:rgba(221,242,228,.7);
}
.foot-copy,.foot-icp{margin:0;}

/* ---------- 13. 移动端底部固定栏 ---------- */
.dock{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  grid-template-columns:repeat(4,1fr);
  background:var(--court-900);
  border-top:1px solid rgba(215,255,62,.4);
  padding-bottom:env(safe-area-inset-bottom);
}
.dock-link{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:9px 4px 11px;
  font-size:12px;font-weight:500;color:rgba(221,242,228,.85);text-decoration:none;
  border-top:2px solid transparent;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.dock-idx{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--fluo);}
.dock-link:hover{color:var(--net);background:rgba(215,255,62,.10);}
.dock-link[aria-current="page"]{
  color:var(--net);background:rgba(215,255,62,.14);border-top-color:var(--fluo);
}

/* ---------- 14. 显现 ---------- */
.has-js [data-reveal]{
  opacity:0;transform:translateY(14px);
  transition:opacity 420ms var(--ease),transform 420ms var(--ease);
}
.has-js [data-reveal].is-in{opacity:1;transform:none;}

/* ---------- 15. 响应式 ---------- */
@media (max-width:1080px){
  .grid-12{grid-template-columns:repeat(6,minmax(0,1fr));}
  .span-3,.span-4{grid-column:span 3;}
  .span-8{grid-column:span 6;}
}
@media (max-width:1023px){
  :root{--pad:20px;}
  .site-head{padding-inline:var(--pad);}
  .head-ruler{display:none;}
  .nav-toggle{display:inline-flex;}
  .nav-capsule{
    position:absolute;top:calc(100% + 10px);left:0;right:0;
    display:none;flex-direction:column;align-items:stretch;gap:2px;
    padding:10px;border-radius:4px;
    background:var(--net);
    box-shadow:0 20px 44px rgba(10,12,10,.18);
  }
  .site-head[data-open] .nav-capsule{display:flex;}
  .nav-list{flex-direction:column;align-items:stretch;width:100%;gap:0;}
  .nav-item{width:100%;}
  .nav-link{
    width:100%;justify-content:flex-start;
    border-radius:2px;padding:13px 10px;
    border-bottom:1px solid var(--line);
  }
  .nav-link::after{display:none;}
  .nav-link[aria-current="page"]{background:var(--court-900);}
  .nav-cta{margin:10px 0 0;border-radius:2px;padding:12px 18px;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px 24px;padding-block:48px 32px;}
  .section{padding-block:56px;}
}
@media (max-width:767px){
  :root{--pad:18px;}
  body{font-size:16px;padding-bottom:66px;}
  .dock{display:grid;}
  .site-foot{margin-top:64px;padding-bottom:16px;}
  .foot-grid{grid-template-columns:1fr;gap:28px;padding-block:40px 24px;}
  .foot-base{flex-direction:column;align-items:flex-start;gap:6px;}
  .grid-12{grid-template-columns:1fr;}
  .span-3,.span-4,.span-6,.span-8,.span-12{grid-column:span 1;}
  .section{padding-block:44px;}
  .lead{font-size:18px;}
}
@media (max-width:479px){
  .brand-sub{display:none;}
  .btn{width:100%;}
}

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