/* journey81 · L3/舞台站位 + 云气泡精调 + 勋章按钮
 * 自审定稿：除字体外复刻旧版；有人时全息对侧停靠；玉章锁旧 ar 2.48 不变形
 */

:root {
  --jade-h: 70px;
  /* 空白徽章.png 竖图 rotate90 横置：旧 ui-polish-v39 固定 2.48，禁止改 ar 拉变形 */
  --badge-ar: 2.48;
  --jade-badge: url("../assets/img/境界徽章/空白徽章.webp");
  --jade-badge-img: var(--jade-badge);
  --jade-ink-gradient: linear-gradient(180deg, #C4A035 0%, #8B6914 45%, #5C4208 100%);
  --jade-ink: #5C4208;
  /* 过招/盘方：旧 L4 */
  --holo-w: 92vw;
  --holo-h: 88vh;
}
@media (max-width: 1366px) {
  :root {
    --holo-w: 94vw;
    --holo-h: 90vh;
  }
}

/* —— 勋章：同高；宽=高×2.48；长文缩小字号，禁止加宽 ar —— */
.jade-badge-btn {
  --jade-h: 70px;
  --badge-ar: 2.48;
  container-type: size;
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  height: var(--jade-h) !important;
  min-height: var(--jade-h) !important;
  max-height: var(--jade-h) !important;
  width: calc(var(--jade-h) * var(--badge-ar)) !important;
  min-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  max-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  padding: 0 calc(var(--jade-h) * 0.12) !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--jade-ink) !important;
  -webkit-text-fill-color: transparent !important;
  font-family: "悟道中宋", "STZhongsong", "KaiTi", serif;
  font-weight: 800;
  font-size: calc(var(--jade-h) * 0.23);
  letter-spacing: 0.05em;
  line-height: 1.05;
  white-space: nowrap;
  writing-mode: horizontal-tb !important;
  direction: ltr !important;
  cursor: pointer;
  overflow: visible;
  text-shadow: none;
  transition: transform 0.3s ease, filter 0.3s ease;
}
.jade-badge-btn::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(100cqh * 1.05) !important;
  height: calc(100cqw * 1.05) !important;
  min-width: unset !important;
  min-height: unset !important;
  background: var(--jade-badge-img, var(--jade-badge)) center / 100% 100% no-repeat;
  transform: translate(-50%, -50%) rotate(90deg) !important;
  pointer-events: none;
  z-index: 0;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
  transition: filter 0.3s ease;
}
.jade-badge-btn > .jade-badge-label,
.jade-badge-btn > span {
  position: relative;
  z-index: 1;
  writing-mode: horizontal-tb !important;
  background-image: var(--jade-ink-gradient) !important;
  background-size: 100% 100% !important;
  background-position: 0 50% !important;
  background-repeat: no-repeat !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
  font-size: inherit;
  max-width: 92%;
  overflow: hidden;
  text-overflow: clip;
  text-align: center;
}
@keyframes jade-ink-flow {
  0% { background-position: 130% 50%; }
  100% { background-position: -30% 50%; }
}
.jade-badge-btn:hover,
.jade-badge-btn:focus-visible,
.jade-badge-btn:active {
  transform: scale(1.05);
  filter: drop-shadow(0 0 20px rgba(0, 212, 255, 0.6));
}
.jade-badge-btn:hover::before,
.jade-badge-btn:focus-visible::before,
.jade-badge-btn:active::before {
  transform: translate(-50%, -50%) rotate(90deg) !important;
}
.jade-badge-btn:hover .jade-badge-label,
.jade-badge-btn:focus-visible .jade-badge-label,
.jade-badge-btn:active .jade-badge-label,
.jade-badge-btn:hover > span,
.jade-badge-btn:focus-visible > span,
.jade-badge-btn:active > span {
  background-image: linear-gradient(
    105deg,
    #5C4208 0%,
    #8B6914 30%,
    #F6E7A2 47%,
    #FFF8D6 50%,
    #F6E7A2 53%,
    #8B6914 70%,
    #5C4208 100%
  ) !important;
  background-size: 240% 100% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
  animation: jade-ink-flow 1.1s linear infinite;
}
.jade-badge-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
  filter: grayscale(0.35);
}
/* 次要/长文：同高同 ar，只缩字号 */
.jade-badge-btn.is-ghost,
#j81-stage-close.jade-badge-btn,
#j81-gate-cancel.jade-badge-btn,
#j81-l3-back.jade-badge-btn,
#j81-portrait-cancel.jade-badge-btn {
  --jade-h: 70px;
  --badge-ar: 2.48;
  font-size: calc(var(--jade-h) * 0.22);
  letter-spacing: 0.02em;
  opacity: 0.95;
}
#j81-start-assess.jade-badge-btn,
#j81-enter-resume.jade-badge-btn,
#j81-stage-next.jade-badge-btn,
#j81-gate-submit.jade-badge-btn,
#j81-scroll-enter.jade-badge-btn,
#j81-l3-enter.jade-badge-btn,
#j81-portrait-submit.jade-badge-btn {
  --jade-h: 70px;
  --badge-ar: 2.48;
  font-size: calc(var(--jade-h) * 0.23);
}
.gold-holo .jade-badge-btn,
.j81-home-cta .jade-badge-btn,
.j81-actions .jade-badge-btn,
.j81-scroll-actions .jade-badge-btn,
.j81-l3 .jade-badge-btn {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  width: calc(var(--jade-h) * var(--badge-ar)) !important;
  min-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  max-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  height: var(--jade-h) !important;
  min-height: var(--jade-h) !important;
  max-height: var(--jade-h) !important;
  padding: 0 calc(var(--jade-h) * 0.12) !important;
  flex: 0 0 auto;
  align-self: center;
  writing-mode: horizontal-tb !important;
  font-family: var(--font-ui);
}

.j81-l3-holo .j81-home-cta,
.j81-l3-holo .j81-scroll-actions {
  margin-top: 0.75em;
  padding-bottom: 6px;
}
.j81-home-cta,
.j81-actions,
.j81-scroll-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

/* —— 人物勋章：人设旁不再显示 —— */
.j81-char-wrap .j81-badge,
.j81-l3-char .j81-badge,
.j81-board-char .j81-badge,
.j81-stage-char .j81-badge {
  display: none !important;
}

/* —— 云 / 气泡：对齐旧 #lt2-detail —— */
.j81-char-wrap[data-char="wukong"] .j81-cloud {
  --cloud-w: 88%;
  --cloud-bottom: -33%;
  --cloud-shift-x: 0%;
}
.j81-char-wrap[data-char="bajie"] .j81-cloud {
  --cloud-w: 88%;
  --cloud-bottom: -40%;
  --cloud-shift-x: 0%;
}
.j81-char-wrap[data-char="tangseng"] .j81-cloud {
  --cloud-w: 80%;
  --cloud-bottom: -40%;
  --cloud-shift-x: 0%;
}
.j81-char-wrap[data-char="bailong"] .j81-cloud {
  --cloud-w: 36%;
  --cloud-bottom: -25%;
  --cloud-shift-x: 0%;
}
.j81-char-wrap[data-char="shaseng"] .j81-cloud {
  --cloud-w: 64%;
  --cloud-bottom: -10%;
  --cloud-shift-x: 13%;
}

.j81-char-wrap[data-char="wukong"] .j81-char-stack { width: min(25vw, 480px); }
.j81-char-wrap[data-char="bajie"] .j81-char-stack { width: min(25vw, 480px); }
.j81-char-wrap[data-char="tangseng"] .j81-char-stack { width: min(27vw, 520px); }
.j81-char-wrap[data-char="bailong"] .j81-char-stack { width: min(26vw, 500px); }
.j81-char-wrap[data-char="shaseng"] .j81-char-stack { width: min(28vw, 540px); }
.j81-l3-char .j81-weapon,
.j81-board-char .j81-weapon,
.j81-stage-char .j81-weapon {
  position: absolute !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain;
  z-index: 1;
}
.j81-l3-char[data-char="shaseng"] .j81-weapon {
  transform: translateY(-2.2vh);
}

.j81-bubble {
  width: 118px !important;
  height: 106px !important;
  top: -12%;
  left: 65%;
  transform: translateX(-50%) translateY(calc(-100% - 16px));
}
.j81-bubble-text {
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
  font-size: 46px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  line-height: 1.08 !important;
  max-width: 86% !important;
  text-align: center !important;
  white-space: nowrap !important;
}
.j81-char-wrap[data-char="wukong"] .j81-bubble { left: 30%; top: 8%; }
.j81-char-wrap[data-char="bajie"] .j81-bubble { left: 70%; top: 12%; }
.j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 42%; top: 8%; }
.j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 78%; top: 10%; }
.j81-char-wrap[data-char="bailong"] .j81-bubble {
  left: 58%;
  top: 8%;
  width: 118px !important;
  height: 106px !important;
  background-image: none !important;
}
.j81-char-wrap[data-char="bailong"] .j81-bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/img/对话气泡/5.webp") center / 100% 100% no-repeat;
  transform: scaleX(-1);
  z-index: 0;
  pointer-events: none;
}
.j81-char-wrap[data-char="bailong"] .j81-bubble-text {
  z-index: 1;
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
}
.j81-char-wrap[data-char="shaseng"] .j81-bubble { background-image: none !important; }
.j81-char-wrap[data-char="shaseng"] .j81-bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/img/对话气泡/2.webp") center / 100% 100% no-repeat;
  transform: scaleX(-1);
  z-index: 0;
  pointer-events: none;
}
.j81-char-wrap[data-char="shaseng"] .j81-bubble-text { z-index: 1; }

/* ========== L3：68vh / 2.15；有人勿居中，对侧停靠让人 ========== */
.j81-l3-stage {
  inset: 1.5vh 1.5vw !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo,
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo {
  top: 50% !important;
  height: auto !important;
  max-height: 88vh !important;
  aspect-ratio: 2.15 / 1 !important;
  width: min(84%, calc(88vh * 2.15)) !important;
  max-width: 84% !important;
  padding: 0 !important;
  z-index: 12;
}
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo {
  left: auto !important;
  right: 2% !important;
  transform: translateY(-50%) !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo {
  left: 2% !important;
  right: auto !important;
  transform: translateY(-50%) !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo .j81-l3-holo-inner,
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo .j81-l3-holo-inner {
  position: absolute;
  inset: 5% 12% 5% 8%
  height: auto;
  max-height: none;
  overflow: auto;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35em;
}
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo .j81-l3-holo-inner {
  text-align: right;
  align-items: flex-end;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo .j81-l3-holo-inner {
  text-align: left;
  align-items: flex-start;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char {
  left: auto !important;
  right: 1.5% !important;
  top: 58%;
  transform: translateY(-50%);
  z-index: 20;
}
.j81-l3-stage[data-layout="char-left"] .j81-l3-char {
  right: auto !important;
  left: 15% !important;
  top: 58%;
  transform: translateY(-50%);
  z-index: 20;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] {
  right: 1.5% !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo {
  left: 50%;
  right: auto;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(92%, calc(88vh * 2.15));
  max-width: 92%;
  max-height: 68vh;
  height: auto;
  aspect-ratio: 2.15 / 1;
  padding: 0;
  z-index: 12;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .j81-l3-holo-inner {
  position: absolute;
  inset: 2% 8% 2% 5%;
  height: auto;
  overflow: auto;
  padding: 0;
  box-sizing: border-box;
  text-align: left;
  align-items: stretch;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-char {
  left: 70%;
  right: auto;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 20;
}

/* ========== 过招/盘方：卷轴位置大小复制图1棋盘页（2.15:1 横卷，按 layout 偏侧） ========== */
.j81-stage-layout[data-layout] #j81-stage-panel,
.j81-gate-layout[data-layout] #j81-gate-panel {
  top: 50% !important;
  bottom: auto !important;
  height: auto !important;
  max-height: 88vh !important;
  aspect-ratio: 2.15 / 1 !important;
  padding: clamp(20px, 3.4vh, 40px) clamp(16px, 2vw, 32px) !important;
  overflow: visible !important;
  z-index: 12;
  box-sizing: border-box;
}
.j81-stage-layout[data-layout="char-left"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-left"] #j81-gate-panel {
  left: 14% !important;
  right: 2% !important;
  transform: translateY(-50%) !important;
  width: 84% !important;
  max-width: 84% !important;
}
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel {
  left: 2% !important;
  right: 14% !important;
  transform: translateY(-50%) !important;
  width: 84% !important;
  max-width: 84% !important;
}
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel {
  left: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
  width: min(86%, calc(88vh * 2.15)) !important;
  max-width: 86% !important;
}
.j81-stage-layout[data-layout] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout] #j81-gate-panel > .j81-scroll-copy {
  position: absolute !important;
  top: 26px !important;
  bottom: 22px !important;
  left: clamp(72px, 7vw, 140px) !important;
  right: clamp(72px, 7vw, 140px) !important;
  z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 8px;
  overflow-x: hidden;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 0 0 4px !important;
  width: auto !important;
  max-width: none !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
#j81-stage-panel > .j81-scroll-copy::-webkit-scrollbar,
#j81-gate-panel > .j81-scroll-copy::-webkit-scrollbar {
  display: none !important;
}
/* 人左：正文避开立绘重叠区（左留 28% 给立绘），朝人物对立侧（右）拉满，内容右对齐 */
.j81-stage-layout[data-layout="char-left"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-left"] #j81-gate-panel > .j81-scroll-copy {
  left: 28% !important;
  right: clamp(8px, 1.4vw, 32px) !important;
  text-align: right !important;
  align-items: flex-end !important;
}
/* 人右：右留 34% 给立绘，朝人物对立侧（左）拉满，内容左对齐 */
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel > .j81-scroll-copy {
  left: clamp(8px, 1.4vw, 32px) !important;
  right: 34% !important;
  text-align: left !important;
  align-items: flex-start !important;
}
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy {
  left: clamp(72px, 7vw, 140px) !important;
  right: clamp(72px, 7vw, 140px) !important;
  text-align: left !important;
  align-items: stretch !important;
}
/* 居中人物（唐僧）：正文分两栏，让出中缝给立绘（对齐手绘稿8的左屏/右屏） */
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel .j81-scroll,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel .j81-scroll {
  column-count: 2;
  column-gap: max(30%, 240px);
}
#j81-stage-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar,
#j81-gate-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar {
  width: 4px;
}
#j81-stage-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar-thumb,
#j81-gate-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #b8860b, #daa520, #b8860b);
  border-radius: 3px;
}
#j81-stage-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar-thumb:hover,
#j81-gate-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #daa520, #ffd700, #daa520);
}
#j81-stage-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar-track,
#j81-gate-panel.gold-holo > .j81-scroll-copy::-webkit-scrollbar-track {
  background: rgba(255, 215, 0, 0.03);
}
#j81-stage-panel .j81-scroll,
#j81-gate-panel .j81-scroll,
#j81-stage-body,
#j81-gate-rx {
  flex: 0 0 auto;
  min-height: 0;
  max-height: none !important;
  overflow: hidden !important;
  width: 100% !important;
  box-sizing: border-box;
  align-self: stretch !important;
}

.j81-stage-layout[data-layout] .j81-stage-char,
.j81-gate-layout[data-layout] .j81-stage-char {
  position: absolute !important;
  top: 52% !important;
  transform: translateY(-50%) !important;
  z-index: 15 !important;
  pointer-events: none;
}
/* 对齐图1棋盘页：人物中心压在卷轴侧轴上（卷轴已偏侧留出 14% 边距，半出外不裁） */
.j81-stage-layout[data-layout="char-left"] .j81-stage-char,
.j81-gate-layout[data-layout="char-left"] .j81-stage-char {
  left: 1% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
.j81-stage-layout[data-layout="char-right"] .j81-stage-char,
.j81-gate-layout[data-layout="char-right"] .j81-stage-char {
  left: 99% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
.j81-stage-layout[data-layout="char-center"] .j81-stage-char,
.j81-gate-layout[data-layout="char-center"] .j81-stage-char {
  left: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
/* 沙僧气泡悬头顶左侧，避免贴屏边被裁 */
.j81-stage-layout[data-layout] .j81-char-wrap[data-char="shaseng"] .j81-bubble,
.j81-gate-layout[data-layout] .j81-char-wrap[data-char="shaseng"] .j81-bubble {
  left: 45% !important;
}
/* 过招立绘 = 图1棋盘页比例：宽度随视口走（原 400px 固定基数在小屏显大） */
#j81-stage-panel .j81-stage-char .j81-char-stack,
#j81-gate-panel .j81-stage-char .j81-char-stack {
  width: min(27vw, 520px) !important;
}
#j81-stage-panel .j81-char-wrap[data-char="wukong"] .j81-char-stack,
#j81-gate-panel .j81-char-wrap[data-char="wukong"] .j81-char-stack,
#j81-stage-panel .j81-char-wrap[data-char="bajie"] .j81-char-stack,
#j81-gate-panel .j81-char-wrap[data-char="bajie"] .j81-char-stack {
  width: min(25vw, 480px) !important;
}
#j81-stage-panel .j81-char-wrap[data-char="shaseng"] .j81-char-stack,
#j81-gate-panel .j81-char-wrap[data-char="shaseng"] .j81-char-stack {
  width: min(28vw, 540px) !important;
}
#j81-stage-panel .j81-char-wrap[data-char="tangseng"] .j81-char-stack,
#j81-gate-panel .j81-char-wrap[data-char="tangseng"] .j81-char-stack {
  width: min(27vw, 520px) !important;
}
#j81-stage-panel .j81-char-wrap[data-char="bailong"] .j81-char-stack,
#j81-gate-panel .j81-char-wrap[data-char="bailong"] .j81-char-stack {
  width: min(26vw, 500px) !important;
}
#j81-stage-panel .j81-stage-char .j81-weapon,
#j81-gate-panel .j81-stage-char .j81-weapon {
  position: relative !important;
  max-height: 46vh !important;
}
#j81-stage-panel .j81-bubble,
#j81-gate-panel .j81-bubble {
  width: 110px !important;
  height: 99px !important;
}
#j81-stage-panel .j81-bubble-text,
#j81-gate-panel .j81-bubble-text {
  font-size: 42px !important;
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
  text-align: center !important;
}

