/* ============================================================================
   Project: NOVA · 模块 2-19 V4：🎰 4台太空机械星轮 · 博物馆级 4 皮肤单屏 3D 精雕机柜样式
   对标标杆：🍓《24灯鲜果跑马机》同等级单屏零留白 · 四套真 3D 材质 · 0.1秒看图识价值
   遵循铁律：
   1. 3D 无字精雕底座 + 100% 开源商用 SIL OFL 游戏字体立体字效 + 同材质嵌入式展开框
   2. 四皮肤校准凹槽百分比映射（透出千里江山青绿玉峰、星象黄铜齿轮、皇家金冠、梵高星月）
   3. 滚轮 100% 填满中段凹槽（彻底消灭上下黑绿死留白）+ 镇台大符/中倍主件/基础小符三阶视觉分级
   4. 兼容 Chromium 85+ 安卓 WebView（vh -> var(--app-vh) -> dvh 三层兜底，零 :has / color-mix）
   ============================================================================ */

/* Full-screen zero-scroll stage integration inside #view-arcade */
body.nova-in-slot-stage header.topbar,
body.nova-in-slot-stage #appNav,
body.nova-in-slot-stage #mhBarArcade,
body.nova-in-slot-stage #ahMainLobbyHeader {
  display: none !important;
}

body.nova-in-slot-stage .shell {
  gap: 0 !important;
  padding: max(4px, env(safe-area-inset-top, 0px)) 4px max(6px, env(safe-area-inset-bottom, 0px)) !important;
}

.ah-shell.in-stage-slot {
  height: calc(100vh - 10px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  height: calc(var(--app-vh, 100vh) - 10px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  height: calc(100dvh - 10px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  max-height: calc(100vh - 10px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  max-height: calc(var(--app-vh, 100vh) - 10px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  max-height: calc(100dvh - 10px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 16px !important;
  background: transparent !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

.ah-shell.in-stage-slot #ahGlCanvas {
  opacity: 0.12 !important;
}

.ah-shell.in-stage-slot .ah-layer,
.ah-shell.in-stage-slot #ahGameStage,
.ah-shell.in-stage-slot #ahSlotStageWrap {
  flex: 1 1 0% !important;
  min-height: 0 !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  overflow: hidden !important;
}

/* ==================== Root Cabinet Frame (1:1 Proportion Lock with Fruit Machine) ==================== */
#nsStageRoot.ns-cabinet-root {
  --ns-u: 1px;
  width: min(100%, calc(392 * var(--ns-u)));
  max-width: min(100%, calc(392 * var(--ns-u)));
  height: 100%;
  max-height: calc(740 * var(--ns-u));
  min-height: 0;
  min-width: 0;
  border-radius: calc(18 * var(--ns-u));
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  box-sizing: border-box;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.92);
}

#nsStageRoot.ns-cabinet-root *,
#nsStageRoot.ns-cabinet-root *::before,
#nsStageRoot.ns-cabinet-root *::after {
  box-sizing: border-box;
}

#nsStageRoot.skin-obsidian {
  font-family: 'NovaMonument', 'NovaMonumentI18n', 'NovaNumeral', 'STZhongsong', 'Noto Serif SC', Georgia, serif;
  background: radial-gradient(circle at 50% 30%, #1a202c 0%, #0d1017 55%, #06080c 100%);
  border: 2.5px solid #c59b27;
}
#nsStageRoot.skin-qianli {
  font-family: 'NovaJadeCallig', 'NovaJadeCalligI18n', 'NovaNumeral', 'STXinwei', 'STKaiti', Georgia, serif;
  background: radial-gradient(circle at 50% 30%, #133a36 0%, #092222 55%, #041214 100%);
  border: 2.5px solid #d4af37;
}
#nsStageRoot.skin-royal {
  font-family: 'NovaMonument', 'NovaMonumentI18n', 'NovaNumeral', 'STZhongsong', 'Noto Serif SC', Georgia, serif;
  background: radial-gradient(circle at 50% 30%, #450a14 0%, #240409 58%, #0f0204 100%);
  border: 2.5px solid #f59e0b;
}
#nsStageRoot.skin-starry {
  font-family: 'NovaMonument', 'NovaMonumentI18n', 'NovaNumeral', 'STZhongsong', 'Noto Serif SC', Georgia, serif;
  background: radial-gradient(circle at 50% 30%, #172e6e 0%, #0b173d 58%, #050a1c 100%);
  border: 2.5px solid #eab308;
}

/* ==================== Row 1: Unified Single-Line Arcade Top Strip (1:1 Fruit Machine) ==================== */
#nsStageRoot .ns-top-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(4 * var(--ns-u)) calc(6 * var(--ns-u));
  gap: calc(4 * var(--ns-u));
  min-height: calc(34 * var(--ns-u));
  flex-shrink: 0;
  z-index: 25;
  background: linear-gradient(180deg, rgba(16, 20, 30, 0.96), rgba(8, 10, 16, 0.98));
  border-bottom: 1.5px solid rgba(197, 155, 39, 0.55);
}
#nsStageRoot.skin-qianli .ns-top-strip {
  background: linear-gradient(180deg, #0d3834 0%, #072221 100%);
  border-bottom: 1.5px solid #d4af37;
}
#nsStageRoot.skin-royal .ns-top-strip {
  background: linear-gradient(180deg, #3a0812 0%, #1d0308 100%);
  border-bottom: 1.5px solid #f59e0b;
}
#nsStageRoot.skin-starry .ns-top-strip {
  background: linear-gradient(180deg, #132a63 0%, #091536 100%);
  border-bottom: 1.5px solid #fbbf24;
}

#nsStageRoot .ns-top-btn {
  padding: calc(3 * var(--ns-u)) calc(7 * var(--ns-u));
  border-radius: calc(7 * var(--ns-u));
  font-size: calc(10.5 * var(--ns-u));
  font-weight: 900;
  color: #fef3c7;
  background: linear-gradient(180deg, #334155 0%, #0f172a 100%);
  border: 1.2px solid #c59b27;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 2px 5px rgba(0, 0, 0, 0.65);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1.2;
}
#nsStageRoot.skin-qianli .ns-top-btn {
  background: linear-gradient(180deg, #fffdf7 0%, #e6dac0 100%);
  color: #103029;
  border-color: #c59b27;
  box-shadow: inset 0 1px 0 #ffffff, 0 2px 4px rgba(0, 0, 0, 0.35);
}
#nsStageRoot.skin-royal .ns-top-btn {
  background: linear-gradient(180deg, #6b1020 0%, #31050d 100%);
  border-color: #fbbf24;
  color: #fef08a;
}
#nsStageRoot.skin-starry .ns-top-btn {
  background: linear-gradient(180deg, #1e4294 0%, #0c1d4a 100%);
  border-color: #fde047;
  color: #fef9c3;
}
#nsStageRoot .ns-top-btn.is-off {
  opacity: 0.65;
}
#nsStageRoot .ns-top-btn:active {
  transform: scale(0.95);
}

#nsStageRoot .ns-wallet-pill {
  display: inline-flex;
  align-items: center;
  gap: calc(4 * var(--ns-u));
  padding: calc(2 * var(--ns-u)) calc(4 * var(--ns-u)) calc(2 * var(--ns-u)) calc(6 * var(--ns-u));
  border-radius: 999px;
  background: rgba(4, 7, 15, 0.88);
  border: 1.2px solid rgba(212, 175, 55, 0.72);
  box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.85);
  min-width: 0;
  flex: 0 1 auto;
  cursor: pointer;
}
#nsStageRoot.skin-qianli .ns-wallet-pill {
  background: linear-gradient(180deg, #ffffff 0%, #ebe0c7 100%);
  border-color: #b8860b;
  box-shadow: inset 0 1px 0 #ffffff;
}
#nsStageRoot .ns-wallet-coin {
  width: calc(14 * var(--ns-u));
  height: calc(14 * var(--ns-u));
  object-fit: contain;
  flex-shrink: 0;
}
#nsStageRoot .ns-wallet-val {
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(11 * var(--ns-u));
  font-weight: 900;
  color: #fde68a;
  white-space: nowrap;
  letter-spacing: -0.2px;
}
#nsStageRoot.skin-qianli .ns-wallet-val {
  color: #8f1414;
}
#nsStageRoot .ns-wallet-plus {
  width: calc(16 * var(--ns-u));
  height: calc(16 * var(--ns-u));
  border-radius: 50%;
  background: linear-gradient(180deg, #fde047 0%, #ca8a04 100%);
  color: #1c1917;
  font-size: calc(12 * var(--ns-u));
  font-weight: 900;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#nsStageRoot .ns-right-tools {
  display: inline-flex;
  align-items: center;
  gap: calc(3.5 * var(--ns-u));
  flex-shrink: 0;
}

