/* LAB CUP —— design-system/lab-cup-mockup-v2.html（/cup）与 lab-cup-past-mockup.html（/cup/<届>）
   的数值逐项搬进 tokens。色票映射（零新颜色）：
     mockup --court/--court-deep → 画布由 body.home-v3 提供
     --cream → --cream · --green-ink → --court · --tile-dark → --v3-deep
     --gold / --ball → --gold（站上 --ball 即 --gold）· --hair → --hairline
   按钮动效不重造：两颗钮都挂全站 .pill，site.css 的 ::after 球 + ::before 涟漪
   就是 lab-cta-hover-ball.html 的版本 1，触控装置常驻球也由那里处理。
   作用域一律 body.cup-v1。 */

.cup-v1 .cup-wrap{width:min(100% - 36px, 800px);margin-inline:auto}
.cup-todo{color:var(--gold-deep);font-size:clamp(11px,1.3vw,12.5px)}
.cup-v1 .cup-back{display:inline-block;font-size:clamp(11px,1.3vw,12.5px);color:rgba(242,237,218,.6);
  text-decoration:none;margin-bottom:10px}
.cup-v1 .cup-back:hover{color:var(--cream)}

/* ── 页首 ── */
.cup-kicker{font-size:clamp(10.5px,1.2vw,11.5px);letter-spacing:2px;color:var(--gold);
  font-weight:var(--weight-semibold);text-transform:uppercase;padding-top:4px}
.cup-name{font-family:Anton,Impact,sans-serif;font-size:clamp(42px,7vw,64px);line-height:.95;
  color:var(--cream);text-transform:uppercase;margin:8px 0 3px;letter-spacing:1px}
.cup-name span{color:var(--gold)}
.cup-name--sm{font-size:clamp(36px,6vw,54px);margin:7px 0 2px}
.cup-edition{font-family:var(--font-display-mix);font-weight:var(--weight-semibold);
  font-size:clamp(15px,1.9vw,18px);color:rgba(242,237,218,.85);margin-bottom:13px}

/* 照片格：有图填满，没图显示〔待补〕占位（不留空白错位） */
.cup-ph{position:relative;overflow:hidden;background:rgba(242,237,218,.08)}
.cup-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block}
.cup-mosaic .cup-ph img{object-position:center 30%}
.cup-ph .ph-todo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:clamp(10px,1.2vw,11.5px);color:rgba(242,237,218,.5);letter-spacing:.5px}
.cup-hero{height:clamp(155px,26vw,240px)}

/* ── 本届资料卡 ── */
.cup-card{background:var(--cream);margin-top:12px;padding:clamp(16px,2vw,22px) clamp(18px,2.4vw,26px)}
.cup-bigdate{display:flex;align-items:flex-end;gap:12px;margin-bottom:13px}
.cup-bigdate .d{font-family:Anton,Impact,sans-serif;font-size:clamp(42px,6vw,58px);line-height:.95;color:var(--court)}
.cup-bigdate .m{font-size:clamp(11px,1.3vw,13px);color:var(--ash);padding-bottom:4px;line-height:1.6}
.cup-kv{display:grid;grid-template-columns:auto 1fr;gap:9px 12px;font-size:clamp(12px,1.5vw,14px);color:var(--charcoal)}
.cup-kv .k{color:var(--ash);font-size:clamp(11.5px,1.4vw,13px)}
.cup-kv a{color:var(--court)}

/* ── 怎么参加 ── */
.cup-steps{margin-top:10px;background:var(--v3-deep);padding:clamp(17px,2.2vw,24px) clamp(18px,2.4vw,26px)}
.cup-steps h2{font-family:var(--font-display-mix);font-weight:var(--weight-semibold);
  font-size:clamp(16px,2vw,20px);color:var(--cream);margin-bottom:10px}
.cup-steps ol{list-style:none;counter-reset:s;display:grid;gap:10px;margin:0;padding:0}
.cup-steps li{counter-increment:s;font-size:clamp(12px,1.5vw,14px);color:rgba(242,237,218,.85);line-height:1.6;
  padding-left:26px;position:relative}
