@charset "UTF-8";
/* =========================================================
   WeGame 游戏之夜 2026 · 燃点之夜
   配色（Figma）：红 #fa373d / 黑 #181818 / 灰白 #ebebeb / 灰 #cbcbcb / 酒红 #220002
   字体：Anton（英文大标题） + 微软雅黑（中英文正文） + Reenie Beanie（手写日期）
   设计基准：1376 × 774，--u = 1 设计像素
   ========================================================= */

@font-face {
  font-family: 'Anton';
  src: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/Anton-Regular.ttf')
    format('truetype');
  font-display: swap;
}
@font-face {
  font-family: 'Reenie Beanie';
  src: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/ReenieBeanie.ttf')
    format('truetype');
  font-display: swap;
}

:root {
  /* 为端内顶部工具栏及小蛋头像预留空间，弹窗正文自行滚动。 */
  --overlay-top: max(88px, env(safe-area-inset-top, 0px));
  --overlay-bottom: max(28px, env(safe-area-inset-bottom, 0px));
  --overlay-height: calc(100vh - var(--overlay-top) - var(--overlay-bottom));
  --red: #fa373d;
  --red-d: #d01820;
  --black: #181818;
  --black-2: #030303;
  --light: #ebebeb;
  --light-2: #f0f0f0;
  --grey: #cbcbcb;
  --grey-2: #d9d9d9;
  --wine: #220002;
  --cd: rgba(86, 86, 86, 0.5);

  --f-display: 'Anton', 'Microsoft YaHei', sans-serif;
  --f-body: 'Microsoft YaHei', '微软雅黑', 'PingFang SC', 'Helvetica Neue',
    sans-serif;
  --f-hand: 'Reenie Beanie', 'Segoe Print', cursive;

  --u: min(calc(100vw / 1376), calc(100vh / 774));
  /* 1920px 以下保持控件可读尺寸；4K 时入口和导航等比放大到两倍。 */
  --night-ui-unit: clamp(1px, calc(100vw / 1920), 2px);
  --ease: cubic-bezier(0.76, 0, 0.24, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  --worn: none;
}
@media (max-aspect-ratio: 4/3) {
  :root {
    --u: calc(100vw / 1376);
  }
}

/* 保留活动及挂到 body 的弹窗 reset，避免覆盖 SSI 公共导航和搜索表单。 */
:where(html, body, #vue-container, #vue-container *, #dlg, #dlg *, .night-bind-qq, .night-bind-qq *) {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  -webkit-text-size-adjust: 100%;
}
/* 参考 WeGame 商店：透明轨道、圆角半透明滑块，hover 扩展可见宽度。
   仅覆盖活动页面和活动弹窗；组件原有隐藏滚动条的规则保持优先。 */
:root {
  --night-scrollbar-thumb: rgba(255, 255, 255, .15);
  --night-scrollbar-hover: rgba(255, 255, 255, .2);
}
/* 浅色纸张面板使用深色滑块，尺寸和交互与深色区域一致。 */
.submit__card, .sheet__panel, .rsv__card, .win__card, .dlg__card, .fol__card {
  --night-scrollbar-thumb: rgba(24, 24, 24, .15);
  --night-scrollbar-hover: rgba(24, 24, 24, .2);
}
:where(html, #vue-container *, .dlg__card)::-webkit-scrollbar {
  width: 10px;
  height: 6px;
  background: transparent;
}
:where(html, #vue-container *, .dlg__card)::-webkit-scrollbar-track,
:where(html, #vue-container *, .dlg__card)::-webkit-scrollbar-corner {
  background: transparent;
}
:where(html, #vue-container *, .dlg__card)::-webkit-scrollbar-thumb {
  background-color: var(--night-scrollbar-thumb);
  background-clip: padding-box;
  border: 2px solid transparent;
  border-radius: 10px;
  transition: background-color .2s ease-in-out;
}
:where(html, #vue-container *, .dlg__card)::-webkit-scrollbar-thumb:hover {
  background-color: var(--night-scrollbar-hover);
  border-color: var(--night-scrollbar-hover);
}
:where(html, #vue-container *, .dlg__card)::-webkit-scrollbar-button {
  display: none;
  width: 0;
  height: 0;
}
/* 标准属性只作非 WebKit 回退，避免覆盖 Chromium 的原生伪元素样式。 */
@supports not selector(::-webkit-scrollbar) {
  :where(html, #vue-container *, .dlg__card) {
    scrollbar-width: thin;
    scrollbar-color: var(--night-scrollbar-thumb) transparent;
  }
  body { scrollbar-color: auto; }
}
html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

body {
  background: var(--black);
  color: var(--light);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
:where(#vue-container, #dlg, .night-bind-qq) a {
  color: inherit;
  text-decoration: none;
}
:where(#vue-container, #dlg, .night-bind-qq) button,
:where(#vue-container, #dlg, .night-bind-qq) input {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  outline: 0;
}
:where(#vue-container, #dlg, .night-bind-qq) button {
  cursor: pointer;
}
:where(#vue-container, #dlg, .night-bind-qq) ol,
:where(#vue-container, #dlg, .night-bind-qq) ul {
  list-style: none;
}
:where(#vue-container, #dlg, .night-bind-qq) img,
:where(#vue-container, #dlg, .night-bind-qq) svg,
:where(#vue-container, #dlg, .night-bind-qq) canvas {
  display: block;
}
:where(#vue-container, #dlg, .night-bind-qq) em {
  font-style: normal;
}
::selection {
  background: var(--red);
  color: var(--black);
}
.svg-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}
[hidden] {
  display: none !important;
}

@media (hover: hover) and (pointer: fine) {
  html.has-cursor,
  html.has-cursor * {
    cursor: none !important;
  }
}

.line {
  display: block;
  overflow: hidden;
  padding: 0.08em 0 0.04em;
  margin: -0.08em 0 -0.04em;
}
.line > span {
  display: inline-block;
  will-change: transform;
}

.worn {
  -webkit-mask-image: var(--worn);
  mask-image: var(--worn);
  -webkit-mask-size: 420px 420px;
  mask-size: 420px 420px;
}

/* ---------- 质感叠层 ---------- */
.grain {
  position: fixed;
  inset: -50%;
  width: 200%;
  height: 200%;
  pointer-events: none;
  z-index: 986;
  opacity: 0.09;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: grain 0.6s steps(4) infinite;
}
@keyframes grain {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(-4%, 3%);
  }
  50% {
    transform: translate(3%, -4%);
  }
  75% {
    transform: translate(-2%, -2%);
  }
  100% {
    transform: translate(0, 0);
  }
}

/* 区块级材质：浅色 = 丝网网点（multiply）；深色区块与全局不再叠加划痕 */
.t-dark,
.t-light {
  position: relative;
  isolation: isolate;
}
.t-light::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 20;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 720px auto repeat;
  mix-blend-mode: multiply;
  opacity: 0.32;
}

.progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 790;
  pointer-events: none;
}
.progress i {
  display: block;
  height: 100%;
  background: var(--red);
  transform-origin: 0 50%;
  transform: scaleX(0);
}

/* ---------- 光标 ---------- */
.cursor {
  position: fixed;
  left: 0;
  top: 0;
  /* shared 弹窗遮罩为 9999；光标位于其上，但不拦截任何点击。 */
  z-index: 10000;
  pointer-events: none;
  display: none;
}
html.has-cursor .cursor {
  display: block;
}
.cursor__dot,
.cursor__ring {
  position: absolute;
  left: 0;
  top: 0;
}
/* 小圆点标记实际位置，外圈保持透明圆形，不再显示方块或文字标签。 */
.cursor__dot {
  width: 4px;
  height: 4px;
  margin: -2px 0 0 -2px;
  border-radius: 50%;
  background: var(--red);
}
.cursor__ring {
  width: 38px;
  height: 38px;
  margin: -19px 0 0 -19px;
  border-radius: 50%;
  border: 1.5px solid var(--red);
  transition: width 0.18s var(--ease-out), height 0.18s var(--ease-out),
    margin 0.18s var(--ease-out);
}
/* 可交互元素统一稍微放大；禁用元素保持默认尺寸。 */
.cursor.is-hover .cursor__ring {
  width: 48px;
  height: 48px;
  margin: -24px 0 0 -24px;
}
/* 按下时收缩，松开后由悬停状态恢复，避免弹性回弹。 */
.cursor.is-pressed .cursor__ring {
  width: 30px;
  height: 30px;
  margin: -15px 0 0 -15px;
}

/* ---------- 通用 ---------- */
.kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.22em;
  color: #8d8d8d;
}
.kicker b {
  font-weight: 400;
  background: var(--red);
  color: var(--black);
  padding: 1px 7px;
  letter-spacing: 0.06em;
}

.pulse {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--red);
  position: relative;
  flex-shrink: 0;
}
.pulse::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--red);
  animation: pulse 1.6s ease-out infinite;
}
@keyframes pulse {
  to {
    transform: scale(3);
    opacity: 0;
  }
}

.h-stack {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: calc(118 * var(--u));
  line-height: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}
.h-stack .solid {
  color: var(--black);
}
.h-stack .outline {
  color: transparent;
  -webkit-text-stroke: 1.5px var(--black);
}

/* 主按钮：黑底红字 + 红色角标（Figma） */
.btn-kv {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: calc(190 * var(--u));
  height: calc(48 * var(--u));
  min-width: 150px;
  min-height: 40px;
  background: var(--black);
  color: var(--red);
  font-weight: 900;
  font-size: max(15px, calc(19 * var(--u)));
  letter-spacing: 0.14em;
  transition: background-color 0.3s, color 0.3s;
}
.btn-kv::before,
.btn-kv::after {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  border: 1.5px solid var(--red);
  transition: transform 0.4s var(--ease-out);
}
.btn-kv::before {
  left: -5px;
  top: -5px;
  border-right: 0;
  border-bottom: 0;
}
.btn-kv::after {
  right: -5px;
  bottom: -5px;
  border-left: 0;
  border-top: 0;
}
.btn-kv:hover {
  background: var(--red);
  color: var(--black);
}
.btn-kv.is-done {
  background: var(--light);
  color: var(--black);
}

.btn-red,
.btn-line,
.btn-grey {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 22px;
  font-weight: 900;
  font-size: 15px;
  letter-spacing: 0.06em;
  transition: background-color 0.25s, color 0.25s, transform 0.25s;
}
.btn-red {
  background: var(--red);
  color: var(--black);
  clip-path: polygon(0 0, 100% 0, 100% 70%, calc(100% - 10px) 100%, 0 100%);
}
.btn-red:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--light);
}
.btn-line {
  border: 1.5px solid currentColor;
}
.btn-line:hover {
  background: var(--black);
  color: var(--light);
}
.btn-grey {
  position: relative;
  height: calc(50 * var(--u));
  min-height: 42px;
  padding: 0 calc(40 * var(--u));
  background: var(--grey-2);
  color: var(--black);
  font-size: max(15px, calc(20 * var(--u)));
  letter-spacing: 0.2em;
  clip-path: polygon(0 0, 100% 0, 100% 68%, calc(100% - 14px) 100%, 0 100%);
}
.btn-grey:hover {
  background: var(--red);
}

.x-btn {
  position: relative;
  width: 42px;
  height: 42px;
  border: 1.5px solid currentColor;
  display: grid;
  place-items: center;
  transition: background-color 0.25s, rotate 0.4s var(--ease-out);
}
.x-btn i {
  position: absolute;
  width: 60%;
  height: 1.5px;
  background: currentColor;
  rotate: 45deg;
}
.x-btn i + i {
  rotate: -45deg;
}
.x-btn:hover {
  background: var(--red);
  border-color: var(--red);
  rotate: 90deg;
}

/* ---------- 手绘标记 ---------- */
.mk {
  position: absolute;
  pointer-events: none;
  overflow: visible;
  z-index: -1;
  filter: url(#rough);
}
.mk path {
  fill: none;
  stroke: var(--red);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

/* =========================================================
   NAV
   ========================================================= */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 760;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: calc(18 * var(--u)) calc(22 * var(--u));
  min-height: 60px;
  color: var(--light-2);
  pointer-events: none;
  transition: transform 0.6s var(--ease), color 0.4s;
}
.nav > * {
  pointer-events: auto;
}
.nav.is-hidden {
  transform: translateY(-110%);
}
.nav[data-theme='light'] {
  color: var(--black);
}
.nav__logo i {
  display: block;
  width: max(92px, calc(110 * var(--u)));
  aspect-ratio: 110 / 38;
  background: currentColor;
  -webkit-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/logo-nav.svg')
    center / contain no-repeat;
  mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/logo-nav.svg')
    center / contain no-repeat;
}
.nav__right {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: calc(10 * var(--night-ui-unit));
}
.nav__phase {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--night-ui-unit));
  font-weight: 700;
  font-size: calc(12 * var(--night-ui-unit));
  letter-spacing: 0.12em;
  margin-right: calc(10 * var(--night-ui-unit));
  opacity: 0.85;
}
.nav__phase .pulse {
  width: calc(7 * var(--night-ui-unit));
  height: calc(7 * var(--night-ui-unit));
}
/* 2026（预热页） / 关于游戏之夜（主站介绍）—— 分段切换 */
.nav__switch {
  display: flex;
  align-items: center;
  gap: calc(10 * var(--night-ui-unit));
}
.nav__year,
.nav__about {
  position: relative;
  display: flex;
  align-items: center;
  height: calc(32 * var(--night-ui-unit));
  border: calc(1.5 * var(--night-ui-unit)) solid currentColor;
  font-weight: 700;
  overflow: hidden;
  transition: color 0.3s, background-color 0.35s, border-color 0.35s;
}
.nav__year {
  padding: 0 calc(11 * var(--night-ui-unit));
  font-size: calc(12 * var(--night-ui-unit));
  letter-spacing: 0.04em;
}
.nav__about {
  gap: calc(6 * var(--night-ui-unit));
  padding: 0 calc(14 * var(--night-ui-unit)) 0 calc(10 * var(--night-ui-unit));
  font-size: calc(12.5 * var(--night-ui-unit));
  clip-path: polygon(0 0, calc(100% - 9 * var(--night-ui-unit)) 0, 100% calc(9 * var(--night-ui-unit)), 100% 100%, 0 100%);
}
.nav__about::after {
  content: '';
  position: absolute;
  left: calc(100% - 7.5 * var(--night-ui-unit));
  top: calc(-1.5 * var(--night-ui-unit));
  width: calc(14 * var(--night-ui-unit));
  height: calc(1.5 * var(--night-ui-unit));
  background: currentColor;
  rotate: 45deg;
  transform-origin: 0 0;
}
.nav__year.is-active,
.nav__about.is-active {
  background: var(--red);
  border-color: var(--red);
  color: var(--light-2);
}
.nav__year:not(.is-active):hover,
.nav__about:not(.is-active):hover {
  color: var(--red);
  border-color: var(--red);
}
.nav__about.is-active::after {
  background: var(--red);
}
.nav__g {
  width: calc(11 * var(--night-ui-unit));
  height: calc(14 * var(--night-ui-unit));
  background: currentColor;
  -webkit-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/icon-g.svg')
    center / contain no-repeat;
  mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/icon-g.svg')
    center / contain no-repeat;
}
.roll {
  position: relative;
  display: block;
  overflow: hidden;
  height: 1.5em;
  line-height: 1.5em;
}
.roll > span {
  display: block;
  transition: transform 0.5s var(--ease);
  white-space: nowrap;
}
.roll > span + span {
  position: absolute;
  left: 0;
  top: 100%;
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: 0.06em;
}
.nav__about:hover .roll > span {
  transform: translateY(-100%);
}
/* 红色区块上激活项改为黑色 */
.nav[data-theme='red'] .nav__year.is-active,
.nav[data-theme='red'] .nav__about.is-active {
  background: var(--black);
  border-color: var(--black);
}
.nav[data-theme='red'] .nav__about.is-active::after {
  background: var(--black);
}
.nav[data-theme='red'] .nav__year:not(.is-active):hover,
.nav[data-theme='red'] .nav__about:not(.is-active):hover {
  color: var(--black);
  border-color: var(--black);
}
.nav.is-about .nav__phase {
  display: none;
}

/* 左侧区块导航：短横线 + 当前章节名，点击跳转 */
.secidx {
  position: fixed;
  left: 10px;
  bottom: 22px;
  z-index: 740;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: #fff;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.5);
  transition: opacity 0.4s, color 0.4s;
}
.secidx__it {
  display: flex;
  align-items: center;
  gap: 9px;
  height: 26px;
  padding: 0 10px 0 6px;
  cursor: pointer;
  color: inherit;
  font-size: 12px;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.secidx__it i {
  display: block;
  width: 12px;
  height: 2px;
  background: currentColor;
  opacity: 0.5;
  transition: width 0.3s var(--ease-out), opacity 0.3s, background-color 0.3s;
}
.secidx__it span {
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.3s, transform 0.3s var(--ease-out);
  pointer-events: none;
}
.secidx__it b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.04em;
  margin-right: 6px;
  opacity: 0.8;
}
.secidx__it:hover i {
  width: 20px;
  opacity: 1;
}
.secidx__it:hover span {
  opacity: 1;
  transform: none;
}
.secidx__it.is-active i {
  width: 22px;
  opacity: 1;
  background: var(--red);
}
.secidx__it.is-active span {
  opacity: 1;
  transform: none;
}
.secidx__it.is-active b {
  color: var(--red);
  opacity: 1;
}
.secidx[data-theme='light'],
.secidx[data-theme='red'] {
  color: var(--black);
  text-shadow: none;
}
.secidx[data-theme='red'] .secidx__it.is-active i {
  background: var(--black);
}
.secidx[data-theme='red'] .secidx__it.is-active b {
  color: var(--black);
}
html.about-open #secidx {
  opacity: 0;
  pointer-events: none;
}
/* 关于游戏之夜页内的导览：放在 about 容器内，面板展开后再淡入；往届档案层（.record）盖住它 */
.secidx--about {
  position: absolute;
  bottom: 64px;
  z-index: 10;
  opacity: 0;
  pointer-events: none;
}
html.about-open .secidx--about {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.4s 0.9s, color 0.4s;
}

/* 回到顶部 */
.totop {
  position: fixed;
  right: 22px;
  bottom: 24px;
  z-index: 770;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 52px;
  height: 52px;
  background: var(--red);
  color: #fff;
  font-family: var(--f-display);
  font-size: 10px;
  letter-spacing: 0.14em;
  line-height: 1;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.35s var(--ease-out), transform 0.35s var(--ease-out),
    visibility 0s 0.35s, background-color 0.25s, color 0.25s;
}
.totop svg {
  width: 14px;
  height: 14px;
  transition: transform 0.3s var(--ease-out);
}
.totop.is-show {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  visibility: visible;
  transition-delay: 0s;
}
.totop:hover {
  background: #fff;
  color: var(--red);
}
.totop:hover svg {
  transform: translateY(-3px);
}
html.about-open .totop {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

/* =========================================================
   01 KV
   ========================================================= */
.kv {
  position: relative;
  height: 100vh;
  min-height: 620px;
  overflow: hidden;
  background: #d8d8d8;
  color: var(--black);
}
.kv__bg {
  position: absolute;
  inset: -3%;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/kv-bg.jpg')
    center / cover no-repeat;
  will-change: transform;
}
.kv__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.kv__shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
      to bottom,
      rgba(0, 0, 0, 0.62),
      rgba(0, 0, 0, 0.28) 9%,
      transparent 22%
    ),
    radial-gradient(
      ellipse 40% 34% at 50% 46%,
      rgba(240, 240, 240, 0.55),
      transparent 70%
    ),
    linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent 26%);
}

/* 首屏外层始终由 CSS 居中；其余控件在初始化后交由 GSAP 接管。 */
.kv__anchor,
.core,
.btn-agent,
.lot__pool {
  transform: translate(-50%, -50%);
}

.kv__anchor {
  position: absolute;
  left: 50%;
  top: 51.5%;
  z-index: 3;
}