/* ==================== Row 1.5: Slim 4-Machine Switcher Bar ==================== */
#nsStageRoot .ns-machine-tabs {
  display: flex;
  align-items: center;
  gap: calc(3 * var(--ns-u));
  padding: calc(3 * var(--ns-u)) calc(5 * var(--ns-u));
  background: rgba(8, 12, 22, 0.94);
  border-bottom: 1px solid rgba(212, 175, 55, 0.38);
  flex-shrink: 0;
  z-index: 24;
}
#nsStageRoot.skin-qianli .ns-machine-tabs {
  background: linear-gradient(180deg, #0b2f2c 0%, #07201f 100%);
  border-bottom-color: rgba(212, 175, 55, 0.55);
}
#nsStageRoot.skin-royal .ns-machine-tabs {
  background: linear-gradient(180deg, #2b050d 0%, #180207 100%);
}
#nsStageRoot.skin-starry .ns-machine-tabs {
  background: linear-gradient(180deg, #0e204f 0%, #081332 100%);
}
#nsStageRoot .ns-mtab {
  flex: 1 1 0%;
  min-width: 0;
  padding: calc(3.5 * var(--ns-u)) calc(3 * var(--ns-u));
  border-radius: calc(6 * var(--ns-u));
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #cbd5e1;
  font-size: calc(10 * var(--ns-u));
  font-weight: 900;
  white-space: nowrap;
  text-align: center;
  cursor: pointer;
  line-height: 1.15;
}
#nsStageRoot.skin-qianli .ns-mtab {
  background: rgba(255, 253, 247, 0.12);
  border-color: rgba(212, 175, 55, 0.32);
  color: #e2e8f0;
}
#nsStageRoot .ns-mtab.active {
  background: linear-gradient(180deg, #fde047 0%, #d97706 100%);
  border-color: #fef9c3;
  color: #1c1917;
  box-shadow: 0 1px 6px rgba(251, 191, 36, 0.48);
}
#nsStageRoot .ns-mtab.ns-miracle-btn {
  flex: 0 0 auto;
  padding: calc(3.5 * var(--ns-u)) calc(6 * var(--ns-u));
  font-family: 'NovaNumeral', var(--mono);
  background: rgba(245, 158, 11, 0.16);
  border-color: rgba(251, 191, 36, 0.52);
  color: #fde68a;
}
#nsStageRoot .ns-top-btn.is-on {
  background: linear-gradient(180deg, #fde047 0%, #d97706 100%) !important;
  color: #1c1917 !important;
  border-color: #ffffff !important;
}

/* ==================== Row 2: Bespoke 3D Sculpted Museum Cabinet Stage ==================== */
#nsStageRoot .ns-cabinet-stage {
  position: relative;
  flex: 1 1 0%;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
}

/* Calibrated per-skin 3D cabinet backdrop & 4 recessed interior slots */
#nsStageRoot.skin-obsidian .ns-cabinet-stage {
  background-image: url("../assets/ui/cabinet_v4/stage_obsidian.jpg");
  background-size: 114% 100%;
  --ns-up-top: 3.6%;
  --ns-up-left: 10.6%;
  --ns-up-w: 78.8%;
  --ns-up-h: 13.8%;
  --ns-mid-top: 21.2%;
  --ns-mid-left: 10.4%;
  --ns-mid-w: 79.2%;
  --ns-mid-h: 48.8%;
  --ns-bez-top: 70.6%;
  --ns-bez-left: 10.4%;
  --ns-bez-w: 79.2%;
  --ns-bez-h: 5.0%;
  --ns-bot-top: 76.2%;
  --ns-bot-left: 10.4%;
  --ns-bot-w: 79.2%;
  --ns-bot-h: 19.2%;
}

#nsStageRoot.skin-qianli .ns-cabinet-stage {
  background-image: url("../assets/ui/cabinet_v4/stage_qianli.jpg");
  background-size: 102% 100%;
  /* Top 0%..15.8% keeps the 3D 青绿山水 jade mountains & golden clouds 100% uncovered! */
  --ns-up-top: 16.4%;
  --ns-up-left: 10.2%;
  --ns-up-w: 79.6%;
  --ns-up-h: 12.2%;
  --ns-mid-top: 31.4%;
  --ns-mid-left: 10.4%;
  --ns-mid-w: 79.2%;
  --ns-mid-h: 40.8%;
  --ns-bez-top: 72.7%;
  --ns-bez-left: 9.8%;
  --ns-bez-w: 80.4%;
  --ns-bez-h: 5.0%;
  --ns-bot-top: 78.2%;
  --ns-bot-left: 8.6%;
  --ns-bot-w: 82.8%;
  --ns-bot-h: 18.2%;
}

#nsStageRoot.skin-royal .ns-cabinet-stage {
  background-image: url("../assets/ui/cabinet_v4/stage_royal.jpg");
  background-size: 104% 100%;
  /* Top 0%..8.0% keeps the 3D baroque gold & ruby crown 100% uncovered! */
  --ns-up-top: 8.2%;
  --ns-up-left: 11.4%;
  --ns-up-w: 77.2%;
  --ns-up-h: 12.4%;
  --ns-mid-top: 24.0%;
  --ns-mid-left: 11.6%;
  --ns-mid-w: 76.8%;
  --ns-mid-h: 49.6%;
  --ns-bez-top: 74.1%;
  --ns-bez-left: 11.2%;
  --ns-bez-w: 77.6%;
  --ns-bez-h: 4.9%;
  --ns-bot-top: 79.4%;
  --ns-bot-left: 10.6%;
  --ns-bot-w: 78.8%;
  --ns-bot-h: 16.8%;
}

#nsStageRoot.skin-starry .ns-cabinet-stage {
  background-image: url("../assets/ui/cabinet_v4/stage_starry.jpg");
  background-size: 104% 100%;
  /* Top 0%..8.4% keeps Van Gogh's swirling cobalt starlight & crescent moons 100% uncovered! */
  --ns-up-top: 8.6%;
  --ns-up-left: 11.6%;
  --ns-up-w: 76.8%;
  --ns-up-h: 12.0%;
  --ns-mid-top: 24.2%;
  --ns-mid-left: 11.8%;
  --ns-mid-w: 76.4%;
  --ns-mid-h: 49.6%;
  --ns-bez-top: 74.3%;
  --ns-bez-left: 11.4%;
  --ns-bez-w: 77.2%;
  --ns-bez-h: 4.9%;
  --ns-bot-top: 79.6%;
  --ns-bot-left: 10.8%;
  --ns-bot-w: 78.4%;
  --ns-bot-h: 16.6%;
}

/* ==================== Zone A: Upper Sculpted Recess (5-Jackpot Strip + Machine Apparatus) ==================== */
#nsStageRoot .ns-upper-recess {
  position: absolute;
  top: var(--ns-up-top);
  left: var(--ns-up-left);
  width: var(--ns-up-w);
  height: var(--ns-up-h);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: calc(3 * var(--ns-u));
  z-index: 6;
}

#nsStageRoot .ns-jp-bar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: calc(2.5 * var(--ns-u));
  flex: 0 0 auto;
}

#nsStageRoot .ns-jp-item {
  padding: calc(2 * var(--ns-u)) calc(1.5 * var(--ns-u));
  border-radius: calc(6 * var(--ns-u));
  background: linear-gradient(180deg, rgba(16, 22, 36, 0.94), rgba(7, 10, 18, 0.98));
  border: 1.2px solid rgba(212, 175, 55, 0.62);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 2px 5px rgba(0, 0, 0, 0.65);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.14s ease, border-color 0.16s ease, box-shadow 0.16s ease, opacity 0.16s ease;
}
#nsStageRoot .ns-jp-item:active {
  transform: scale(0.96);
}
#nsStageRoot .ns-jp-item.is-inspecting {
  opacity: 1 !important;
  border-style: solid !important;
  border-color: #fde047 !important;
  box-shadow: 0 0 0 1.5px rgba(253, 224, 71, 0.85), 0 4px 12px rgba(245, 158, 11, 0.52) !important;
  transform: translateY(calc(-1 * var(--ns-u)));
}
#nsStageRoot.skin-qianli .ns-jp-item.is-inspecting {
  border-color: #991b1b !important;
  box-shadow: 0 0 0 1.5px rgba(153, 27, 27, 0.72), 0 4px 12px rgba(184, 134, 11, 0.42) !important;
}
#nsStageRoot.skin-qianli .ns-jp-item {
  background: linear-gradient(180deg, #fffdf7 0%, #e9dec5 100%);
  border-color: #b8860b;
  box-shadow: inset 0 1px 0 #ffffff, 0 2px 4px rgba(16, 48, 41, 0.25);
}
#nsStageRoot.skin-royal .ns-jp-item {
  background: linear-gradient(180deg, #520a18 0%, #240309 100%);
  border-color: #f59e0b;
}
#nsStageRoot.skin-starry .ns-jp-item {
  background: linear-gradient(180deg, #193882 0%, #09173b 100%);
  border-color: #fbbf24;
}
#nsStageRoot .ns-jp-item.locked {
  opacity: 0.64;
  border-style: dashed;
}