.cup-steps li::before{content:counter(s);position:absolute;left:0;top:1px;width:18px;height:18px;
  border-radius:var(--radius-full);background:var(--ball);color:var(--v3-deep);
  font-size:10px;font-weight:var(--weight-semibold);display:flex;align-items:center;justify-content:center}
.cup-steps li b{color:var(--cream)}

/* ── 报名 + 转发 ── */
.cup-ctaline{text-align:center;margin-top:15px}
.cup-ctaline .pill{background:var(--cream);color:var(--court-deep);min-height:44px;padding:0 26px;
  font-size:clamp(13.5px,1.6vw,15px);font-weight:var(--weight-semibold);gap:7px}
.cup-ctaline .pill:hover{color:var(--court-deep)}
.cup-ctaline .pill svg{width:14px;height:14px;flex:0 0 auto}
/* 转发钮：描边、透明底；同样挂 .pill 所以 hover 一样有球 */
.cup-ctaline .pill--share{background:transparent;color:rgba(242,237,218,.8);
  box-shadow:inset 0 0 0 1px rgba(242,237,218,.3);min-height:36px;padding:0 16px;
  font-size:clamp(11.5px,1.4vw,13px);font-weight:var(--weight-medium);margin-top:11px}
.cup-ctaline .pill--share:hover{color:var(--cream);box-shadow:inset 0 0 0 1px var(--cream)}
.cup-ctaline .pill--share svg{width:12px;height:12px}
.cup-ctaline--edition{margin-top:18px}
.cup-ctaline--edition .pill--share{margin-top:0}
.cup-ctaline br{display:block;content:""}
.cup-rhythm{margin-top:16px;text-align:center;font-size:clamp(11px,1.3vw,13px);color:rgba(242,237,218,.6);line-height:1.8}
.cup-rhythm b{color:var(--gold);font-weight:var(--weight-semibold)}

