
.promo-main.v24 .promo-prize{padding:2.2vh 1.4vw;align-items:stretch;justify-content:flex-start;overflow:hidden}.promo-main.v24 .promo-prize small{text-align:center;font-size:1.05vw;margin-bottom:1.2vh}.promo-main.v24 .promo-prize strong{font-size:inherit}.promo-reward-list{display:grid;gap:.72vh;width:100%;min-height:0}.promo-reward-list div{display:grid;grid-template-columns:3.8vw minmax(0,1fr);align-items:center;gap:.7vw;min-height:4.7vh;padding:.45vh .75vw;border-radius:.72vw;background:rgba(255,208,82,.08);border:1px solid rgba(255,208,82,.18)}.promo-reward-list span{font-size:1.05vw;color:#d8e6f4;white-space:nowrap}.promo-reward-list b{min-width:0;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:2.15vw;line-height:1.05;color:#ffd052;text-shadow:0 0 18px rgba(255,190,48,.36)}.promo-reward-empty{display:grid;place-items:center;flex:1;min-height:15vh;border-radius:.8vw;border:1px dashed rgba(255,255,255,.16);color:#9eb3c8;font-size:1.25vw;font-weight:800}
.promo-state .showcase-content{width:100%;height:100%;justify-content:stretch}.promo-state .showcase-backdrop{background:radial-gradient(circle at 68% 42%,rgba(255,176,36,.34),transparent 28%),radial-gradient(circle at 22% 20%,rgba(35,125,255,.18),transparent 32%),linear-gradient(135deg,#020711,#071525 54%,#140d04)}.promo-poster{position:relative;width:100%;height:100%;padding:2.4vh 2.2vw 2.2vh;display:grid;grid-template-columns:1.08fr 1.05fr .62fr;grid-template-rows:1fr auto;gap:1.5vw;overflow:hidden;text-align:left}.promo-poster:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,184,42,.08) 0 1px,transparent 1px),linear-gradient(0deg,rgba(255,184,42,.06) 0 1px,transparent 1px);background-size:5.8vw 5.8vw;mask-image:radial-gradient(circle at 50% 45%,#000,transparent 76%);pointer-events:none}.poster-left,.poster-side,.poster-bottom{position:relative;z-index:2}.poster-badge{display:inline-flex;align-items:center;gap:.7vw;padding:.55vh 1.1vw;border-radius:99px;background:linear-gradient(90deg,#0e67bd,#11447e);box-shadow:0 0 22px rgba(35,144,255,.3);font-size:1.45vw;font-weight:950}.poster-badge span{width:2.05vw;height:2.05vw;border-radius:50%;display:grid;place-items:center;background:#d9f0ff;color:#0c4d9a}.poster-kicker{margin-top:3.6vh;color:#ffe2a4;font-size:1.15vw;font-weight:900;letter-spacing:.18em}.poster-left h2{font-size:5.15vw;line-height:1.02;margin:1.1vh 0 1.2vh;letter-spacing:.02em;color:#fff3c5;text-shadow:0 0 34px rgba(255,188,51,.42)}.poster-sub{display:flex;align-items:center;gap:.8vw;margin-bottom:4.2vh;color:#ffd45a;font-size:1.18vw;font-weight:900}.poster-sub i{width:4vw;height:1px;background:linear-gradient(90deg,transparent,#ffd15a,transparent)}.poster-info-grid{width:72%;display:grid;grid-template-columns:repeat(3,1fr);padding:1.25vh .9vw;border-radius:.9vw;background:rgba(3,12,24,.72);border:1px solid rgba(255,210,92,.14);box-shadow:inset 0 0 24px rgba(255,180,45,.08)}.poster-info-grid div{display:grid;place-items:center;border-right:1px solid rgba(255,255,255,.08)}.poster-info-grid div:last-child{border-right:0}.poster-info-grid small{color:#b8c8d6;font-size:.86vw}.poster-info-grid b{margin-top:.35vh;color:#ffca3d;font-size:1.25vw}.poster-info-grid span{font-size:.95vw;color:#fff}.poster-flow{position:absolute;left:0;right:4vw;bottom:1.6vh;display:grid;grid-template-columns:repeat(5,1fr);gap:1.15vw;padding:1.25vh 1.05vw;border-radius:1vw;background:rgba(4,13,24,.72);border:1px solid rgba(255,211,88,.12)}.poster-flow div{text-align:center;color:#92a7bd}.poster-flow i{width:3.6vw;height:3.6vw;margin:0 auto .75vh;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#12263e,#08131f);border:1px solid rgba(124,185,255,.25);color:#92c9ff;font-style:normal;font-size:1.25vw}.poster-flow .active i{background:radial-gradient(circle,#fff2b4,#f2aa1e 62%,#573006);box-shadow:0 0 26px rgba(255,190,45,.62);color:#402706}.poster-flow b{display:block;color:#fff;font-size:.95vw}.poster-flow span{display:block;margin-top:.35vh;font-size:.76vw}.poster-trophy{position:relative;z-index:1;grid-row:1/3;display:grid;place-items:center;min-height:0}.trophy-rays{position:absolute;width:40vw;height:40vw;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,205,76,.18) 0 6deg,transparent 6deg 13deg);filter:blur(.4px);animation:raysSpin 28s linear infinite}.trophy-cup{position:relative;width:24vw;height:42vh;display:grid;place-items:center;filter:drop-shadow(0 0 38px rgba(255,184,38,.5))}.cup-bowl{position:absolute;top:4vh;width:15vw;height:18vh;border-radius:0 0 7.5vw 7.5vw;background:linear-gradient(110deg,#fff0a4,#f1a91f 44%,#8f4d06 72%,#ffe48c);display:grid;place-items:center;border:3px solid rgba(255,235,157,.55)}.cup-bowl span{width:4.9vw;height:4.9vw;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#151515,#050505);border:.25vw solid #e3b34a;color:#fff;font-size:2.25vw;font-weight:950}.cup-ear{position:absolute;top:6.2vh;width:5.4vw;height:10vh;border:.8vw solid #dfa03a;border-radius:50%;z-index:-1}.cup-ear.left{left:1.5vw}.cup-ear.right{right:1.5vw}.cup-stem{position:absolute;top:22vh;width:4vw;height:9vh;background:linear-gradient(90deg,#9b570a,#ffd66f,#8f4d06);clip-path:polygon(28% 0,72% 0,100% 100%,0 100%)}.cup-base{position:absolute;top:31vh;width:11vw;height:6.2vh;border-radius:.65vw;background:linear-gradient(180deg,#f6c04d,#6e3905);display:grid;place-items:center;color:#2a1700;font-weight:950;font-size:1.25vw;box-shadow:0 1.6vh 0 rgba(25,11,1,.92)}.poster-side{align-self:center}.poster-prizes{padding:1.8vh 1.25vw;border-radius:1vw;background:rgba(7,14,24,.78);border:1px solid rgba(255,207,81,.22);box-shadow:0 0 28px rgba(255,174,28,.12),inset 0 0 26px rgba(255,183,37,.08)}.poster-prizes h3{margin:0 0 1vh;text-align:center;color:#ffd25a;font-size:1.25vw}.poster-prizes .promo-reward-list div{grid-template-columns:4vw minmax(0,1fr);background:rgba(255,214,94,.05)}.poster-prizes .promo-reward-list b{font-size:1.55vw}.poster-bottom{grid-column:1/4;display:grid;grid-template-columns:1.1fr 1fr;gap:1.2vw}.poster-qr,.poster-countdown{min-height:12vh;border-radius:1vw;background:rgba(6,16,29,.82);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center}.poster-qr{gap:1.35vw;padding:1.2vh 1.4vw}.qr-mark{width:6.8vw;height:6.8vw;border-radius:.65vw;background:repeating-linear-gradient(45deg,#e8eef5 0 .35vw,#17283a .35vw .7vw);display:grid;place-items:center;border:.45vw solid #f0f4f8}.qr-mark b{width:2.7vw;height:2.7vw;border-radius:50%;display:grid;place-items:center;background:#0d1a28;color:#ffe07a;font-size:1.5vw}.poster-qr strong{display:block;color:#ffd156;font-size:2vw}.poster-qr span{display:block;margin:.45vh 0;color:#fff;font-size:1.15vw}.poster-qr em{font-style:normal;color:#9fb0c3;font-size:.92vw}.poster-countdown{padding:1.2vh 1.6vw;display:grid;text-align:center}.poster-countdown small{color:#c7d4e1;font-size:1vw}.poster-countdown div{display:flex;align-items:center;justify-content:center;gap:.55vw}.poster-countdown b{min-width:3.9vw;padding:.6vh .45vw;border-radius:.42vw;background:linear-gradient(180deg,#1f2b35,#07111e);border:1px solid rgba(255,196,58,.5);color:#ffbd24;font-size:2.35vw;font-variant-numeric:tabular-nums}.poster-countdown span{color:#fff;font-size:.9vw}.poster-countdown .progress{display:block;margin:.9vh auto 0;width:74%;height:.55vh;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}.poster-countdown .progress i{display:block;height:100%;background:linear-gradient(90deg,#ffb51c,#fff196);box-shadow:0 0 16px rgba(255,196,45,.45)}
:root {
  --bg: #03060d;
  --bg-soft: #07111f;
  --panel: rgba(7, 18, 34, 0.92);
  --panel-strong: rgba(6, 14, 28, 0.98);
  --line: rgba(71, 154, 255, 0.28);
  --line-soft: rgba(255, 255, 255, 0.08);
  --text: #f8fbff;
  --muted: #95a8bc;
  --blue: #24a8ff;
  --blue-soft: #58c7ff;
  --green: #28e285;
  --gold: #ffcb42;
  --gold-strong: #ff9c0f;
  --violet: #b86dff;
  --danger: #ff586d;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 0%, rgba(27, 78, 149, 0.28), transparent 30%),
    radial-gradient(circle at 0% 100%, rgba(9, 175, 124, 0.14), transparent 24%),
    radial-gradient(circle at 100% 100%, rgba(255, 152, 17, 0.12), transparent 20%),
    linear-gradient(180deg, #08101d 0%, #02040a 62%, #010205 100%);
  color: var(--text);
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size: 4vw 4vw;
  pointer-events: none;
  opacity: 0.2;
}

.screen-shell {
  position: relative;
  height: 100vh;
  padding: 1vh 1vw 0.55vh;
  display: flex;
  flex-direction: column;
  gap: 0.75vh;
}

.neon-card,
.panel,
.metric-card,
.ticker,
footer {
  position: relative;
  border: 1px solid var(--line-soft);
  background: linear-gradient(180deg, rgba(10, 18, 32, 0.92), rgba(5, 10, 20, 0.98));
  box-shadow:
    inset 0 0 26px rgba(14, 58, 112, 0.22),
    0 0 24px rgba(0, 0, 0, 0.28);
}

.neon-card::before,
.panel::before,
.metric-card::before,
.ticker::before,
footer::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.topbar {
  height: 10.5vh;
  display: grid;
  grid-template-columns: 27% 51% 22%;
  gap: 0.85vw;
  align-items: stretch;
}

.brand-shell,
.clock-shell {
  border-radius: 1vw;
  display: flex;
  align-items: center;
  padding: 0 1.05vw;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.9vw;
}

.brand-ball {
  width: 6vh;
  height: 6vh;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 1.3vw;
  color: #111;
  border: 2px solid #ffc955;
  background: radial-gradient(circle at 35% 30%, #fff 0 18%, #151515 19% 43%, #ff9b0f 44% 68%, #6e2f00 69%);
  box-shadow: 0 0 20px rgba(255, 172, 23, 0.48);
}

.brand h1 {
  margin: 0;
  font-size: 1.72vw;
  line-height: 1.08;
  font-weight: 900;
}

.brand p {
  margin: 0.45vh 0 0;
  color: #bfd0e1;
  font-size: 0.72vw;
  letter-spacing: 0.16em;
}

.header-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75vw;
  width: max-content;
  justify-self: center;
}

.metric-card {
  border-radius: 0.95vw;
  padding: 1.15vh 0.95vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}

.metric-card small {
  color: #d8e7f5;
  font-size: 0.72vw;
  font-weight: 700;
  margin-bottom: 0.55vh;
}

.metric-main {
  display: flex;
  align-items: baseline;
  gap: 0.28vw;
}

.metric-main b {
  font-size: 2.08vw;
  line-height: 1;
  font-weight: 900;
}

.metric-main span {
  color: #d8e6f3;
  font-size: 1vw;
  font-weight: 700;
}

.blue-glow { box-shadow: inset 0 0 26px rgba(20, 105, 191, 0.2), 0 0 28px rgba(18, 125, 245, 0.2); }
.violet-glow { box-shadow: inset 0 0 26px rgba(117, 57, 181, 0.22), 0 0 28px rgba(157, 79, 247, 0.2); }
.emerald-glow { box-shadow: inset 0 0 26px rgba(20, 125, 88, 0.22), 0 0 28px rgba(23, 196, 128, 0.16); }
.gold-glow { box-shadow: inset 0 0 26px rgba(145, 98, 19, 0.24), 0 0 28px rgba(255, 165, 37, 0.18); }

.clock-shell {
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
}

.clock-shell b {
  display: block;
  font-size: 2.5vw;
  line-height: 1;
  font-weight: 900;
}

.clock-shell span {
  margin-top: 0.5vh;
  font-size: 0.92vw;
  color: #d7e1ea;
}

.dashboard {
  flex: 1;
  min-height: 0;
}

.dashboard-v2 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(0, 45.5vh) minmax(0, 18.5vh) minmax(0, 13.6vh);
  gap: 0.85vh 0.8vw;
}

.column {
  min-height: 0;
  display: grid;
  gap: 0.85vh;
}

.column-left {
  grid-row: 1 / 3;
  grid-column: 1;
  grid-template-rows: minmax(0, 73%) minmax(0, 27%);
}

.column-center {
  grid-row: 1 / 3;
  grid-column: 2;
  grid-template-rows: minmax(0, 67%) minmax(0, 33%);
}

.column-right {
  grid-row: 1 / 3;
  grid-column: 3;
  grid-template-rows: minmax(0, 73%) minmax(0, 27%);
}

.panel-wide {
  min-height: 0;
}

.notice-panel {
  grid-column: 1;
  grid-row: 3;
}

.battle-panel {
  grid-column: 2;
  grid-row: 3;
}

.activity-panel {
  grid-column: 3;
  grid-row: 3;
}

.panel {
  min-height: 0;
  border-radius: 0.95vw;
  overflow: hidden;
}

.board-blue { border-color: rgba(33, 158, 255, 0.42); }
.board-green { border-color: rgba(25, 211, 123, 0.4); }

.panel-title {
  height: 5.2vh;
  padding: 0 1vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 1.55vw;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.panel-title em {
  font-size: 0.72vw;
  color: #cedced;
  font-style: normal;
  font-weight: 700;
}

.strength-panel > .panel-title,
.hero-panel > .panel-title,
.active-panel > .panel-title {
  height: 7.1vh;
  padding: 0.5vh 1vw 0.42vh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.16vh;
}

.strength-panel > .panel-title > span,
.hero-panel > .panel-title > span,
.active-panel > .panel-title > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.88vw;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.01em;
}

.strength-panel > .panel-title em,
.hero-panel > .panel-title em,
.active-panel > .panel-title em {
  display: none;
  font-size: 0.82vw;
  line-height: 1.1;
  color: rgba(226, 235, 246, 0.9);
  letter-spacing: 0.04em;
}

.hero-panel > .panel-title em {
  color: rgba(255, 228, 171, 0.92);
}

.panel-title-cyan {
  background: linear-gradient(180deg, rgba(16, 77, 142, 0.42), rgba(9, 36, 68, 0.12));
  box-shadow: inset 0 -1px 0 rgba(36, 168, 255, 0.2);
}

.panel-title-gold {
  background: linear-gradient(180deg, rgba(113, 71, 11, 0.56), rgba(34, 20, 3, 0.18));
  box-shadow: inset 0 -1px 0 rgba(255, 183, 34, 0.25);
}

.panel-title-green {
  background: linear-gradient(180deg, rgba(18, 90, 58, 0.48), rgba(4, 33, 26, 0.12));
  box-shadow: inset 0 -1px 0 rgba(29, 210, 126, 0.25);
}

.panel-title-violet {
  background: linear-gradient(180deg, rgba(94, 45, 145, 0.48), rgba(24, 10, 42, 0.12));
  box-shadow: inset 0 -1px 0 rgba(184, 109, 255, 0.25);
}

.rank-head {
  height: 4vh;
  padding: 0 0.8vw;
  display: grid;
  align-items: center;
  color: #cad9e8;
  font-size: 0.9vw;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.ladder-head {
  grid-template-columns: 12% 30% 18% 22% 18%;
}

.recharge-head {
  grid-template-columns: 14% 32% 24% 30%;
}

.rank-list,
.hot-list,
.match-list,
.lottery-box,
.star-box,
.notice-list,
.campaign-list,
.activity-list {
  min-height: 0;
}

.rank-list {
  height: calc(100% - 9.2vh);
  padding: 0.65vh 0.58vw 0;
}

.rank-row {
  height: 4.75vh;
  margin-bottom: 0.35vh;
  padding: 0 0.55vw;
  display: grid;
  align-items: center;
  border-radius: 0.6vw;
  background: linear-gradient(90deg, rgba(8, 25, 45, 0.9), rgba(11, 20, 36, 0.7));
  border: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 1.08vw;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ladder-row {
  grid-template-columns: 12% 30% 18% 22% 18%;
}

.recharge-row {
  grid-template-columns: 14% 32% 24% 30%;
}

.rank-row.top {
  background: linear-gradient(90deg, rgba(56, 31, 3, 0.88), rgba(32, 16, 5, 0.72));
  border-color: rgba(255, 195, 77, 0.18);
}

.rank-row.changed {
  transform: translateX(0.2vw);
  box-shadow: 0 0 18px rgba(68, 177, 255, 0.28);
}

.rank-no {
  width: 2vw;
  height: 2vw;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #ffda60, #ff970a);
  color: #171717;
  font-size: 1.12vw;
  font-weight: 900;
  box-shadow: 0 0 12px rgba(255, 183, 50, 0.34);
}

.player {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5vw;
}

.player b,
.match-player b {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar,
.stage-avatar,
.winner-avatar,
.rolling-avatar {
  overflow: hidden;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #2d4d77, #0c1829);
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 900;
}

.avatar {
  width: 1.9vw;
  height: 1.9vw;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.avatar img,
.stage-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.level,
.money,
.gift,
.score,
.delta {
  font-weight: 800;
}

.level { color: #ff6ea9; }
.score { color: #ffd144; }
.money { color: #ffe073; }
.gift { color: #ffc23f; }
.delta.up { color: #ff5469; }
.delta.down { color: #55d4a2; }

.rolling-number {
  display: inline-block;
  min-width: 4.2ch;
  text-align: right;
  font-variant-numeric: tabular-nums;
  transform-origin: right center;
}

.rolling-number.is-rolling {
  animation: rollingNumberGlow 0.92s cubic-bezier(0.18, 0.9, 0.22, 1);
}

@keyframes rollingNumberGlow {
  0% { transform: translateY(0.36vh) scale(0.92); filter: brightness(0.86); }
  45% { transform: translateY(-0.12vh) scale(1.16); color: #54f2a7; text-shadow: 0 0 18px rgba(84, 242, 167, 0.76); filter: brightness(1.35); }
  100% { transform: none; filter: brightness(1); }
}

.panel-footer-link {
  height: 4vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #80d6ff;
  font-size: 0.84vw;
  font-weight: 700;
}

.hero-panel {
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 179, 29, 0.24), transparent 24%),
    linear-gradient(180deg, rgba(36, 20, 3, 0.74), rgba(8, 9, 17, 0.96));
}

.hero-panel::after,
.board-blue::after,
.board-green::after {
  content: "";
  position: absolute;
  left: 1.1vw;
  right: 1.1vw;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
  pointer-events: none;
}

.star-stage {
  height: calc(100% - 5.85vh);
  padding: 0.8vh 0.9vw 0.7vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.star-stage-grid {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.18fr 1fr;
  gap: 0.8vw;
  align-items: start;
}

.star-side,
.star-center {
  position: relative;
  min-height: 0;
  border-radius: 0.9vw;
  padding: 1.2vh 0.6vw 1vh;
  text-align: center;
  background: linear-gradient(180deg, rgba(14, 18, 30, 0.54), rgba(7, 10, 18, 0.86));
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.star-center {
  padding-top: 2vh;
  background: radial-gradient(circle at 50% 18%, rgba(255, 204, 44, 0.24), rgba(31, 18, 5, 0.62) 42%, rgba(9, 8, 15, 0.94) 100%);
  border-color: rgba(255, 196, 68, 0.22);
  box-shadow: 0 0 22px rgba(255, 173, 44, 0.18);
}

.star-side b,
.star-center b {
  display: block;
  font-size: 1.58vw;
  margin-top: 0.6vh;
}

.star-side small,
.star-center small {
  display: block;
  color: #ff6da4;
  font-size: 0.92vw;
  margin-top: 0.3vh;
  font-weight: 800;
}

.stage-avatar {
  width: 6.5vw;
  height: 6.5vw;
  margin: 0 auto;
  border: 2px solid rgba(255, 255, 255, 0.14);
}

.stage-avatar.hero {
  width: 8vw;
  height: 8vw;
  border-color: rgba(255, 210, 88, 0.34);
  box-shadow: 0 0 26px rgba(255, 183, 42, 0.22);
}

.stage-rank {
  width: 2.5vw;
  height: 2.5vw;
  margin: -0.7vh auto 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #fefefe, #b9c4d2);
  color: #101820;
  font-size: 1.28vw;
  font-weight: 900;
}

.star-center .stage-rank {
  background: linear-gradient(180deg, #ffe58b, #ffab1a);
}

.stage-score {
  margin-top: 0.7vh;
  font-size: 1.22vw;
  font-weight: 900;
  color: #ffb33c;
}

.stage-score.main {
  color: #ff4c5f;
  font-size: 1.5vw;
}

.crown {
  position: absolute;
  top: -0.4vh;
  left: 50%;
  transform: translateX(-50%);
  font-size: 2.2vw;
  filter: drop-shadow(0 0 18px rgba(255, 193, 56, 0.44));
}

.star-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.55vw;
  margin-top: 0.45vh;
}

.star-stats div {
  padding: 0.8vh 0.35vw;
  border-radius: 0.55vw;
  background: rgba(255, 194, 71, 0.08);
  text-align: center;
}

.star-stats span {
  display: block;
  color: #cfdae6;
  font-size: 0.72vw;
}

.star-stats b {
  display: block;
  margin-top: 0.4vh;
  font-size: 1.28vw;
  color: #ffd15f;
}

.star-follow-board {
  margin-top: 0.12vh;
  padding: 0.18vh 0.45vw 0.22vh;
  border-radius: 0.7vw;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 193, 62, 0.12), transparent 34%),
    linear-gradient(180deg, rgba(255, 202, 98, 0.08), rgba(12, 10, 16, 0.84));
  border: 1px solid rgba(255, 206, 94, 0.16);
  box-shadow: inset 0 0 16px rgba(255, 184, 52, 0.08);
}

.star-follow-title {
  display: none;
  margin-bottom: 0;
  color: #f3dfac;
  font-size: 0.68vw;
  font-weight: 800;
  text-align: center;
  letter-spacing: 0.08em;
}

.star-follow-kicker {
  min-height: 3.3vh;
  padding: 0 0.45vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #f5e4b0;
  font-weight: 900;
}

.star-follow-kicker span {
  font-size: 1.02vw;
  text-shadow: 0 0 14px rgba(255, 190, 69, 0.18);
}

.star-follow-kicker b {
  color: #ffcb4f;
  font-size: 0.82vw;
  letter-spacing: 0.12em;
}

.star-follow-head {
  display: none;
  grid-template-columns: 2vw minmax(0, 1.2fr) minmax(0, 0.8fr) auto;
  align-items: center;
  gap: 0.32vw;
  min-height: 3.8vh;
  padding: 0 0.55vw;
  color: #c7d3e3;
  font-size: 0.76vw;
  font-weight: 700;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.03);
}

.star-follow-head span:last-child {
  justify-self: end;
  text-align: right;
}

.star-follow-list {
  display: grid;
  gap: 0.34vh;
}

.star-follow-rank {
  width: 1.98vw;
  height: 1.98vw;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, rgba(36, 57, 84, 0.96), rgba(12, 24, 42, 0.98));
  color: #e9f3ff;
  font-size: 1.44vw;
  font-weight: 900;
  border: 1px solid rgba(121, 175, 229, 0.2);
}

.star-follow-row {
  display: grid;
  grid-template-columns: 2vw minmax(0, 1.2fr) minmax(0, 0.8fr) auto;
  align-items: center;
  gap: 0.32vw;
  height: 7.39vh;
  min-height: 7.39vh;
  max-height: 7.39vh;
  padding: 0 0.55vw;
  border-radius: 0.52vw;
  background: linear-gradient(90deg, rgba(18, 42, 70, 0.96), rgba(7, 18, 34, 0.94));
  border: 1px solid rgba(79, 165, 255, 0.16);
}

.star-follow-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #f7fbff;
  font-size: 1.39vw;
  font-weight: 900;
  line-height: calc(1.5em + 5px);
}

.star-follow-level {
  color: #ff6da4;
  font-size: 1.39vw;
  font-weight: 800;
  line-height: calc(1.5em + 5px);
}

.star-follow-score {
  color: #ffd76a;
  font-size: 1.39vw;
  font-weight: 900;
  justify-self: end;
  text-align: right;
  line-height: calc(1.5em + 5px);
}

.star-follow-motto {
  min-height: 2.4vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffbf3f;
  font-size: 0.8vw;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-shadow: 0 0 12px rgba(255, 183, 48, 0.15);
}

.star-follow-motto::before,
.star-follow-motto::after {
  content: "";
  width: 2.4vw;
  height: 1px;
  margin: 0 0.45vw;
  background: linear-gradient(90deg, transparent, rgba(255, 190, 54, 0.6), transparent);
}

.star-follow-empty {
  padding: 0.7vh 0.4vw;
  color: #c6d1dd;
  font-size: 0.72vw;
  text-align: center;
}

.hot-gallery {
  height: calc(100% - 5.2vh);
  padding: 1vh 0.85vw;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.7vw;
}

.hot-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-radius: 0.65vw;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(10, 24, 40, 0.92), rgba(5, 10, 19, 0.95));
  border: 1px solid rgba(73, 152, 255, 0.18);
}

.hot-thumb {
  flex: 1;
  min-height: 0;
  position: relative;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 171, 51, 0.22), transparent 30%),
    linear-gradient(135deg, rgba(16, 83, 156, 0.62), rgba(9, 28, 48, 0.95));
}

.hot-thumb::before,
.hot-thumb::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.hot-thumb::before {
  width: 5.8vw;
  height: 5.8vw;
  left: 50%;
  top: 48%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 35% 30%, #fff 0 18%, #161616 19% 43%, #ec9d17 44% 68%, #6c2c00 69%);
  box-shadow: 0 0 26px rgba(255, 170, 35, 0.18);
}

.hot-thumb::after {
  width: 2.2vw;
  height: 2.2vw;
  right: 0.8vw;
  bottom: 0.7vh;
  background: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.hot-thumb span {
  position: absolute;
  left: 0.7vw;
  bottom: 0.7vh;
  padding: 0.28vh 0.5vw;
  border-radius: 99px;
  background: rgba(0, 0, 0, 0.35);
  font-size: 0.7vw;
  font-weight: 700;
}

.hot-meta {
  padding: 0.72vh 0.65vw 0.85vh;
}

.hot-meta b {
  display: block;
  font-size: 0.9vw;
}

.hot-meta small {
  display: block;
  margin-top: 0.35vh;
  color: #b7cade;
  font-size: 0.68vw;
}

.lottery-box {
  height: calc(100% - 5.2vh);
  padding: 1.1vh 0.95vw;
}

.lottery-empty,
.lottery-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8vw;
}

.lottery-empty strong,
.lottery-copy h3 {
  font-size: 1.68vw;
  margin: 0;
}

.lottery-empty span,
.lottery-copy p,
.lottery-countdown,
.lottery-meta-grid span,
.lottery-note {
  color: #e2d6ff;
  font-size: 0.84vw;
}

.lottery-copy p {
  margin: 0.35vh 0 0;
}

.lottery-gift {
  width: 6vw;
  height: 6vw;
  border-radius: 1vw;
  position: relative;
  background: linear-gradient(180deg, #d88cff, #7f30c7);
  box-shadow: 0 0 24px rgba(193, 91, 255, 0.24);
}

.lottery-gift::before,
.lottery-gift::after {
  content: "";
  position: absolute;
  background: linear-gradient(180deg, #ffd56f, #ff980e);
}

.lottery-gift::before {
  width: 1vw;
  height: 100%;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}

.lottery-gift::after {
  width: 100%;
  height: 0.85vw;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.lottery-prize {
  font-size: 1.52vw;
  color: #ffd76c;
  font-weight: 900;
}

.lottery-meta-grid {
  display: grid;
  gap: 0.4vh;
}

.lottery-meta-grid b {
  display: block;
  margin-top: 0.2vh;
  color: #fff;
  font-size: 1.05vw;
}

.lottery-balls {
  display: flex;
  align-items: center;
  gap: 0.35vw;
}

.lottery-balls i {
  width: 2.15vw;
  height: 2.15vw;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-style: normal;
  font-weight: 900;
  color: #fff;
  background: radial-gradient(circle at 35% 35%, #fff 0 12%, #212121 13% 40%, #7f30c7 41% 70%, #3f155d 71%);
}

.notice-list,
.activity-list {
  height: calc(100% - 5.2vh);
  padding: 0.7vh 0.75vw;
  display: flex;
  flex-direction: column;
  gap: 0.45vh;
}

.notice-item,
.activity-item {
  min-height: 0;
  flex: 1;
  display: grid;
  grid-template-columns: 4.1vw 1fr;
  align-items: center;
  gap: 0.55vw;
  padding: 0.45vh 0.55vw;
  border-radius: 0.55vw;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.notice-item span,
.activity-item time {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.15vh;
  border-radius: 99px;
  background: rgba(36, 168, 255, 0.15);
  color: #7ed5ff;
  font-size: 0.68vw;
  font-weight: 800;
}

.notice-item b,
.activity-item span {
  display: block;
  font-size: 0.82vw;
}

.notice-item small {
  display: block;
  margin-top: 0.24vh;
  color: #9db4c7;
  font-size: 0.67vw;
}

.activity-item {
  grid-template-columns: 4.6vw 1fr;
}

.activity-item time {
  background: rgba(29, 210, 126, 0.14);
  color: #74e4ad;
}

.match-list {
  height: calc(100% - 5.2vh);
  padding: 0.8vh 0.8vw;
  display: flex;
  flex-direction: column;
  gap: 0.45vh;
}

.match-item {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.45vw;
  padding: 0.35vh 0.55vw;
  border-radius: 0.55vw;
  background: linear-gradient(90deg, rgba(11, 29, 48, 0.88), rgba(10, 18, 29, 0.78));
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.match-player {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.45vw;
}

.match-player.right {
  justify-content: flex-end;
}

.match-score {
  min-width: 7.8vw;
  text-align: center;
}

.match-score strong {
  font-size: 1.25vw;
  color: #ffd456;
}

.match-score i {
  margin: 0 0.18vw;
  font-style: normal;
  color: #b8cae0;
}

.match-score small {
  display: block;
  margin-top: 0.18vh;
  font-size: 0.67vw;
  color: #9db4c7;
}

.campaign-highlight {
  height: calc(100% - 5.2vh);
  padding: 0.8vh 0.8vw;
  display: flex;
  align-items: stretch;
}

.campaign-card {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 0.72vw;
  padding: 1.1vh 0.85vw 0.95vh;
  background:
    radial-gradient(circle at 100% 30%, rgba(255, 194, 44, 0.16), transparent 24%),
    linear-gradient(135deg, rgba(65, 24, 103, 0.92), rgba(10, 14, 38, 0.98));
  border: 1px solid rgba(200, 125, 255, 0.2);
  position: relative;
  overflow: hidden;
}

.campaign-card.featured::after {
  content: "🏆";
  position: absolute;
  right: 0.8vw;
  bottom: 0.9vh;
  font-size: 4.2vw;
  opacity: 0.9;
  filter: drop-shadow(0 0 18px rgba(255, 188, 53, 0.24));
}

.campaign-tag {
  align-self: flex-start;
  padding: 0.24vh 0.45vw;
  border-radius: 999px;
  background: rgba(70, 162, 255, 0.18);
  color: #8ad7ff;
  font-size: 0.64vw;
  font-weight: 900;
}

.campaign-copy h3 {
  margin: 0.8vh 0 0;
  font-size: 1.4vw;
}

.campaign-copy p {
  margin: 0.48vh 0 0;
  color: #ffd54f;
  font-size: 1.1vw;
  font-weight: 800;
}

.campaign-meta {
  margin-top: 0.85vh;
  display: grid;
  gap: 0.28vh;
}

.campaign-meta span {
  color: #cdd9ea;
  font-size: 0.72vw;
}

.campaign-meta b {
  color: #fff;
}

.campaign-card button {
  width: 6vw;
  height: 3vh;
  border: 0;
  border-radius: 0.5vw;
  background: linear-gradient(180deg, #2d73ff, #1648ce);
  color: #fff;
  font-size: 0.82vw;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 0 18px rgba(39, 112, 255, 0.24);
}

.ticker {
  height: 4.2vh;
  border-radius: 0.82vw;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  overflow: hidden;
}

.ticker-label {
  height: 100%;
  padding: 0 1vw;
  display: inline-flex;
  align-items: center;
  color: #ffcc44;
  font-size: 0.82vw;
  font-weight: 900;
  background: linear-gradient(90deg, rgba(255, 183, 28, 0.18), rgba(255, 183, 28, 0));
}

.ticker-window {
  overflow: hidden;
  white-space: nowrap;
}

.ticker-content {
  display: inline-flex;
  align-items: center;
  gap: 2.2vw;
  padding-left: 100%;
  animation: tickerMove 26s linear infinite;
  font-size: 0.86vw;
  color: #dce8f7;
}

footer {
  height: 2.2vh;
  border-radius: 0.5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.8vw;
  font-size: 0.68vw;
  color: #aabed3;
}

footer b {
  color: #fff;
}

.empty-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6vh;
  border-radius: 0.7vw;
  background: radial-gradient(circle at 50% 38%, rgba(53, 123, 215, 0.14), transparent 40%);
  text-align: center;
}

.empty-icon {
  font-size: 2.5vw;
}

.empty-card strong {
  font-size: 1.08vw;
}

.empty-card span {
  color: #a9bfd2;
  font-size: 0.72vw;
}

.empty-pulse {
  display: flex;
  gap: 0.3vw;
  margin-top: 0.6vh;
}

.empty-pulse i {
  width: 0.34vw;
  height: 0.34vw;
  border-radius: 50%;
  background: #57c9ff;
  animation: emptyPulse 1.4s ease-in-out infinite;
}

.empty-pulse i:nth-child(2) { animation-delay: 0.2s; }
.empty-pulse i:nth-child(3) { animation-delay: 0.4s; }

.overlay {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 90;
}

.overlay.show {
  display: flex;
}

.overlay-dim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.68);
  backdrop-filter: blur(6px);
}

.dimmed {
  filter: blur(2px) brightness(0.65);
}

.lottery-card,
.draw-card {
  position: relative;
  z-index: 2;
  width: min(56vw, 1080px);
  padding: 3vh 3vw;
  border-radius: 1.5vw;
  border: 1px solid rgba(255, 213, 89, 0.24);
  background: linear-gradient(180deg, rgba(32, 16, 3, 0.95), rgba(11, 8, 18, 0.98));
  text-align: center;
  box-shadow: 0 0 40px rgba(255, 188, 66, 0.18);
}

.lottery-ribbon,
.draw-kicker {
  display: inline-block;
  padding: 0.4vh 0.8vw;
  border-radius: 999px;
  background: rgba(255, 204, 80, 0.14);
  color: #ffd86a;
  font-size: 0.86vw;
  font-weight: 800;
}

.lottery-card h2,
.draw-card h2 {
  margin: 1.4vh 0 1vh;
  font-size: 2.3vw;
}

.prize-label,
.draw-tip,
.rolling-tip,
.lottery-meta {
  color: #cfdbea;
  font-size: 0.9vw;
}

.prize {
  margin-top: 0.7vh;
  font-size: 1.8vw;
  color: #ffd056;
  font-weight: 900;
}

.rolling-area,
.winner-area {
  margin-top: 2.2vh;
}

.rolling-avatar,
.winner-avatar {
  width: 6.5vw;
  height: 6.5vw;
  margin: 0 auto 1vh;
  border: 2px solid rgba(255, 255, 255, 0.16);
  font-size: 2.2vw;
}

.rolling-name,
.winner-name {
  font-size: 1.8vw;
  font-weight: 900;
}

.winner-area {
  display: none;
}

.winner-area.show {
  display: block;
}

.winner-title {
  color: #ffd86c;
  font-size: 1.2vw;
  font-weight: 900;
}

.winner-prize {
  margin-top: 0.6vh;
  font-size: 1.1vw;
}

.draw-rolling,
.draw-result {
  margin-top: 1.8vh;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.7vw;
}

.draw-rolling span,
.draw-result div {
  padding: 0.8vh 0.6vw;
  border-radius: 0.65vw;
  background: rgba(255, 255, 255, 0.05);
}

.draw-rolling b,
.draw-result b {
  display: block;
  margin-top: 0.3vh;
}

.draw-result em {
  font-style: normal;
  color: #ffcd4b;
  font-weight: 900;
}

.confetti {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.confetti i {
  position: absolute;
  top: -5%;
  width: 0.5vw;
  height: 1.4vh;
  background: linear-gradient(180deg, #ffd35b, #ff5d62);
  animation: confettiFall 2.4s linear infinite;
}

.demo-controls {
  position: fixed;
  right: 1vw;
  bottom: 1vh;
  z-index: 95;
  display: flex;
  gap: 0.5vw;
}

.demo-controls button {
  height: 3.4vh;
  padding: 0 0.9vw;
  border: 0;
  border-radius: 0.5vw;
  background: rgba(8, 18, 34, 0.92);
  color: #fff;
  font-size: 0.78vw;
  font-weight: 800;
  cursor: pointer;
}

@keyframes tickerMove {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

@keyframes emptyPulse {
  0%,
  100% { opacity: 0.28; transform: scale(0.82); }
  50% { opacity: 1; transform: scale(1.18); }
}

@keyframes confettiFall {
  0% { transform: translateY(-10vh) rotate(0deg); opacity: 1; }
  100% { transform: translateY(110vh) rotate(560deg); opacity: 0.2; }
}

@media (max-width: 1280px) {
  .screen-shell {
    overflow: auto;
    height: auto;
    min-height: 100vh;
  }

  html,
  body {
    overflow: auto;
  }

  .topbar,
  .dashboard-v2 {
    grid-template-columns: 1fr;
  }

  .header-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .dashboard-v2 {
    grid-template-rows: auto;
  }

  .column-left,
  .column-center,
  .column-right,
  .notice-panel,
  .battle-panel,
  .activity-panel {
    grid-column: auto;
    grid-row: auto;
  }

  .column-left,
  .column-center,
  .column-right {
    grid-template-rows: auto;
  }

  .hot-gallery,
  .draw-rolling,
  .draw-result {
    grid-template-columns: 1fr;
  }

  .star-stage-grid {
    grid-template-columns: 1fr 1.12fr 1fr;
    gap: 0.45vw;
  }

  .star-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.3vw;
  }
}


/* ===== TV V1.5.1：55寸电视 / 3米观看优化 ===== */
/* 主区域只保留三列核心内容，底部运营卡片压缩高度 */
.dashboard-v2 {
  grid-template-rows: minmax(0, 1fr);
}

.column-left,
.column-center,
.column-right {
  grid-row: 1;
  grid-template-rows: minmax(0, 1fr) 12.5vh;
}

.notice-panel,
.battle-panel,
.activity-panel {
  display: none;
}


/* 表头清楚但不抢视觉 */
.rank-head {
  height: 4.2vh;
  padding: 0 0.9vw;
  font-size: 0.84vw;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.045);
}

/* 仅展示前5名，每行高度约为旧版2倍 */
.rank-list {
  height: calc(100% - 12.1vh);
  padding: 0.9vh 0.72vw 0;
  display: flex;
  flex-direction: column;
  gap: 0.85vh;
}

.rank-row {
  height: 8.55vh;
  min-height: 8.55vh;
  margin: 0;
  padding: 0 0.72vw;
  border-radius: 0.72vw;
  font-size: 1.18vw;
  background:
    linear-gradient(90deg, rgba(17, 42, 70, 0.96), rgba(7, 19, 35, 0.92));
  border: 1px solid rgba(88, 174, 255, 0.15);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    0 0 14px rgba(0, 0, 0, 0.16);
}

.rank-row:nth-child(even) {
  background:
    linear-gradient(90deg, rgba(11, 32, 55, 0.97), rgba(5, 16, 29, 0.94));
}

.active-panel .rank-row {
  background:
    linear-gradient(90deg, rgba(12, 61, 43, 0.88), rgba(4, 30, 24, 0.94));
  border-color: rgba(45, 224, 139, 0.13);
}

.active-panel .rank-row:nth-child(even) {
  background:
    linear-gradient(90deg, rgba(8, 47, 34, 0.92), rgba(3, 25, 20, 0.96));
}

.rank-row.top {
  background:
    linear-gradient(90deg, rgba(84, 49, 5, 0.96), rgba(39, 24, 5, 0.9));
  border-color: rgba(255, 200, 69, 0.25);
}

.active-panel .rank-row.top {
  background:
    linear-gradient(90deg, rgba(57, 72, 8, 0.9), rgba(9, 48, 29, 0.94));
  border-color: rgba(255, 208, 66, 0.22);
}

.rank-no {
  width: 2.55vw;
  height: 2.55vw;
  font-size: 1.2vw;
}

.avatar {
  width: 2.5vw;
  height: 2.5vw;
}

.player {
  gap: 0.58vw;
}

.player b,
.level,
.money,
.gift,
.score,
.delta {
  font-weight: 900;
}

.panel-footer-link {
  height: 3.2vh;
  font-size: 0.78vw;
}

/* 下方三块内容压缩，避免抢占排行榜高度 */
.promo-panel .panel-title,
.media-panel .panel-title,
.event-panel .panel-title {
  height: 3.8vh;
  font-size: 0.92vw;
}

.promo-panel .panel-title em,
.media-panel .panel-title em,
.event-panel .panel-title em {
  font-size: 0.62vw;
}

.lottery-box,
.hot-gallery,
.campaign-highlight {
  height: calc(100% - 3.8vh);
  padding-top: 0.55vh;
  padding-bottom: 0.55vh;
}

.hot-meta {
  padding-top: 0.42vh;
  padding-bottom: 0.45vh;
}

.hot-meta b {
  font-size: 0.76vw;
}

.hot-meta small {
  margin-top: 0.15vh;
  font-size: 0.59vw;
}

.campaign-card {
  padding-top: 0.65vh;
  padding-bottom: 0.55vh;
}

.campaign-copy h3 {
  margin-top: 0.35vh;
  font-size: 1.08vw;
}

.campaign-copy p {
  margin-top: 0.25vh;
  font-size: 0.82vw;
}

.campaign-meta {
  margin-top: 0.35vh;
}

.campaign-card button {
  height: 2.55vh;
}


/* ===== TV V1.5.3：双榜 10 人 + 前三荣誉徽章 + 中部运营轮播 ===== */
.topbar {
  grid-template-columns: 27% 51% 22%;
}

.brand-shell,
.header-stats,
.clock-shell {
  min-width: 0;
}

.header-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-v2 {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
}

.column-left,
.column-right {
  grid-row: 1;
  grid-template-rows: minmax(0, 1fr);
}

.column-center {
  grid-row: 1;
  grid-template-rows: minmax(0, 1fr);
}

/* 左右两侧完整留给 10 人榜单 */
.strength-panel,
.active-panel,
.hero-panel {
  height: 100%;
}

.rank-head {
  height: 3.8vh;
  font-size: 0.76vw;
}

.rank-list {
  height: calc(100% - 11.15vh);
  padding: 0.55vh 0.55vw 0;
  gap: 0.34vh;
  overflow-y: auto;
}

.rank-row {
  flex: 0 0 auto;
  height: 7.39vh;
  min-height: 7.39vh;
  max-height: 7.39vh;
  padding: 0 0.55vw;
  border-radius: 0.52vw;
  font-size: 1.39vw;
  background: linear-gradient(90deg, rgba(18, 42, 70, 0.96), rgba(7, 18, 34, 0.94));
  border: 1px solid rgba(79, 165, 255, 0.16);
}

.rank-row:nth-child(even) {
  background: linear-gradient(90deg, rgba(10, 31, 54, 0.98), rgba(5, 15, 29, 0.96));
}

.active-panel .rank-row {
  background: linear-gradient(90deg, rgba(10, 55, 39, 0.94), rgba(3, 28, 22, 0.97));
}

.active-panel .rank-row:nth-child(even) {
  background: linear-gradient(90deg, rgba(7, 43, 31, 0.96), rgba(2, 23, 18, 0.98));
}

.rank-no {
  width: 1.98vw;
  height: 1.98vw;
  font-size: 1.44vw;
  background: linear-gradient(180deg, rgba(36, 57, 84, 0.96), rgba(12, 24, 42, 0.98));
  color: #e9f3ff;
  border: 1px solid rgba(121, 175, 229, 0.2);
  box-shadow: none;
}

.rank-row.rank-1 .rank-no,
.rank-row.rank-2 .rank-no,
.rank-row.rank-3 .rank-no {
  width: 2.23vw;
  height: 2.23vw;
  font-size: 1.85vw;
  border: none;
}

.rank-row.rank-1 {
  background: linear-gradient(90deg, rgba(116, 70, 3, 0.98), rgba(48, 28, 3, 0.94));
  border-color: rgba(255, 205, 78, 0.48);
  box-shadow: inset 0 0 20px rgba(255, 179, 28, 0.11), 0 0 12px rgba(255, 170, 20, 0.12);
}
.rank-row.rank-2 {
  background: linear-gradient(90deg, rgba(64, 78, 96, 0.98), rgba(25, 34, 48, 0.95));
  border-color: rgba(205, 224, 244, 0.35);
}
.rank-row.rank-3 {
  background: linear-gradient(90deg, rgba(103, 52, 21, 0.98), rgba(47, 25, 14, 0.95));
  border-color: rgba(229, 137, 78, 0.38);
}

.rank-row.rank-1 .rank-no {
  background: radial-gradient(circle at 35% 25%, #fff2a6, #ffc21f 55%, #a85a00 100%);
  filter: drop-shadow(0 0 7px rgba(255, 194, 35, 0.7));
}
.rank-row.rank-2 .rank-no {
  background: radial-gradient(circle at 35% 25%, #ffffff, #c9d6e5 58%, #67768b 100%);
  filter: drop-shadow(0 0 6px rgba(203, 220, 241, 0.45));
}
.rank-row.rank-3 .rank-no {
  background: radial-gradient(circle at 35% 25%, #ffd0a1, #db7b35 58%, #7a3210 100%);
  filter: drop-shadow(0 0 6px rgba(222, 119, 54, 0.48));
}

.avatar {
  width: 1.98vw;
  height: 1.98vw;
}

.player,
.ladder-row > .level,
.ladder-row > .score,
.ladder-row > .delta,
.recharge-row > .money,
.recharge-row > .gift {
  line-height: calc(1.5em + 5px);
}

.rank-row.rank-1 .avatar {
  border-color: rgba(255, 211, 84, 0.72);
  box-shadow: 0 0 10px rgba(255, 190, 37, 0.35);
}

.panel-footer-link {
  height: 2.8vh;
  font-size: 0.72vw;
}

/* 中间下方固定展示：左侧抽奖，右侧赛事，不再轮播 */
.center-ops-grid {
  display: none;
}

.center-ops-grid > .panel {
  min-width: 0;
  height: 100%;
  overflow: hidden;
}

.center-ops-grid .panel-title {
  height: 3.8vh;
  padding: 0 0.65vw;
  font-size: 0.82vw;
}

.center-ops-grid .panel-title em {
  font-size: 0.58vw;
}

.center-ops-grid .lottery-box,
.center-ops-grid .campaign-highlight {
  height: calc(100% - 3.8vh);
  min-height: 0;
}

.center-ops-grid .lottery-box {
  padding: 0.6vh 0.65vw;
}

.center-ops-grid .lottery-copy h3 {
  font-size: 0.98vw;
}

.center-ops-grid .lottery-copy p,
.center-ops-grid .lottery-prize,
.center-ops-grid .lottery-countdown,
.center-ops-grid .lottery-meta-grid {
  font-size: 0.62vw;
}

.center-ops-grid .campaign-card {
  height: 100%;
  padding: 0.7vh 0.65vw;
}

.center-ops-grid .campaign-copy h3 {
  font-size: 1vw;
}

.center-ops-grid .campaign-copy p,
.center-ops-grid .campaign-meta {
  font-size: 0.62vw;
}

.center-ops-grid .campaign-card button {
  height: 2.6vh;
  font-size: 0.68vw;
}

/* 小屏或浏览器缩放时，仍保证榜单不溢出 */
@media (max-aspect-ratio: 16/10) {
  .rank-row { font-size: 0.9vw; }
  .rank-no { width: 2vw; height: 2vw; }
  .avatar { width: 2vw; height: 2vw; }
}


/* V2.0.2 TV视觉优化 */
.topbar { grid-template-columns: 27% 43% 17% 13%; }
.top-actions { display:flex; gap:.55vw; align-items:stretch; }
.tv-action { flex:1; border-radius:.8vw; display:flex; flex-direction:column; justify-content:center; align-items:center; font-size:1vw; font-weight:900; line-height:1.2; border:1px solid rgba(255,255,255,.12); background:linear-gradient(180deg,#111b33,#07101e); box-shadow:inset 0 0 18px rgba(0,0,0,.4); }
.tv-action small { font-size:.55vw; color:#b7c8dc; margin-top:.35vh; }
.lottery-action { color:#ff7de2; box-shadow:inset 0 0 22px rgba(214,80,255,.25); border-color:rgba(214,80,255,.5); }
.match-action { color:#59c9ff; box-shadow:inset 0 0 22px rgba(50,170,255,.25); border-color:rgba(50,170,255,.5); }
.panel-title span { font-size:1.55vw; font-weight:900; letter-spacing:.03em; }
.panel-title em { font-size:.72vw; }
.rank-row .score { color:#ffd34d !important; font-weight:900; text-shadow:0 0 10px rgba(255,211,77,.35); }
.rank-row .change { color:#ff6478; font-weight:900; }
.rank-row .tier { font-weight:900; }
.ticker { display:none; }

/* V2.0.3 TV header fix */
.top-actions {
  transform: translateX(-5px);
  margin-right: 8px;
}
.clock-shell {
  min-width: 13vw;
  white-space: nowrap;
  overflow: visible;
  flex-shrink: 0;
}
.topbar {
  grid-template-columns: 27% 42% 18% 13%;
}


/* V2.0.4 TV fullscreen fix */
html, body, #app {
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  position: fixed;
  inset: 0;
}

body {
  overscroll-behavior: none;
}

#app {
  max-width: 100vw;
  max-height: 100vh;
}

.tv-container,
.tv-page,
.page {
  width: 100vw;
  height: 100vh;
  overflow: hidden !important;
  box-sizing: border-box;
}

.top-actions {
  transform: translateX(-10px);
  margin-right: 12px;
}

.clock-shell {
  min-width: 14vw;
  width: 14vw;
  flex-shrink: 0;
  white-space: nowrap;
}

/* TV展示模式禁止所有内部滚动 */
.tv-container *,
.tv-page * {
  scrollbar-width: none;
}

.tv-container *::-webkit-scrollbar,
.tv-page *::-webkit-scrollbar {
  display: none;
}


/* ===== V2.0.5 TV screen fit optimization ===== */

/* header final fit */
.top-actions {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 5.2vw;
  gap: 0.45vw;
  transform: none;
  margin-right: 0.35vw;
}

.tv-action {
  flex: 0 0 auto;
  min-width: 0;
}

.clock-shell {
  min-width: max-content;
  width: auto;
  overflow: visible;
  flex-shrink: 0;
  padding: 0 6px 0 0.8vw;
  transform: none;
  align-items: flex-end;
  justify-self: end;
}

.clock-shell b,
.clock-shell span {
  text-align: right;
}

/* keep time visible, compress middle area */
.topbar {
  grid-template-columns: 25% minmax(0, 1fr) auto auto;
}

.header-stats {
  grid-template-columns: repeat(3, minmax(0, 8.8vw));
}

/* no inner scrolling on TV rankings */
.rank-list {
  overflow: hidden !important;
  height: calc(100% - 10.8vh);
  gap: 0.22vh;
}

/* compact rank rows for TV */
.rank-row {
  height: 6.95vh;
  min-height: 6.95vh;
  max-height: 6.95vh;
  font-size: 1.28vw;
}

.rank-no {
  width: 1.85vw;
  height: 1.85vw;
  font-size: 1.3vw;
}

.rank-row .tier {
  font-size: 1.05vw;
}

.rank-row .score {
  font-size: 1.25vw;
}

.rank-row .change {
  font-size: 1.15vw;
}

/* ensure no page overflow */
html, body, #app,
.tv-container,
.tv-page,
.page {
  overflow: hidden !important;
  max-width:100vw;
  max-height:100vh;
}

/* ===== V2.0.6 TV display optimization ===== */
.panel-title {
  font-size: 1.55vw;
  font-weight: 900;
}

.rank-row {
  height: 4.10vh;
  margin-bottom: 0.28vh;
  font-size: 0.90vw;
}

.rank-no {
  width: 1.85vw;
  height: 1.85vw;
  font-size: 0.92vw;
}

.avatar {
  width: 1.8vw;
  height: 1.8vw;
}

.score {
  font-size: 1.15vw;
}

/* Today Star emphasis */
.star-center {
  transform: scale(1.02);
  box-shadow: 0 0 34px rgba(255, 173, 44, 0.25);
}

.star-center b {
  font-size: 1.75vw;
  font-weight: 900;
}

.stage-score.main {
  font-size: 1.65vw;
  font-weight: 950;
}

.crown {
  font-size: 2.5vw;
}

/* kiosk display: never scroll */
html, body, #app, .screen-shell {
  overflow: hidden !important;
}


/* 65 inch TV readability optimization */
.score, .money, .gift, .delta { font-size: 1.15vw; font-weight: 900; }
.player b, .match-player b { font-size: 1.12vw; }
.level { font-size: 1.02vw; }


/* ===== V2.0.8 今日之星领奖台优化 ===== */
.star-stage-grid {
  align-items: end;
  grid-template-columns: 1fr 1.25fr 1fr;
  gap: 1vw;
}

.star-side {
  transform: translateY(2.5vh);
  opacity: 0.92;
  min-height: 28vh;
}

.star-center {
  min-height: 38vh;
  padding-top: 2.5vh;
  z-index: 2;
  transform: translateY(-1vh);
}

.star-center .stage-avatar.hero {
  width: 9vw;
  height: 9vw;
}

.star-side .stage-avatar {
  width: 6vw;
  height: 6vw;
}

.star-center b {
  font-size: 2vw;
}

.star-side b {
  font-size: 1.45vw;
}

.star-center .stage-score,
.star-center .score {
  font-size: 2.2vw;
  font-weight: 900;
}

.star-side .stage-score,
.star-side .score {
  font-size: 1.25vw;
}

.star-center {
  background:
    radial-gradient(circle at 50% 12%, rgba(255, 214, 77, .35), rgba(45, 24, 4, .75) 42%, rgba(8,8,15,.96));
  border-color: rgba(255,210,80,.5);
  box-shadow: 0 0 35px rgba(255,190,40,.3);
}
/* ===== END V2.0.8 ===== */


/* ===== V2.0.9 TV电竞展示优化 ===== */
/* 今日之星：领奖台层级修复 */
.star-stage-grid {
  align-items: center;
  grid-template-columns: .9fr 1.25fr .9fr;
  gap: 1.2vw;
}

.star-side {
  transform: translateY(0);
  min-height: 25vh;
  margin-top: 2vh;
}

.star-center {
  min-height: 36vh;
  transform: translateY(0);
  padding-top: 1.5vh;
}

.star-center .stage-avatar.hero {
  width: 8.5vw;
  height: 8.5vw;
}

.star-side .stage-avatar {
  width: 5.8vw;
  height: 5.8vw;
}

.star-center b {
  font-size: 2.15vw;
  color: #ffffff;
}

.star-side b {
  font-size: 1.65vw;
  color: #ffffff;
}

.star-center .stage-score,
.star-center .score {
  font-size: 2.4vw;
  color: #ffd54a;
  font-weight: 900;
}

.star-side .stage-score,
.star-side .score {
  font-size: 1.45vw;
  color: #ffc44d;
}

/* 全局数据层级 */
.player b,
.match-player b {
  color: #ffffff;
  font-size: 1.25vw;
}

.level {
  font-size: 1.12vw;
}

.score,
.rank-score {
  color: #ffd54a;
  font-weight: 900;
}

.change-up {
  color: #ff8a3d;
}

/* ===== END V2.0.9 ===== */


/* ===== V2.1.0 TV FINAL POLISH ===== */
/* 今日之星领奖台优化 + 字体层级优化 */

.star-stage-grid {
  align-items: center;
  gap: 1vw;
}

.star-side {
  transform: translateY(0);
  opacity: .92;
  padding-top: 1.8vh;
  border-color: rgba(160,190,220,.16);
}

.star-center {
  transform: translateY(-1.2vh);
  z-index: 2;
  padding-top: 2.4vh;
  box-shadow:
    0 0 35px rgba(255,184,45,.25),
    inset 0 0 35px rgba(255,184,45,.12);
}

.stage-avatar {
  width: 6vw;
  height: 6vw;
}

.stage-avatar.hero {
  width: 8.8vw;
  height: 8.8vw;
}

.star-side b,
.star-center b {
  color: #f8fbff;
  font-size: 1.72vw;
  letter-spacing: .04em;
}

.star-side small,
.star-center small {
  font-size: 1vw;
}

.stage-score {
  color: #ffd34f;
  font-size: 1.45vw;
}

.stage-score.main {
  color: #ffd044;
  font-size: 2vw;
  text-shadow: 0 0 16px rgba(255,180,40,.35);
}

/* 玩家列表可读性 */
.player b,
.match-player b {
  color: #f8fbff;
}

.score {
  color: #ffd144;
  font-size: 1.12em;
}

.delta.up {
  color: #ff9b45;
}

/* 充值奖励强化 */
.gift {
  color: #ffd45a;
  font-size: 1.12em;
}

/* 等级颜色区分 */
.level {
  font-weight: 900;
}

/* ===== V2.1.1 rank dimension fix ===== */
.ladder-head,
.ladder-row{grid-template-columns: .65fr 2fr 1fr 1.1fr;}
.ladder-row .score{font-size:1.25vw;font-weight:900;color:#ffd54a;}
.ladder-row .delta{display:none;}
.panel-title em{font-size:.85vw;}
/* daily contribution wording */

/* ===== V2.2.0 天梯榜：段位色 + 胜率 ===== */
.ladder-head,
.ladder-row {
  grid-template-columns: .62fr 1.62fr 1.02fr .72fr 1.08fr !important;
  column-gap: .22vw;
}

.ladder-head span:nth-child(4),
.ladder-head span:nth-child(5),
.ladder-row > .win-rate,
.ladder-row > .score {
  text-align: center;
  justify-self: stretch;
}

.ladder-row .player b {
  font-size: 1.15vw;
}

.ladder-row .level {
  font-size: 1.02vw;
  white-space: nowrap;
  text-align: center;
  text-shadow: none;
}

.win-rate {
  color: #79e6ff;
  font-size: 1.02vw;
  font-weight: 900;
  letter-spacing: .02em;
  text-shadow: 0 0 10px rgba(66, 207, 255, .28);
}

.win-rate.is-empty {
  color: #7e8b9b;
  text-shadow: none;
}

/* 段位颜色：远距离快速区分 */
.level.tier-grandmaster { color: #ff5fb7 !important; }
.level.tier-master { color: #a879ff !important; }
.level.tier-diamond { color: #38c8ff !important; }
.level.tier-platinum { color: #28e0d2 !important; }
.level.tier-gold { color: #ffd23f !important; }
.level.tier-silver { color: #e6eef8 !important; }
.level.tier-bronze { color: #d99255 !important; }
.level.tier-rookie { color: #75dc82 !important; }

/* 第一屏保持10行，无内部滚动 */
.strength-panel .rank-list {
  overflow: hidden !important;
}
/* ===== END V2.2.0 ===== */


/* ===== V2.2.2 段位文字纯色修复：统一去除发光 ===== */
.level,
.star-tier,
.star-follow-level {
  background: none !important;
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
  -webkit-text-stroke: 0 !important;
}

/* 天梯榜、今日之星、今日积分榜统一段位颜色 */
.tier-grandmaster { color: #ff5fb7 !important; }
.tier-master { color: #a879ff !important; }
.tier-diamond { color: #38c8ff !important; }
.tier-platinum { color: #28e0d2 !important; }
.tier-gold { color: #ffd23f !important; }
.tier-silver { color: #e6eef8 !important; }
.tier-bronze { color: #d99255 !important; }
.tier-rookie { color: #75dc82 !important; }
/* ===== END V2.2.2 ===== */

/* ===== V2.2.3 今日之星昵称字号层级优化 ===== */
/* 第一名昵称：保持重点，但不再压过头像与积分 */
.star-center > b {
  font-size: 1.35vw !important;
  line-height: 1.18;
  font-weight: 850;
  letter-spacing: .015em;
  margin: .55vh auto 0;
  max-width: 10.5vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 第二、第三名昵称：降低一级，形成领奖台层次 */
.star-side > b {
  font-size: 1.15vw !important;
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: .01em;
  margin: .5vh auto 0;
  max-width: 7.2vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 今日积分榜昵称作为补充信息，再降低一级 */
.star-follow-name {
  font-size: 1.04vw !important;
  line-height: 1.2;
  font-weight: 800;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 长昵称不换行，避免挤压段位与积分列 */
.star-center,
.star-side {
  min-width: 0;
  overflow: hidden;
}
/* ===== END V2.2.3 ===== */


/* ===== V2.2.4 今日之星信息精简与布局重排 ===== */
/* 删除“今日获得”和“积分”文字后，重新分配垂直空间 */
.star-stage-grid {
  align-items: center;
}

.star-center,
.star-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

.star-center {
  padding-top: 1.55vh !important;
  padding-bottom: 1.35vh !important;
}

.star-side {
  padding-top: 1.35vh !important;
  padding-bottom: 1.15vh !important;
}

.star-center .stage-score.main {
  margin-top: 1.05vh !important;
  font-size: 2.05vw !important;
  line-height: 1;
  color: #ffd044 !important;
  text-shadow: none !important;
  white-space: nowrap;
}

.star-side .stage-score {
  margin-top: .9vh !important;
  font-size: 1.38vw !important;
  line-height: 1;
  color: #ffc44d !important;
  text-shadow: none !important;
  white-space: nowrap;
}

.star-tier {
  margin-top: .38vh !important;
}
/* ===== END V2.2.4 ===== */


/* ===== V2.2.5 今日积分榜 TOP8 一屏适配 ===== */
.star-follow-board {
  padding-bottom: .12vh !important;
}

.star-follow-kicker {
  min-height: 3.0vh !important;
}

.star-follow-list {
  gap: .26vh !important;
}

.star-follow-row {
  height: 5.72vh !important;
  min-height: 5.72vh !important;
  max-height: 5.72vh !important;
  padding: 0 .55vw !important;
}

.star-follow-rank {
  width: 1.72vw !important;
  height: 1.72vw !important;
  font-size: 1.18vw !important;
}

.star-follow-name,
.star-follow-level,
.star-follow-score {
  font-size: 1.12vw !important;
  line-height: 1.15 !important;
}

.star-follow-motto {
  min-height: 1.9vh !important;
  font-size: .68vw !important;
}
/* ===== END V2.2.5 ===== */

/* ===== V2.3 TV 运营状态机动态演示 ===== */
.showcase-stage{position:fixed;inset:11.2vh 1vw 3.9vh;z-index:80;display:none;align-items:center;justify-content:center;overflow:hidden;border-radius:1.2vw;pointer-events:none}.showcase-stage.show{display:flex;animation:stageIn .45s ease both}.showcase-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(31,111,196,.34),transparent 43%),linear-gradient(135deg,rgba(2,8,18,.98),rgba(4,16,29,.98));border:1px solid rgba(92,180,255,.48);box-shadow:inset 0 0 80px rgba(29,101,184,.25),0 0 45px #000}.showcase-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.025) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,rgba(255,255,255,.025) 50%,transparent 50.2%);background-size:5vw 5vw}.showcase-content{position:relative;width:92%;height:90%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.event-kicker{font-size:1.55vw;font-weight:900;letter-spacing:.18em;color:#6fd5ff;text-shadow:0 0 18px rgba(64,188,255,.52);margin-bottom:1.3vh}.showcase-content>h2{font-size:4.5vw;line-height:1;margin:0 0 3vh;font-weight:950;letter-spacing:.03em}.promo-state .showcase-backdrop{background:radial-gradient(circle at 50% 38%,rgba(22,115,211,.38),transparent 42%),linear-gradient(135deg,#03101f,#071728)}.promo-main{width:88%;display:grid;grid-template-columns:1.1fr 1.6fr .65fr;gap:2.2vw;align-items:center}.promo-prize,.promo-progress,.qr-fake{height:28vh;border-radius:1.1vw;border:1px solid rgba(255,255,255,.14);background:rgba(4,13,25,.78);box-shadow:inset 0 0 30px rgba(24,91,157,.18);display:flex;flex-direction:column;align-items:center;justify-content:center}.promo-prize small{font-size:1.25vw;color:#c8d7e8}.promo-prize strong{font-size:4.6vw;color:#ffd052;line-height:1.2}.promo-prize span{font-size:1.05vw;color:#9cb0c6}.promo-progress{flex-direction:row;gap:1.8vw;text-align:left}.ring{width:10vw;height:10vw;border-radius:50%;display:grid;place-content:center;border:.65vw solid #26b4ff;box-shadow:0 0 30px rgba(30,170,255,.4),inset 0 0 30px rgba(30,170,255,.22)}.ring b{font-size:3.5vw;line-height:1}.ring span{font-size:1.1vw;color:#b8cbe0}.promo-progress h3{font-size:2vw;margin:0 0 .8vh}.promo-progress p{font-size:1.05vw;color:#a9bed3}.progress{width:18vw;height:1.2vh;border-radius:2vh;background:rgba(255,255,255,.1);overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,#13a9ff,#56e8bc);box-shadow:0 0 16px #25c9ff}.qr-fake{padding:1.5vh}.qr-grid{width:8.2vw;height:8.2vw;background:repeating-conic-gradient(#fff 0 25%,#07111f 0 50%) 50%/1.25vw 1.25vw;border:.5vw solid white;margin-bottom:1vh}.qr-fake b{font-size:1.35vw}.event-bottom{display:flex;gap:3vw;margin-top:3vh;font-size:1.15vw;color:#d8e5f1}.event-bottom span{padding:.7vh 1.2vw;border:1px solid rgba(91,183,255,.28);border-radius:2vw;background:rgba(8,32,59,.68)}
.draw-state .showcase-backdrop{background:radial-gradient(circle at 50% 40%,rgba(120,66,191,.42),transparent 43%),linear-gradient(135deg,#0c061b,#071222)}.draw-stage{display:grid;grid-template-columns:1fr .3fr 1fr;align-items:center;width:78%;gap:2vw}.draw-slot{height:26vh;border-radius:1.3vw;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(184,109,255,.55);background:linear-gradient(160deg,rgba(82,34,133,.62),rgba(9,15,32,.92));box-shadow:0 0 35px rgba(150,73,234,.25),inset 0 0 35px rgba(150,73,234,.15)}.draw-slot small{font-size:1.1vw;color:#cfb2ef}.draw-slot b{font-size:4.2vw;margin-top:1vh}.draw-vs{font-size:3vw;font-weight:950;color:#ffca45;text-shadow:0 0 24px rgba(255,190,40,.6)}.draw-subtitle{font-size:1.15vw;color:#b8c8da;margin:2.2vh 0}.draw-list{display:grid;grid-template-columns:repeat(4,1fr);gap:1vw;width:86%}.draw-list span{font-size:1.15vw;padding:1.1vh .8vw;border-radius:.7vw;background:rgba(20,35,61,.85);border:1px solid rgba(135,182,255,.22);animation:popIn .35s ease both}
.live-state .showcase-backdrop{background:radial-gradient(circle at 50% 30%,rgba(0,157,113,.25),transparent 44%),linear-gradient(135deg,#031016,#071828)}.live-header{width:92%;display:flex;justify-content:space-between;align-items:end;margin-bottom:2vh}.live-header h2{font-size:3.4vw;margin:0}.live-header div{display:flex;gap:1.4vw;align-items:center;font-size:1.05vw}.live-header b{color:#ffcf48}.live-grid{width:92%;display:grid;grid-template-columns:1fr 1fr;gap:1.5vh 1.2vw}.live-match-card{height:16.5vh;display:grid;grid-template-columns:.36fr 1fr .85fr 1fr;align-items:center;padding:0 1.5vw;border-radius:1vw;border:1px solid rgba(54,206,151,.28);background:linear-gradient(100deg,rgba(5,31,37,.95),rgba(8,19,35,.95));box-shadow:inset 0 0 32px rgba(17,160,110,.1)}.table-no{font-size:1vw;color:#68e2b7}.live-player{display:flex;align-items:center;gap:.8vw;font-size:1.7vw}.live-player.right{justify-content:flex-end}.avatar-dot{width:3.2vw;height:3.2vw;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#183d68,#0a1b31);border:2px solid #56b8ff}.live-score{display:flex;align-items:center;justify-content:center;gap:.75vw;position:relative}.live-score strong{font-size:3.6vw;color:#ffda62}.live-score em{font-size:2.3vw;font-style:normal;color:#7d91a8}.live-score small{position:absolute;top:4.4vh;white-space:nowrap;color:#91a9be;font-size:.8vw}.live-footer{width:92%;margin-top:2vh;display:flex;justify-content:space-between;font-size:1vw;color:#d5e2ef}
.lottery-state .showcase-backdrop{background:radial-gradient(circle at 50% 43%,rgba(146,67,202,.38),transparent 45%),linear-gradient(135deg,#130625,#071321)}.lottery-demo{width:88%;display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:2vw;align-items:center}.prize-box,.countdown-box{height:28vh;border:1px solid rgba(198,115,255,.34);border-radius:1.2vw;background:rgba(29,9,50,.55);display:flex;flex-direction:column;align-items:center;justify-content:center}.prize-box small,.countdown-box small{font-size:1.15vw;color:#d7b9ee}.prize-box strong{font-size:2.6vw;color:#ffd365;margin:1.3vh 0}.prize-box span,.countdown-box span{font-size:1vw;color:#aebfd2}.countdown-box b{font-size:4vw;margin:1vh 0;color:#fff}.lottery-wheel{width:17vw;height:17vw;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border:.8vw solid rgba(255,207,77,.85);background:radial-gradient(circle,#32135b,#16072b);box-shadow:0 0 42px rgba(180,84,255,.42),inset 0 0 38px rgba(255,205,75,.16)}.lottery-wheel i{position:absolute;inset:-1.1vw;border:2px dashed #ffd05a;border-radius:50%;animation:spin 6s linear infinite}.lottery-wheel div{font-size:3.6vw;font-weight:950}.lottery-wheel small{font-size:1vw;color:#e0c9f2}.winner-state .showcase-backdrop{background:radial-gradient(circle at 50% 45%,rgba(255,175,27,.43),transparent 42%),linear-gradient(135deg,#1a0c02,#081225)}.winner-state .showcase-content>h2{font-size:5vw;color:#fff;margin:1.2vh 0}.winner-avatar-big{width:10vw;height:10vw;border-radius:50%;display:grid;place-items:center;font-size:4.3vw;font-weight:950;border:.65vw solid #ffd25d;background:linear-gradient(145deg,#214d82,#0d203b);box-shadow:0 0 50px rgba(255,192,50,.5)}.winner-state p{font-size:1.2vw;color:#d8c7a5;margin:.5vh}.winner-award{font-size:3.3vw;color:#ffd35d;text-shadow:0 0 24px rgba(255,190,48,.45)}.winner-tip{margin-top:2.3vh;font-size:1vw;color:#becadb}.winner-burst{position:absolute;width:36vw;height:36vw;border-radius:50%;border:2px solid rgba(255,214,105,.4);animation:pulseBurst 1.8s ease-out infinite}
.rank-toast{position:fixed;z-index:90;left:50%;top:15vh;transform:translate(-50%,-160%);min-width:38vw;height:11vh;border-radius:1vw;padding:1.2vh 1.5vw;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.1vw;background:linear-gradient(100deg,rgba(11,32,58,.98),rgba(8,18,34,.98));border:1px solid rgba(69,185,255,.55);box-shadow:0 0 36px rgba(24,148,255,.34);transition:.45s cubic-bezier(.2,.8,.2,1)}.rank-toast.show{transform:translate(-50%,0)}.toast-icon{font-size:2.6vw}.rank-toast small{display:block;color:#78d8ff;font-size:.8vw}.rank-toast b{font-size:1.65vw;display:block}.rank-toast span{font-size:.95vw;color:#bacbdd}.toast-arrow{font-size:2vw;font-weight:950;color:#3af09e}.number-pulse{animation:numberPulse .9s ease 2}.demo-controls{z-index:120!important;display:flex!important;gap:.35vw!important}.demo-controls button{font-size:.75vw!important;padding:.55vh .55vw!important}
@keyframes stageIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes popIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseBurst{0%{transform:scale(.45);opacity:.75}100%{transform:scale(1.35);opacity:0}}@keyframes numberPulse{50%{transform:scale(1.18);color:#48f3aa;text-shadow:0 0 20px #48f3aa}}
@media (max-aspect-ratio:16/10){.showcase-content>h2{font-size:4vw}.live-match-card{height:15vh}}

/* V2.3.1：电视端不展示报名二维码，强调桌边入口；增加积分录入后的排行榜 FLIP 位移动画 */
.promo-main{grid-template-columns:1.05fr 1.55fr .9fr}
.promo-guide{height:28vh;border-radius:1.1vw;border:1px solid rgba(74,196,255,.25);background:linear-gradient(160deg,rgba(8,31,55,.94),rgba(5,14,28,.92));box-shadow:inset 0 0 34px rgba(30,154,223,.16);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65vh}
.promo-guide span{font-size:1vw;color:#75d8ff;letter-spacing:.16em;font-weight:800}
.promo-guide b{font-size:1.8vw;color:#fff}
.promo-guide strong{font-size:2.35vw;color:#43efaa;text-shadow:0 0 18px rgba(67,239,170,.35)}
.promo-guide small{font-size:.86vw;color:#a9bdd1;margin-top:.7vh}
.toast-arrow.pending{color:#7fd9ff;letter-spacing:.12em;animation:pendingDots .8s ease-in-out infinite alternate}
.ladder-row{will-change:transform}
.ladder-row.rank-scoring{position:relative;z-index:8;border-color:rgba(55,241,164,.88)!important;background:linear-gradient(90deg,rgba(20,101,75,.82),rgba(10,34,48,.95))!important;box-shadow:0 0 28px rgba(48,238,161,.42),inset 0 0 24px rgba(59,245,178,.18);animation:rankArrival 1.15s ease .95s both}
.ladder-row.rank-scoring .score{color:#53f0ac!important;text-shadow:0 0 16px rgba(83,240,172,.72);animation:scorePop .8s ease .9s both}
.ladder-row.rank-scoring::after{content:'+120';position:absolute;right:1vw;top:-1.8vh;padding:.35vh .55vw;border-radius:1vw;background:#1fcf84;color:#04120c;font-size:.82vw;font-weight:950;box-shadow:0 0 18px rgba(31,207,132,.6);animation:deltaFloat 1.8s ease both}
@keyframes pendingDots{from{opacity:.4;transform:translateY(-2px)}to{opacity:1;transform:translateY(2px)}}
@keyframes rankArrival{0%{filter:brightness(1)}45%{filter:brightness(1.55)}100%{filter:brightness(1)}}
@keyframes scorePop{0%{transform:scale(.75)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes deltaFloat{0%{opacity:0;transform:translateY(12px) scale(.8)}25%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-18px) scale(1.05)}}

/* =========================================================
   V2.4 Live TV · Presentation Edition
   只增强现场表现力，不改变正式业务接口
   ========================================================= */
.scene-avatar{object-fit:cover;display:block}.live-dot{display:inline-block;width:.65vw;height:.65vw;border-radius:50%;background:#ff405f;box-shadow:0 0 15px #ff405f;animation:livePulse 1.1s ease-in-out infinite}.showcase-content{z-index:2}.showcase-content>h2{font-size:4.9vw}.showcase-stage.show .showcase-backdrop{animation:backdropBreath 5s ease-in-out infinite}.promo-main.v24{grid-template-columns:1fr 1.55fr .9fr}.promo-guide.no-qr{height:28vh;border-radius:1.1vw;border:1px solid rgba(71,191,255,.3);background:linear-gradient(155deg,rgba(12,56,92,.72),rgba(5,15,29,.92));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65vh}.promo-guide.no-qr span{font-size:1.05vw;color:#7bd7ff}.promo-guide.no-qr b{font-size:2vw}.promo-guide.no-qr strong{font-size:1.65vw;color:#ffcf57}.promo-guide.no-qr small{font-size:.85vw;color:#98b0c7}.signup-feed{margin-top:1.5vh;color:#5ef1b4;font-size:1.05vw;font-weight:800}.signup-feed.flash{animation:feedFlash .8s ease 2}.progress i{transition:width .9s cubic-bezier(.2,.85,.2,1)}

.rank-toast{min-width:45vw;height:12vh;top:13.8vh}.toast-avatar-wrap{width:4.6vw;height:4.6vw;border-radius:50%;padding:.18vw;background:linear-gradient(135deg,#58ccff,#9b6cff,#ffd05b);box-shadow:0 0 24px rgba(71,190,255,.4)}.toast-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover}.toast-avatar-wrap.scanning{position:relative;overflow:hidden}.toast-avatar-wrap.scanning:after{content:"";position:absolute;left:0;right:0;height:.18vw;background:#7cf5ff;box-shadow:0 0 14px #7cf5ff;animation:scanLine 1.1s linear infinite}.rank-toast b i{font-style:normal;color:#5ef1a8}.rank-toast.rank-confirmed{border-color:rgba(49,239,158,.75);box-shadow:0 0 38px rgba(35,221,146,.34)}.toast-arrow.pending{display:flex;gap:.25vw}.toast-arrow.pending i{width:.38vw;height:.38vw;border-radius:50%;background:#66d8ff;animation:dotBounce .9s infinite}.toast-arrow.pending i:nth-child(2){animation-delay:.13s}.toast-arrow.pending i:nth-child(3){animation-delay:.26s}.rank-scoring{position:relative;z-index:5;box-shadow:0 0 26px rgba(44,211,255,.45),inset 0 0 18px rgba(35,183,255,.18)!important}.rank-traveling:before{content:"积分录入";position:absolute;left:46%;top:-.55vh;transform:translate(-50%,-100%);padding:.25vh .55vw;border-radius:99px;background:#0b85c7;color:white;font-size:.62vw;box-shadow:0 0 14px #1db9ff}.score-old{opacity:.72}.score-gain{display:inline-block;margin-left:.35vw;color:#55f1a8;font-size:.82em;animation:gainRise 1s ease both}.score-counter{display:inline-block;animation:scoreGlow 1s ease}

.big-countdown,.lottery-count-number{font-size:12vw;font-weight:950;line-height:1;color:#fff;text-shadow:0 0 50px rgba(121,94,255,.72);font-variant-numeric:tabular-nums}.big-countdown.pop,.lottery-count-number.pop{animation:countPop .52s ease}.draw-audience,.lottery-participants{font-size:1.2vw;color:#b5c8dc;margin-top:2.2vh}.avatar-orbit{position:relative;width:38vw;height:38vw;max-height:48vh;max-width:48vh;margin-top:-1vh;animation:orbitSpin 3.2s cubic-bezier(.32,.02,.22,1) forwards}.orbit-player{position:absolute;left:50%;top:50%;width:5.5vw;transform:rotate(calc(var(--i)*45deg)) translateY(-14vw) rotate(calc(var(--i)*-45deg));display:flex;flex-direction:column;align-items:center;gap:.45vh}.orbit-avatar{width:5vw;height:5vw;border-radius:50%;border:.22vw solid #c491ff;box-shadow:0 0 22px rgba(183,102,255,.55);background:#071321}.orbit-player b{font-size:1.1vw;white-space:nowrap}.draw-lock-line{display:flex;align-items:center;gap:1vw;color:#d9c3ff;font-size:1.1vw}.draw-lock-line span{width:8vw;height:1px;background:linear-gradient(90deg,transparent,#9e72ff)}.draw-lock-line span:last-child{transform:scaleX(-1)}.draw-pair-grid{width:92%;display:grid;grid-template-columns:repeat(2,1fr);gap:1.6vh 1.2vw}.draw-pair-card{height:18vh;display:grid;grid-template-columns:.32fr 1fr .32fr 1fr;align-items:center;padding:0 1.25vw;border-radius:1.1vw;background:linear-gradient(105deg,rgba(64,27,109,.82),rgba(8,20,38,.95));border:1px solid rgba(184,109,255,.5);box-shadow:inset 0 0 28px rgba(161,77,234,.14);animation:pairReveal .62s calc(var(--delay)) cubic-bezier(.16,.9,.22,1) both}.draw-pair-card small{font-size:.9vw;color:#c4a6e6}.draw-pair-card>div{display:flex;align-items:center;gap:.65vw;font-size:1.55vw}.draw-pair-card em{font-style:normal;font-size:1.65vw;font-weight:950;color:#ffd45e}.pair-avatar{width:4.2vw;height:4.2vw;border-radius:50%;border:2px solid rgba(255,255,255,.24)}

.round-progress{display:flex!important;align-items:center!important;gap:.55vw!important}.round-progress span{font-size:.9vw;color:#71879c;padding:.45vh .65vw;border-radius:99px;border:1px solid rgba(255,255,255,.08)}.round-progress span.done{color:#52e5a9;border-color:rgba(52,222,158,.42)}.round-progress span.active{color:#fff;background:rgba(34,178,125,.22);border-color:#41dfa1;box-shadow:0 0 16px rgba(50,221,159,.25)}.round-progress i{width:1.5vw;height:1px;background:#42546a}.match-avatar{width:3.45vw;height:3.45vw;border-radius:50%;border:2px solid #45b8ff;box-shadow:0 0 15px rgba(60,178,255,.25)}.live-match-card{transition:transform .45s ease,border-color .45s ease,box-shadow .45s ease,opacity .45s ease}.live-grid:has(.focus-match) .live-match-card:not(.focus-match){opacity:.68;transform:scale(.98)}.live-match-card.focus-match{transform:scale(1.025);border-color:rgba(73,239,177,.7);box-shadow:0 0 30px rgba(40,218,155,.2),inset 0 0 28px rgba(30,198,137,.14)}.live-match-card.advanced-match{border-color:rgba(255,210,92,.62);box-shadow:0 0 30px rgba(255,196,70,.22),inset 0 0 30px rgba(255,196,70,.12)}.live-player.is-advanced b{color:#ffd75b;text-shadow:0 0 18px rgba(255,215,91,.42)}.live-player.is-advanced .match-avatar{border-color:#ffd45c;box-shadow:0 0 18px rgba(255,204,76,.45)}.advance-inline{position:absolute;left:50%;top:7.2vh;transform:translateX(-50%);display:flex;align-items:center;gap:.45vw;max-width:12vw;padding:.32vh .68vw;border-radius:999px;background:rgba(255,208,76,.13);border:1px solid rgba(255,213,91,.48);box-shadow:0 0 18px rgba(255,198,60,.18);white-space:nowrap}.advance-inline i{font-style:normal;color:#07111c;background:#ffd45c;border-radius:999px;padding:.08vh .38vw;font-size:.62vw;font-weight:950}.advance-inline b{overflow:hidden;text-overflow:ellipsis;color:#ffdf72;font-size:.92vw;line-height:1.1}.score-pop{animation:scorePop .7s cubic-bezier(.18,.9,.22,1);color:#fff!important;text-shadow:0 0 25px #ffd64f}.moment-pop{animation:momentPop .65s ease}.advance-overlay{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:rgba(0,7,13,.46);backdrop-filter:blur(3px);opacity:0;transition:.35s}.advance-overlay.show{opacity:1}.advance-card{min-width:38vw;padding:2.1vh 2.2vw;border-radius:1.3vw;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.4vw;background:linear-gradient(110deg,rgba(8,49,49,.97),rgba(9,18,34,.98));border:1px solid rgba(76,239,180,.62);box-shadow:0 0 48px rgba(30,225,157,.27)}.advance-avatar{width:6.2vw;height:6.2vw;border-radius:50%;border:.3vw solid #5ff0b5}.advance-card small{display:block;color:#67efba;font-size:.9vw}.advance-card b{display:block;font-size:2.5vw}.advance-card strong{display:block;color:#ffd457;font-size:1.55vw}.advance-card>span{font-size:3.2vw}

.champion-state .showcase-backdrop{background:radial-gradient(circle at 50% 40%,rgba(255,192,45,.4),transparent 34%),radial-gradient(circle at 50% 100%,rgba(111,62,0,.38),transparent 42%),linear-gradient(145deg,#160b02,#071324)}.champion-rays{position:absolute;width:64vw;height:64vw;background:repeating-conic-gradient(from 0deg,rgba(255,220,101,.12) 0 7deg,transparent 7deg 14deg);border-radius:50%;animation:raysSpin 24s linear infinite}.champion-kicker{color:#ffd66b}.trophy-mark{font-size:5vw;filter:drop-shadow(0 0 20px rgba(255,201,73,.65));animation:trophyFloat 1.8s ease-in-out infinite}.champion-state .showcase-content>h2{font-size:4.5vw;margin:.2vh 0 1.2vh;color:#ffdc79;text-shadow:0 0 30px rgba(255,197,61,.45)}.champion-profile{position:relative}.champion-avatar{width:9vw;height:9vw;border-radius:50%;border:.55vw solid #ffd35a;box-shadow:0 0 50px rgba(255,194,56,.52)}.champion-crown{position:absolute;left:50%;top:-2.3vw;transform:translateX(-50%);font-size:3.4vw;color:#ffd256;text-shadow:0 0 18px #ffb300}.champion-name{font-size:3.4vw;font-weight:950;margin-top:.8vh}.champion-award{display:flex;align-items:baseline;justify-content:center;gap:.7vw;margin:.4vh 0}.champion-award small{font-size:1vw;color:#d8c697}.champion-award b{font-size:2.3vw;color:#ffd45e}.podium-row{display:flex;align-items:flex-end;justify-content:center;gap:1.4vw;margin-top:1.1vh}.podium{width:9vw;padding:.65vh .65vw;border-radius:.75vw;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.55vw;text-align:left}.podium.first{transform:translateY(-.6vh);border-color:rgba(255,210,77,.45)}.podium-avatar{grid-row:1/3;width:2.8vw;height:2.8vw;border-radius:50%}.podium span{font-size:.68vw;color:#d5c18c}.podium b{font-size:.95vw}.champion-footer{font-size:1vw;color:#d6e0e9;margin-top:1.25vh}.champion-confetti,.winner-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.champion-confetti i,.winner-confetti i{position:absolute;left:var(--x);top:-4%;width:.48vw;height:1.4vh;background:linear-gradient(180deg,#ffe16b,#ff5c75);transform:rotate(var(--r));animation:confettiV24 3.2s var(--d) linear infinite}

.lottery-countdown .showcase-backdrop{background:radial-gradient(circle at 50% 45%,rgba(156,69,225,.38),transparent 38%),linear-gradient(135deg,#150624,#071321)}.lottery-prize-line{font-size:1.2vw;color:#d9c9e9;margin-top:1.4vh}.lottery-prize-line b{font-size:1.6vw;color:#ffd261}.lottery-avatar-stage{position:relative;width:64vw;height:19vw;overflow:hidden;display:flex;align-items:center;margin:1vh auto 2vh;mask-image:linear-gradient(90deg,transparent,#000 13%,#000 87%,transparent)}.avatar-track{display:flex;gap:1.6vw;align-items:center;transform:translateX(0);animation:avatarRush 1.1s linear infinite}.avatar-track.slow-stop{animation:avatarStop 3.2s cubic-bezier(.08,.75,.17,1) forwards}.lottery-person{width:8vw;flex:0 0 8vw;display:flex;flex-direction:column;align-items:center;gap:.65vh;opacity:.6;transform:scale(.88)}.lottery-avatar{width:6.3vw;height:6.3vw;border-radius:50%;border:.28vw solid #c785ff;box-shadow:0 0 22px rgba(183,89,255,.34)}.lottery-person b{font-size:1.15vw}.lottery-focus-frame{position:absolute;left:50%;top:50%;width:10vw;height:10vw;transform:translate(-50%,-58%);border:.35vw solid #ffd45c;border-radius:1.2vw;box-shadow:0 0 35px rgba(255,202,69,.5),inset 0 0 25px rgba(255,202,69,.15)}.lottery-winner .showcase-backdrop{background:radial-gradient(circle at 50% 44%,rgba(255,180,39,.48),transparent 35%),linear-gradient(135deg,#210d03,#081326)}.winner-avatar-v24{width:11vw;height:11vw;border-radius:50%;border:.7vw solid #ffd25e;box-shadow:0 0 60px rgba(255,193,57,.58);position:relative;z-index:2;animation:winnerReveal .8s cubic-bezier(.16,.9,.22,1) both}.winner-halo{position:absolute;width:19vw;height:19vw;border-radius:50%;border:2px solid rgba(255,216,105,.45);box-shadow:0 0 70px rgba(255,197,55,.25);animation:haloPulse 1.7s ease-in-out infinite}.lottery-winner .showcase-content>h2{font-size:5vw;margin:1vh 0 0}.lottery-winner p{font-size:1.15vw;color:#d7c49f;margin:.35vh}.lottery-winner .winner-award{font-size:3.2vw}.lottery-winner .winner-tip{font-size:1vw}

.demo-controls.controls-hidden{opacity:0;pointer-events:none;transform:translateY(120%)}.demo-controls{transition:.35s}.demo-controls button[data-demo="champion"]{color:#2d2000;background:linear-gradient(180deg,#ffe27a,#d9a51e)!important}
.demo-controls button:disabled,.demo-controls button.is-disabled{opacity:.38;filter:grayscale(1);cursor:not-allowed;box-shadow:none!important}

/* V2.4.2：晋级成功全屏海报，底图 assets/jinjie.png */
.promotion-overlay{position:absolute;inset:0;z-index:18;display:grid;place-items:center;background:rgba(0,0,0,.64);backdrop-filter:blur(7px);opacity:0;transition:opacity .42s ease;pointer-events:none}.promotion-overlay.show{opacity:1}.promotion-poster{position:relative;width:min(82vw,calc(86vh * 1.255));aspect-ratio:1405/1119;color:#fff;filter:drop-shadow(0 0 34px rgba(255,193,47,.34));animation:promotionPosterIn .5s cubic-bezier(.16,.9,.22,1) both}.promotion-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.promotion-avatar-slot{position:absolute;left:48.4%;top:35.6%;width:16.2%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;overflow:hidden}.promotion-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;background:rgba(8,8,8,.72);color:#ffe17b;display:grid;place-items:center;font-size:4.6vw;font-weight:950}.promotion-winner-name{position:absolute;left:68.8%;top:36.3%;width:23%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe075;font-size:3.25vw;line-height:1;font-weight:950;text-align:left;text-shadow:0 .26vh 0 rgba(82,43,0,.86),0 0 18px rgba(255,211,92,.56)}.promotion-target{position:absolute;left:68.8%;top:47.1%;width:24%;color:#fff7d6;font-size:1.7vw;font-weight:900;text-align:left;text-shadow:0 0 12px rgba(255,218,117,.34)}.promotion-target b{color:#ffe26d;font-size:2.05vw}.promotion-score-row{position:absolute;left:43.9%;top:62.9%;width:52.1%;height:10.2%;display:grid;grid-template-columns:13% 25% 25% 25%;align-items:center;gap:1.7%;text-align:center}.promotion-table{height:52%;display:grid;place-items:center;border:1px solid rgba(255,204,58,.72);border-radius:.55vw;color:#ffdd74;font-size:1.08vw;font-weight:900;background:rgba(22,17,4,.38)}.promotion-player{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe075;font-size:2.15vw;line-height:1;font-weight:950;text-shadow:0 0 14px rgba(255,203,68,.38)}.promotion-player.promotion-right{color:#fff3d2;font-size:1.72vw}.promotion-score-row strong{color:#fff0b0;font-size:4.5vw;line-height:1;font-weight:950;text-shadow:0 0 18px rgba(255,202,61,.4)}.promotion-score-row strong i{font-style:normal;margin:0 .55vw;color:#ffdb60}.promotion-next{position:absolute;left:44.8%;top:78.2%;width:50%;color:#2a1600;font-size:2vw;font-weight:950;text-align:center;letter-spacing:.03em}.promotion-countdown{position:absolute;left:41.5%;right:4%;bottom:5.7%;color:#fff1c4;font-size:1.7vw;font-weight:800;text-align:center;text-shadow:0 0 14px rgba(255,211,76,.36)}.promotion-countdown b{display:inline-grid;place-items:center;width:3.3vw;height:3.3vw;margin:0 .32vw;border-radius:50%;border:1px solid rgba(255,211,76,.9);color:#ffe164;background:rgba(20,13,0,.65);font-size:2.1vw;box-shadow:0 0 16px rgba(255,202,51,.35)}

/* V2.4.3：晋级海报文字缩放与位置微调 */
.promotion-avatar-slot{left:calc(48.4% + 40px)!important}.promotion-avatar{font-size:2.8vw!important}.promotion-winner-name{left:calc(69.4% + 40px)!important;top:37.4%!important;width:20%!important;font-size:2.35vw!important}.promotion-target{left:calc(69.5% + 10px)!important;top:48.5%!important;width:23%!important;font-size:1.2vw!important;line-height:1.2!important}.promotion-target b{font-size:1.55vw!important}.promotion-score-row{left:calc(44.8% + 20px)!important;top:63.8%!important;width:49.6%!important;height:8.4%!important;grid-template-columns:14% 24% 24% 24%!important;gap:1.4%!important}.promotion-table{height:48%!important;font-size:.82vw!important;border-radius:.38vw!important}.promotion-player{font-size:1.45vw!important}.promotion-player.promotion-right{font-size:1.25vw!important}.promotion-score-row strong{font-size:3.05vw!important}.promotion-score-row strong i{margin:0 .34vw!important}.promotion-next{left:46.5%!important;top:calc(78.8% + 10px)!important;width:45.5%!important;font-size:1.35vw!important}.promotion-countdown{left:43.5%!important;right:7.5%!important;bottom:6.8%!important;font-size:1.08vw!important}.promotion-countdown b{width:2.25vw!important;height:2.25vw!important;font-size:1.36vw!important}

/* V2.4.1：比赛进行中按当前轮次展示全部对局，32进16=16组，16进8=8组 */
.live-grid.live-grid-16{grid-template-columns:repeat(4,minmax(0,1fr));gap:1vh .9vw}
.live-grid.live-grid-8{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2vh 1vw}
.live-grid.live-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.live-grid.live-grid-16 .live-match-card{height:10.8vh;grid-template-columns:.45fr 1fr .75fr 1fr;padding:0 .75vw;border-radius:.72vw}
.live-grid.live-grid-8 .live-match-card{height:13.2vh;grid-template-columns:.42fr 1fr .8fr 1fr;padding:0 .9vw;border-radius:.82vw}
.live-grid.live-grid-16 .table-no,.live-grid.live-grid-8 .table-no{font-size:.82vw}
.live-grid.live-grid-16 .live-player,.live-grid.live-grid-8 .live-player{gap:.45vw;font-size:1.05vw;min-width:0}
.live-grid.live-grid-16 .live-player b,.live-grid.live-grid-8 .live-player b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-grid.live-grid-16 .match-avatar{width:2.28vw;height:2.28vw}
.live-grid.live-grid-8 .match-avatar{width:2.75vw;height:2.75vw}
.live-grid.live-grid-16 .live-score{gap:.32vw}
.live-grid.live-grid-8 .live-score{gap:.48vw}
.live-grid.live-grid-16 .live-score strong{font-size:2.12vw}
.live-grid.live-grid-8 .live-score strong{font-size:2.65vw}
.live-grid.live-grid-16 .live-score em{font-size:1.22vw}
.live-grid.live-grid-8 .live-score em{font-size:1.55vw}
.live-grid.live-grid-16 .live-score small{top:3.05vh;font-size:.58vw}
.live-grid.live-grid-8 .live-score small{top:3.75vh;font-size:.66vw}
.live-grid.live-grid-16 .advance-inline{top:5.95vh;max-width:8.5vw;padding:.2vh .42vw;gap:.28vw}
.live-grid.live-grid-8 .advance-inline{top:6.35vh;max-width:9.5vw;padding:.25vh .52vw}
.live-grid.live-grid-16 .advance-inline i{font-size:.48vw;padding:.05vh .28vw}
.live-grid.live-grid-8 .advance-inline i{font-size:.54vw;padding:.06vh .32vw}
.live-grid.live-grid-16 .advance-inline b{font-size:.66vw}
.live-grid.live-grid-8 .advance-inline b{font-size:.78vw}

/* V2.4.4：16/8 组比赛面板紧凑纵向卡片 */
.live-state .showcase-content{width:96%;height:93%;justify-content:flex-start}.live-state .event-kicker{margin:.4vh 0 1.1vh;font-size:1.35vw}.live-state .live-header{width:94%;margin-bottom:1.15vh;align-items:center}.live-state .live-header h2{font-size:2.7vw;letter-spacing:.02em;text-shadow:0 0 20px rgba(255,255,255,.22)}.live-state .round-progress span{font-size:.82vw;padding:.38vh .62vw}.live-state .live-grid{width:94%}.live-state .live-footer{width:94%;margin-top:1.35vh;gap:.7vw}.live-state .live-footer span{flex:1;min-height:5.4vh;display:flex;align-items:center;justify-content:center;padding:.65vh .85vw;border-radius:.45vw;background:linear-gradient(180deg,rgba(8,33,50,.82),rgba(6,18,31,.86));border:1px solid rgba(88,224,214,.16);box-shadow:inset 0 0 18px rgba(44,206,181,.06)}.live-grid.live-grid-16,.live-grid.live-grid-8{grid-template-columns:repeat(4,minmax(0,1fr))!important}.live-grid.live-grid-16{gap:1.15vh .95vw!important}.live-grid.live-grid-8{gap:1.45vh 1.05vw!important}.live-grid.live-grid-16 .live-match-card,.live-grid.live-grid-8 .live-match-card{position:relative;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto 1fr auto 1fr!important;align-items:center;justify-items:center;overflow:hidden;background:radial-gradient(circle at 50% 8%,rgba(255,218,91,.1),transparent 28%),linear-gradient(180deg,rgba(4,28,38,.96),rgba(4,14,25,.97))!important;border-color:rgba(56,220,188,.28)!important}.live-grid.live-grid-16 .live-match-card{height:13.05vh!important;padding:.55vh .72vw .48vh!important;border-radius:.55vw!important}.live-grid.live-grid-8 .live-match-card{height:17vh!important;padding:.7vh .85vw .65vh!important;border-radius:.65vw!important}.live-grid.live-grid-16 .live-match-card.focus-match,.live-grid.live-grid-8 .live-match-card.focus-match{border-color:rgba(255,211,62,.78)!important;box-shadow:0 0 24px rgba(255,211,62,.22),inset 0 0 24px rgba(255,211,62,.1)!important}.live-grid.live-grid-16 .table-no,.live-grid.live-grid-8 .table-no{width:100%;display:flex;align-items:center;justify-content:center;gap:.28vw;color:#ffe88e!important;font-weight:950;line-height:1}.live-grid.live-grid-16 .table-no{font-size:.82vw!important}.live-grid.live-grid-8 .table-no{font-size:.95vw!important}.live-grid.live-grid-16 .table-no:before,.live-grid.live-grid-16 .table-no:after,.live-grid.live-grid-8 .table-no:before,.live-grid.live-grid-8 .table-no:after{content:'';width:1.4vw;height:1px;background:linear-gradient(90deg,transparent,#ffe48a)}.live-grid.live-grid-16 .table-no:after,.live-grid.live-grid-8 .table-no:after{transform:scaleX(-1)}.live-grid.live-grid-16 .live-player,.live-grid.live-grid-16 .live-player.right,.live-grid.live-grid-8 .live-player,.live-grid.live-grid-8 .live-player.right{width:100%;justify-content:center;gap:.45vw!important;min-width:0;text-align:center;color:#e8f5ff}.live-grid.live-grid-16 .live-player{font-size:.9vw!important}.live-grid.live-grid-8 .live-player{font-size:1.08vw!important}.live-grid.live-grid-16 .live-player b,.live-grid.live-grid-8 .live-player b{display:block;max-width:78%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-grid.live-grid-16 .live-player.right,.live-grid.live-grid-8 .live-player.right{flex-direction:row}.live-grid.live-grid-16 .match-avatar{width:1.9vw!important;height:1.9vw!important;border-width:1px!important;font-size:.82vw!important}.live-grid.live-grid-8 .match-avatar{width:2.35vw!important;height:2.35vw!important;border-width:1px!important;font-size:.95vw!important}.live-grid.live-grid-16 .live-score,.live-grid.live-grid-8 .live-score{width:100%;min-height:0;display:flex;align-items:center;justify-content:center;gap:.42vw!important}.live-grid.live-grid-16 .live-score strong{font-size:2.15vw!important}.live-grid.live-grid-8 .live-score strong{font-size:2.75vw!important}.live-grid.live-grid-16 .live-score em{font-size:1.2vw!important}.live-grid.live-grid-8 .live-score em{font-size:1.45vw!important}.live-grid.live-grid-16 .live-score small,.live-grid.live-grid-8 .live-score small{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.56vw!important;color:rgba(179,196,211,.72)!important}.live-grid.live-grid-16 .advance-inline{top:7.9vh!important;max-width:8vw!important}.live-grid.live-grid-8 .advance-inline{top:10.2vh!important;max-width:9vw!important}.live-grid.live-grid-16 .live-player.is-advanced b,.live-grid.live-grid-8 .live-player.is-advanced b{color:#43f59e!important;text-shadow:0 0 14px rgba(61,242,156,.42)}

/* V2.4.5：比赛卡片三段式排版，避免头像/比分/姓名重叠 */
.live-grid.live-grid-16 .live-match-card,.live-grid.live-grid-8 .live-match-card{grid-template-columns:1fr 1fr!important;grid-template-rows:auto minmax(0,1fr) auto!important;column-gap:.6vw!important;row-gap:.25vh!important}.live-grid.live-grid-16 .table-no,.live-grid.live-grid-8 .table-no{grid-column:1/3;align-self:start}.live-grid.live-grid-16 .live-player,.live-grid.live-grid-16 .live-player.right,.live-grid.live-grid-8 .live-player,.live-grid.live-grid-8 .live-player.right{align-self:center;display:grid!important;grid-template-columns:auto minmax(0,1fr);justify-content:start!important;justify-items:start;text-align:left;gap:.42vw!important}.live-grid.live-grid-16 .live-player.right,.live-grid.live-grid-8 .live-player.right{grid-template-columns:auto minmax(0,1fr);justify-items:start;text-align:left}.live-grid.live-grid-16 .live-player b,.live-grid.live-grid-8 .live-player b{max-width:100%!important;line-height:1.15}.live-grid.live-grid-16 .live-score,.live-grid.live-grid-8 .live-score{grid-column:1/3;align-self:end;height:auto!important;padding-top:.15vh}.live-grid.live-grid-16 .live-score small,.live-grid.live-grid-8 .live-score small{position:static!important;transform:none!important;margin-left:.55vw}.live-grid.live-grid-16 .advance-inline,.live-grid.live-grid-8 .advance-inline{position:static!important;transform:none!important;margin-left:.55vw;max-width:8.5vw!important}.live-grid.live-grid-16 .live-match-card{height:13.6vh!important;padding:.65vh .78vw .56vh!important}.live-grid.live-grid-8 .live-match-card{height:17.4vh!important;padding:.82vh .95vw .7vh!important}.live-grid.live-grid-16 .live-score strong{font-size:1.95vw!important}.live-grid.live-grid-8 .live-score strong{font-size:2.45vw!important}.live-grid.live-grid-16 .live-player{font-size:.92vw!important}.live-grid.live-grid-8 .live-player{font-size:1.08vw!important}

/* V2.4.7：比赛列表整体上移、item 放大、比分居中上提 */
.live-state .showcase-content{height:96%!important;padding-top:0!important}.live-state .event-kicker{margin:-.35vh 0 .55vh!important}.live-state .live-header{margin-bottom:.5vh!important}.live-state .live-header h2{font-size:3.05vw!important;line-height:1!important}.live-state .live-grid{width:96%!important}.live-grid.live-grid-16{gap:1.05vh 1.05vw!important}.live-grid.live-grid-8{gap:1.25vh 1.12vw!important}.live-grid.live-grid-16 .live-match-card{height:14.65vh!important;padding:.48vh .9vw .52vh!important}.live-grid.live-grid-8 .live-match-card{height:18.65vh!important;padding:.7vh 1.05vw .75vh!important}.live-grid.live-grid-16 .live-score,.live-grid.live-grid-8 .live-score{justify-content:center!important;align-self:center!important;transform:translateY(-.72vh);padding-top:0!important}.live-grid.live-grid-16 .live-score strong{font-size:2.25vw!important}.live-grid.live-grid-8 .live-score strong{font-size:2.75vw!important}.live-grid.live-grid-16 .live-score em{font-size:1.38vw!important}.live-grid.live-grid-8 .live-score em{font-size:1.65vw!important}.live-grid.live-grid-16 .live-player,.live-grid.live-grid-16 .live-player.right{font-size:1.02vw!important}.live-grid.live-grid-8 .live-player,.live-grid.live-grid-8 .live-player.right{font-size:1.18vw!important}.live-grid.live-grid-16 .match-avatar{width:2.18vw!important;height:2.18vw!important}.live-grid.live-grid-8 .match-avatar{width:2.55vw!important;height:2.55vw!important}.live-state .live-footer{margin-top:.8vh!important}

/* V2.4.8：item 内选手/比分三段等高居中 */
.live-grid.live-grid-16 .live-match-card,.live-grid.live-grid-8 .live-match-card{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important;column-gap:.5vw!important;row-gap:.2vh!important;align-items:center!important;justify-items:stretch!important}.live-grid.live-grid-16 .table-no,.live-grid.live-grid-8 .table-no{grid-column:1/4!important;grid-row:1!important;align-self:start!important;justify-self:center!important}.live-grid.live-grid-16 .live-player,.live-grid.live-grid-8 .live-player{grid-column:1!important;grid-row:2!important;height:100%!important;align-self:stretch!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important}.live-grid.live-grid-16 .live-player.right,.live-grid.live-grid-8 .live-player.right{grid-column:3!important;grid-row:2!important;height:100%!important;align-self:stretch!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important}.live-grid.live-grid-16 .live-score,.live-grid.live-grid-8 .live-score{grid-column:2!important;grid-row:2!important;height:100%!important;align-self:stretch!important;display:flex!important;align-items:center!important;justify-content:center!important;transform:none!important}.live-grid.live-grid-16 .live-score small,.live-grid.live-grid-8 .live-score small{position:absolute!important;left:50%!important;top:calc(50% + 2.05vh)!important;transform:translateX(-50%)!important;margin-left:0!important}.live-grid.live-grid-16 .advance-inline,.live-grid.live-grid-8 .advance-inline{position:absolute!important;left:50%!important;top:calc(50% + 2.1vh)!important;transform:translateX(-50%)!important;margin-left:0!important}

@keyframes livePulse{50%{opacity:.35;transform:scale(.78)}}
@keyframes backdropBreath{50%{filter:brightness(1.08)}}
@keyframes feedFlash{50%{color:#fff;text-shadow:0 0 18px #55efb1}}
@keyframes scanLine{from{top:-10%}to{top:110%}}
@keyframes dotBounce{50%{transform:translateY(-.4vh);opacity:.4}}
@keyframes gainRise{from{transform:translateY(.8vh);opacity:0}to{transform:none;opacity:1}}
@keyframes scoreGlow{50%{color:#5ff0ae;text-shadow:0 0 15px #32db91;transform:scale(1.12)}}
@keyframes countPop{0%{transform:scale(.35);opacity:.2}70%{transform:scale(1.16)}100%{transform:scale(1);opacity:1}}
@keyframes orbitSpin{0%{transform:rotate(0) scale(.7);opacity:.3}70%{transform:rotate(760deg) scale(1.04);opacity:1}100%{transform:rotate(720deg) scale(1)}}
@keyframes pairReveal{from{opacity:0;transform:translateY(4vh) scale(.92)}to{opacity:1;transform:none}}
@keyframes promotionPosterIn{from{opacity:0;transform:scale(.96) translateY(1.5vh)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes scorePop{0%{transform:scale(.45)}55%{transform:scale(1.55)}100%{transform:scale(1)}}
@keyframes momentPop{0%{transform:translateY(1vh);opacity:0}100%{transform:none;opacity:1}}
@keyframes raysSpin{to{transform:rotate(360deg)}}
@keyframes trophyFloat{50%{transform:translateY(-.7vh) scale(1.06)}}
@keyframes confettiV24{to{top:105%;transform:rotate(720deg)}}
@keyframes avatarRush{to{transform:translateX(-19.2vw)}}
@keyframes avatarStop{0%{transform:translateX(-19.2vw)}100%{transform:translateX(-111.8vw)}}
@keyframes winnerReveal{from{transform:scale(.2) rotate(-12deg);opacity:0}70%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}
@keyframes haloPulse{50%{transform:scale(1.15);opacity:.48}}

@media (max-aspect-ratio:16/10){.draw-pair-card{height:16vh}.champion-avatar{width:8vw;height:8vw}.podium-row{margin-top:.6vh}.lottery-avatar-stage{height:17vw}}

/* ===== V2.5 Release Candidate · 抽签随机感 / 抽奖紧张感 ===== */
.chaos-phase .showcase-content{width:min(94vw,1780px)}
.draw-chaos-shell{position:relative;height:57vh;margin-top:1.5vh;border:1px solid rgba(92,210,255,.22);border-radius:2vw;background:radial-gradient(circle at 50% 45%,rgba(41,125,196,.18),rgba(4,12,28,.88) 65%);overflow:hidden;box-shadow:inset 0 0 80px rgba(17,108,184,.14),0 0 45px rgba(21,131,223,.13)}
.chaos-pool{position:absolute;inset:0 0 18vh;overflow:hidden}
.chaos-player{position:absolute;left:var(--x);top:var(--y);display:flex;flex-direction:column;align-items:center;gap:.5vh;animation:chaosMove var(--speed) ease-in-out infinite alternate,chaosPulse 1.35s ease-in-out infinite;animation-delay:calc(var(--i)*-.23s);filter:drop-shadow(0 0 18px rgba(66,199,255,.32));z-index:calc(10 + var(--i))}
.chaos-player:nth-child(3n){animation-direction:alternate-reverse}
.chaos-player b{font-size:1.05vw;color:#eef8ff;text-shadow:0 2px 10px #000}
.chaos-avatar{width:5.2vw;height:5.2vw;border-radius:50%;border:3px solid rgba(115,219,255,.8);background:#10233d;box-shadow:0 0 26px rgba(57,183,255,.35)}
@keyframes chaosMove{0%{transform:translate(calc(var(--dx)*-1),calc(var(--dy)*-1)) rotate(-8deg) scale(.88)}35%{transform:translate(var(--dx),calc(var(--dy)*.35)) rotate(9deg) scale(1.08)}70%{transform:translate(calc(var(--dx)*-.35),var(--dy)) rotate(-4deg) scale(.96)}100%{transform:translate(calc(var(--dx)*.8),calc(var(--dy)*-.75)) rotate(7deg) scale(1.02)}}
@keyframes chaosPulse{50%{filter:drop-shadow(0 0 32px rgba(80,214,255,.62));opacity:.9}}
.pair-lock-zone{position:absolute;left:50%;bottom:1.8vh;transform:translateX(-50%);width:70%;height:15vh;display:grid;grid-template-columns:1fr 8vw 1fr;align-items:center;gap:1vw;padding:1.2vh 1.4vw;border-radius:1.5vw;background:rgba(3,10,24,.82);border:1px solid rgba(255,255,255,.13);box-shadow:0 16px 50px rgba(0,0,0,.42),inset 0 0 35px rgba(56,164,255,.08)}
.pair-lock-zone>em{font-size:3.3vw;font-weight:1000;color:#ffd56b;font-style:normal;text-shadow:0 0 25px rgba(255,190,47,.55)}
.lock-slot{height:11.5vh;border-radius:1.2vw;border:2px dashed rgba(106,206,255,.42);display:flex;align-items:center;justify-content:center;gap:1vw;color:#9fc4dd;font-size:1.2vw;background:rgba(20,56,88,.3);transition:.35s}
.lock-slot b{font-size:2.15vw;color:#fff}
.lock-avatar{width:5.8vw;height:5.8vw;border-radius:50%;border:3px solid #66d6ff}
.lock-slot.slot-rolling{box-shadow:0 0 35px rgba(52,193,255,.3);transform:scale(1.02)}
.lock-slot.slot-locked{border-style:solid;border-color:#65e3a2;background:rgba(17,111,75,.25);box-shadow:0 0 38px rgba(47,230,147,.25)}
.pair-lock-zone.pair-reveal{animation:pairReveal .7s cubic-bezier(.16,.9,.25,1)}
@keyframes pairReveal{0%{transform:translateX(-50%) scale(.9);filter:brightness(2)}60%{transform:translateX(-50%) scale(1.04)}100%{transform:translateX(-50%) scale(1)}}
.mini-pairs{display:flex;justify-content:center;gap:.7vw;flex-wrap:wrap;margin-top:1.2vh}
.mini-pair{display:flex;align-items:center;gap:.45vw;padding:.45vh .65vw;border-radius:.8vw;background:rgba(17,49,78,.72);border:1px solid rgba(102,205,255,.2);font-size:.85vw}
.mini-pair small{color:#78d7ff}.mini-pair em{color:#ffd56a;font-style:normal}.mini-avatar{width:1.8vw;height:1.8vw;border-radius:50%}

.lottery-machine{width:82vw;display:grid;grid-template-columns:3vw 1fr 3vw;align-items:center;margin:2.5vh auto 1vh}
.machine-side{height:18vh;border-radius:2vw 0 0 2vw;background:linear-gradient(180deg,#f0b62f,#7c3b04);box-shadow:0 0 35px rgba(255,166,34,.3)}
.machine-side.right{border-radius:0 2vw 2vw 0}
.lottery-window{height:24vh;position:relative;overflow:hidden;border-top:4px solid #ffc95b;border-bottom:4px solid #ffc95b;background:linear-gradient(180deg,rgba(5,13,25,.94),rgba(22,12,28,.96));box-shadow:inset 0 0 55px rgba(0,0,0,.75),0 0 45px rgba(255,167,39,.2)}
.lottery-window:before,.lottery-window:after{content:"";position:absolute;top:0;bottom:0;width:18%;z-index:3;pointer-events:none}.lottery-window:before{left:0;background:linear-gradient(90deg,#050b16,transparent)}.lottery-window:after{right:0;background:linear-gradient(-90deg,#050b16,transparent)}
.avatar-track{height:100%;display:flex;align-items:center;gap:2.3vw;width:max-content;will-change:transform;padding:0 37vw}
.avatar-track.manual-roll{animation:manualRoll 1.15s linear infinite}
.avatar-track.decelerating{animation:decelerateRoll 4.8s cubic-bezier(.08,.72,.16,1) forwards}
.avatar-track.decelerating.near-stop .lottery-person{transition:transform .4s}.avatar-track.decelerating.near-stop .lottery-person:nth-child(odd){transform:scale(.94)}
.avatar-track.final-creep{filter:brightness(1.07)}
.avatar-track.locked{animation-play-state:paused}
@keyframes manualRoll{from{transform:translateX(0)}to{transform:translateX(-37.2vw)}}
@keyframes decelerateRoll{0%{transform:translateX(-6vw)}22%{transform:translateX(-49vw)}43%{transform:translateX(-79vw)}62%{transform:translateX(-99vw)}76%{transform:translateX(-111vw)}86%{transform:translateX(-117vw)}92%{transform:translateX(-120vw)}96%{transform:translateX(-121.3vw)}100%{transform:translateX(-122vw)}}
.lottery-person{min-width:10vw;display:flex;flex-direction:column;align-items:center;gap:.8vh;opacity:.7;transform:scale(.82);transition:.2s}
.lottery-person b{font-size:1.25vw;color:#fff}.lottery-avatar{width:7.2vw;height:7.2vw;border-radius:50%;border:3px solid rgba(255,255,255,.34)}
.lottery-focus-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:12.5vw;height:20vh;border:4px solid #ffd25f;border-radius:1.4vw;z-index:5;box-shadow:0 0 34px rgba(255,196,50,.55),inset 0 0 28px rgba(255,190,35,.13);pointer-events:none}
.lottery-focus-frame span{position:absolute;top:-2.2vh;left:50%;transform:translateX(-50%);background:#ffd25f;color:#241200;padding:.35vh 1vw;border-radius:99px;font-size:.8vw;font-weight:900;white-space:nowrap}
.lottery-stop-tip{display:inline-flex;align-items:center;gap:.7vw;margin:1.2vh auto 0;padding:.8vh 1.2vw;border-radius:99px;background:rgba(255,255,255,.07);color:#cbd9e8;font-size:1.05vw}
.lottery-stop-tip i{width:.65vw;height:.65vw;border-radius:50%;background:#ffc34b;box-shadow:0 0 15px #ffc34b;animation:blink .8s infinite}
.lottery-stop-tip.ready{color:#fff;background:rgba(255,150,40,.12);border:1px solid rgba(255,186,75,.3)}
.lottery-stop-tip.stopping{font-size:1.2vw;color:#fff;background:rgba(255,67,67,.16);border:1px solid rgba(255,101,101,.35);animation:stopPulse .85s ease-in-out 2}
.lottery-stop-tip.stopping b{font-size:1.8vw;color:#ff7272}
@keyframes stopPulse{50%{transform:scale(1.08);box-shadow:0 0 35px rgba(255,66,66,.25)}}
@keyframes blink{50%{opacity:.3}}


/* ===== V2.5.1 TV RC Fix · 抽签可见性 / 抽奖对齐与节奏 ===== */
.chaos-phase .showcase-content{height:100%;padding:2.2vh 1.8vw 1.4vh;box-sizing:border-box;justify-content:flex-start}
.chaos-phase .event-kicker{margin-top:0}
.chaos-phase .draw-main-title{font-size:3.4vw!important;line-height:1.05;margin:.5vh 0 1vh!important}
.chaos-phase .draw-chaos-shell{width:92%;height:56vh;min-height:430px;margin:.4vh auto 0;overflow:hidden}
.chaos-pool{position:absolute;inset:0 0 16vh;overflow:hidden;z-index:2}
.chaos-energy{position:absolute;inset:4% 8% 24%;border-radius:50%;background:radial-gradient(circle,rgba(70,194,255,.18),transparent 64%);animation:energyPulse 1.1s ease-in-out infinite;z-index:1}
.chaos-player{position:absolute;left:var(--x);top:var(--y);display:flex;flex-direction:column;align-items:center;gap:.45vh;animation:chaosVisible var(--speed) cubic-bezier(.45,.05,.55,.95) infinite alternate;animation-delay:var(--delay);z-index:5;opacity:1!important;filter:drop-shadow(0 0 22px rgba(74,207,255,.62));will-change:transform}
.chaos-player:nth-child(even){animation-direction:alternate-reverse}
.chaos-player.picked{animation:none;transform:scale(1.7);opacity:0!important;transition:.42s ease}
.chaos-avatar{width:5.4vw;height:5.4vw;min-width:72px;min-height:72px;border-radius:50%;border:4px solid rgba(112,222,255,.92);background:#10233d;box-shadow:0 0 28px rgba(57,183,255,.52)}
.chaos-player b{font-size:1.1vw;min-font-size:18px;color:#fff;text-shadow:0 3px 12px #000;font-weight:900}
@keyframes chaosVisible{0%{transform:translate3d(0,0,0) rotate(-10deg) scale(.88)}30%{transform:translate3d(var(--x1),var(--y1),0) rotate(12deg) scale(1.08)}65%{transform:translate3d(var(--x2),var(--y2),0) rotate(-7deg) scale(.94)}100%{transform:translate3d(var(--x2),var(--y1),0) rotate(8deg) scale(1.03)}}
@keyframes energyPulse{50%{transform:scale(1.14);opacity:.5}}
.chaos-phase .pair-lock-zone{z-index:8;width:72%;bottom:1.1vh}
.chaos-phase .draw-lock-line{margin-top:.8vh}
.chaos-phase .mini-pairs{min-height:3.3vh;margin-top:.55vh}

.lottery-rolling .showcase-content{width:100%;height:100%;padding:2vh 2vw;box-sizing:border-box;justify-content:flex-start}
.lottery-rolling .event-kicker{margin-top:0}
.lottery-rolling .showcase-content>h2{font-size:3.35vw!important;line-height:1.08;margin:.7vh 0 1.6vh!important}
.lottery-machine{width:86vw;grid-template-columns:3.2vw minmax(0,1fr) 3.2vw;margin:1.5vh auto 1vh}
.lottery-window{height:25vh;min-height:210px;box-sizing:border-box}
.avatar-track{position:absolute;left:0;top:0;height:100%;display:flex;align-items:center;gap:2.1vw;width:max-content;padding:0!important;will-change:transform}
.lottery-person{width:10vw;min-width:10vw;flex:0 0 10vw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8vh;opacity:.76;transform:scale(.88);transition:transform .22s ease,opacity .22s ease,filter .22s ease}
.lottery-person b{font-size:1.35vw;color:#fff;font-weight:900;text-shadow:0 3px 12px #000;white-space:nowrap}
.lottery-avatar{width:7.4vw;height:7.4vw;min-width:92px;min-height:92px;border-radius:50%;border:3px solid rgba(255,255,255,.38)}
.lottery-person.in-focus{opacity:1;transform:scale(1.1);filter:brightness(1.22)}
.lottery-person.in-focus .lottery-avatar{border-color:#ffd25f;box-shadow:0 0 32px rgba(255,202,79,.6)}
.lottery-person.winner-locked{animation:winnerLock .75s ease-in-out infinite alternate}
.lottery-focus-frame{left:50%;top:50%;width:12.7vw;height:21vh;transform:translate(-50%,-50%);box-sizing:border-box}
.lottery-stop-tip{margin:.9vh auto 0}
.lottery-prize-line{margin-top:.8vh}
.avatar-track.decelerating-js{animation:none!important}
@keyframes winnerLock{to{transform:scale(1.16);filter:brightness(1.38)}}
@media (max-width:1500px){.chaos-avatar{min-width:62px;min-height:62px}.lottery-avatar{min-width:78px;min-height:78px}.lottery-window{min-height:180px}}

/* V2.5.2 draw visibility + one-way lottery lock fix */
.chaos-phase .showcase-content{
  width:100%;height:100%;box-sizing:border-box;padding:1.2vh 1.5vw 1vh;
  justify-content:flex-start;overflow:hidden;
}
.chaos-phase .draw-chaos-shell{
  width:92%;height:49vh;min-height:360px;margin:.3vh auto 0;
}
.chaos-phase .pair-lock-zone{
  width:74%;height:13.5vh;bottom:1.2vh;z-index:12;
}
.chaos-phase .lock-slot{min-height:10.5vh}
.chaos-phase .draw-lock-line.visible-status{
  margin:.75vh auto 0;position:relative;z-index:20;min-height:2.8vh;
}
.chaos-phase .mini-pairs{
  position:relative;z-index:20;min-height:4.2vh;margin-top:.45vh;padding-bottom:.25vh;
}
.result-phase .showcase-content{padding:2vh 2vw;overflow:hidden}
.result-phase .draw-pair-grid{width:88%;gap:1.2vh 1.1vw}
.result-phase .draw-pair-card{height:16.5vh}

.lottery-focus-frame.locked{
  border-color:#fff1a6;
  box-shadow:0 0 18px #fff,0 0 55px rgba(255,202,79,.95),inset 0 0 34px rgba(255,210,80,.22);
  animation:focusLockPulse .72s ease-in-out 3;
}
.lottery-stop-tip.locked{
  color:#fff;background:rgba(255,197,52,.18);border:1px solid rgba(255,220,105,.55);
}
.lottery-stop-tip.locked b{font-size:1.35vw;color:#ffd966}
.lottery-person.winner-locked{
  opacity:1!important;transform:scale(1.16)!important;filter:brightness(1.35);
}
.lottery-person.winner-locked .lottery-avatar{
  border-color:#fff0a1;box-shadow:0 0 20px #fff,0 0 48px rgba(255,202,79,.95);
}
@keyframes focusLockPulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.035)}}

/* V2.5.3 final presentation polish */
.rank-toast.rank-exit{
  transform:translate(-50%,-190%) scale(.96)!important;
  opacity:0;
  filter:blur(2px);
  transition:transform .62s cubic-bezier(.5,0,1,.45),opacity .48s ease,filter .48s ease;
}

.result-phase .showcase-content{
  width:100%;
  height:100%;
  padding:2.2vh 3vw 2vh;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.result-phase .event-kicker{margin:0 0 .7vh}
.result-phase .showcase-content>h2{
  font-size:4.35vw!important;
  line-height:1;
  margin:.5vh 0 2.2vh!important;
  text-align:center;
}
.result-phase .draw-pair-grid{
  width:min(78vw,1420px)!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1.5vh 1.5vw!important;
  align-items:stretch;
  justify-content:center;
}
.result-phase .draw-pair-card{
  width:100%;
  height:15.5vh!important;
  min-height:126px;
  box-sizing:border-box;
  grid-template-columns:.28fr 1fr .34fr 1fr!important;
  padding:0 1.15vw!important;
  overflow:hidden;
}
.result-phase .draw-pair-card>div{min-width:0;justify-content:center}
.result-phase .draw-pair-card b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-phase .draw-result-tip{
  margin:2.1vh auto 0!important;
  padding:.9vh 1.7vw;
  border-radius:999px;
  border:1px solid rgba(105,210,255,.38);
  background:rgba(12,34,58,.78);
  color:#d7ebff;
  font-size:1.2vw!important;
  letter-spacing:.03em;
  text-align:center;
  box-shadow:0 0 25px rgba(51,174,255,.12);
}
@media (max-width:1500px){
  .result-phase .draw-pair-grid{width:82vw!important}
  .result-phase .draw-pair-card{min-height:110px;height:15vh!important}
  .result-phase .draw-result-tip{font-size:1.35vw!important}
}


/* V2.5.4 off-screen rank toast + precise lottery center lock */
.rank-toast{
  top:0!important;
  transform:translate(-50%,-125%)!important;
  opacity:0;
  pointer-events:none;
}
.rank-toast.show{
  transform:translate(-50%,12vh)!important;
  opacity:1;
}
.rank-toast.rank-exit{
  transform:translate(-50%,-125%) scale(.96)!important;
  opacity:0!important;
}
.lottery-person.winner-locked{
  transform:scale(1.2)!important;
}
.lottery-focus-frame.locked{
  box-shadow:0 0 26px #fff7b8,0 0 58px rgba(255,202,79,.95),inset 0 0 30px rgba(255,218,102,.22)!important;
}

/* V2.5.5 lottery final suspense glide */
.lottery-focus-frame.anticipating{
  border-color:#ffe17a;
  box-shadow:0 0 18px rgba(255,225,122,.72),0 0 48px rgba(255,193,64,.48),inset 0 0 28px rgba(255,220,110,.14);
  animation:anticipationPulse .68s ease-in-out infinite alternate;
}
.lottery-stop-tip.final-locking{
  color:#fff4c9;
  border-color:rgba(255,214,94,.48);
  background:rgba(112,72,16,.34);
  animation:tipSuspense .72s ease-in-out infinite alternate;
}
@keyframes anticipationPulse{
  from{transform:translate(-50%,-50%) scale(1);filter:brightness(1)}
  to{transform:translate(-50%,-50%) scale(1.025);filter:brightness(1.18)}
}
@keyframes tipSuspense{
  from{transform:scale(1);opacity:.82}
  to{transform:scale(1.025);opacity:1}
}
/* V2.5.8: lottery uses monotonic scrollLeft; hide native scrollbar */
.lottery-window{overflow:hidden!important;scroll-behavior:auto!important}
.lottery-window::-webkit-scrollbar{display:none}

/* V2.5.9: fixed lucky frame lives outside the scrolling viewport */
.lottery-window-wrap{
  position:relative;
  width:100%;
  height:25vh;
  min-height:210px;
  overflow:visible;
}
.lottery-window-wrap .lottery-window{
  width:100%;
  height:100%;
  min-height:0;
}
.lottery-window-wrap .lottery-focus-frame{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  z-index:20!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
}
@media (max-width:1500px){
  .lottery-window-wrap{min-height:180px}
}


/* ===== V2.6.0: centered draw result + scene timeout fallback polish ===== */
/* Later duplicate pairReveal keyframes used translateX(-50%) and shifted every card left. */
@keyframes pairReveal{
  from{opacity:0;transform:translateY(4vh) scale(.92)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.result-phase .showcase-content{
  width:100%!important;
  max-width:none!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  margin:0!important;
}
.result-phase .draw-pair-grid{
  width:min(76vw,1380px)!important;
  max-width:calc(100vw - 10vw)!important;
  margin:0 auto!important;
  align-self:center!important;
  justify-self:center!important;
  transform:none!important;
}
.result-phase .draw-pair-card{
  margin:0!important;
  transform:none;
}
.result-phase.result-16 .showcase-content>h2{font-size:3.45vw!important;margin:.25vh 0 1.2vh!important}
.result-phase.result-16 .draw-pair-grid{width:min(84vw,1500px)!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:1vh .9vw!important}
.result-phase.result-16 .draw-pair-card{height:12.1vh!important;min-height:88px!important;grid-template-columns:.24fr 1fr .28fr 1fr!important;padding:0 .75vw!important}
.result-phase.result-16 .pair-avatar{width:3vw!important;height:3vw!important}
.result-phase.result-16 .draw-pair-card b{font-size:1.2vw!important}
.result-phase.result-16 .draw-pair-card small,.result-phase.result-16 .draw-pair-card em{font-size:1vw!important}
.result-phase.result-8 .draw-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.result-phase.result-4 .draw-pair-grid{width:min(70vw,1180px)!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.result-phase.result-4 .draw-pair-card{height:18vh!important}
.result-phase .draw-result-tip{
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Keep result layouts comfortably inside 16:9 TV safe area. */
@media (max-width:1500px){
  .result-phase .draw-pair-grid{width:min(80vw,1220px)!important}
}

/* V2.7.2 — all modules have a complete no-data presentation */
.placeholder-row {
  opacity: 0.88;
  border-style: dashed;
}
.placeholder-row.top {
  background: linear-gradient(90deg, rgba(52, 35, 10, 0.72), rgba(20, 21, 28, 0.72));
}
.placeholder-row .player b {
  color: #d9e7f4;
}
.placeholder-avatar {
  background: radial-gradient(circle at 35% 28%, rgba(89, 187, 255, 0.2), rgba(11, 31, 53, 0.95));
  border: 1px dashed rgba(111, 196, 255, 0.34);
}
.placeholder-avatar i {
  color: #91cfff;
}
.placeholder-score,
.placeholder-money,
.placeholder-gift {
  color: #91a8bd !important;
  font-size: 0.92vw !important;
}
.placeholder-podium {
  opacity: 0.92;
  border-style: dashed;
}
.placeholder-avatar-large {
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 35%, rgba(255, 201, 75, 0.18), rgba(10, 20, 34, 0.92));
  border-style: dashed;
}
.placeholder-avatar-large i {
  font-size: 2.3vw;
  color: #ffd46a;
  font-style: normal;
}
.placeholder-star-row {
  opacity: 0.82;
  border-style: dashed;
}
.star-placeholder-grid .star-center b {
  font-size: 1.3vw;
}
.star-placeholder-grid .star-center small {
  color: #bdcce0;
  font-size: 0.76vw;
}

/* V2.7.3: 长门店名称强制单行，避免挤压顶部统计卡片 */
#venueName {
  display: block;
  max-width: 330px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.15;
}


/* V2.7.6 今日之星真实数据更新动画 */
#starBox.star-update-animate .star-center { animation: starUpdatePulse 1.15s ease-in-out 0s 3; }
#starBox.star-update-animate .star-center .stage-avatar.hero { animation: starAvatarPop .75s cubic-bezier(.2,.9,.2,1.2) both; }
#starBox.star-update-animate .star-center .stage-score.main { animation: starScoreFlash .9s ease-in-out 0s 3; }
@keyframes starUpdatePulse { 0%,100%{transform:scale(1);box-shadow:0 0 22px rgba(255,173,44,.18)} 50%{transform:scale(1.035);box-shadow:0 0 48px rgba(255,202,73,.62)} }
@keyframes starAvatarPop { 0%{transform:scale(.72);opacity:.25} 70%{transform:scale(1.12);opacity:1} 100%{transform:scale(1)} }
@keyframes starScoreFlash { 0%,100%{filter:none} 50%{filter:drop-shadow(0 0 16px #ffd45d);transform:scale(1.12)} }

/* V2.8.1 后端节目编排 */
body[data-ticker-speed="slow"] .ticker-content{animation-duration:44s!important}
body[data-ticker-speed="normal"] .ticker-content{animation-duration:30s!important}
body[data-ticker-speed="fast"] .ticker-content{animation-duration:18s!important}
.dashboard-v2>.column:only-child{grid-column:1/-1}
body.tv-safe-mode .dashboard-v2{grid-template-columns:1fr}
body.tv-safe-mode .column-left{grid-column:1/-1;grid-row:1/-1}
body.tv-safe-mode .column-left .strength-panel{min-height:0}

/* V2.11.0 发布比赛海报恢复版：放在文件末尾，覆盖旧 promo 样式 */
.promo-state .showcase-content{width:100%!important;height:100%!important;justify-content:stretch!important;align-items:stretch!important;text-align:left!important}
.promo-state .showcase-backdrop{background:radial-gradient(circle at 67% 54%,rgba(255,179,39,.42),transparent 29%),radial-gradient(circle at 16% 22%,rgba(24,102,189,.24),transparent 32%),linear-gradient(135deg,#02060e 0%,#061427 45%,#100904 100%)!important;border-color:rgba(255,192,64,.28)!important;box-shadow:inset 0 0 110px rgba(255,176,35,.15),0 0 45px #000!important}
.poster-gold-restored{position:relative;width:100%;height:100%;padding:2.6vh 3vw 2.4vh;display:grid;grid-template-columns:1.05fr .95fr;gap:1.8vw;overflow:hidden;background:radial-gradient(circle at 68% 63%,rgba(255,176,30,.16),transparent 28%)}
.poster-gold-restored:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,198,70,.14),transparent);height:1px;top:22%;box-shadow:0 20vh 80px rgba(255,170,32,.22);pointer-events:none}
.poster-hero-copy,.poster-trophy-stage{position:relative;z-index:2;min-width:0}.poster-hero-copy{display:flex;flex-direction:column;justify-content:center;padding-bottom:1.5vh}.poster-badge.megaphone{align-self:flex-start;display:inline-flex;align-items:center;gap:.55vw;padding:.62vh 1.15vw;border-radius:.72vw;background:linear-gradient(120deg,rgba(118,80,26,.96),rgba(45,29,13,.92));border:1px solid rgba(255,202,91,.36);box-shadow:0 0 24px rgba(255,180,50,.22);color:#fff2c8;font-size:1.42vw;font-weight:950}.poster-badge.megaphone span{font-size:1.55vw}.poster-hero-copy h2{margin:2.1vh 0 1.05vh;font-size:6.8vw;line-height:.98;letter-spacing:.02em;color:#fff3c8;text-shadow:0 0 18px rgba(255,216,125,.38),0 .5vh 0 rgba(75,43,7,.8);white-space:nowrap}.poster-sub{display:flex;align-items:center;gap:.75vw;margin-bottom:3.6vh;color:#2b1700}.poster-sub b{padding:.5vh 1.25vw;background:linear-gradient(90deg,#f7c04e,#fff0a8,#d79525);clip-path:polygon(4% 0,96% 0,100% 50%,96% 100%,4% 100%,0 50%);font-size:1.28vw;color:#291500}.poster-sub span{color:#120a02;font-size:1vw}.poster-stat-row{width:92%;display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:.9vw;background:rgba(10,12,16,.78);border:1px solid rgba(255,207,96,.2);box-shadow:inset 0 0 28px rgba(255,190,45,.08);overflow:hidden}.poster-stat-row div{height:9.7vh;display:flex;align-items:center;justify-content:center;gap:.85vw;border-right:1px solid rgba(255,255,255,.1)}.poster-stat-row div:last-child{border-right:0}.poster-stat-row i{font-style:normal;color:#ffc72f;font-size:2.25vw}.poster-stat-row b{font-size:3.15vw;color:#fff;font-weight:950}.poster-stat-row span{font-size:2vw;color:#fff}.poster-reward-card{width:88%;margin-top:2vh;padding:1.6vh 1.4vw 1.35vh;border-radius:1vw;background:linear-gradient(180deg,rgba(12,12,14,.82),rgba(5,7,12,.92));border:1px solid rgba(255,207,88,.35);box-shadow:inset 0 0 28px rgba(255,178,42,.1)}.poster-reward-card h3{margin:0;color:#ffe29b;text-align:center;font-size:1.55vw}.poster-reward-card strong{display:block;margin:.35vh 0 .85vh;text-align:center;font-size:6.3vw;line-height:1;color:#ffd35d;text-shadow:0 0 28px rgba(255,196,70,.46)}.poster-sub-rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:.8vw}.poster-sub-rewards div{height:7.2vh;border-radius:.55vw;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02));display:grid;place-items:center}.poster-sub-rewards span{font-size:1.25vw;color:#fff}.poster-sub-rewards b{font-size:1.75vw;color:#e8edf5}.poster-miniapp{width:74%;margin-top:1.8vh;display:flex;align-items:center;gap:1.1vw;padding:1.1vh 1.2vw;border-radius:.85vw;background:rgba(7,11,17,.86);border:1px solid rgba(255,255,255,.11)}.phone-qr{width:5.2vw;height:5.2vw;border-radius:.55vw;background:#f4f7fb;display:grid;place-items:center;box-shadow:inset 0 0 0 .45vw #dfe5ec}.phone-qr b{width:2.3vw;height:2.3vw;border-radius:50%;display:grid;place-items:center;background:#228fff;color:#fff;font-size:1.25vw}.poster-miniapp strong{display:block;color:#ffd24f;font-size:2.05vw}.poster-miniapp span{display:block;color:#fff;font-size:1.18vw}.poster-miniapp em{display:block;color:#aab9c8;font-style:normal;font-size:.86vw;margin-top:.35vh}.poster-trophy-stage{display:grid;place-items:center}.trophy-rays{position:absolute;width:42vw;height:42vw;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,205,76,.2) 0 6deg,transparent 6deg 13deg);filter:blur(.5px);animation:raysSpin 28s linear infinite}.gold-cup{position:relative;width:31vw;height:54vh;filter:drop-shadow(0 0 42px rgba(255,186,42,.58));z-index:2}.gold-cup-bowl{position:absolute;left:50%;top:4.2vh;transform:translateX(-50%);width:18.5vw;height:21vh;border-radius:1vw 1vw 8.8vw 8.8vw;background:linear-gradient(110deg,#fff2a8 0%,#f4b529 35%,#8f4b05 70%,#ffe78f 100%);border:.28vw solid rgba(255,239,168,.72);display:grid;place-items:center}.gold-cup-bowl span{width:5.8vw;height:5.8vw;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 32% 28%,#555,#050505 62%);border:.28vw solid #dca746;color:#fff;font-size:2.55vw;font-weight:950}.gold-cup-ear{position:absolute;top:7vh;width:7.2vw;height:13vh;border:.85vw solid #d69b2d;border-radius:50%;z-index:1}.gold-cup-ear.left{left:2vw}.gold-cup-ear.right{right:2vw}.gold-cup-neck{position:absolute;left:50%;top:25vh;transform:translateX(-50%);width:5vw;height:10vh;background:linear-gradient(90deg,#834404,#ffd56c,#8b4805);clip-path:polygon(28% 0,72% 0,100% 100%,0 100%)}.gold-cup-foot{position:absolute;left:50%;top:34.2vh;transform:translateX(-50%);width:13vw;height:8vh;border-radius:.9vw;background:linear-gradient(180deg,#f0b640,#4a2606);display:grid;place-items:center;color:#2c1600;font-size:1.55vw;font-weight:950;box-shadow:0 1.9vh 0 rgba(19,10,3,.94)}.trophy-ring{position:absolute;bottom:14vh;width:34vw;height:7vh;border-radius:50%;border:.22vw solid rgba(255,195,48,.75);box-shadow:0 0 38px rgba(255,180,32,.52),inset 0 0 30px rgba(255,190,50,.26)}.poster-trophy-stage .poster-countdown{position:absolute;right:5vw;bottom:1.8vh;width:25vw;display:grid;place-items:center;gap:.7vh;padding:1.1vh 1vw;border-radius:.8vw;background:rgba(5,10,17,.82);border:1px solid rgba(255,205,90,.24);text-align:center}.poster-trophy-stage .poster-countdown small{color:#e6eef8;font-size:1.05vw}.poster-trophy-stage .poster-countdown div{display:flex;align-items:center;gap:.65vw}.poster-trophy-stage .poster-countdown b{min-width:4.4vw;padding:.65vh .35vw;border-radius:.45vw;background:#111923;border:1px solid rgba(255,189,39,.55);color:#ffbd24;font-size:2.75vw;line-height:1;font-variant-numeric:tabular-nums}.poster-trophy-stage .poster-countdown span{color:#fff;font-size:2.2vw}

.publish-award.prize-focus{position:relative;overflow:hidden;}
.publish-award .prize-light{position:absolute;inset:-30%;background:radial-gradient(circle,rgba(255,215,80,.35),transparent 55%);animation:prizeLight 2s infinite;}
.publish-award strong#publishPrize{display:block;font-size:88px;color:#ffd34d;text-shadow:0 0 20px rgba(255,190,40,.8);font-weight:900;transform:scale(1);}
.publish-award strong#publishPrize.pulse{animation:prizePulse 1.4s infinite;}
@keyframes prizePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@keyframes prizeLight{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.2)}}


/* V6.4.3 restored publish poster */
.restored-publish{background:linear-gradient(135deg,#050505,#120d03);overflow:hidden}
.publish-top{display:flex;justify-content:space-between;align-items:center;padding:2vh 3vw}
.publish-layout{display:grid;grid-template-columns:55% 45%;height:78vh;align-items:center}
.publish-left{padding-left:4vw;text-align:left}
.publish-label{display:inline-block;padding:.8vh 2vw;border-radius:30px;background:#6b4512;color:#fff3c4;font-size:2vw}
.restored-publish h2{font-size:7vw;color:#fff0bd;margin:2vh 0;text-shadow:0 0 30px #f5b932}
.publish-stats{display:flex;gap:1vw;margin:3vh 0}
.publish-stats>div{border:1px solid #704c18;background:#101010;padding:1.5vh 2vw;border-radius:18px}
.publish-stats b{font-size:2.4vw;color:#fff}
.publish-stats span{display:block;color:#aaa}
.prize-focus{position:relative;text-align:center;width:70%;border:1px solid #8b5a17;border-radius:20px;padding:2vh;background:#090909}
.prize-focus span{display:block;color:#ffd76a;font-size:2vw}
.prize-focus strong{display:block;font-size:7vw;color:#ffc83d;text-shadow:0 0 35px #ffb000;animation:prizePulse 1.5s infinite}
.publish-ranks{display:flex;gap:10px;margin-top:15px}
.publish-ranks b{background:#151515;color:white;padding:12px 20px;border-radius:10px}
.publish-trophy{text-align:center}
.trophy-glow{font-size:22vw;filter:drop-shadow(0 0 40px #ffb000);animation:trophyFloat 3s infinite}
@keyframes prizePulse{50%{transform:scale(1.12)}}
@keyframes trophyFloat{50%{transform:translateY(-20px)}}