#nsStageRoot .ns-jp-item .jp-k {
  font-size: calc(8.5 * var(--ns-u));
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
  color: #fde68a;
}
#nsStageRoot.skin-qianli .ns-jp-item .jp-k {
  color: #103029;
}
#nsStageRoot .ns-jp-item .jp-v {
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(8.2 * var(--ns-u));
  font-weight: 900;
  line-height: 1.15;
  color: #ffffff;
  white-space: nowrap;
  letter-spacing: -0.35px;
  margin-top: calc(1 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-jp-item .jp-v {
  color: #991b1b;
}

/* Click-to-Inspect 5-Tier Jackpot Floating Tooltip (Non-blocking, 4-Skin Bespoke) */
#nsStageRoot img.coin-icon,
#nsRulesModal img.coin-icon {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  max-width: 18px;
  max-height: 18px;
  object-fit: contain;
  vertical-align: -0.18em;
  flex-shrink: 0;
  pointer-events: none;
}

#nsStageRoot .ns-jp-tip {
  --jp-notch-x: 50%;
  position: absolute;
  top: calc(var(--ns-up-top) + 30 * var(--ns-u));
  left: var(--ns-up-left);
  width: var(--ns-up-w);
  padding: calc(8 * var(--ns-u)) calc(10 * var(--ns-u));
  border-radius: calc(11 * var(--ns-u));
  background: linear-gradient(180deg, rgba(12, 18, 34, 0.98), rgba(6, 10, 20, 0.99));
  border: 1.6px solid #fbbf24;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.15);
  color: #fef3c7;
  z-index: 68;
  display: flex;
  flex-direction: column;
  gap: calc(5.5 * var(--ns-u));
}
#nsStageRoot .ns-jp-tip[hidden] {
  display: none !important;
}
#nsStageRoot .ns-jp-tip::before {
  content: "";
  position: absolute;
  top: calc(-6 * var(--ns-u));
  left: var(--jp-notch-x);
  width: calc(10 * var(--ns-u));
  height: calc(10 * var(--ns-u));
  background: inherit;
  border-top: 1.6px solid #fbbf24;
  border-left: 1.6px solid #fbbf24;
  transform: translateX(-50%) rotate(45deg);
  pointer-events: none;
}
#nsStageRoot.skin-qianli .ns-jp-tip {
  background: linear-gradient(180deg, #fffdf8 0%, #ede1c6 100%);
  border-color: #b8860b;
  box-shadow: 0 12px 28px rgba(16, 48, 41, 0.36), inset 0 1px 0 #ffffff;
  color: #103029;
}
#nsStageRoot.skin-qianli .ns-jp-tip::before {
  background: #fffdf8;
  border-color: #b8860b;
}
#nsStageRoot.skin-royal .ns-jp-tip {
  background: linear-gradient(180deg, #4c0916 0%, #220309 100%);
  border-color: #fbbf24;
  color: #fef3c7;
}
#nsStageRoot.skin-royal .ns-jp-tip::before {
  background: #4c0916;
}
#nsStageRoot.skin-starry .ns-jp-tip {
  background: linear-gradient(180deg, #17347a 0%, #091638 100%);
  border-color: #fde047;
  color: #fef9c3;
}
#nsStageRoot.skin-starry .ns-jp-tip::before {
  background: #17347a;
  border-color: #fde047;
}
#nsStageRoot .ns-jp-tip .njt-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(6 * var(--ns-u));
}
#nsStageRoot .ns-jp-tip .njt-title {
  font-size: calc(11.6 * var(--ns-u));
  font-weight: 900;
  color: #fde047;
  line-height: 1.2;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-title {
  color: #8f1414;
}
#nsStageRoot .ns-jp-tip .njt-head-right {
  display: inline-flex;
  align-items: center;
  gap: calc(5 * var(--ns-u));
  flex-shrink: 0;
}
#nsStageRoot .ns-jp-tip .njt-badge {
  padding: calc(1.5 * var(--ns-u)) calc(6 * var(--ns-u));
  border-radius: 999px;
  font-size: calc(9.2 * var(--ns-u));
  font-weight: 900;
  line-height: 1.2;
}
#nsStageRoot .ns-jp-tip .njt-badge.is-open {
  background: rgba(16, 185, 129, 0.22);
  border: 1px solid rgba(52, 211, 153, 0.65);
  color: #6ee7b7;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-badge.is-open {
  background: rgba(16, 122, 87, 0.14);
  border-color: rgba(16, 122, 87, 0.55);
  color: #065f46;
}
#nsStageRoot .ns-jp-tip .njt-badge.is-locked {
  background: rgba(245, 158, 11, 0.22);
  border: 1px solid rgba(251, 191, 36, 0.68);
  color: #fde68a;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-badge.is-locked {
  background: rgba(153, 27, 27, 0.12);
  border-color: rgba(153, 27, 27, 0.5);
  color: #991b1b;
}
#nsStageRoot .ns-jp-tip .njt-close {
  width: calc(21 * var(--ns-u));
  height: calc(21 * var(--ns-u));
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(212, 175, 55, 0.55);
  color: inherit;
  font-size: calc(10.5 * var(--ns-u));
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-close {
  background: rgba(16, 48, 41, 0.08);
  border-color: rgba(184, 134, 11, 0.6);
}
#nsStageRoot .ns-jp-tip .njt-pool-row {
  padding: calc(5 * var(--ns-u)) calc(8 * var(--ns-u));
  border-radius: calc(7 * var(--ns-u));
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(251, 191, 36, 0.35);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(6 * var(--ns-u));
  flex-wrap: wrap;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-pool-row {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(184, 134, 11, 0.48);
}
#nsStageRoot .ns-jp-tip .njt-pool-lbl {
  font-size: calc(9.8 * var(--ns-u));
  opacity: 0.92;
}
#nsStageRoot .ns-jp-tip .njt-pool-val {
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(13 * var(--ns-u));
  font-weight: 900;
  color: #fde047;
  display: inline-flex;
  align-items: center;
  gap: calc(3 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-pool-val {
  color: #991b1b;
}
#nsStageRoot .ns-jp-tip .njt-desc {
  font-size: calc(10.2 * var(--ns-u));
  line-height: 1.44;
  display: flex;
  flex-direction: column;
  gap: calc(2.5 * var(--ns-u));
}
#nsStageRoot .ns-jp-tip .njt-unlock-btn {
  margin-top: calc(1 * var(--ns-u));
  width: 100%;
  padding: calc(6 * var(--ns-u)) calc(8 * var(--ns-u));
  border-radius: calc(8 * var(--ns-u));
  background: linear-gradient(180deg, #fde047 0%, #d97706 100%);
  border: 1.2px solid #fffbeb;
  box-shadow: 0 3px 10px rgba(217, 119, 6, 0.45);
  color: #1c1917;
  font-size: calc(10.5 * var(--ns-u));
  font-weight: 900;
  cursor: pointer;
  text-align: center;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-unlock-btn {
  background: linear-gradient(180deg, #b91c1c 0%, #7f1d1d 100%);
  border-color: #fde68a;
  color: #fffbeb;
}
#nsStageRoot .ns-jp-tip .njt-unlock-btn:active {
  transform: scale(0.98);
}
#nsStageRoot .ns-jp-tip .njt-lock-note {
  padding: calc(4.5 * var(--ns-u)) calc(7.5 * var(--ns-u));
  border-radius: calc(7 * var(--ns-u));
  background: rgba(255, 255, 255, 0.06);
  border: 1px dashed rgba(251, 191, 36, 0.45);
  font-size: calc(9.8 * var(--ns-u));
  line-height: 1.38;
  text-align: center;
}
#nsStageRoot.skin-qianli .ns-jp-tip .njt-lock-note {
  background: rgba(16, 48, 41, 0.06);
  border-color: rgba(153, 27, 27, 0.42);
  color: #103029;
}

/* Integrated Machine Signature Apparatus Bar */
#nsStageRoot .ns-apparatus-zone {
  flex: 1 1 0%;
  min-height: 0;
  padding: calc(2.5 * var(--ns-u)) calc(7 * var(--ns-u));
  border-radius: calc(8 * var(--ns-u));
  background: linear-gradient(90deg, rgba(12, 18, 32, 0.92), rgba(24, 34, 58, 0.88), rgba(12, 18, 32, 0.92));
  border: 1.2px solid rgba(212, 175, 55, 0.58);
  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.72);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(6 * var(--ns-u));
  overflow: hidden;
}
#nsStageRoot.skin-qianli .ns-apparatus-zone {
  background: linear-gradient(90deg, #f8f2e2 0%, #fffdf8 50%, #ebe0c7 100%);
  border-color: #b8860b;
  box-shadow: inset 0 1px 0 #ffffff, 0 2px 5px rgba(16, 48, 41, 0.22);
}
#nsStageRoot.skin-royal .ns-apparatus-zone {
  background: linear-gradient(90deg, #3b0610 0%, #5c0d1c 50%, #2d040b 100%);
  border-color: #f59e0b;
}
#nsStageRoot.skin-starry .ns-apparatus-zone {
  background: linear-gradient(90deg, #0d2052 0%, #1d4094 50%, #0a1840 100%);
  border-color: #fbbf24;
}

