/* ==========================================================================
   博业体育站 · 共享样式 /assets/site.css
   01 变量  02 Reset 与中文排版  03 工具类  04 头部侧轨导航  05 页脚
   06 通用组件  07 动效与响应式
   ========================================================================== */

/* ---------- 01 变量 ---------- */
:root{
  --cedar:#1E5B4F;
  --cedar-deep:#0E3A32;
  --cedar-mist:#7FA69B;
  --clay:#C25A2B;
  --clay-deep:#A84A21;
  --clay-soft:#EBA57A;
  --night:#0D1626;
  --cyan:#2BD9C0;
  --paper:#F5EFE3;
  --paper-2:#E3D8C6;
  --paper-3:#EFE7D8;
  --ink:#12181C;
  --ink-soft:#2A3439;
  --muted:#5A666E;
  --line:#3B4A55;
  --rail-w:264px;
  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-body:"Noto Sans SC","Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --shadow-1:0 1px 0 rgba(18,24,28,.05),0 10px 24px -18px rgba(13,22,38,.5);
}

/* ---------- 02 Reset 与中文排版 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote,dl,dd,summary{margin:0}
ul,ol{list-style:none;padding:0}
button{font:inherit;color:inherit;background:none;border:0}
a{color:inherit;text-decoration:none}
img,svg,video{display:block;max-width:100%}
table{border-collapse:collapse;width:100%}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  font-weight:400;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:900;line-height:1.22;letter-spacing:-.01em}
h1{font-size:clamp(2.5rem,6vw,5rem);line-height:1.02}
h2{font-size:clamp(1.5rem,3vw,2.1rem)}
h3{font-size:1.18rem}
p{font-weight:400}
strong,b{font-weight:700}
::selection{background:var(--clay-soft);color:var(--ink)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:2px}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}

/* ---------- 03 工具类 ---------- */
.wrap{width:100%;max-width:1180px;margin:0 auto;padding-left:20px;padding-right:20px}
.wrap--narrow{max-width:860px}
.section{padding:52px 0}
.section--night{background:var(--night);color:var(--paper)}
.section--cedar{background:var(--cedar);color:var(--paper)}
.section--paper2{background:var(--paper-2)}
.prose{max-width:68ch}
.prose p + p{margin-top:14px}
.prose ul,.prose ol{margin-top:12px;padding-left:1.1em}
.prose li{list-style:disc;margin-top:6px}
.u-num{font-family:var(--font-mono);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.u-label{display:inline-block;font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cedar)}
.u-dim{color:var(--muted);font-size:.88rem}
.tag{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid var(--line);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;color:var(--ink-soft)}
.tag--clay{border-color:var(--clay);color:var(--clay)}
.tag--cyan{border-color:var(--cyan);color:var(--cedar-deep)}
.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin-bottom:18px}
.section-head__title{font-size:clamp(1.4rem,2.4vw,2rem)}
.section-head__meta{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--muted)}

/* 按钮 */
.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid var(--line);background:transparent;color:var(--ink);font-weight:700;font-size:.92rem;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--clay);border-color:var(--clay);color:#fff}
.btn--primary:hover{background:var(--clay-deep);border-color:var(--clay-deep)}
.btn--ghost{border-color:var(--cedar);color:var(--cedar)}
.btn--ghost:hover{background:var(--cedar);color:var(--paper)}
.btn--onDark{border-color:var(--cedar-mist);color:var(--paper)}
.btn--onDark:hover{background:var(--cedar);border-color:var(--cedar)}

/* 面包屑 */
.crumbs{padding-top:18px}
.crumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--muted)}
.crumbs__item{display:flex;align-items:center;gap:8px}
.crumbs__item + .crumbs__item::before{content:"/";color:var(--cedar-mist)}
.crumbs__link{color:var(--cedar);border-bottom:1px solid transparent}
.crumbs__link:hover{border-bottom-color:var(--cedar)}
.crumbs__current{color:var(--ink)}

/* ---------- 04 头部侧轨导航 ---------- */
.skip-link{position:absolute;left:12px;top:-60px;z-index:120;padding:10px 14px;background:var(--cyan);color:var(--night);font-family:var(--font-mono);font-size:.74rem;font-weight:700;letter-spacing:.1em;transition:top .2s ease}
.skip-link:focus{top:12px}

