/* ===================================================
   云体育 · 共享样式 /assets/site.css
   暗底战术板 · 非对称编辑部骨架 · 侧边轨道导航
   =================================================== */

:root{
  --bg:#0E1721;
  --panel:#152332;
  --panel-2:#101C28;
  --line:#24384A;
  --red:#E5343F;
  --red-deep:#A3142B;
  --amber:#F2B31C;
  --teal:#2FD2B8;
  --ink:#F2F6FA;
  --ink-dim:#98A8B8;
  --white:#FFFFFF;
  --rail-w:232px;
  --r:2px;
  --gap:24px;
  --ease:140ms cubic-bezier(.2,.7,.3,1);
  --font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;min-height:100vh;display:flex;flex-direction:column;
  background-color:var(--bg);
  background-image:
    radial-gradient(880px 520px at 84% -6%,rgba(229,52,63,.15),transparent 68%),
    radial-gradient(760px 460px at 2% 104%,rgba(47,210,184,.10),transparent 72%),
    linear-gradient(180deg,rgba(21,35,50,.7),rgba(14,23,33,0) 340px);
  background-attachment:fixed;
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;font-weight:400;line-height:1.55;letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}
img,svg,picture{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
[hidden]{display:none !important}

/* ---------- 字号体系 ---------- */
h1,h2,h3,h4{font-weight:700;letter-spacing:-.01em;color:var(--white)}
.h-display{font-size:clamp(34px,5.6vw,84px);line-height:1.03;font-weight:900;letter-spacing:-.02em;color:var(--white)}
h1,.h1{font-size:clamp(30px,4.2vw,56px);line-height:1.08;font-weight:900;letter-spacing:-.02em;color:var(--white)}
h2,.h2{font-size:clamp(24px,2.6vw,34px);line-height:1.25;color:var(--white)}
h3,.h3{font-size:19px;line-height:1.35}
h4,.h4{font-size:16px;line-height:1.4}
.prose p{max-width:42ch;line-height:1.62;color:#DCE4EE}
.prose p+p{margin-top:12px}
.eyebrow{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase}
.mono,time,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:0}
.num--strong{color:var(--white);font-weight:700}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 焦点与跳转 ---------- */
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:2px}
.skip-link{position:fixed;top:10px;left:10px;z-index:300;padding:10px 16px;background:var(--red);color:#fff;font-size:14px;font-weight:700;border-radius:var(--r);transform:translateY(-200%);transition:transform var(--ease)}
.skip-link:focus,.skip-link:focus-visible{transform:none}

/* ---------- 布局骨架 ---------- */
.container{width:100%;max-width:1320px;margin-inline:auto;padding-inline:18px}
#main-content{display:block;flex:1 0 auto;scroll-margin-top:76px}
.section{padding-block:44px}
.section--tight{padding-block:28px}
.section__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:24px}
.section__title{font-size:clamp(20px,2.2vw,28px);font-weight:900;letter-spacing:-.01em;color:var(--white)}
.section__note{font-size:12.5px;color:var(--ink-dim)}
.grid{display:grid;gap:var(--gap)}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(238px,1fr))}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 18px;border:1px solid var(--line);border-radius:var(--r);
  background:transparent;color:var(--ink);font-size:14px;font-weight:700;cursor:pointer;
  transition:border-color var(--ease),color var(--ease),background-color var(--ease),transform var(--ease);
}
.btn:hover{border-color:var(--red);color:var(--white);transform:translateY(-2px)}
.btn--primary{background:var(--red);border-color:var(--red);color:#fff}
.btn--primary:hover{background:#F04A54;border-color:#F04A54}
.btn--ghost{color:var(--ink-dim)}
.btn--ghost:hover{color:var(--white)}
.btn--sm{padding:7px 12px;font-size:12.5px}

/* ---------- 卡片 / 面板 ---------- */
.card{
  position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:20px;transition:border-color var(--ease),transform var(--ease),box-shadow var(--ease);
}
.card:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:0 14px 30px -24px #000}
.card--accent{border-left:3px solid var(--red)}

/* ---------- 标签 ---------- */
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;font-size:12px;letter-spacing:.04em;color:var(--ink-dim);border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.02)}
.tag--amber{border-color:rgba(242,179,28,.5);color:var(--amber)}
.tag--red{border-color:rgba(229,52,63,.5);color:var(--red)}
.tag--teal{border-color:rgba(47,210,184,.45);color:var(--teal)}