#nsStageRoot .ns-app-brand {
  display: inline-flex;
  align-items: center;
  gap: calc(5 * var(--ns-u));
  min-width: 0;
  flex-shrink: 0;
}
#nsStageRoot .ns-app-emblem {
  width: calc(28 * var(--ns-u));
  height: calc(28 * var(--ns-u));
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(255, 197, 61, 0.55));
}
#nsStageRoot .ns-app-title {
  font-size: calc(11.5 * var(--ns-u));
  font-weight: 900;
  color: #fef3c7;
  white-space: nowrap;
  line-height: 1.15;
}
#nsStageRoot.skin-qianli .ns-app-title {
  color: #103029;
}

#nsStageRoot .ns-mult-meter {
  display: inline-flex;
  align-items: center;
  gap: calc(2.5 * var(--ns-u));
  flex-wrap: nowrap;
  min-width: 0;
}
#nsStageRoot .ns-mult-step {
  padding: calc(1.5 * var(--ns-u)) calc(4.5 * var(--ns-u));
  border-radius: calc(5 * var(--ns-u));
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(9.2 * var(--ns-u));
  font-weight: 900;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #cbd5e1;
  white-space: nowrap;
}
#nsStageRoot.skin-qianli .ns-mult-step {
  background: rgba(16, 48, 41, 0.09);
  border-color: rgba(184, 134, 11, 0.48);
  color: #16443b;
}
#nsStageRoot .ns-mult-step.on {
  background: linear-gradient(180deg, #fde047 0%, #d97706 100%);
  border-color: #ffffff;
  color: #1c1917;
  box-shadow: 0 0 8px rgba(251, 191, 36, 0.72);
}

#nsStageRoot .ns-cannon-barrels {
  display: inline-flex;
  align-items: center;
  gap: calc(4 * var(--ns-u));
}
#nsStageRoot .ns-cannon-tube {
  width: calc(26 * var(--ns-u));
  height: calc(26 * var(--ns-u));
  border-radius: 50%;
  background: radial-gradient(circle at 38% 35%, #334155 0%, #0f172a 75%);
  border: 1.5px solid rgba(212, 175, 55, 0.55);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(9.8 * var(--ns-u));
  font-weight: 900;
  color: #cbd5e1;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
#nsStageRoot.skin-qianli .ns-cannon-tube {
  background: radial-gradient(circle at 38% 35%, #ffffff 0%, #dfd2b5 80%);
  color: #103029;
  border-color: #b8860b;
}
#nsStageRoot .ns-cannon-tube.active {
  transform: scale(1.12);
  background: radial-gradient(circle at 50% 40%, #fde047 0%, #dc2626 70%, #7f1d1d 100%);
  border-color: #ffffff;
  color: #ffffff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
  box-shadow: 0 0 12px rgba(251, 191, 36, 0.85);
}

/* ==================== Zone B: Middle Sculpted Recess (ZERO-VOID Full-Bleed Reels + 5x5 Matrix) ==================== */
#nsStageRoot .ns-mid-recess {
  position: absolute;
  top: var(--ns-mid-top);
  left: var(--ns-mid-left);
  width: var(--ns-mid-w);
  height: var(--ns-mid-h);
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--ns-u));
  z-index: 8;
}

/* Matrix-only upper 5x5 Bingo board inside .ns-mid-recess */
#nsStageRoot .ns-matrix-board-host {
  display: none;
  flex: 0 0 46%;
  min-height: 0;
  padding: calc(3 * var(--ns-u));
  border-radius: calc(9 * var(--ns-u));
  background: rgba(6, 12, 24, 0.92);
  border: 1.5px solid rgba(212, 175, 55, 0.65);
  box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.78);
}
#nsStageRoot.is-matrix .ns-matrix-board-host {
  display: flex;
  flex-direction: column;
}
#nsStageRoot.skin-qianli .ns-matrix-board-host {
  background: linear-gradient(180deg, #f3ead4 0%, #e4d6b7 100%);
  border-color: #b8860b;
  box-shadow: inset 0 1px 4px rgba(16, 48, 41, 0.22);
}

#nsStageRoot .ns-bingo-grid {
  flex: 1 1 0%;
  min-height: 0;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: calc(2.5 * var(--ns-u));
}

#nsStageRoot .ns-bingo-cell {
  border-radius: calc(5 * var(--ns-u));
  background: rgba(15, 23, 42, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(2 * var(--ns-u));
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(8.2 * var(--ns-u));
  font-weight: 900;
  color: rgba(203, 213, 225, 0.65);
  overflow: hidden;
  padding: 0 calc(2 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-bingo-cell {
  background: linear-gradient(180deg, #ffffff 0%, #eee4ce 100%);
  border-color: rgba(184, 134, 11, 0.45);
  color: rgba(16, 48, 41, 0.55);
}
#nsStageRoot .ns-bingo-cell.charged {
  background: radial-gradient(circle, rgba(16, 185, 129, 0.36), rgba(6, 46, 36, 0.96));
  border: 1.2px solid #34d399;
  color: #ecfdf5;
  box-shadow: 0 0 8px rgba(16, 185, 129, 0.4);
}
#nsStageRoot.skin-qianli .ns-bingo-cell.charged {
  background: linear-gradient(180deg, #d1fae5 0%, #6ee7b7 100%);
  border-color: #059669;
  color: #064e3b;
}
#nsStageRoot .ns-bingo-cell.center-core {
  background: radial-gradient(circle, rgba(251, 191, 36, 0.45), rgba(68, 36, 6, 0.96));
  border: 1.5px solid #fde047;
  color: #fef08a;
  box-shadow: 0 0 10px rgba(251, 191, 36, 0.55);
}
#nsStageRoot.skin-qianli .ns-bingo-cell.center-core {
  background: linear-gradient(180deg, #fef08a 0%, #f59e0b 100%);
  border-color: #991b1b;
  color: #7f1d1d;
}
#nsStageRoot .ns-bingo-cell .bc-ico {
  width: calc(13 * var(--ns-u));
  height: calc(13 * var(--ns-u));
  object-fit: contain;
  flex-shrink: 0;
}
#nsStageRoot .ns-bingo-cell .bc-val {
  font-size: calc(8 * var(--ns-u));
  white-space: nowrap;
  letter-spacing: -0.3px;
}

/* Full-Bleed 3D Reel Frame (100% height of .ns-mid-recess on 4x5 machines, 52% on 5x5 Matrix) */
#nsStageRoot .ns-reel-frame {
  position: relative;
  flex: 1 1 0%;
  min-height: 0;
  width: 100%;
  height: 100%;
  padding: calc(3.5 * var(--ns-u));
  border-radius: calc(10 * var(--ns-u));
  background: linear-gradient(180deg, #070b14 0%, #101829 50%, #070b14 100%);
  border: 1.8px solid #d4af37;
  box-shadow: inset 0 3px 14px rgba(0, 0, 0, 0.88), 0 4px 14px rgba(0, 0, 0, 0.65);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#nsStageRoot.skin-qianli .ns-reel-frame {
  background: linear-gradient(180deg, #dfd2b5 0%, #f7f1e1 50%, #d8c9a8 100%);
  border-color: #b8860b;
  box-shadow: inset 0 2px 10px rgba(16, 48, 41, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);
}
#nsStageRoot.skin-royal .ns-reel-frame {
  background: linear-gradient(180deg, #1d0308 0%, #3b0711 50%, #1a0206 100%);
  border-color: #fbbf24;
}
#nsStageRoot.skin-starry .ns-reel-frame {
  background: linear-gradient(180deg, #07112e 0%, #122966 50%, #060f29 100%);
  border-color: #fde047;
}

#nsStageRoot .ns-reel-grid {
  position: relative;
  flex: 1 1 0%;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
  border-radius: calc(7 * var(--ns-u));
  overflow: hidden;
}

#nsStageRoot .ns-reel-col {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0;
  background: linear-gradient(180deg, #0b101d 0%, #182238 50%, #0b101d 100%);
  border: none;
  border-right: 1px solid rgba(212, 175, 55, 0.28);
  box-shadow: inset 0 5px 10px rgba(0, 0, 0, 0.65), inset 0 -5px 10px rgba(0, 0, 0, 0.65);
}
#nsStageRoot .ns-reel-col:last-child {
  border-right: none;
}
#nsStageRoot.skin-qianli .ns-reel-col {
  background: linear-gradient(180deg, #e7dbc1 0%, #fffdf9 50%, #e1d3b5 100%);
  border-right-color: rgba(184, 134, 11, 0.45);
  box-shadow: inset 0 3px 8px rgba(16, 48, 41, 0.12), inset 0 -3px 8px rgba(16, 48, 41, 0.12);
}
#nsStageRoot.skin-royal .ns-reel-col {
  background: linear-gradient(180deg, #24040a 0%, #4c0a17 50%, #24040a 100%);
  border-right-color: rgba(251, 191, 36, 0.32);
}
#nsStageRoot.skin-starry .ns-reel-col {
  background: linear-gradient(180deg, #081538 0%, #193885 50%, #081538 100%);
  border-right-color: rgba(253, 224, 71, 0.32);
}