.site-rail{
  position:sticky;top:0;z-index:60;
  color:var(--paper);
  background-color:var(--night);
  background-image:
    linear-gradient(rgba(127,166,155,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(127,166,155,.10) 1px,transparent 1px);
  background-size:46px 46px;
  border-bottom:1px solid var(--line);
}
.rail__bar{position:relative;z-index:75;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px}
.rail__brand{display:flex;align-items:center;gap:11px;min-width:0}
.rail__mark{position:relative;flex:0 0 28px;width:28px;height:28px;background:var(--cedar);border:1px solid rgba(43,217,192,.55);overflow:hidden}
.rail__mark::before,
.rail__mark::after{content:"";position:absolute;left:-25%;right:-25%;height:1px;transform:rotate(-24deg)}
.rail__mark::before{top:48%;background:var(--cyan)}
.rail__mark::after{top:66%;background:var(--clay)}
.rail__brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.rail__name{font-family:var(--font-display);font-weight:900;font-size:1.05rem;letter-spacing:.02em;color:var(--paper)}
.rail__sig{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;color:var(--cedar-mist);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.rail__toggle{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid rgba(127,166,155,.45);background:rgba(13,22,38,.5);color:var(--paper);font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.14em;cursor:pointer;transition:border-color .2s ease,color .2s ease}
.rail__toggle:hover{border-color:var(--cyan);color:var(--cyan)}
.rail__toggle-lines{position:relative;display:block;width:16px;height:2px;background:currentColor}
.rail__toggle-lines::before,
.rail__toggle-lines::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;transition:transform .25s ease}
.rail__toggle-lines::before{top:-5px}
.rail__toggle-lines::after{top:5px}
.site-rail[data-open] .rail__toggle-lines{background:transparent}
.site-rail[data-open] .rail__toggle-lines::before{transform:translateY(5px) rotate(45deg)}
.site-rail[data-open] .rail__toggle-lines::after{transform:translateY(-5px) rotate(-45deg)}

.rail__panel{
  position:fixed;top:0;left:0;bottom:0;z-index:70;
  display:flex;flex-direction:column;gap:18px;
  width:min(84vw,320px);
  padding:76px 16px 26px;
  overflow-y:auto;
  background:var(--night);
  border-right:1px solid var(--line);
  transform:translateX(-102%);
  transition:transform .34s cubic-bezier(.4,0,.2,1);
}
.site-rail[data-open] .rail__panel{transform:none}
.rail__scrim{
  position:fixed;inset:0;z-index:65;
  background:rgba(13,22,38,.62);
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
}
.site-rail[data-open] .rail__scrim{opacity:1;visibility:visible}

.rail__status{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid rgba(127,166,155,.35);background:rgba(14,58,50,.55)}
.status-line{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;color:rgba(245,239,227,.84)}
.status-line--dim{color:var(--cedar-mist)}
.status-dot{flex:0 0 7px;width:7px;height:7px;background:var(--cyan);box-shadow:0 0 0 3px rgba(43,217,192,.18);animation:by-pulse 2.6s ease-in-out infinite}

.rail__nav{min-width:0}
.nav-list{display:flex;flex-direction:column;gap:2px}
.nav-item{display:block;min-width:0}
.nav-link{
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:12px;
  padding:10px 12px;border-left:2px solid transparent;
  color:rgba(245,239,227,.74);
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.nav-link:hover{color:var(--paper);background:rgba(127,166,155,.12)}
.nav-link__index{font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.08em;color:var(--cedar-mist)}
.nav-link__label{font-weight:700;font-size:.94rem;letter-spacing:.01em}
.nav-link[aria-current="page"]{
  color:#fff;
  background:linear-gradient(90deg,rgba(43,217,192,.18),rgba(43,217,192,0));
  border-left-color:var(--cyan);
}
.nav-link[aria-current="page"] .nav-link__index{color:var(--cyan)}

.season-mini{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.season-mini__label{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;color:var(--cedar-mist);margin-right:2px}
.season-mini__item{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;padding:3px 8px;border:1px solid rgba(127,166,155,.35);color:var(--cedar-mist)}
.season-mini__item.is-current{background:var(--cyan);border-color:var(--cyan);color:var(--night);font-weight:700}

.rail__cta{
  display:inline-flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding:13px 14px;
  background:var(--clay);border:1px solid rgba(18,24,28,.22);color:#fff;
  font-weight:700;font-size:.92rem;
  transition:background-color .2s ease,transform .2s ease;
}
.rail__cta::after{content:"→";font-family:var(--font-mono)}
.rail__cta:hover{background:var(--clay-deep)}
.rail__cta:hover{transform:translateY(-1px)}

/* ---------- 05 页脚 ---------- */
.site-foot{background:var(--paper);color:var(--ink);border-top:1px solid var(--line)}
.foot__note{background:var(--night);color:var(--paper);border-bottom:1px solid var(--line)}
.foot__note .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-top:14px;padding-bottom:14px}
.foot__note-text{font-size:.86rem;color:rgba(245,239,227,.86)}
.foot__note-meta{font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.14em;color:var(--cyan)}

.foot__body{display:grid;grid-template-columns:1fr;gap:30px;padding:40px 0 32px}
.foot__lead{min-width:0}
.foot__brand{display:block;font-family:var(--font-display);font-weight:900;font-size:1.4rem;letter-spacing:.04em;color:var(--cedar-deep)}
.foot__tagline{margin-top:6px;font-size:.9rem;color:var(--ink-soft)}
.foot__since{margin-top:12px;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;color:var(--clay)}
.foot__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.foot__col{min-width:0}
.foot__col-title{padding-bottom:8px;border-bottom:1px solid var(--paper-2);font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--cedar)}
.foot__list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.foot__link{font-size:.9rem;color:var(--ink-soft);border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.foot__link:hover{color:var(--clay);border-bottom-color:var(--clay)}

.foot__contact{border-top:1px solid var(--paper-2);padding:22px 0}
.foot__contact .wrap{display:grid;grid-template-columns:1fr;gap:16px}
.foot__contact-item{display:flex;flex-direction:column;gap:3px;padding-left:12px;border-left:2px solid var(--paper-2)}
.foot__contact-label{font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.14em;color:var(--cedar-mist)}
.foot__contact-value{font-size:.88rem;color:var(--ink-soft);word-break:break-word}
.foot__contact-value--num{font-family:var(--font-mono);font-weight:700;letter-spacing:.02em;color:var(--ink)}
.foot__contact-note{font-size:.8rem;color:var(--muted)}

.foot__bottom{background:var(--paper-2);border-top:1px solid var(--line)}
.foot__bottom .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 20px;padding-top:14px;padding-bottom:16px}
.foot__legal{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--ink-soft)}
.foot__legal--icp{color:var(--cedar)}