/* 居中由外层独立完成，此层 transform 仅用于滚动动效。 */
.kv__center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(44 * var(--u));
}
.kv__title img {
  width: calc(560 * var(--u));
  min-width: 360px;
  height: auto;
}

/* 主标题效果：缓慢悬浮 + 白色光晕 / 扫光 / 偶发故障色差（均叠在图片外层，不影响入场与视差动画） */
.kv__ti {
  position: relative;
  display: block;
  isolation: isolate;
  animation: kvFloat 6s ease-in-out infinite;
}
.kv__ti img {
  display: block;
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 0 22px rgba(255, 255, 255, 0.6))
    drop-shadow(0 3px 10px rgba(0, 0, 0, 0.18));
}
@keyframes kvFloat {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}
/* 轻微闪动分裂：红 / 青两层错位 1-4px 的细条，间隔约 3.4 秒、每次不到半秒；标题本体同步极轻微闪一下 */
.kv__gl {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  -webkit-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/kv-title-main.png')
    center / 100% 100% no-repeat;
  mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/kv-title-main.png')
    center / 100% 100% no-repeat;
  animation: kvSplitR 3.4s steps(1, end) 3s infinite;
}
.kv__gl--r {
  background: var(--red);
}
.kv__gl--c {
  background: #20e0ff;
  animation-name: kvSplitC;
}
@keyframes kvSplitR {
  0%,
  84%,
  100% {
    opacity: 0;
    transform: none;
    clip-path: inset(0);
  }
  85% {
    opacity: 0.9;
    transform: translate(-3px, 0);
    clip-path: inset(12% 0 70% 0);
  }
  88% {
    opacity: 0.9;
    transform: translate(2px, 0);
    clip-path: inset(58% 0 24% 0);
  }
  91% {
    opacity: 0.8;
    transform: translate(-2px, 0);
    clip-path: inset(34% 0 48% 0);
  }
  94% {
    opacity: 0.9;
    transform: translate(3px, 0);
    clip-path: inset(78% 0 6% 0);
  }
  96% {
    opacity: 0;
  }
}
@keyframes kvSplitC {
  0%,
  84%,
  100% {
    opacity: 0;
    transform: none;
    clip-path: inset(0);
  }
  86% {
    opacity: 0.85;
    transform: translate(3px, 0);
    clip-path: inset(44% 0 40% 0);
  }
  89% {
    opacity: 0.85;
    transform: translate(-2px, 0);
    clip-path: inset(8% 0 78% 0);
  }
  92% {
    opacity: 0.8;
    transform: translate(2px, 0);
    clip-path: inset(66% 0 16% 0);
  }
  95% {
    opacity: 0.85;
    transform: translate(-3px, 0);
    clip-path: inset(24% 0 58% 0);
  }
  96.5% {
    opacity: 0;
  }
}
.kv__ti img {
  animation: kvFlick 3.4s steps(1, end) 3s infinite;
}
@keyframes kvFlick {
  0%,
  84%,
  100% {
    opacity: 1;
    transform: none;
  }
  85% {
    opacity: 0.82;
    transform: translateX(1px);
  }
  87% {
    opacity: 1;
    transform: none;
  }
  90% {
    opacity: 0.86;
    transform: translateX(-1px);
  }
  92% {
    opacity: 1;
    transform: none;
  }
}

/* 标题下方副标：横线 + 文案 + 横线 */
.kv__tag {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(14 * var(--u));
  margin-top: calc(-14 * var(--u));
  font-size: max(13px, calc(15 * var(--u)));
  font-weight: 900;
  letter-spacing: 0.34em;
  padding-left: 0.34em;
  color: var(--black);
  white-space: nowrap;
  text-shadow: 0 0 12px rgba(255, 255, 255, 0.7);
}
.kv__tag i {
  display: block;
  width: max(14px, calc(20 * var(--u)));
  height: 2px;
  background: currentColor;
  flex: none;
}
.kv__tag span {
  display: block;
}

.kv__cd {
  --cdw: max(40px, calc(52 * var(--u)));
  --cds: max(24px, calc(32 * var(--u)));
  --cdg: calc(6 * var(--u));
  position: absolute;
  right: calc(28 * var(--u));
  bottom: max(66px, calc(76 * var(--u)));
  z-index: 3;
  color: var(--light-2);
  text-align: right;
}
.kv__cd-row,
.kv__cd-sub {
  display: grid;
  grid-template-columns: var(--cdw) var(--cdw) var(--cds) var(--cdw) var(--cdw);
  column-gap: var(--cdg);
  justify-content: end;
  align-items: center;
}
.cd-box {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: var(--cdw);
  height: calc(64 * var(--u));
  min-height: 50px;
  background: var(--cd);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  font-family: var(--f-display);
  font-size: max(28px, calc(38 * var(--u)));
  line-height: 1;
}
.cd-box > span {
  display: block;
}
.cd-sep {
  text-align: center;
  font-family: var(--f-display);
  font-size: max(22px, calc(30 * var(--u)));
  animation: blink 1s steps(2) infinite;
}
@keyframes blink {
  50% {
    opacity: 0.2;
  }
}
/* DAYS / HRS 各自居中于上方两位数字的正下方（letter-spacing 末尾空隙用左内边距补偿） */
.kv__cd-sub {
  margin-top: 8px;
  font-family: var(--f-display);
  font-size: 10px;
  letter-spacing: 0.24em;
  opacity: 0.75;
}
.kv__cd-sub span {
  text-align: center;
  padding-left: 0.24em;
}
.kv__cd-sub span:first-child {
  grid-column: 1 / 3;
}
.kv__cd-sub span:last-child {
  grid-column: 4 / 6;
}
.kv__cd-label {
  margin-top: 6px;
  text-align: center;
  padding-left: 0.1em;
  font-size: max(12px, calc(14 * var(--u)));
  letter-spacing: 0.1em;
}

/* 向下提示：SCROLL 文案 + 上下两个向下箭头，依次高亮并轻轻下落，循环提示；白色加暗影，在浅色视频上也清楚 */
.kv__scroll {
  position: absolute;
  left: 50%;
  bottom: max(44px, calc(50 * var(--u)));
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #fff;
  filter: drop-shadow(0 1px 6px rgba(0, 0, 0, 0.55));
}
.kv__scroll-t {
  font-family: var(--f-display);
  font-size: 16px;
  letter-spacing: 0.42em;
  padding-left: 0.42em;
  line-height: 1;
  animation: scrollT 1.6s ease-in-out infinite;
}
.kv__chev {
  position: relative;
  display: block;
  width: 26px;
  height: 40px;
}
.kv__chev b {
  position: absolute;
  left: 6px;
  top: 0;
  width: 14px;
  height: 14px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  rotate: 45deg;
  opacity: 0.25;
  animation: chevFlow 1.6s ease-in-out infinite;
}
.kv__chev b:nth-child(2) {
  top: 14px;
  animation-delay: 0.28s;
}
@keyframes chevFlow {
  0%,
  100% {
    opacity: 0.25;
    transform: translate(0, 0);
  }
  35% {
    opacity: 1;
    transform: translate(3px, 3px);
  }
  70% {
    opacity: 0.25;
    transform: translate(0, 0);
  }
}
@keyframes scrollT {
  0%,
  100% {
    opacity: 0.7;
  }
  50% {
    opacity: 1;
  }
}

/* =========================================================
   跑马带
   ========================================================= */
.bands {
  position: relative;
  z-index: 6;
  height: 0;
}
.band {
  position: absolute;
  left: -5vw;
  width: 110vw;
  overflow: hidden;
  white-space: nowrap;
}
.band--black {
  top: calc(-40 * var(--u));
  height: max(52px, calc(72 * var(--u)));
  background: var(--black-2);
  rotate: -1.6deg;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
}
.band--red {
  top: calc(16 * var(--u));
  height: max(34px, calc(46 * var(--u)));
  background: var(--red);
  color: var(--black);
  rotate: 2.2deg;
}
.marquee__inner {
  display: flex;
  width: max-content;
  height: 100%;
  align-items: center;
  will-change: transform;
}
.marquee__unit {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  height: 100%;
}
.band--black img {
  height: max(24px, calc(34 * var(--u)));
  width: auto;
  margin: 0 calc(44 * var(--u));
}
.band--black .band__wg {
  height: max(16px, calc(22 * var(--u)));
  opacity: 0.9;
}
.band__dot {
  width: 8px;
  height: 8px;
  background: var(--red);
  rotate: 45deg;
  flex-shrink: 0;
}
.band--red span {
  font-family: var(--f-display);
  font-size: max(18px, calc(26 * var(--u)));
  letter-spacing: 0.04em;
  margin: 0 calc(26 * var(--u));
}
.band--red b {
  font-size: max(12px, calc(16 * var(--u)));
}
/* 中文用黑体粗体 + 细描边加粗，视觉粗细对齐 Anton */
.band--red .band__zh {
  font-family: var(--f-body);
  font-weight: 900;
  font-size: max(17px, calc(24 * var(--u)));
  letter-spacing: 0.12em;
  -webkit-text-stroke: 0.6px currentColor;
}

/* =========================================================
   02 燃点线索
   ========================================================= */
.clues {
  height: max(100vh, calc(774 * var(--u)));
  min-height: 700px;
  background: #161616;
  color: var(--light);
  overflow: hidden;
}
.clues__ghost {
  position: absolute;
  left: -1vw;
  bottom: -3vw;
  z-index: 0;
  font-family: var(--f-display);
  font-size: 23vw;
  line-height: 0.8;
  white-space: nowrap;
  color: transparent;
  -webkit-text-stroke: 1px rgba(235, 235, 235, 0.08);
  pointer-events: none;
}
.clues__head {
  position: absolute;
  left: calc(147 * var(--u));
  right: calc(147 * var(--u));
  top: calc(110 * var(--u));
  z-index: 4;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}
.clues__title {
  font-weight: 900;
  font-size: max(40px, calc(62 * var(--u)));
  line-height: 1.12;
  letter-spacing: 0.02em;
  margin-top: calc(12 * var(--u));
}
.clues__desc {
  font-weight: 700;
  font-size: max(13px, calc(14.5 * var(--u)));
  line-height: 1.8;
  color: #cfcfcf;
  margin-top: calc(10 * var(--u));
}

/* 右侧进度：与左侧同底对齐，三行——数字 / 进度条 / 一句提示 */
.clues__stats {
  flex: none;
  width: max(260px, calc(340 * var(--u)));
  padding-bottom: 2px;
}
.cs__nums {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: calc(44 * var(--u));
}
.cs__nums p {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  align-items: baseline;
  justify-items: center;
}
.cs__nums small {
  grid-column: 1 / -1;
  padding-left: 0.12em;
  text-align: center;
}
.cs__nums p:last-child b {
  grid-column: 1 / -1;
}
.clues__stats b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(36px, calc(52 * var(--u)));
  line-height: 1;
}
.clues__stats b.is-red {
  color: var(--red);
}
.clues__stats span {
  font-family: var(--f-display);
  font-size: max(16px, calc(22 * var(--u)));
  opacity: 0.45;
  margin-left: 2px;
}
.clues__stats small {
  display: block;
  font-size: 12px;
  color: #a8a8a8;
  letter-spacing: 0.12em;
  margin-top: 6px;
}
.cs__bar {
  display: flex;
  gap: 3px;
  margin-top: 16px;
}
.cs__bar i {
  flex: 1;
  height: 4px;
  background: rgba(235, 235, 235, 0.16);
  transition: background-color 0.4s;
}
.cs__bar i.is-milestone:not(:last-child) {
  margin-right: 8px;
}
.cs__bar i.is-on {
  background: var(--light);
}
.cs__bar i.is-on.is-milestone {
  background: var(--red);
}
.cs__bar--light i {
  background: rgba(24, 24, 24, 0.14);
}
.cs__bar--light i.is-on {
  background: var(--black);
}
.cs__bar--light i.is-on.is-milestone {
  background: var(--red);
}
.cs__next {
  margin-top: 12px;
  font-size: 13px;
  color: #cfcfcf;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-align: right;
}
.cs__next em {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 18px;
  color: var(--red);
  padding: 0 3px;
}
.cs__next.is-done {
  color: var(--red);
  font-weight: 700;
}

.clues__field {
  position: absolute;
  left: 6%;
  right: 6%;
  top: calc(250 * var(--u));
  bottom: calc(34 * var(--u));
  z-index: 3;
}

.core {
  position: absolute;
  left: 50%;
  top: 44%;
  width: max(140px, calc(184 * var(--u)));
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  text-align: center;
}
.core__oct {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.core__oct--b {
  opacity: 0.22;
  scale: 1.22;
}
.core__num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  font-family: var(--f-display);
  font-size: max(40px, calc(56 * var(--u)));
  line-height: 1;
}
.core__num b {
  font-weight: 400;
  color: var(--light);
}
.core__num i {
  font-style: normal;
  color: var(--red);
}
.core__num span {
  color: #9a9a9a;
}
.core__label {
  font-size: max(12px, calc(13.5 * var(--u)));
  color: #cfcfcf;
  margin-top: 6px;
  letter-spacing: 0.08em;
}
.core.is-bump .core__num b {
  animation: bump 0.6s var(--ease-out);
}
@keyframes bump {
  30% {
    transform: scale(1.5);
    color: var(--red);
  }
}

.btn-agent {
  position: absolute;
  left: 50%;
  top: 71%;
  display: flex;
  gap: 10px;
  align-items: center;
  height: max(40px, calc(46 * var(--u)));
  padding: 0 calc(22 * var(--u));
  background: var(--red);
  color: var(--black);
  font-weight: 900;
  font-size: max(15px, calc(18 * var(--u)));
  letter-spacing: 0.04em;
  white-space: nowrap;
  clip-path: polygon(0 0, 100% 0, 100% 66%, calc(100% - 12px) 100%, 0 100%);
  transition: background-color 0.25s;
}
.btn-agent:hover {
  background: var(--light);
}
.btn-agent small {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.2em;
  opacity: 0.7;
}
.btn-agent::before,
.btn-agent::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  border: 1.5px solid var(--black);
}
.btn-agent::before {
  left: 4px;
  top: 4px;
  border-right: 0;
  border-bottom: 0;
}
.btn-agent::after {
  right: 4px;
  top: 4px;
  border-left: 0;
  border-bottom: 0;
}
.core {
  cursor: pointer;
}
.core::after {
  content: '';
  position: absolute;
  inset: -14%;
  border-radius: 50%;
  border: 1px dashed rgba(250, 55, 61, 0);
  transition: border-color 0.3s, transform 0.6s var(--ease-out);
}
.core:hover::after,
.core:focus-visible::after {
  border-color: rgba(250, 55, 61, 0.7);
  transform: rotate(45deg);
}

/* 线索物件：光晕贴近轮廓，限制外层扩散；悬停仅适度增强。 */
.clue {
  position: absolute;
  width: calc(var(--w) * 1.12 * var(--u));
  rotate: var(--r);
  z-index: 2;
  transition: filter 0.35s;
  filter: drop-shadow(0 0 8px rgba(255, 32, 38, 0.75))
    drop-shadow(0 0 18px rgba(250, 55, 61, 0.3));
}
.clue__p,
.clue__in,
.clue__body {
  position: relative;
  display: block;
}
.clue__body {
  transition: transform 0.45s var(--ease-out);
}
.clue__body > img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.55));
}
.clue:hover,
.clue:focus-visible {
  z-index: 5;
  filter: drop-shadow(0 0 12px rgba(255, 32, 38, 0.85))
    drop-shadow(0 0 26px rgba(250, 55, 61, 0.4));
}
.clue:hover .clue__body,
.clue:focus-visible .clue__body {
  transform: scale(1.12);
}
.clue.is-revealed {
  filter: drop-shadow(0 0 6px rgba(250, 55, 61, 0.22));
}
.clue__no {
  position: absolute;
  left: calc(var(--tx, 0%) - 8px);
  top: calc(var(--ty, 0%) - 10px);
  z-index: 2;
  rotate: -8deg;
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.06em;
  line-height: 1;
  padding: 3px 6px;
  background: var(--light);
  color: var(--black);
  transition: background-color 0.3s, color 0.3s;
}
.clue.is-collected .clue__no {
  background: var(--red);
  color: var(--black);
}
.clue.is-collected .clue__no::after {
  content: ' \2713 ';
}
.clue__stamp {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  translate: -50% -50%;
  rotate: -14deg;
  border: 3px solid var(--red);
  color: var(--red);
  background: rgba(10, 10, 10, 0.72);
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0.12em;
  padding: 3px 9px;
  white-space: nowrap;
  opacity: 0;
  scale: 1.8;
  transition: opacity 0.3s, scale 0.45s cubic-bezier(0.3, 1.6, 0.5, 1);
}
.clue.is-revealed .clue__stamp {
  opacity: 1;
  scale: 1;
}
.clue.is-revealed .clue__body {
  filter: grayscale(0.8) brightness(0.7);
}

/* 手写纸条（无图线索） */
.slip {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1.12;
  background: #e4dfd3
    url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 260px auto;
  background-blend-mode: multiply;
  color: var(--black);
  clip-path: polygon(
    0 4%,
    12% 0,
    30% 3%,
    52% 0,
    70% 4%,
    88% 1%,
    100% 5%,
    98% 30%,
    100% 56%,
    97% 80%,
    100% 97%,
    80% 100%,
    58% 96%,
    36% 100%,
    16% 97%,
    0 100%,
    3% 74%,
    0 50%,
    2% 26%
  );
}
.slip b {
  font-family: var(--f-hand);
  font-weight: 400;
  font-size: calc(var(--w) * 0.9 * var(--u));
  line-height: 0.8;
  color: var(--red);
  transform: rotate(-8deg);
}
.slip small {
  position: absolute;
  right: 8%;
  bottom: 7%;
  font-family: var(--f-display);
  font-size: 10px;
  letter-spacing: 0.14em;
  opacity: 0.6;
}
.slip i {
  position: absolute;
  left: 8%;
  top: 12%;
  width: 46%;
  height: 2px;
  background: var(--black);
  opacity: 0.55;
  box-shadow: 0 7px 0 rgba(24, 24, 24, 0.4), 0 14px 0 rgba(24, 24, 24, 0.25);
}
.clue--slip .clue__body::before {
  content: '';
  position: absolute;
  left: 50%;
  top: -7px;
  z-index: 2;
  width: 46%;
  height: 16px;
  translate: -50% 0;
  rotate: 4deg;
  background: rgba(203, 203, 203, 0.75);
}
.clue--slip .clue__body {
  filter: drop-shadow(0 12px 16px rgba(0, 0, 0, 0.55));
}
.clue--slip.is-revealed .clue__body {
  filter: grayscale(0.8) brightness(0.7);
}

/* =========================================================
   03 抽奖
   ========================================================= */
