/* ============================================================
   PK 大屏 · 轮播样式（16:9 基准 1920×1080，按 rem 自动缩放适配 4K）
   ============================================================ */
:root{
  --bg:#0a0605;
  --bg2:#150c07;
  --panel:rgba(255,226,190,.045);
  --panel2:rgba(255,226,190,.085);
  --line:rgba(255,196,120,.16);
  --line2:rgba(255,206,140,.28);
  --txt:#f7efe2;
  --muted:#b8a08a;
  --dim:#8a725f;
  --gold:#f7c874;
  --gold2:#ffe6b4;
  --gold3:#c58f37;
  --red:#d81f2a;
  --red2:#ff3b30;
  --orange:#ff6a2a;
  --green:#3ddc84;
  /* 阵营主色：希梦=青绿（青出于蓝而胜于蓝），喷薄=蓝 */
  --mint:#2de2c5;
  --mint2:#7ee7b0;
  --blue:#3b82f6;
  --blue2:#60a5fa;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:min(calc(100vw / 120), calc(100vh / 67.5))}
body{
  background:#0a0605;
  color:var(--txt);
  font-family:"PingFang SC","Microsoft YaHei","Source Han Sans SC","Noto Sans SC","HarmonyOS Sans SC",sans-serif;
  height:100vh;overflow:hidden;
  -webkit-font-smoothing:antialiased;
}
/* 老虎底图：压暗 + 暖色调 + 火山余烬感 */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("/static/assets/tiger-bg.jpg");
  background-size:cover;background-position:70% 40%;
  opacity:.32;filter:saturate(.85) brightness(.85);
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(70rem 46rem at 8% -12%, rgba(216,31,42,.30), transparent 62%),
    radial-gradient(64rem 44rem at 92% -10%, rgba(255,106,42,.22), transparent 60%),
    radial-gradient(58rem 44rem at 50% 118%, rgba(180,24,24,.26), transparent 62%),
    linear-gradient(180deg, rgba(10,6,5,.82) 0%, rgba(12,7,5,.66) 46%, rgba(8,5,4,.90) 100%);
}
/* 虎纹细线（斜向条纹，极淡） */
#app::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.05;
  background-image:repeating-linear-gradient(112deg,
    rgba(255,200,140,.55) 0 3px, transparent 3px 26px,
    rgba(255,200,140,.35) 26px 32px, transparent 32px 58px);
  mask-image:radial-gradient(circle at 50% 40%, #000 10%, transparent 78%);
}
#app{position:relative;z-index:1;height:100vh;display:grid;grid-template-rows:auto 1fr auto;}

