/* =========================================================
   首页 · 节目册式编辑排版
   八个栏目，八套互不复用的骨架
   ========================================================= */

/* ---------- S1 开场 · 今日舞台 ---------- */
.hero{position:relative;padding:56px 0 34px;overflow:hidden;}
.hero-cone{position:absolute;right:-6%;top:-70px;width:56%;max-width:760px;pointer-events:none;opacity:.9;}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:54px;align-items:start;position:relative;}
.hero-row{display:flex;gap:20px;}
.vlabel{writing-mode:vertical-rl;font-size:11.5px;letter-spacing:.42em;color:var(--ink-3);
  border-left:1px solid var(--line-2);padding-left:12px;height:max-content;white-space:nowrap;}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.28em;
  color:var(--amber-text);margin-bottom:18px;}
.hero-kicker::before{content:"";width:34px;height:1px;background:var(--amber);}
.hero-title{font-family:var(--serif);font-size:clamp(34px,5vw,66px);line-height:1.14;letter-spacing:.03em;}
.hero-title em{font-style:normal;color:var(--curtain);position:relative;}
.hero-title em::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:8px;
  background:rgba(232,163,61,.35);z-index:-1;}
.hero-desc{max-width:46ch;margin-top:22px;font-size:15px;color:var(--ink-2);line-height:2.05;}
.hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.hero-meta{display:flex;align-items:center;gap:22px;margin-top:34px;padding-top:20px;
  border-top:1px solid var(--line);font-size:13px;color:var(--ink-3);letter-spacing:.06em;flex-wrap:wrap;}
.hero-meta b{font-family:var(--serif);font-size:26px;color:var(--ink);margin-right:6px;font-weight:600;}
.hero-meta .vm{width:1px;height:22px;background:var(--line-2);}

/* 今日节目单 */
.program{position:relative;border:1px solid var(--line-2);background:rgba(255,255,255,.5);
  padding:24px 26px 8px;box-shadow:var(--shadow-soft);}
.program-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding-bottom:14px;border-bottom:2px solid var(--ink);}
.program-head strong{font-family:var(--serif);font-size:19px;letter-spacing:.12em;}
.program-head span{font-size:10px;letter-spacing:.3em;color:var(--ink-4);}
.program-list{list-style:none;margin:0;padding:0;}
.program-list li{display:grid;grid-template-columns:2.4em 1fr auto;gap:12px;align-items:baseline;
  padding:14px 0;border-bottom:1px dashed var(--line);}
.program-list li:last-child{border-bottom:0;}
.pnum{font-family:var(--serif);font-size:16px;color:var(--amber-text);letter-spacing:.05em;}
.ptitle{font-size:14.5px;line-height:1.6;transition:.24s;}
.pmeta{display:block;font-size:12px;color:var(--ink-3);margin-top:3px;letter-spacing:.05em;}
.program-list a:hover .ptitle{color:var(--curtain);}
.program-foot{display:flex;justify-content:space-between;align-items:center;padding:14px 0 6px;
  font-size:12.5px;color:var(--ink-3);}
.program-foot a{color:var(--curtain);}

/* ---------- S2 幕启 · 精选演出 ---------- */
.feature-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:start;}
.lead-title{font-family:var(--serif);font-size:clamp(22px,2.5vw,30px);margin:20px 0 12px;letter-spacing:.04em;}
.lead-sub{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3);}
.lead-intro{margin:16px 0 20px;font-size:14.6px;line-height:2.05;color:var(--ink-2);text-align:justify;max-width:56ch;}
.lead-actions{display:flex;gap:12px;flex-wrap:wrap;}
.side-list{border-top:1px solid var(--line);}
.side-item{display:grid;grid-template-columns:132px 1fr;gap:16px;padding:16px 0;
  border-bottom:1px solid var(--line);align-items:center;transition:.26s;}
.side-item:hover{background:rgba(255,255,255,.55);}
.side-item .frame{border-radius:2px;}
.side-t{font-size:14.6px;line-height:1.6;}
.side-m{font-size:12px;color:var(--ink-3);margin-top:4px;letter-spacing:.05em;}
.side-item:hover .side-t{color:var(--curtain);}

/* ---------- S3 乐器谱系（行式谱表，非卡片） ---------- */
.inst-table{border-top:2px solid var(--ink);}
.inst-row{display:grid;grid-template-columns:56px 200px 1fr 96px;gap:26px;align-items:center;
  padding:24px 8px;border-bottom:1px solid var(--line);transition:.3s;}
.inst-row:hover{background:linear-gradient(90deg,rgba(232,163,61,.12),transparent 70%);}
.inst-ico{color:var(--curtain);opacity:.9;}
.inst-name{font-family:var(--serif);font-size:26px;letter-spacing:.08em;line-height:1.2;}
.inst-en{font-size:10.5px;letter-spacing:.28em;color:var(--ink-4);margin-top:4px;}
.inst-desc{font-size:13.8px;line-height:1.95;color:var(--ink-2);}
.inst-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.inst-go{font-size:13px;color:var(--curtain);letter-spacing:.08em;white-space:nowrap;text-align:right;}
.inst-go b{display:block;font-family:var(--serif);font-size:20px;color:var(--ink);}