/* Instant Tap-to-Inspect Floating Symbol Odds Bubble */
#nsStageRoot .ns-sym-tip {
  position: absolute;
  left: 50%;
  bottom: calc(8 * var(--ns-u));
  transform: translateX(-50%);
  width: 94%;
  padding: calc(7 * var(--ns-u)) calc(9 * var(--ns-u));
  border-radius: calc(10 * var(--ns-u));
  background: rgba(8, 13, 26, 0.96);
  border: 1.5px solid #fde047;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.9);
  color: #fef3c7;
  z-index: 30;
  cursor: pointer;
}
#nsStageRoot .ns-sym-tip[hidden] {
  display: none !important;
}
#nsStageRoot.skin-qianli .ns-sym-tip {
  background: linear-gradient(180deg, #fffdf9 0%, #eee2c8 100%);
  border-color: #991b1b;
  color: #103029;
}
#nsStageRoot .ns-sym-tip .nst-row1 {
  display: flex;
  align-items: center;
  gap: calc(7 * var(--ns-u));
}
#nsStageRoot .ns-sym-tip .nst-row1 img {
  width: calc(34 * var(--ns-u));
  height: calc(34 * var(--ns-u));
  object-fit: contain;
  flex-shrink: 0;
}
#nsStageRoot .ns-sym-tip .nst-meta {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  font-size: calc(10 * var(--ns-u));
}
#nsStageRoot .ns-sym-tip .nst-meta b {
  font-size: calc(11.5 * var(--ns-u));
  color: #fde047;
}
#nsStageRoot.skin-qianli .ns-sym-tip .nst-meta b {
  color: #991b1b;
}
#nsStageRoot .ns-sym-tip .nst-pill {
  display: inline-block;
  padding: 0 5px;
  border-radius: 4px;
  background: rgba(251, 191, 36, 0.22);
  font-size: calc(9.5 * var(--ns-u));
}
#nsStageRoot .ns-sym-tip .nst-odds {
  margin-top: calc(5 * var(--ns-u));
  padding-top: calc(4 * var(--ns-u));
  border-top: 1px solid rgba(212, 175, 55, 0.3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(4 * var(--ns-u));
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(10 * var(--ns-u));
}

#nsStageRoot .ns-reel-col.col-spinning {
  border-color: #fde047;
}
#nsStageRoot .ns-reel-col.col-locked {
  border-color: #fbbf24;
  box-shadow: inset 0 0 10px rgba(251, 191, 36, 0.25);
}
#nsStageRoot .ns-reel-col.col-tension {
  border-color: #fde047;
  box-shadow: inset 0 0 18px rgba(251, 191, 36, 0.55), 0 0 14px rgba(245, 158, 11, 0.75);
}

#nsStageRoot .ns-reel-strip {
  display: flex;
  flex-direction: column;
  width: 100%;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}
#nsStageRoot .ns-reel-strip.strip-fast img.ns-sym-img {
  filter: blur(0.8px) brightness(1.08);
  transform: scaleY(1.08);
}

/* ==================== 3-Tier Instant Visual Value Hierarchy (Like Fruit Machine Big vs Small) ==================== */
#nsStageRoot .ns-cell {
  position: relative;
  width: 100%;
  height: var(--ns-cell-h, 64px);
  min-height: var(--ns-cell-h, 64px);
  max-height: var(--ns-cell-h, 64px);
  padding: calc(2 * var(--ns-u)) calc(1.5 * var(--ns-u));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid rgba(212, 175, 55, 0.18);
  cursor: pointer;
  overflow: hidden;
  transition: transform 0.16s ease, opacity 0.18s ease, filter 0.18s ease;
}

/* Skin Tile Base Materials */
#nsStageRoot.skin-obsidian .ns-cell {
  background: radial-gradient(circle at 50% 42%, #242e42 0%, #131924 68%, #0a0e15 100%);
}
#nsStageRoot.skin-qianli .ns-cell {
  background: radial-gradient(circle at 50% 40%, #ffffff 0%, #f7f0df 66%, #e4d7bc 100%);
  border-bottom-color: rgba(184, 134, 11, 0.34);
}
#nsStageRoot.skin-royal .ns-cell {
  background: radial-gradient(circle at 50% 42%, #590c1b 0%, #2d050d 68%, #170206 100%);
}
#nsStageRoot.skin-starry .ns-cell {
  background: radial-gradient(circle at 50% 42%, #1e4296 0%, #0e2256 68%, #06112e 100%);
}

/* Tier 1: HERO SYMBOLS (WILD / SCATTER / ORB — 80% giant 3D icon + gilded halo frame + bold relief pill) */
#nsStageRoot .ns-cell[data-val-tier="hero"] {
  background: radial-gradient(circle at 50% 42%, rgba(251, 191, 36, 0.34) 0%, rgba(120, 53, 15, 0.42) 58%, rgba(15, 23, 42, 0.92) 100%);
  box-shadow: inset 0 0 0 1.4px rgba(253, 224, 71, 0.78), inset 0 0 12px rgba(251, 191, 36, 0.28);
}
#nsStageRoot.skin-qianli .ns-cell[data-val-tier="hero"] {
  background: radial-gradient(circle at 50% 42%, #fffbeb 0%, #fde68a 58%, #e7c975 100%);
  box-shadow: inset 0 0 0 1.5px #b45309, inset 0 1px 0 #ffffff;
}
#nsStageRoot .ns-cell[data-val-tier="hero"] img.ns-sym-img {
  width: 78%;
  height: 70%;
  object-fit: contain;
  filter: drop-shadow(0 3px 7px rgba(0, 0, 0, 0.62)) drop-shadow(0 0 6px rgba(253, 224, 71, 0.45));
}

/* Tier 2: HIGH / CORE SYMBOLS (pay5 >= 3.0x — 66% icon + warm gold/jade rim + clear multiplier badge) */
#nsStageRoot .ns-cell[data-val-tier="high"] {
  box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.34);
}
#nsStageRoot.skin-qianli .ns-cell[data-val-tier="high"] {
  background: radial-gradient(circle at 50% 40%, #ffffff 0%, #f5ebd4 65%, #dfd0b0 100%);
  box-shadow: inset 0 0 0 1px rgba(184, 134, 11, 0.48);
}
#nsStageRoot .ns-cell[data-val-tier="high"] img.ns-sym-img {
  width: 65%;
  height: 60%;
  object-fit: contain;
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.55));
}

/* Tier 3: LOW / SMALL SYMBOLS (pay5 < 3.0x — visibly compact 46% icon + muted badge, instant glance distinction!) */
#nsStageRoot .ns-cell[data-val-tier="low"] img.ns-sym-img {
  width: 46%;
  height: 45%;
  object-fit: contain;
  opacity: 0.92;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.45));
}

/* Carved Value Pill on Every Tile (Zero cryptic-only text: shows exact role/multiplier at a glance!) */
#nsStageRoot .ns-sym-val-tag {
  margin-top: calc(1 * var(--ns-u));
  padding: 0 calc(4 * var(--ns-u));
  border-radius: calc(4 * var(--ns-u));
  font-family: 'NovaNumeral', 'NovaMonument', sans-serif;
  font-size: calc(8.4 * var(--ns-u));
  font-weight: 900;
  line-height: 1.22;
  white-space: nowrap;
  letter-spacing: -0.15px;
}

#nsStageRoot .ns-cell[data-val-tier="hero"] .ns-sym-val-tag {
  background: linear-gradient(180deg, #fde047 0%, #d97706 100%);
  color: #1c1917;
  border: 1px solid #fef9c3;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
  font-size: calc(8.8 * var(--ns-u));
}
#nsStageRoot .ns-cell[data-role="scatter"] .ns-sym-val-tag {
  background: linear-gradient(180deg, #34d399 0%, #059669 100%);
  color: #ffffff;
  border-color: #a7f3d0;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}
#nsStageRoot .ns-cell[data-role="orb"] .ns-sym-val-tag {
  background: linear-gradient(180deg, #fb923c 0%, #dc2626 100%);
  color: #ffffff;
  border-color: #fed7aa;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}

#nsStageRoot .ns-cell[data-val-tier="high"] .ns-sym-val-tag {
  background: rgba(0, 0, 0, 0.56);
  border: 1px solid rgba(251, 191, 36, 0.55);
  color: #fde68a;
}
#nsStageRoot.skin-qianli .ns-cell[data-val-tier="high"] .ns-sym-val-tag {
  background: rgba(153, 27, 27, 0.9);
  border-color: #fde047;
  color: #fffbeb;
}

#nsStageRoot .ns-cell[data-val-tier="low"] .ns-sym-val-tag {
  background: transparent;
  color: rgba(203, 213, 225, 0.76);
  font-size: calc(7.8 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-cell[data-val-tier="low"] .ns-sym-val-tag {
  color: #2c5e53;
  font-weight: 800;
}

/* Win Spotlight & Dimming */
#nsStageRoot .ns-cell.win-hit {
  background: radial-gradient(circle, rgba(253, 224, 71, 0.5) 0%, rgba(180, 83, 9, 0.65) 100%) !important;
  box-shadow: inset 0 0 0 2px #fde047, 0 0 14px rgba(251, 191, 36, 0.75) !important;
  z-index: 4;
}
#nsStageRoot .ns-cell.win-hit img.ns-sym-img {
  transform: scale(1.12);
}
#nsStageRoot .ns-reel-grid.has-win-dim .ns-cell:not(.win-hit) {
  opacity: 0.38;
  filter: brightness(0.55) saturate(0.75);
}