/* ========== 星斗：高 68vh / 2.15；有人勿居中，对侧停靠 ========== */
.j81-starfield[data-layout="char-right"] .j81-scroll-panel,
.j81-starfield[data-layout="char-left"] .j81-scroll-panel,
.j81-starfield[data-layout="char-center"] .j81-scroll-panel {
  top: 50% !important;
  bottom: auto !important;
  height: auto !important;
  max-height: 88vh !important;
  aspect-ratio: 2.15 / 1 !important;
  padding: clamp(24px, 4vh, 48px) clamp(16px, 2vw, 32px);
  overflow: visible !important;
  background: transparent !important;
  display: flex;
  flex-direction: column;
  z-index: 5;
}
.j81-starfield[data-layout="char-left"] .j81-scroll-panel {
  left: 22% !important;
  right: 2% !important;
  transform: translateY(-50%) !important;
  width: 76% !important;
  max-width: 76% !important;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-panel {
  left: 2% !important;
  right: auto !important;
  transform: translateY(-50%) !important;
  width: min(90%, calc(88vh * 2.15)) !important;
  max-width: 90% !important;
}
/* 白龙略宽：中线约 17vw，左缘再贴一点 */
.j81-starfield[data-layout="char-left"]:has(.j81-board-char[data-char="bailong"]) .j81-scroll-panel {
  width: 80% !important;
  max-width: 80% !important;
}
.j81-starfield[data-layout="char-right"]:has(.j81-board-char[data-char="bailong"]) .j81-scroll-panel {
  width: min(calc(98% - 17vw), calc(88vh * 2.15)) !important;
  max-width: calc(98% - 17vw) !important;
}
.j81-l3-stage[data-layout="char-left"]:has(.j81-l3-char[data-char="bailong"]) .j81-l3-holo,
.j81-l3-stage[data-layout="char-right"]:has(.j81-l3-char[data-char="bailong"]) .j81-l3-holo {
  width: 80% !important;
  max-width: 80% !important;
}
.j81-starfield[data-layout="char-center"] .j81-scroll-panel {
  left: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
  width: min(86%, calc(88vh * 2.15)) !important;
  max-width: 86% !important;
}

.j81-board-char {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 6;
  pointer-events: none;
}
.j81-starfield[data-layout="char-right"] .j81-board-char {
  right: 1.5%;
  left: auto;
}
.j81-starfield[data-layout="char-left"] .j81-board-char {
  left: 15%;
  right: auto;
}
.j81-starfield[data-layout="char-center"] .j81-board-char {
  left: 50%;
  right: auto;
  transform: translate(-50%, -50%);
}
.j81-starfield .j81-board-char .j81-char-stack {
  width: min(calc(400px + 10vw), 520px) !important;
}
.j81-starfield .j81-board-char[data-char="wukong"] .j81-char-stack,
.j81-starfield .j81-board-char[data-char="bajie"] .j81-char-stack {
  width: min(calc(400px + 8vw), 480px) !important;
}
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-char-stack {
  width: min(calc(400px + 11vw), 540px) !important;
}
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-char-stack {
  width: min(calc(400px + 10vw), 520px) !important;
}
.j81-starfield .j81-board-char[data-char="bailong"] .j81-char-stack {
  width: min(calc(400px + 9vw), 500px) !important;
}
.j81-starfield .j81-board-char .j81-weapon {
  max-height: 78vh !important;
}
.j81-starfield[data-layout="char-left"] .j81-board-char[data-char="bailong"] {
  left: 1.4%;
  top: calc(50% + 200px);
  transform: translateY(-50%);
}
.j81-starfield .j81-board-char[data-char="bailong"] .j81-cloud {
  width: 36%;
  bottom: -42px;
  left: 50%;
  transform: translateX(-50%);
}
.j81-starfield .j81-board-char[data-char="bailong"] .j81-bubble {
  left: 213px;
  right: auto;
  top: -372px;
  bottom: auto;
  transform: none;
}
.j81-starfield .j81-board-char .j81-bubble {
  width: 118px !important;
  height: 106px !important;
}
.j81-starfield .j81-board-char .j81-bubble-text {
  font-size: 46px !important;
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
  text-align: center !important;
}

/* —— 对齐：人左→右齐，人右→左齐 —— */
.j81-starfield[data-layout="char-left"] .j81-scroll-copy,
.j81-l3-stage[data-layout="char-left"] .j81-scroll-copy,
.j81-stage-layout[data-layout="char-left"] .j81-scroll-copy,
.j81-gate-layout[data-layout="char-left"] .j81-scroll-copy {
  text-align: right !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-copy,
.j81-l3-stage[data-layout="char-right"] .j81-scroll-copy,
.j81-stage-layout[data-layout="char-right"] .j81-scroll-copy,
.j81-gate-layout[data-layout="char-right"] .j81-scroll-copy {
  text-align: left !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
}
.j81-starfield[data-layout="char-center"] .j81-scroll-copy,
.j81-l3-stage[data-layout="char-center"] .j81-scroll-copy,
.j81-stage-layout[data-layout="char-center"] .j81-scroll-copy,
.j81-gate-layout[data-layout="char-center"] .j81-scroll-copy {
  text-align: left !important;
  align-items: stretch !important;
}
.j81-starfield[data-layout="char-left"] .j81-scroll-chrome-top,
.j81-starfield[data-layout="char-left"] .j81-scroll-chrome-bot,
.j81-starfield[data-layout="char-left"] .j81-realm-legend,
.j81-starfield[data-layout="char-left"] .j81-scroll-actions,
.j81-stage-layout[data-layout="char-left"] .j81-scroll-actions,
.j81-gate-layout[data-layout="char-left"] .j81-scroll-actions,
.j81-l3-stage[data-layout="char-left"] .j81-scroll-actions {
  justify-content: flex-end !important;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-chrome-top,
.j81-starfield[data-layout="char-right"] .j81-scroll-chrome-bot,
.j81-starfield[data-layout="char-right"] .j81-realm-legend,
.j81-starfield[data-layout="char-right"] .j81-scroll-actions,
.j81-stage-layout[data-layout="char-right"] .j81-scroll-actions,
.j81-gate-layout[data-layout="char-right"] .j81-scroll-actions,
.j81-l3-stage[data-layout="char-right"] .j81-scroll-actions {
  justify-content: flex-start !important;
}

.j81-starfield[data-layout="char-left"] .j81-scroll-copy,
.j81-starfield[data-layout="char-left"] .j81-scroll-chrome,
.j81-starfield[data-layout="char-right"] .j81-scroll-copy,
.j81-starfield[data-layout="char-right"] .j81-scroll-chrome,
.j81-stage-layout[data-layout] .j81-scroll-copy,
.j81-gate-layout[data-layout] .j81-scroll-copy,
.j81-l3-stage[data-layout="char-right"] .j81-scroll-copy,
.j81-l3-stage[data-layout="char-left"] .j81-scroll-copy {
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

/* 星斗内文：卷轴已压住角色一半，正文再让出左侧重叠带 */
.j81-starfield[data-layout="char-left"] .j81-scroll-copy {
  padding-left: 2% !important;
  padding-right: 6% !important;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-copy {
  padding-right: 12% !important;
}

/* 星斗/L3 情景字框：与过招统一 + 电流 */
.j81-starfield .j81-scroll-desc,
.j81-starfield #j81-scroll-desc,
.j81-l3-stage .j81-l3-desc,
.j81-l3-stage #j81-l3-desc {
  overflow: visible !important;
  max-height: none !important;
  font-family: var(--font-ui) !important;
  color: #fff6cf !important;
  font-weight: 400 !important;
  font-size: clamp(1.5rem, 2.5vw, 2.4rem) !important;
  line-height: 1.7 !important;
  letter-spacing: 0.02em !important;
  min-height: 0 !important;
  padding: 0.7em 1.1em 0.8em !important;
  margin: 0.5em 0 0.6em !important;
  width: auto !important;
  display: inline-block;
  align-self: flex-end;
  min-width: min(72%, 640px);
  box-sizing: border-box;
  text-align: inherit;
  border: 1px solid rgba(255, 215, 0, 0.28) !important;
  border-radius: 2px !important;
  background: linear-gradient(
    135deg,
    rgba(255, 215, 0, 0.06) 0%,
    rgba(12, 14, 20, 0.42) 42%,
    rgba(255, 215, 0, 0.05) 100%
  ) !important;
  box-shadow:
    inset 0 0 18px rgba(255, 215, 0, 0.04),
    0 0 8px rgba(255, 215, 0, 0.06) !important;
  position: relative;
}
.j81-starfield .j81-scroll-desc::after,
.j81-starfield #j81-scroll-desc::after,
.j81-l3-stage .j81-l3-desc::after,
.j81-l3-stage #j81-l3-desc::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  opacity: 0.95;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255, 250, 200, 0.95) 50%, transparent 100%) 0 0 / 38% 2px no-repeat,
    linear-gradient(180deg, transparent 0%, rgba(255, 250, 200, 0.95) 50%, transparent 100%) 100% 0 / 2px 38% no-repeat,
    linear-gradient(90deg, transparent 0%, rgba(255, 250, 200, 0.95) 50%, transparent 100%) 100% 100% / 38% 2px no-repeat,
    linear-gradient(180deg, transparent 0%, rgba(255, 250, 200, 0.95) 50%, transparent 100%) 0 100% / 2px 38% no-repeat;
  animation: j81-box-elec 2.4s linear infinite;
}
.j81-starfield .j81-scroll-kicker,
.j81-l3-stage .j81-scroll-kicker {
  font-family: var(--font-ui) !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.12em !important;
}
.j81-starfield .j81-scroll-meta,
.j81-l3-stage .j81-scroll-meta {
  font-family: var(--font-ui) !important;
  font-size: 0.88rem !important;
}
.j81-starfield .j81-scroll-panel,
.j81-starfield .j81-scroll-body,
.j81-starfield .j81-scroll-copy,
.j81-starfield .j81-scroll-desc {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.j81-starfield .j81-scroll-panel::-webkit-scrollbar,
.j81-starfield .j81-scroll-body::-webkit-scrollbar,
.j81-starfield .j81-scroll-copy::-webkit-scrollbar,
.j81-starfield .j81-scroll-desc::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

.j81-starfield[data-layout="char-left"] .j81-scroll-chrome-top {
  flex-direction: column;
  align-items: flex-end;
}
.j81-starfield[data-layout="char-left"] .j81-brand {
  flex-direction: row;
  text-align: right;
}
.j81-starfield[data-layout="char-left"] .j81-brand-text {
  align-items: flex-end;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-chrome-top {
  flex-direction: column;
  align-items: flex-start;
}
.j81-starfield[data-layout="char-right"] .j81-brand-text {
  align-items: flex-start;
}

.j81-l3-stage[data-layout="char-right"] .j81-l3-holo .j81-l3-holo-inner,
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo .j81-l3-holo-inner {
  padding-left: 0;
  padding-right: 0;
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  .j81-l3-stage[data-layout] .j81-l3-holo {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: min(94vw, 560px) !important;
    max-width: 94vw;
    aspect-ratio: auto;
    margin: 2vh auto;
  }
  .j81-stage-layout[data-layout] #j81-stage-panel,
  .j81-gate-layout[data-layout] #j81-gate-panel {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: var(--holo-w) !important;
    height: var(--holo-h) !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  .j81-l3-stage[data-layout] .j81-l3-char,
  .j81-board-char {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    margin: 0 auto 2vh;
  }
  .j81-stage-layout[data-layout] .j81-stage-char,
  .j81-gate-layout[data-layout] .j81-stage-char {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
  .j81-starfield[data-layout] .j81-scroll-panel {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: min(94vw, calc(56vh * 2.15)) !important;
    max-width: 94vw !important;
    height: auto;
    max-height: 56vh;
    aspect-ratio: 2.15 / 1 !important;
    margin: 2vh auto;
    background: transparent !important;
  }
}

/* ========== 望页认/否双钮：同高同字号，长文不溢玉章 ========== */
.j81-appear-box {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
}
.j81-appear-box .jade-badge-btn {
  --jade-h: 78px;
  font-size: 19px !important;
  letter-spacing: 0.03em;
  font-family: "方正墨韵体简", "FZMoYunTiS", "KaiTi", "STKaiti", serif !important;
}

/* ========== 闻页选项：同排三钮，框住文字（方正墨韵体简），悬停电流扫过按钮 ========== */
.j81-opt-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 18px;
  width: 100%;
  justify-content: flex-start;
}
/* char-left 不再左扩：选项行左缘与场景内容边框对齐（同正文列左缘） */
#j81-stage-choices .j81-opt-gold {
  container-type: normal !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 11px 24px !important;
  text-align: center !important;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(50, 36, 14, 0.85), rgba(22, 15, 6, 0.9)) !important;
  border: 1px solid rgba(212, 175, 55, 0.55) !important;
  border-radius: 999px !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 240, 190, 0.28),
    0 2px 6px rgba(0, 0, 0, 0.55) !important;
  transition: border-color 0.25s ease, filter 0.25s ease, transform 0.25s ease;
}
#j81-stage-choices .j81-opt-gold::before {
  display: none !important;
}
/* 悬停电流沿按钮边框流过 */
#j81-stage-choices .j81-opt-gold::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1.5px;
  background: linear-gradient(100deg,
    transparent 30%,
    #FFFFFF 44%,
    rgba(0, 240, 255, 0.9) 52%,
    transparent 68%);
  background-size: 220% 100%;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: 0;
  pointer-events: none;
}
#j81-stage-choices .j81-opt-gold:hover::after,
#j81-stage-choices .j81-opt-gold:focus-visible::after {
  opacity: 1;
  animation: j81-opt-borderflow 0.9s linear infinite;
}
@keyframes j81-opt-borderflow {
  0% { background-position: 120% 0; }
  100% { background-position: -120% 0; }
}
#j81-stage-choices .j81-opt-gold .jade-badge-label {
  position: static !important;
  display: block;
  max-width: none !important;
  overflow: visible !important;
  white-space: nowrap !important;
  text-align: center !important;
  font-size: clamp(14px, 1.25vw, 20px) !important;
  line-height: 1.4 !important;
  letter-spacing: 0.03em;
  font-family: "方正墨韵体简", "FZMoYunTiS", "KaiTi", "STKaiti", serif !important;
  background-image: linear-gradient(180deg,
    #FFF8EA 0%,
    #F6E7A2 30%,
    #D4AF37 55%,
    #8B6914 78%,
    #5C4208 100%) !important;
  background-size: 100% 100% !important;
  background-position: 0 50% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
  filter:
    drop-shadow(0 -0.5px 0 rgba(255, 252, 240, 0.55))
    drop-shadow(0.5px 1px 0 rgba(30, 18, 2, 0.95))
    drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.6));
}
#j81-stage-choices .j81-opt-gold:hover,
#j81-stage-choices .j81-opt-gold:focus-visible {
  border-color: rgba(0, 245, 255, 0.8) !important;
  filter: drop-shadow(0 0 12px rgba(0, 212, 255, 0.4));
  transform: translateY(-2px);
}
#j81-stage-choices .j81-opt-gold:hover .jade-badge-label,
#j81-stage-choices .j81-opt-gold:focus-visible .jade-badge-label {
  background-image:
    linear-gradient(100deg,
      transparent 38%,
      rgba(255, 255, 255, 0.98) 47%,
      rgba(190, 240, 255, 0.95) 50%,
      rgba(255, 255, 255, 0.98) 53%,
      transparent 62%),
    linear-gradient(180deg,
      #FFF8EA 0%,
      #F6E7A2 30%,
      #D4AF37 55%,
      #8B6914 78%,
      #5C4208 100%) !important;
  background-size: 240% 100%, 100% 100% !important;
  animation: j81-opt-shine 1.15s linear infinite;
}
@keyframes j81-opt-shine {
  0% { background-position: 130% 0, 0 50%; }
  100% { background-position: -130% 0, 0 50%; }
}

/* ========== 过招/盘方：复刻图1人物关系 —— 气泡贴头顶、祥云贴脚（按立绘 alpha 实测校准） ========== */
#j81-stage-panel .j81-stage-char .j81-bubble,
#j81-gate-panel .j81-stage-char .j81-bubble {
  top: 0 !important;
  transform: translateX(-50%) translateY(calc(-100% - 2px)) !important;
}
#j81-stage-panel .j81-char-wrap[data-char="bailong"] .j81-bubble,
#j81-gate-panel .j81-char-wrap[data-char="bailong"] .j81-bubble { top: 15% !important; }
#j81-stage-panel .j81-char-wrap[data-char="shaseng"] .j81-bubble,
#j81-gate-panel .j81-char-wrap[data-char="shaseng"] .j81-bubble { top: 13% !important; }
.j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-bottom: -9%; --cloud-shift-x: 0%; }
.j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-bottom: -9%; --cloud-shift-x: 5%; }
.j81-char-wrap[data-char="tangseng"] .j81-cloud { --cloud-bottom: -3%; --cloud-shift-x: -10%; }
.j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-bottom: -12%; --cloud-shift-x: 4%; }
.j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-bottom: -4%; --cloud-shift-x: -2%; }

/* ========== 闻/过招：主按钮与「存档回行程图」并列一排；压缩输入框憋出下拉杆 ========== */
.j81-duel-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
}
#j81-stage-panel textarea.j81-input {
  min-height: 48px !important;
  padding: 10px 14px !important;
  line-height: 1.5 !important;
}

/* 闻/过招双按钮行：右对齐 */
.j81-duel-actions {
  justify-content: flex-end;
}

/* 右对齐标准（对齐图1：整排贴内容列右缘，两钮紧邻） */
.j81-duel-actions {
  display: flex !important;
  flex-wrap: nowrap;
  justify-content: flex-end !important;
  align-items: center;
  gap: 14px;
  width: 100%;
}
.j81-appear-box {
  justify-content: flex-end !important;
  width: 100%;
}