.lot {
  min-height: max(100vh, calc(820 * var(--u)));
  padding: calc(110 * var(--u)) 6% calc(50 * var(--u));
  background: #0c0c0c;
  color: var(--light);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.lot__glow {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 80%;
  z-index: 0;
  pointer-events: none;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/vibe-bg.jpg')
    center top / 100% 100% no-repeat;
  transform: scaleY(-1);
  -webkit-mask-image: linear-gradient(to bottom, #000 25%, transparent 92%);
  mask-image: linear-gradient(to bottom, #000 25%, transparent 92%);
  opacity: 0.85;
}
.lot__pool {
  position: absolute;
  left: 50%;
  top: 46%;
  z-index: 0;
  font-family: var(--f-display);
  font-size: 36vw;
  line-height: 0.8;
  white-space: nowrap;
  pointer-events: none;
  letter-spacing: -0.01em;
}
.lot__pool-o {
  color: transparent;
  -webkit-text-stroke: 1px rgba(235, 235, 235, 0.035);
}
.lot__pool-f {
  position: absolute;
  inset: 0;
  color: var(--red);
  opacity: 0.035;
  clip-path: inset(0 100% 0 0);
}

.lot__grid {
  position: relative;
  z-index: 2;
  flex: 1;
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 4vw;
  align-items: center;
}
.lot__title {
  position: relative;
  margin: calc(18 * var(--u)) 0 calc(36 * var(--u));
}
.lot__zh {
  display: block;
  font-weight: 900;
  font-size: max(80px, calc(150 * var(--u)));
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.lot__en {
  position: absolute;
  left: calc(270 * var(--u));
  top: calc(34 * var(--u));
  z-index: 2;
  width: max(240px, calc(400 * var(--u)));
  height: auto;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35));
}

.rules {
  max-width: calc(560 * var(--u));
  min-width: 380px;
}
.rules li {
  display: grid;
  grid-template-columns: calc(124 * var(--u)) 1fr;
  align-items: center;
  gap: 12px;
  border-top: 2px solid rgba(235, 235, 235, 0.5);
  padding: calc(12 * var(--u)) 0;
}
.rules li:last-child {
  border-bottom: 2px solid rgba(235, 235, 235, 0.5);
}
.rules b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(40px, calc(62 * var(--u)));
  line-height: 1;
}
.rules b.is-red {
  color: var(--red);
}
.rules strong {
  display: block;
  font-size: max(15px, calc(18 * var(--u)));
}
.rules span {
  font-size: max(13px, calc(14 * var(--u)));
  color: #cfcfcf;
}
.rules em {
  color: var(--red);
  font-weight: 700;
}

.lot__right {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(26 * var(--u));
}
.flap {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 14px;
}
.flap__cells {
  display: flex;
  gap: 8px;
  perspective: 400px;
}
.flap__d {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  width: max(56px, calc(88 * var(--u)));
  height: max(76px, calc(118 * var(--u)));
  background: linear-gradient(#232323 50%, #1b1b1b 50%);
  border: 1px solid #333;
  font-family: var(--f-display);
  font-size: max(56px, calc(90 * var(--u)));
  line-height: 1;
  color: var(--light);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.5);
}
.flap__d::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: #0a0a0a;
}
.flap__unit {
  font-weight: 900;
  font-size: max(20px, calc(28 * var(--u)));
  color: var(--red);
  padding-bottom: 6px;
}
.flap__tag {
  position: absolute;
  left: -14px;
  top: -14px;
  rotate: -8deg;
  background: var(--light);
  color: var(--black);
  font-family: var(--f-display);
  font-size: 11px;
  letter-spacing: 0.2em;
  padding: 2px 8px;
}
.flap.is-win .flap__d {
  color: var(--red);
}

.igniter {
  position: relative;
  width: max(240px, calc(300 * var(--u)));
  aspect-ratio: 1;
  display: grid;
  place-items: center;
}
.igniter__ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: spin 24s linear infinite;
}
.igniter__ring text {
  font-family: var(--f-display);
  font-size: 15.5px;
  letter-spacing: 0.2em;
  fill: var(--light);
  opacity: 0.75;
}
@keyframes spin {
  to {
    rotate: 360deg;
  }
}
.igniter__fuse {
  position: absolute;
  width: 74%;
  height: 74%;
  rotate: -90deg;
}
.igniter__track {
  fill: none;
  stroke: rgba(235, 235, 235, 0.16);
  stroke-width: 3;
  stroke-dasharray: 0.012 0.008;
}
.igniter__burn {
  fill: none;
  stroke: var(--red);
  stroke-width: 7;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  filter: drop-shadow(0 0 6px rgba(250, 55, 61, 0.9));
}
.igniter__shake {
  position: relative;
  width: 58%;
  aspect-ratio: 1;
}
.igniter__btn {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--red);
  color: var(--black);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 0 rgba(250, 55, 61, 0.6), inset 0 -8px 0 rgba(0, 0, 0, 0.18);
  transition: transform 0.3s var(--ease-out), background-color 0.3s;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  animation: ping 2.2s ease-out infinite;
}
@keyframes ping {
  0% {
    box-shadow: 0 0 0 0 rgba(250, 55, 61, 0.55),
      inset 0 -8px 0 rgba(0, 0, 0, 0.18);
  }
  70%,
  100% {
    box-shadow: 0 0 0 30px rgba(250, 55, 61, 0),
      inset 0 -8px 0 rgba(0, 0, 0, 0.18);
  }
}
.igniter__btn:hover {
  transform: scale(1.05);
}
.igniter__btn.is-holding {
  transform: scale(0.93);
  background: #ff5a5f;
  animation: none;
}
.igniter__btn.is-empty {
  background: #2a2a2a;
  color: #8a8a8a;
  animation: none;
  box-shadow: inset 0 -8px 0 rgba(0, 0, 0, 0.3);
}
.igniter__zh {
  font-weight: 900;
  font-size: max(20px, calc(28 * var(--u)));
  letter-spacing: 0.06em;
}
.igniter__en {
  font-family: var(--f-display);
  font-size: 11px;
  letter-spacing: 0.2em;
  margin-top: 2px;
}

.chance {
  position: absolute;
  right: -1vw;
  bottom: calc(40 * var(--u));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.chance__label {
  font-size: 13px;
  letter-spacing: 0.1em;
  color: #e2e2e2;
}
.chance__num {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(56px, calc(88 * var(--u)));
  line-height: 1;
  padding: 0 0.16em;
  background: var(--light);
  color: var(--black);
  rotate: -5deg;
  margin-top: 6px;
}
.chance__x {
  font-weight: 700;
  font-size: 14px;
  margin-top: 4px;
}
.chance.is-zero .chance__num {
  background: transparent;
  color: #fff;
}
.chance.is-bump .chance__num {
  animation: bump2 0.6s var(--ease-out);
}
@keyframes bump2 {
  30% {
    transform: scale(1.35);
    background: var(--red);
  }
}

.fuse {
  position: relative;
  z-index: 2;
  min-width: 0;
}
/* 抽奖区底部文字：统一为 标签 14px / 数字 display 字体，颜色一律用亮色（底部为红色渐变，避免灰字） */
.fuse__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #fff;
  margin-bottom: 12px;
}
.fuse__head b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: #fff;
  padding: 0 3px;
}
.fuse__head span + span {
  font-weight: 400;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
}
/* 引信进度：未点燃 = 透明底 + 白色描边；已点燃 = 实心白块 + 黑字（无黑色填充 / 黑边） */
.fuse__track {
  display: flex;
  gap: 6px;
}
.fuse__cell {
  position: relative;
  flex: 1;
  height: max(38px, calc(48 * var(--u)));
  border: 2px solid rgba(255, 255, 255, 0.95);
  background: transparent;
  transform: skewX(-16deg);
  display: grid;
  place-items: center;
  font-family: var(--f-display);
  font-size: 15px;
  letter-spacing: 0.08em;
  color: #fff;
  transition: background-color 0.4s, color 0.4s, border-color 0.4s;
}
.fuse__cell > span {
  transform: skewX(16deg);
}
.fuse__cell.is-on {
  background: #fff;
  border-color: #fff;
  color: var(--black);
}
.fuse__cell.is-on > span {
  font-weight: 700;
}
/* 已达成的奖励节点使用深底红字，在红色背景上仍能与普通进度区分。 */
.fuse__cell.is-on.is-milestone {
  background: var(--black);
  border-color: #fff;
  color: var(--red);
}
.fuse__cell.is-head::after {
  content: '';
  position: absolute;
  right: -6px;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-radius: 50%;
  background: #ffd2d3;
  box-shadow: 0 0 12px 4px var(--red), 0 0 30px 8px rgba(250, 55, 61, 0.6);
  animation: spark 0.5s steps(2) infinite;
}
@keyframes spark {
  50% {
    transform: scale(0.6);
    opacity: 0.7;
  }
}
.fuse__prizes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  min-height: 28px;
}
.fuse__empty {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: 0.06em;
}
.prize {
  font-family: var(--f-display);
  font-size: 13px;
  letter-spacing: 0.06em;
  background: var(--light);
  color: var(--black);
  padding: 3px 9px;
  rotate: var(--r, -2deg);
}
.prize b {
  font-weight: 400;
  color: var(--red);
}
.prize.is-new {
  animation: prizeIn 0.9s var(--ease-out) both;
}
@keyframes prizeIn {
  0% {
    transform: translateY(-40px) scale(1.8);
    background: var(--red);
    opacity: 0;
  }
  60% {
    transform: none;
    background: var(--red);
    opacity: 1;
  }
}
.fuse__mine {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-top: 30px;
  font-size: 14px;
  letter-spacing: 0.06em;
  color: #fff;
}
.fuse__mine-k {
  font-weight: 900;
}
.fuse__mine-sum {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.92);
}
.fuse__mine-sum b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: #fff;
  padding: 0 3px;
}

/* 底部：引信 + 奖池 */
.lot__bottom {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(340px, 1fr);
  gap: 3.4vw;
  align-items: end;
  margin-top: calc(34 * var(--u));
}
.pool {
  position: relative;
  background: var(--light);
  color: var(--black);
  padding: calc(22 * var(--u)) calc(28 * var(--u)) calc(20 * var(--u));
  min-width: 340px;
  box-shadow: 12px 12px 0 var(--black-2);
  rotate: -1deg;
}
.pool::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 460px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.pool__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pool__k {
  font-family: var(--f-display);
  font-size: 13px;
  letter-spacing: 0.26em;
}
.pool__live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.pool__live i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  animation: live 1.2s ease-in-out infinite;
}
@keyframes live {
  50% {
    opacity: 0.25;
    transform: scale(0.7);
  }
}
.pool__total {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-top: 4px;
  line-height: 0.9;
}
.pool__total small {
  writing-mode: vertical-rl;
  font-weight: 900;
  font-size: 15px;
  letter-spacing: 0.18em;
  padding-bottom: 6px;
}
.pool__total b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(72px, calc(118 * var(--u)));
  color: var(--red);
  letter-spacing: -0.01em;
}
.pool__total span {
  font-weight: 900;
  font-size: max(18px, calc(24 * var(--u)));
  padding-bottom: 8px;
}
.pool__left {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: calc(14 * var(--u));
  padding-top: calc(12 * var(--u));
}
.pool__left-k {
  font-weight: 900;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.pool__left-v {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(40px, calc(58 * var(--u)));
  line-height: 1;
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}
.pool__left-u {
  font-weight: 900;
  font-size: 14px;
}
.pool.is-tick .pool__left-v {
  animation: poolTick 0.7s var(--ease-out);
}
@keyframes poolTick {
  30% {
    color: var(--red);
    transform: translateY(-4px);
  }
}
.pool__bar {
  position: relative;
  height: 12px;
  margin-top: 10px;
  background: rgba(24, 24, 24, 0.14);
  overflow: hidden;
}
.pool__bar::after {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    90deg,
    transparent 0 calc(10% - 2px),
    var(--light) calc(10% - 2px) 10%
  );
}
.pool__bar i {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  background: var(--red);
  transform-origin: left;
  transition: width 0.9s var(--ease-out);
}
.pool__row {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #333;
}
.pool__row b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 15px;
  color: var(--black);
  padding: 0 2px;
}
.pool__stamp {
  position: absolute;
  right: calc(-18 * var(--u));
  top: calc(-30 * var(--u));
  z-index: 2;
  rotate: 9deg;
  border: 3px solid var(--red);
  color: var(--red);
  background: rgba(12, 12, 12, 0.92);
  padding: 6px 14px 4px;
  text-align: center;
  font-weight: 900;
  font-size: max(18px, calc(22 * var(--u)));
  letter-spacing: 0.14em;
  line-height: 1.1;
  box-shadow: 0 0 0 3px rgba(12, 12, 12, 0.92);
}
.pool__stamp small {
  display: block;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 9px;
  letter-spacing: 0.2em;
}
.pool.is-low .pool__left-v,
.pool.is-low .pool__left-k {
  color: var(--red);
}

.lot__foot {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-top: calc(36 * var(--u));
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.6);
}
.lot__fcfs {
  font-size: 14px;
  line-height: 1.7;
  color: #fff;
  letter-spacing: 0.04em;
}
.lot__fcfs b {
  display: inline-block;
  margin-right: 12px;
  background: var(--black-2);
  color: var(--light);
  font-weight: 900;
  font-size: 14px;
  padding: 2px 12px;
  letter-spacing: 0.1em;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.35);
}
.lot__links {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.lot__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  padding: 0 12px 0 18px;
  background: var(--black-2);
  border: 1.5px solid var(--black-2);
  color: var(--light);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.08em;
  transition: background-color 0.25s, color 0.25s, border-color 0.25s;
}
.lot__link i {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.12em;
  background: var(--red);
  color: var(--black);
  padding: 1px 6px;
  min-width: 1.8em;
  text-align: center;
  transition: background-color 0.25s, color 0.25s;
}
.lot__link:hover {
  background: var(--light);
  border-color: var(--light);
  color: var(--black);
}
.lot__link:hover i {
  background: var(--black);
  color: var(--light);
}

/* 长按蓄能 */
.igniter {
  --p: 0;
}
.igniter__orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 67.3%;
  height: 67.3%;
  translate: -50% -50%;
  rotate: calc(var(--p) * 360deg);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  z-index: 3;
}
.igniter__spark {
  position: absolute;
  left: 50%;
  top: 0;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  border-radius: 50%;
  background: #fff4dc;
  box-shadow: 0 0 8px 3px #ffb36b, 0 0 22px 8px rgba(250, 55, 61, 0.85),
    0 0 46px 16px rgba(250, 55, 61, 0.35);
  animation: spark 0.12s steps(2) infinite;
}
.igniter.is-charging .igniter__orbit {
  opacity: 1;
}
.igniter.is-charging .igniter__ring text {
  fill: var(--red);
  opacity: calc(0.5 + var(--p) * 0.5);
}
.igniter.is-charging .igniter__btn {
  box-shadow: 0 0 calc(var(--p) * 70px) calc(var(--p) * 18px)
      rgba(250, 55, 61, 0.75),
    inset 0 -8px 0 rgba(0, 0, 0, 0.18);
}
.igniter__pct {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  opacity: 0;
  transition: opacity 0.15s;
  pointer-events: none;
}
.igniter__pct small {
  position: absolute;
  top: 24%;
  font-family: var(--f-display);
  font-size: 11px;
  letter-spacing: 0.24em;
}
.igniter__pct b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(52px, calc(70 * var(--u)));
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.igniter__pct i {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 22px;
  align-self: center;
  margin-top: 18px;
}
.igniter__zh,
.igniter__en {
  transition: opacity 0.15s;
}
.igniter.is-charging .igniter__pct {
  opacity: 1;
}
.igniter.is-charging .igniter__zh,
.igniter.is-charging .igniter__en {
  opacity: 0;
}
.igniter__hint {
  margin-top: calc(-14 * var(--u));
  font-size: 13px;
  letter-spacing: 0.1em;
  color: #c8c8c8;
  min-height: 1.5em;
  transition: color 0.25s;
}
.igniter__hint.is-hot {
  color: var(--light);
}
.igniter__hint.is-warn {
  color: var(--red);
  font-weight: 700;
}
html.is-charging .cursor__ring,
html.is-charging .cursor__dot {
  visibility: hidden;
}
.lot.is-charging .lot__glow {
  opacity: calc(0.85 + var(--lp, 0) * 0.15);
  filter: saturate(calc(1 + var(--lp, 0) * 1.2))
    brightness(calc(1 + var(--lp, 0) * 0.5));
}

/* =========================================================
   04 主题 · 燃点之夜
   ========================================================= */