/* ---------- S4 演员名册（印章 + 竖栏） ---------- */
.perf-wrap{display:flex;gap:18px;}
.perf-grid{display:grid;grid-template-columns:repeat(3,1fr);flex:1;}
.perf{padding:26px 24px 28px;border-right:1px solid var(--line);transition:.3s;position:relative;}
.perf:last-child{border-right:0;}
.perf:hover{background:rgba(255,255,255,.6);}
.perf-top{display:flex;align-items:center;gap:14px;}
.perf-name{font-family:var(--serif);font-size:22px;letter-spacing:.1em;}
.perf-no{font-family:var(--mono);font-size:11px;color:var(--ink-4);letter-spacing:.1em;margin-top:2px;}
.perf-major{font-size:12.5px;color:var(--ink-3);margin-top:16px;letter-spacing:.06em;}
.perf-inst{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.perf-works{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);font-size:13.3px;line-height:1.95;}
.perf-works a{display:block;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.perf-works a:hover{color:var(--curtain);}
.perf-stat{margin-top:14px;font-size:12px;color:var(--ink-3);letter-spacing:.06em;}

/* ---------- S5 掌声榜（声波条） ---------- */
.rank-list{border-top:2px solid var(--ink);}
.rank-row{display:grid;grid-template-columns:3em 1fr 6.5em;gap:20px;align-items:center;
  padding:15px 6px;border-bottom:1px solid var(--line);transition:.26s;}
.rank-row:hover{background:rgba(255,255,255,.55);}
.rank-no{font-family:var(--serif);font-size:20px;color:var(--ink-4);}
.rank-row:nth-child(-n+3) .rank-no{color:var(--curtain);}
.rank-main{min-width:0;}
.rank-t{font-size:14.6px;line-height:1.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-wave{margin-top:9px;height:16px;max-width:100%;
  background:repeating-linear-gradient(90deg,rgba(201,130,44,.8) 0 3px,rgba(201,130,44,.16) 3px 6px);
  border-radius:1px;transition:width .8s cubic-bezier(.2,.7,.3,1);}
.rank-count{text-align:right;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;}
.rank-count span{display:block;font-size:11px;color:var(--ink-4);letter-spacing:.1em;}

/* ---------- S6 上新排期（时间轴） ---------- */
.tl{position:relative;padding-left:30px;border-left:1px solid var(--line-2);}
.tl-item{position:relative;padding:18px 0;border-bottom:1px dashed var(--line);}
.tl-item:last-child{border-bottom:0;}
.tl-item::before{content:"";position:absolute;left:-35px;top:26px;width:9px;height:9px;border-radius:50%;
  background:var(--paper);border:2px solid var(--amber);}
.tl-item:first-child::before{background:var(--curtain);border-color:var(--curtain);}
.tl-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.tl-date{font-family:var(--mono);font-size:12px;color:var(--ink-3);letter-spacing:.06em;}
.tl-t{font-size:15px;}
.tl-desc{font-size:13.4px;color:var(--ink-3);margin-top:6px;line-height:1.9;}
.tl-tags{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;}

/* ---------- S7 侧幕拾遗（横向卷轴） ---------- */
.strip-wrap{position:relative;}
.strip{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 0 14px;
  scrollbar-width:thin;}
.strip::-webkit-scrollbar{height:4px;}
.strip::-webkit-scrollbar-thumb{background:var(--line-2);}
.strip-item{flex:0 0 258px;scroll-snap-align:start;}
.strip-t{margin-top:12px;font-size:14px;line-height:1.6;}
.strip-m{font-size:12px;color:var(--ink-3);margin-top:4px;letter-spacing:.05em;}
.strip-hint{font-size:12px;color:var(--ink-4);letter-spacing:.1em;margin-top:6px;}

/* ---------- S8 观演须知（条款权重区） ---------- */
.policy-band{margin-top:20px;background:var(--paper-2);border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:58px 0;}
.policy-grid{display:grid;grid-template-columns:repeat(5,1fr);}
.policy-cell{padding:0 22px;border-right:1px solid var(--line);}
.policy-cell:first-child{padding-left:0;}
.policy-cell:last-child{border-right:0;}
.pc-no{font-family:var(--serif);font-size:13px;letter-spacing:.24em;color:var(--amber-text);}
.pc-t{font-family:var(--serif);font-size:17px;letter-spacing:.06em;margin:8px 0 10px;}
.pc-d{font-size:12.8px;line-height:1.9;color:var(--ink-3);min-height:4.8em;}
.pc-a{display:inline-block;margin-top:12px;font-size:12.5px;color:var(--curtain);letter-spacing:.08em;
  border-bottom:1px solid rgba(142,59,46,.4);padding-bottom:2px;}
.policy-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:34px;padding-top:22px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2);}
.policy-foot .pf-links{display:flex;gap:20px;flex-wrap:wrap;}
.policy-foot a{color:var(--curtain);}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;gap:38px;}
  .hero-cone{opacity:.55;right:-20%;}
  .inst-row{grid-template-columns:44px 150px 1fr;gap:18px;}
  .inst-go{grid-column:2/-1;text-align:left;}
}
@media (max-width:860px){
  .feature-grid{grid-template-columns:1fr;gap:36px;}
  .perf-wrap{flex-direction:column;}
  .perf-grid{grid-template-columns:1fr;border-top:1px solid var(--line);}
  .perf{border-right:0;border-bottom:1px solid var(--line);padding:22px 0;}
  .policy-grid{grid-template-columns:1fr 1fr;gap:22px 0;}
  .policy-cell{border-right:0;padding:0 16px 0 0;}
  .inst-row{grid-template-columns:40px 1fr;gap:14px;}
  .inst-ico{grid-row:span 1;}
  .inst-name{font-size:21px;}
}
@media (max-width:560px){
  .hero-title{font-size:31px;}
  .hero-meta{gap:14px;}
  .policy-grid{grid-template-columns:1fr;}
  .pc-d{min-height:0;}
  .side-item{grid-template-columns:104px 1fr;}
}