/* 面板内滚动条一律隐藏（含字框/对话/输入框） */
#j81-stage-panel ::-webkit-scrollbar,
#j81-gate-panel ::-webkit-scrollbar {
  display: none !important;
}

/* L3 立绘入流：修零高堆栈导致人物隐身（与过招同方案） */
#j81-l3-panel .j81-l3-char .j81-weapon,
.j81-l3-char .j81-weapon {
  position: relative !important;
  max-height: 56vh !important;
}


/* ===== L3 内文区按"人物侧避让"分配留白（对齐白龙标准页） ===== */
/* char-left：人物在左 → 左留 30%，右贴 5%；列拉伸+文字右对齐（绕开 flex-end 怪异偏移） */
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo .j81-l3-holo-inner {
  inset: 5% 5% 5% 30% !important;
  width: auto !important;
  align-items: stretch !important;
  text-align: right;
}
/* char-right：人物在右 → 右留 30%，左贴 5% */
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo .j81-l3-holo-inner {
  inset: 5% 30% 5% 5% !important;
  width: auto !important;
  align-items: stretch !important;
  text-align: left;
}
/* char-center：人物居中缝偏右 → 右留 32% */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .j81-l3-holo-inner {
  inset: 4% 32% 4% 6% !important;
  width: auto !important;
}

/* ===== 人设组规则回灌（bak_kimi_032829 验收版） ===== */


/* —— 人物勋章：人设旁不再显示 —— */
.j81-char-wrap .j81-badge,
.j81-l3-char .j81-badge,
.j81-board-char .j81-badge,
.j81-stage-char .j81-badge {
  display: none !important;
}


/* —— 云 / 气泡：对齐旧 #lt2-detail —— */
.j81-char-wrap[data-char="wukong"] .j81-cloud {
  --cloud-w: 88%;
  --cloud-bottom: -33%;
  --cloud-shift-x: 0%;
}

.j81-char-wrap[data-char="bajie"] .j81-cloud {
  --cloud-w: 88%;
  --cloud-bottom: -40%;
  --cloud-shift-x: 0%;
}

.j81-char-wrap[data-char="tangseng"] .j81-cloud {
  --cloud-w: 80%;
  --cloud-bottom: -40%;
  --cloud-shift-x: 0%;
}

.j81-char-wrap[data-char="bailong"] .j81-cloud {
  --cloud-w: 36%;
  --cloud-bottom: -25%;
  --cloud-shift-x: 0%;
}

.j81-char-wrap[data-char="shaseng"] .j81-cloud {
  --cloud-w: 64%;
  --cloud-bottom: -10%;
  --cloud-shift-x: 13%;
}


.j81-char-wrap[data-char="wukong"] .j81-char-stack { width: min(calc(400px + 8vw), 480px); }

.j81-char-wrap[data-char="bajie"] .j81-char-stack { width: min(calc(400px + 8vw), 480px); }

.j81-char-wrap[data-char="tangseng"] .j81-char-stack { width: min(calc(400px + 10vw), 520px); }

.j81-char-wrap[data-char="bailong"] .j81-char-stack { width: min(calc(400px + 9vw), 500px); }

.j81-char-wrap[data-char="shaseng"] .j81-char-stack { width: min(calc(400px + 11vw), 540px); }

.j81-l3-char .j81-weapon,
.j81-board-char .j81-weapon,
.j81-stage-char .j81-weapon {
  position: absolute !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain;
  z-index: 1;
}

.j81-char-wrap[data-char="wukong"] .j81-bubble { left: 30%; top: 8%; }

.j81-char-wrap[data-char="bajie"] .j81-bubble { left: 70%; top: 12%; }

.j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 42%; top: 8%; }

.j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 78%; top: 10%; }

.j81-char-wrap[data-char="bailong"] .j81-bubble {
  left: 58%;
  top: 8%;
  width: 118px !important;
  height: 106px !important;
  background-image: none !important;
}

.j81-char-wrap[data-char="bailong"] .j81-bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/img/对话气泡/5.webp") center / 100% 100% no-repeat;
  transform: scaleX(-1);
  z-index: 0;
  pointer-events: none;
}

.j81-char-wrap[data-char="bailong"] .j81-bubble-text {
  z-index: 1;
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
}

.j81-char-wrap[data-char="shaseng"] .j81-bubble { background-image: none !important; }

.j81-char-wrap[data-char="shaseng"] .j81-bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/img/对话气泡/2.webp") center / 100% 100% no-repeat;
  transform: scaleX(-1);
  z-index: 0;
  pointer-events: none;
}

.j81-char-wrap[data-char="shaseng"] .j81-bubble-text { z-index: 1; }

/* 白龙专属：过招/盘方面板宽度对齐望页 80%（走变量，人物贴边随之联动） */
.j81-stage-layout[data-layout="char-left"]:has(.j81-stage-char[data-char="bailong"]),
.j81-gate-layout[data-layout="char-left"]:has(.j81-stage-char[data-char="bailong"]) {
  --holo-w: 80vw;
}

.j81-stage-layout[data-layout="char-left"]:has(.j81-stage-char[data-char="bailong"]) #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-left"]:has(.j81-stage-char[data-char="bailong"]) #j81-gate-panel > .j81-scroll-copy {
  left: 28% !important;
  right: 28px !important;
}


.j81-stage-layout[data-layout] .j81-stage-char,
.j81-gate-layout[data-layout] .j81-stage-char {
  position: absolute !important;
  top: 52% !important;
  transform: translateY(-50%) !important;
  z-index: 15 !important;
  pointer-events: none;
}

/* 对齐图1棋盘页：人物贴卷轴侧轴内侧站立（panel 92vw 外边距仅 4vw，半出外会被裁） */
.j81-stage-layout[data-layout="char-left"] .j81-stage-char,
.j81-gate-layout[data-layout="char-left"] .j81-stage-char {
  left: 9% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}

.j81-stage-layout[data-layout="char-right"] .j81-stage-char,
.j81-gate-layout[data-layout="char-right"] .j81-stage-char {
  left: 91% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}

.j81-stage-layout[data-layout="char-center"] .j81-stage-char,
.j81-gate-layout[data-layout="char-center"] .j81-stage-char {
  left: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}

/* 沙僧武器图右侧杖尾长：站位略内收，气泡改悬头顶左侧，避免贴屏边被裁 */
.j81-stage-layout[data-layout="char-right"] .j81-stage-char[data-char="shaseng"],
.j81-gate-layout[data-layout="char-right"] .j81-stage-char[data-char="shaseng"] {
  left: 88% !important;
}

.j81-stage-layout[data-layout] .j81-stage-char[data-char="shaseng"] .j81-bubble,
.j81-gate-layout[data-layout] .j81-stage-char[data-char="shaseng"] .j81-bubble {
  left: 45% !important;
}

/* 过招立绘 = 图1棋盘页比例：宽度随视口走（原 400px 固定基数在小屏显大） */
#j81-stage-panel .j81-stage-char .j81-char-stack,
#j81-gate-panel .j81-stage-char .j81-char-stack {
  width: min(27vw, 520px) !important;
}

#j81-stage-panel .j81-stage-char[data-char="wukong"] .j81-char-stack,
#j81-gate-panel .j81-stage-char[data-char="wukong"] .j81-char-stack,
#j81-stage-panel .j81-stage-char[data-char="bajie"] .j81-char-stack,
#j81-gate-panel .j81-stage-char[data-char="bajie"] .j81-char-stack {
  width: min(25vw, 480px) !important;
}

#j81-stage-panel .j81-stage-char[data-char="shaseng"] .j81-char-stack,
#j81-gate-panel .j81-stage-char[data-char="shaseng"] .j81-char-stack {
  width: min(28vw, 540px) !important;
}

#j81-stage-panel .j81-stage-char[data-char="tangseng"] .j81-char-stack,
#j81-gate-panel .j81-stage-char[data-char="tangseng"] .j81-char-stack {
  width: min(27vw, 520px) !important;
}

#j81-stage-panel .j81-stage-char[data-char="bailong"] .j81-char-stack,
#j81-gate-panel .j81-stage-char[data-char="bailong"] .j81-char-stack {
  width: min(26vw, 500px) !important;
}

#j81-stage-panel .j81-stage-char .j81-weapon,
#j81-gate-panel .j81-stage-char .j81-weapon {
  position: relative !important;
  max-height: 46vh !important;
}

  .j81-stage-layout[data-layout] .j81-stage-char,
  .j81-gate-layout[data-layout] .j81-stage-char {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
/* ===== 立绘入流补全：L3 + 棋盘（治零高堆栈人物隐身/错位） ===== */
.j81-l3-char .j81-weapon,
.j81-starfield .j81-board-char .j81-weapon {
  position: relative !important;
  max-height: 56vh !important;
}
/* 棋盘人物垂直居中（入流后按真实高度） */
.j81-starfield .j81-board-char {
  top: 50% !important;
  transform: translateY(-50%) !important;
}
/* 白龙棋盘旧特判（零高时代）作废 */
.j81-starfield[data-layout="char-left"] .j81-board-char[data-char="bailong"] {
  top: 50% !important;
  left: 1% !important;
}

/* ===== L3 云朵比例/站位微调（2026-09-30 自查纠偏） ===== */
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud {
  --cloud-w: 62% !important;
  --cloud-shift-x: 6% !important;
}
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-cloud {
  --cloud-bottom: -30% !important;
}

/* ===== 星图：已过难只留编号小标，避免与"当前难"八角标叠字 ===== */
.j81-star.is-done .t,
.j81-star.is-done .m { display: none !important; }
.j81-star.is-done { transform: translate(-50%, -50%) scale(0.82); }

/* ===== 星图（char-right）：场景框左对齐 + 左列文字稍右移 ===== */
.j81-starfield[data-layout="char-right"] .j81-scroll-desc,
.j81-starfield[data-layout="char-right"] #j81-scroll-desc {
  align-self: flex-start !important;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-copy {
  padding-left: 4% !important;
}

/* ===== 修为盘问页：上不顶天、字号加大、框更饱满 ===== */
.j81-gate-layout[data-layout] #j81-gate-panel > .j81-scroll-copy { gap: 14px !important; }
#j81-gate-panel .j81-scroll-copy > .j81-intro { font-size: clamp(1.1rem, 1.7vw, 1.45rem) !important; }
#j81-gate-rx,
#j81-gate-panel .j81-scroll-desc {
  font-size: clamp(1.15rem, 1.8vw, 1.5rem) !important;
  line-height: 1.7 !important;
  padding: 0.9em 1.2em 1em !important;
}
#j81-gate-input { font-size: clamp(1.05rem, 1.6vw, 1.35rem) !important; }

/* ===== L3 人物入卷轴内（对齐截图1确认关系：人物/云/气泡整体在轴内，不骑边线） ===== */
/* 卷轴几何：right/left 2%，宽 min(84%, 88vh*2.15)。人物内缘 = 98% - 卷轴宽 + 6% 边距 */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char {
  left: calc(98% - min(84%, calc(88vh * 2.15)) + 6%) !important;
  right: auto !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char {
  right: calc(98% - min(84%, calc(88vh * 2.15)) + 6%) !important;
  left: auto !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] {
  right: calc(98% - min(84%, calc(88vh * 2.15)) + 6%) !important;
  left: auto !important;
}

/* ===== L3 人物组居中于卷轴边缘线（白龙基准，2026-09-30） ===== */
.j81-l3-stage .j81-l3-char[data-char="wukong"] { --l3-half-w: 240px; }
.j81-l3-stage .j81-l3-char[data-char="bajie"] { --l3-half-w: 240px; }
.j81-l3-stage .j81-l3-char[data-char="tangseng"] { --l3-half-w: 260px; }
.j81-l3-stage .j81-l3-char[data-char="shaseng"] { --l3-half-w: 270px; }
.j81-l3-stage .j81-l3-char[data-char="bailong"] { --l3-half-w: 250px; }
/* char-left：人物中线压在卷轴左边框线 */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char {
  left: calc(98% - min(84%, calc(88vh * 2.15)) - var(--l3-half-w, 250px)) !important;
  right: auto !important;
}
/* char-right：人物中线压在卷轴右边框线 */
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] {
  right: calc(98% - min(84%, calc(88vh * 2.15)) - var(--l3-half-w, 250px)) !important;
  left: auto !important;
}

/* ===== L3 白龙气泡：按首页头/泡比例缩小，贴头部右上方 ===== */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble {
  width: 96px !important;
  height: 86px !important;
  left: 60% !important;
  top: 14% !important;
}
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble {
  left: 66% !important;
  top: 15% !important;
}
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble {
  left: 72% !important;
}

/* ===== L3 五人气泡统一缩小至首页比例 + 贴头部（真人视觉微调 2026-09-30） ===== */
.j81-l3-stage .j81-char-wrap .j81-bubble {
  width: 96px !important;
  height: 86px !important;
}
/* 悟空：云中央如意台偏左，人物右移踩台；气泡收到头顶左侧 */
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-shift-x: -7% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { left: 30% !important; top: 30% !important; }
/* 八戒：气泡收到头顶右上 */
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { left: 66% !important; top: 28% !important; }
/* 沙僧：气泡收到头顶右上 */
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 66% !important; top: 20% !important; }
/* 唐僧：气泡移到宝冠右侧，不顶轴上边框 */
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 58% !important; top: 4% !important; }
/* 白龙：云抬上贴合双脚、略右移对齐人；气泡再抬离金线 */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-bottom: -16% !important; --cloud-shift-x: 5% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 74% !important; top: 12% !important; }
/* 悟空整体略上移，人落云台 */
.j81-l3-stage .j81-l3-char[data-char="wukong"] { top: 54% !important; }

/* ===== L3 气泡二轮微调：层级压武器 + 白龙/唐僧落位 ===== */
.j81-l3-stage .j81-char-wrap .j81-bubble { z-index: 6 !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 84% !important; top: 10% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { top: 6% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 62% !important; top: 16% !important; }

/* ===== 星图/过招/盘方页：气泡与 L3 同款标准（2026-09-30 自审扩面） ===== */
.j81-starfield .j81-char-wrap .j81-bubble,
.j81-stage-layout .j81-char-wrap .j81-bubble,
.j81-gate-layout .j81-char-wrap .j81-bubble {
  width: 96px !important;
  height: 86px !important;
  z-index: 6 !important;
}
.j81-starfield .j81-char-wrap[data-char="wukong"] .j81-bubble,
.j81-stage-layout .j81-char-wrap[data-char="wukong"] .j81-bubble,
.j81-gate-layout .j81-char-wrap[data-char="wukong"] .j81-bubble { left: 30% !important; top: 30% !important; }
.j81-starfield .j81-char-wrap[data-char="bajie"] .j81-bubble,
.j81-stage-layout .j81-char-wrap[data-char="bajie"] .j81-bubble,
.j81-gate-layout .j81-char-wrap[data-char="bajie"] .j81-bubble { left: 66% !important; top: 28% !important; }
.j81-starfield .j81-char-wrap[data-char="shaseng"] .j81-bubble,
.j81-stage-layout .j81-char-wrap[data-char="shaseng"] .j81-bubble,
.j81-gate-layout .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 62% !important; top: 16% !important; }
.j81-starfield .j81-char-wrap[data-char="tangseng"] .j81-bubble,
.j81-stage-layout .j81-char-wrap[data-char="tangseng"] .j81-bubble,
.j81-gate-layout .j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 58% !important; top: 6% !important; }
.j81-starfield .j81-char-wrap[data-char="bailong"] .j81-bubble,
.j81-stage-layout .j81-char-wrap[data-char="bailong"] .j81-bubble,
.j81-gate-layout .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 84% !important; top: 10% !important; }

/* ===== 沙僧云：星图/过招/盘方页对齐脚底盘（不再偏左下） ===== */
.j81-starfield .j81-char-wrap[data-char="shaseng"] .j81-cloud,
.j81-stage-layout .j81-char-wrap[data-char="shaseng"] .j81-cloud,
.j81-gate-layout .j81-char-wrap[data-char="shaseng"] .j81-cloud {
  --cloud-shift-x: 2% !important;
  --cloud-bottom: -8% !important;
}

/* ===== 已过难八角标只留空标（去掉编号文字，杜绝与当前难标叠字） ===== */
.j81-star.is-done .n { display: none !important; }
.j81-star.is-done { transform: translate(-50%, -50%) scale(0.7); }

/* ===== 唐僧气泡：宝冠右侧（不越卷轴上缘） ===== */
.j81-starfield .j81-char-wrap[data-char="tangseng"] .j81-bubble,
.j81-stage-layout .j81-char-wrap[data-char="tangseng"] .j81-bubble,
.j81-gate-layout .j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 70% !important; top: 8% !important; }