#nsStageRoot .ns-cell-badge {
  position: absolute;
  top: calc(2 * var(--ns-u));
  right: calc(2 * var(--ns-u));
  padding: 1px calc(4 * var(--ns-u));
  border-radius: 999px;
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(8.2 * var(--ns-u));
  font-weight: 900;
  background: linear-gradient(135deg, #fde047, #ea580c);
  color: #0f172a;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.75);
  z-index: 6;
  white-space: nowrap;
}

#nsStageRoot .ns-payline-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 7;
  overflow: visible;
}

#nsStageRoot .ns-cell.cascade-explode {
  animation: nsCabCascadeExplode 0.32s ease-in forwards;
}
@keyframes nsCabCascadeExplode {
  0% { transform: scale(1.06); opacity: 1; }
  50% { transform: scale(1.22); opacity: 0.85; filter: brightness(2); }
  100% { transform: scale(0.1); opacity: 0; }
}
#nsStageRoot .ns-cell.cascade-drop {
  animation: nsCabCascadeDrop 0.34s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes nsCabCascadeDrop {
  0% { transform: translateY(-60px); opacity: 0.3; }
  100% { transform: translateY(0); opacity: 1; }
}

/* ==================== Zone C: Bezel Groove Inlaid Plaque & 3-State "为什么中奖" Drawer ==================== */
#nsStageRoot .ns-bezel-strip {
  position: absolute;
  top: var(--ns-bez-top);
  left: var(--ns-bez-left);
  width: var(--ns-bez-w);
  height: var(--ns-bez-h);
  padding: 0 calc(7 * var(--ns-u));
  border-radius: calc(7 * var(--ns-u));
  background: linear-gradient(90deg, rgba(10, 15, 28, 0.95), rgba(24, 34, 58, 0.94), rgba(10, 15, 28, 0.95));
  border: 1.2px solid rgba(212, 175, 55, 0.68);
  box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.8), 0 2px 6px rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(5 * var(--ns-u));
  z-index: 18;
}
#nsStageRoot.skin-qianli .ns-bezel-strip {
  background: linear-gradient(90deg, #f5ecd8 0%, #fffdf8 50%, #ebdfc4 100%);
  border-color: #b8860b;
  box-shadow: inset 0 1px 0 #ffffff, 0 2px 5px rgba(16, 48, 41, 0.25);
}
#nsStageRoot.skin-royal .ns-bezel-strip {
  background: linear-gradient(90deg, #32050d 0%, #560b19 50%, #2a040b 100%);
  border-color: #fbbf24;
}
#nsStageRoot.skin-starry .ns-bezel-strip {
  background: linear-gradient(90deg, #0b1c48 0%, #193a8a 50%, #09173c 100%);
  border-color: #fde047;
}
#nsStageRoot .ns-bezel-strip.win-mode {
  border-color: #fde047;
  box-shadow: 0 0 12px rgba(251, 191, 36, 0.45), inset 0 0 8px rgba(251, 191, 36, 0.2);
}

#nsStageRoot .ns-plaque-main {
  flex: 1 1 0%;
  min-width: 0;
  font-size: calc(10 * var(--ns-u));
  font-weight: 800;
  color: #fef3c7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#nsStageRoot.skin-qianli .ns-plaque-main {
  color: #103029;
}
#nsStageRoot .ns-bezel-strip.win-mode .ns-plaque-main {
  color: #fde047;
}
#nsStageRoot.skin-qianli .ns-bezel-strip.win-mode .ns-plaque-main {
  color: #991b1b;
}

#nsStageRoot .ns-trial-pill {
  padding: calc(1.5 * var(--ns-u)) calc(6 * var(--ns-u));
  border-radius: 999px;
  background: linear-gradient(180deg, #10b981 0%, #047857 100%);
  border: 1px solid #a7f3d0;
  color: #ffffff;
  font-size: calc(9.2 * var(--ns-u));
  font-weight: 900;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

#nsStageRoot .ns-explain-toggle-btn {
  padding: calc(1.5 * var(--ns-u)) calc(6 * var(--ns-u));
  border-radius: calc(5 * var(--ns-u));
  background: rgba(251, 191, 36, 0.18);
  border: 1px solid rgba(251, 191, 36, 0.65);
  color: #fde68a;
  font-size: calc(9.2 * var(--ns-u));
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}
#nsStageRoot.skin-qianli .ns-explain-toggle-btn {
  background: rgba(184, 134, 11, 0.16);
  border-color: #991b1b;
  color: #7f1d1d;
}

/* Non-blocking Embedded 3D Plaque Drawer (Never blocks bottom console or spin button!) */
#nsStageRoot .ns-explain-drawer {
  position: absolute;
  bottom: calc(100% - var(--ns-bez-top) + 5px);
  left: var(--ns-bez-left);
  width: var(--ns-bez-w);
  padding: calc(8 * var(--ns-u)) calc(10 * var(--ns-u));
  border-radius: calc(11 * var(--ns-u));
  background: linear-gradient(180deg, rgba(16, 24, 45, 0.98) 0%, rgba(8, 12, 24, 0.99) 100%);
  border: 1.8px solid #d4af37;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.88), inset 0 1px 0 rgba(255, 236, 179, 0.35);
  color: #fef3c7;
  z-index: 22;
  display: none;
  flex-direction: column;
  gap: calc(5 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-explain-drawer {
  background: linear-gradient(180deg, #fffdf9 0%, #efe4cc 100%);
  border-color: #b8860b;
  box-shadow: 0 10px 24px rgba(16, 48, 41, 0.42), inset 0 1px 0 #ffffff;
  color: #103029;
}
#nsStageRoot.skin-royal .ns-explain-drawer {
  background: linear-gradient(180deg, #4a0815 0%, #240309 100%);
  border-color: #fbbf24;
  color: #fef3c7;
}
#nsStageRoot.skin-starry .ns-explain-drawer {
  background: linear-gradient(180deg, #132c6e 0%, #09163a 100%);
  border-color: #fde047;
  color: #fef9c3;
}
#nsStageRoot .ns-explain-drawer.open {
  display: flex;
}
#nsStageRoot .ns-exp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(6 * var(--ns-u));
  font-size: calc(10.5 * var(--ns-u));
  font-weight: 900;
}
#nsStageRoot .ns-exp-head button {
  padding: calc(2 * var(--ns-u)) calc(6 * var(--ns-u));
  border-radius: calc(5 * var(--ns-u));
  background: rgba(251, 191, 36, 0.18);
  border: 1px solid rgba(251, 191, 36, 0.55);
  color: inherit;
  font-size: calc(9.2 * var(--ns-u));
  font-weight: 800;
  cursor: pointer;
}
#nsStageRoot.skin-qianli .ns-exp-head button {
  background: rgba(16, 48, 41, 0.08);
  border-color: rgba(184, 134, 11, 0.55);
  color: #7f1d1d;
}
#nsStageRoot .ns-exp-body {
  font-size: calc(10 * var(--ns-u));
  line-height: 1.45;
  background: rgba(0, 0, 0, 0.34);
  border: 1px solid rgba(212, 175, 55, 0.25);
  padding: calc(6 * var(--ns-u)) calc(8 * var(--ns-u));
  border-radius: calc(7 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-exp-body {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(184, 134, 11, 0.35);
  color: #103029;
}
#nsStageRoot .ns-exp-body img.coin-icon,
#nsRulesModal img.coin-icon {
  width: 14px;
  height: 14px;
  max-width: 14px;
  max-height: 14px;
  object-fit: contain;
  display: inline-block;
  vertical-align: -2px;
}

/* ==================== Zone D: Bottom Sculpted Console & Bespoke 3D Jewel/Jade/Gold Buttons ==================== */
#nsStageRoot .ns-bot-recess {
  position: absolute;
  top: var(--ns-bot-top);
  left: var(--ns-bot-left);
  width: var(--ns-bot-w);
  height: var(--ns-bot-h);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: calc(3 * var(--ns-u));
  z-index: 16;
}