/* ---------- 面包屑 ---------- */
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;font-size:12px;letter-spacing:.04em;color:var(--ink-dim)}
.breadcrumb li{display:inline-flex;align-items:center}
.breadcrumb li+li::before{content:"/";margin:0 8px;color:var(--line)}
.breadcrumb a{color:var(--ink-dim);border-bottom:1px solid transparent;transition:color var(--ease),border-color var(--ease)}
.breadcrumb a:hover{color:var(--white);border-bottom-color:var(--red)}

/* ---------- 横向主题带 ---------- */
.band{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;
  min-height:96px;padding:18px 22px;
  background:linear-gradient(90deg,rgba(229,52,63,.13),rgba(21,35,50,.92) 46%);
  border:1px solid var(--line);border-left:3px solid var(--red);border-radius:var(--r);
}
.band__index{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;color:var(--amber)}
.band__title{font-size:17px;font-weight:700;color:var(--white)}
.band__text{font-size:13px;color:var(--ink-dim);max-width:52ch;line-height:1.6}

/* ---------- 纵向列表 ---------- */
.list-rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.list-rows__item{
  display:grid;grid-template-columns:auto 1fr auto;gap:8px 16px;align-items:center;
  min-height:88px;padding:16px 6px;border-bottom:1px solid var(--line);
  transition:background-color var(--ease),border-color var(--ease);
}
.list-rows__item:hover{background:rgba(255,255,255,.025);border-bottom-color:var(--red)}

/* ---------- 图片容器基础（页面阶段放图） ---------- */
.media-frame{
  position:relative;display:block;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);
  background:
    linear-gradient(135deg,rgba(47,210,184,.10),rgba(229,52,63,.11) 62%,rgba(242,179,28,.09)),
    repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 9px),
    var(--panel-2);
}
.media-frame>img,.media-frame>picture>img{width:100%;height:100%;object-fit:cover;object-position:center}
.media-frame--16x9{aspect-ratio:16/9}
.media-frame--4x3{aspect-ratio:4/3}
.media-frame--3x4{aspect-ratio:3/4}
.media-frame--1x1{aspect-ratio:1/1}
.media-frame__cap{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;font-size:11.5px;letter-spacing:.04em;color:var(--ink);background:linear-gradient(180deg,transparent,rgba(11,20,32,.94))}
.media-frame__flag{position:absolute;top:10px;left:10px;z-index:2}

/* ===================================================
   页头：桌面固定侧轨 / 移动抽屉
   =================================================== */
.site-header{
  position:sticky;top:0;z-index:80;
  background:var(--panel);border-bottom:1px solid var(--line);
}
.site-header__top{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  min-height:58px;padding:0 18px;
}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--white);font-weight:900;letter-spacing:-.01em}
.brand__mark{
  display:grid;place-items:center;width:28px;height:28px;flex:none;
  background:var(--red);color:#fff;font-size:15px;font-weight:900;border-radius:var(--r);
  box-shadow:0 0 0 1px rgba(229,52,63,.4);
}
.brand__word{display:flex;flex-direction:column;line-height:1.08;font-size:19px}
.brand__sub{font-style:normal;font-size:10px;font-weight:500;letter-spacing:.16em;color:var(--ink-dim)}