/* ===== 对齐手绘图5-9：人物组主体在卷轴外（身位偏外约0.3身位，云梢/兵器梢搭轴杆） ===== */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char {
  left: calc(98% - min(84%, calc(88vh * 2.15)) - calc(var(--l3-half-w, 250px) * 1.6)) !important;
  right: auto !important;
  top: 55% !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] {
  right: calc(98% - min(84%, calc(88vh * 2.15)) - calc(var(--l3-half-w, 250px) * 1.6)) !important;
  left: auto !important;
  top: 55% !important;
}
/* 星图：人物主体出轴 */
.j81-starfield[data-layout="char-right"] .j81-board-char { right: -12% !important; left: auto !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char { left: -10% !important; right: auto !important; }

/* ===== 星图人物出轴幅度修正：约2/3身在屏内（手绘图5-9比例） ===== */
.j81-starfield[data-layout="char-right"] .j81-board-char { right: -8% !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char { left: -6% !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char[data-char="bailong"] { left: -4% !important; }

/* ===== 手绘图修正二轮：身体回贴卷轴（系数1.35）+ 垂直居中 + 白龙云贴脚气泡贴头 ===== */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char {
  left: calc(98% - min(84%, calc(88vh * 2.15)) - calc(var(--l3-half-w, 250px) * 1.35)) !important;
  top: 52% !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] {
  right: calc(98% - min(84%, calc(88vh * 2.15)) - calc(var(--l3-half-w, 250px) * 1.35)) !important;
  top: 52% !important;
}
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud {
  --cloud-bottom: -12% !important;
  --cloud-shift-x: 9% !important;
}
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble {
  left: 70% !important;
  top: 16% !important;
}

/* ===== 真人视觉三轮：身体跨杆回收（1.15）+ 唐僧气泡入轴贴冠 + 白龙云托脚 ===== */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char {
  left: calc(98% - min(84%, calc(88vh * 2.15)) - calc(var(--l3-half-w, 250px) * 1.15)) !important;
}
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] {
  right: calc(98% - min(84%, calc(88vh * 2.15)) - calc(var(--l3-half-w, 250px) * 1.15)) !important;
}
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 64% !important; top: 12% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-bottom: -9% !important; --cloud-shift-x: 6% !important; }

/* ===== 唐僧双屏卷轴（手绘图5）：中缝留白 + 双中杆，仅 char-center 显示 ===== */
.gs-split-gap, .gs-rod.split-cl, .gs-rod.split-cr { display: none !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-gap {
  display: block !important;
  position: absolute;
  left: 40%; width: 20%;
  top: 1.5%; bottom: 1.5%;
  background: linear-gradient(180deg, rgba(9,6,22,0.97), rgba(14,9,30,0.97));
  z-index: 1;
  pointer-events: none;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-rod.split-cl {
  display: flex !important;
  left: calc(40% - 9px); right: auto;
  z-index: 2;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-rod.split-cr {
  display: flex !important;
  left: calc(60% - 7px); right: auto;
  z-index: 2;
}
/* 唐僧站中缝正中 + 缩小（约卷轴高 42%） */
.j81-l3-stage[data-layout="char-center"] .j81-l3-char {
  left: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-char .j81-char-stack {
  width: min(calc(300px + 7vw), 400px) !important;
}
/* 正文留在左屏，不进中缝 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .j81-l3-holo-inner {
  inset: 4% 42% 4% 5% !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-desc,
.j81-l3-stage[data-layout="char-center"] #j81-l3-desc {
  min-width: 0 !important;
  width: 100% !important;
}

/* 中缝暗带全高覆盖 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-gap {
  top: 0 !important;
  bottom: 0 !important;
  z-index: 3 !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-rod.split-cl,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-rod.split-cr { z-index: 4 !important; }

/* ===== 终审修正：气泡字缩小至 32px（匹配 96px 气泡） ===== */
.j81-l3-stage .j81-bubble-text,
.j81-starfield .j81-bubble-text,
.j81-stage-layout .j81-bubble-text,
.j81-gate-layout .j81-bubble-text { font-size: 32px !important; }

/* ===== 终审修正：云朵收紧 + 气泡抬升贴头 ===== */
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-w: 70% !important; --cloud-bottom: -30% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { top: 20% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-w: 55% !important; --cloud-bottom: -26% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { top: 24% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-w: 56% !important; --cloud-bottom: -8% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { top: 14% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { top: 12% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-cloud { --cloud-bottom: -24% !important; }

/* ===== 唐僧双屏：两独立屏视觉 + 透视变化（折痕阴影 + 整体微俯视） ===== */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo {
  transform: perspective(1500px) rotateX(1.6deg) !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-gap {
  background:
    linear-gradient(90deg, rgba(0,0,0,0.55) 0%, rgba(9,6,22,0.97) 12%, rgba(14,9,30,0.97) 88%, rgba(0,0,0,0.55) 100%) !important;
}

/* 修正：char-center 透视须保留原 translate(-50%,-50%) 定位 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo {
  transform: translate(-50%, -50%) perspective(1500px) rotateX(1.6deg) !important;
}

/* ===== 终审微调：八戒气泡离杆、沙僧气泡避铲 ===== */
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { left: 58% !important; top: 18% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 52% !important; top: 10% !important; }


/* ===== A/B候选B：气泡再大一点（近截图1观感） ===== */
.j81-l3-stage .j81-char-wrap .j81-bubble { width: 118px !important; height: 104px !important; }
.j81-l3-stage .j81-bubble-text { font-size: 36px !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { top: 24% !important; }

/* ===== 真·双扇独立屏（手绘图5）：左右各一扇完整屏，绕中缝张开 + 俯视 ===== */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::before,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::after {
  display: block !important;
  content: "";
  position: absolute;
  top: 2.5%;
  bottom: 2.5%;
  width: 44%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(160deg, rgba(28,22,50,0.94), rgba(14,10,30,0.96));
  border: 1px solid rgba(255, 215, 0, 0.5);
  box-shadow: 0 0 16px rgba(255, 215, 0, 0.12), inset 0 0 44px rgba(255, 215, 0, 0.06);
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::before {
  left: 2.5%;
  transform-origin: 100% 50%;
  transform: perspective(1300px) rotateY(17deg);
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::after {
  right: 2.5%;
  transform-origin: 0% 50%;
  transform: perspective(1300px) rotateY(-17deg);
}
/* 中缝改真缝：透出背景 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-gap { background: transparent !important; }
/* 唐僧再收一点、下沉避让顶饰 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-char { top: 54% !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-char .j81-char-stack { width: min(calc(280px + 6vw), 370px) !important; }

/* ===== L3 气泡下移贴头（B版尺寸基） ===== */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { top: 16% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { top: 26% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { top: 14% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { top: 14% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { top: 26% !important; }

/* ===== 星图页（唐僧终审）：云贴脚 + 气泡字 34px 覆盖旧规则 + 人物与场景框避让 ===== */
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-cloud { bottom: -22% !important; }
.j81-starfield .j81-board-char .j81-bubble-text { font-size: 34px !important; }
.j81-starfield[data-layout="char-center"] .j81-board-char { left: 58% !important; }
.j81-starfield[data-layout="char-center"] #j81-scroll-desc,
.j81-starfield[data-layout="char-center"] .j81-scroll-desc { max-width: 32% !important; }

/* 场景框回左屏，不压人物 */
.j81-starfield[data-layout="char-center"] #j81-scroll-desc,
.j81-starfield[data-layout="char-center"] .j81-scroll-desc {
  align-self: flex-start !important;
  max-width: 34% !important;
}

/* ===== 真·双扇金卷轴对（手绘图5）：两扇各自完整卷轴，绕中缝透视张开 ===== */
.gs-split-pair { display: none; }
/* char-center 时藏单卷轴，亮双扇 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo > .gold-scroll-wrap { display: none !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::before,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::after { display: none !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .gold-scroll-wrap.half {
  position: absolute;
  top: 2%;
  bottom: 2%;
  width: 44%;
  inset-inline: auto;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .half.left {
  left: 2.5%;
  right: auto;
  transform-origin: 100% 50%;
  transform: perspective(1300px) rotateY(15deg);
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .half.right {
  right: 2.5%;
  left: auto;
  transform-origin: 0% 50%;
  transform: perspective(1300px) rotateY(-15deg);
}
/* 正文收进左屏 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .j81-l3-holo-inner { inset: 4% 44% 4% 5% !important; }
/* ===== 白龙定稿(032829)关系复原覆盖层 · 仅预览 ===== */
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo,
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo { width: 80% !important; max-width: 80% !important; }
.j81-l3-stage[data-layout="char-left"] .j81-l3-char { left: 1.4% !important; right: auto !important; top: calc(50% + 200px) !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] { right: 1.4% !important; left: auto !important; top: calc(50% + 200px) !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-w: 88% !important; --cloud-bottom: -33% !important; --cloud-shift-x: 0% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-w: 88% !important; --cloud-bottom: -40% !important; --cloud-shift-x: 0% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-w: 64% !important; --cloud-bottom: -10% !important; --cloud-shift-x: 13% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-w: 36% !important; --cloud-bottom: -25% !important; --cloud-shift-x: 0% !important; }
.j81-l3-stage .j81-char-wrap .j81-bubble { width: 118px !important; height: 106px !important; }
.j81-l3-stage .j81-bubble-text { font-size: 42px !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { left: 30% !important; top: 8% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { left: 70% !important; top: 12% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 78% !important; top: 10% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 58% !important; top: 8% !important; }

/* ===== 终审微调（定稿基）：人站云正中 + 白龙×1.2 + 双扇透视改灭点式 ===== */
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-bottom: -40% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-bottom: -46% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-bottom: -14% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-cloud { --cloud-bottom: -30% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-bottom: -31% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-char-stack {
  width: min(calc(480px + 11vw), 600px) !important;
}
/* 双扇：灭点下移（rotateX 4°）+ 左右边线垂直（rotateY 收至 8°），撤整轴 tilt */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo { transform: translate(-50%, -50%) !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .half.left {
  transform: perspective(1300px) rotateX(4deg) rotateY(8deg) !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .half.right {
  transform: perspective(1300px) rotateX(4deg) rotateY(-8deg) !important;
}

/* 白龙放大后云重新对准脚底 */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud {
  --cloud-bottom: -18% !important;
  --cloud-w: 42% !important;
}

/* ===== 八角标唯一化：已过难=编号小圆点（去八角框），中央仅当前难一枚大八角 ===== */
.j81-star.is-done {
  clip-path: none !important;
  border-radius: 50% !important;
  width: clamp(42px, 5vw, 56px) !important;
  height: clamp(42px, 5vw, 56px) !important;
  min-height: 0 !important;
  padding: 0 !important;
  transform: translate(-50%, -50%) !important;
  box-shadow: 0 0 10px rgba(80, 200, 140, 0.35) !important;
}
.j81-star.is-done .n {
  display: block !important;
  font-size: 0.72rem !important;
  opacity: 0.95 !important;
}

/* ===== 星图白龙气泡：回头顶上方（原在枪头） ===== */
.j81-starfield .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 52% !important; top: 6% !important; }

/* ===== 定稿垂直位改视口单位（矮窗不再掉右下角）+ 悟空云收到70% ===== */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char { top: calc(50% + 17vh) !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] { top: calc(50% + 17vh) !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-w: 70% !important; }

/* ===== 悟空：整体上移 + 云再收 + 云心对脚 ===== */
.j81-l3-stage[data-layout="char-right"] .j81-l3-char { top: calc(50% + 8vh) !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud {
  --cloud-w: 55% !important;
  --cloud-bottom: -36% !important;
  --cloud-shift-x: -5% !important;
}

/* ===== 终审十条（2026-10-01） ===== */
/* 1+6. 垂直统一上移：左右均 50%+5vh（修八戒偏高、沙僧偏下） */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char { top: calc(50% + 5vh) !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-char,
.j81-l3-stage[data-layout="char-right"] .j81-l3-char[data-char="shaseng"] { top: calc(50% + 5vh) !important; }
/* 2. 悟空云回中 */
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-shift-x: 0% !important; }
/* 3. 八戒云收紧 */
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-w: 70% !important; }
/* 4. 气泡字统一36px（八戒/沙僧溢出） */
.j81-l3-stage .j81-bubble-text { font-size: 36px !important; }
/* 5. 沙僧气泡尖角指向头部（撤镜像）+ 位置 */
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble::before { transform: none !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 72% !important; top: 8% !important; }
/* 7. 唐僧缩小+气泡居中头部上方 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-char .j81-char-stack { width: min(calc(260px + 5vw), 340px) !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { width: 100px !important; height: 90px !important; left: 56% !important; top: 10% !important; }
/* 8. 双扇：边线垂直（rotateX 收到2°），左右张开10° */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .half.left { transform: perspective(1300px) rotateX(2deg) rotateY(10deg) !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair .half.right { transform: perspective(1300px) rotateX(2deg) rotateY(-10deg) !important; }
/* 9. 白龙卷轴放宽到84% */
.j81-l3-stage[data-layout="char-left"]:has(.j81-l3-char[data-char="bailong"]) .j81-l3-holo,
.j81-l3-stage[data-layout="char-right"]:has(.j81-l3-char[data-char="bailong"]) .j81-l3-holo { width: 84% !important; max-width: 84% !important; }
/* 10. 白龙气泡下移贴头 */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 60% !important; top: 14% !important; }

/* ===== 星图页人物与L3对齐：贴屏缘1.4%、垂直同L3 ===== */
.j81-starfield[data-layout="char-left"] .j81-board-char { left: 1.4% !important; top: calc(50% + 5vh) !important; }
.j81-starfield[data-layout="char-right"] .j81-board-char { right: 1.4% !important; left: auto !important; top: calc(50% + 5vh) !important; }
/* 星图白龙与L3同大 */
.j81-starfield .j81-board-char[data-char="bailong"] .j81-char-stack { width: min(calc(480px + 11vw), 600px) !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-cloud { width: 42% !important; }

/* ===== 唐僧 L3 回归单屏（2026-10-03 用户定） ===== */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo > .gold-scroll-wrap { display: block !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-pair { display: none !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-split-gap,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-rod.split-cl,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .gs-rod.split-cr { display: none !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::before,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo::after { display: none !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo { transform: translate(-50%, -50%) !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .j81-l3-holo-inner { inset: 4% 38% 4% 6% !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-char { left: 63% !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-char .j81-char-stack { width: min(calc(300px + 7vw), 420px) !important; }

/* ===== 星图页终审（2026-10-03）：八角标唯一+对标题齐平；唐僧贴缘+云对齐 ===== */
.j81-star.is-done { display: none !important; }
.j81-starfield[data-layout="char-center"] .j81-board-char {
  right: 1.4% !important;
  left: auto !important;
  top: calc(50% + 5vh) !important;
  transform: translateY(-50%) !important;
}
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-cloud {
  width: 82% !important;
  bottom: -9% !important;
  left: 44% !important;
}

/* ===== 星图页终审二（2026-10-03）：卷轴80%/唐僧=白龙比例/云心/气泡正中/文字一行/标对齐 ===== */
/* 2) 八角标：卷轴（=屏）中心 50%，垂直对齐黄色大标题 */
/* 3) 唐僧比例与白龙一致 + 气泡头顶正中 + 人站云心 */
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-char-stack {
  width: min(calc(260px + 6vw), 340px) !important;
}
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-bubble {
  left: 50% !important;
  top: 6% !important;
}
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-cloud {
  width: 120% !important;
  bottom: -10% !important;
  left: 41% !important;
}
/* 4) 场景文字一行排完 */
.j81-starfield[data-layout="char-center"] .j81-scroll-desc,
.j81-starfield[data-layout="char-center"] #j81-scroll-desc {
  max-width: none !important;
  white-space: nowrap !important;
}

/* ===== 卷轴人物侧留白（2026-10-03）：按 88vh 纵横比机制收窄，不动锚定 ===== */
.j81-starfield[data-layout="char-right"] .j81-scroll-panel {
  width: min(76%, calc(88vh * 2.15)) !important;
  max-width: 76% !important;
}
.j81-starfield[data-layout="char-center"] .j81-scroll-panel {
  left: 2% !important;
  right: auto !important;
  transform: translateY(-50%) !important;
  width: min(76%, calc(88vh * 2.15)) !important;
  max-width: 76% !important;
}
/* 八角标跟随卷轴中心（右/中布局 40%），垂直对齐黄色大标题 */
.j81-star.is-now { left: 40% !important; top: 32% !important; }

/* 八角标跟随各布局卷轴中心线 */
.j81-starfield[data-layout="char-left"] .j81-star.is-now { left: 60% !important; }

/* ===== 盘问/过招页·居中人物（唐僧）贴右缘+文字避让+缩小（2026-10-03） ===== */
.j81-gate-layout[data-layout="char-center"] .j81-stage-char,
.j81-stage-layout[data-layout="char-center"] .j81-stage-char {
  left: auto !important;
  right: 2% !important;
  top: 52% !important;
  transform: translateY(-50%) !important;
}
.j81-gate-layout[data-layout="char-center"] .j81-stage-char .j81-char-stack,
.j81-stage-layout[data-layout="char-center"] .j81-stage-char .j81-char-stack {
  width: min(calc(260px + 6vw), 360px) !important;
}
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy,
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy {
  right: 36% !important;
}

/* 盘问/过招·居中人物文字并单栏 */
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel .j81-scroll,
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel .j81-scroll {
  column-count: 1 !important;
}
/* 人物更贴右缘 */
.j81-gate-layout[data-layout="char-center"] .j81-stage-char,
.j81-stage-layout[data-layout="char-center"] .j81-stage-char {
  right: 0.8% !important;
}

/* ===== 全站UI排版标准落地（2026-10-08 工单v1） ===== */
/* 一、卷轴向人物侧加宽：L3 80→88%；星图 76→84% */
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo,
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo {
  width: 88% !important;
  max-width: 88% !important;
}
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo {
  width: min(88%, calc(88vh * 2.15)) !important;
  max-width: 88% !important;
}
.j81-starfield[data-layout="char-right"] .j81-scroll-panel,
.j81-starfield[data-layout="char-center"] .j81-scroll-panel {
  width: min(84%, calc(88vh * 2.15)) !important;
  max-width: 84% !important;
}
.j81-starfield[data-layout="char-left"] .j81-scroll-panel {
  left: 16% !important;
  width: 82% !important;
  max-width: 82% !important;
}
/* 八角标跟随新卷轴中心 */
.j81-star.is-now { left: 44% !important; }
.j81-starfield[data-layout="char-left"] .j81-star.is-now { left: 57% !important; }

/* 三、唐僧（杖朝右）→ 站左侧 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-char {
  left: 1.4% !important;
  right: auto !important;
  transform: translateY(-50%) !important;
}
.j81-starfield[data-layout="char-center"] .j81-board-char {
  left: 1.4% !important;
  right: auto !important;
}
.j81-gate-layout[data-layout="char-center"] .j81-stage-char,
.j81-stage-layout[data-layout="char-center"] .j81-stage-char {
  left: 0.8% !important;
  right: auto !important;
}
/* 唐僧页文字区改到右侧 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo .j81-l3-holo-inner { inset: 4% 5% 4% 30% !important; }
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy,
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy { left: 36% !important; right: clamp(72px, 7vw, 140px) !important; }

/* 二、人踩云如意正中 + 气泡喷口对嘴胸（L3 逐人微调） */
/* 沙僧：云回中、尾巴指嘴（撤镜像改左下）、气泡下移对嘴 */
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-shift-x: 2% !important; --cloud-bottom: -18% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble::before { transform: none !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 30% !important; top: 34% !important; }
/* 悟空：云居中、气泡对嘴 */
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-shift-x: 0% !important; --cloud-bottom: -38% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { left: 62% !important; top: 36% !important; }
/* 八戒：云居中、气泡对嘴 */
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-shift-x: 0% !important; --cloud-bottom: -44% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { left: 40% !important; top: 26% !important; }
/* 白龙：气泡对嘴 */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 60% !important; top: 22% !important; }
/* 唐僧：云居中、气泡对嘴 */
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-cloud { --cloud-shift-x: 0% !important; --cloud-bottom: -28% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 38% !important; top: 20% !important; }
/* 气泡文字一律严格居中于气泡 */
.j81-l3-stage .j81-bubble-text,
.j81-starfield .j81-bubble-text,
.j81-stage-layout .j81-bubble-text,
.j81-gate-layout .j81-bubble-text {
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
  text-align: center !important;
  width: 100% !important;
}

/* 四、场景文字框拉长 + 字号撑大 */
.j81-l3-stage .j81-l3-desc,
.j81-l3-stage #j81-l3-desc {
  min-width: min(88%, 900px) !important;
  font-size: clamp(1.6rem, 2.7vw, 2.6rem) !important;
}
.j81-starfield[data-layout="char-left"] .j81-scroll-desc,
.j81-starfield[data-layout="char-left"] #j81-scroll-desc,
.j81-starfield[data-layout="char-right"] .j81-scroll-desc,
.j81-starfield[data-layout="char-right"] #j81-scroll-desc {
  max-width: none !important;
  white-space: nowrap !important;
  font-size: clamp(1.3rem, 2.3vw, 2.2rem) !important;
}

/* 二(续)、星图/盘问/过招页：气泡喷口对嘴胸 + 云如意正中 */
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-bubble { left: 30% !important; top: 34% !important; }
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-bubble::before { transform: none !important; }
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-cloud { left: 50% !important; bottom: -16% !important; }
.j81-starfield .j81-board-char[data-char="wukong"] .j81-bubble { left: 60% !important; top: 36% !important; }
.j81-starfield .j81-board-char[data-char="bajie"] .j81-bubble { left: 42% !important; top: 28% !important; }
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-bubble { left: 40% !important; top: 24% !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-bubble { left: 58% !important; top: 20% !important; }
/* 盘问/过招页同款 */
.j81-gate-layout .j81-stage-char[data-char="shaseng"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="shaseng"] .j81-bubble { left: 30% !important; top: 34% !important; }
.j81-gate-layout .j81-stage-char[data-char="shaseng"] .j81-bubble::before,
.j81-stage-layout .j81-stage-char[data-char="shaseng"] .j81-bubble::before { transform: none !important; }
.j81-gate-layout .j81-stage-char[data-char="wukong"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="wukong"] .j81-bubble { left: 60% !important; top: 36% !important; }
.j81-gate-layout .j81-stage-char[data-char="bajie"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="bajie"] .j81-bubble { left: 42% !important; top: 28% !important; }
.j81-gate-layout .j81-stage-char[data-char="tangseng"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="tangseng"] .j81-bubble { left: 40% !important; top: 24% !important; }
.j81-gate-layout .j81-stage-char[data-char="bailong"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="bailong"] .j81-bubble { left: 58% !important; top: 20% !important; }

/* 过招/盘问·居中布局 copy 下移不顶轴上缘 */
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy {
  top: clamp(64px, 9vh, 120px) !important;
}
/* 沙僧气泡再右移至嘴上方 */
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-bubble { left: 44% !important; top: 30% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-bubble { left: 44% !important; top: 34% !important; }
.j81-gate-layout .j81-stage-char[data-char="shaseng"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="shaseng"] .j81-bubble { left: 44% !important; top: 34% !important; }

/* ===== UI落地二轮（2026-10-08）：文字框拉长 / 气泡对嘴 / 人物侵入轴内 ===== */
/* 1) 星图场景文字框拉长至 74%，字号撑大 */
.j81-starfield[data-layout] #j81-scroll-desc,
.j81-starfield[data-layout] .j81-scroll-desc {
  width: 74% !important;
  max-width: 74% !important;
  white-space: normal !important;
  font-size: clamp(1.5rem, 2.6vw, 2.5rem) !important;
}
/* 2) 星图人物组向轴内咬合（右/左各进 3%） */
.j81-starfield[data-layout="char-right"] .j81-board-char { right: 4% !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char { left: 4% !important; }
.j81-starfield[data-layout="char-center"] .j81-board-char { left: 4% !important; }
/* 3) 星图气泡锚点下移对嘴 */
.j81-starfield .j81-board-char[data-char="wukong"] .j81-bubble { top: 50% !important; }
.j81-starfield .j81-board-char[data-char="bajie"] .j81-bubble { top: 42% !important; }
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-bubble { top: 46% !important; }
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-bubble { top: 36% !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-bubble { top: 30% !important; }
/* 4) 过招/盘问页同款：人物进轴 3%、气泡对嘴 */
.j81-stage-layout[data-layout="char-right"] .j81-stage-char,
.j81-gate-layout[data-layout="char-right"] .j81-stage-char { right: 4% !important; }
.j81-stage-layout[data-layout="char-left"] .j81-stage-char,
.j81-gate-layout[data-layout="char-left"] .j81-stage-char { left: 4% !important; }
.j81-gate-layout[data-layout="char-center"] .j81-stage-char,
.j81-stage-layout[data-layout="char-center"] .j81-stage-char { left: 4% !important; }
.j81-gate-layout .j81-stage-char[data-char="wukong"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="wukong"] .j81-bubble { top: 50% !important; }
.j81-gate-layout .j81-stage-char[data-char="bajie"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="bajie"] .j81-bubble { top: 42% !important; }
.j81-gate-layout .j81-stage-char[data-char="shaseng"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="shaseng"] .j81-bubble { top: 46% !important; }
.j81-gate-layout .j81-stage-char[data-char="tangseng"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="tangseng"] .j81-bubble { top: 36% !important; }
.j81-gate-layout .j81-stage-char[data-char="bailong"] .j81-bubble,
.j81-stage-layout .j81-stage-char[data-char="bailong"] .j81-bubble { top: 30% !important; }

/* 星图场景字号再撑大 */
.j81-starfield[data-layout] #j81-scroll-desc,
.j81-starfield[data-layout] .j81-scroll-desc {
  font-size: clamp(1.8rem, 3.2vw, 3rem) !important;
}

.j81-starfield .j81-board-char[data-char="bailong"] .j81-bubble { top: 38% !important; }

/* ===== 人云比例与云心对位（2026-10-08 二调） ===== */
/* 悟空云按沙僧比例收紧 */
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-w: 48% !important; --cloud-bottom: -34% !important; }
.j81-starfield .j81-board-char[data-char="wukong"] .j81-cloud { --cloud-w: 52% !important; }
/* 白龙云右移，云中央如意纹托到人脚下 */
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-shift-x: 16% !important; --cloud-bottom: -20% !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-cloud { left: 58% !important; bottom: -20% !important; }
/* 八戒云：体宽云随之 */
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-w: 76% !important; --cloud-bottom: -40% !important; }
.j81-starfield .j81-board-char[data-char="bajie"] .j81-cloud { --cloud-w: 72% !important; }
/* 唐僧云：微托 */
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-cloud { --cloud-bottom: -26% !important; }
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-cloud { left: 52% !important; bottom: -16% !important; }
/* 沙僧云L3微托对称 */
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-w: 52% !important; }

/* ===== 人云气泡三调（按终审逐条） ===== */
/* 1) 悟空：气泡降到嘴、云微调使人站如意正中 */
.j81-starfield .j81-board-char[data-char="wukong"] .j81-bubble { left: 56% !important; top: 56% !important; }
.j81-starfield .j81-board-char[data-char="wukong"] .j81-cloud { --cloud-shift-x: 5% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { left: 58% !important; top: 40% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-shift-x: 5% !important; }
/* 2) 白龙：气泡离枪对嘴、云回收使人站中央 */
.j81-starfield .j81-board-char[data-char="bailong"] .j81-bubble { left: 48% !important; top: 42% !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-cloud { left: 52% !important; bottom: -18% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 56% !important; top: 26% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-shift-x: 12% !important; }
/* 3) 八戒：云人归中、气泡对嘴 */
.j81-starfield .j81-board-char[data-char="bajie"] .j81-bubble { left: 46% !important; top: 46% !important; }
.j81-starfield .j81-board-char[data-char="bajie"] .j81-cloud { --cloud-shift-x: -3% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-bubble { left: 42% !important; top: 30% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bajie"] .j81-cloud { --cloud-shift-x: -3% !important; }
/* 4) 唐僧：云缩小抬高贴脚、气泡离开额头对嘴、人组出轴不遮字 */
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-cloud { width: 66% !important; bottom: -22% !important; left: 50% !important; }
.j81-starfield .j81-board-char[data-char="tangseng"] .j81-bubble { left: 42% !important; top: 42% !important; }
.j81-starfield[data-layout="char-center"] .j81-board-char { left: 0.5% !important; }
.j81-starfield[data-layout="char-center"] #j81-scroll-desc,
.j81-starfield[data-layout="char-center"] .j81-scroll-desc { margin-left: 21% !important; width: 62% !important; max-width: 62% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-cloud { --cloud-w: 68% !important; --cloud-bottom: -32% !important; --cloud-shift-x: 0% !important; }
.j81-l3-stage .j81-char-wrap[data-char="tangseng"] .j81-bubble { left: 40% !important; top: 26% !important; }
/* 沙僧对齐同标准 */
.j81-starfield .j81-board-char[data-char="shaseng"] .j81-cloud { left: 48% !important; bottom: -18% !important; }
.j81-l3-stage .j81-char-wrap[data-char="shaseng"] .j81-cloud { --cloud-shift-x: 0% !important; --cloud-bottom: -20% !important; }

/* ===== 四调：按整页实测逐人微调 ===== */
.j81-starfield .j81-board-char[data-char="wukong"] .j81-bubble { top: 62% !important; }
.j81-starfield .j81-board-char[data-char="wukong"] .j81-cloud { --cloud-shift-x: -6% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-bubble { top: 44% !important; }
.j81-l3-stage .j81-char-wrap[data-char="wukong"] .j81-cloud { --cloud-shift-x: -6% !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-bubble { left: 42% !important; }
.j81-starfield .j81-board-char[data-char="bailong"] .j81-cloud { left: 56% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 52% !important; }
.j81-l3-stage .j81-char-wrap[data-char="bailong"] .j81-cloud { --cloud-shift-x: 16% !important; }
/* 唐僧：文字区移到右侧（人在左），desc 框随之 */
.j81-starfield[data-layout="char-center"] .j81-scroll-copy { left: 38% !important; right: 4% !important; }
.j81-starfield[data-layout="char-center"] #j81-scroll-desc,
.j81-starfield[data-layout="char-center"] .j81-scroll-desc { margin-left: 0 !important; width: 100% !important; max-width: 100% !important; }

/* 五调：提权强写 */
.j81-starfield[data-layout] .j81-board-char[data-char="wukong"] .j81-bubble { left: 56% !important; top: 62% !important; }
.j81-l3-stage[data-layout] .j81-char-wrap[data-char="wukong"] .j81-bubble { left: 58% !important; top: 44% !important; }
.j81-starfield[data-layout] .j81-board-char[data-char="bailong"] .j81-bubble { left: 36% !important; top: 42% !important; }
.j81-l3-stage[data-layout] .j81-char-wrap[data-char="bailong"] .j81-bubble { left: 52% !important; top: 26% !important; }
.j81-starfield[data-layout="char-center"] .j81-scroll-copy { padding-left: 38% !important; }

/* ===== 六调：ID级提权·气泡对嘴终版 ===== */
#j81-board-char[data-char="wukong"] .j81-bubble { left: 56% !important; top: 72% !important; }
#j81-board-char[data-char="bajie"] .j81-bubble { left: 44% !important; top: 56% !important; }
#j81-board-char[data-char="shaseng"] .j81-bubble { left: 44% !important; top: 58% !important; }
#j81-board-char[data-char="tangseng"] .j81-bubble { left: 42% !important; top: 50% !important; }
#j81-board-char[data-char="bailong"] .j81-bubble { left: 38% !important; top: 52% !important; }
#j81-l3-char[data-char="wukong"] .j81-bubble { left: 58% !important; top: 52% !important; }
#j81-l3-char[data-char="bajie"] .j81-bubble { left: 42% !important; top: 40% !important; }
#j81-l3-char[data-char="shaseng"] .j81-bubble { left: 44% !important; top: 46% !important; }
#j81-l3-char[data-char="tangseng"] .j81-bubble { left: 40% !important; top: 34% !important; }
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 52% !important; top: 34% !important; }

/* ===== 七调：气泡放嘴侧上方不遮脸 + 云心对脚 ===== */
/* 悟空（面朝左，站右）：气泡移到嘴的左上方；云右移对人 */
#j81-board-char[data-char="wukong"] .j81-bubble { left: 38% !important; top: 62% !important; }
#j81-board-char[data-char="wukong"] .j81-cloud { left: 54% !important; }
#j81-l3-char[data-char="wukong"] .j81-bubble { left: 40% !important; top: 46% !important; }
#j81-l3-char[data-char="wukong"] .j81-cloud { --cloud-shift-x: 6% !important; }
/* 白龙（面朝右，站左）：气泡回嘴前不入手；云左移对人 */
#j81-board-char[data-char="bailong"] .j81-bubble { left: 46% !important; top: 44% !important; }
#j81-board-char[data-char="bailong"] .j81-cloud { left: 48% !important; }
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 54% !important; top: 30% !important; }
#j81-l3-char[data-char="bailong"] .j81-cloud { --cloud-shift-x: 8% !important; }
/* 沙僧（面朝左，站右）：气泡嘴左侧 */
#j81-board-char[data-char="shaseng"] .j81-bubble { left: 38% !important; top: 52% !important; }
#j81-l3-char[data-char="shaseng"] .j81-bubble { left: 40% !important; top: 42% !important; }
/* 八戒：气泡微左不遮脸 */
#j81-board-char[data-char="bajie"] .j81-bubble { left: 40% !important; top: 52% !important; }
#j81-l3-char[data-char="bajie"] .j81-bubble { left: 40% !important; top: 38% !important; }
/* 唐僧：气泡嘴左侧 */
#j81-board-char[data-char="tangseng"] .j81-bubble { left: 36% !important; top: 46% !important; }
#j81-l3-char[data-char="tangseng"] .j81-bubble { left: 38% !important; top: 32% !important; }

/* ===== 八调：气泡位置=首页同款坐标（老板验收关系） ===== */
#j81-board-char[data-char="wukong"] .j81-bubble { left: 30% !important; top: 8% !important; }
#j81-board-char[data-char="bajie"] .j81-bubble { left: 70% !important; top: 12% !important; }
#j81-board-char[data-char="shaseng"] .j81-bubble { left: 78% !important; top: 10% !important; }
#j81-board-char[data-char="tangseng"] .j81-bubble { left: 42% !important; top: 8% !important; }
#j81-board-char[data-char="bailong"] .j81-bubble { left: 58% !important; top: 8% !important; }
#j81-l3-char[data-char="wukong"] .j81-bubble { left: 30% !important; top: 8% !important; }
#j81-l3-char[data-char="bajie"] .j81-bubble { left: 70% !important; top: 12% !important; }
#j81-l3-char[data-char="shaseng"] .j81-bubble { left: 78% !important; top: 10% !important; }
#j81-l3-char[data-char="tangseng"] .j81-bubble { left: 42% !important; top: 8% !important; }
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 58% !important; top: 8% !important; }

/* 九调：站姿等效首页关系（头顶侧上方、尾巴指头侧） */
#j81-board-char[data-char="wukong"] .j81-bubble,
#j81-l3-char[data-char="wukong"] .j81-bubble { left: 30% !important; top: 40% !important; }
#j81-board-char[data-char="bajie"] .j81-bubble,
#j81-l3-char[data-char="bajie"] .j81-bubble { left: 70% !important; top: 44% !important; }
#j81-board-char[data-char="shaseng"] .j81-bubble,
#j81-l3-char[data-char="shaseng"] .j81-bubble { left: 78% !important; top: 42% !important; }
#j81-board-char[data-char="tangseng"] .j81-bubble,
#j81-l3-char[data-char="tangseng"] .j81-bubble { left: 42% !important; top: 40% !important; }
#j81-board-char[data-char="bailong"] .j81-bubble,
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 58% !important; top: 40% !important; }

/* ===== 十调：悟空气泡抬高+云前置；白龙气泡回右；八戒云对中 ===== */
#j81-board-char[data-char="wukong"] .j81-bubble,
#j81-l3-char[data-char="wukong"] .j81-bubble { top: 33% !important; }
#j81-board-char[data-char="wukong"] .j81-cloud { bottom: -26% !important; }
#j81-l3-char[data-char="wukong"] .j81-cloud { --cloud-bottom: -26% !important; }
#j81-board-char[data-char="bailong"] .j81-bubble,
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 66% !important; }
#j81-board-char[data-char="bajie"] .j81-cloud { --cloud-shift-x: 5% !important; }
#j81-l3-char[data-char="bajie"] .j81-cloud { --cloud-shift-x: 5% !important; }

#j81-board-char[data-char="bailong"] .j81-bubble,
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 50% !important; top: 34% !important; }

/* ===== 闯关/盘问页卷轴向星图标准看齐（2026-10-08） ===== */
/* 面板收窄80%并向对侧偏置：人物侧留白宽 */
.j81-stage-layout[data-layout="char-left"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-left"] #j81-gate-panel {
  left: 58% !important;
  transform: translate(-50%, -50%) !important;
  width: min(80%, calc(88vh * 2.15)) !important;
  max-width: 80% !important;
}
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel {
  left: 42% !important;
  transform: translate(-50%, -50%) !important;
  width: min(80%, calc(88vh * 2.15)) !important;
  max-width: 80% !important;
}
/* 人物贴缘跨轴（外探+侵入） */
.j81-stage-layout[data-layout="char-left"] .j81-stage-char,
.j81-gate-layout[data-layout="char-left"] .j81-stage-char { left: 4% !important; }
.j81-stage-layout[data-layout="char-right"] .j81-stage-char,
.j81-gate-layout[data-layout="char-right"] .j81-stage-char { right: 4% !important; }
/* 文字区避让：人物在左→文字右侧起；人物在右→文字左侧收 */
.j81-stage-layout[data-layout="char-left"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-left"] #j81-gate-panel > .j81-scroll-copy { left: 36% !important; right: clamp(72px, 7vw, 140px) !important; }

/* ===== 闯关/盘问人物栈宽修复（旧规则误挂 panel 前缀从不生效） ===== */
#j81-stage-char .j81-char-stack,
#j81-gate-char .j81-char-stack { width: min(28vw, 480px) !important; min-width: 400px !important; flex-shrink: 0 !important; }

/* 人物定位单锚（清旧 left/right 互挤） */
.j81-stage-layout[data-layout="char-right"] .j81-stage-char,
.j81-gate-layout[data-layout="char-right"] .j81-stage-char { left: auto !important; right: 4% !important; }
.j81-stage-layout[data-layout="char-left"] .j81-stage-char,
.j81-gate-layout[data-layout="char-left"] .j81-stage-char { right: auto !important; left: 4% !important; }

/* ===== 三大类修正（2026-10-09 按图） ===== */
/* 图1a: char-right 卷轴向人物侧延伸 88% */
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel {
  width: min(88%, calc(88vh * 2.15)) !important;
  max-width: 88% !important;
}
/* 图1b-fix: 沙僧站卷轴右边缘轴杆上（% 相对面板：left:100%+translateX(-50%)=人中心压在面板右缘，半出外） */
.j81-stage-layout[data-layout="char-right"] .j81-stage-char {
  left: 100% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
.j81-gate-layout[data-layout="char-right"] .j81-stage-char {
  left: 100% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
/* 图1c-fix: 卷轴内容区加宽（文字到人物前缘止） */
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel > .j81-scroll-copy {
  left: 8% !important;
  right: 18% !important;
}
/* 图1d: 场景框全宽+字号能大则大 */
#j81-stage-body {
  width: 100% !important;
  max-width: 100% !important;
  font-size: clamp(1.15rem, 1.9vw, 1.7rem) !important;
  line-height: 1.75 !important;
}
/* 图2: 三选项一排不滚 */
.j81-stage-choices, #j81-stage-choices {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  align-items: center !important;
  width: 100% !important;
}
.j81-stage-choices button, #j81-stage-choices button {
  flex: 1 1 0 !important;
  white-space: nowrap !important;
  font-size: clamp(.78rem, 1.25vw, .98rem) !important;
  padding-left: .6em !important;
  padding-right: .6em !important;
  letter-spacing: .02em !important;
}

/* ===== 三大类修正·char-center 镜像版（2026-10-10）：唐僧在左，全套对齐 char-right ===== */
/* 图1a: 卷轴向人物侧（左）延伸 88%，中心左偏 */
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel {
  left: 58% !important;
  transform: translate(-50%, -50%) !important;
  width: min(88%, calc(88vh * 2.15)) !important;
  max-width: 88% !important;
}
/* 图1b: 唐僧站卷轴左边缘轴杆上（% 相对面板：left:0+translateX(-50%)=人中心压在面板左缘，半出外） */
.j81-stage-layout[data-layout="char-center"] .j81-stage-char,
.j81-gate-layout[data-layout="char-center"] .j81-stage-char {
  left: 0 !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
}
/* 图1c: 卷轴内容区加宽（面板相对：人物占左缘约26%，文字从26%起到右留8%） */
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy {
  left: 26% !important;
  right: 8% !important;
}
/* 图2: 三选项必须一排（speak 步选项行） */
.j81-opt-row { display: flex !important; flex-wrap: nowrap !important; gap: 10px !important; align-items: center !important; width: 100% !important; }
.j81-opt-row .jade-badge-btn { flex: 1 1 0 !important; white-space: nowrap !important; font-size: clamp(.78rem, 1.25vw, .98rem) !important; padding-left: .6em !important; padding-right: .6em !important; }
/* 图2b: 星图八角标移到标题左侧空区（44%/50% 都压标题；copy 从 34% 起，标放 27% 垂直对齐标题） */
.j81-starfield[data-layout="char-center"] .j81-star.is-now { left: 27% !important; top: 30% !important; }
/* 图4: 过招台词/输入框全宽 */
#j81-stage-choices .j81-duel-chat,
#j81-stage-choices .j81-trial-box { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }

/* ===== 出场页可读性（2026-10-10）：场景字号撑大 + 按钮字号撑大 + 内容纵向居中 ===== */
/* 场景文字框：字号能大则大（覆盖 10-09 的 1.7rem 上限） */
#j81-stage-body {
  font-size: clamp(1.35rem, 2.2vw, 2rem) !important;
  line-height: 1.8 !important;
}
/* 卷轴内按钮（我认了/这不是我/存档回行程图/三选项）：字号撑大 */
.j81-stage-choices button, #j81-stage-choices button,
#j81-stage-panel .jade-badge-btn .jade-badge-label {
  font-size: clamp(1rem, 1.55vw, 1.3rem) !important;
}
/* 例外：speak 步三选项必须一排不滚，保持小字号 */
.j81-opt-row .jade-badge-btn,
.j81-opt-row .jade-badge-btn .jade-badge-label { font-size: clamp(.85rem, 1.3vw, 1.05rem) !important; }

/* ===== speak 三选项：一排不动，文字折两行防溢出（2026-10-10） ===== */
.j81-opt-row .jade-badge-btn,
.j81-opt-row .jade-badge-btn .jade-badge-label {
  white-space: normal !important;
  line-height: 1.4 !important;
  overflow: visible !important;
}

/* ===== 统一底部操作条（2026-10-10 晚）：所有闯关页按钮同一底部、左对齐、字号大、无下拉杆 ===== */
#j81-stage-panel > .j81-scroll-copy { scrollbar-width: none !important; }
#j81-stage-panel > .j81-scroll-copy::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
#j81-stage-panel .j81-scroll-actions {
  margin-top: auto !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  padding-top: 8px;
}
#j81-stage-panel .j81-scroll-actions .jade-badge-btn,
#j81-stage-panel .j81-scroll-actions .jade-badge-btn .jade-badge-label {
  font-size: clamp(1.05rem, 1.6vw, 1.35rem) !important;
  white-space: nowrap !important;
}
/* speak 三选项：两行包裹 + 小字，给整页腾出免滚动空间 */
.j81-opt-row .jade-badge-btn,
.j81-opt-row .jade-badge-btn .jade-badge-label { font-size: clamp(.85rem, 1.15vw, .98rem) !important; }
.j81-opt-row .jade-badge-btn { padding: 6px 10px !important; }
/* 场景文行距微调省高 */
#j81-stage-body { line-height: 1.7 !important; }
/* 内容超高时操作条仍钉在可视区底部（配合隐藏滚动条） */
#j81-stage-panel .j81-scroll-actions { position: sticky !important; bottom: 0 !important; }
/* 操作条悬浮时底部渐隐垫底，避免文字从按钮底下透出 */
#j81-stage-panel .j81-scroll-actions {
  background: linear-gradient(180deg, rgba(8,6,12,0) 0%, rgba(8,6,12,.55) 45%, rgba(8,6,12,.9) 100%) !important;
  padding-bottom: 6px !important;
}

/* ===== speak 三选项终版：宝石钮按文字自然撑宽、两端对齐场景框（2026-10-10 晚） ===== */
.j81-opt-row { justify-content: space-between !important; }
.j81-opt-row .jade-badge-btn {
  flex: 0 1 auto !important;
  container-type: normal !important;
  aspect-ratio: auto !important;
  width: auto !important;
  height: auto !important;
  min-height: 2.6em !important;
  padding: .5em 1.4em !important;
  white-space: nowrap !important;
}
.j81-opt-row .jade-badge-btn .jade-badge-label { white-space: nowrap !important; line-height: 1.3 !important; }

/* 补齐：宝石钮基础规则用 !important 锁了 width/height/min/max，必须全部解除 */
.j81-opt-row .jade-badge-btn {
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 2.6em !important;
  max-height: none !important;
}

/* ===== speak 三选项·定版：等宽铺满(对齐场景框) + 文字折行不溢出（ID级提权） ===== */
#j81-stage-choices .j81-opt-row .j81-opt-gold { flex: 1 1 0 !important; white-space: normal !important; }
#j81-stage-choices .j81-opt-row .j81-opt-gold .jade-badge-label { white-space: normal !important; word-break: break-all !important; }

/* ===== 过招页统一前面页面风格（2026-10-10 晚）：台词=场景文同款大框整宽靠左 ===== */
#j81-stage-choices .j81-duel-chat { width: 100% !important; max-width: 100% !important; max-height: none !important; gap: 12px !important; }
#j81-stage-choices .j81-duel-msg {
  align-self: stretch !important;
  max-width: 100% !important;
  text-align: left !important;
  font-size: clamp(1.2rem, 1.9vw, 1.75rem) !important;
  line-height: 1.75 !important;
  padding: 14px 18px !important;
  border-radius: 10px !important;
  border: 1px solid rgba(212, 175, 55, 0.45) !important;
  background: linear-gradient(180deg, rgba(40, 28, 14, 0.62), rgba(18, 14, 10, 0.78)) !important;
  box-sizing: border-box !important;
}
#j81-stage-choices .j81-duel-msg.j81-duel-me {
  max-width: 88% !important;
  align-self: flex-end !important;
  border-color: rgba(0, 212, 255, 0.4) !important;
}
#j81-stage-choices .j81-trial-box { width: 100% !important; }
#j81-stage-choices .j81-trial-box textarea.j81-input {
  width: 100% !important;
  box-sizing: border-box !important;
  font-size: clamp(1.1rem, 1.7vw, 1.5rem) !important;
  min-height: 3.2em !important;
  padding: 12px 16px !important;
}

/* ===== 修正：#j81-stage-choices 必须纵向排列（10-09"一排"规则误改容器为横排，过招页台词与输入框并列） ===== */
#j81-stage-choices {
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 12px !important;
}

/* ===== 收关小仪式：人物放大到参考尺寸 + 头部镜字勋章印章（2026-10-10 晚） ===== */
#j81-rite-small .j81-rite-fig { position: relative; }
#j81-rite-small .j81-rite-img {
  max-width: 46vw !important;
  max-height: 74vh !important;
  width: auto !important;
}
/* 勋章印章：圆形金印 + 镜字，人物定格后砸下 */
#j81-rite-small .j81-rite-seal {
  position: absolute;
  top: -3%;
  width: clamp(84px, 13vh, 150px);
  height: clamp(84px, 13vh, 150px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 34% 30%, #fff3c4 0%, #ffd700 38%, #c9920a 68%, #7a5200 100%);
  border: 3px solid #ffe9a8;
  box-shadow:
    0 0 0 4px rgba(122, 82, 0, 0.85),
    0 0 26px rgba(255, 215, 0, 0.55),
    inset 0 3px 8px rgba(255, 252, 230, 0.65),
    inset 0 -5px 10px rgba(90, 58, 0, 0.55);
  opacity: 0;
  transform: scale(2.4) rotate(-14deg);
  pointer-events: none;
  z-index: 5;
}
#j81-rite-small .j81-rite-seal span {
  font-family: "悟道中宋", "Kaiti", "楷体", serif; /* 2026-10-28：商用颜体→开源文楷 */
  font-size: clamp(2.4rem, 6.5vh, 4.2rem);
  font-weight: 800;
  color: #7a1408;
  text-shadow: 0 1px 0 rgba(255, 236, 170, 0.8), 0 0 8px rgba(255, 240, 200, 0.5);
}
#j81-rite-small[data-side="right"] .j81-rite-seal { left: -7%; }
#j81-rite-small[data-side="left"] .j81-rite-seal { right: -7%; }
#j81-rite-small .j81-rite-seal.is-stamped {
  opacity: 1;
  transform: scale(1) rotate(-8deg);
  transition: transform 0.45s cubic-bezier(0.2, 1.6, 0.4, 1), opacity 0.2s ease;
}

/* 勋章定版：不依赖 opacity 过渡（隐藏标签页里过渡不推进），改用 visibility + 关键帧 */
#j81-rite-small .j81-rite-seal { opacity: 1 !important; visibility: hidden; }
#j81-rite-small .j81-rite-seal.is-stamped {
  visibility: visible;
  animation: j81-seal-stamp 0.5s cubic-bezier(0.2, 1.6, 0.4, 1) both;
}
@keyframes j81-seal-stamp {
  0% { transform: scale(2.4) rotate(-14deg); }
  100% { transform: scale(1) rotate(-8deg); }
}

/* ===== 盘问页同修（2026-10-10 晚）：内容区延展 + 无下拉杆 + 按钮字号统一 ===== */
/* 1) 卷轴内容区延展（与闯关页同布局同宽） */
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel > .j81-scroll-copy { left: 8% !important; right: 18% !important; }
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy { left: 26% !important; right: 8% !important; }
.j81-gate-layout[data-layout="char-left"] #j81-gate-panel > .j81-scroll-copy { left: 36% !important; right: 8% !important; }
/* 2) 彻底隐藏下拉杆 */
#j81-gate-panel > .j81-scroll-copy { scrollbar-width: none !important; }
#j81-gate-panel > .j81-scroll-copy::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
/* 3) 底部两按钮字号统一 */
#j81-gate-panel .j81-scroll-actions .jade-badge-btn,
#j81-gate-panel .j81-scroll-actions .jade-badge-btn .jade-badge-label { font-size: clamp(1.05rem, 1.6vw, 1.35rem) !important; white-space: nowrap !important; }

/* ===== 终版加宽加大（2026-10-10 晚）：场景字号↑ 内容区↑ 按钮钉底左对齐↑ ===== */
/* 场景文字再加大 */
#j81-stage-body { font-size: clamp(1.5rem, 2.6vw, 2.3rem) !important; }
/* 内容区向人物侧延展（人物半身在轴外，文字可多让 6%） */
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel > .j81-scroll-copy { left: 8% !important; right: 12% !important; }
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy { left: 26% !important; right: 6% !important; }
/* 按钮钉在卷轴最底部：hint 吸收剩余空间，按钮行恒在底 */
#j81-stage-panel > .j81-scroll-copy > .j81-hint { margin-top: auto !important; }
#j81-gate-panel > .j81-scroll-copy > .j81-hint { margin-top: auto !important; }
/* 按钮字号再加大 */
#j81-stage-panel .j81-scroll-actions .jade-badge-btn,
#j81-stage-panel .j81-scroll-actions .jade-badge-btn .jade-badge-label { font-size: clamp(1.15rem, 1.8vw, 1.55rem) !important; }

/* ===== L3 出场页·唐僧人云气泡关系（2026-10-10 晚） ===== */
/* 云加宽到人云比例协调，人站如意正中 */
#j81-l3-char[data-char="tangseng"] .j81-cloud { --cloud-w: 96% !important; --cloud-bottom: -30% !important; --cloud-shift-x: 0% !important; }
/* 气泡离开脸，悬在头顶左上方（禅杖在右，气泡置左上空） */
#j81-l3-char[data-char="tangseng"] .j81-bubble { left: 12% !important; top: -2% !important; }

/* ===== L3 出场页：卷轴左缘收至人身中央 + 上下加高 + 文字按人物方向对齐 ===== */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 57% !important; height: 94vh !important; }
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo { height: 94vh !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo { height: 94vh !important; }
/* 人物在左（center/left）→ 文字居右、右对齐；人物在右 → 居左、左对齐 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo-inner,
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo-inner { inset: 6% 6% 6% 30% !important; text-align: right !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo-inner { inset: 6% 32% 6% 6% !important; text-align: left !important; }
/* 标签/按钮跟随文字方向 */
.j81-l3-stage[data-layout="char-center"] .j81-l3-tags,
.j81-l3-stage[data-layout="char-left"] .j81-l3-tags { justify-content: flex-end !important; }

/* ===== 星图页（center）：文字右对齐，八角图标随文居中 ===== */
.j81-starfield[data-layout="char-center"] .j81-scroll-copy { left: 26% !important; right: 8% !important; padding-left: 0 !important; text-align: right !important; }
/* 星图唐僧：气泡离脸悬头顶左上、云加宽托人 */
#j81-board-char[data-char="tangseng"] .j81-bubble { left: 10% !important; top: 4% !important; }
#j81-board-char[data-char="tangseng"] .j81-cloud { width: 90% !important; left: 50% !important; bottom: -18% !important; }

/* ===== 底部操作条按钮解锁自动宽度（宝石固定比例会让大字号文字溢出被切） ===== */
#j81-stage-panel .j81-scroll-actions .jade-badge-btn,
#j81-gate-panel .j81-scroll-actions .jade-badge-btn {
  container-type: normal !important;
  aspect-ratio: auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 2.4em !important;
  max-height: none !important;
  padding: .45em 1.3em !important;
}
/* 场景文字再抬一档 */
#j81-stage-body { font-size: clamp(1.6rem, 2.8vw, 2.5rem) !important; }
/* 盘问页文字同步加大 */
#j81-gate-rx, #j81-gate-ask { font-size: clamp(1.4rem, 2.2vw, 1.9rem) !important; }

/* ===== 操作条按钮回撤：恢复宝石固定比例，整体放大一号（--jade-h 84px）防文字溢出 ===== */
#j81-stage-panel .j81-scroll-actions .jade-badge-btn,
#j81-gate-panel .j81-scroll-actions .jade-badge-btn {
  container-type: size !important;
  width: calc(var(--jade-h) * var(--badge-ar)) !important;
  min-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  max-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  height: var(--jade-h) !important;
  min-height: var(--jade-h) !important;
  max-height: var(--jade-h) !important;
  padding: 0 calc(var(--jade-h) * 0.12) !important;
  --jade-h: 84px !important;
}

/* 按钮文字回宝石比例（--jade-h×0.23），与整钮同比例放大，不再互相打架 */
#j81-stage-panel .j81-scroll-actions .jade-badge-btn .jade-badge-label,
#j81-gate-panel .j81-scroll-actions .jade-badge-btn .jade-badge-label { font-size: calc(var(--jade-h) * 0.23) !important; }

/* ===== 全站闯关页统一收尾（2026-10-10 午）：星图操作钮同宝石大号 + 全域无下拉杆 ===== */
.j81-scroll-panel .j81-scroll-actions .jade-badge-btn { --jade-h: 84px !important; }
.j81-scroll-panel .j81-scroll-actions .jade-badge-btn .jade-badge-label { font-size: calc(var(--jade-h) * 0.23) !important; }
.j81-scroll-panel { scrollbar-width: none !important; }
.j81-scroll-panel::-webkit-scrollbar { display: none !important; }
/* 失败/续档页与收尾页按钮同样兜底 */
#j81-stage-panel .j81-scroll-actions { justify-content: flex-start !important; }

/* ===== 小仪式印章·图库气泡款（2026-10-10 午）：疑嗔痴慢贪用对话气泡PNG+金字 ===== */
#j81-rite-small .j81-rite-seal {
  width: clamp(120px, 17vh, 200px) !important;
  height: auto !important;
  aspect-ratio: 384 / 348;
  background: center / 100% 100% no-repeat !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
#j81-rite-small .j81-rite-seal span {
  font-family: "悟道中宋", "STZhongsong", "KaiTi", serif;
  font-size: clamp(1.9rem, 4.6vh, 2.9rem) !important;
  font-weight: 800;
  background: linear-gradient(180deg, #FFF8EA 0%, #F6E7A2 30%, #D4AF37 55%, #8B6914 78%, #5C4208 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
  filter: drop-shadow(0 -0.5px 0 rgba(255,252,240,.55)) drop-shadow(0.5px 1px 0 rgba(30,18,2,.95)) drop-shadow(1px 2px 2px rgba(0,0,0,.6));
  transform: translateY(-6%);
}
/* 收关钮与引文对齐人物两脚中央（向右布局=向左平移半个人宽） */
#j81-rite-small[data-side="right"] #j81-rite-done,
#j81-rite-small[data-side="right"] #j81-rite-quote { margin-right: 21vw; }
#j81-rite-small[data-side="left"] #j81-rite-done,
#j81-rite-small[data-side="left"] #j81-rite-quote { margin-left: 21vw; }
/* 人物从小变大放慢一倍，保住 2D 动画感 */
#j81-rite-small .j81-rite-img { transition: transform 2.4s cubic-bezier(.2, 1, .3, 1), opacity 1.2s ease !important; }

/* ===== 星图页左侧人物定位纠正（2026-10-10 午）：与右侧同标准，人中心压轴杆半出外 ===== */
.j81-starfield[data-layout="char-center"] .j81-board-char { left: -5% !important; right: auto !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char { left: -3% !important; right: auto !important; }

/* 回调：-5% 过度外露，-2% 人中心约半压在轴杆上 */
.j81-starfield[data-layout="char-center"] .j81-board-char { left: -2% !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char { left: -1% !important; }

/* ===== L3 出场页·四规统一（2026-10-10 晚）：人轴关系/气泡居中/按钮对齐/场景框拉长/右边留空 ===== */
.j81-l3-stage[data-layout="char-center"] .j81-l3-char { left: 3% !important; }
.j81-l3-stage .j81-l3-char .j81-char-stack { width: min(calc(240px + 5vw), 310px) !important; }
#j81-l3-char[data-char="tangseng"] .j81-cloud { --cloud-shift-x: 4% !important; }
#j81-l3-char[data-char="tangseng"] .j81-bubble { left: 50% !important; top: -6% !important; transform: translateX(-50%) !important; }
.j81-l3-stage[data-layout="char-center"] .j81-scroll-actions,
.j81-l3-stage[data-layout="char-left"] .j81-scroll-actions { justify-content: flex-end !important; }
.j81-l3-stage[data-layout="char-right"] .j81-scroll-actions { justify-content: flex-start !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo-inner { inset: 6% 5% 6% 25% !important; }
.j81-l3-stage .j81-l3-desc { font-size: clamp(1.6rem, 2.6vw, 2.3rem) !important; line-height: 1.75 !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 55% !important; }

/* ===== L3 出场页·二调（2026-10-10 晚）：高度收敛 90vh + 右侧人物留空 36% + 全员气泡居中 ===== */
.j81-l3-stage .j81-l3-holo { height: 90vh !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo-inner { inset: 6% 36% 6% 6% !important; }
#j81-l3-char[data-char="tangseng"] .j81-bubble,
#j81-l3-char[data-char="wukong"] .j81-bubble,
#j81-l3-char[data-char="bajie"] .j81-bubble,
#j81-l3-char[data-char="shaseng"] .j81-bubble,
#j81-l3-char[data-char="bailong"] .j81-bubble { left: 50% !important; top: -6% !important; transform: translateX(-50%) !important; }

/* ===== 修正：background 简写会抹掉 JS 内联气泡图，拆开写 ===== */
#j81-rite-small .j81-rite-seal {
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 100% 100% !important;
}

/* 玻璃气泡在黑色仪式上发暗，加冰蓝辉光提显 */
#j81-rite-small .j81-rite-seal { filter: drop-shadow(0 0 24px rgba(140, 210, 255, 0.55)) drop-shadow(0 4px 12px rgba(0, 0, 0, 0.65)); }

/* ===== 全网勋章钮·真切片版（2026-10-10 夜）：实图切三段的保形伸缩 + 气泡字体 ===== */
.jade-badge-btn {
  container-type: normal !important;
  width: auto !important;
  min-width: calc(var(--jade-h) * 1.7) !important;
  max-width: none !important;
  height: var(--jade-h) !important;
  min-height: var(--jade-h) !important;
  max-height: var(--jade-h) !important;
  padding: 0 calc(var(--jade-h) * 0.42) !important;
  background: url("../assets/img/境界徽章/牌匾_中段.webp") repeat-x left center / auto 100% !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: calc(var(--jade-h) * 0.30) !important;
  letter-spacing: 0.04em;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
}
.jade-badge-btn::before,
.jade-badge-btn::after {
  content: "";
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  right: auto !important;
  width: calc(var(--jade-h) * 0.5) !important;
  height: auto !important;
  min-width: unset !important;
  min-height: unset !important;
  background: center / 100% 100% no-repeat !important;
  transform: none !important;
  pointer-events: none;
  z-index: 0;
}
.jade-badge-btn::before { left: 0 !important; background-image: url("../assets/img/境界徽章/牌匾_左帽.webp") !important; }
.jade-badge-btn::after { right: 0 !important; background-image: url("../assets/img/境界徽章/牌匾_右帽.webp") !important; }
.jade-badge-btn > .jade-badge-label,
.jade-badge-btn > span {
  position: relative;
  z-index: 1;
  max-width: none !important;
  overflow: visible !important;
  font-family: "悟道中宋", "STZhongsong", "KaiTi", serif !important;
  font-weight: 900 !important;
  background-image: linear-gradient(168deg,
    #FFFEF6 0%, #F0E4B8 10%, #D4AF37 26%, #A07A16 44%,
    #3A280C 62%, #120C06 76%, #6B4E12 90%, #C9A227 100%) !important;
  background-size: 100% 140% !important;
  background-position: 50% 18% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
  filter: drop-shadow(0 -0.5px 0 rgba(255, 252, 240, 0.55)) drop-shadow(0.5px 1px 0 rgba(30, 18, 2, 0.95)) drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.6)) !important;
}
/* 例外（必须全文件最后）：speak 三选项金丸不吃切片 */
#j81-stage-choices .j81-opt-gold,
.j81-opt-row .jade-badge-btn {
  background: linear-gradient(180deg, rgba(50, 36, 14, 0.85), rgba(22, 15, 6, 0.9)) !important;
  border: 1px solid rgba(212, 175, 55, 0.55) !important;
  filter: none !important;
}
#j81-stage-choices .j81-opt-gold::before,
#j81-stage-choices .j81-opt-gold::after,
.j81-opt-row .jade-badge-btn::before,
.j81-opt-row .jade-badge-btn::after { display: none !important; }

/* ===== 闯关页：卷轴不出屏 + 场景字再放大 + 气泡人物上方居中 ===== */
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel { left: 45% !important; }
.j81-stage-layout[data-layout="char-left"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-left"] #j81-gate-panel { left: 55% !important; }
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel { left: 55.5% !important; }
#j81-stage-body { font-size: clamp(1.6rem, 3vw, 2.8rem) !important; }
#j81-stage-char[data-char="tangseng"] .j81-bubble,
#j81-stage-char[data-char="wukong"] .j81-bubble,
#j81-stage-char[data-char="bajie"] .j81-bubble,
#j81-stage-char[data-char="shaseng"] .j81-bubble,
#j81-stage-char[data-char="bailong"] .j81-bubble { left: 50% !important; top: -4% !important; transform: translateX(-50%) !important; }

/* ===== 切片修正（0,2,0) 提权：中段铺进各容器；帽宽回归自然比例 0.24h ===== */
.j81-home-cta .jade-badge-btn,
.j81-actions .jade-badge-btn,
.j81-scroll-actions .jade-badge-btn,
.j81-l3 .jade-badge-btn {
  background: url("../assets/img/境界徽章/牌匾_中段.webp") repeat-x left center / auto 100% !important;
  padding: 0 calc(var(--jade-h) * 0.3) !important;
}
.jade-badge-btn::before,
.jade-badge-btn::after { width: calc(var(--jade-h) * 0.24) !important; }

/* ===== char-right 避让：人中心在右杆(不变)，文字区收到 83% 防遮挡 ===== */
.j81-stage-layout[data-layout="char-right"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-right"] #j81-gate-panel > .j81-scroll-copy { left: 6% !important; right: 17% !important; }

/* ===== speak 页三连修：两行均分 / 纵向收紧露出输入框 / 下拉杆清零 ===== */
#j81-stage-choices .j81-opt-row .jade-badge-btn .jade-badge-label { text-wrap: balance !important; }
#j81-stage-choices .j81-opt-row .jade-badge-btn { padding: 5px 10px !important; font-size: clamp(.8rem, 1.1vw, .95rem) !important; }
#j81-stage-choices .j81-trial-box { margin-top: 4px !important; }
#j81-stage-choices .j81-trial-box textarea.j81-input { min-height: 2.4em !important; padding: 8px 12px !important; }
#j81-stage-panel > .j81-scroll-copy { gap: 6px !important; }
#j81-stage-panel > .j81-scroll-copy { scrollbar-width: none !important; }
#j81-stage-panel > .j81-scroll-copy::-webkit-scrollbar,
#j81-stage-panel > .j81-scroll-copy::-webkit-scrollbar-thumb,
#j81-stage-panel > .j81-scroll-copy::-webkit-scrollbar-track { width: 0 !important; height: 0 !important; display: none !important; background: transparent !important; }

/* ===== 勋章钮·恢复原版（2026-10-11）：原宝石圆匾造型，文字溢出者仅等比放大该钮 ===== */
.j81-home-cta .jade-badge-btn,
.j81-actions .jade-badge-btn,
.j81-scroll-actions .jade-badge-btn,
.j81-l3 .jade-badge-btn,
.jade-badge-btn {
  container-type: size !important;
  width: calc(var(--jade-h) * var(--badge-ar)) !important;
  min-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  max-width: calc(var(--jade-h) * var(--badge-ar)) !important;
  height: var(--jade-h) !important;
  min-height: var(--jade-h) !important;
  max-height: var(--jade-h) !important;
  padding: 0 calc(var(--jade-h) * 0.12) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: calc(var(--jade-h) * 0.22) !important;
  filter: none !important;
}
.jade-badge-btn::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: calc(100cqh * 1.05) !important;
  height: calc(100cqw * 1.05) !important;
  min-width: unset !important;
  min-height: unset !important;
  background: var(--jade-badge-img, var(--jade-badge)) center / 100% 100% no-repeat !important;
  transform: translate(-50%, -50%) rotate(90deg) !important;
  pointer-events: none;
  z-index: 0;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
}
.jade-badge-btn::after { content: none !important; display: none !important; }
.jade-badge-btn > .jade-badge-label,
.jade-badge-btn > span {
  max-width: 92% !important;
  overflow: hidden !important;
  font-family: "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", sans-serif !important;
  font-weight: 400 !important;
  font-size: inherit !important;
  background-image: var(--jade-ink-gradient) !important;
  background-size: 100% 100% !important;
  background-position: 0 50% !important;
  filter: none !important;
  text-shadow: none !important;
}
/* 个别长文案钮：仅等比放大（宽高同比，零变形）解决溢出 */
#j81-stage-next.jade-badge-btn { --jade-h: 96px !important; }

/* ===== 全站字体规范（2026-10-11）：标题/题干不加粗；答案/内容改普通黑体宋体 ===== */
#j81-stage-title, #j81-l3-title, #j81-portrait-panel h1, #j81-gate-panel h1,
.j81-scroll-panel h1, h1[data-text], #j81-scroll-title { font-weight: 500 !important; }
#j81-portrait-body .j81-scroll,
#j81-portrait-body .j81-scroll-confirm { font-weight: 400 !important; }
#j81-stage-body, #j81-gate-rx, #j81-gate-ask, #j81-l3-desc,
#j81-scroll-desc, .j81-scroll-desc, #j81-rite-quote,
.j81-duel-msg, .j81-opt .txt, #j81-portrait-body .j81-opt .txt,
#j81-portrait-body .j81-scroll-confirm {
  font-family: "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", "宋体", sans-serif !important;
  font-weight: 400 !important;
}

/* ===== L3 出场页·三调（2026-10-11）：人再缩小 / 云托正 / 气泡加大 / 场景框再靠左 ===== */
.j81-l3-stage .j81-l3-char .j81-char-stack { width: min(calc(220px + 4.5vw), 285px) !important; }
#j81-l3-char[data-char="tangseng"] .j81-cloud { --cloud-shift-x: -4% !important; }
#j81-l3-char .j81-bubble { width: 142px !important; height: 128px !important; }
#j81-l3-char .j81-bubble-text { font-size: 46px !important; }
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo-inner { inset: 6% 4% 6% 22% !important; }

/* ===== 星图 center·卷轴靠右（2026-10-11）：人随杆半在外，按钮右对齐 ===== */
.j81-starfield[data-layout="char-center"] .j81-scroll-panel { left: 13% !important; width: 84% !important; max-width: 84% !important; }
.j81-starfield[data-layout="char-center"] .j81-board-char { left: 6.5% !important; }
.j81-starfield[data-layout="char-center"] .j81-scroll-actions { justify-content: flex-end !important; }

/* ===== 闯关 center/left·四修（2026-10-11）：卷轴右缘留空 / 框加宽字加大 / 按钮右对齐抬离底纹 / 唐僧缩小 ===== */
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel { left: 54.5% !important; }
.j81-stage-layout[data-layout="char-center"] #j81-stage-panel > .j81-scroll-copy,
.j81-gate-layout[data-layout="char-center"] #j81-gate-panel > .j81-scroll-copy { left: 22% !important; right: 5% !important; }
#j81-stage-body { font-size: clamp(1.7rem, 3.2vw, 3rem) !important; line-height: 1.85 !important; }
.j81-stage-layout[data-layout="char-center"] .j81-scroll-actions,
.j81-stage-layout[data-layout="char-left"] .j81-scroll-actions,
.j81-gate-layout[data-layout="char-center"] .j81-scroll-actions,
.j81-gate-layout[data-layout="char-left"] .j81-scroll-actions { justify-content: flex-end !important; }
#j81-stage-panel .j81-scroll-actions,
#j81-gate-panel .j81-scroll-actions { margin-bottom: 16px !important; }
#j81-stage-char[data-char="tangseng"] .j81-char-stack { width: min(24vw, 430px) !important; }

/* 右对齐·ID级提权（父布局链）：盖过 #j81-stage-panel 的 flex-start */
#j81-stage-layout[data-layout="char-center"] #j81-stage-panel .j81-scroll-actions,
#j81-stage-layout[data-layout="char-left"] #j81-stage-panel .j81-scroll-actions,
#j81-gate-layout[data-layout="char-center"] #j81-gate-panel .j81-scroll-actions,
#j81-gate-layout[data-layout="char-left"] #j81-gate-panel .j81-scroll-actions { justify-content: flex-end !important; }

/* L3 char-left 人物同样压左杆半在外（与 center/right 同标准） */
.j81-l3-stage[data-layout="char-left"] .j81-l3-char { left: 0% !important; }

/* ===== 自审二轮修复（2026-10-11）：L3右侧人物尺寸归位 / 云贴脚 / 气泡离脸 / 星图人物内收 ===== */
.j81-l3-stage[data-layout="char-right"] .j81-l3-char { right: 1% !important; left: auto !important; transform: translate(0, -50%) !important; }
#j81-l3-char[data-char="wukong"] .j81-char-stack,
#j81-l3-char[data-char="bajie"] .j81-char-stack,
#j81-l3-char[data-char="shaseng"] .j81-char-stack,
#j81-l3-char[data-char="bailong"] .j81-char-stack,
#j81-l3-char[data-char="tangseng"] .j81-char-stack { width: min(calc(240px + 5vw), 310px) !important; }
#j81-l3-char[data-char="wukong"] .j81-bubble,
#j81-l3-char[data-char="bajie"] .j81-bubble,
#j81-l3-char[data-char="shaseng"] .j81-bubble,
#j81-l3-char[data-char="bailong"] .j81-bubble,
#j81-l3-char[data-char="tangseng"] .j81-bubble { top: -10% !important; }
#j81-l3-char[data-char="shaseng"] .j81-cloud { --cloud-bottom: -6% !important; }
#j81-stage-char[data-char="bailong"] .j81-cloud { --cloud-bottom: -8% !important; --cloud-w: 88% !important; }
#j81-board-char[data-char="wukong"] .j81-bubble,
#j81-board-char[data-char="bajie"] .j81-bubble,
#j81-board-char[data-char="shaseng"] .j81-bubble,
#j81-board-char[data-char="bailong"] .j81-bubble,
#j81-board-char[data-char="tangseng"] .j81-bubble { left: 50% !important; top: -4% !important; transform: translateX(-50%) !important; }
.j81-starfield[data-layout="char-center"] .j81-board-char { left: 9% !important; }
.j81-starfield[data-layout="char-left"] .j81-board-char { left: 2% !important; }
.j81-starfield[data-layout="char-right"] .j81-board-char { right: 7% !important; }

/* ===== 终审提权（2026-10-11）：双 ID 选择器钉死人物宽度/站位与气泡悬空 ===== */
#j81-l3-stage #j81-l3-char .j81-char-stack { width: min(calc(240px + 5vw), 310px) !important; }
#j81-l3-stage[data-layout="char-left"] #j81-l3-char { left: 0 !important; right: auto !important; transform: translate(-50%, -50%) !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-char { left: 100% !important; right: auto !important; transform: translate(-50%, -50%) !important; }
#j81-l3-stage #j81-l3-char .j81-bubble { top: -18% !important; left: 50% !important; transform: translateX(-50%) !important; }
#j81-stage-layout #j81-stage-char .j81-bubble { top: -12% !important; left: 50% !important; transform: translateX(-50%) !important; }
#j81-starfield #j81-board-char .j81-bubble { top: -10% !important; left: 50% !important; transform: translateX(-50%) !important; }

/* char-left 人物中心对准面板左缘（6%），不再被屏幕切半 */
#j81-l3-stage[data-layout="char-left"] #j81-l3-char { left: 6% !important; }

#j81-l3-stage #j81-l3-char .j81-weapon { position: relative !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }

/* ===== L3 左右人物：中心精确压面板缘（旧基准算法 + 新栈宽半值 155px） ===== */
#j81-l3-stage[data-layout="char-left"] #j81-l3-char { left: calc(98% - min(84%, calc(88vh * 2.15)) - 155px) !important; right: auto !important; transform: translateY(-50%) !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-char { right: calc(98% - min(84%, calc(88vh * 2.15)) - 155px) !important; left: auto !important; transform: translateY(-50%) !important; }

/* ===== 画像五选项页：选项行收紧，按钮不再压 E 行 ===== */
.j81-portrait-opts .j81-opt { margin-top: 6px !important; padding: 8px 12px !important; }
#j81-portrait-body .j81-scroll { margin-bottom: 8px !important; }

/* ===== 确认页题干：去粗 + 普通黑体（压过 journey81.css 的 600 粗） ===== */
#j81-portrait-body p.j81-scroll.j81-scroll-confirm {
  font-weight: 400 !important;
  font-family: "Microsoft YaHei", "微软雅黑", "SimHei", "黑体", "宋体", sans-serif !important;
}

/* ===== L3 卷轴统一唐僧页标准：88% 宽 90vh 高（左右布局各就各位） ===== */
.j81-l3-stage[data-layout="char-left"] .j81-l3-holo,
.j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 55% !important; transform: translate(-50%, -50%) !important; width: min(88%, calc(88vh * 2.15)) !important; max-width: 88% !important; height: 90vh !important; }
.j81-l3-stage[data-layout="char-right"] .j81-l3-holo { left: 45% !important; transform: translate(-50%, -50%) !important; width: min(88%, calc(88vh * 2.15)) !important; max-width: 88% !important; height: 90vh !important; }

/* ===== 三大样板定标（2026-10-11）：卷轴同宽 / 场景框右对齐靠杆 / 字号随框 ===== */
/* L3 卷轴：全部=唐僧页 88%（含白龙特例），90vh */
#j81-l3-stage[data-layout="char-left"] .j81-l3-holo,
#j81-l3-stage[data-layout="char-center"] .j81-l3-holo,
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo,
#j81-l3-stage[data-layout="char-left"]:has(.j81-l3-char[data-char="bailong"]) .j81-l3-holo,
#j81-l3-stage[data-layout="char-right"]:has(.j81-l3-char[data-char="bailong"]) .j81-l3-holo {
  width: min(88%, calc(88vh * 2.15)) !important;
  max-width: 88% !important;
  height: 90vh !important;
}
#j81-l3-stage[data-layout="char-left"] .j81-l3-holo, #j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 55% !important; }
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo { left: 45% !important; }
/* 星图卷轴：与开卷页等大（88%） */
#j81-starfield[data-layout] .j81-scroll-panel { left: 11% !important; width: 84% !important; max-width: 84% !important; }
#j81-starfield[data-layout="char-right"] .j81-scroll-panel { left: 5% !important; }
/* 闯关卷轴：同图2标准 88% */
#j81-stage-layout[data-layout="char-left"] #j81-stage-panel, #j81-gate-layout[data-layout="char-left"] #j81-gate-panel,
#j81-stage-layout[data-layout="char-center"] #j81-stage-panel, #j81-gate-layout[data-layout="char-center"] #j81-gate-panel { left: 55% !important; width: min(88%, calc(88vh * 2.15)) !important; max-width: 88% !important; }
#j81-stage-layout[data-layout="char-right"] #j81-stage-panel, #j81-gate-layout[data-layout="char-right"] #j81-gate-panel { left: 45% !important; width: min(88%, calc(88vh * 2.15)) !important; max-width: 88% !important; }
/* 场景文字框：全右对齐；右距 5%（开卷页标准）；左缘贴杆避让人物；高度拉到底部按钮上 */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { inset: 5% 5% 16% 22% !important; text-align: right !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 34% 16% 6% !important; }
#j81-stage-layout #j81-stage-panel > .j81-scroll-copy,
#j81-gate-layout #j81-gate-panel > .j81-scroll-copy { left: 22% !important; right: 5% !important; text-align: right !important; }
#j81-stage-layout[data-layout="char-right"] #j81-stage-panel > .j81-scroll-copy,
#j81-gate-layout[data-layout="char-right"] #j81-gate-panel > .j81-scroll-copy { left: 6% !important; right: 34% !important; }
#j81-starfield[data-layout] .j81-scroll-copy { left: 24% !important; right: 5% !important; text-align: right !important; }
#j81-starfield[data-layout="char-right"] .j81-scroll-copy { left: 6% !important; right: 36% !important; }
/* 字号随框：再抬一档 */
#j81-stage-body { font-size: clamp(1.8rem, 3.4vw, 3.2rem) !important; }
#j81-l3-stage .j81-l3-desc { font-size: clamp(1.7rem, 3vw, 2.6rem) !important; }
#j81-starfield[data-layout] .j81-scroll-desc { font-size: clamp(1.8rem, 3.4vw, 3.2rem) !important; }

/* 星图卷轴补正：与开卷页完全等大 88% */
#j81-starfield[data-layout] .j81-scroll-panel { width: 88% !important; max-width: 88% !important; }
#j81-starfield[data-layout="char-right"] .j81-scroll-panel { left: 1% !important; }

/* ===== 裁剪后微调（2026-10-11）：L3 按钮钉底、文字框让位 ===== */
#j81-l3-stage .j81-l3-holo-inner { display: flex !important; flex-direction: column !important; padding-bottom: 4% !important; }
#j81-l3-stage .j81-scroll-actions { margin-top: auto !important; justify-content: flex-end !important; padding-top: 10px !important; }
#j81-l3-stage[data-layout="char-right"] .j81-scroll-actions { justify-content: flex-start !important; }

/* L3 内框：禁滚动（杀白杆）+ 按钮回流正常占位 */
#j81-l3-stage .j81-l3-holo-inner { overflow: visible !important; }
#j81-l3-stage .j81-scroll-actions { position: static !important; }

#j81-l3-stage .j81-l3-holo-inner { justify-content: flex-start !important; gap: 12px !important; }

#j81-l3-stage .j81-l3-holo .j81-scroll-actions { margin: 24px 0 0 !important; }

#j81-stage-body { line-height: 1.6 !important; }

/* 人物垂直中心线上移至 50%；内框下沿再降，按钮更贴底 */
#j81-l3-stage #j81-l3-char { top: 50% !important; }
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { inset: 5% 5% 12% 22% !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 34% 12% 6% !important; }

/* 文字框：左缘扩至 26%（贴人物）、下沿压至按钮上方 */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { inset: 5% 5% 8% 26% !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 30% 8% 6% !important; }

/* 指令逐项落地：文字框左扩至23%（人物560px不遮挡）、下沿压至回纹框底（按钮区） */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { inset: 5% 4% 7% 23% !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 24% 7% 5% !important; }

/* ===== 大白话微调（v112）：文字框扩宽扩高+字号放大；按钮钉死右下回纹框角 ===== */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { inset: 5% 4% 4% 26% !important; position: relative !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 24% 4% 6% !important; }
#j81-l3-stage .j81-l3-desc {
  font-size: clamp(2rem, 3.6vw, 3.2rem) !important;
  min-height: 46% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  text-align: right !important;
}
#j81-l3-stage .j81-l3-holo .j81-scroll-actions {
  position: absolute !important;
  right: 2% !important;
  bottom: 2% !important;
  margin: 0 !important;
}
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo .j81-scroll-actions { right: auto !important; left: 2% !important; }
/* 卷轴：五人强制同一规格（88%@55/45, 90vh），彻底与唐僧页一致 */
#j81-l3-stage[data-layout] .j81-l3-holo {
  width: min(88%, calc(88vh * 2.15)) !important;
  max-width: 88% !important;
  height: 90vh !important;
}
#j81-l3-stage[data-layout="char-left"] .j81-l3-holo, #j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 55% !important; }
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo { left: 45% !important; }

#j81-l3-stage .j81-l3-desc { white-space: normal !important; word-break: break-all !important; }

/* 场景文框终版：块级自然折行、强制无 max-width 限制 */
#j81-l3-stage #j81-l3-desc {
  display: block !important;
  max-width: none !important;
  min-height: 46% !important;
  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: break-word !important;
  text-align: right !important;
  padding: 26px 30px !important;
  box-sizing: border-box !important;
  font-size: clamp(2rem, 3.6vw, 3.2rem) !important;
  line-height: 1.7 !important;
}

/* ===== 回退修正（v114）：文字框自然化、按钮回可见位 ===== */
#j81-l3-stage #j81-l3-desc {
  min-height: 0 !important;
  padding: 18px 24px !important;
  font-size: clamp(1.8rem, 3.2vw, 2.9rem) !important;
  line-height: 1.7 !important;
  margin: 10px 0 !important;
}
#j81-l3-stage .j81-l3-holo .j81-scroll-actions {
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  margin-top: auto !important;
  margin-bottom: 0 !important;
}

/* ===== 文字框终局回正（v260）：复刻 n_bl 已验证几何，双ID压全部历史 ===== */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner {
  inset: 5% 5% 14% 23% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  position: absolute !important;
  overflow: visible !important;
}
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 30% 14% 6% !important; }
#j81-l3-stage #j81-l3-desc {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  padding: 16px 20px !important;
  margin: 6px 0 !important;
  font-size: clamp(1.7rem, 2.8vw, 2.5rem) !important;
  line-height: 1.75 !important;
  text-align: right !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  box-sizing: border-box !important;
}
#j81-l3-stage .j81-l3-holo .j81-scroll-actions {
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  margin: auto 0 0 !important;
  justify-content: flex-end !important;
}
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo .j81-scroll-actions { justify-content: flex-start !important; }

/* ===== v116 整版：卷轴统一76%对称留白 + 标题墨韵体 + speak内容区线框化 ===== */
/* 卷轴：人物在左 → 20–96%；在右 → 4–80%；center 同左（唐僧页=所有人同规格，左右留白对称） */
#j81-l3-stage[data-layout="char-left"] .j81-l3-holo, #j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 58% !important; width: 76% !important; max-width: 76% !important; height: 90vh !important; }
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo { left: 42% !important; width: 76% !important; max-width: 76% !important; height: 90vh !important; }
#j81-stage-layout[data-layout="char-left"] #j81-stage-panel, #j81-gate-layout[data-layout="char-left"] #j81-gate-panel,
#j81-stage-layout[data-layout="char-center"] #j81-stage-panel, #j81-gate-layout[data-layout="char-center"] #j81-gate-panel { left: 58% !important; width: 76% !important; max-width: 76% !important; }
#j81-stage-layout[data-layout="char-right"] #j81-stage-panel, #j81-gate-layout[data-layout="char-right"] #j81-gate-panel { left: 42% !important; width: 76% !important; max-width: 76% !important; }
#j81-starfield[data-layout="char-left"] .j81-scroll-panel, #j81-starfield[data-layout="char-center"] .j81-scroll-panel { left: 20% !important; width: 76% !important; max-width: 76% !important; }
#j81-starfield[data-layout="char-right"] .j81-scroll-panel { left: 4% !important; width: 76% !important; max-width: 76% !important; }
/* 标题/题干字体：方正墨韵体 简 */
h1[data-text], #j81-stage-title, #j81-l3-title, #j81-gate-panel h1, #j81-portrait-panel h1, #j81-portrait-body .j81-scroll, .j81-scroll-panel h1 {
  font-family: "方正墨韵体 简", "FZMoYunTiS", "悟道中宋", "STZhongsong", serif !important;
  font-weight: 400 !important;
}
/* speak 页内容区（线框）：hp签居内容区右上、场景框、三选项、通栏输入、右下按钮 */
#j81-stage-layout #j81-stage-panel > .j81-scroll-copy { left: 32% !important; right: 4% !important; text-align: right !important; }
#j81-stage-layout[data-layout="char-right"] #j81-stage-panel > .j81-scroll-copy { left: 4% !important; right: 32% !important; }
#j81-stage-panel .j81-chip { align-self: flex-end !important; }
#j81-stage-choices .j81-trial-box textarea.j81-input { width: 100% !important; }

/* ===== v119：卷轴细化 78vh（唐僧页细长比例）；文字框拉长至按钮旁 ===== */
#j81-l3-stage[data-layout] .j81-l3-holo { height: 78vh !important; }
#j81-stage-layout[data-layout] #j81-stage-panel, #j81-gate-layout[data-layout] #j81-gate-panel { height: 78vh !important; }
#j81-starfield[data-layout] .j81-scroll-panel { height: 78vh !important; }
#j81-l3-stage #j81-l3-desc { flex: 1 1 auto !important; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: flex-end !important; }

/* v120：文字框已拉长，字号同步放大 */
#j81-l3-stage #j81-l3-desc { font-size: clamp(2rem, 3.4vw, 3rem) !important; line-height: 1.65 !important; }

/* v121：框随字走——大字号紧凑框、自然高度、贴按钮上方 */
#j81-l3-stage #j81-l3-desc {
  flex: 0 0 auto !important;
  margin-top: auto !important;
  margin-bottom: 10px !important;
  font-size: clamp(2.4rem, 4vw, 3.8rem) !important;
  line-height: 1.6 !important;
  padding: 28px 34px !important;
}