/* Dual Carved LED Readout Strip (Stake & Win, Full 2-Decimal Display) */
#nsStageRoot .ns-console-led-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(6 * var(--ns-u));
  flex: 0 0 auto;
}
#nsStageRoot .ns-led-box {
  padding: calc(2.5 * var(--ns-u)) calc(8 * var(--ns-u));
  border-radius: calc(8 * var(--ns-u));
  background: rgba(6, 10, 19, 0.92);
  border: 1.2px solid rgba(212, 175, 55, 0.58);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.85);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(4 * var(--ns-u));
  min-width: 0;
}
#nsStageRoot.skin-qianli .ns-led-box {
  background: linear-gradient(180deg, #fffdf9 0%, #eae0c8 100%);
  border-color: #b8860b;
  box-shadow: inset 0 1px 0 #ffffff, 0 1px 4px rgba(16, 48, 41, 0.2);
}
#nsStageRoot .ns-led-lbl {
  font-size: calc(9.2 * var(--ns-u));
  font-weight: 800;
  color: #94a3b8;
  white-space: nowrap;
}
#nsStageRoot.skin-qianli .ns-led-lbl {
  color: #265348;
}
#nsStageRoot .ns-led-val {
  font-family: 'NovaNumeral', var(--mono);
  font-size: calc(11.5 * var(--ns-u));
  font-weight: 900;
  color: #fde047;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: calc(2.5 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-led-val {
  color: #991b1b;
}
#nsStageRoot .ns-led-val.win {
  color: #34d399;
}
#nsStageRoot.skin-qianli .ns-led-val.win {
  color: #0f766e;
}
#nsStageRoot .ns-led-val img.coin-icon {
  width: calc(12 * var(--ns-u));
  height: calc(12 * var(--ns-u));
  object-fit: contain;
}

/* Tactile 3D Button Deck */
#nsStageRoot .ns-tactile-deck {
  position: relative;
  flex: 1 1 0%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(6 * var(--ns-u));
}

/* Bespoke 3D Orb Buttons (Turbo / - / + / Auto) */
#nsStageRoot .ns-orb-btn {
  position: relative;
  width: calc(42 * var(--ns-u));
  height: calc(42 * var(--ns-u));
  border-radius: 50%;
  background: url("../assets/ui/slot_cabinet/orb_obsidian.png") center / 100% 100% no-repeat;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fef3c7;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.95);
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.72));
  transition: transform 0.12s ease, filter 0.15s ease;
  flex-shrink: 0;
}
#nsStageRoot.skin-qianli .ns-orb-btn {
  background-image: url("../assets/ui/slot_cabinet/orb_qianli.png");
  color: #103029;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
  filter: drop-shadow(0 3px 6px rgba(16, 48, 41, 0.42));
}
#nsStageRoot .ns-orb-btn:active {
  transform: scale(0.92);
}
#nsStageRoot .ns-orb-btn.on {
  filter: drop-shadow(0 0 10px #fbbf24) brightness(1.14);
}
#nsStageRoot .ns-orb-sym {
  font-family: 'NovaNumeral', 'NovaMonument', serif;
  font-size: calc(16 * var(--ns-u));
  font-weight: 900;
  line-height: 1;
}
#nsStageRoot .ns-orb-sub {
  font-size: calc(8 * var(--ns-u));
  font-weight: 900;
  line-height: 1.05;
  margin-top: calc(1 * var(--ns-u));
}

/* Bespoke 3D Central Spin Medallion (4 Distinct Sculpted Skins!) */
#nsStageRoot .ns-spin-medallion {
  position: relative;
  width: calc(68 * var(--ns-u));
  height: calc(68 * var(--ns-u));
  border-radius: 50%;
  background: url("../assets/ui/slot_cabinet/spin_obsidian.png") center / 100% 100% no-repeat;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.82)) drop-shadow(0 0 10px rgba(251, 191, 36, 0.35));
  transition: transform 0.14s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.18s ease;
  z-index: 5;
}
#nsStageRoot.skin-qianli .ns-spin-medallion {
  background-image: url("../assets/ui/slot_cabinet/spin_qianli.png");
  filter: drop-shadow(0 5px 12px rgba(16, 48, 41, 0.55)) drop-shadow(0 0 10px rgba(220, 38, 38, 0.35));
}
#nsStageRoot.skin-royal .ns-spin-medallion {
  background-image: url("../assets/ui/slot_cabinet/spin_royal.png");
}
#nsStageRoot.skin-starry .ns-spin-medallion {
  background-image: url("../assets/ui/slot_cabinet/spin_starry.png");
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.85)) drop-shadow(0 0 12px rgba(59, 130, 246, 0.45));
}
#nsStageRoot .ns-spin-medallion:active {
  transform: scale(0.92);
}
#nsStageRoot .ns-spin-medallion.is-spinning {
  filter: drop-shadow(0 0 18px rgba(253, 224, 71, 0.82)) brightness(1.08);
}

#nsStageRoot .ns-spin-main-txt {
  font-size: calc(13 * var(--ns-u));
  font-weight: 900;
  line-height: 1.05;
  color: #fffbeb;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.95), 0 0 8px rgba(0, 0, 0, 0.75);
  letter-spacing: 0.5px;
}
#nsStageRoot .ns-spin-sub-txt {
  font-size: calc(7.8 * var(--ns-u));
  font-weight: 800;
  line-height: 1.05;
  margin-top: calc(1.5 * var(--ns-u));
  color: #fde68a;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.95);
}

/* Custom Stake 3D Plaque Button */
#nsStageRoot .ns-custom-plaque-btn {
  height: calc(36 * var(--ns-u));
  padding: 0 calc(8.5 * var(--ns-u));
  border-radius: calc(9 * var(--ns-u));
  background: linear-gradient(180deg, #3a2b12 0%, #171209 100%);
  border: 1.4px solid #d4af37;
  color: #fef3c7;
  font-size: calc(9.8 * var(--ns-u));
  font-weight: 900;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 236, 179, 0.42), 0 3px 8px rgba(0, 0, 0, 0.68);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}
#nsStageRoot.skin-qianli .ns-custom-plaque-btn {
  background: linear-gradient(180deg, #991b1b 0%, #630d0d 100%);
  border-color: #fde047;
  color: #fffbeb;
}
#nsStageRoot.skin-royal .ns-custom-plaque-btn {
  background: linear-gradient(180deg, #7f1d1d 0%, #3f0712 100%);
  border-color: #fbbf24;
  color: #fef3c7;
}
#nsStageRoot.skin-starry .ns-custom-plaque-btn {
  background: linear-gradient(180deg, #1d4ed8 0%, #0f2563 100%);
  border-color: #fde047;
  color: #fef9c3;
}

/* Auto-Spin Popup Menu (Root-level z-index: 85 so #nsMarqueeBar NEVER slices across it!) */
#nsStageRoot .ns-auto-menu {
  position: absolute;
  bottom: calc(78 * var(--ns-u));
  right: calc(10 * var(--ns-u));
  background: rgba(8, 13, 28, 0.98);
  border: 1.8px solid #fbbf24;
  border-radius: calc(12 * var(--ns-u));
  padding: calc(8 * var(--ns-u));
  display: none;
  flex-direction: column;
  gap: calc(5 * var(--ns-u));
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.92);
  color: #fef3c7;
  z-index: 85;
  min-width: calc(148 * var(--ns-u));
}
#nsStageRoot.skin-qianli .ns-auto-menu {
  background: linear-gradient(180deg, #fffdf8 0%, #e9dec5 100%);
  border-color: #b8860b;
  color: #103029;
}
#nsStageRoot .ns-auto-menu.open {
  display: flex;
}
#nsStageRoot .ns-auto-opt {
  padding: calc(5.5 * var(--ns-u)) calc(10 * var(--ns-u));
  border-radius: calc(7 * var(--ns-u));
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.35);
  color: #fef3c7;
  font-size: calc(11 * var(--ns-u));
  font-weight: 800;
  cursor: pointer;
  text-align: center;
}
#nsStageRoot.skin-qianli .ns-auto-opt {
  background: rgba(16, 48, 41, 0.08);
  border-color: rgba(184, 134, 11, 0.5);
  color: #103029;
}

/* ==================== Rules & Humanities Modal (Fruit-Machine Grade) ==================== */
#nsRulesModal {
  position: fixed;
  inset: 0;
  background: rgba(3, 6, 16, 0.84);
  z-index: 9600;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 14px;
}
#nsRulesModal.show {
  display: flex;
}
#nsRulesModal .ns-rules-card {
  width: 100%;
  max-width: 440px;
  max-height: 86vh;
  max-height: calc(var(--app-vh, 100vh) * 0.86);
  max-height: 86dvh;
  border-radius: 16px;
  background: linear-gradient(180deg, #121a2f 0%, #070b16 100%);
  border: 2px solid #d4af37;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.92);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: #f8fafc;
}
body[data-nova-skin="qianli"] #nsRulesModal .ns-rules-card {
  background: linear-gradient(180deg, #fffdf8 0%, #eae0c8 100%);
  border-color: #b8860b;
  color: #103029;
}
#nsRulesModal .ns-rules-head {
  padding: 11px 14px;
  border-bottom: 1px solid rgba(212, 175, 55, 0.4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
#nsRulesModal .ns-rules-head h3 {
  font-size: 14.5px;
  font-weight: 900;
  color: #fde68a;
  margin: 0;
}
body[data-nova-skin="qianli"] #nsRulesModal .ns-rules-head h3 {
  color: #8f1414;
}
#nsRulesModal .ns-rules-close {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(212, 175, 55, 0.5);
  color: inherit;
  font-weight: 900;
  cursor: pointer;
}
#nsRulesModal .ns-rules-body {
  padding: 12px 14px 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 12px;
  line-height: 1.5;
}
#nsRulesModal .ns-rules-sec {
  padding: 9px 11px;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(212, 175, 55, 0.28);
}
body[data-nova-skin="qianli"] #nsRulesModal .ns-rules-sec {
  background: rgba(255, 255, 255, 0.72);
  border-color: rgba(184, 134, 11, 0.45);
}
#nsRulesModal .ns-rules-sec h4 {
  margin: 0 0 6px;
  font-size: 12.5px;
  color: #fbbf24;
}
body[data-nova-skin="qianli"] #nsRulesModal .ns-rules-sec h4 {
  color: #8f1414;
}
#nsRulesModal .ns-m-pills {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
#nsRulesModal .ns-m-pill {
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(212, 175, 55, 0.38);
  color: inherit;
  font-size: 11.5px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
}
#nsRulesModal .ns-m-pill.active {
  background: linear-gradient(135deg, #fde047, #d97706);
  color: #1c1917;
  border-color: #ffffff;
}
#nsRulesModal .ns-m-pill img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}
#nsRulesModal .ns-audio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
#nsRulesModal .ns-audio-btn {
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(212, 175, 55, 0.35);
  color: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