.theme {
  min-height: 112vh;
  background: var(--wine);
  color: var(--light);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: calc(140 * var(--u)) 6%;
  overflow: hidden;
}
.theme__dots {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.55;
  pointer-events: none;
}
.theme__new {
  position: absolute;
  right: -3vw;
  bottom: -8vw;
  z-index: 0;
  font-family: var(--f-display);
  /* NEW 比原数字更宽，控制字号以保持背景装饰的覆盖范围。 */
  font-size: 42vw;
  line-height: 0.8;
  color: var(--red);
  opacity: 0.15;
  pointer-events: none;
}
.theme__ghost {
  position: absolute;
  left: 0;
  top: 7%;
  z-index: 0;
  font-family: var(--f-display);
  font-size: 17vw;
  line-height: 0.85;
  white-space: nowrap;
  color: transparent;
  -webkit-text-stroke: 1px rgba(250, 55, 61, 0.22);
  pointer-events: none;
}
.theme__badge {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-bottom: calc(56 * var(--u));
}
.theme__badge img {
  width: max(90px, calc(112 * var(--u)));
  height: auto;
}
.theme__badge span {
  font-size: 11px;
  letter-spacing: 0.6em;
  color: var(--red);
  padding-left: 0.6em;
}
.theme__text {
  position: relative;
  z-index: 2;
  text-align: center;
}
.theme__text p {
  font-weight: 900;
  font-size: max(26px, calc(46 * var(--u)));
  line-height: 1.58;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.theme__text em {
  position: relative;
  color: var(--red);
}
.theme__text .ico {
  /* shared reset 的 img font-size:0 会让 em 高度归零。 */
  font-size: inherit;
  display: inline-block;
  height: 0.62em;
  width: auto;
  vertical-align: 0.02em;
  margin: 0 0.28em;
}
/* 燃点图标接近方形（54×50），同高时显小；按视觉面积放大，与横向的交锋 / 开始图标一致 */
.theme__text .ico--tall {
  height: 0.86em;
  vertical-align: -0.1em;
  margin: 0 0.22em;
}
.theme__text .c {
  opacity: 0.12;
}

/* =========================================================
   05 主播
   ========================================================= */
.creators {
  min-height: max(100vh, calc(774 * var(--u)));
  background: #d4d4d4;
  color: var(--black);
  padding: calc(96 * var(--u)) 0 calc(60 * var(--u));
  overflow: hidden;
}
.creators__head {
  position: relative;
  z-index: 2;
  padding-left: calc(54 * var(--u));
}
.creators .h-stack {
  font-size: calc(100 * var(--u));
}
.creators__sub {
  font-size: max(15px, calc(19 * var(--u)));
  margin-top: calc(16 * var(--u));
  letter-spacing: 0.04em;
}
.creators__sub b {
  font-family: var(--f-display);
  font-weight: 400;
  color: var(--red);
  font-size: 1.3em;
}
.creators__arrow {
  position: absolute;
  right: 9%;
  top: calc(150 * var(--u));
  width: max(80px, calc(108 * var(--u)));
  z-index: 2;
}
.creators__count {
  position: absolute;
  right: 16%;
  top: -2vw;
  z-index: 0;
  font-family: var(--f-display);
  font-size: 26vw;
  line-height: 0.85;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(24, 24, 24, 0.12);
  pointer-events: none;
}
/* 滚动区域限宽居中（1440 宽约 1300px，最宽 1400px），两侧渐隐 */
.creators__rows {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--u));
  width: 100%;
  margin: calc(20 * var(--u)) auto 0;
}
.creators__row {
  overflow: hidden;
  padding: 12px 0;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 6%,
    #000 22%,
    #000 78%,
    transparent 94%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 6%,
    #000 22%,
    #000 78%,
    transparent 94%
  );
}
.creators__inner {
  display: flex;
  width: max-content;
  will-change: transform;
}
.creators__unit {
  display: flex;
  flex-shrink: 0;
  gap: calc(48 * var(--u));
  padding-right: calc(48 * var(--u));
}
.ccw {
  flex-shrink: 0;
}
.cc {
  position: relative;
  display: block;
  width: max(96px, calc(124 * var(--u)));
  aspect-ratio: 3 / 4;
  height: max(128px, calc(165.333333 * var(--u)));
  overflow: hidden;
  background: #111;
  rotate: 0deg;
  transition: transform 0.5s var(--ease-out);
}
.cc img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.12);
  transition: transform 0.7s var(--ease-out);
}
.cc::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red);
  mix-blend-mode: multiply;
  opacity: 0;
  transition: opacity 0.35s;
}
.cc__no {
  position: absolute;
  right: 6px;
  top: 4px;
  z-index: 2;
  font-family: var(--f-display);
  font-size: 14px;
  color: var(--light);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
.cc__name {
  max-width: calc(100% - 12px);
  overflow-wrap: anywhere;
  position: absolute;
  left: 6px;
  bottom: 6px;
  z-index: 2;
  background: var(--light);
  color: var(--black);
  font-weight: 700;
  font-size: 11px;
  padding: 2px 7px;
  transform: translateY(160%);
  transition: transform 0.4s var(--ease-out);
}
.cc:hover {
  rotate: 0deg;
  transform: translateY(-10px);
  z-index: 3;
}
.cc:hover img {
  transform: scale(1.08);
}
.cc:hover::after {
  opacity: 0.9;
}
.cc:hover .cc__name {
  transform: none;
}

/* =========================================================
   06 合作伙伴
   ========================================================= */
.partners {
  min-height: max(100vh, calc(774 * var(--u)));
  background: var(--light);
  color: var(--black);
  padding: calc(118 * var(--u)) 0 calc(70 * var(--u));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.partners__head {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0 calc(130 * var(--u));
}
.partners__head .h-stack {
  position: relative;
  z-index: 2;
}
.partners__ignite {
  position: absolute;
  left: calc(118 * var(--u));
  top: calc(96 * var(--u));
  width: max(260px, calc(380 * var(--u)));
  height: auto;
  z-index: 1;
  pointer-events: none;
}
.partners__text {
  margin-top: calc(80 * var(--u));
  font-size: max(13px, calc(15 * var(--u)));
  line-height: 1.75;
  text-align: left;
  margin-right: calc(160 * var(--u));
}
.logos {
  /* 保持原始组合标识比例，宽屏放大并同步拉开两行及项间距离。 */
  --partner-unit: clamp(1px, calc(100vw / 1600), 2.4px);
  position: relative;
  z-index: 2;
  display: grid;
  gap: calc(22 * var(--partner-unit));
  margin-top: calc(84 * var(--u));
}
.logos__row {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 6%,
    #000 22%,
    #000 78%,
    transparent 94%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 6%,
    #000 22%,
    #000 78%,
    transparent 94%
  );
}
.logos__inner {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
}
.logos__unit {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: calc(74 * var(--partner-unit));
  padding-right: calc(74 * var(--partner-unit));
}
.logos__row:first-child .logos__inner { position: relative; left: calc(169 * var(--partner-unit)); }
.logos__row:last-child .logos__inner { position: relative; left: calc(158 * var(--partner-unit)); }
.partner-logo {
  position: relative;
  display: block;
  flex-shrink: 0;
  transition: transform 0.35s var(--ease-out);
}
.partner-logo:hover {
  transform: scale(1.12) rotate(-3deg);
}
.partner-logo img { display: block; max-width: none; margin: 0; width: 100%; height: 100%; }
.partner-logo--bilibili { width: calc(87 * var(--partner-unit)); height: calc(39 * var(--partner-unit)); }
.partner-logo--symbol { width: calc(46.0216 * var(--partner-unit)); height: calc(39.286 * var(--partner-unit)); }
.partner-logo--huya { width: calc(126.553 * var(--partner-unit)); height: calc(38 * var(--partner-unit)); }
.partner-logo--wegame { width: calc(158.835 * var(--partner-unit)); height: calc(36.419 * var(--partner-unit)); }
.partner-logo--douyu { width: calc(110 * var(--partner-unit)); height: calc(42 * var(--partner-unit)); }
.partner-logo--douyin { width: calc(33 * var(--partner-unit)); height: calc(38 * var(--partner-unit)); }
.partner-logo--channels-a { width: calc(34 * var(--partner-unit)); height: calc(38.6718 * var(--partner-unit)); }
.partner-logo--channels-b { width: calc(34 * var(--partner-unit)); height: calc(38.6712 * var(--partner-unit)); }
.partner-logo--video { width: calc(132.636 * var(--partner-unit)); height: calc(29.6378 * var(--partner-unit)); }
.partner-logo--huya img { position: absolute; height: auto; }
.partner-logo--huya .partner-logo__huya-icon { width: calc(42.0537 * var(--partner-unit)); left: 0; top: 0; }
.partner-logo--huya .partner-logo__huya-cn { width: calc(78.8361 * var(--partner-unit)); left: calc(47.66 * var(--partner-unit)); top: calc(5.45 * var(--partner-unit)); }
.partner-logo--huya .partner-logo__huya-en { width: calc(77.7027 * var(--partner-unit)); left: calc(48.85 * var(--partner-unit)); top: calc(25.23 * var(--partner-unit)); }
.partner-logo__mask {
  position: absolute;
  display: block;
  background: #181818;
  -webkit-mask-image: var(--partner-mask);
  mask-image: var(--partner-mask);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: var(--partner-mask-position);
  mask-position: var(--partner-mask-position);
  -webkit-mask-size: var(--partner-mask-size);
  mask-size: var(--partner-mask-size);
}
.partner-logo--bilibili .partner-logo__mask {
  --partner-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/partners/bilibili-mask.png');
  --partner-mask-position: calc(5 * var(--partner-unit)) calc(4 * var(--partner-unit));
  --partner-mask-size: calc(83 * var(--partner-unit)) calc(37 * var(--partner-unit));
  left: calc(-5 * var(--partner-unit)); top: calc(-4 * var(--partner-unit)); width: calc(92 * var(--partner-unit)); height: calc(43 * var(--partner-unit));
}
.partner-logo--wegame .partner-logo__mask {
  --partner-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/partners/wegame-mask.png');
  --partner-mask-position: calc(17.158 * var(--partner-unit)) calc(7.413 * var(--partner-unit));
  --partner-mask-size: calc(149.428 * var(--partner-unit)) calc(34.534 * var(--partner-unit));
  left: calc(-17.158 * var(--partner-unit)); top: calc(-7.413 * var(--partner-unit)); width: calc(175.993 * var(--partner-unit)); height: calc(43.832 * var(--partner-unit));
}
.partner-logo--douyu .partner-logo__mask {
  --partner-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/partners/douyu-mask.png');
  --partner-mask-position: calc(-10 * var(--partner-unit)) 0;
  --partner-mask-size: calc(117 * var(--partner-unit)) calc(46 * var(--partner-unit));
  left: calc(10 * var(--partner-unit)); top: 0; width: calc(100 * var(--partner-unit)); height: calc(42 * var(--partner-unit));
}
.partner-logo__video-clip {
  position: absolute;
  left: calc(0.11 * var(--partner-unit)); top: calc(0.27 * var(--partner-unit)); width: calc(132.404 * var(--partner-unit)); height: calc(29.1626 * var(--partner-unit));
  -webkit-mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/partners/video-mask.svg') calc(-0.111 * var(--partner-unit)) calc(-0.271 * var(--partner-unit)) / calc(132.636 * var(--partner-unit)) calc(29.6378 * var(--partner-unit)) no-repeat;
  mask: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/partners/video-mask.svg') calc(-0.111 * var(--partner-unit)) calc(-0.271 * var(--partner-unit)) / calc(132.636 * var(--partner-unit)) calc(29.6378 * var(--partner-unit)) no-repeat;
}
@media (max-width: 640px) {
  .partners .logos { margin-top: 110px; }
  .logos__unit { gap: 40px; padding-right: 40px; }
  .logos__row:first-child .logos__inner,
  .logos__row:last-child .logos__inner { left: 24px; }
}
.partners__cta {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  margin-top: auto;
  padding-top: calc(70 * var(--u));
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer {
  background: var(--black-2);
  color: var(--light);
  padding: 26px max(92px, calc(96 * var(--u))) 26px
    max(52px, calc(56 * var(--u)));
  overflow: hidden;
}
.footer__row {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  letter-spacing: 0.06em;
}
.footer__row a:hover {
  color: var(--red);
}

/* ---- 悬念页区块衔接（js initStack 写入 transform / clip-path；仅精细指针、未开启「减少动态效果」时启用） ----
   层级：燃点之夜(3) 盖在特邀主播(2)、燃点抽奖(1) 之上（03→04 叠层上盖，04→05 缩小退场时露出主播）；02→03、05→06 为差速衔接（不叠层，js 只写 translate） */
main.xs > .kv,
main.xs > .lot,
main.xs > .theme,
main.xs > .creators {
  will-change: transform;
}
main.xs > .lot,
main.xs > .theme,
main.xs > .creators {
  position: relative;
}
main.xs > .lot {
  z-index: 1;
}
main.xs > .creators {
  z-index: 2;
}
main.xs > .theme {
  z-index: 3;
}
main.xs > .partners,
main.xs > .footer {
  z-index: 4;
}
.xs-fl {
  will-change: translate;
}
.xs-shade {
  position: absolute;
  inset: 0;
  z-index: 30;
  background: #050505;
  opacity: 0;
  pointer-events: none;
}

/* =========================================================
   情报卡
   ========================================================= */
.dossier,
.win {
  position: fixed;
  inset: 0;
  z-index: 800;
  visibility: hidden;
}
.dossier.is-open,
.win.is-open {
  visibility: visible;
}
.dossier__mask {
  position: absolute;
  inset: 0;
  background: rgba(6, 6, 6, 0.72);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.4s;
}
.is-open > .dossier__mask {
  opacity: 1;
}
.dossier {
  display: grid;
  place-items: center;
}
.dossier__card {
  position: relative;
  width: min(900px, 88vw);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  /* 盖章放大动效仅作装饰，不应撑出横向滚动条。 */
  overflow-x: hidden;
  background: #e6e2d8;
  color: var(--black);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
}
.dossier__card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.dossier__card .x-btn {
  position: absolute;
  right: 16px;
  top: 16px;
  z-index: 3;
  color: var(--black);
}
.dossier__media {
  position: relative;
  min-width: 0;
  background: var(--black);
  display: grid;
  place-items: center;
  padding: 40px;
  min-height: 380px;
  overflow: hidden;
}
.dossier__media::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-noise.jpg')
    0 0 / 520px auto;
  mix-blend-mode: screen;
  opacity: 0.8;
}
.dossier__media img {
  position: relative;
  max-width: 80%;
  max-height: 300px;
  rotate: -6deg;
  filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.6));
}
.dossier__media img.is-open {
  max-width: 100%;
  width: auto;
  max-height: 340px;
  rotate: 0deg;
  filter: none;
}
.dossier__media:has(img.is-open) {
  padding: 24px;
  min-height: 420px;
  background: radial-gradient(circle at 50% 50%, #26120f, var(--black) 72%);
}
.dossier__media .slip {
  position: relative;
  width: 220px;
  rotate: -6deg;
  --w: 200;
}
/* 猜中后：游戏画面铺满左栏 */
.dossier__media:has(img.is-result) {
  padding: 0;
  min-height: 460px;
  background: #0b0b0b;
}
.dossier__media:has(img.is-result)::before {
  display: none;
}
.dossier__media img.is-result {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  rotate: 0deg;
  filter: none;
}
.dossier__game {
  display: block;
  margin-bottom: 14px;
  font-family: var(--f-body);
  font-weight: 900;
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: 0.04em;
  color: #c4101a;
  -webkit-text-stroke: 0.4px #c4101a;
}
.dossier__body {
  position: relative;
  min-width: 0;
  overflow-wrap: anywhere;
  padding: 44px 44px 36px;
  display: flex;
  flex-direction: column;
}
.dossier__no {
  font-family: var(--f-display);
  font-size: 15px;
  letter-spacing: 0.24em;
  color: #6b6b6b;
}
.dossier__no b {
  font-weight: 400;
  font-size: 64px;
  letter-spacing: 0;
  color: var(--black);
  display: block;
  line-height: 1;
  margin-top: 6px;
}
.dossier__genre {
  display: inline-block;
  align-self: flex-start;
  margin-top: 14px;
  background: var(--black);
  color: var(--light);
  font-size: 12px;
  letter-spacing: 0.12em;
  padding: 2px 10px;
}
.dossier__text {
  font-weight: 900;
  font-size: 24px;
  line-height: 1.6;
  margin-top: 22px;
  padding-right: 8px;
  text-wrap: balance;
  color: #0a0a0a;
}
.dossier__dev {
  margin-top: 10px;
  font-size: 12px;
  color: var(--red);
}
.dossier__stamp {
  position: absolute;
  right: 40px;
  top: 70px;
  rotate: 12deg;
  border: 3px solid var(--red);
  color: var(--red);
  font-weight: 900;
  font-size: 14px;
  line-height: 1.3;
  letter-spacing: 0.14em;
  padding: 6px 12px;
  text-align: center;
  opacity: 0.85;
}
.dossier__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: auto;
  padding-top: 30px;
}
.dossier__actions .btn-line {
  padding: 0 16px;
}
/* 小蛋并排：情报卡左移让出右侧，小蛋面板浮在遮罩之上 */
.dossier {
  transition: padding-right 0.45s var(--ease-out);
}
.dossier.has-xd {
  padding-right: 430px;
}
.dossier.has-xd .dossier__card {
  width: min(900px, calc(100vw - 480px));
}
html.dossier-open .xd-panel {
  z-index: 806;
}
@media (min-width: 760px) and (max-width: 1179px) {
  .dossier.has-xd {
    padding-right: 332px;
  }
  .dossier.has-xd .dossier__card {
    width: calc(100vw - 364px);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }
  .dossier.has-xd .dossier__body {
    padding: 48px 20px 24px;
  }
  html.dossier-open .xd-panel {
    width: 300px;
    right: 16px;
  }
}
@media (max-width: 759px) {
  .dossier.has-xd {
    padding: 16px 16px calc(45vh + 40px);
  }
  .dossier.has-xd .dossier__card {
    width: calc(100vw - 32px);
    max-height: calc(55vh - 64px);
    overflow-y: auto;
  }
  .dossier.has-xd .dossier__body {
    padding: 48px 12px 16px;
  }
  .dossier.has-xd .dossier__media {
    padding: 12px;
    min-height: 200px;
  }
  .dossier.has-xd .dossier__actions .btn-red {
    padding: 0 10px;
  }
  html.dossier-open .xd-panel {
    width: calc(100vw - 24px);
    right: 12px;
    bottom: 12px;
    height: calc(45vh - 24px);
  }
}
.dossier__xd {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 22px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--red);
}
.dossier__xd[hidden] {
  display: none;
}
.dossier__xd i {
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  animation: live 1.2s ease-in-out infinite;
}

/* 预约弹窗：手机号 + Q币提示 */
.rsv {
  position: fixed;
  inset: 0;
  z-index: 812;
  visibility: hidden;
  display: grid;
  place-items: center;
}
.rsv.is-open {
  visibility: visible;
}
.rsv__card {
  position: relative;
  width: min(560px, 92vw);
  background: #e6e2d8;
  color: var(--black);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
}
.rsv__card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.rsv__card > .x-btn {
  position: absolute;
  right: 16px;
  top: 16px;
  z-index: 3;
  color: var(--black);
}
.rsv__main {
  position: relative;
  z-index: 2;
  padding: 34px 38px 26px;
}
.rsv__k {
  font-family: var(--f-display);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: #6b6b6b;
}
.rsv__k b {
  font-weight: 400;
  color: var(--red);
  margin-right: 6px;
}
.rsv__title {
  margin-top: 10px;
  padding-right: 50px;
  font-weight: 900;
  font-size: 28px;
  line-height: 1.25;
  letter-spacing: 0.02em;
}
.rsv__sub {
  margin-top: 8px;
  font-size: 14px;
  color: #4a4a4a;
}
.rsv__form {
  margin-top: 20px;
}
.rsv__row {
  display: flex;
  gap: 8px;
}
.rsv__row + .rsv__row {
  margin-top: 12px;
}
/* 验证码输入区可收缩，发送按钮保持完整显示。 */
.rsv__sms {
  flex: 0 0 132px;
  height: 50px;
  padding: 0 12px;
  border: 2px solid var(--black);
  color: var(--black);
  white-space: nowrap;
}
.rsv__sms:hover:not(:disabled) {
  background: var(--black);
  color: var(--light);
}
.rsv__form button:disabled,
.rsv__form input:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.rsv__in {
  flex: 1;
  min-width: 0;
  height: 50px;
  padding: 0 14px;
  border: 2px solid var(--black);
  background: #f3f0e8;
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--black);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.rsv__in::placeholder {
  color: #9a968c;
  font-weight: 400;
  letter-spacing: 0.04em;
}
.rsv__in:focus {
  border-color: var(--red);
  box-shadow: 4px 4px 0 rgba(250, 55, 61, 0.25);
}
.rsv__go {
  width: 100%;
  height: 50px;
  padding: 0 26px;
}
.rsv__msg {
  min-height: 22px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--red);
}
.rsv__safe {
  margin-top: 2px;
  font-size: 11px;
  color: #8a8a8a;
  letter-spacing: 0.04em;
}
.rsv__q {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 22px 38px 26px;
  background: var(--black);
  color: var(--light);
}
.rsv__q-k {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--red);
}
.rsv__q-k i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  animation: live 1.2s ease-in-out infinite;
}
.rsv__q-t {
  margin-top: 10px;
  font-weight: 900;
  font-size: 20px;
  line-height: 1.5;
}
.rsv__q-t em {
  font-style: normal;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 34px;
  color: var(--red);
  padding: 0 4px;
  vertical-align: -3px;
}
.rsv__q-m {
  margin-top: 4px;
  font-size: 13px;
  color: #b9b9b9;
}
.rsv__q-m b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 15px;
  color: var(--light);
}
.rsv__skip {
  margin-top: 16px;
  height: 42px;
  padding: 0 18px;
  font-size: 14px;
  color: var(--light);
}
.rsv__skip:hover {
  background: var(--light);
  color: var(--black);
}
@media (max-width: 520px) {
  .rsv__main {
    padding: 28px 22px 20px;
  }
  .rsv__q {
    padding: 20px 22px 22px;
  }
  .rsv__sms {
    flex-basis: 112px;
    padding: 0 8px;
    font-size: 13px;
  }
  .rsv__go {
    width: 100%;
  }
}