/* v123：卷轴 74vh、左移5%（左页15-91/右页1-77）；按钮与文字贴底部小山峰 */
#j81-l3-stage[data-layout] .j81-l3-holo { height: 74vh !important; }
#j81-l3-stage[data-layout="char-left"] .j81-l3-holo, #j81-l3-stage[data-layout="char-center"] .j81-l3-holo { left: 53% !important; }
#j81-l3-stage[data-layout="char-right"] .j81-l3-holo { left: 39% !important; }
#j81-stage-layout[data-layout] #j81-stage-panel, #j81-gate-layout[data-layout] #j81-gate-panel { height: 74vh !important; }
#j81-stage-layout[data-layout="char-left"] #j81-stage-panel, #j81-gate-layout[data-layout="char-left"] #j81-gate-panel,
#j81-stage-layout[data-layout="char-center"] #j81-stage-panel, #j81-gate-layout[data-layout="char-center"] #j81-gate-panel { left: 53% !important; }
#j81-stage-layout[data-layout="char-right"] #j81-stage-panel, #j81-gate-layout[data-layout="char-right"] #j81-gate-panel { left: 39% !important; }
#j81-starfield[data-layout] .j81-scroll-panel { height: 74vh !important; }
#j81-starfield[data-layout="char-left"] .j81-scroll-panel, #j81-starfield[data-layout="char-center"] .j81-scroll-panel { left: 15% !important; }
#j81-starfield[data-layout="char-right"] .j81-scroll-panel { left: 1% !important; }
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { inset: 5% 5% 10% 23% !important; }
#j81-l3-stage[data-layout="char-right"] #j81-l3-holo .j81-l3-holo-inner { inset: 5% 28% 10% 5% !important; }
#j81-l3-stage #j81-l3-desc { margin-bottom: 6px !important; }

/* v125：内容垂直聚拢——上组文字下移、按钮上移 */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { justify-content: center !important; }

/* v126：解除文字框的 auto 上外边距（它吃掉了垂直居中的空间） */
#j81-l3-stage #j81-l3-desc { margin-top: 0 !important; }

#j81-l3-stage .j81-l3-holo .j81-scroll-actions { margin: 10px 0 0 !important; }

/* v127：半聚拢——题头居上、场景文下移至中下部、按钮贴文下 */
#j81-l3-stage #j81-l3-holo .j81-l3-holo-inner { justify-content: flex-start !important; }
#j81-l3-stage #j81-l3-desc { margin-top: 7% !important; }

/* ===== 冻结线（v158）：此文件不再追加任何规则，新改动去 j81-overrides.css ===== */