#nsRulesModal .ns-audio-btn.is-active {
  background: linear-gradient(135deg, #fbbf24, #d97706);
  color: #1c1917;
  border-color: #ffffff;
}
#nsRulesModal .ns-plaque-bio {
  padding: 9px 11px;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(16, 82, 70, 0.35), rgba(8, 28, 26, 0.92));
  border: 1px solid #d4af37;
  color: #ecfdf5;
  font-size: 11.5px;
}
#nsRulesModal .ns-plaque-bio h4 {
  margin: 0 0 4px;
  color: #fde68a;
  font-size: 12px;
}

#nsRulesModal .ns-easy-3step {
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.14), rgba(15, 23, 42, 0.72));
  border-color: rgba(251, 191, 36, 0.65);
}
body[data-nova-skin="qianli"] #nsRulesModal .ns-easy-3step {
  background: linear-gradient(135deg, #fffbeb, #f4ead2);
  border-color: #b45309;
}
#nsRulesModal .ns-step-line {
  font-size: 13px;
  line-height: 1.52;
  margin-top: 4px;
}
#nsRulesModal .ns-rules-more {
  border-radius: 11px;
  border: 1px solid rgba(212, 175, 55, 0.35);
  background: rgba(255, 255, 255, 0.04);
  padding: 8px 11px;
}
#nsRulesModal .ns-rules-more summary {
  cursor: pointer;
  font-weight: 900;
  font-size: 12px;
  color: #fde68a;
}
body[data-nova-skin="qianli"] #nsRulesModal .ns-rules-more summary {
  color: #8f1414;
}
#nsRulesModal .ns-rules-more-inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

/* ==================== V5 Mobile Full-Bleed Zero-Border-Nesting Architecture (<= 520px) ==================== */
@media (max-width: 520px) {
  body.nova-in-slot-stage .shell {
    padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px) !important;
  }
  .ah-shell.in-stage-slot {
    height: calc(100vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
    height: calc(var(--app-vh, 100vh) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
    height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) !important;
    max-height: none !important;
    border-radius: 0 !important;
  }
  #nsStageRoot.ns-cabinet-root {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
  }

  /* Zoom out side pillars & stretch 5-column reel matrix across 96% of phone width! */
  #nsStageRoot.skin-obsidian .ns-cabinet-stage,
  #nsStageRoot.skin-royal .ns-cabinet-stage,
  #nsStageRoot.skin-starry .ns-cabinet-stage {
    background-size: 128% 106%;
    background-position: center top;
    --ns-up-top: 4.4%;
    --ns-up-left: 2.0%;
    --ns-up-w: 96.0%;
    --ns-up-h: 13.0%;
    --ns-mid-top: 18.0%;
    --ns-mid-left: 2.0%;
    --ns-mid-w: 96.0%;
    --ns-mid-h: 55.6%;
    --ns-bez-top: 74.2%;
    --ns-bez-left: 2.0%;
    --ns-bez-w: 96.0%;
    --ns-bez-h: 5.5%;
    --ns-bot-top: 80.3%;
    --ns-bot-left: 2.0%;
    --ns-bot-w: 96.0%;
    --ns-bot-h: 18.9%;
  }

  #nsStageRoot.skin-qianli .ns-cabinet-stage {
    background-size: 124% 104%;
    background-position: center top;
    --ns-up-top: 9.2%;
    --ns-up-left: 2.0%;
    --ns-up-w: 96.0%;
    --ns-up-h: 12.8%;
    --ns-mid-top: 22.6%;
    --ns-mid-left: 2.0%;
    --ns-mid-w: 96.0%;
    --ns-mid-h: 51.0%;
    --ns-bez-top: 74.2%;
    --ns-bez-left: 2.0%;
    --ns-bez-w: 96.0%;
    --ns-bez-h: 5.5%;
    --ns-bot-top: 80.3%;
    --ns-bot-left: 2.0%;
    --ns-bot-w: 96.0%;
    --ns-bot-h: 18.9%;
  }

  /* Remove redundant nested outer box borders inside upper & bottom zones on phone */
  #nsStageRoot .ns-apparatus-zone {
    border-width: 1px;
    padding: calc(2 * var(--ns-u)) calc(6 * var(--ns-u));
  }
  #nsStageRoot .ns-reel-frame {
    padding: calc(2 * var(--ns-u));
    border-width: 1.5px;
  }
  #nsStageRoot .ns-cell[data-val-tier="hero"] img.ns-sym-img {
    width: 82%;
    height: 72%;
  }
  #nsStageRoot .ns-cell[data-val-tier="high"] img.ns-sym-img {
    width: 72%;
    height: 64%;
  }
  #nsStageRoot .ns-cell[data-val-tier="low"] img.ns-sym-img {
    width: 54%;
    height: 50%;
  }
  #nsStageRoot .ns-sym-val-tag {
    font-size: calc(9.4 * var(--ns-u));
    padding: 0 calc(4.5 * var(--ns-u));
  }
  #nsStageRoot .ns-jp-item .jp-k {
    font-size: calc(9.2 * var(--ns-u));
  }
  #nsStageRoot .ns-jp-item .jp-v {
    font-size: calc(9.2 * var(--ns-u));
  }
  #nsStageRoot .ns-plaque-main {
    font-size: calc(10.8 * var(--ns-u));
  }
  #nsStageRoot .ns-led-lbl {
    font-size: calc(10 * var(--ns-u));
  }
  #nsStageRoot .ns-led-val {
    font-size: calc(12.6 * var(--ns-u));
  }
}

/* ==================== Eye-Care Giant-Font Mode (body.nova-bigfont-on) ==================== */
body.nova-bigfont-on #nsStageRoot .ns-top-btn {
  font-size: calc(12 * var(--ns-u));
  padding: calc(3.5 * var(--ns-u)) calc(7.5 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-wallet-val {
  font-size: calc(13 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-mtab {
  font-size: calc(11.4 * var(--ns-u));
  padding: calc(4 * var(--ns-u)) calc(3 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-jp-item .jp-k {
  font-size: calc(10.2 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-jp-item .jp-v {
  font-size: calc(10.2 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-app-title {
  font-size: calc(13 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-mult-step {
  font-size: calc(10.6 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-sym-val-tag {
  font-size: calc(11.4 * var(--ns-u)) !important;
  padding: 1px calc(5 * var(--ns-u));
  background: rgba(0, 0, 0, 0.72);
  color: #fef08a;
}
body.nova-bigfont-on #nsStageRoot.skin-qianli .ns-cell[data-val-tier="low"] .ns-sym-val-tag {
  background: rgba(255, 253, 247, 0.9);
  color: #103029;
}
body.nova-bigfont-on #nsStageRoot .ns-cell-badge {
  font-size: calc(10.2 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-plaque-main {
  font-size: calc(12.2 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-trial-pill,
body.nova-bigfont-on #nsStageRoot .ns-explain-toggle-btn {
  font-size: calc(10.8 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-exp-head {
  font-size: calc(12.5 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-exp-body {
  font-size: calc(12.2 * var(--ns-u));
  line-height: 1.52;
}
body.nova-bigfont-on #nsStageRoot .ns-led-lbl {
  font-size: calc(11.2 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-led-val {
  font-size: calc(14.2 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-spin-main-txt {
  font-size: calc(15 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-spin-sub-txt,
body.nova-bigfont-on #nsStageRoot .ns-orb-sub {
  font-size: calc(9.5 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-custom-plaque-btn {
  font-size: calc(11.5 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-jp-tip .njt-title {
  font-size: calc(12.8 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-jp-tip .njt-pool-val {
  font-size: calc(14.5 * var(--ns-u));
}
body.nova-bigfont-on #nsStageRoot .ns-jp-tip .njt-desc,
body.nova-bigfont-on #nsStageRoot .ns-jp-tip .njt-unlock-btn,
body.nova-bigfont-on #nsStageRoot .ns-jp-tip .njt-lock-note {
  font-size: calc(11.2 * var(--ns-u));
}
body.nova-bigfont-on #nsRulesModal .ns-rules-body,
body.nova-bigfont-on #nsRulesModal .ns-step-line {
  font-size: 14.5px;
}