/* ── 往届纪录 ── */
.cup-past{margin-top:24px}
.cup-hd{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.cup-hd h2{font-family:var(--font-display-mix);font-weight:var(--weight-semibold);font-size:clamp(17px,2.2vw,21px);color:var(--cream)}
.cup-hd .ln{flex:1;height:1px;background:rgba(242,237,218,.22)}
.cup-pcard{background:rgba(242,237,218,.07);border:1px solid rgba(242,237,218,.14);
  display:grid;grid-template-columns:clamp(96px,14vw,120px) 1fr;text-decoration:none;overflow:hidden;
  transition:background .18s var(--ease-standard)}
.cup-pcard + .cup-pcard{margin-top:9px}
.cup-pcard:hover{background:rgba(242,237,218,.13)}
.cup-pcard .thumb{aspect-ratio:1}
.cup-pcard .txt{padding:11px 13px;min-width:0}
.cup-pcard .ed{font-family:Anton,Impact,sans-serif;font-size:clamp(11.5px,1.4vw,13px);color:var(--gold);letter-spacing:.5px}
.cup-pcard .ch{font-size:clamp(13px,1.6vw,15px);color:var(--cream);font-weight:var(--weight-semibold);margin-top:4px;line-height:1.35}
.cup-pcard .sc{font-size:clamp(10.5px,1.3vw,12px);color:rgba(242,237,218,.55);margin-top:4px}
.cup-pcard .go{font-size:clamp(10px,1.2vw,11.5px);color:rgba(242,237,218,.45);margin-top:6px}
.cup-past-empty{font-size:clamp(11px,1.3vw,13px);color:rgba(242,237,218,.5)}

/* ── 单届页：冠军卡 ── */
.cup-champ{background:var(--cream);overflow:hidden}
.cup-champ .pic{height:clamp(190px,32vw,300px)}
.cup-champ .body{padding:16px 18px 17px;text-align:center}
.cup-champ .lbl{font-size:clamp(10px,1.2vw,11px);letter-spacing:2.5px;color:var(--gold);font-weight:var(--weight-semibold)}
.cup-champ .who{font-family:var(--font-display-mix);font-weight:var(--weight-semibold);
  font-size:clamp(22px,2.8vw,28px);color:var(--court);margin-top:8px;line-height:1.3}
.cup-champ .co{font-size:clamp(10.5px,1.3vw,12.5px);color:var(--ash);margin-top:5px;line-height:1.6}

/* 决赛比分卡 */
.cup-final{margin-top:9px;background:var(--v3-deep);padding:15px 16px}
.cup-final .l{font-size:clamp(9.5px,1.1vw,10.5px);letter-spacing:2px;color:rgba(242,237,218,.5);
  font-weight:var(--weight-semibold);text-align:center;margin-bottom:11px}
.cup-fin{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.cup-fin .side{font-size:clamp(12px,1.5vw,14px);line-height:1.45}
.cup-fin .side.w{color:var(--cream);font-weight:var(--weight-semibold)}
.cup-fin .side.l2{color:rgba(242,237,218,.6);text-align:right}
.cup-fin .score{font-family:Anton,Impact,sans-serif;font-size:clamp(20px,2.6vw,26px);color:var(--ball);text-align:center;white-space:nowrap}
.cup-fin .score--todo .cup-todo{font-family:var(--font-ui);color:var(--gold)}
.cup-fin .side small{display:block;font-size:clamp(9.5px,1.1vw,10.5px);color:rgba(242,237,218,.45);font-weight:var(--weight-regular);margin-top:2px}

/* 规模数字 */
.cup-nums{display:flex;margin-top:9px;background:var(--cream)}
.cup-num{flex:1;text-align:center;padding:13px 6px}
.cup-num + .cup-num{border-left:1px solid var(--hairline)}
.cup-num b{font-family:Anton,Impact,sans-serif;font-size:clamp(21px,2.6vw,26px);color:var(--court);display:block}
.cup-num span{font-size:clamp(9.5px,1.1vw,11px);color:var(--ash)}

/* 照片 mosaic：大合照打头（21:9 满宽），其余横图占两格、竖图一格 */
.cup-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:12px}
.cup-mosaic .cup-ph{aspect-ratio:1}
.cup-mosaic .wide{grid-column:span 2}
.cup-mosaic .full{grid-column:span 3;aspect-ratio:21/9}

/* 届间导航 */
.cup-jump{display:flex;gap:8px;margin-top:20px}
.cup-jbtn{flex:1;background:rgba(242,237,218,.07);border:1px solid rgba(242,237,218,.16);
  padding:11px 12px;text-decoration:none;display:block;min-width:0}
.cup-jbtn .a{font-size:clamp(9.5px,1.1vw,10.5px);color:rgba(242,237,218,.45);letter-spacing:1px;display:block}
.cup-jbtn .b{font-size:clamp(12px,1.4vw,13.5px);color:var(--cream);font-weight:var(--weight-semibold);margin-top:3px;display:block}
.cup-jbtn.r{text-align:right}
.cup-jbtn.ghost{visibility:hidden}
.cup-jbtn:hover{background:rgba(242,237,218,.13)}

/* 收尾 */
.cup-end{text-align:center;margin-top:20px}
.cup-end .line{font-family:var(--font-display-mix);font-weight:var(--weight-semibold);font-size:clamp(16px,2vw,20px);color:var(--cream);margin-bottom:4px}
.cup-end .sm{font-size:clamp(11.5px,1.4vw,13px);color:rgba(242,237,218,.6);margin-bottom:12px}
.cup-end .pill{background:var(--cream);color:var(--court-deep);min-height:44px;padding:0 24px;
  font-size:clamp(13px,1.5vw,14px);font-weight:var(--weight-semibold)}
.cup-end .pill:hover{color:var(--court-deep)}

.cup-legal{font-size:clamp(9.5px,1.1vw,11px);color:rgba(242,237,218,.5);line-height:1.7;margin:20px auto 0;max-width:640px;text-align:center}

/* ── 减少动态效果：全关（球与涟漪由 site.css 同一条规则关掉）── */
@media (prefers-reduced-motion:reduce){
  .cup-pcard,.cup-jbtn{transition:none}
}