/* 中心入口：提交答案 */
.submit {
  position: fixed;
  inset: 0;
  z-index: 810;
  visibility: hidden;
  display: grid;
  place-items: center;
}
.submit.is-open {
  visibility: visible;
}
.submit__card {
  position: relative;
  width: min(1040px, 92vw);
  max-height: 92vh;
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  background: #e6e2d8;
  color: var(--black);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
}
.submit__card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.submit__card > .x-btn {
  position: absolute;
  right: 16px;
  top: 16px;
  z-index: 3;
  color: var(--black);
}
.submit__left {
  position: relative;
  z-index: 2;
  background: var(--black);
  color: var(--light);
  padding: 30px 30px 24px;
  display: flex;
  flex-direction: column;
}
.submit__k {
  font-family: var(--f-display);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: #9a9a9a;
}
.submit__k b {
  font-weight: 400;
  color: var(--red);
  margin-right: 6px;
}
.submit__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 18px;
}
.sub__slot {
  position: relative;
  aspect-ratio: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1.5px solid rgba(235, 235, 235, 0.22);
  background: #1e1e1e;
  color: var(--light);
  overflow: hidden;
  transition: border-color 0.25s, transform 0.25s var(--ease-out),
    background-color 0.25s;
}
.sub__pic {
  flex: 1 1 0;
  width: 100%;
  display: grid;
  place-items: center;
  padding: 18px 10px 2px;
  min-height: 0;
  overflow: hidden;
}
.sub__pic img {
  width: 78%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.5));
}
.sub__pic b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 40px;
  color: rgba(235, 235, 235, 0.35);
}
.sub__no {
  position: absolute;
  left: 6px;
  top: 6px;
  font-family: var(--f-display);
  font-size: 11px;
  letter-spacing: 0.08em;
  background: var(--light);
  color: var(--black);
  padding: 0 5px;
}
.sub__st {
  width: 100%;
  padding: 5px 4px 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sub__slot.is-ready:hover {
  border-color: var(--light);
  transform: translateY(-3px);
}
.sub__slot.is-ready .sub__st {
  color: var(--light);
}
.sub__slot.is-locked {
  opacity: 0.45;
}
.sub__slot.is-locked .sub__pic img {
  filter: grayscale(1) brightness(0.4);
}
.sub__slot.is-locked .sub__st {
  color: #8d8d8d;
}
.sub__slot.is-solved {
  border-color: rgba(250, 55, 61, 0.6);
}
.sub__slot.is-solved .sub__pic {
  padding: 0;
}
.sub__slot.is-solved .sub__pic img {
  width: 100%;
  object-fit: cover;
  filter: none;
}
.sub__slot.is-solved .sub__st {
  /* 完整展示揭晓名称，长标题自动换行。 */
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
  flex-shrink: 0;
  background: var(--red);
  color: var(--black);
}
.sub__slot.is-sel {
  border-color: var(--red);
  background: #2a1213;
  box-shadow: inset 0 0 0 2px var(--red);
}
.submit__legend {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 16px;
  font-size: 11px;
  color: #8d8d8d;
  letter-spacing: 0.04em;
}
.submit__legend i {
  width: 9px;
  height: 9px;
  background: var(--light);
  margin-left: 8px;
}
.submit__legend i:first-child {
  margin-left: 0;
}
.submit__legend i.is-solved {
  background: var(--red);
}
.submit__legend i.is-locked {
  background: #4a4a4a;
}

/* 右侧：标题 → 当前线索与输入（视觉重点）→ 底部淡化的进度信息 */
.submit__right {
  position: relative;
  z-index: 2;
  padding: 34px 40px 26px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow-y: auto;
}
.submit__title {
  font-weight: 900;
  font-size: 18px;
  letter-spacing: 0.08em;
  color: #6b6b6b;
  padding-right: 50px;
}
.submit__form {
  margin-top: 26px;
}
.submit__ctx {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  min-height: 120px;
}
.submit__ctx-t {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
/* 线索展开图：深色底 + 微光，和情报卡里的展示一致 */
.submit__pic {
  position: relative;
  flex: none;
  display: grid;
  place-items: center;
  width: 168px;
  height: 168px;
  padding: 10px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 50%, #26120f, var(--black) 74%);
  box-shadow: 5px 5px 0 var(--red);
}
.submit__pic::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-noise.jpg')
    0 0 / 360px auto;
  mix-blend-mode: screen;
  opacity: 0.7;
}
.submit__pic img {
  position: relative;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.submit__ctx b {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 56px;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--black);
}
.submit__ctx b span {
  font-family: 'Microsoft YaHei', sans-serif;
  font-size: 12px;
  font-weight: 700;
  background: var(--black);
  color: var(--light);
  padding: 2px 9px;
  letter-spacing: 0.06em;
}
.submit__ctx p {
  font-weight: 900;
  font-size: 20px;
  line-height: 1.55;
  color: var(--black);
  text-wrap: balance;
}
.submit__ctx.is-empty p {
  font-weight: 400;
  font-size: 14px;
  color: #777;
}
/* 已揭晓：答案名放大成视觉重点，下方是红线引出的揭晓文案 */
.submit__ans {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.submit__ans small {
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: #8a8880;
}
.submit__ans strong {
  font-weight: 900;
  font-size: 34px;
  line-height: 1.2;
  color: var(--black);
  letter-spacing: 0.01em;
  text-wrap: balance;
}
.submit__ctx .submit__ans p {
  position: relative;
  margin-top: 4px;
  padding-left: 14px;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  color: #2a2a2a;
  text-wrap: pretty;
}
.submit__ctx .submit__ans p::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.3em;
  bottom: 0.3em;
  width: 3px;
  background: var(--red);
}
.submit__row.is-locked .submit__in:disabled {
  color: #5a5852;
  font-weight: 700;
}
.submit__row.is-locked .submit__in:disabled::placeholder {
  color: #5a5852;
  font-weight: 700;
}
.submit__row {
  display: flex;
  gap: 8px;
  margin-top: 18px;
}
.submit__prog {
  margin-top: auto;
  padding-top: 28px;
}
.submit__prog-t {
  font-size: 12px;
  color: #6b6b6b;
  letter-spacing: 0.04em;
}
.submit__prog-t b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 15px;
  color: var(--black);
  padding: 0 2px;
}
.submit__prog .cs__bar {
  margin-top: 10px;
}
.submit__next {
  margin-top: 8px;
  font-size: 12px;
  color: #6b6b6b;
}
.submit__next em {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 15px;
  color: var(--red);
  padding: 0 2px;
}
.submit__in {
  flex: 1;
  min-width: 0;
  height: 48px;
  padding: 0 14px;
  border: 2px solid var(--black);
  background: #f3f0e8;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  color: var(--black);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.submit__in:focus {
  border-color: var(--red);
  box-shadow: 4px 4px 0 var(--red);
}
.submit__in:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.submit__go {
  height: 48px;
  padding: 0 26px;
}
.submit__go:disabled {
  filter: grayscale(1);
  opacity: 0.5;
  cursor: not-allowed;
}
.submit__row.is-locked .submit__in {
  background: #deddd8;
  border-color: #b8b6ae;
  color: #8a8880;
  opacity: 1;
}
.submit__row.is-locked .submit__in::placeholder {
  color: #8a8880;
  font-weight: 400;
}
.submit__row.is-locked .submit__go {
  opacity: 0.4;
}
.submit__msg {
  min-height: 22px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--red);
}
.submit__msg.is-ok {
  color: #2a7a3a;
}
.submit__ask {
  font-size: 12px;
  color: #555;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s;
}
.submit__ask:hover {
  color: var(--red);
}
.submit__res {
  margin-top: 18px;
  background: var(--black);
  color: var(--light);
  padding: 18px 20px;
  box-shadow: 6px 6px 0 var(--red);
  position: relative;
  overflow: hidden;
}
.submit__res-k {
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--red);
}
.submit__res-row {
  display: flex;
  align-items: stretch;
  gap: 16px;
}
.submit__res-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-top: 4px;
}
.submit__res-pic {
  flex: none;
  width: 132px;
  aspect-ratio: 9 / 10;
  overflow: hidden;
  box-shadow: 4px 4px 0 var(--red);
  background: #111;
}
.submit__res-pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.submit__res-quote {
  margin-top: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
  color: #fff;
  text-wrap: balance;
}
.submit__pic.is-result {
  padding: 0;
  width: 216px;
  height: 240px;
  box-shadow: 6px 6px 0 rgba(24, 24, 24, 0.9);
}
.submit__ctx:has(.submit__pic.is-result) {
  gap: 24px;
  align-items: flex-start;
}
.submit__pic.is-result img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
}
.submit__res-name {
  font-weight: 900;
  font-size: 30px;
  margin-top: 4px;
}
.submit__res-gain {
  display: inline-block;
  margin-top: 8px;
  background: var(--red);
  color: var(--black);
  font-weight: 900;
  font-size: 14px;
  padding: 2px 10px;
}
.submit__res-t {
  margin-top: 10px;
  font-size: 13px;
  color: #cfcfcf;
}
.submit__res-t em {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 18px;
  color: var(--red);
  padding: 0 2px;
}
.submit__res-ops {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.submit__res-ops > * {
  height: 40px;
  font-size: 14px;
}
.submit__res-ops .btn-line {
  color: var(--light);
  padding: 0 16px;
}
.submit__res-ops .btn-line:hover {
  background: var(--light);
  color: var(--black);
}
.submit__res-stamp {
  position: absolute;
  right: 16px;
  top: 14px;
  rotate: 10deg;
  border: 2.5px solid var(--red);
  color: var(--red);
  font-family: var(--f-display);
  font-size: 16px;
  letter-spacing: 0.16em;
  padding: 2px 10px;
}

/* =========================================================
   小蛋：常驻页面右侧 + 对话面板（移植自悬念页 v2）
   ========================================================= */
:root {
  --xd: #f59a23;
  --xd-2: #ffc164;
  --xd-line: rgba(245, 154, 35, 0.45);
}

.xd-dock {
  position: fixed;
  right: calc(-14 * var(--night-ui-unit));
  bottom: calc(250 * var(--night-ui-unit));
  z-index: 780;
  width: calc(70 * var(--night-ui-unit));
  height: calc(70 * var(--night-ui-unit));
  border-radius: 50%;
  cursor: pointer;
  filter: drop-shadow(0 calc(6 * var(--night-ui-unit)) calc(16 * var(--night-ui-unit)) rgba(0, 0, 0, 0.6));
  transition: right 0.3s var(--ease-out), transform 0.3s var(--ease-out),
    opacity 0.25s;
}
/* 小蛋形象：身体 + 可切换的表情层（素材为同一画布，裁掉四周留白） */
.xd-face {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.xd-face img {
  position: absolute;
  left: -27.8%;
  top: -25.3%;
  width: 151.9%;
  max-width: none;
  height: auto;
  user-select: none;
  pointer-events: none;
}
/* 悬浮入口保留耳机两侧，身体与表情使用相同画布定位；点击、拖动区域随入口尺寸缩放。 */
.xd-dock .xd-face img {
  left: -6%;
  top: -6%;
  width: 112%;
}
/* 单眼眨眼与普通表情共用坐标；仅补偿眼线较高的卖萌表情。 */
.xd-dock .xd-face__e[src$='xd-face-cute.svg'] {
  transform: translateY(calc(3 * var(--night-ui-unit)));
}
.xd-dock:hover {
  right: calc(6 * var(--night-ui-unit));
}
.xd-dock.is-hide {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.6);
}
/* 被拖出后改用 left/top 定位，可停在页面任意位置 */
.xd-dock {
  touch-action: none;
  cursor: grab;
}
.xd-dock.is-free {
  right: auto;
  bottom: auto;
  transition: transform 0.3s var(--ease-out), opacity 0.25s;
}
.xd-dock.is-free:hover {
  right: auto;
  transform: scale(1.06);
}
.xd-dock.is-free.is-hide:hover {
  transform: scale(0.6);
}
.xd-dock.is-free.is-drag,
.xd-dock.is-free.is-drag:hover {
  cursor: grabbing;
  transform: scale(1.12);
}
.xd-dock__ping {
  position: absolute;
  inset: calc(-6 * var(--night-ui-unit));
  border-radius: 50%;
  border: calc(2 * var(--night-ui-unit)) solid var(--xd);
  animation: xdPing 2s ease-out infinite;
  pointer-events: none;
}
@keyframes xdPing {
  from {
    transform: scale(0.85);
    opacity: 0.9;
  }
  to {
    transform: scale(1.35);
    opacity: 0;
  }
}
.xd-tip {
  position: fixed;
  right: calc(90 * var(--night-ui-unit));
  bottom: calc(266 * var(--night-ui-unit));
  z-index: 780;
  max-width: calc(230 * var(--night-ui-unit));
  padding: calc(10 * var(--night-ui-unit)) calc(14 * var(--night-ui-unit));
  font-size: calc(13 * var(--night-ui-unit));
  line-height: 1.6;
  color: #fff;
  background: #16110b;
  border: calc(1 * var(--night-ui-unit)) solid var(--xd-line);
  border-radius: calc(10 * var(--night-ui-unit)) calc(10 * var(--night-ui-unit)) calc(2 * var(--night-ui-unit)) calc(10 * var(--night-ui-unit));
  box-shadow: 0 calc(10 * var(--night-ui-unit)) calc(30 * var(--night-ui-unit)) rgba(0, 0, 0, 0.5);
  opacity: 0;
  transform: translateX(calc(10 * var(--night-ui-unit)));
  pointer-events: none;
  transition: 0.35s var(--ease-out);
}
.xd-tip.is-show {
  opacity: 1;
  transform: none;
}
.xd-tip.is-left {
  border-radius: calc(10 * var(--night-ui-unit)) calc(10 * var(--night-ui-unit)) calc(10 * var(--night-ui-unit)) calc(2 * var(--night-ui-unit));
}
.xd-tip.is-left:not(.is-show) {
  transform: translateX(calc(-10 * var(--night-ui-unit)));
}
.xd-tip b {
  color: var(--xd-2);
}

.xd-panel {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 795;
  width: min(392px, calc(100vw - 36px));
  height: min(680px, calc(100vh - 110px));
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #2a1708 0, #0b0703 110px, #000 200px);
  border: 1px solid rgba(245, 154, 35, 0.35);
  border-top: 2px solid var(--xd);
  border-radius: 14px 14px 10px 10px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(0, 0, 0, 0.6);
  opacity: 0;
  transform: translateY(24px) scale(0.96);
  transform-origin: 92% 100%;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.3s var(--ease-out), transform 0.35s var(--ease-out),
    visibility 0s 0.35s;
  font-family: var(--f-body);
  color: #f2ede8;
  line-height: 1.6;
}
.xd-panel.is-open {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  visibility: visible;
  transition: opacity 0.3s var(--ease-out), transform 0.35s var(--ease-out);
}
.xd-panel.is-answer-companion {
  z-index: 815;
}
.xd-panel__ava {
  position: absolute;
  left: 50%;
  top: -40px;
  width: 74px;
  height: 74px;
  transform: translateX(-50%);
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.6));
}
.xd-panel.is-open .xd-panel__ava {
  animation: xdIn 0.55s cubic-bezier(0.2, 1.4, 0.4, 1) both;
}
@keyframes xdIn {
  from {
    transform: translate(-50%, 30px) scale(0.4);
  }
  to {
    transform: translateX(-50%);
  }
}
.xd-panel__sub {
  flex-shrink: 0;
  text-align: center;
  font-size: 12px;
  color: #77706a;
  padding: 36px 40px 8px;
}
.xd-panel__x {
  position: absolute;
  right: 14px;
  top: 12px;
  width: 26px;
  height: 26px;
}
.xd-panel__x::before,
.xd-panel__x::after {
  content: '';
  position: absolute;
  left: 2px;
  right: 2px;
  top: 12px;
  height: 1.6px;
  background: var(--xd);
  transform: rotate(45deg);
}
.xd-panel__x::after {
  transform: rotate(-45deg);
}
.xd-panel__x:hover::before,
.xd-panel__x:hover::after {
  background: #fff;
}

.xd-ctx {
  flex-shrink: 0;
  margin: 4px 16px 6px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid rgba(245, 154, 35, 0.28);
  border-radius: 8px;
  background: rgba(245, 154, 35, 0.06);
}
.xd-ctx[hidden] {
  display: none !important;
}
.xd-ctx img {
  width: 64px;
  height: 36px;
  object-fit: cover;
  border-radius: 3px;
  filter: grayscale(1) contrast(1.4);
  flex: none;
  background: #1a1209;
}
.xd-ctx img.is-empty {
  object-fit: contain;
  padding: 4px;
}
.xd-ctx.is-solved img {
  filter: none;
}
.xd-ctx__t {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  color: #fff;
}
.xd-ctx__t small {
  display: block;
  font-size: 11px;
  color: #9a8f84;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.xd-feed {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px 16px 6px;
}
.xd-msg {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
  animation: xdMsg 0.3s var(--ease-out) both;
}
@keyframes xdMsg {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.xd-msg__ava {
  width: 36px;
  height: 36px;
  flex: none;
}
.xd-msg__body {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  line-height: 1.75;
  color: #f2ede8;
  padding-top: 6px;
}
.xd-msg__body b {
  color: var(--xd-2);
  font-weight: 600;
}
.xd-msg__body .muted {
  color: #8b8278;
  font-size: 12px;
}
.xd-msg.is-me {
  justify-content: flex-end;
}
.xd-msg.is-me .xd-msg__body {
  flex: none;
  max-width: 78%;
  padding: 8px 14px;
  border-radius: 12px 12px 2px 12px;
  background: linear-gradient(135deg, #5a3510, #3a220a);
  border: 1px solid rgba(245, 154, 35, 0.35);
}
.xd-typing span {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 4px;
  border-radius: 50%;
  background: var(--xd);
  animation: blink 1s infinite;
}
.xd-typing span:nth-child(2) {
  animation-delay: 0.15s;
}
.xd-typing span:nth-child(3) {
  animation-delay: 0.3s;
}
.xd-typing em {
  margin-left: 8px;
  font-style: normal;
  color: #9a8f84;
  font-size: 13px;
  vertical-align: middle;
}
.xd-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.xd-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 16px;
  border-radius: 17px;
  font-size: 13px;
  color: #f2ede8;
  background: linear-gradient(
    90deg,
    rgba(90, 53, 16, 0.75),
    rgba(30, 18, 6, 0.75)
  );
  border: 1px solid rgba(245, 154, 35, 0.4);
  transition: border-color 0.2s, color 0.2s;
}
.xd-chip::after {
  content: '\203a ';
  font-size: 18px;
  line-height: 1;
  color: var(--xd-2);
}
.xd-chip:hover {
  border-color: var(--xd-2);
  color: #fff;
}
.xd-reveal {
  margin-top: 8px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(250, 55, 61, 0.55);
  background: #120607;
}
.xd-reveal__pic {
  position: relative;
  aspect-ratio: 16 / 8;
  overflow: hidden;
  background: radial-gradient(circle at 50% 40%, #3a0a0c, #120607 70%);
}
.xd-reveal__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: xdRv 1s var(--ease-out) both;
}
.xd-reveal__pic img.is-empty {
  object-fit: contain;
  padding: 14px;
}
@keyframes xdRv {
  from {
    filter: grayscale(1) contrast(1.4) brightness(0.8);
    transform: scale(1.08);
  }
  to {
    filter: none;
    transform: none;
  }
}
.xd-reveal__pic b {
  position: absolute;
  left: 10px;
  bottom: 6px;
  font-size: 18px;
  font-weight: 900;
  color: #fff;
  text-shadow: 0 2px 8px #000;
}
.xd-reveal__pic span {
  position: absolute;
  left: 10px;
  top: 8px;
  font-family: var(--f-display);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: #fff;
  background: var(--red);
  padding: 1px 6px;
}
.xd-reveal__bd {
  padding: 10px 12px 12px;
  font-size: 13px;
  color: #d8d2cc;
}
.xd-reveal__bd em {
  color: var(--red);
  font-family: var(--f-display);
  font-size: 15px;
}
.xd-reveal__bar {
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  margin: 8px 0 10px;
  position: relative;
}
.xd-reveal__bar i {
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--red);
}
.xd-reveal__bar s {
  position: absolute;
  top: -3px;
  width: 2px;
  height: 10px;
  background: #555;
}
.xd-reveal__ops {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.xd-reveal__ops > * {
  flex: 1;
  height: 36px;
  font-size: 13px;
  padding: 0 10px;
  letter-spacing: 0.06em;
}
.xd-reveal__ops .btn-line {
  color: #f2ede8;
}
.xd-reveal__ops .btn-line:hover {
  background: #f2ede8;
  color: var(--black);
}
.xd-gain {
  display: inline-block;
  margin-left: 4px;
  padding: 0 8px;
  background: var(--red);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.xd-input {
  flex-shrink: 0;
  margin: 8px 14px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 50px;
  padding: 0 6px 0 16px;
  border: 1px solid #5a3a1a;
  border-radius: 10px;
  background: #0a0705;
}
.xd-input:focus-within {
  border-color: var(--xd);
}
/* 线索已揭晓 / 读取记录中：整条输入栏置灰（保留位置，避免面板跳动） */
.xd-input.is-locked {
  background: #151311;
  border-color: #2a2622;
  cursor: not-allowed;
}
.xd-input.is-locked > * {
  opacity: 0.4;
  filter: grayscale(1);
  cursor: not-allowed;
}
.xd-input__send {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 40% 30%, #c8a26a, #6d4f2a);
  color: #1a1208;
  transition: filter 0.2s;
}
.xd-input__send:hover {
  filter: brightness(1.2);
}
.xd-input__send:disabled {
  filter: grayscale(1) brightness(0.5);
  cursor: default;
}

/* 中奖 */
.win {
  display: grid;
  place-items: center;
  background: rgba(6, 6, 6, 0.6);
}
.win__card {
  position: relative;
  background: var(--red);
  color: var(--black);
  padding: 36px 54px 34px;
  text-align: center;
  box-shadow: 14px 14px 0 var(--black-2);
}
.win__card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 420px auto;
  mix-blend-mode: multiply;
  opacity: 0.4;
  pointer-events: none;
}
.win__k {
  font-family: var(--f-display);
  font-size: 22px;
  letter-spacing: 0.3em;
}
.win__v {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 8px;
}
.win__v b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 150px;
  line-height: 0.95;
}
.win__v span {
  font-weight: 900;
  font-size: 30px;
  padding-bottom: 18px;
}
.win__t {
  font-weight: 700;
  font-size: 14px;
  margin: 6px 0 4px;
}
.win__thx {
  position: relative;
  z-index: 2;
  display: inline-block;
  margin: 10px 0 4px;
  padding: 5px 16px;
  background: var(--black);
  color: var(--light);
  font-weight: 900;
  font-size: 15px;
  letter-spacing: 0.1em;
}
.win .btn-red {
  background: var(--black);
  color: var(--light);
  position: relative;
  z-index: 2;
}
/* 中奖按钮反色时同步切换文字，避免通用 hover 造成浅底浅字。 */
.win .btn-red:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--light);
  color: var(--black);
}
.win {
  overflow: hidden;
}
.win__tier {
  font-family: var(--f-display);
  font-size: 22px;
  letter-spacing: 0.3em;
}
.win__k {
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.4em;
  margin-top: 2px;
}
.win__meta {
  font-size: 12px;
  letter-spacing: 0.06em;
  opacity: 0.72;
  margin-bottom: 18px;
}
.win__meta b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 14px;
}
.win__acts {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 10px;
}
.win__more {
  height: 44px;
  padding: 0 18px;
  border: 1.5px solid var(--black);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  transition: background-color 0.25s, color 0.25s;
}
.win__more:hover {
  background: var(--black);
  color: var(--light);
}
.win__more b {
  font-family: var(--f-display);
  font-weight: 400;
}
.win__more[hidden] {
  display: none;
}
.win__rays {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 170vmax;
  height: 170vmax;
  margin: -85vmax 0 0 -85vmax;
  pointer-events: none;
  opacity: 0;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(250, 55, 61, 0.3) 0 5deg,
    transparent 5deg 15deg
  );
  -webkit-mask-image: radial-gradient(circle, #000 0, transparent 42%);
  mask-image: radial-gradient(circle, #000 0, transparent 42%);
  animation: spin 40s linear infinite;
  transition: opacity 0.6s;
}
.win.is-open[data-tier='2'] .win__rays {
  opacity: 0.7;
}
.win.is-open[data-tier='3'] .win__rays {
  opacity: 1;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255, 196, 120, 0.4) 0 4deg,
    rgba(250, 55, 61, 0.35) 4deg 8deg,
    transparent 8deg 15deg
  );
}
.win[data-tier='3'] .win__card {
  background: var(--light);
  box-shadow: 14px 14px 0 var(--red), 0 0 120px rgba(250, 55, 61, 0.6);
}
.win[data-tier='3'] .win__v b {
  color: var(--red);
  font-size: 190px;
}
.win[data-tier='3'] .win__tier {
  color: var(--red);
}
.win[data-tier='3'] .win__more {
  border-color: var(--black);
}