/* ---------------------------------------------------------- 顶栏 */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem 3rem 1rem;
}
.brand{display:flex;align-items:center;gap:1.2rem}
.logo{
  width:3.6rem;height:3.6rem;border-radius:1rem;display:grid;place-items:center;
  font-size:1.35rem;font-weight:800;letter-spacing:.05em;color:#1a1206;
  background:linear-gradient(140deg,var(--gold2),var(--gold) 55%,#c8933a);
  box-shadow:0 0 2.2rem rgba(245,196,107,.32), inset 0 1px 0 rgba(255,255,255,.7);
}
.brand h1{font-size:2.15rem;font-weight:800;letter-spacing:.06em;line-height:1.15;
  background:linear-gradient(92deg,#fff 20%,#ffe9c2 60%,#f5c46b 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.brand .sub{font-size:.95rem;color:var(--muted);letter-spacing:.22em;margin-top:.25rem}
.topright{display:flex;align-items:center;gap:2.2rem}
.countdown{text-align:right}
.cd-label{font-size:.85rem;color:var(--muted);letter-spacing:.28em}
.cd-value{display:flex;align-items:baseline;gap:.3rem;justify-content:flex-end}
.cd-value b{font-size:2.6rem;font-weight:800;color:var(--gold);line-height:1;
  font-variant-numeric:tabular-nums;text-shadow:0 0 1.6rem rgba(245,196,107,.45)}
.cd-value span{font-size:.95rem;color:var(--muted)}
.clock{font-size:1.7rem;font-weight:700;color:#cfdcf5;font-variant-numeric:tabular-nums;
  letter-spacing:.04em;padding-left:2rem;border-left:1px solid var(--line)}

/* ---------------------------------------------------------- 舞台 */
.stage{position:relative;padding:0;overflow:hidden}
.slide{position:absolute;inset:0;padding:.4rem 3rem 1.1rem;
  display:flex;flex-direction:column;gap:1.2rem;
  opacity:0;transform:translateY(1.2rem) scale(.995);transition:opacity .55s ease,transform .55s ease;
  pointer-events:none}
.slide.active{opacity:1;transform:none;pointer-events:auto}

.slide-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.st-title{font-size:2rem;font-weight:800;letter-spacing:.1em;display:flex;align-items:center;gap:.9rem;
  background:linear-gradient(92deg,#fff6e6 10%,var(--gold2) 45%,var(--gold) 78%,#b9803a 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 1.4rem rgba(247,200,116,.18))}
.st-title::before{content:"";width:.34rem;height:2rem;border-radius:.2rem;flex:none;
  background:linear-gradient(180deg,var(--red2),var(--gold) 55%,rgba(247,200,116,.15));
  box-shadow:0 0 1.6rem rgba(216,31,42,.55)}
.st-badge{
  font-size:.95rem;font-weight:700;letter-spacing:.06em;color:#2a1203;
  padding:.32rem 1rem;border-radius:2rem;
  background:linear-gradient(135deg,var(--gold2),var(--gold) 60%,#e0a94e);
  box-shadow:0 0 1.6rem rgba(247,200,116,.35), inset 0 1px 0 rgba(255,255,255,.6);
  -webkit-text-fill-color:#2a1203;
}
.st-note{font-size:.95rem;color:var(--muted);letter-spacing:.04em;text-align:right}

.card{
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025));
  border:1px solid var(--line);border-radius:1.2rem;
  box-shadow:0 1.2rem 3rem rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(8px);
}
.empty{
  flex:1;display:grid;place-content:center;text-align:center;gap:.9rem;
  color:var(--dim);border:1px dashed var(--line2);border-radius:1.4rem;
}
.empty h3{font-size:2.2rem;color:var(--muted);letter-spacing:.2em;font-weight:700}
.empty p{font-size:1.05rem;letter-spacing:.1em}

/* ---------------------------------------------------------- 总战报 */
.battle-grid{flex:1;display:grid;grid-template-columns:1fr 15rem 1fr;gap:1.6rem;align-items:stretch;min-height:0}
.side-card{
  position:relative;border-radius:1.4rem;padding:2rem 2.4rem;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-start;gap:1rem;
  border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(28,16,12,.88),rgba(10,7,6,.92));
  box-shadow:0 1.4rem 3rem rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08);
}
.side-card::before{
  content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;
  background:radial-gradient(30rem 20rem at 50% -20%, var(--c,var(--mint)), transparent 70%);
}
.side-card::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:.35rem;background:var(--c,var(--mint));
  box-shadow:0 0 2rem var(--c,var(--mint));
}
.side-top{display:flex;align-items:center;justify-content:space-between}
.side-mini{display:flex;flex-direction:column;gap:.55rem;
  border-top:1px solid rgba(255,255,255,.08);padding-top:1rem}
.side-card .side-mini{margin-top:auto}
.side-card.no-mini .side-amount{margin-top:auto;margin-bottom:auto}
.team-card .side-mini{margin-top:.6rem}
.sm-head{font-size:.78rem;letter-spacing:.28em;color:var(--dim);margin-bottom:.35rem}
.sm-row{display:flex;align-items:center;gap:.8rem;font-size:1.15rem;color:var(--muted);
  padding:.22rem 0;font-variant-numeric:tabular-nums}
.sm-no{width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;flex:none;
  font-size:.8rem;font-weight:800;color:#1a1206;background:linear-gradient(135deg,var(--gold2),var(--gold))}
.sm-row:nth-child(n+2) .sm-no{background:rgba(255,255,255,.12);color:#cfdcf5}
.sm-name{color:#eaf1fb;font-weight:700;min-width:6rem;font-size:1.25rem}
.sm-team{font-size:.85rem;color:var(--dim);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-amt{color:var(--gold);font-weight:800}
.side-name{font-size:2.6rem;font-weight:900;letter-spacing:.16em;color:var(--c,var(--mint));
  text-shadow:0 0 2.4rem color-mix(in srgb, var(--c,var(--mint)) 55%, transparent)}
.side-tag{font-size:.85rem;letter-spacing:.2em;color:var(--muted);border:1px solid var(--line2);
  padding:.25rem .8rem;border-radius:2rem}
.side-amount{font-size:6.6rem;font-weight:900;line-height:.95;letter-spacing:-.02em;margin-top:auto;
  font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 3rem rgba(255,255,255,.18)}
.side-amount small{font-size:2rem;font-weight:700;color:var(--muted);margin-left:.4rem;letter-spacing:0}
.side-meta{display:flex;align-items:center;gap:1.6rem;font-size:1rem;color:var(--muted);letter-spacing:.05em}
.side-meta b{color:#dfe8f8;font-weight:700}
.bar{height:.7rem;border-radius:1rem;background:rgba(255,255,255,.08);overflow:hidden;position:relative}
.bar>i{display:block;height:100%;border-radius:1rem;background:linear-gradient(90deg,var(--c,var(--mint)),#fff6);
  box-shadow:0 0 1.4rem var(--c,var(--mint));transition:width .8s cubic-bezier(.2,.8,.2,1)}
.vs-badge{display:grid;place-items:center}
.vs-badge .vs{
  width:9.5rem;height:9.5rem;border-radius:50%;display:grid;place-items:center;
  font-size:3rem;font-weight:900;letter-spacing:.06em;color:#1a1206;font-style:italic;
  background:radial-gradient(circle at 35% 30%,#fff5dd,var(--gold) 55%,#b8862f);
  box-shadow:0 0 4rem rgba(245,196,107,.45), inset 0 0 1.2rem rgba(255,255,255,.6);
  animation:pulse 3.2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.battle-foot{display:flex;justify-content:center;gap:3.4rem;padding:.2rem 0 .1rem}
.stat{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.stat b{font-size:1.9rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.stat b.hl{font-size:2.2rem;color:var(--gold2);text-shadow:0 0 1.6rem rgba(247,200,116,.5)}
.stat span{font-size:.85rem;color:var(--muted);letter-spacing:.18em}

/* ---------------------------------------------------------- 团队 PK */
.team-grid{flex:1;display:grid;gap:1.6rem;align-items:stretch;min-height:0;
  grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.team-card{position:relative;border-radius:1.4rem;padding:2.6rem 3rem;display:flex;flex-direction:column;
  justify-content:center;gap:1.4rem;overflow:hidden;border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(30,17,12,.86),rgba(10,7,6,.9));
  box-shadow:0 1.4rem 3rem rgba(0,0,0,.4)}
.team-card.win{border-color:rgba(245,196,107,.55);
  box-shadow:0 0 0 1px rgba(245,196,107,.25),0 1.4rem 3.4rem rgba(245,196,107,.18), inset 0 1px 0 rgba(255,255,255,.1)}
.team-card.win::after{content:"冠 军";position:absolute;right:-2.6rem;top:1.5rem;transform:rotate(38deg);
  background:linear-gradient(135deg,var(--gold2),var(--gold));color:#221703;font-weight:900;
  font-size:.85rem;letter-spacing:.2rem;padding:.3rem 3rem}
.team-name{font-size:2.1rem;font-weight:800;letter-spacing:.12em;display:flex;align-items:center;gap:.7rem}
.team-name i{font-style:normal;color:var(--c,var(--blue2));margin-right:0}
.team-name small{margin-left:auto;font-size:.85rem;font-weight:600;letter-spacing:.2em;color:var(--muted)}
.team-mid{display:flex;align-items:flex-end;gap:1.6rem;flex-wrap:wrap}
.team-amount{font-size:6.6rem;font-weight:900;line-height:.95;font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;text-shadow:0 0 2.6rem rgba(255,255,255,.15)}
.team-amount small{font-size:1.8rem;color:var(--muted);margin-left:.4rem;font-weight:700}
.team-rate{font-size:1.15rem;color:var(--muted);letter-spacing:.08em;padding-bottom:.9rem}
.team-rate b{color:var(--gold);font-size:1.7rem;font-weight:800}
.team-bot{margin-top:.2rem}
.team-meta{display:flex;gap:1.8rem;font-size:1rem;color:var(--muted);margin-top:.9rem}
.team-meta b{color:#e6eefc;font-weight:700}

/* ---------------------------------------------------------- 单人奖 */
.award-grid{flex:1;display:grid;grid-template-columns:1.15fr 1fr;gap:1.6rem;min-height:0}
.award-grid.solo{grid-template-columns:1fr}
.winner-card{
  position:relative;border-radius:1.4rem;padding:2.4rem 2.8rem;display:flex;flex-direction:column;
  justify-content:center;gap:.6rem;overflow:hidden;
  background:
    radial-gradient(38rem 26rem at 50% 0%, rgba(245,196,107,.18), transparent 65%),
    linear-gradient(160deg,rgba(30,17,12,.9),rgba(10,7,6,.92));
  border:1px solid rgba(245,196,107,.35);
  box-shadow:0 0 0 1px rgba(245,196,107,.12),0 1.6rem 4rem rgba(0,0,0,.45);
}
.winner-card .crown{font-size:3rem;filter:drop-shadow(0 0 1.4rem rgba(245,196,107,.6))}
/* 有头像：左侧大圆头像 + 右侧信息列 */
.winner-card.has-photo{display:grid;grid-template-columns:auto 1fr;align-items:center;
  column-gap:3rem;row-gap:0;padding:3rem 3.4rem}
.winner-card.has-photo .crown{position:absolute;top:1.8rem;left:2.6rem;font-size:2.2rem}
.winner-card.has-photo .w-photo{margin:0}
.winner-card.has-photo .w-main{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.winner-card.has-photo .w-name{font-size:4.6rem}
.winner-card.has-photo .w-nums{gap:2.4rem;margin-top:.8rem}
.winner-card .w-label{font-size:.95rem;letter-spacing:.3em;color:var(--muted)}
.winner-card .w-name{font-size:5.4rem;font-weight:900;line-height:1.05;letter-spacing:.04em;
  background:linear-gradient(92deg,#fff 30%,#ffe9c2 70%,var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.winner-card .w-team{font-size:1.2rem;color:var(--muted);letter-spacing:.14em}
.winner-card .w-nums{display:flex;gap:3rem;margin-top:1rem}
.winner-card .w-num b{display:block;font-size:2.6rem;font-weight:900;font-variant-numeric:tabular-nums}
.winner-card .w-num span{font-size:.85rem;color:var(--muted);letter-spacing:.2em}
.winner-card .w-prize{margin-top:1.2rem;display:inline-flex;align-self:flex-start;gap:.5rem;
  padding:.5rem 1.2rem;border-radius:2rem;font-weight:800;color:#221703;font-size:1rem;
  background:linear-gradient(135deg,var(--gold2),var(--gold));letter-spacing:.05em}

.rank-list{display:flex;flex-direction:column;justify-content:space-between;gap:.6rem;
  min-height:0;overflow:hidden}
.rank-list .rk-head{font-size:.85rem;color:var(--dim);letter-spacing:.24em;padding-left:.4rem}
.rk-row{display:grid;grid-template-columns:2.6rem 1fr auto;align-items:center;gap:1rem;
  padding:.72rem 1.1rem;border-radius:.9rem;background:rgba(255,255,255,.035);
  border:1px solid transparent;font-size:1.05rem}
.rk-row.on{background:linear-gradient(90deg,rgba(245,196,107,.16),rgba(245,196,107,.03));
  border-color:rgba(245,196,107,.4)}
.rk-no{font-size:1.1rem;font-weight:900;color:var(--dim);font-style:italic;text-align:center}
.rk-row.on .rk-no{color:var(--gold)}
.rk-name{font-weight:700;letter-spacing:.05em;display:flex;align-items:center;gap:.7rem;min-width:0}
.rk-name .tm{font-size:.86rem;color:var(--tc,var(--mint));font-weight:800;letter-spacing:.06em;
  white-space:nowrap;padding:.12rem .5rem;margin-left:.7rem;border-radius:.4rem;
  background:color-mix(in srgb, var(--tc,var(--mint)) 18%, transparent);
  border:1px solid color-mix(in srgb, var(--tc,var(--mint)) 45%, transparent);
  text-shadow:0 0 .8rem color-mix(in srgb, var(--tc,var(--mint)) 60%, transparent)}
.rk-val{font-weight:800;font-variant-numeric:tabular-nums;color:#dfe8f8}
.rk-bar{height:.28rem;border-radius:1rem;background:rgba(255,255,255,.06);margin-top:.34rem;overflow:hidden}
.rk-bar>i{display:block;height:100%;background:linear-gradient(90deg,rgba(245,196,107,.9),rgba(245,196,107,.25))}

/* ---------------------------------------------------------- 多人奖 */
.multi-grid{flex:1;display:grid;align-content:center;gap:1.3rem;
  grid-template-columns:repeat(4,minmax(0,1fr))}
.multi-grid.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.chip{display:flex;align-items:center;gap:1.1rem;padding:1.35rem 1.5rem;border-radius:1rem;
  background:linear-gradient(160deg,rgba(30,17,12,.86),rgba(10,7,6,.9));
  border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.chip .av{width:3.6rem;height:3.6rem;border-radius:.9rem;display:grid;place-items:center;
  font-weight:900;font-size:1.55rem;color:#12100a;flex:none;
  background:linear-gradient(140deg,var(--gold2),var(--gold))}
.chip .ci{min-width:0}
.chip .cn{font-size:1.5rem;font-weight:800;letter-spacing:.04em;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.chip .cs{font-size:.84rem;color:var(--muted);letter-spacing:.06em;white-space:nowrap}
.chip .cv{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums;color:var(--gold);
  font-size:1.15rem;white-space:nowrap}
.multi-foot{display:flex;justify-content:center;gap:2rem;font-size:.95rem;color:var(--dim);letter-spacing:.1em}

/* ---------------------------------------------------------- 拍档榜 */
.pair-wrap{flex:1;display:flex;flex-direction:column;gap:.7rem;justify-content:center;min-height:0}
.pair-row{display:grid;grid-template-columns:4rem 1fr 10rem 9rem;align-items:center;gap:1.4rem;
  padding:1rem 1.6rem;border-radius:1rem;background:rgba(255,255,255,.035);
  border:1px solid transparent}
.pair-row.top{background:linear-gradient(90deg,rgba(245,196,107,.18),rgba(245,196,107,.02));
  border-color:rgba(245,196,107,.45)}
.pair-row .pno{font-size:1.6rem;font-weight:900;font-style:italic;color:var(--dim);text-align:center}
.pair-row.top .pno{color:var(--gold)}
.pair-row .pn{font-size:1.7rem;font-weight:800;letter-spacing:.06em}
.pair-row .pm{font-size:.85rem;color:var(--muted);letter-spacing:.08em}
.pair-row .ps{font-size:2.2rem;font-weight:900;color:var(--gold);text-align:right;
  font-variant-numeric:tabular-nums}
.pair-row .pa{font-size:1rem;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------- 百万榜 */
.mil-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;min-height:0}
.mil-col{border-radius:1.3rem;padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:.9rem;
  border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.018));
  overflow:hidden}
.mil-col.t3{border-color:rgba(245,196,107,.5);background:linear-gradient(180deg,rgba(245,196,107,.16),rgba(245,196,107,.03))}
.mil-head{display:flex;align-items:baseline;justify-content:space-between}
.mil-head .ml{font-size:1.5rem;font-weight:900;letter-spacing:.1em}
.mil-col.t3 .ml{color:var(--gold)}
.mil-head .ms{font-size:.8rem;color:var(--muted);letter-spacing:.08em}
.mil-count{font-size:.9rem;color:var(--gold);letter-spacing:.16em;opacity:.85}
.mil-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.7rem;overflow:hidden}
.mil-item{display:flex;align-items:center;gap:.9rem;font-size:1.55rem;padding:.5rem .2rem;
  border-bottom:1px dashed rgba(255,255,255,.07)}
.mil-item:last-child{border-bottom:0}
.mil-item .dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--gold);flex:none;
  box-shadow:0 0 1rem rgba(245,196,107,.8)}
.mil-item b{font-weight:800;letter-spacing:.04em}
.mil-item span{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;font-size:1rem}
.mil-foot{margin-top:auto;font-size:1rem;color:var(--gold);letter-spacing:.08em;
  border-top:1px solid rgba(245,196,107,.25);padding-top:.9rem}
.mil-empty{color:var(--dim);font-size:1.1rem;letter-spacing:.12em;padding:1.4rem 0;text-align:center}

/* ---------------------------------------------------------- 总榜 */
.rank-big{flex:1;display:flex;flex-direction:column;gap:.55rem;justify-content:center;min-height:0}
.rb-row{display:grid;grid-template-columns:3.4rem 1fr 3.2rem;align-items:center;gap:1.2rem;
  padding:.62rem 1.4rem;border-radius:.9rem;background:rgba(255,255,255,.03)}
.rb-row:nth-child(1){background:linear-gradient(90deg,rgba(245,196,107,.20),rgba(245,196,107,.02));
  border:1px solid rgba(245,196,107,.4)}
.rb-row:nth-child(2){background:linear-gradient(90deg,rgba(200,215,240,.13),rgba(255,255,255,.02))}
.rb-row:nth-child(3){background:linear-gradient(90deg,rgba(210,160,110,.13),rgba(255,255,255,.02))}
.rb-no{font-size:1.5rem;font-weight:900;font-style:italic;color:var(--dim);text-align:center}
.rb-row:nth-child(1) .rb-no{color:var(--gold)}
.rb-main{min-width:0}
.rb-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.rb-name{font-size:1.4rem;font-weight:800;letter-spacing:.05em}
.rb-name .tm{font-size:.86rem;color:var(--tc,var(--mint));font-weight:800;margin-left:.8rem;
  padding:.12rem .5rem;border-radius:.4rem;letter-spacing:.06em;
  background:color-mix(in srgb, var(--tc,var(--mint)) 18%, transparent);
  border:1px solid color-mix(in srgb, var(--tc,var(--mint)) 45%, transparent)}
.rb-amt{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums;color:#fff}
.rb-amt small{font-size:.8rem;color:var(--muted);font-weight:600;margin-left:.2rem}

/* ---------------------------------------------------------- 底部 */
.bottombar{display:flex;align-items:center;gap:2rem;padding:.9rem 3rem 1.1rem}
.dots{display:flex;gap:.5rem}
.dots i{width:.5rem;height:.5rem;border-radius:50%;background:rgba(255,255,255,.16);transition:.3s}
.dots i.on{background:var(--gold);width:1.4rem;border-radius:1rem;box-shadow:0 0 1rem rgba(245,196,107,.7)}
.board-name{font-size:.9rem;color:var(--muted);letter-spacing:.2em;white-space:nowrap}
.ticker{margin-left:auto;display:flex;align-items:center;gap:1rem;font-size:.9rem;color:var(--dim);
  letter-spacing:.06em;overflow:hidden;white-space:nowrap;max-width:50%;padding-right:2.2rem;
  -webkit-mask-image:linear-gradient(90deg,#000 82%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 82%,transparent 100%)}
.ticker .tk{display:flex;align-items:center;gap:.45rem}
.ticker .tk b{color:#cfe0f8;font-weight:600}
.ticker .tk em{font-style:normal;color:var(--gold);font-weight:700}
.ticker .sep{opacity:.3}
.progress-line{position:fixed;left:0;right:0;bottom:0;height:.2rem;background:rgba(255,255,255,.05);z-index:5}
.progress-line i{display:block;height:100%;width:0;
  background:linear-gradient(90deg,rgba(245,196,107,.9),rgba(255,90,60,.85));
  box-shadow:0 0 1rem rgba(245,196,107,.6)}
.progress-line i.run{animation:grow linear forwards}
@keyframes grow{from{width:0}to{width:100%}}

/* ---------------------------------------------------------- 喜报 */
.celebrate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 45%,rgba(4,7,13,.38),rgba(4,7,13,.66));
  opacity:0;pointer-events:none;transition:opacity .4s ease;backdrop-filter:blur(2px)}
.celebrate.show{opacity:1}
.celebrate-card{
  text-align:center;padding:3rem 6rem;border-radius:2rem;transform:translateY(1.5rem) scale(.96);
  transition:transform .45s cubic-bezier(.2,.9,.25,1.1);
  background:radial-gradient(40rem 30rem at 50% 0%,rgba(245,196,107,.28),transparent 70%),
             linear-gradient(160deg,rgba(20,26,40,.96),rgba(10,14,24,.96));
  border:1px solid rgba(245,196,107,.5);
  box-shadow:0 0 6rem rgba(245,196,107,.25),0 2rem 5rem rgba(0,0,0,.6)}
.celebrate.show .celebrate-card{transform:none}
.cf-fire{font-size:3.6rem;animation:pop 1.2s ease-in-out infinite}
@keyframes pop{0%,100%{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.12) rotate(4deg)}}
.cf-kicker{font-size:1.1rem;letter-spacing:.5em;color:var(--gold);margin:.5rem 0 1.2rem}
.cf-name{font-size:4.6rem;font-weight:900;letter-spacing:.06em;
  background:linear-gradient(92deg,#fff,#ffe9c2 70%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.cf-line{font-size:1.15rem;color:var(--muted);letter-spacing:.1em;margin:.5rem 0 .2rem}
.cf-amount{font-size:3.2rem;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums;
  text-shadow:0 0 2rem rgba(245,196,107,.5)}
.hint{position:fixed;left:50%;transform:translateX(-50%);bottom:.55rem;font-size:.72rem;
  color:rgba(255,255,255,.13);letter-spacing:.15em;z-index:6;transition:opacity .5s}
.hint.hide{opacity:0}

/* ============================================================
   虎山争锋主题层：开屏封面 / 战报海报 / 头像
   ============================================================ */

/* ---------------------------------------------------------- 通用头像 */
.av,.av.has-photo,.w-av,.po-av,.cf-av{position:relative;display:grid;place-items:center;overflow:hidden}
.av img,.w-av img,.po-av img,.cf-av img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.av .av-txt,.w-av .av-txt,.po-av .av-txt,.cf-av .av-txt{
  position:relative;z-index:2;font-style:normal;font-weight:900;color:#2a1203;line-height:1}
.has-photo .av-txt{opacity:0}
.chip .av{width:3.6rem;height:3.6rem;border-radius:.9rem;
  background:linear-gradient(140deg,var(--gold2),var(--gold));flex:none}
.chip .av .av-txt{font-size:1.55rem}

/* ---------------------------------------------------------- 开屏封面 */
.cover{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden}
.cover-hero{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}
/* 底下一层放大模糊（填满黑边），上面一层完整等比显示 */
.cover-blur{position:absolute;inset:-6%;
  background-image:url("/static/assets/hero.jpg");
  background-size:cover;background-position:center;
  filter:blur(2.6rem) brightness(.42) saturate(.9)}
.cover-img{position:absolute;inset:0;
  background-image:url("/static/assets/hero.jpg");
  background-size:contain;background-position:center;background-repeat:no-repeat;
  filter:saturate(1.06) contrast(1.03)}
.cover-hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60rem 26rem at 50% 118%, rgba(216,31,42,.30), transparent 70%),
             linear-gradient(180deg, rgba(10,6,5,.62) 0%, transparent 18%, transparent 74%, rgba(10,6,5,.96) 100%)}
.cover-foot{flex:none;position:relative;margin-top:-5rem;padding-top:5.4rem;
  display:grid;grid-template-columns:auto auto auto auto 1fr;align-items:center;
  gap:3.2rem;padding-left:3.4rem;padding-right:3.4rem;padding-bottom:2rem;
  background:linear-gradient(180deg,rgba(10,6,5,0) 0%,rgba(10,6,5,.86) 46%,#0a0605 100%)}
.cv-stat{display:flex;flex-direction:column;gap:.35rem;white-space:nowrap}
.cv-stat b{font-size:1.9rem;font-weight:900;color:#fff3dd;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.cv-stat span{font-size:.82rem;color:var(--muted);letter-spacing:.26em}
.cv-slogan{justify-self:end;font-size:1.35rem;letter-spacing:.22em;color:var(--gold2);
  font-family:"Kaiti SC","KaiTi","STKaiti","楷体",serif;white-space:nowrap}

/* ---------------------------------------------------------- 战报海报 */
.poster-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2.4rem}
.po-side{display:flex;flex-direction:column;gap:1.1rem;align-items:center;
  font-family:"Kaiti SC","KaiTi","STKaiti","楷体",serif;color:rgba(255,214,150,.55);
  letter-spacing:.5em;font-size:1.15rem}
.po-side span{writing-mode:vertical-rl;text-orientation:upright}
.po-left span:first-child{color:rgba(255,120,60,.7)}
.po-right span{font-size:1.9rem;color:rgba(255,214,150,.32)}

.poster{position:relative;height:100%;aspect-ratio:9/16;max-width:38rem;flex:none;
  border-radius:1.6rem;overflow:hidden;display:flex;flex-direction:column;align-items:center;
  padding:2rem 2.2rem 1.6rem;
  border:1px solid rgba(255,206,140,.55);
  box-shadow:0 0 5rem rgba(216,31,42,.32), 0 2.4rem 6rem rgba(0,0,0,.7),
             inset 0 0 6rem rgba(255,140,40,.14);
  background:
    radial-gradient(30rem 22rem at 50% 0%, rgba(255,150,50,.30), transparent 62%),
    radial-gradient(26rem 20rem at 50% 108%, rgba(216,31,42,.5), transparent 66%),
    linear-gradient(178deg,#2a0d06 0%, #43110a 42%, #1c0703 100%);
}
.poster::before{content:"";position:absolute;inset:0;opacity:.5;
  background-image:url("/static/assets/tiger-bg.jpg");background-size:cover;background-position:32% 12%;
  mask-image:linear-gradient(180deg,#000 0%, rgba(0,0,0,.45) 42%, transparent 64%)}
.poster::after{content:"";position:absolute;inset:.7rem;border-radius:1.2rem;pointer-events:none;
  border:1px solid rgba(255,214,150,.28)}
.po-glow{position:absolute;left:50%;top:46%;width:34rem;height:34rem;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,150,50,.35),transparent 68%);pointer-events:none}
.po-brand{position:relative;z-index:2;font-size:.72rem;letter-spacing:.42em;color:rgba(255,226,180,.8);
  margin-top:.2rem}
.po-kicker{position:relative;z-index:2;text-align:center;margin-top:.7rem}
.pk1{font-size:2.1rem;letter-spacing:.2em;font-weight:900;color:#ffe9c2;
  font-family:"Kaiti SC","KaiTi","STKaiti","楷体",serif;
  text-shadow:0 0 1.6rem rgba(255,120,40,.75)}
.pk2{font-size:1.05rem;letter-spacing:.42em;color:#ffb974;margin-top:.3rem;
  font-family:"Kaiti SC","KaiTi","STKaiti","楷体",serif}
.po-photo{position:relative;z-index:2;width:100%;flex:1 1 auto;min-height:0;margin-top:1rem;
  display:grid;place-items:center}
.po-av{width:100%;height:100%;border-radius:1rem;overflow:hidden;
  background:linear-gradient(160deg,rgba(255,214,150,.16),rgba(120,40,12,.5));
  border:1px solid rgba(255,214,150,.28);
  mask-image:linear-gradient(180deg,#000 0%,#000 76%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 76%, transparent 100%)}
.po-av .av-txt{font-size:6rem;color:rgba(255,226,180,.55)}
.po-crown{position:relative;z-index:3;font-size:2.4rem;margin-top:-1.4rem;
  text-shadow:0 0 2rem rgba(255,190,80,.8);animation:pop 3s ease-in-out infinite}
.po-name{position:relative;z-index:3;font-size:2.6rem;font-weight:900;letter-spacing:.05em;line-height:1.15;
  background:linear-gradient(180deg,#fffdf6 10%,var(--gold2) 45%,#e8ab4e 80%,#a76d28 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 .3rem 1rem rgba(255,140,40,.5))}
.po-amt{position:relative;z-index:3;display:flex;align-items:baseline;justify-content:center;gap:.3rem;
  margin-top:.2rem}
.po-amt b{font-size:5.6rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
  background:linear-gradient(180deg,#fffdf2 6%,#ffe1a4 38%,#f0b256 66%,#a96c22 96%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 .4rem 1.4rem rgba(255,150,40,.55))}
.po-amt small{font-size:1.9rem;font-weight:800;color:#ffe1a4}
.po-sub{position:relative;z-index:3;font-size:1.05rem;letter-spacing:.16em;color:#ffd9a4;margin-top:.5rem}
.po-meta{position:relative;z-index:3;font-size:.85rem;letter-spacing:.14em;color:rgba(255,214,170,.62);
  margin-top:.3rem}
.po-foot{position:relative;z-index:3;margin-top:auto;padding-top:.9rem;width:100%;
  border-top:1px solid rgba(255,214,150,.22);text-align:center;
  font-size:.76rem;letter-spacing:.2em;color:rgba(255,214,170,.66);
  font-family:"Kaiti SC","KaiTi","STKaiti","楷体",serif}

/* ---------------------------------------------------------- 单人奖里的头像 */
.w-photo{display:flex;justify-content:center;margin:.4rem 0 .2rem}
.w-av{width:13rem;height:13rem;border-radius:50%;overflow:hidden;
  border:2px solid rgba(255,206,140,.6);
  box-shadow:0 0 3rem rgba(216,31,42,.45), 0 1rem 2.4rem rgba(0,0,0,.6)}
.w-av .av-txt{font-size:4.4rem}

/* ---------------------------------------------------------- 喜报里的头像 */
.cf-photo{display:flex;justify-content:center;margin:.6rem 0 .2rem}
.cf-photo:empty{display:none}
.cf-av{width:9rem;height:9rem;border-radius:50%;overflow:hidden;
  border:2px solid rgba(255,206,140,.65);
  box-shadow:0 0 2.6rem rgba(255,150,40,.55)}
.cf-av .av-txt{font-size:3rem}

/* ---------------------------------------------------------- 暖色微调：旧蓝色元素统一成金/红 */
.ticker .tk b{color:#f0d7b8}
.rb-row:nth-child(2){background:linear-gradient(90deg,rgba(255,214,150,.12),rgba(255,255,255,.02))}
.rank-list .rk-row.on{background:linear-gradient(90deg,rgba(216,31,42,.22),rgba(255,214,150,.06))}
.clock{color:#f0d7b8}