/* ---------- 06 通用组件 ---------- */
/* 堆叠面板 */
.panel{position:relative;padding:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.panel + .panel{margin-top:-1px}
.panel--night{background:var(--night);color:var(--paper);border-color:#25313D}
.panel--night .panel__head{border-bottom-color:rgba(127,166,155,.3)}
.panel--night .panel__meta{color:var(--cedar-mist)}
.panel--cedar{background:var(--cedar);color:var(--paper);border-color:var(--cedar-deep)}
.panel--cedar .panel__head{border-bottom-color:rgba(245,239,227,.28)}
.panel--cedar .panel__kicker{color:var(--clay-soft)}
.panel__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--paper-2)}
.panel__kicker{font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.16em;color:var(--clay)}
.panel__title{font-family:var(--font-display);font-weight:900;font-size:1.15rem;letter-spacing:-.01em}
.panel__meta{margin-left:auto;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;color:var(--muted)}

/* 非对称分栏 + 赛季时间轴 */
.split{display:grid;grid-template-columns:1fr;gap:24px}
.split__main,.split__aside{min-width:0}
.season-rail{padding:16px;background:var(--paper-3);border:1px solid var(--line)}
.season-rail__title{display:block;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.16em;color:var(--cedar)}
.season-rail__list{display:flex;flex-direction:column;gap:2px;margin-top:12px}
.season-rail__item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:10px;padding:9px 10px;border-left:2px solid transparent;color:#4A555C;font-size:.9rem;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.season-rail__item:hover{background:rgba(30,91,79,.07);color:var(--ink)}
.season-rail__year{font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--cedar)}
.season-rail__item.is-current{background:rgba(30,91,79,.11);border-left-color:var(--clay);color:var(--ink);font-weight:700}
.season-rail__item.is-current .season-rail__year{animation:by-node-pulse 2.4s ease-in-out 2;box-shadow:0 0 0 0 rgba(43,217,192,.55)}

/* 高密度索引 */
.index-list{border-top:1px solid var(--line)}
.index-list__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:11px 4px;border-bottom:1px solid var(--paper-2);transition:background-color .2s ease}
.index-list__row:hover{background:var(--paper-3)}
.index-list__no{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--clay)}
.index-list__label{font-weight:700;font-size:.94rem}
.index-list__meta{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);text-align:right}