.flash {
  position: fixed;
  inset: 0;
  z-index: 955;
  pointer-events: none;
  background: #fff6ea;
  opacity: 0;
  mix-blend-mode: screen;
}

/* 金币（中奖洒金币）：金色径向渐变 + 双层描边 + Q 字，飞行时 scaleX 翻面 */
.coin {
  position: fixed;
  z-index: 962;
  width: var(--s);
  height: var(--s);
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(
    circle at 34% 28%,
    #fff7c2 0 10%,
    #ffd84f 34%,
    #f2a51c 68%,
    #b96f08 100%
  );
  box-shadow: inset 0 0 0 2px #c27a0c,
    inset 0 0 0 calc(var(--s) * 0.11) rgba(255, 238, 160, 0.9),
    inset 0 0 0 calc(var(--s) * 0.13) #d8900f, 0 3px 8px rgba(0, 0, 0, 0.35);
  display: grid;
  place-items: center;
  will-change: transform;
}
.coin::before {
  content: 'Q';
  font-family: var(--f-display);
  font-size: calc(var(--s) * 0.56);
  line-height: 1;
  color: #b36a06;
  text-shadow: 0 1px 0 rgba(255, 240, 170, 0.9);
  padding-top: 0.04em;
}

/* 抽奖 · 规则 / 记录居中弹窗 */
.sheet {
  position: fixed;
  inset: 0;
  z-index: 820;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
}
.sheet.is-open {
  visibility: visible;
}
.sheet__mask {
  position: absolute;
  inset: 0;
  background: rgba(6, 6, 6, 0.7);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.4s;
}
.sheet.is-open .sheet__mask {
  opacity: 1;
}
.sheet__panel {
  position: relative;
  width: min(560px, 92vw);
  /* 短内容按实际高度居中，长内容保留上下边距并在正文区域滚动。 */
  max-height: calc(100% - 48px);
  display: flex;
  flex-direction: column;
  background: #e6e2d8;
  color: var(--black);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
  opacity: 0;
  transform: translateY(16px);
  transition: transform 0.35s var(--ease), opacity 0.25s;
}
.sheet__panel::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.sheet.is-open .sheet__panel {
  opacity: 1;
  transform: none;
}
.sheet__head,
.sheet__foot,
.sheet .hs__sum {
  flex-shrink: 0;
}
.sheet__head {
  position: relative;
  z-index: 2;
  padding: 34px 36px 20px;
  border-bottom: 2px solid var(--black);
}
.sheet__head .x-btn {
  position: absolute;
  right: 26px;
  top: 28px;
  color: var(--black);
}
.sheet__k {
  font-family: var(--f-display);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: #6b6b6b;
}
.sheet__k b {
  font-weight: 400;
  color: var(--red);
  margin-right: 6px;
}
.sheet__title {
  font-weight: 900;
  font-size: 34px;
  letter-spacing: 0.02em;
  margin-top: 6px;
}
.sheet__body {
  position: relative;
  z-index: 2;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px 36px 30px;
}
.sheet__foot {
  position: relative;
  z-index: 2;
  padding: 14px 36px 18px;
  border-top: 1px solid rgba(24, 24, 24, 0.2);
  font-size: 12px;
  color: #6b6b6b;
  letter-spacing: 0.04em;
}

.rd {
  padding: 20px 0;
  border-bottom: 1px solid rgba(24, 24, 24, 0.16);
}
.rd:last-child {
  border-bottom: 0;
}
.rd h4 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 900;
  font-size: 17px;
  margin-bottom: 10px;
}
.rd h4 span {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 13px;
  background: var(--black);
  color: var(--light);
  padding: 1px 7px;
  letter-spacing: 0.1em;
}
.rd p,
.rd li {
  font-size: 14px;
  line-height: 1.85;
  color: #333;
}
.rd b {
  color: var(--black);
  font-weight: 900;
}
.rd strong {
  color: var(--red);
  font-weight: 900;
}
.rd--hot {
  background: var(--black);
  color: var(--light);
  margin: 10px -16px;
  padding: 20px 16px;
  border: 0;
  box-shadow: 6px 6px 0 var(--red);
}
.rd--hot h4 span {
  background: var(--red);
  color: var(--black);
}
.rd--hot p {
  color: #cfcfcf;
}
.rd--hot b {
  color: var(--light);
}
.rd__list li {
  display: grid;
  grid-template-columns: 44px 1fr;
  align-items: baseline;
}
.rd__list em {
  font-style: normal;
  font-family: var(--f-display);
  font-size: 20px;
  color: var(--red);
}
.rd__tiers {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-top: 10px;
}
.rd__tiers span {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 3px;
  padding: 8px 0 6px;
  border: 1.5px solid var(--black);
  font-size: 11px;
  font-weight: 700;
}
.rd__tiers b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 24px;
  line-height: 1;
}
.rd__tiers span.is-top {
  background: var(--red);
  border-color: var(--red);
}

.hs__sum {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 2px solid var(--black);
}
.hs__sum div {
  padding: 16px 0 14px 36px;
  display: flex;
  flex-direction: column;
}
.hs__sum div + div {
  border-left: 1px solid rgba(24, 24, 24, 0.2);
  padding-left: 22px;
}
.hs__sum span {
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #6b6b6b;
}
.hs__sum b {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.05;
  margin-top: 4px;
}
.hs__sum div:first-child b {
  color: var(--red);
}
.hs__sum small {
  font-size: 12px;
  font-weight: 700;
}
.hs__list li {
  display: grid;
  grid-template-columns: 54px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(24, 24, 24, 0.25);
}
.hs__no {
  font-family: var(--f-display);
  font-size: 22px;
  color: #9a9a9a;
  letter-spacing: 0.04em;
}
.hs__info b {
  display: block;
  font-weight: 900;
  font-size: 15px;
}
.hs__info span {
  font-size: 12px;
  color: #6b6b6b;
  letter-spacing: 0.04em;
}
.hs__v {
  font-family: var(--f-display);
  font-size: 30px;
  line-height: 1;
  text-align: right;
}
.hs__v small {
  font-family: 'Microsoft YaHei', sans-serif;
  font-weight: 900;
  font-size: 13px;
  margin-left: 3px;
}
.hs__v.is-big {
  color: var(--red);
}
.hs__v.is-none {
  color: #9a9a9a;
  font-size: 16px;
}
.hs__tag {
  display: inline-block;
  margin-left: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0 6px;
  border: 1px solid currentColor;
  color: var(--red);
  vertical-align: 1px;
}
.hs__list li.hs__empty {
  display: block;
  border-bottom: 0;
  padding: 60px 0;
  text-align: center;
  color: #6b6b6b;
  font-size: 14px;
  line-height: 1.9;
}
.hs__empty b {
  display: block;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 64px;
  color: rgba(24, 24, 24, 0.15);
  line-height: 1;
  margin-bottom: 10px;
}
.hs__empty button {
  margin-top: 18px;
}

/* =========================================================
   关于游戏之夜
   ========================================================= */
.about {
  position: fixed;
  inset: 0;
  z-index: 700;
  visibility: hidden;
}
.about.is-open {
  visibility: visible;
}
.about__wipe {
  position: absolute;
  inset: 0;
  background: var(--red);
  clip-path: polygon(120% 0%, 140% 0%, 120% 100%, 100% 100%);
}
.about__panel {
  position: absolute;
  inset: 0;
  background: #0f0f0f;
  color: var(--light);
  overflow-y: auto;
  overscroll-behavior: contain;
  clip-path: polygon(120% 0%, 140% 0%, 120% 100%, 100% 100%);
}
.about__panel::-webkit-scrollbar {
  width: 0;
}

.a-cover {
  height: 100vh;
  min-height: 620px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #111;
}

/* ---- 滚动驱动的场景过渡（数值由 js 的 initAbout 场景段写入） ----
   01 固定叠层：首屏在 .a-stack 内钉住，氛围屏从下方盖上来；首屏同时缩小、压暗
   02 缩小退场：氛围屏 / 介绍屏 / 往届档案在 .a-pin 里同位叠放并整体钉住（各 100vh，共 300vh 的滚动舞台）：
      先是氛围屏缩小（直角）、淡出，露出下面的介绍屏
   03 像素马赛克揭示：整屏切成大方格，沿左下 → 右上依次翻开，把介绍屏换成往届档案
   04 往届档案在舞台末尾松开钉住，随后与联系合作差速衔接：往届档案内容加速上移，联系合作内容分层迟到（不叠层） */
.a-stack {
  position: relative;
}
.a-stack .a-cover {
  position: sticky;
  top: 0;
  z-index: 0;
  transform-origin: 50% 35%;
  will-change: transform;
}
.a-cover__shade {
  position: absolute;
  inset: 0;
  z-index: 3;
  background: #050505;
  opacity: 0;
  pointer-events: none;
}
.a-pin {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: calc(100vh * 3.2);
}
.a-pin > * {
  grid-area: 1 / 1;
  align-self: start;
  position: sticky;
  top: 0;
  height: 100vh;
  min-height: 620px;
}
.a-pin > .a-intro {
  z-index: 1;
  will-change: transform;
}
.a-pin > .a-fire {
  z-index: 2;
  pointer-events: none;
  visibility: hidden;
  min-height: 0;
}
.a-pin > .a-legacy {
  z-index: 3;
  visibility: hidden;
}
.a-pin > .a-vibe {
  position: sticky;
  z-index: 4;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
  box-shadow: 0 -26px 50px -14px rgba(0, 0, 0, 0.55);
}
.a-pin > .a-intro {
  position: sticky;
}
.a-pin > .a-legacy {
  position: sticky;
}
.a-pin.is-flat {
  display: block;
}
.a-pin.is-flat > * {
  position: relative !important;
  height: auto;
  min-height: 100vh;
}
.a-pin.is-flat > .a-fire {
  display: none;
}
.a-pin.is-flat > .a-legacy {
  visibility: visible;
}
.a-pin.is-flat > .a-vibe {
  box-shadow: none;
}
/* 马赛克前沿画布：宽高由 js 按舞台尺寸设置位图，这里只负责铺满 */
.a-pin > canvas.a-fire {
  width: 100%;
  height: 100vh;
  min-height: 620px;
  display: block;
}
.a-cover__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #0b0b0b;
  pointer-events: none;
}
.a-cover__bg video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 压暗并加暗角：保证中间的白色 Logo 与四周的标记在亮笔触出现时仍然清晰 */
.a-cover__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
      ellipse 52% 48% at 50% 50%,
      rgba(0, 0, 0, 0.68),
      rgba(0, 0, 0, 0.3) 78%
    ),
    rgba(0, 0, 0, 0.2);
}
.a-cover__title {
  position: relative;
  z-index: 2;
  width: max(320px, calc(480 * var(--u)));
}
.a-cover__title > img {
  width: 100%;
  height: auto;
  display: block;
  user-select: none;
}
.a-cover__title > .a-cover__gl,
.a-cover__title > .a-cover__eggy {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  transform-origin: 45.6% 14.3%;
}
.a-cover__gl {
  transition: transform 0.45s var(--ease-out), opacity 0.25s;
}
.a-cover__eggy {
  opacity: 0;
  transform: scale(0.2) rotate(-60deg);
  transition: transform 0.55s cubic-bezier(0.34, 1.7, 0.5, 1), opacity 0.2s;
}
.a-cover__title.is-egg .a-cover__gl {
  opacity: 0;
  transform: scale(0.3) rotate(60deg);
}
.a-cover__title.is-egg .a-cover__eggy {
  opacity: 1;
  transform: none;
  animation: eggWobble 1.8s 0.55s ease-in-out infinite;
}
@keyframes eggWobble {
  0%,
  100% {
    rotate: 0deg;
  }
  30% {
    rotate: -6deg;
  }
  65% {
    rotate: 5deg;
  }
}
.cross {
  position: absolute;
  width: 12px;
  height: 12px;
  z-index: 2;
}
.cross::before,
.cross::after {
  content: '';
  position: absolute;
  background: var(--light);
}
.cross::before {
  left: 5px;
  top: 0;
  width: 2px;
  height: 12px;
}
.cross::after {
  top: 5px;
  left: 0;
  width: 12px;
  height: 2px;
}
.cross--1 {
  left: 14.5%;
  top: 17%;
}
.cross--2 {
  right: 14.5%;
  top: 17%;
}
.tick {
  position: absolute;
  top: 44%;
  width: 18px;
  height: 76px;
  z-index: 2;
}
.tick::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  width: 1.5px;
  height: 100%;
  background: var(--light);
}
.tick::after {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 1.5px;
  background: var(--light);
}
.tick--l {
  left: 6%;
}
.tick--r {
  right: 6%;
}
.a-cover__wg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 13%;
  z-index: 2;
  display: flex;
  justify-content: space-around;
  padding: 0 9%;
}
.a-cover__wg img {
  height: 20px;
  width: auto;
  opacity: 0.85;
}
/* 向下滚动提示：与预热页首屏一致（SCROLL 文字 + 两个流动箭头） */
.a-cover__scroll {
  bottom: max(30px, calc(36 * var(--u)));
  cursor: pointer;
}
.a-cover__meta {
  position: absolute;
  left: calc(22 * var(--u));
  bottom: 22px;
  z-index: 2;
  display: flex;
  gap: 16px;
  font-family: var(--f-display);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: #8a8a8a;
}

/* A2 氛围：编辑式错层跑马灯
   超大字标横向出血，整行水平移动（不倾斜、不拆字），实心 / 描边交替；
   游戏画面与字标同处一行（同高），滚动到节点时由中心展开 */
.a-vibe {
  position: relative;
  overflow: hidden;
  background: var(--red-d);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(64 * var(--u)) 0 calc(24 * var(--u));
  --row-h: clamp(96px, 20vh, 300px);
  --gap: calc(var(--row-h) * 0.3);
}
.a-vibe__floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 30%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.8;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/vibe-bg.jpg')
    center 40% / cover no-repeat;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 70%);
  mask-image: linear-gradient(to bottom, transparent, #000 70%);
}
.a-vibe__meta,
.a-vibe__foot {
  position: relative;
  z-index: 3;
  display: flex;
  justify-content: space-between;
  padding: 0 6%;
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: rgba(235, 235, 235, 0.78);
}
.a-vibe__meta {
  margin-bottom: calc(34 * var(--u));
}
.a-vibe__meta b {
  font-weight: 400;
  color: var(--black);
  background: var(--light);
  padding: 0 6px;
  letter-spacing: 0.04em;
}
.a-vibe__foot {
  margin-top: calc(34 * var(--u));
}

/* 四行紧密叠排；每行 = 一条整行移动的跑马灯 */
.a-vibe__rows {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: calc(var(--row-h) * 0.1);
}
.mq {
  position: relative;
  overflow: hidden;
  line-height: 0;
}
.mq__track {
  display: flex;
  width: max-content;
  will-change: transform;
}
.mq__u {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: var(--gap);
  padding-right: var(--gap);
}
.mq__t {
  height: var(--row-h);
  width: auto;
  display: block;
  flex-shrink: 0;
}
.mq__t--chev {
  height: calc(var(--row-h) * 0.82);
}

/* 行内游戏画面：与字标同高，宽高比参照设计 236:102 */
.mq__clip {
  position: relative;
  display: block;
  flex-shrink: 0;
  height: var(--row-h);
  aspect-ratio: 236 / 102;
  line-height: 0;
  --rv: 0;
}
.mq__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #111;
  display: block;
  clip-path: inset(calc(50% - var(--rv) * 50%) calc(50% - var(--rv) * 50%));
}
.mq__media img,
.mq__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(calc(1.4 - var(--rv) * 0.4));
  transition: filter 0.4s;
}
.mq__clip:hover .mq__media img,
.mq__clip:hover .mq__media video {
  filter: contrast(1.12) saturate(1.2);
}