.nav-toggle{
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 12px;background:transparent;border:1px solid var(--line);border-radius:var(--r);
  color:var(--ink);font-size:13px;font-weight:600;cursor:pointer;
  transition:border-color var(--ease),color var(--ease),transform var(--ease);
}
.nav-toggle:hover{border-color:var(--red);color:var(--white);transform:translateY(-2px)}
.nav-toggle__bars{position:relative;display:block;width:16px;height:2px;background:currentColor}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;transition:transform var(--ease),top var(--ease)}
.nav-toggle__bars::before{top:-5px}
.nav-toggle__bars::after{top:5px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{top:0;transform:rotate(-45deg)}

.site-header__rail{
  position:absolute;top:100%;left:0;right:0;
  display:flex;flex-direction:column;gap:18px;
  padding:18px;background:var(--panel);border-bottom:1px solid var(--line);
  max-height:calc(100vh - 64px);overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity var(--ease),transform var(--ease),visibility var(--ease);
}
.site-header__rail[data-open]{opacity:1;visibility:visible;transform:none}

.rail-lead{font-size:12px;letter-spacing:.06em;color:var(--ink-dim)}

.rail-nav__list{display:flex;flex-direction:column;gap:2px}
.rail-nav__link{
  position:relative;display:flex;align-items:center;
  padding:9px 10px 9px 14px;font-size:14px;font-weight:500;color:var(--ink-dim);
  border:1px solid transparent;border-radius:var(--r);
  transition:color var(--ease),border-color var(--ease),background-color var(--ease),transform var(--ease);
}
.rail-nav__link::before{
  content:"";position:absolute;left:0;top:50%;width:3px;height:0;background:var(--red);
  transform:translateY(-50%);transition:height var(--ease);
}
.rail-nav__link:hover{color:var(--white);background:rgba(255,255,255,.03);border-color:var(--line);transform:translateX(2px)}
.rail-nav__link:hover::before{height:16px}
.rail-nav__link[aria-current="page"]{
  color:var(--white);font-weight:700;
  background:linear-gradient(90deg,rgba(229,52,63,.18),rgba(229,52,63,0) 72%);
}
.rail-nav__link[aria-current="page"]::before{height:22px}

.rail-pins{display:flex;flex-direction:column;gap:8px}
.pin{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;background:var(--panel-2);
  border:1px solid var(--line);border-left-width:3px;border-radius:var(--r);
  font-size:13.5px;font-weight:700;color:var(--ink);
  transition:border-color var(--ease),background-color var(--ease),transform var(--ease);
}
.pin:hover{background:#16283A;transform:translateY(-2px)}
.pin--card{border-left-color:var(--amber)}
.pin--transfer{border-left-color:var(--red)}
.pin__icon{width:9px;height:13px;flex:none;border-radius:1px;background:var(--amber)}
.pin--transfer .pin__icon{background:var(--red)}
.pin__meta{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-dim)}

.rail-tools{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid var(--line);margin-top:auto}

.quickjump{position:relative}
.quickjump__label{display:block;margin-bottom:6px;font-size:11px;letter-spacing:.1em;color:var(--ink-dim)}
.quickjump__input{
  width:100%;padding:9px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);
  color:var(--ink);font-size:13px;transition:border-color var(--ease);
}
.quickjump__input::placeholder{color:#6C7C8C}
.quickjump__input:focus{border-color:var(--teal);outline:none}
.quickjump__list{
  position:absolute;left:0;right:0;top:100%;margin-top:6px;z-index:90;display:none;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:0 18px 36px -24px #000;overflow:hidden;
}
.quickjump[data-open] .quickjump__list{display:block}
.quickjump__list a{display:block;padding:8px 10px;font-size:13px;color:var(--ink-dim);border-bottom:1px solid rgba(36,56,74,.7);transition:color var(--ease),background-color var(--ease)}
.quickjump__list li:last-child a{border-bottom:0}
.quickjump__list a:hover{color:var(--white);background:rgba(229,52,63,.16)}

.rail-tools__link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:9px 12px;font-size:13px;font-weight:600;color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r);
  transition:border-color var(--ease),color var(--ease),transform var(--ease);
}
.rail-tools__link:hover{border-color:var(--red);color:var(--white);transform:translateY(-2px)}
.rail-tools__link--alt{font-weight:500;color:var(--ink-dim);border-style:dashed}
.rail-tools__link--alt:hover{border-color:var(--teal);color:var(--teal)}

.scroll-progress{
  position:fixed;left:0;right:0;bottom:0;height:2px;z-index:95;pointer-events:none;
  background:linear-gradient(90deg,var(--red),var(--amber));
  transform:scaleX(var(--sp,0));transform-origin:left center;
}

/* ===================================================
   页脚
   =================================================== */
.site-footer{position:relative;margin-top:auto;background:var(--panel-2);border-top:1px solid var(--line)}
.site-footer__inner{display:grid;gap:32px;padding-block:40px 30px}
.foot-brand__note{margin-top:12px;max-width:32ch;font-size:13px;line-height:1.7;color:var(--ink-dim)}

.foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.foot-col__title{margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--white)}
.foot-col__list{display:flex;flex-direction:column;gap:8px}
.foot-col__list a{font-size:13.5px;color:var(--ink-dim);transition:color var(--ease)}
.foot-col__list a:hover{color:var(--white);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:4px}

.foot-contact__list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.foot-contact__list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.foot-contact__k{min-width:56px;font-size:11px;letter-spacing:.1em;color:var(--ink-dim)}
.foot-contact__v{font-size:13px;color:var(--ink);word-break:break-all}
.foot-contact__note{padding-left:10px;border-left:2px solid var(--amber);font-size:12px;line-height:1.7;color:var(--ink-dim);max-width:36ch}

.copy-btn{
  padding:4px 9px;background:transparent;border:1px solid var(--line);border-radius:var(--r);
  color:var(--ink-dim);font-size:11.5px;cursor:pointer;
  transition:border-color var(--ease),color var(--ease);
}
.copy-btn:hover{border-color:var(--teal);color:var(--teal)}
.copy-btn[data-state="ok"]{border-color:var(--teal);color:var(--teal)}
.copy-btn[data-state="fail"]{border-color:var(--amber);color:var(--amber)}

.site-footer__base{border-top:1px solid var(--line);background:#0B1420}
.site-footer__base-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:16px}
.foot-legal{font-size:12px;color:var(--ink-dim)}
.foot-legal__links{display:flex;flex-wrap:wrap;gap:16px}
.foot-legal__links a{font-size:12px;color:var(--ink-dim);transition:color var(--ease)}
.foot-legal__links a:hover{color:var(--white);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:4px}

.to-top{
  position:fixed;right:16px;bottom:16px;z-index:85;width:42px;height:42px;
  display:grid;place-items:center;padding:0;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  color:var(--ink);font-size:16px;line-height:1;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity var(--ease),transform var(--ease),visibility var(--ease),border-color var(--ease),color var(--ease);
}
.to-top[data-visible]{opacity:1;visibility:visible;transform:none}
.to-top:hover{border-color:var(--red);color:var(--white)}

.toast{
  position:fixed;left:50%;bottom:22px;z-index:120;
  padding:10px 16px;background:#0B1420;border:1px solid var(--line);border-left:3px solid var(--teal);
  border-radius:var(--r);font-size:13px;color:var(--ink);
  opacity:0;visibility:hidden;transform:translate(-50%,12px);
  transition:opacity var(--ease),transform var(--ease),visibility var(--ease);
}
.toast[data-show]{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* ===================================================
   断点
   =================================================== */
@media (min-width:600px){
  .container{padding-inline:24px}
}
@media (min-width:700px){
  .site-footer__inner{grid-template-columns:1.15fr 2fr 1.5fr;gap:28px}
}
@media (min-width:921px){
  body{padding-left:var(--rail-w)}
  .container{padding-inline:32px}
  #main-content{scroll-margin-top:0}

  .site-header{
    position:fixed;top:0;left:0;bottom:0;width:var(--rail-w);
    display:flex;flex-direction:column;
    padding:22px 18px 20px;overflow-y:auto;overflow-x:hidden;
    border-bottom:0;border-right:1px solid var(--line);
  }
  .site-header__top{display:block;min-height:0;padding:0 0 16px;border-bottom:1px solid var(--line)}
  .nav-toggle{display:none}
  .site-header__rail{
    position:static;flex:1 1 auto;padding:16px 0 0;
    border:0;background:transparent;max-height:none;overflow:visible;
    opacity:1;visibility:visible;transform:none;
  }
  .quickjump__list{top:auto;bottom:calc(100% + 6px);margin-top:0;margin-bottom:6px}

  .scroll-progress{
    left:var(--rail-w);right:auto;bottom:0;width:2px;height:auto;
    background:linear-gradient(180deg,var(--red),var(--amber));
    transform:scaleY(var(--sp,0));transform-origin:center top;
  }
  .toast{left:calc(50% + var(--rail-w) / 2)}
  .to-top{right:22px;bottom:22px}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}