/* 筛选 chips */
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.chip:hover{border-color:var(--cedar);color:var(--cedar)}
.chip[aria-pressed="true"],.chip.is-active{background:var(--cedar);border-color:var(--cedar);color:var(--paper)}

/* 标签页 */
.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line)}
.tab{padding:9px 14px;border-bottom:2px solid transparent;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:#4A555C;cursor:pointer;transition:color .2s ease,border-color .2s ease}
.tab:hover{color:var(--cedar)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--clay);font-weight:700}
.tabpanel{padding-top:16px}
.tabpanel[hidden]{display:none}

/* 折叠面板 */
.fold{background:var(--paper-3);border:1px solid var(--line)}
.fold + .fold{margin-top:-1px}
.fold__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;font-weight:700;cursor:pointer;list-style:none}
.fold__head::-webkit-details-marker{display:none}
.fold__head::after{content:"+";font-family:var(--font-mono);color:var(--clay)}
.fold[open] > .fold__head{background:var(--paper)}
.fold[open] .fold__head::after{content:"–"}
.fold__body{padding:0 16px 16px;font-size:.94rem;color:var(--ink-soft)}

/* 数据块 */
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.stat{background:var(--paper);padding:14px 16px}
.stat__value{display:block;font-family:var(--font-mono);font-weight:700;font-size:1.7rem;line-height:1.1;color:var(--clay)}
.stat__label{display:block;margin-top:6px;font-size:.8rem;color:#4A555C}

/* 比分锚点 */
.score-node{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}
.score-node__value{font-family:var(--font-mono);font-weight:700;font-size:clamp(2.5rem,6vw,5rem);line-height:.95;letter-spacing:-.02em;color:var(--clay)}
.score-node__vs{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.1em;color:var(--cedar-mist)}
.score-node__team{font-weight:700;font-size:.95rem}

/* 图片容器 */
.media-frame{position:relative;overflow:hidden;background:var(--night);border:1px solid var(--line)}
.media-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.06)}
.media-frame--16x9{aspect-ratio:16/9}
.media-frame--4x3{aspect-ratio:4/3}
.media-frame--1x1{aspect-ratio:1/1}
.media-frame--wide{aspect-ratio:21/9}
.media-frame__grid{position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:linear-gradient(rgba(43,217,192,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(43,217,192,.16) 1px,transparent 1px);background-size:32px 32px}
.media-frame__caption{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:linear-gradient(to top,rgba(13,22,38,.86),rgba(13,22,38,0));color:var(--paper);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em}

/* ---------- 07 动效与响应式 ---------- */
[data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .4s ease,transform .4s ease}
[data-reveal].is-visible{opacity:1;transform:none}

@keyframes by-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes by-node-pulse{0%,100%{box-shadow:0 0 0 0 rgba(43,217,192,.55)}50%{box-shadow:0 0 0 5px rgba(43,217,192,0)}}

@media (min-width:720px){
  .wrap{padding-left:32px;padding-right:32px}
  .foot__cols{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot__body{grid-template-columns:1fr;gap:34px}
  .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .foot__contact .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .section{padding:64px 0}
}

@media (min-width:1024px){
  body{padding-left:var(--rail-w)}
  .site-rail{
    position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);
    display:flex;flex-direction:column;
    border-bottom:0;border-right:1px solid var(--line);
  }
  .rail__bar{padding:24px 20px 16px}
  .rail__toggle{display:none}
  .rail__panel{
    position:static;transform:none;width:auto;flex:1 1 auto;
    padding:0 20px 22px;overflow:visible;background:transparent;border-right:0;
    transition:none;
  }
  .rail__scrim{display:none}
  .rail__name{font-size:1.15rem}
  .section{padding:76px 0}
  .split{grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:32px}
  .season-rail{position:sticky;top:24px}
  .foot__body{grid-template-columns:minmax(0,1.15fr) minmax(0,2.6fr);gap:44px;padding:52px 0 38px}
  .foot__contact .wrap{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
}

@media (min-width:1280px){
  :root{--rail-w:288px}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  [data-reveal]{opacity:1;transform:none}
  .btn:hover,.rail__cta:hover{transform:none}
  .status-dot{animation:none;opacity:1}
  .season-rail__item.is-current .season-rail__year{animation:none;box-shadow:0 0 0 2px rgba(43,217,192,.55)}
}