.a-intro {
  min-height: 100vh;
  padding: calc(150 * var(--u)) 8% calc(90 * var(--u));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #0c0c0c;
}
.a-intro__bg {
  position: absolute;
  inset: -4%;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/intro-bg.jpg')
    center / cover;
  filter: blur(3px);
  z-index: 0;
}
.a-intro__title {
  position: relative;
  z-index: 2;
  text-align: center;
  font-weight: 700;
  font-size: max(26px, calc(42 * var(--u)));
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.a-intro__title em {
  color: var(--red);
}
.tl {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: min(1100px, 86vw);
  margin-top: calc(100 * var(--u));
}
.tl li {
  position: relative;
  text-align: center;
}
.tl li:not(:last-child)::after {
  content: '';
  position: absolute;
  left: calc(100% - 66px);
  top: calc(30 * var(--u));
  width: 132px;
  aspect-ratio: 380 / 46;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/hand-arrow-1.png')
    center / 100% 100% no-repeat;
  filter: brightness(2.4);
  opacity: 0.8;
}
.tl__date {
  position: relative;
  isolation: isolate;
  display: inline-block;
  font-family: var(--f-hand);
  font-size: max(44px, calc(70 * var(--u)));
  line-height: 0.9;
  color: var(--light);
}
.tl__circle {
  position: absolute;
  z-index: -1;
  left: -32%;
  top: -22%;
  width: 164%;
  max-width: none;
  pointer-events: none;
  clip-path: inset(0 100% 0 0);
}
.tl__title {
  font-weight: 700;
  font-size: max(17px, calc(21 * var(--u)));
  margin-top: 4px;
}
.tl__desc {
  width: min(22em, 100%);
  margin: calc(34 * var(--u)) auto 0;
  padding: 0 4px;
  font-size: max(13px, calc(14 * var(--u)));
  line-height: 1.85;
  color: #a7a7a7;
  text-align: center;
  text-wrap: balance;
}
.tl li.is-now .tl__title {
  color: var(--red);
}
.tl li.is-past {
  opacity: 0.55;
}

.a-legacy {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #d4d4d4;
  color: var(--black);
  padding: calc(110 * var(--u)) 6% calc(60 * var(--u));
  text-align: center;
  overflow: hidden;
}
.a-legacy__title {
  position: relative;
  z-index: 2;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: max(56px, calc(100 * var(--u)));
  line-height: 1;
  letter-spacing: 0.01em;
}
.a-legacy__sub {
  position: relative;
  z-index: 2;
  font-size: max(18px, calc(28 * var(--u)));
  color: #3c3c3c;
  margin-top: calc(10 * var(--u));
}
.sleeves {
  position: relative;
  z-index: 2;
  display: grid;
  /* 档案保持横排；按窗口宽高缩放图片，避免小尺寸端内换行后超出一屏。 */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
  max-width: calc(1210 * var(--u));
  align-self: center;
  gap: calc(40 * var(--u));
  margin-top: calc(72 * var(--u));
  text-align: left;
}
.sleeve {
  position: relative;
}
.sleeve__wrap {
  position: relative;
  display: block;
  width: 100%;
}
.sleeve__disc {
  position: absolute;
  top: 4%;
  left: 4%;
  width: 92%;
  aspect-ratio: 1;
  border-radius: 50%;
  z-index: 0;
  background: radial-gradient(
    circle,
    var(--red) 0 15%,
    #111 15.5% 17%,
    #1a1a1a 17.5% 100%
  );
  box-shadow: inset 0 0 0 2px #000, 0 10px 20px rgba(0, 0, 0, 0.4);
  transition: transform 0.7s var(--ease-out);
}
.sleeve__disc::after {
  content: '';
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background: repeating-radial-gradient(
    circle,
    transparent 0 3px,
    rgba(255, 255, 255, 0.05) 3px 4px
  );
}
.sleeve__card {
  position: relative;
  z-index: 1;
  display: block;
  background: #fff;
  padding: calc(7 * var(--u));
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
  rotate: var(--r, 0deg);
  transition: rotate 0.6s var(--ease-out), transform 0.6s var(--ease-out);
}
.sleeve__img {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
}
.sleeve__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out);
}
.sleeve__year {
  position: absolute;
  left: 8px;
  bottom: 4px;
  font-family: var(--f-display);
  font-size: max(20px, calc(26 * var(--u)));
  color: #fff;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}
.sleeve__name {
  position: absolute;
  right: 8px;
  bottom: 8px;
  font-size: 11px;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.7);
}
.sleeve__open {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.06em;
  transition: color 0.3s;
}
.sleeve__open i {
  font-style: normal;
  font-size: 1.1em;
  transition: transform 0.4s var(--ease-out);
}
.sleeve:hover .sleeve__disc {
  transform: translateX(42%) rotate(160deg);
}
.sleeve:hover .sleeve__card {
  rotate: -3deg;
  transform: translateY(-6px);
}
.sleeve:hover .sleeve__img img {
  transform: scale(1.06);
}
.sleeve:hover .sleeve__open {
  color: var(--red);
}
.sleeve:hover .sleeve__open i {
  transform: translate(3px, 3px);
}
/* 丝网网点材质压到专辑内容下面：专辑 / 文案在上 */
.a-legacy.t-light::after {
  z-index: 1;
}
.sleeve:hover {
  z-index: 6;
}

.a-contact {
  min-height: 100vh;
  background: #121212;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: calc(110 * var(--u)) 6% calc(70 * var(--u));
  text-align: center;
  overflow: hidden;
}
/* 霓虹：默认熄灭（灰暗灯管），滚动到此处通电点亮 → 之后轻微闪烁 */
.a-contact__neon {
  position: relative;
  z-index: 2;
  width: max(380px, calc(560 * var(--u)));
  mix-blend-mode: screen;
  -webkit-mask-image: radial-gradient(
    ellipse 50% 50% at 50% 50%,
    #000 55%,
    transparent 100%
  );
  mask-image: radial-gradient(
    ellipse 50% 50% at 50% 50%,
    #000 55%,
    transparent 100%
  );
}
.a-contact__neon img {
  width: 100%;
  height: auto;
  filter: grayscale(1) brightness(0.32) contrast(1.2);
  opacity: 0.55;
  transition: filter 0.25s, opacity 0.25s;
}
.a-contact__neon.is-lit img {
  filter: none;
  opacity: 1;
  animation: neonOn 1.1s steps(1, end) both, flicker 5s 1.1s infinite;
}
.a-contact__neon::after {
  content: '';
  position: absolute;
  inset: 18% 10%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(
    closest-side,
    rgba(250, 55, 61, 0.45),
    transparent
  );
  opacity: 0;
  transition: opacity 0.6s 0.9s;
  pointer-events: none;
}
.a-contact__neon.is-lit::after {
  opacity: 1;
}
@keyframes neonOn {
  0% {
    filter: grayscale(1) brightness(0.32);
    opacity: 0.55;
  }
  10% {
    filter: none;
    opacity: 1;
  }
  16% {
    filter: grayscale(1) brightness(0.32);
    opacity: 0.55;
  }
  30% {
    filter: none;
    opacity: 0.8;
  }
  36% {
    filter: grayscale(1) brightness(0.4);
    opacity: 0.6;
  }
  52% {
    filter: none;
    opacity: 1;
  }
  58% {
    filter: grayscale(0.6) brightness(0.6);
    opacity: 0.75;
  }
  70%,
  100% {
    filter: none;
    opacity: 1;
  }
}
@keyframes flicker {
  0%,
  18%,
  22%,
  25%,
  53%,
  57%,
  100% {
    opacity: 1;
  }
  20%,
  24%,
  55% {
    opacity: 0.4;
  }
}
.a-contact__body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  will-change: translate;
}
.a-contact__neon,
.a-legacy__head,
.sleeves {
  will-change: translate;
}
.a-contact__logos {
  position: relative;
  z-index: 2;
  width: max(260px, calc(300 * var(--u)));
  margin-top: calc(-6 * var(--u));
}
.a-contact__text {
  position: relative;
  z-index: 2;
  font-size: max(13px, calc(14 * var(--u)));
  line-height: 1.9;
  color: #bdbdbd;
  margin: calc(56 * var(--u)) 0 calc(24 * var(--u));
}
.a-contact .btn-grey {
  z-index: 2;
}
.a-contact__sticker {
  position: absolute;
  z-index: 2;
  height: auto;
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.5));
}
.a-contact__sticker--pc {
  left: 12%;
  top: 34%;
  width: max(100px, calc(132 * var(--u)));
  rotate: -8deg;
}
.a-contact__sticker--eggy {
  right: 13%;
  top: 50%;
  width: max(90px, calc(112 * var(--u)));
  rotate: 10deg;
}
.a-contact__back {
  position: relative;
  z-index: 2;
  margin-top: calc(60 * var(--u));
  font-size: 13px;
  color: #8a8a8a;
  letter-spacing: 0.1em;
}
.a-contact__back:hover {
  color: var(--red);
}

/* 关于底部：回到顶部 */
.a-foot {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px calc(30 * var(--u)) 26px;
  background: #0a0a0a;
  border-top: 1px solid #262626;
  color: #8a8a8a;
  font-family: var(--f-display);
  font-size: 11px;
  letter-spacing: 0.22em;
}
.a-top {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--light);
  font-family: var(--f-body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.12em;
}
.a-top__en {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: #8a8a8a;
  transition: color 0.3s;
}
.a-top__ico {
  position: relative;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1.5px solid currentColor;
  overflow: hidden;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}
.a-top__ico i {
  position: absolute;
  font-style: normal;
  font-size: 18px;
  line-height: 1;
  transition: transform 0.45s var(--ease);
}
.a-top__ico i + i {
  transform: translateY(160%);
}
.a-top:hover .a-top__ico {
  background: var(--red);
  border-color: var(--red);
  color: var(--black);
}
.a-top:hover .a-top__ico i {
  transform: translateY(-160%);
}
.a-top:hover .a-top__ico i + i {
  transform: translateY(0);
}
.a-top:hover .a-top__en {
  color: var(--red);
}

/* 档案详情 */
.record {
  position: fixed;
  inset: 0;
  z-index: 775;
  visibility: hidden;
  clip-path: inset(100% 0 0 0);
  background: #0a0a0a;
  /* 背景动效允许溢出裁切，但不能把整层滚走而带走关闭按钮。 */
  overflow: clip;
  color: var(--light);
}
.record.is-open {
  visibility: visible;
}
.record__bg {
  position: absolute;
  inset: -3%;
  background: center / cover no-repeat;
  transition: background-image 0.4s;
}
.record__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.5s;
}
.record__video.is-on { opacity: 1; }
.record__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.82),
    rgba(0, 0, 0, 0.25) 60%,
    rgba(0, 0, 0, 0.1)
  );
}
.record__close {
  position: absolute;
  right: max(20px, calc(28 * var(--u)));
  top: var(--overlay-top);
  z-index: 3;
  color: var(--light);
}
.record__body {
  position: absolute;
  left: max(20px, calc(52 * var(--u)));
  right: max(20px, calc(52 * var(--u)));
  bottom: var(--overlay-bottom);
  z-index: 2;
  max-width: 760px;
  max-height: calc(var(--overlay-height) - 64px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.55), 0 0 2px rgba(0, 0, 0, 0.35);
}
.record__year {
  font-family: var(--f-display);
  font-size: max(64px, calc(96 * var(--u)));
  line-height: 1;
}
.record__head {
  font-weight: 900;
  font-size: max(30px, calc(44 * var(--u)));
  line-height: 1.3;
  margin-top: 8px;
}
.record__desc {
  font-size: max(13px, calc(14 * var(--u)));
  line-height: 1.95;
  color: #ececec;
  margin-top: 22px;
}
.record__thumbs {
  display: flex;
  gap: 10px;
  margin-top: clamp(20px, calc(60 * var(--u)), 60px);
  padding: 5px 0;
}
.record__thumbs button {
  /* 与重构稿一致：单行缩略图按可用宽度等比例收缩。 */
  flex-shrink: 1;
  min-width: 0;
  width: max(110px, calc(150 * var(--u)));
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 2px solid transparent;
  opacity: 0.7;
  transition: opacity 0.3s, border-color 0.3s, transform 0.3s;
}
.record__thumbs button img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.record__thumbs button:hover,
.record__thumbs button.is-active {
  opacity: 1;
  border-color: var(--red);
  transform: translateY(-4px);
}
/* 档案/线索卡不展示原生滚动条；窄矮屏的长内容仍可滚轮、触摸和键盘访问。 */
.record__body, .dossier__card {
  scrollbar-width: none;
}
.record__body::-webkit-scrollbar, .dossier__card::-webkit-scrollbar {
  display: none;
}
@media (max-width: 759px) {
  .record__thumbs { flex-wrap: wrap; }
  .record__thumbs button { width: calc((100% - 20px) / 3); }
}
.record__ghost {
  position: absolute;
  right: -2vw;
  bottom: -6vw;
  z-index: 1;
  font-family: var(--f-display);
  font-size: 34vw;
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.16);
  pointer-events: none;
}

/* ---------- Toast / Dev ---------- */
.toast {
  position: fixed;
  left: 50%;
  bottom: 34px;
  z-index: 990;
  translate: -50% 0;
  background: var(--red);
  color: var(--black);
  font-weight: 700;
  font-size: 14px;
  padding: 12px 22px;
  letter-spacing: 0.04em;
  transform: translateY(calc(100% + 80px)) rotate(-2deg);
  visibility: hidden;
  transition: transform 0.5s var(--ease), visibility 0s 0.5s;
  box-shadow: 6px 6px 0 var(--black-2);
  pointer-events: none;
}
.toast.is-show {
  transform: translateY(0) rotate(-2deg);
  visibility: visible;
  transition: transform 0.5s var(--ease);
}
.dev {
  position: fixed;
  left: 50%;
  top: 14px;
  translate: -50% 0;
  z-index: 995;
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--black-2);
  color: var(--light);
  padding: 6px;
  font-size: 12px;
  border: 1px solid #333;
}
.dev span {
  font-family: var(--f-display);
  letter-spacing: 0.14em;
  padding: 0 6px;
  color: #888;
}
.dev a,
.dev button {
  padding: 4px 9px;
  border: 1px solid #333;
  font-size: 12px;
}
.dev a.is-active {
  background: var(--red);
  color: var(--black);
  border-color: var(--red);
}
.dev button:hover,
.dev a:hover {
  border-color: var(--red);
}

/* ---------- 阶段控制 ---------- */
body:not([data-phase='preheat']) [data-phase-only='preheat'] {
  display: none;
}

/* ---------- 较窄视口兜底（Web 端为主） ---------- */
@media (max-width: 1100px) {
  .lot__grid {
    grid-template-columns: 1fr;
  }
  .lot__bottom {
    grid-template-columns: 1fr;
  }
  .pool {
    rotate: 0deg;
  }
  .lot__foot {
    flex-direction: column;
    align-items: flex-start;
  }
  .chance {
    right: 0;
  }
  .theme__text p {
    white-space: normal;
  }
  .partners__text {
    margin-right: 0;
  }
  .nav__phase {
    display: none;
  }
}
/* 手机答题：八个线索分两行展示，避免双栏挤压导致编号和输入区被裁切。 */
@media (max-width: 640px) {
  .submit__card {
    width: 94vw;
    max-height: 90vh;
    grid-template-columns: minmax(0, 1fr);
    overflow-y: auto;
  }
  .submit__card > .x-btn {
    top: 12px;
    right: 12px;
    color: var(--light);
  }
  .submit__left {
    min-width: 0;
    padding: 22px 16px 16px;
  }
  .submit__k { padding-right: 44px; }
  .submit__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
  }
  .submit__legend { flex-wrap: wrap; }
  .submit__right {
    padding: 20px 16px;
    overflow: visible;
  }
  .submit__title { padding-right: 0; }
  .submit__form { margin-top: 16px; }
  .submit__ctx { gap: 14px; }
  .submit__pic { width: 110px; height: 110px; }
  .submit__ctx b { font-size: 36px; flex-wrap: wrap; }
  .submit__ans strong { font-size: 20px; }
  .submit__go { padding: 0 16px; white-space: nowrap; flex-shrink: 0; }
  .submit__prog { padding-top: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* 系统提示弹窗：沿用重构稿视觉。 */
/* 通用 QQ 弹窗位于业务弹窗之上、系统提示之下，避免绑定结果提示被遮挡。 */
.fr-mask.night-bind-qq.show {
  z-index: 825;
  /* 通用弹窗为浅色底，避免表单继承活动深色页面的浅色文字。 */
  color: #333;
}
.night-bind-qq input {
  color: #333;
  caret-color: #333;
}
html.has-cursor .night-bind-qq input {
  /* 输入区域保留文本光标，覆盖页面自定义光标的全局隐藏规则。 */
  cursor: text !important;
}
.dlg {
  font-family: var(--f-body);
  position: fixed;
  inset: 0;
  z-index: 830;
  visibility: hidden;
  display: grid;
  place-items: center;
  padding: 20px;
  transition: visibility 0s 0.35s;
}
.dlg.is-open {
  visibility: visible;
  transition: visibility 0s;
}
.dlg__mask {
  position: absolute;
  inset: 0;
  background: rgba(6, 6, 6, 0.72);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.35s;
}
.dlg.is-open .dlg__mask {
  opacity: 1;
}
.dlg__card {
  /* 长提示和矮屏允许弹窗内部滚动，避免确认按钮落到视口之外。 */
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  overscroll-behavior: contain;
  overflow-wrap: anywhere;
  --c: var(--black);
  position: relative;
  width: min(420px, 100%);
  padding: 40px 34px 30px;
  text-align: center;
  background: #e6e2d8;
  color: var(--black);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
  border-top: 6px solid var(--c);
  opacity: 0;
  transform: translateY(36px) scale(0.92);
  transition: opacity 0.25s, transform 0.45s var(--ease-out);
}
.dlg__card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.dlg.is-open .dlg__card {
  opacity: 1;
  transform: none;
}
.dlg__card > * {
  position: relative;
  z-index: 2;
}
.dlg__card[data-type='success'] {
  --c: #1f9d57;
}
.dlg__card[data-type='fail'] {
  --c: var(--red);
}
.dlg__card[data-type='warn'] {
  --c: #e59a0c;
}
.dlg__card[data-type='info'],
.dlg__card[data-type='confirm'] {
  --c: var(--black);
}
.dlg__x {
  position: absolute;
  right: 18px;
  top: 20px;
  z-index: 3;
  color: var(--black);
}
.dlg__ico {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--c);
  color: #fff;
  display: grid;
  place-items: center;
}
.dlg__ico svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dlg.is-open .dlg__ico {
  animation: dlg-pop 0.6s 0.1s var(--ease-out) both;
}
.dlg.is-open .dlg__card[data-type='fail'] .dlg__ico {
  animation: dlg-pop 0.6s 0.1s var(--ease-out) both, dlg-shake 0.5s 0.4s;
}
@keyframes dlg-pop {
  from {
    transform: scale(0.3);
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
@keyframes dlg-shake {
  0%,
  100% {
    translate: 0;
  }
  25% {
    translate: -6px;
  }
  50% {
    translate: 6px;
  }
  75% {
    translate: -3px;
  }
}
.dlg__k {
  font-family: var(--f-display);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--c);
}
.dlg__title {
  font-weight: 900;
  font-size: 26px;
  letter-spacing: 0.02em;
  margin-top: 6px;
}
.dlg__msg {
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.75;
  color: #3a3a3a;
  white-space: pre-line;
}
.dlg__msg:empty {
  display: none;
}
.dlg__ops {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 26px;
  flex-wrap: wrap;
}
.dlg__ops .btn-line {
  color: var(--black);
  padding: 0 22px;
}
.dlg__ops .btn-line:hover {
  background: var(--black);
  color: var(--light);
}
.dlg__ops .btn-red {
  padding: 0 26px;
}
/* 与通用按钮保持相同的可交互条件，防止浅色背景覆盖后出现浅底浅字。 */
.dlg__ops .btn-red:hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--black);
  color: var(--light);
}

.dlg .btn-red,
.dlg .btn-line {
  font-weight: 900;
}

/* 账户区沿用导航色彩，昵称过长省略，操作保持固定位置。 */
.nav__account {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: calc(12 * var(--night-ui-unit));
  font-size: calc(12 * var(--night-ui-unit));
  font-weight: 700;
}
.nav__username {
  min-width: 0;
  max-width: calc(120 * var(--night-ui-unit));
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.nav__account button {
  flex-shrink: 0;
  color: inherit;
  font: inherit;
  white-space: nowrap;
}
.nav__account button:hover {
  color: var(--red);
}
.nav__account button:focus-visible {
  outline: calc(1 * var(--night-ui-unit)) solid currentColor;
  outline-offset: calc(4 * var(--night-ui-unit));
}
.nav__account button:disabled {
  opacity: 0.5;
  cursor: wait;
}

/* 手机端账户操作独立一行，长昵称省略，避免按钮互相遮挡。 */
@media (max-width: 640px) {
  .nav { align-items: flex-start; gap: 12px; }
  .nav__right { flex: 1; flex-direction: column; align-items: flex-end; gap: 6px; }
  .nav__switch { order: -1; flex-shrink: 0; }
  .nav__account { width: 100%; justify-content: flex-end; gap: 8px; }
}

/* 端内浮层安全区域：不依赖页面缩放，保留工具栏空间。 */
@supports (height: 100dvh) {
  :root { --overlay-height: calc(100dvh - var(--overlay-top) - var(--overlay-bottom)); }
}
.dossier, .submit, .sheet, .rsv, .win, .dlg {
  padding: var(--overlay-top) 6vw var(--overlay-bottom);
}
.sheet__panel, .submit__card, .dossier__card, .rsv__card, .win__card, .dlg__card {
  max-width: 100%;
  min-width: 0;
  max-height: var(--overlay-height);
  min-height: 0;
}
.sheet__panel { width: min(560px, 100%); }
.submit__card { width: min(960px, 100%); }
.submit__card, .dossier__card, .rsv__card, .win__card {
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* 按可见视口收紧高度；端内复用公共头部下沿，并给活动导航和外凸头像留白。 */
.xd-panel {
  --xd-viewport-height: 100vh;
  --xd-safe-top: max(var(--overlay-top), calc(var(--night-site-header-offset, 0px) + 76px));
  bottom: var(--overlay-bottom);
  right: 24px;
  width: min(360px, calc(100vw - 48px));
  height: min(600px, calc(var(--xd-viewport-height) * .74));
  max-height: calc(var(--xd-viewport-height) - var(--xd-safe-top) - var(--overlay-bottom) - 70px);
  min-height: 0;
}
@supports (height: 100dvh) {
  .xd-panel { --xd-viewport-height: 100dvh; }
}
/* Figma 6674:39221：仅更新对话框皮肤，原消息结构及表情切换保持不变。 */
.xd-panel {
  isolation: isolate;
  background: none;
  border: 0;
  border-top: 2px solid #fa373d;
  border-radius: 10px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .55);
}
/* 渐变按设计稿翻转；移除素材自带的反向描边，由面板统一绘制顶部红线。 */
.xd-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/xd-chat-panel.svg') center / 100% 100% no-repeat;
  transform: scaleY(-1);
  -webkit-mask-image: linear-gradient(to bottom, transparent 2px, #000 2px);
  mask-image: linear-gradient(to bottom, transparent 2px, #000 2px);
  pointer-events: none;
}
.xd-panel__ava {
  top: -86px;
  width: 148px;
  height: 148px;
  z-index: -2;
  filter: none;
  pointer-events: none;
}
/* 耳机形象使用完整画布，避免沿用旧头像的裁切放大。 */
.xd-panel__ava .xd-face img {
  left: 0;
  top: 0;
  width: 100%;
}
.xd-panel__sub {
  color: rgba(247, 242, 224, .2);
  padding: 14px 40px 18px;
  font-size: 12px;
}
.xd-panel__x {
  top: 6px;
  right: 6px;
  width: 35px;
  height: 35px;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/xd-chat-close.svg') center / contain no-repeat;
  transition: filter .2s;
}
.xd-panel__x::before, .xd-panel__x::after { content: none; }
.xd-panel__x:hover { filter: brightness(1.3); }
.xd-panel .xd-ctx {
  margin-left: 19px;
  margin-right: 19px;
  background: rgba(250, 55, 61, .05);
  border-color: rgba(250, 55, 61, .25);
}
.xd-panel .xd-feed {
  padding: 10px 19px 6px;
}
.xd-panel .xd-msg__ava {
  width: 46px;
  height: 46px;
  border-radius: 50%;
}
.xd-panel .xd-msg__ava .xd-face__b {
  left: 0;
  top: 0;
  width: 100%;
}
/* 消息头像使用设计稿完整素材，不再叠加旧版眼睛；顶部仍保留动态表情层。 */
.xd-panel .xd-msg__ava .xd-face__e { display: none; }
.xd-panel .xd-input {
  position: relative;
  isolation: isolate;
  margin: 8px 19px 19px;
  padding: 0 10px 0 12px;
  border: 0;
  border-radius: 8px;
  background: none;
}
.xd-panel .xd-input::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/xd-chat-input.svg?v=20261112-reuse') center / 100% 100% no-repeat;
  opacity: .4;
  transition: opacity .2s;
  transform: scaleX(-1);
  pointer-events: none;
}
.xd-panel .xd-input:not(.is-locked):hover::before,
.xd-panel .xd-input:not(.is-locked):focus-within::before {
  opacity: .8;
}
.xd-panel .xd-input.is-locked::before { opacity: .18; }
.xd-panel .xd-input textarea {
  color: #f7f2e0;
}
.xd-panel .xd-input textarea::placeholder { color: rgba(247, 242, 224, .5); }
.xd-panel .xd-input__send {
  width: 35px;
  height: 35px;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/xd-chat-send.svg') center / contain no-repeat;
  filter: none;
  transition: filter .2s, opacity .2s;
}
.xd-panel .xd-input__send svg { display: none; }
.xd-panel .xd-input:not(.is-locked) .xd-input__send:hover:not(:disabled) {
  filter: brightness(1.2);
}
.xd-panel .xd-input__send:disabled {
  opacity: .5;
  filter: none;
}
/* 提示、线索栏及输入栏保持可见，长消息仅在消息区滚动。 */
.xd-feed { min-height: 0; }
@media (min-width: 760px) {
  .dossier.has-xd, body:has(.xd-panel.is-answer-companion.is-open) .submit {
    padding-right: 408px;
    padding-left: 24px;
  }
  .dossier.has-xd .dossier__card,
  body:has(.xd-panel.is-answer-companion.is-open) .submit__card {
    width: min(960px, 100%);
    max-height: var(--overlay-height);
  }
  /* 桌面答题保留左右双栏，整体左移为小蛋留位，不切换成上下布局。 */
  body:has(.xd-panel.is-answer-companion.is-open) .submit__card {
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__left { min-width: 0; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__legend { flex-wrap: wrap; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__ctx { flex-wrap: wrap; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__ctx-t { flex-basis: 120px; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__ctx b { flex-wrap: wrap; }
}
@media (min-width: 760px) and (max-width: 1179px) {
  .xd-panel, html.dossier-open .xd-panel { width: 300px; right: 24px; }
  .dossier.has-xd, body:has(.xd-panel.is-answer-companion.is-open) .submit {
    padding-right: 348px;
  }
  /* 小窗只收紧双栏内部留白，图片自适应；表单空间不足时允许控件换行。 */
  body:has(.xd-panel.is-answer-companion.is-open) .submit__left,
  body:has(.xd-panel.is-answer-companion.is-open) .submit__right { padding: 24px; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__ctx { gap: 12px; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__pic {
    width: min(168px, 40%);
    height: auto;
    aspect-ratio: 1;
  }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__pic.is-result { aspect-ratio: 9/10; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__row { flex-wrap: wrap; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__in { flex-basis: 160px; }
  body:has(.xd-panel.is-answer-companion.is-open) .submit__go { flex-shrink: 0; }
}
@media (max-width: 759px) {
  :root {
    --overlay-top: max(72px, env(safe-area-inset-top, 0px));
    /* 上下排列时，消息区仍需留出可阅读空间；同步给上方答题卡预留高度。 */
    --xd-companion-height: max(280px, calc(var(--overlay-height) * .42));
  }
  .dossier, .submit, .sheet, .rsv, .win, .dlg {
    padding-left: 20px;
    padding-right: 20px;
  }
  .dossier.has-xd, body:has(.xd-panel.is-answer-companion.is-open) .submit {
    padding: var(--overlay-top) 20px calc(var(--overlay-bottom) + var(--xd-companion-height) + 78px);
  }
  .dossier.has-xd .dossier__card,
  body:has(.xd-panel.is-answer-companion.is-open) .submit__card {
    width: 100%;
    max-height: calc(var(--overlay-height) - var(--xd-companion-height) - 78px);
  }
  html.dossier-open .xd-panel, .xd-panel.is-answer-companion {
    right: 20px;
    bottom: var(--overlay-bottom);
    width: calc(100vw - 40px);
    height: var(--xd-companion-height);
  }
  .sheet__head { padding: 22px 24px 16px; }
  .sheet__title { font-size: 28px; padding-right: 36px; }
  .sheet__head .x-btn { top: 20px; right: 20px; }
  .sheet__body { padding-left: 24px; padding-right: 24px; }
}
@media (max-height: 700px) {
  .sheet__head { padding-top: 18px; padding-bottom: 12px; }
  .sheet__title { font-size: 28px; }
  .submit__left, .submit__right { padding: 24px; }
}


/* 关注二维码沿用重构包视觉，PC/H5 共用安全留白。 */
.fol {
  position: fixed;
  inset: 0;
  z-index: 812;
  visibility: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  padding: var(--overlay-top) max(20px, 6vw) var(--overlay-bottom);
}
.fol.is-open {
  visibility: visible;
}
.fol__card {
  position: relative;
  width: 820px;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  max-height: var(--overlay-height);
  overscroll-behavior: contain;
  overflow-y: auto;
  background: #e6e2d8;
  color: var(--black);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
  padding: 34px 38px 32px;
}
.fol__card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('//wegame.gtimg.com/tgp_act/release/wegame/wegame20261101kq7njenvttft/images/tex-paper.jpg')
    0 0 / 520px auto;
  mix-blend-mode: multiply;
  opacity: 0.35;
  pointer-events: none;
}
.fol__card > .x-btn {
  position: absolute;
  right: 16px;
  top: 16px;
  z-index: 3;
  color: var(--black);
}
.fol__head,
.fol__grid {
  position: relative;
  z-index: 2;
}
.fol__k {
  font-family: var(--f-display);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: #6b6b6b;
}
.fol__k b {
  font-weight: 400;
  color: var(--red);
  margin-right: 6px;
}
.fol__title {
  margin-top: 10px;
  padding-right: 50px;
  font-weight: 900;
  font-size: 26px;
  line-height: 1.25;
  letter-spacing: 0.02em;
}
.fol__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 24px;
}
.fol__it {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.fol__qr {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
}
.fol__qr img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.fol__it b {
  margin-top: 14px;
  font-weight: 900;
  font-size: 16px;
}
@media (max-width: 640px) {
  .fol__card {
    padding: 28px 22px 26px;
  }
  .fol__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 22px 18px;
  }
}

[v-cloak] {
  display: none;
}
#vue-container {
  /* 活动字体在容器内声明，避免共享 reset 后加载时覆盖 body 字体。 */
  font-family: var(--f-body);
  display: contents;
}

/* 共享表单 reset 也单独设置了按钮字体，活动操作按钮需明确使用正文粗体。 */
#vue-container :is(.btn-kv, .btn-red, .btn-line, .btn-grey, .btn-agent, .nav__year, .nav__about) {
  font-family: var(--f-body);
  font-weight: 900;
}
.analysis-markdown {
  --mk-color-brand-1: #f08645;
  --mk-color-link-hover: #f08645;
  --mk-color-fill-1: #fff;
  --mk-color-fill-2: #fff;
  --mk-color-text-1: #f7f2e0;
  --mk-color-text-2: #f7f2e0;
  --mk-color-text-3: rgb(247 242 224 / 65%);
  --mk-color-blockquote: rgb(247 242 224 / 50%);
  --mk-color-blockquote-border: rgb(247 242 224 / 20%);
  --mk-color-fill-blockquote: rgb(247 242 224 / 8%);
  --mk-color-table-border: rgb(247 242 224 / 20%);
  --mk-color-table-head: rgb(247 242 224 / 8%);
  color: var(--mk-color-text-2);
  word-break: break-all;
  font-weight: 300;
  white-space: normal;
}

.analysis-markdown h1,
.analysis-markdown h2,
.analysis-markdown h3,
.analysis-markdown h4,
.analysis-markdown h5,
.analysis-markdown h6 {
  font-weight: 700;
  color: var(--mk-color-text-1);
  margin-top: 16px;
}

.analysis-markdown h1,
.analysis-markdown h2 {
  font-size: 24px;
}

.analysis-markdown h3 {
  font-size: 22px;
}

.analysis-markdown h4,
.analysis-markdown h5 {
  font-size: 20px;
}

.analysis-markdown h6 {
  font-size: 16px;
}

.analysis-markdown ul,
.analysis-markdown ol {
  padding-left: 18px;
}

.analysis-markdown ul {
  list-style-type: disc;
}
.analysis-markdown ul ul {
  list-style-type: circle;
}

.analysis-markdown ol {
  list-style-type: decimal;
}

.analysis-markdown ul ul,
.analysis-markdown ul ol,
.analysis-markdown ol ul,
.analysis-markdown ol ol {
  margin-bottom: 0;
}

.analysis-markdown ul li,
.analysis-markdown ol li {
  list-style: inherit;
  margin-bottom: 8px;
}
.analysis-markdown ul li > p,
.analysis-markdown ol li > p {
  margin-bottom: 0;
}

.analysis-markdown p,
.analysis-markdown pre,
.analysis-markdown blockquote,
.analysis-markdown table {
  margin: 0 0 10px;
}

.analysis-markdown blockquote {
  color: var(--mk-color-blockquote);
  border-left: 3px solid var(--mk-color-blockquote-border);
  background: var(--mk-color-fill-blockquote);
  padding: 10px 16px;
  margin: 10px 0;
}

.analysis-markdown a,
.analysis-markdown .md-link {
  color: var(--mk-color-brand-1);
  text-decoration: none;
  cursor: pointer;
}
.analysis-markdown a:hover,
.analysis-markdown .md-link:hover {
  color: var(--mk-color-link-hover);
  text-decoration: underline;
}

.analysis-markdown table {
  width: 100%;
  border-collapse: collapse;
  font-size: 18px;
}

.analysis-markdown th,
.analysis-markdown td {
  border: 1px solid var(--mk-color-table-border);
  padding: 8px 10px;
  text-align: left;
}

.analysis-markdown th {
  font-weight: 700;
  color: var(--mk-color-text-1);
  background: var(--mk-color-table-head);
}

.analysis-markdown img {
  display: block;
  max-width: 50%;
  height: auto;
}

.markdown-content.is-image-clickable img,
.markdown-gallery.is-image-clickable img {
  cursor: zoom-in;
}

.analysis-markdown code {
  background: #000;
  padding: 3px 6px;
  border-radius: 4px;
  font-size: inherit;
  color: var(--mk-color-brand-1);
}

.analysis-markdown pre {
  background: #000;
  padding: 16px;
  border-radius: 8px;
  overflow-x: auto;
}
.analysis-markdown pre code {
  background: transparent;
  padding: 0;
}

.analysis-markdown strong {
  color: var(--mk-color-text-1);
  font-weight: 700;
}

.analysis-markdown.is-muted {
  --mk-color-brand-1: rgba(240, 134, 69, 0.5);
  --mk-color-link-hover: rgba(240, 134, 69, 0.65);
  --mk-color-text-1: rgb(247 242 224 / 55%);
  --mk-color-text-2: rgb(247 242 224 / 45%);
  --mk-color-text-3: rgb(247 242 224 / 40%);
  --mk-color-blockquote: rgb(247 242 224 / 40%);
  --mk-color-blockquote-border: rgb(247 242 224 / 14%);
  --mk-color-fill-blockquote: rgb(247 242 224 / 4%);
  --mk-color-table-border: rgb(247 242 224 / 12%);
  --mk-color-table-head: rgb(247 242 224 / 4%);
}
.analysis-markdown.is-muted img {
  opacity: 0.55;
}
.analysis-markdown.is-muted code,
.analysis-markdown.is-muted pre {
  background: rgba(0, 0, 0, 0.35);
}/* 小蛋面板里的 Markdown 比 weapp 整页窄，压低标题和表格字号。 */
.xd-panel .analysis-markdown {
  font-size: 14px;
  line-height: 1.75;
  color: #f2ede8;
}

.xd-panel .analysis-markdown h1,
.xd-panel .analysis-markdown h2 {
  font-size: 18px;
}

.xd-panel .analysis-markdown h3,
.xd-panel .analysis-markdown h4,
.xd-panel .analysis-markdown h5,
.xd-panel .analysis-markdown h6 {
  font-size: 16px;
}

.xd-panel .analysis-markdown table {
  font-size: 13px;
}

.xd-panel .analysis-markdown img {
  max-width: 100%;
}

.xd-input textarea {
  flex: 1;
  min-width: 0;
  height: 22px;
  max-height: 22px;
  resize: none;
  overflow-x: hidden;
  overflow-y: auto;
  background: transparent;
  border: 0;
  outline: none;
  color: #fff;
  font-size: 14px;
  font-family: inherit;
  line-height: 22px;
  scrollbar-width: thin;
  scrollbar-color: #5a3a1a transparent;
}

.xd-input textarea::-webkit-scrollbar {
  width: 4px;
}

.xd-input textarea::-webkit-scrollbar-track {
  background: transparent;
}

.xd-input textarea::-webkit-scrollbar-thumb {
  background: #5a3a1a;
  border-radius: 4px;
}

.xd-input textarea::placeholder {
  color: #6e655c;
}

.xd-input textarea:disabled::placeholder,
.xd-input.is-locked textarea::placeholder {
  color: #4d463f;
}
/* 与同类宣发页一致：端外、端内独立浏览器使用活动自有导航。 */
.wegame-night-site:not(.night-client-main) #site-header {
  display: none;
}

/* 只调整活动导航，不改公共导航、搜索和下拉菜单的内部布局。 */
.wegame-night-site.night-client-main #nav {
  top: var(--night-site-header-offset, 0px);
  /* 公共头部为 300，活动导航应在其分类下拉之下、活动弹窗之下。 */
  z-index: 299;
}

/* 关于页复用首页头部，整页内容位于活动导航和公共头部之下。 */
.wegame-night-site.night-client-main #about {
  z-index: 298;
}

/* 仅收紧端内 Logo 的顶部留白，保留公共头部避让和右侧账号位置。 */
.wegame-night-site.night-client-main #nav .nav__logo {
  position: relative;
  top: calc(-12 * var(--u));
}

.wegame-night-site.night-client-main #nav.is-hidden {
  transform: translateY(calc(-110% - var(--night-site-header-offset, 0px)));
}

/* 活动仍使用自定义光标；公共搜索框保留文本输入光标。 */
html.has-cursor .wegame-night-site #site-header input {
  cursor: text !important;
}

.binding-mask[data-v-9b8af86a] {
  position: fixed;
  inset: 0;
  z-index: 820;
  display: grid;
  place-items: center;
  padding: var(--overlay-top, 88px) 20px var(--overlay-bottom, 28px);
  background: #0009;
}
.binding-box[data-v-9b8af86a] {
  width: min(600px, 100%);
  min-width: 0;
  max-height: var(--overlay-height, calc(100vh - 116px));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  color: #444;
  border-radius: 4px 4px 32px 4px;
  font: 14px/1.6 Arial, sans-serif;
}
header[data-v-9b8af86a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  background: #f1f1f1;
}
h2[data-v-9b8af86a] {
  margin: 0;
  font-size: 22px;
}
button[data-v-9b8af86a] {
  border: 0;
  cursor: pointer;
}
header button[data-v-9b8af86a] {
  background: transparent;
  color: #888;
  font-size: 28px;
}
form[data-v-9b8af86a],
.binding-confirm[data-v-9b8af86a] {
  padding: 24px;
}
label[data-v-9b8af86a] {
  display: flex;
  align-items: center;
  gap: 8px;
}
input[data-v-9b8af86a] {
  flex: 1;
  min-width: 0;
  height: 36px;
  padding: 0 10px;
  border: 1px solid #bbb;
  background: #fff;
  color: #333;
}
p[data-v-9b8af86a] {
  color: #888;
  font-size: 13px;
}
footer[data-v-9b8af86a] {
  display: flex;
  justify-content: center;
  margin-top: 20px;
  gap: 8px;
}
footer button[data-v-9b8af86a] {
  padding: 8px 24px;
  color: #666;
  background: #eee;
}
footer button[data-v-9b8af86a]:last-child {
  background: #ff6535;
  color: #fff;
}
button[data-v-9b8af86a]:disabled {
  opacity: 0.5;
  cursor: default;
}
@media (max-width: 600px) {
form[data-v-9b8af86a],
  .binding-confirm[data-v-9b8af86a],
  header[data-v-9b8af86a] {
    padding: 16px;
}
h2[data-v-9b8af86a] {
    font-size: 19px;
}
}
