/* ========================================================
   InnerWorld · 里世界样式表
   战术情报监视站 / 潜望阶梯 风格
   严格遵循方案 C：【纯粹黑白灰微光主义（Mono Tactical）】
   全盘脱离对系统 --accent 的依赖，杜绝纯黑/彩色失控翻车
   ======================================================== */

.innerworld-panel {
  background-color: #07080a !important;
  color: #e4e7eb;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
}

/* 高特异性：里世界激活时全屏覆盖，压过 #main > section.panel 的 relative 定位 */
section.innerworld-panel.panel.active {
  display: flex !important;
  flex-direction: column;
  position: fixed !important;
  inset: 0;
  z-index: 120;
  overflow: hidden;
}

/* 战术网格点阵背景 */
.innerworld-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 18px 18px;
  background-position: 0 0;
  pointer-events: none;
  z-index: 0;
}

/* 顶部微弱暗角冷白扫描光（纯白微晕，无彩色） */
.innerworld-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.04), transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* 顶部 HUD 战术状态栏 */
.iw-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  /* 严格遵循 iOS 灵动岛 / 刘海屏保护：max 兜底至少 12px，真机灵动岛可达到 54px+ */
  padding-top: max(12px, env(safe-area-inset-top, 12px));
  padding-left: max(12px, env(safe-area-inset-left, 12px));
  padding-right: max(12px, env(safe-area-inset-right, 12px));
  padding-bottom: 6px;
  background: transparent;
  min-height: 48px;
  box-sizing: border-box;
}

.iw-back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  margin: 0;
  border-radius: 8px;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: #c0c6cf !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.iw-back-btn:active {
  background: rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
  transform: scale(0.92) translateX(-2px);
}

.iw-back-btn svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 2.2;
}

/* 主内容容器 */
.iw-scroll-view {
  position: relative;
  z-index: 1;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 16px calc(env(safe-area-inset-bottom, 0px) + 24px);
  -webkit-overflow-scrolling: touch;
}

/* 页面大标题：对齐“世界/面具”风格，左对齐优雅排布 */
.iw-title-heading {
  margin: 0 0 8px 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.iw-verso-title {
  font-family: "Georgia", "Baskerville", "Times New Roman", "Noto Serif", serif;
  font-style: italic;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.5px;
  color: #f8fafc;
  line-height: 1.1;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}

.iw-verso-cn {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif !important;
  font-style: normal;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 2px;
}

/* 顶部引言文字：严格锁死现代无衬线黑体，绝不吃全局自定义字体 */
.iw-epigraph {
  margin: 0 0 20px 0;
  padding: 0 2px;
  font-size: 12px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.45);
  text-indent: 2em;
  letter-spacing: 0.3px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif !important;
}

/* ========================================================
   里世界特刊报头（Editorial Masthead & Folio）
   ======================================================== */
.iw-gazette-masthead {
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
}

.iw-gazette-folio {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 1.5px;
  color: rgba(226, 196, 141, 0.7);
  margin-bottom: 6px;
  text-transform: uppercase;
}

.iw-gazette-folio-sep {
  color: rgba(255, 255, 255, 0.2);
}

.iw-gazette-brand {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.iw-gazette-title {
  margin: 0;
  font-family: Georgia, "Songti SC", "SimSun", "Times New Roman", serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1px;
  color: #f8fafc;
  line-height: 1;
}

.iw-gazette-title-cn {
  font-family: "Songti SC", "SimSun", serif;
  font-size: 15px;
  letter-spacing: 3px;
  color: rgba(255, 255, 255, 0.45);
}

/* 报刊分界线：上粗下细双线质感 */
.iw-gazette-rule {
  height: 1px;
  background: rgba(255, 255, 255, 0.12);
  margin-bottom: 12px;
  position: relative;
}

.iw-gazette-rule::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.05);
}

/* 题记（保持原观测文案与内敛气质） */
.iw-epigraph {
  margin: 4px 0 0 0;
  padding: 0;
  font-size: 11.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.45);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif !important;
  letter-spacing: 0.3px;
}

/* ========================================================
   里世界错落杂志版面（Editorial Gazette Grid）
   ======================================================== */
.iw-gazette-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* --- 头条大专题（Cover Feature · 01 世界全域） --- */
.iw-gazette-feature {
  background: linear-gradient(145deg, rgba(28, 25, 22, 0.95) 0%, rgba(18, 17, 16, 0.98) 100%);
  border: 1px solid rgba(226, 196, 141, 0.22);
  border-radius: 6px;
  padding: 18px 16px 14px 16px;
  cursor: pointer;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 4px 20px rgba(0, 0, 0, 0.5);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  user-select: none;
}

.iw-gazette-feature:hover,
.iw-gazette-feature:active {
  transform: translateY(-2px);
  border-color: rgba(226, 196, 141, 0.45);
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 8px 26px rgba(0, 0, 0, 0.6),
    0 0 14px rgba(226, 196, 141, 0.08);
}

.iw-gazette-feature-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.iw-gazette-kicker {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-gazette-num {
  font-family: "ShareTechMono", monospace;
  font-size: 20px;
  font-weight: 800;
  color: #e2c48d;
  line-height: 1;
}

.iw-gazette-kicker-text {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 1.2px;
  color: rgba(255, 255, 255, 0.4);
}

.iw-gazette-badge {
  font-family: "ShareTechMono", monospace;
  font-size: 8.5px;
  letter-spacing: 1px;
  padding: 2px 7px;
  border-radius: 2px;
}

.iw-gazette-badge.is-live {
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.25);
}

.iw-gazette-headline {
  font-family: Georgia, "Songti SC", "SimSun", serif;
  font-size: 19px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.8px;
  margin-bottom: 6px;
  line-height: 1.2;
}

.iw-gazette-deck {
  font-size: 12px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 14px;
}

/* 底部压轴观察者印记（Strapline & Arrow） */
.iw-gazette-feature-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.iw-gazette-strapline {
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  letter-spacing: 1.6px;
  color: rgba(226, 196, 141, 0.65);
  text-transform: uppercase;
}

.iw-gazette-arrow {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  color: #e2c48d;
  transition: transform 0.2s ease;
}

.iw-gazette-feature:hover .iw-gazette-arrow {
  transform: translateX(3px);
}

/* --- 次版错落专栏（Columns 2x2 错落排版） --- */
.iw-gazette-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.iw-gazette-col-card {
  background: #141312;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 5px;
  padding: 12px 11px 11px 11px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all 0.2s ease;
  user-select: none;
}

.iw-gazette-col-card:hover,
.iw-gazette-col-card:active {
  border-color: rgba(255, 255, 255, 0.16);
  background: #181715;
  transform: translateY(-1px);
}

.iw-gazette-col-full {
  grid-column: 1 / -1;
}

.iw-gazette-col-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 6px;
}

.iw-gazette-num-sm {
  font-family: "ShareTechMono", monospace;
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.45);
}

.iw-gazette-code-sm {
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.25);
}

.iw-gazette-col-title {
  font-family: Georgia, "Songti SC", "SimSun", serif;
  font-size: 14.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 5px;
  letter-spacing: 0.3px;
}

.iw-gazette-col-brief {
  font-size: 10.5px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.38);
  margin-bottom: 10px;
  flex: 1;
}

.iw-gazette-col-status {
  font-family: "ShareTechMono", monospace;
  font-size: 7.5px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.25);
  border-top: 1px dashed rgba(255, 255, 255, 0.06);
  padding-top: 5px;
  margin-top: auto;
}

/* 题头与引言入场轻动画 */
.iw-title-heading {
  animation: iwFadeSubtle 0.28s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.iw-epigraph {
  animation: iwFadeSubtle 0.32s cubic-bezier(0.16, 1, 0.3, 1) both 0.04s;
}

/* 二级页面视图入场平滑淡入 */
.iw-subview-wrap {
  width: 100%;
}

.iw-subview-enter {
  animation: iwSubViewEnter 0.32s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* 媒介视口在 Tab 切换时的平滑渐显微动效 */
.iw-viewport-fade {
  animation: iwViewportFade 0.22s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes iwViewportFade {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes iwCardSlideUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes iwFadeSubtle {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes iwSubViewEnter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 卡片顶部层阶编号与频道 */
.iw-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.iw-card-channel {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-card-num {
  font-family: "ShareTechMono", monospace;
  font-size: 20px;
  font-weight: 800;
  color: #e2c48d; /* 高级香槟淡金，沉着静谧 */
  line-height: 1;
  opacity: 0.95;
  text-shadow: 0 0 12px rgba(226, 196, 141, 0.18);
  letter-spacing: 0.5px;
}

.iw-card-code {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: rgba(255, 255, 255, 0.5);
}

.iw-card-stamp {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: 0.5px;
}

/* 卡片主标题与中文字样 */
.iw-card-title {
  font-size: 17px;
  font-weight: 700;
  color: #f8fafc;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.iw-card-arrow {
  color: rgba(255, 255, 255, 0.3);
  transition: transform 0.2s ease, color 0.2s ease;
}

.iw-card:active .iw-card-arrow {
  transform: translateX(4px);
  color: #ffffff;
}

/* 卡片意境描述 / 观察视角 */
.iw-card-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.5;
  margin-bottom: 12px;
}

/* 子频段指示胶囊 */
.iw-card-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.iw-sub-chip {
  font-size: 11px;
  color: #cbd5e1;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 3px 8px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.iw-sub-chip::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #e2c48d;
  opacity: 0.75;
  box-shadow: 0 0 6px rgba(226, 196, 141, 0.4);
}

.iw-footer-note {
  margin-top: 24px;
  text-align: center;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
  letter-spacing: 1px;
}

/* ========================================================
   世界全域（MACROCOSM）二级页面与三大实体媒介样式
   ======================================================== */

/* 顶部媒介切换栏 */
.iw-media-nav {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 2px;
}

.iw-media-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  cursor: pointer;
  transition: all 0.2s ease;
}

.iw-media-tab.active {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
  font-weight: 600;
}

.iw-media-tab.active svg {
  color: #ffffff;
}

/* 媒介操作工具栏（左对齐，无边框，与题头呼应的“按钮 英文 / 中文”排版） */
.iw-action-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 22px;
  margin-bottom: 24px;
  padding: 0 2px;
}

.iw-btn-pulse {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
}

.iw-btn-pulse:active {
  transform: translateX(2px);
}

.iw-btn-pulse:active .iw-pulse-tag {
  border-color: rgba(255, 255, 255, 0.4);
  color: #ffffff;
  background: rgba(255, 255, 255, 0.1);
}

.iw-btn-pulse:active .iw-pulse-en {
  color: #fff;
}

/* 纯线条无框微图标 */
.iw-pulse-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.65);
  transition: all 0.25s ease;
}

.iw-btn-pulse:active .iw-pulse-tag {
  color: #ffffff;
  transform: rotate(60deg);
}

.iw-btn-pulse svg {
  width: 15px;
  height: 15px;
  color: currentColor;
  stroke-width: 2;
  display: block;
}

/* 单行排版：英文 / 中文（与大标题 The Verso / 里世界 形成完美首尾呼应） */
.iw-pulse-label-wrap {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-pulse-en {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif !important;
  font-style: normal;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: rgba(255, 255, 255, 0.75);
  transition: color 0.2s ease;
}

.iw-pulse-cn {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif !important;
  font-style: normal;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.38);
  letter-spacing: 0.5px;
}

/* --------------------------------------------------------
   实体媒介封底栏（Colophon）—— 将刷新按钮有机吸纳为刊物底标
   -------------------------------------------------------- */
.iw-medium-footer {
  margin-top: 24px;
  padding-top: 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.12);
}

.iw-crt-footer {
  border-top-color: rgba(74, 222, 128, 0.2);
}

.iw-zine-colophon {
  margin-top: 4px;
  padding: 14px 14px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}

.iw-footer-cutline {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  opacity: 0.5;
}

.iw-cutline-dash {
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.iw-cutline-text {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9.5px;
  letter-spacing: 1.5px;
  color: rgba(255, 255, 255, 0.45);
}

.iw-colophon-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.iw-colophon-btn {
  display: inline-flex;
  align-items: center;
  padding: 4px 0;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
}

.iw-colophon-btn:active {
  transform: translateX(3px);
}

.iw-colophon-btn:active .iw-pulse-en {
  color: #fff;
}

.iw-colophon-btn:active .iw-pulse-cn {
  color: #ffffff;
}

/* 右侧世界观游戏内时间戳（无边框无圆点，极简注记） */
.iw-colophon-timestamp {
  display: inline-flex;
  align-items: center;
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.iw-time-dot {
  display: none;
}

.iw-time-val {
  color: rgba(255, 255, 255, 0.4);
}

.iw-crt-footer .iw-time-val {
  color: rgba(167, 243, 208, 0.6);
}

/* --------------------------------------------------------
   媒介 1：【暗色纪事早报】（The Broadsheet）—— 交互式多篇动态折叠展开
   -------------------------------------------------------- */
.iw-paper-container {
  background: #0d0f14;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  padding: 16px 14px 20px;
  position: relative;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  transition: opacity 0.4s ease, filter 0.4s ease;
}

/* 定影揭晓出浴动效 */
.iw-paper-container.is-revealed {
  animation: iwDaylightReveal 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwDaylightReveal {
  0% {
    opacity: 0.6;
    filter: brightness(1.25) contrast(0.85);
    transform: translateY(3px);
  }
  100% {
    opacity: 1;
    filter: brightness(1) contrast(1);
    transform: translateY(0);
  }
}

/* ---------------- 暗室显影槽（Darkroom Tray 骨架屏与液体光晕） ---------------- */
.iw-darkroom-tray {
  min-height: 480px;
  background: radial-gradient(circle at 50% 15%, #1f0b0f 0%, #0d0f14 75%);
  border-color: rgba(226, 75, 75, 0.22);
  box-shadow: 0 0 35px rgba(239, 68, 68, 0.08), inset 0 0 40px rgba(0, 0, 0, 0.8);
  overflow: hidden;
  position: relative;
  animation: iwDarkroomSinkIn 0.42s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwDarkroomSinkIn {
  0% {
    opacity: 0.25;
    filter: brightness(0.65) blur(2px);
    transform: scale(0.985) translateY(4px);
  }
  100% {
    opacity: 1;
    filter: brightness(1) blur(0);
    transform: scale(1) translateY(0);
  }
}

/* 暗房深红安全灯呼吸光晕 */
.iw-darkroom-safelight {
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: 280px;
  height: 140px;
  background: radial-gradient(ellipse at center, rgba(239, 68, 68, 0.18) 0%, transparent 70%);
  pointer-events: none;
  animation: iwSafelightPulse 3.5s ease-in-out infinite alternate;
  z-index: 1;
}

@keyframes iwSafelightPulse {
  0% { opacity: 0.45; transform: translateX(-50%) scale(0.95); }
  100% { opacity: 0.9; transform: translateX(-50%) scale(1.1); }
}

/* 药水液面微波扫光层 */
.iw-darkroom-liquid-layer {
  position: absolute;
  top: 0;
  left: -100%;
  width: 300%;
  height: 100%;
  background: linear-gradient(
    105deg,
    transparent 20%,
    rgba(239, 68, 68, 0.04) 40%,
    rgba(226, 196, 141, 0.05) 50%,
    rgba(239, 68, 68, 0.04) 60%,
    transparent 80%
  );
  pointer-events: none;
  animation: iwLiquidWave 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  z-index: 2;
}

@keyframes iwLiquidWave {
  0% { transform: translateX(0); }
  100% { transform: translateX(50%); }
}

/* 冲印工序单据抬头 */
.iw-darkroom-manifest {
  position: relative;
  z-index: 3;
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px dashed rgba(239, 68, 68, 0.25);
}

.iw-manifest-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 0.6px;
  margin-bottom: 6px;
}

.iw-manifest-tag {
  color: rgba(239, 68, 68, 0.85);
  font-weight: 700;
}

.iw-manifest-rec {
  color: rgba(226, 196, 141, 0.7);
  animation: iwRecBlink 1.4s infinite;
}

@keyframes iwRecBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

.iw-manifest-step-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.iw-manifest-step-code {
  font-family: "ShareTechMono", monospace;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #fca5a5;
  text-shadow: 0 0 8px rgba(239, 68, 68, 0.4);
}

.iw-manifest-step-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.2px;
  min-height: 16px;
  transition: opacity 0.25s ease;
}

@keyframes iwManifestFadeIn {
  0% {
    opacity: 0.2;
    transform: translateY(2px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 极细微波进度条 */
.iw-manifest-progress-bar {
  margin-top: 8px;
  height: 2px;
  width: 100%;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 1px;
  overflow: hidden;
  position: relative;
}

.iw-manifest-progress-fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, #ef4444, #e2c48d);
  animation: iwProgressFlow 1.8s infinite ease-in-out;
  border-radius: 1px;
}

@keyframes iwProgressFlow {
  0% { left: -40%; width: 30%; }
  50% { width: 55%; }
  100% { left: 100%; width: 30%; }
}

/* 显影骨架屏潜像（Latent Skeleton） */
.iw-darkroom-skeleton {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* 骨架基础线条：带暗房乳胶银盐呼吸 */
.iw-skel-line {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
  animation: iwSkelSilverBreathe 2s ease-in-out infinite alternate;
}

@keyframes iwSkelSilverBreathe {
  0% { background: rgba(255, 255, 255, 0.04); }
  100% { background: rgba(255, 255, 255, 0.08); }
}

.iw-skel-tag {
  width: 70px;
  height: 12px;
  margin-bottom: 6px;
  background: rgba(239, 68, 68, 0.12);
}

.iw-skel-title-lg {
  width: 85%;
  height: 18px;
  margin-bottom: 6px;
}

.iw-skel-title-sub {
  width: 65%;
  height: 14px;
  margin-bottom: 10px;
}

.iw-skel-title-md {
  width: 75%;
  height: 14px;
  margin-bottom: 6px;
}

.iw-skel-title-sm {
  width: 80%;
  height: 12px;
  margin-bottom: 5px;
}

.iw-skel-para {
  width: 95%;
  height: 10px;
  margin-bottom: 4px;
}

.iw-skel-para-short {
  width: 50%;
}

.iw-skel-headline {
  padding-bottom: 10px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.iw-skel-brief {
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 4px;
}

/* 骨架图文特稿相框 */
.iw-skel-wirephoto {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px;
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 4px;
}

.iw-skel-photo-box {
  width: 96px;
  height: 72px;
  background: #08090c;
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.iw-skel-photo-shimmer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, rgba(239, 68, 68, 0.15) 0%, transparent 80%);
  animation: iwPhotoShimmer 2.2s infinite ease-in-out;
}

@keyframes iwPhotoShimmer {
  0%, 100% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.15); }
}

.iw-skel-photo-ref {
  position: relative;
  z-index: 2;
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.3);
}

.iw-skel-photo-info {
  flex: 1;
  min-width: 0;
}

/* 骨架双列副刊网格 */
.iw-skel-twin-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
}

.iw-skel-twin-card {
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 4px;
  box-sizing: border-box;
}

.iw-paper-masthead {
  text-align: center;
  border-bottom: 2px solid rgba(255, 255, 255, 0.3);
  padding-bottom: 8px;
  margin-bottom: 12px;
}

.iw-paper-flag {
  font-family: "Georgia", "Times New Roman", serif;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #f1f5f9;
  text-transform: uppercase;
}

.iw-paper-meta-strip {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 4px 2px;
  margin-top: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

/* 动态新闻列表容器 */
.iw-paper-articles {
  display: flex;
  flex-direction: column;
  width: 100%;
  box-sizing: border-box;
}

.iw-paper-article {
  padding: 12px 0;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
  transition: background-color 0.2s ease, padding 0.2s ease;
}

.iw-paper-article:first-child {
  padding-top: 6px;
}

.iw-paper-article:last-child {
  border-bottom: none;
  padding-bottom: 4px;
}

/* 状态标签：头版 / 快讯 / 异动 */
.iw-article-tag {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-family: "ShareTechMono", monospace;
  font-size: 10.5px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 6px;
}

.iw-article-tag-left {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

/* 供稿媒体名：过长时省略，避免把右侧 + 顶飞 */
.iw-article-source {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.iw-tag-badge {
  flex: 0 0 auto;
}

.iw-paper-article.is-expanded .iw-article-tag {
  color: #ffffff;
}

.iw-tag-badge {
  padding: 1px 5px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.06);
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.7);
}

.iw-paper-article.is-expanded .iw-tag-badge {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

/* ---------------- 展开态（大版面 Headline） ---------------- */
.iw-paper-article {
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.iw-paper-article.is-expanded {
  padding-left: 0;
  border-left: none;
  background: transparent;
}

.iw-paper-article.is-expanded .iw-article-title {
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
  color: #f8fafc;
  margin: 0 0 10px;
  letter-spacing: 0.2px;
}

/* 手风琴平滑展开容器：利用 grid 0fr -> 1fr 现代动画规范 */
.iw-article-full-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
  opacity: 0;
}

.iw-paper-article.is-expanded .iw-article-full-wrap {
  grid-template-rows: 1fr;
  opacity: 1;
}

.iw-article-full {
  overflow: hidden;
  font-size: 13px;
  line-height: 1.65;
  color: #cbd5e1;
  text-align: justify;
}

.iw-paper-article.is-expanded .iw-article-full::first-letter {
  font-size: 26px;
  font-weight: 800;
  float: left;
  line-height: 0.9;
  padding-right: 6px;
  padding-top: 2px;
  color: #e2c48d;
  text-shadow: 0 0 12px rgba(226, 196, 141, 0.25);
}

/* 简报容器折叠过渡 */
.iw-article-brief-wrap {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
  opacity: 1;
}

.iw-paper-article.is-expanded .iw-article-brief-wrap {
  grid-template-rows: 0fr;
  opacity: 0;
}

.iw-article-brief {
  overflow: hidden;
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.55);
}

/* ---------------- 图文特稿（第 4 条 Wirephoto） ---------------- */
.iw-article-wirephoto {
  margin-top: 14px;
  margin-bottom: 8px;
  padding-bottom: 12px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.12);
}

.iw-wirephoto-frame {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  width: 100%;
}

.iw-wirephoto-img-wrap {
  flex: 0 0 96px;
  width: 96px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.iw-wirephoto-placeholder {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 2px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: #0f1115;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.iw-wirephoto-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 60%;
  opacity: 0.9;
  filter: contrast(1.08) grayscale(1);
  transition: opacity 0.3s ease, filter 0.3s ease, transform 0.3s ease;
}

.iw-wirephoto-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
  padding: 0 1px;
  font-family: "ShareTechMono", monospace;
  font-size: 7.5px;
  letter-spacing: 0.3px;
  color: rgba(255, 255, 255, 0.35);
  line-height: 1.1;
}

.iw-wirephoto-content {
  flex: 1 1 auto;
  min-width: 0;
}

/* 折叠与激活交互 */
.iw-article-wirephoto.is-collapsed {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.iw-article-wirephoto.is-collapsed:active .iw-wirephoto-img {
  filter: contrast(1.2) grayscale(0.5);
  transform: scale(1.03);
}

/* 展开态：图片扩展为通栏大视窗 */
.iw-article-wirephoto.is-expanded .iw-wirephoto-frame {
  flex-direction: column;
  gap: 10px;
}

/* 兜底：任何展开态文章里的加号提示一律隐藏（含图文特稿 content 内的） */
.is-expanded .iw-article-expand-hint {
  display: none !important;
  opacity: 0 !important;
}

.iw-article-wirephoto.is-expanded .iw-wirephoto-img-wrap {
  flex: 0 0 auto;
  width: 100%;
}

.iw-article-wirephoto.is-expanded .iw-wirephoto-placeholder {
  aspect-ratio: 16 / 9;
  border-color: rgba(255, 255, 255, 0.25);
}

.iw-article-wirephoto.is-expanded .iw-wirephoto-caption {
  flex-direction: row;
  justify-content: space-between;
  font-size: 8.5px;
  padding: 0 2px;
}

/* ---------------- 展开新闻下的热门评论区 ---------------- */
.iw-comment-section {
  margin-top: 16px;
}

.iw-comment-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.iw-comment-label {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 0.6px;
  color: rgba(255, 255, 255, 0.4);
  white-space: nowrap;
}

.iw-comment-line {
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
}

.iw-comment-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.iw-comment-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.iw-comment-uid {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 0.3px;
  color: rgba(226, 196, 141, 0.6);
}

.iw-comment-text {
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
}

/* ---------------- 底部双列副刊剪报（第 5、6 条） ---------------- */
.iw-paper-twin-section {
  margin-top: 14px;
  margin-bottom: 6px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  width: 100%;
  box-sizing: border-box;
}

.iw-twin-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.iw-twin-title {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.42);
  white-space: nowrap;
}

.iw-twin-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.12) 0%, transparent 100%);
}

.iw-twin-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  width: 100%;
  box-sizing: border-box;
}

/* 双列中的小豆腐块卡片 */
.iw-twin-article.is-collapsed {
  margin-top: 0;
  margin-bottom: 0;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-left: none;
  border-radius: 4px;
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
}

.iw-twin-article.is-collapsed .iw-article-title {
  font-size: 12px;
  line-height: 1.35;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.iw-twin-article.is-collapsed .iw-article-brief {
  font-size: 11px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.45);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.iw-twin-article.is-expanded {
  grid-column: 1 / -1; /* 展开时打破双列，跨满整行大版面展阅 */
  padding: 6px 0;
  border-top: 1px dashed rgba(255, 255, 255, 0.15);
  border-bottom: 1px dashed rgba(255, 255, 255, 0.15);
}

/* ---------------- 折叠态（豆腐块 Brief） ---------------- */
.iw-paper-article.is-collapsed {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  padding: 8px 10px;
  border-left: none;
  margin-top: 6px;
  margin-bottom: 4px;
  border-bottom: none;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 4px;
  transition: all 0.2s ease;
}

.iw-paper-article.is-collapsed:active {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.15);
  transform: translateY(1px);
}

.iw-paper-article .iw-article-title {
  transition: font-size 0.25s ease, color 0.25s ease;
}

.iw-paper-article.is-collapsed .iw-article-title {
  font-size: 13.5px;
  font-weight: 700;
  color: #e2e8f0;
  margin: 0 0 4px;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.iw-article-expand-hint {
  font-family: "ShareTechMono", monospace;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  color: rgba(255, 255, 255, 0.38);
  display: none;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease, color 0.2s ease;
  transform: scale(0.9);
}

.iw-paper-article.is-collapsed .iw-article-expand-hint {
  display: inline-block;
  opacity: 1;
  transform: scale(1);
}

.iw-paper-article.is-expanded .iw-article-expand-hint {
  display: none !important;
  opacity: 0;
}

.iw-paper-article.is-collapsed:active .iw-article-expand-hint {
  color: #ffffff;
  transform: scale(1.15);
}

@keyframes iwFadeIn {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

/* --------------------------------------------------------
   媒介 2：【众生相】（The Living / 纯文本古典文库分幕排版）
   -------------------------------------------------------- */
.iw-living-book {
  background: #0f1115;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 24px 20px 22px;
  position: relative;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45);
}

/* 顶部文库题签抬头 */
.iw-living-header {
  margin-bottom: 22px;
  text-align: left;
}

.iw-living-label-box {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(226, 196, 141, 0.35);
  padding: 2px 7px;
  border-radius: 2px;
  margin-bottom: 12px;
  background: rgba(226, 196, 141, 0.04);
}

.iw-living-label {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: #e2c48d;
}

.iw-living-vol {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 10px;
  color: rgba(226, 196, 141, 0.7);
  letter-spacing: 0.5px;
}

.iw-living-title {
  margin: 0 0 10px 0;
  font-family: "Georgia", "Baskerville", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.6px;
  line-height: 1.4;
  color: #f8fafc;
}

.iw-living-epigraph {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-style: italic;
  font-size: 12px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 14px;
  padding-left: 2px;
}

.iw-living-rule {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(226, 196, 141, 0.25) 0%, rgba(255, 255, 255, 0.08) 60%, transparent 100%);
}

/* 分幕列表容器 */
.iw-living-acts {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.iw-living-act {
  position: relative;
  padding-bottom: 22px;
  margin-bottom: 22px;
  border-bottom: 1px dashed rgba(226, 196, 141, 0.14);
}

.iw-living-act:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

/* 幕次小标题（方案 B：古典章回印，温润内敛） */
.iw-act-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  margin-bottom: 10px;
}

.iw-act-index {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12px;
  font-weight: 600;
  color: #e2c48d;
  letter-spacing: 1px;
}

.iw-act-title {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.78);
  letter-spacing: 0.6px;
}

/* 纯文本段落排版：极致舒适度 */
.iw-act-text {
  font-size: 13.5px;
  line-height: 1.85;
  color: #d1d5db;
  text-align: justify;
  text-justify: inter-ideograph;
  text-indent: 2em;
  letter-spacing: 0.25px;
  margin-bottom: 8px;
}

.iw-act-text:last-child {
  margin-bottom: 0;
}

/* ---------------- 众生相交互 1：正文铅笔旁注（Marginalia） ---------------- */
.iw-marginalia-anchor {
  color: #f1dfbe;
  text-decoration: underline dotted rgba(226, 196, 141, 0.45);
  text-underline-offset: 3px;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0 1px;
}

.iw-marginalia-anchor:active {
  color: #ffffff;
  background: rgba(226, 196, 141, 0.15);
  border-radius: 2px;
}

.iw-marginalia-sup {
  font-size: 9px;
  color: #e2c48d;
  font-family: "Georgia", serif;
  font-style: italic;
  margin-left: 2px;
  opacity: 0.85;
}

.iw-marginalia-box {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: max-height 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease, transform 0.25s ease, margin 0.25s ease;
  margin: 0;
}

.iw-marginalia-box.is-open {
  max-height: 240px;
  opacity: 1;
  transform: translateY(0);
  margin: 6px 0 10px 0;
}

/* 孤儿注释（正文没写 {{注:}} 占位符时的兜底）：无法点开，默认直接展开 */
.iw-marginalia-box.is-orphan {
  max-height: 240px;
  opacity: 1;
  transform: translateY(0);
  margin: 6px 0 10px 0;
}

.iw-marginalia-content {
  display: flex;
  align-items: flex-start;
  padding: 8px 12px;
  background: rgba(226, 196, 141, 0.04);
  border-radius: 4px;
}

.iw-marginalia-note {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.2px;
  text-indent: 0;
}

/* 孤儿注释前的词语标签（因为没有正文锚点，需显式标明注的是哪个词） */
.iw-marginalia-key {
  color: rgba(226, 196, 141, 0.75);
  font-weight: 600;
}

/* ---------------- 众生相交互 2：随身物夹页证据（Keepsake） ---------------- */
.iw-keepsake-section {
  margin-top: 14px;
  margin-bottom: 8px;
}

.iw-keepsake-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 10px;
  background: rgba(226, 196, 141, 0.04);
  border: 1px dashed rgba(226, 196, 141, 0.25);
  border-radius: 4px;
  color: #e2c48d;
  cursor: pointer;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.iw-keepsake-trigger:active {
  background: rgba(226, 196, 141, 0.08);
  border-color: rgba(226, 196, 141, 0.4);
}

.iw-keepsake-clip-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  color: #e2c48d;
  opacity: 0.85;
}

.iw-keepsake-clip-svg {
  display: block;
}

.iw-keepsake-label {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 11.5px;
  letter-spacing: 0.4px;
  flex: 1;
  text-align: left;
}

.iw-keepsake-status-hint {
  font-size: 10px;
  color: rgba(226, 196, 141, 0.55);
  font-family: "ShareTechMono", monospace;
  letter-spacing: 0.5px;
}

/* 触发条右侧：展开/收起提示 + 箭头 */
.iw-keepsake-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  color: rgba(226, 196, 141, 0.6);
  flex-shrink: 0;
}

.iw-keepsake-chevron {
  display: block;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.iw-keepsake-trigger.is-open .iw-keepsake-chevron {
  transform: rotate(180deg);
}

.iw-keepsake-trigger.is-open {
  border-style: solid;
  border-color: rgba(226, 196, 141, 0.3);
  background: rgba(226, 196, 141, 0.06);
}

/* 可折叠证物容器（grid 行高过渡，iframe 始终在布局中、不会测高失准） */
.iw-keepsake-fold {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease, margin 0.3s ease;
  margin: 0;
}

.iw-keepsake-fold.is-open {
  grid-template-rows: 1fr;
  opacity: 1;
  margin-top: 10px;
}

.iw-keepsake-fold-inner {
  min-height: 0;
  overflow: hidden;
}

/* 旧版泛黄信纸折叠容器（样例遗留，当前不再生成，保留不冲突） */
.iw-keepsake-container {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: scaleY(0.96);
  transform-origin: top center;
  transition: max-height 0.38s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease, transform 0.3s ease, margin 0.3s ease;
  margin: 0;
}

.iw-keepsake-container.is-open {
  max-height: 500px;
  opacity: 1;
  transform: scaleY(1);
  margin-top: 10px;
  margin-bottom: 8px;
}

/* 泛黄信纸质感 */
.iw-keepsake-paper {
  position: relative;
  background: #181613;
  background-image: radial-gradient(circle at 85% 15%, rgba(226, 196, 141, 0.06), transparent 70%),
                    linear-gradient(180deg, #191714 0%, #151310 100%);
  border: 1px solid rgba(226, 196, 141, 0.18);
  border-radius: 3px;
  padding: 16px 14px 14px 14px;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.6), 0 6px 16px rgba(0, 0, 0, 0.4);
}

/* 信纸六折折痕模拟线 */
.iw-keepsake-crease-lines {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    180deg,
    transparent,
    transparent 58px,
    rgba(255, 255, 255, 0.02) 58px,
    rgba(0, 0, 0, 0.18) 59px,
    transparent 60px
  );
}

/* 泛黄信纸右上角邮戳 */
.iw-keepsake-stamp {
  position: absolute;
  top: 12px;
  right: 12px;
  border: 1.5px dashed rgba(180, 80, 70, 0.45);
  border-radius: 50%;
  width: 54px;
  height: 54px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: rotate(-12deg);
  pointer-events: none;
  color: rgba(180, 80, 70, 0.6);
  user-select: none;
}

.iw-stamp-outer {
  font-size: 7.5px;
  font-weight: 700;
  letter-spacing: 0.5px;
  transform: scale(0.9);
}

.iw-stamp-date {
  font-size: 7px;
  letter-spacing: 0.2px;
  margin-top: 1px;
}

/* 信纸手写正文 */
.iw-keepsake-letter-body {
  font-family: "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12.5px;
  line-height: 1.8;
  color: rgba(230, 215, 190, 0.78);
  text-align: justify;
  letter-spacing: 0.3px;
  position: relative;
  z-index: 1;
}

/* 涂鸦猫咪与说明 */
.iw-keepsake-doodle-wrap {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
}

.iw-keepsake-doodle {
  width: 90px;
  height: 72px;
  color: rgba(226, 196, 141, 0.55);
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}
.iw-keepsake-doodle-caption {
  font-size: 9.5px;
  color: rgba(226, 196, 141, 0.4);
  font-style: italic;
  font-family: "Georgia", serif;
  margin-top: 2px;
}

/* ---------------- 众生相证物（新版：沙箱直出，无交互纯陈列） ---------------- */
/* 证物题签：回形针 + 物品标签，低调引出下方沙箱卡片 */
.iw-keepsake-caption {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  margin-bottom: 8px;
  padding-left: 1px;
  color: #e2c48d;
}

.iw-keepsake-caption .iw-keepsake-label {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 11.5px;
  letter-spacing: 0.4px;
  color: rgba(226, 196, 141, 0.75);
}

/* 沙箱画布：承载 AI 现写的证物 HTML（iframe 自适应高度，背景透明） */
.iw-keepsake-canvas {
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
}

.iw-keepsake-canvas iframe {
  width: 100%;
  border: 0;
  display: block;
  background: transparent;
}

/* 沙箱不可用时的兜底容器（极少走到） */
.iw-keepsake-raw {
  padding: 12px;
  background: #15130f;
  border: 1px solid rgba(226, 196, 141, 0.14);
  border-radius: 4px;
  overflow-x: auto;
}

/* ---------------- 众生相整体容器与空态 ---------------- */
.iw-living-wrap {
  width: 100%;
}

/* 生成后的淡入定影（复用书卷落定的柔和出场） */
.iw-living-wrap.is-revealed {
  animation: iwLivingSettle 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwLivingSettle {
  0% { opacity: 0.4; transform: translateY(5px); filter: blur(1px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* 空态：尚未取材的沉静引导卡 */
.iw-living-empty .iw-living-empty-body {
  padding: 48px 20px 40px;
  text-align: center;
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12.5px;
  line-height: 2;
  color: rgba(255, 255, 255, 0.32);
  letter-spacing: 0.4px;
}

/* ---------------- 众生相加载态：执笔誊录等待卡（沉静文库古卷风） ---------------- */
.iw-living-loading {
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 20%, #1a1712 0%, #0d0b09 78%);
  border: 1px solid rgba(226, 196, 141, 0.16);
  border-radius: 4px;
  animation: iwLivingSettle 0.42s ease forwards;
  box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.6);
}

.iw-living-loading-inner {
  text-align: center;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 卷首红印泥方印章 */
.iw-living-loading-seal {
  margin-bottom: 14px;
}

.iw-seal-frame {
  display: inline-block;
  padding: 3px 8px;
  font-family: "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 10px;
  letter-spacing: 2px;
  color: #c95246;
  border: 1px solid rgba(201, 82, 70, 0.45);
  background: rgba(201, 82, 70, 0.06);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(201, 82, 70, 0.12);
}

.iw-living-loading-title {
  font-family: "Georgia", serif;
  font-size: 13px;
  letter-spacing: 5px;
  color: rgba(226, 196, 141, 0.6);
  margin-bottom: 10px;
}

.iw-living-loading-sub {
  font-family: "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.5px;
  margin-bottom: 16px;
}

/* 墨痕与呼吸光晕 */
.iw-living-loading-brush {
  width: 90px;
  height: 2px;
  position: relative;
  margin: 4px auto 18px;
  background: rgba(226, 196, 141, 0.1);
  overflow: hidden;
  border-radius: 2px;
}

.iw-brush-trace {
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(226, 196, 141, 0.7), transparent);
  animation: iwBrushStroke 2.2s ease-in-out infinite;
}

@keyframes iwBrushStroke {
  0% { left: -40%; }
  50% { left: 100%; }
  100% { left: 100%; }
}

.iw-living-loading-ticker {
  font-family: "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 14px;
  color: rgba(226, 196, 141, 0.85);
  letter-spacing: 4px;
  transition: opacity 0.18s ease;
  min-height: 20px;
}

/* 沉静书卷封底：文末题跋与落款（框内纯净） */
.iw-living-footer {
  margin-top: 26px;
  padding-top: 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  text-align: center;
}

.iw-living-end-mark {
  font-size: 8px;
  letter-spacing: 8px;
  color: rgba(226, 196, 141, 0.35);
  margin-bottom: 10px;
}

.iw-living-colophon {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.8px;
}

/* ---------------- 框外长排通栏控制台（方案 A） ---------------- */
.iw-living-console {
  margin-top: 14px;
  margin-bottom: 8px;
  width: 100%;
  box-sizing: border-box;
}

.iw-living-long-btn {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 4px;
  background: transparent;
  border: none;
  color: #e2c48d;
  cursor: pointer;
  transition: all 0.22s ease;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.iw-living-long-btn:active {
  opacity: 0.75;
  transform: translateX(2px);
}

.iw-long-btn-text {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}

.iw-long-btn-en {
  font-family: "Georgia", "Baskerville", "Times New Roman", "Noto Serif", serif;
  font-style: italic;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.5px;
  color: #e2c48d;
  white-space: nowrap;
}

.iw-long-btn-divider {
  font-size: 11px;
  color: rgba(226, 196, 141, 0.35);
}

.iw-long-btn-cn {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.iw-long-btn-arrow {
  flex: 0 0 auto;
  color: rgba(226, 196, 141, 0.7);
  transition: transform 0.2s ease, color 0.2s ease;
}

.iw-living-long-btn:active .iw-long-btn-arrow {
  color: #fce7b8;
  transform: translateX(2px);
}

/* --------------------------------------------------------
   媒介 3：【风靡】（The Zine / 街头潮流剪贴簿 · 黑白极简报刊风格）
   -------------------------------------------------------- */
.iw-zine-layout {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 刊头：对齐风声与众生相的报刊/卷首风格 */
.iw-zine-masthead {
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.iw-zine-masthead-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.iw-zine-masthead-title {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: rgba(255, 255, 255, 0.85);
}

.iw-zine-masthead-sub {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.38);
  letter-spacing: 0.3px;
}

.iw-zine-masthead-badge {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  padding: 2px 7px;
  color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 2px;
  letter-spacing: 1px;
}

/* 空态：本期尚未付印引导卡（对齐众生相空态的沉静基调） */
.iw-zine-empty {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 40px 22px 44px;
}

.iw-zine-empty-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
}

.iw-zine-empty-icon {
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.32);
}

.iw-zine-empty-text {
  font-size: 12.5px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.3px;
}

/* ---------------- 风靡加载态：孔版双色印机走纸与裁切（街头冷黑工业风） ---------------- */
.iw-zine-loading {
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 20%, #15181c 0%, #0a0b0d 78%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  box-shadow: inset 0 0 45px rgba(0, 0, 0, 0.7);
}

.iw-zine-loading-inner {
  text-align: center;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 顶部孔版印刷双滚筒微标 */
.iw-zine-loading-icon {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px dashed rgba(226, 196, 141, 0.35);
  background: rgba(226, 196, 141, 0.04);
  color: #e2c48d;
  margin-bottom: 14px;
  box-shadow: 0 0 14px rgba(226, 196, 141, 0.08);
  animation: iwRisoPulse 3s ease-in-out infinite;
}

@keyframes iwRisoPulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.04); opacity: 1; box-shadow: 0 0 18px rgba(226, 196, 141, 0.16); }
}

/* 双色孔版对位十字标 */
.iw-zine-loading-reg {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 1.5px;
  color: rgba(226, 196, 141, 0.75);
  margin-bottom: 12px;
}

.iw-reg-cross {
  color: rgba(255, 255, 255, 0.35);
  font-size: 11px;
}

.iw-reg-label {
  padding: 1px 6px;
  border: 1px dashed rgba(226, 196, 141, 0.25);
  border-radius: 2px;
}

.iw-zine-loading-title {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13px;
  letter-spacing: 5px;
  color: #fff;
  margin-bottom: 8px;
}

.iw-zine-loading-sub {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.4px;
  margin-bottom: 18px;
}

/* 滚筒与走纸齿孔 */
.iw-zine-loading-press {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  margin-bottom: 6px;
}

.iw-press-roller {
  width: 110px;
  height: 3px;
  background: rgba(255, 255, 255, 0.08);
  position: relative;
  overflow: hidden;
  border-radius: 2px;
}

.iw-press-roller::after {
  content: '';
  position: absolute;
  top: 0;
  left: -50%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent, #e2c48d, transparent);
  animation: iwRollerSweep 1.6s ease-in-out infinite;
}

@keyframes iwRollerSweep {
  0% { left: -50%; }
  100% { left: 120%; }
}

.iw-press-paper-feed {
  display: flex;
  gap: 12px;
}

.iw-feed-perf {
  width: 4px;
  height: 4px;
  border-radius: 1px;
  background: rgba(255, 255, 255, 0.15);
  animation: iwFeedTick 1.2s infinite ease;
}

.iw-feed-perf:nth-child(1) { animation-delay: 0s; }
.iw-feed-perf:nth-child(2) { animation-delay: 0.15s; }
.iw-feed-perf:nth-child(3) { animation-delay: 0.3s; }
.iw-feed-perf:nth-child(4) { animation-delay: 0.45s; }

@keyframes iwFeedTick {
  0%, 100% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.15); background: #e2c48d; }
}

.iw-zine-loading-ticker {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13.5px;
  color: #e2c48d;
  letter-spacing: 3px;
  transition: opacity 0.18s ease;
  min-height: 20px;
}

/* ---------------- 游嬉加载态：复古卡带磁带滚轮与芯片烧录（街机工控风） ---------------- */
.iw-arcade-loading {
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 20%, #11141a 0%, #08090c 80%);
  border: 1px solid rgba(226, 196, 141, 0.2);
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.8), inset 0 0 40px rgba(0, 0, 0, 0.7);
}

.iw-arcade-loading-inner {
  text-align: center;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 芯片管脚小标头 */
.iw-arcade-loading-chip {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 22px;
}

.iw-chip-pin {
  width: 6px;
  height: 6px;
  background: #e2c48d;
  border-radius: 1px;
  box-shadow: 0 0 6px rgba(226, 196, 141, 0.6);
  animation: iwChipPulse 1.4s ease-in-out infinite;
}

@keyframes iwChipPulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}

.iw-chip-state {
  color: #e2c48d;
  padding: 1px 5px;
  border: 1px solid rgba(226, 196, 141, 0.35);
  border-radius: 2px;
}

/* 双磁带滚轮机槽 */
.iw-arcade-loading-deck {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 22px;
  padding: 14px 20px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);
}

.iw-tape-spool {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px dashed rgba(226, 196, 141, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  animation: iwSpoolSpin 2.6s linear infinite;
}

.iw-tape-spool.is-right {
  animation-duration: 2.6s;
}

@keyframes iwSpoolSpin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.iw-spool-gear {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
}

.iw-spool-center {
  width: 5px;
  height: 5px;
  background: #e2c48d;
  border-radius: 50%;
  position: absolute;
}

/* 磁带连线与脉冲 */
.iw-tape-bridge {
  width: 50px;
  height: 4px;
  position: relative;
  overflow: hidden;
}

.iw-tape-line {
  width: 100%;
  height: 1.5px;
  background: rgba(255, 255, 255, 0.15);
  margin-top: 1px;
}

.iw-tape-pulse {
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #e2c48d, transparent);
  animation: iwTapeFlow 1.1s linear infinite;
}

@keyframes iwTapeFlow {
  0% { left: -40%; }
  100% { left: 100%; }
}

.iw-arcade-loading-title {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13px;
  letter-spacing: 5px;
  color: #fff;
  margin-bottom: 8px;
}

.iw-arcade-loading-sub {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.5px;
  margin-bottom: 14px;
}

.iw-arcade-loading-ticker {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13.5px;
  color: #e2c48d;
  letter-spacing: 2px;
  transition: opacity 0.18s ease;
  min-height: 20px;
}

/* 通用 Zine 卡片基础容器：统一深邃冷黑底色与素净微线 */
.iw-zine-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 14px 14px 15px;
  position: relative;
  transition: border-color 0.2s ease;
}

/* 专栏分类标头（极简等宽，无浮夸彩条） */
.iw-zine-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  padding-bottom: 7px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.07);
}

.iw-zine-column-tag {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
}

.iw-zine-index {
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.25);
}

/* 标题 */
.iw-zine-title {
  font-size: 14.5px;
  font-weight: 700;
  color: #f1f5f9;
  margin-bottom: 7px;
  line-height: 1.45;
  letter-spacing: 0.2px;
}

/* 正文白描 */
.iw-zine-desc {
  font-size: 12px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.65);
}

/* ---------------- 1. 热门 Meme ---------------- */
.iw-meme-frame {
  margin: 10px 0;
  padding: 10px 12px 11px;
  background: rgba(0, 0, 0, 0.32);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 3px;
  position: relative;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.3s ease, background 0.3s ease;
  overflow: hidden;
}

.iw-meme-frame:active {
  background: rgba(255, 255, 255, 0.03);
}

/* 相机取景四角直角准星 (Reticle Corners) */
.iw-meme-frame::before,
.iw-meme-frame::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  pointer-events: none;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
}

/* 左上角准星 */
.iw-meme-frame::before {
  top: 3px;
  left: 3px;
  border-top: 1.5px solid rgba(255, 255, 255, 0.25);
  border-left: 1.5px solid rgba(255, 255, 255, 0.25);
}

/* 右下角准星 */
.iw-meme-frame::after {
  bottom: 3px;
  right: 3px;
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.25);
  border-right: 1.5px solid rgba(255, 255, 255, 0.25);
}

/* 取景框顶部状态行 */
.iw-meme-frame-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 5px;
}

.iw-meme-frame-tag {
  display: inline-block;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.38);
  transition: color 0.3s ease;
}

.iw-meme-frame-rec {
  font-family: "ShareTechMono", monospace;
  font-size: 8.5px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.25);
  transition: color 0.3s ease;
}

/* 初始失焦态：文字毛玻璃模糊与微降透明度 */
.iw-meme-frame-text {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.65;
  filter: blur(2.5px);
  opacity: 0.55;
  transition: filter 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease, color 0.35s ease;
}

/* 快门光晕覆层 */
.iw-meme-shutter-flash {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.16);
  pointer-events: none;
  opacity: 0;
}

/* 触发快门瞬时曝光动画 */
.iw-meme-frame.is-snapping .iw-meme-shutter-flash {
  animation: iwShutterFlash 0.32s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwShutterFlash {
  0% { opacity: 0.85; }
  100% { opacity: 0; }
}

/* ================= 锁定对焦态（FOCUSED 状态 · 典雅香槟暗金 #e2c48d） ================= */
.iw-meme-frame.is-focused {
  border-color: rgba(226, 196, 141, 0.32);
  background: rgba(226, 196, 141, 0.03);
}

.iw-meme-frame.is-focused::before {
  transform: translate(2px, 2px);
  border-color: #e2c48d;
}

.iw-meme-frame.is-focused::after {
  transform: translate(-2px, -2px);
  border-color: #e2c48d;
}

.iw-meme-frame.is-focused .iw-meme-frame-tag {
  color: #e2c48d;
}

.iw-meme-frame.is-focused .iw-meme-frame-rec {
  color: rgba(226, 196, 141, 0.65);
}

/* 合焦清晰 + 变众生相典雅沉着香槟暗金 */
.iw-meme-frame.is-focused .iw-meme-frame-text {
  filter: blur(0);
  opacity: 0.95;
  color: #e2c48d;
}

.iw-meme-flow {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 3px;
  margin-bottom: 8px;
  font-size: 10.5px;
}

.iw-meme-flow-label {
  color: rgba(255, 255, 255, 0.35);
  white-space: nowrap;
}

.iw-meme-flow-orig {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: line-through;
}

.iw-meme-flow-arrow {
  color: rgba(255, 255, 255, 0.3);
}

.iw-meme-flow-hit {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
}

/* 聊天气泡对话切片（左右左 A -> B -> A） */
.iw-meme-chat-feed {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 6px 2px;
}

.iw-meme-bubble {
  max-width: 86%;
  padding: 6px 10px;
  font-size: 11px;
  line-height: 1.5;
  word-break: break-word;
  position: relative;
}

/* 左侧气泡 A（搭子 / 抛出话题） */
.iw-meme-bubble.is-left {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px 8px 8px 2px;
  color: rgba(255, 255, 255, 0.72);
}

/* 右侧气泡 B（我 / 核心用梗发疯） */
.iw-meme-bubble.is-right {
  align-self: flex-end;
  background: rgba(226, 196, 141, 0.06);
  border: 1px solid rgba(226, 196, 141, 0.22);
  border-radius: 8px 8px 2px 8px;
  color: #e2c48d;
}

/* ---------------- 2. 爆款零食 ---------------- */
.iw-snack-meta-row {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.62);
  line-height: 1.5;
  margin-bottom: 7px;
  padding-bottom: 7px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.iw-snack-selling-k {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.35);
  margin-right: 4px;
}

.iw-snack-selling {
  color: rgba(255, 255, 255, 0.75);
}

.iw-snack-score-wrap {
  display: flex;
  gap: 16px;
  margin: 9px 0 10px;
  padding: 7px 10px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 3px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.iw-snack-score-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
}

.iw-snack-score-label {
  color: rgba(255, 255, 255, 0.38);
}

.iw-snack-score-val {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 1px;
}

/* 测评一体化收缩扩展卡（去竖线，框体内延展） */
.iw-snack-review-box {
  margin-top: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.25s ease, background 0.25s ease;
  overflow: hidden;
}

.iw-snack-review-box:active {
  background: rgba(226, 196, 141, 0.03);
}

.iw-snack-review-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
}

.iw-snack-review-label {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 10.5px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.48);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.25s ease;
}

.iw-snack-review-icon {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s ease;
}

/* 测评正文：完全容纳在同一个框体内部向下自然延伸（无横向分割线） */
.iw-snack-review-content {
  display: none;
  padding: 0 10px 10px 10px;
  font-size: 11.5px;
  color: rgba(226, 196, 141, 0.9);
  line-height: 1.65;
}

/* 展开态：框线变为柔和暗金，整块卡片一体化 */
.iw-snack-review-box.is-open {
  border-color: rgba(226, 196, 141, 0.28);
  background: rgba(226, 196, 141, 0.02);
}

.iw-snack-review-box.is-open .iw-snack-review-label {
  color: #e2c48d;
}

.iw-snack-review-box.is-open .iw-snack-review-icon {
  transform: rotate(90deg);
  color: #e2c48d;
}

.iw-snack-review-box.is-open .iw-snack-review-content {
  display: block;
  animation: iwReviewSlideDown 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwReviewSlideDown {
  0% { opacity: 0; transform: translateY(-4px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* ---------------- 3. 潮玩周边（方案 A：微距切片 + 胶囊标签） ---------------- */
.iw-merch-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 6px 0 10px 0;
}

.iw-merch-tag {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 2px 7px;
  border-radius: 2px;
  letter-spacing: 0.3px;
}

.iw-merch-specimen {
  margin: 8px 0;
  padding: 9px 11px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 3px;
  position: relative;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.2s ease, transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: visible;
}

.iw-merch-specimen:active,
.iw-merch-specimen.is-squished {
  transform: scale(0.975);
  border-color: rgba(226, 196, 141, 0.35);
  background: rgba(226, 196, 141, 0.02);
}

.iw-merch-fidget-hint {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.2s ease;
}

.iw-merch-specimen:active .iw-merch-fidget-hint,
.iw-merch-specimen.is-squished .iw-merch-fidget-hint {
  color: #e2c48d;
}

/* 盘玩解压冒出的极淡香槟金微浮字 */
.iw-merch-fidget-toast {
  position: absolute;
  top: 6px;
  right: 10px;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  font-weight: 600;
  color: #e2c48d;
  pointer-events: none;
  animation: iwFidgetFloat 0.65s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwFidgetFloat {
  0% {
    opacity: 0.95;
    transform: translateY(0) scale(0.95);
  }
  100% {
    opacity: 0;
    transform: translateY(-14px) scale(1.05);
  }
}

.iw-merch-specimen-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.iw-merch-specimen-tag {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  gap: 4px;
}

.iw-merch-specimen-tag::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  background: rgba(226, 196, 141, 0.5);
  border-radius: 50%;
}

.iw-merch-specimen-desc {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.65;
  letter-spacing: 0.2px;
}

.iw-merch-motive {
  margin-top: 8px;
  padding: 6px 9px;
  background: rgba(226, 196, 141, 0.02);
  border-left: 2px solid rgba(226, 196, 141, 0.25);
  font-size: 11px;
  color: rgba(226, 196, 141, 0.82);
  line-height: 1.55;
  font-style: normal;
}

/* ---------------- 4. 穿搭风尚 ---------------- */
/* 风格核心释义盒（元素/材质说明） */
.iw-fashion-definition {
  margin: 8px 0 10px 0;
  padding: 8px 10px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 3px;
}

.iw-fashion-def-header {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 5px;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.35);
}

.iw-fashion-def-header::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  background: rgba(226, 196, 141, 0.5);
  border-radius: 50%;
}

.iw-fashion-def-text {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.6;
}

/* 横向滑动穿搭画册容器 */
.iw-fashion-slider-wrap {
  margin: 10px 0 12px 0;
}

.iw-fashion-slider-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0.5px;
}

.iw-fashion-slider {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.iw-fashion-slider::-webkit-scrollbar {
  display: none;
}

/* 单套穿搭卡片（横滑项） */
.iw-fashion-look-card {
  flex: 0 0 82%;
  min-width: 0;
  scroll-snap-align: start;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.iw-fashion-look-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.iw-fashion-look-tag {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: #e2c48d;
  letter-spacing: 0.5px;
  font-weight: 600;
}

.iw-fashion-look-scene {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.iw-fashion-look-formula {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.55;
}

.iw-fashion-look-item {
  margin-top: 2px;
  padding-top: 6px;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  font-size: 10.5px;
  color: rgba(226, 196, 141, 0.85);
  line-height: 1.5;
}

.iw-fashion-look-item-k {
  color: rgba(255, 255, 255, 0.35);
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  margin-right: 4px;
}

.iw-fashion-origin {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.55;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 255, 255, 0.06);
}

/* ---------------- 5. 现象级作品（多轨弹幕放映舱） ---------------- */
.iw-work-meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0 10px 0;
}

.iw-work-tag {
  font-family: "ShareTechMono", monospace;
  padding: 1px 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 2px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 9.5px;
}

.iw-work-trigger {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.05);
  border: 1px solid rgba(226, 196, 141, 0.15);
  padding: 1px 6px;
  border-radius: 2px;
}

/* 弹幕荧幕舱（直播式垂直顶升流） */
.iw-danmaku-screen {
  margin-top: 10px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 8px 10px;
  position: relative;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  transition: border-color 0.25s ease;
}

.iw-danmaku-screen:active {
  border-color: rgba(226, 196, 141, 0.3);
}

.iw-danmaku-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.06);
  padding-bottom: 5px;
}

.iw-danmaku-title {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.5px;
}

.iw-danmaku-btn {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: #e2c48d;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 3px;
  transition: transform 0.15s ease;
}

.iw-danmaku-screen:active .iw-danmaku-btn {
  transform: scale(0.95);
}

/* 直播弹幕顶流视窗（固定高度，顶部微弱羽化渐隐） */
.iw-danmaku-feed-viewport {
  position: relative;
  height: 56px;
  overflow: hidden;
  mask-image: linear-gradient(to bottom, transparent 0%, black 14%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 14%, black 100%);
}

.iw-danmaku-feed-list {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 56px;
  gap: 5px;
}

.iw-danmaku-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  animation: iwDanmakuSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.iw-danmaku-item.is-highlight {
  color: rgba(226, 196, 141, 0.92);
}

.iw-danmaku-item-svg {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  color: rgba(255, 255, 255, 0.3);
}

.iw-danmaku-item.is-highlight .iw-danmaku-item-svg {
  color: #e2c48d;
}

@keyframes iwDanmakuSlideUp {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------------- 6. 生活仪式 ---------------- */
.iw-ritual-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.iw-ritual-fav-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  color: rgba(255, 255, 255, 0.35);
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.2s ease;
}

.iw-ritual-fav-btn:active {
  transform: scale(0.85);
}

.iw-ritual-fav-btn.is-active {
  color: #e2c48d;
  transform: scale(1.08);
}

.iw-ritual-fav-btn svg {
  width: 14px;
  height: 14px;
  pointer-events: none;
  transition: fill 0.2s ease, stroke 0.2s ease;
}

/* 虚实心心飘散粒子 */
.iw-ritual-burst-heart {
  position: absolute;
  pointer-events: none;
  user-select: none;
  animation: iwHeartFloat 0.75s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes iwHeartFloat {
  0% {
    opacity: 0.95;
    transform: translate(0, 0) scale(0.6);
  }
  50% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
    transform: translate(var(--dx, 0px), var(--dy, -28px)) scale(1.15);
  }
}
.iw-ritual-scene-tag {
  display: inline-block;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1px 7px;
  border-radius: 2px;
  margin: 4px 0 10px 0;
  letter-spacing: 0.3px;
}

.iw-ritual-details {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.65;
  margin-bottom: 10px;
}

.iw-ritual-origin {
  margin-top: 12px;
  padding: 8px 2px 2px 2px;
  background: transparent;
  border: none;
  border-top: 3px double rgba(226, 196, 141, 0.28);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.58);
  line-height: 1.6;
}

.iw-ritual-origin-header {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 5px;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 0.8px;
  color: #e2c48d;
}

.iw-ritual-origin-header::before {
  content: "§";
  font-size: 10px;
  color: rgba(226, 196, 141, 0.6);
}

/* ---------------- 7. 好物分享（购物小票 Receipt 风格） ---------------- */
.iw-receipt-wrap {
  margin-top: 8px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  padding: 10px 12px;
  position: relative;
}

.iw-receipt-top-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.8px;
  padding-bottom: 6px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.iw-receipt-category {
  display: inline-block;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(226, 196, 141, 0.7);
  background: rgba(226, 196, 141, 0.05);
  border: 1px solid rgba(226, 196, 141, 0.15);
  padding: 1px 6px;
  border-radius: 2px;
  margin: 8px 0 6px 0;
}

.iw-receipt-item-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #f1f5f9;
  letter-spacing: 0.3px;
  margin-bottom: 6px;
}

.iw-receipt-pain-row {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.62);
  line-height: 1.5;
  padding: 5px 0 8px 0;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.iw-receipt-pain-k {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.35);
  margin-right: 4px;
}

/* 小票买家秀评价区 */
.iw-receipt-review {
  margin-top: 8px;
  padding: 8px 0 6px 0;
}

.iw-receipt-review-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 5px;
  font-size: 10px;
}

.iw-receipt-buyer {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.4);
}

.iw-receipt-stars {
  font-family: "ShareTechMono", monospace;
  color: #e2c48d;
  letter-spacing: 2px;
  font-size: 11px;
}

.iw-receipt-review-body {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.6;
}

/* 小票封底条形码（激光扫码结算交互） */
.iw-receipt-barcode-wrap {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  position: relative;
}

.iw-receipt-barcode {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin: 0;
  font-family: "ShareTechMono", monospace;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.38);
  transform: scaleY(1.05);
  white-space: nowrap;
  user-select: none;
  overflow: hidden;
  transition: color 0.3s ease;
}

.iw-receipt-barcode-wrap.is-scanned .iw-receipt-barcode {
  color: rgba(226, 196, 141, 0.75);
}

/* 激光扫描线（Laser Beam） */
.iw-receipt-laser {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -10px;
  width: 2px;
  background: #e2c48d;
  box-shadow: 0 0 8px #e2c48d, 0 0 16px rgba(226, 196, 141, 0.8);
  pointer-events: none;
  opacity: 0;
}

.iw-receipt-barcode-wrap.is-scanning .iw-receipt-laser {
  animation: iwLaserScan 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes iwLaserScan {
  0% {
    left: -5%;
    opacity: 0.95;
  }
  90% {
    opacity: 0.95;
  }
  100% {
    left: 105%;
    opacity: 0;
  }
}

.iw-receipt-barcode-sub {
  font-family: "ShareTechMono", monospace;
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.35);
  transition: color 0.3s ease;
}

.iw-receipt-barcode-wrap.is-scanned .iw-receipt-barcode-sub {
  color: #e2c48d;
}

.iw-receipt-barcode-sub {
  font-family: "ShareTechMono", monospace;
  font-size: 8.5px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.25);
}

/* 媒介就绪/待印刷空态提示 */
.iw-empty-state {
  text-align: center;
  padding: 36px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.1);
  border-radius: 4px;
}

.iw-empty-icon {
  font-size: 32px;
  margin-bottom: 12px;
  opacity: 0.6;
}

.iw-empty-title {
  font-size: 14px;
  font-weight: 600;
  color: #e2e8f0;
  margin-bottom: 6px;
}

.iw-empty-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.5;
  max-width: 280px;
  margin: 0 auto;
}

/* ========================================================
   4. 游嬉（THE ARCADE / 浮生游嬉机）专属质感
   ======================================================== */

.iw-arcade-layout {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* --- 游嬉主机卡槽面板（CONSOLE CARTRIDGE BAY） --- */
.iw-arcade-console {
  background: #151413;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 10px 14px 12px 14px;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 4px 16px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* 主机顶栏状态行 */
.iw-console-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "ShareTechMono", monospace;
}

.iw-console-brand {
  display: flex;
  align-items: center;
  gap: 7px;
}

/* 电源指示灯微光 */
.iw-console-pwr-led {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #e2c48d;
  box-shadow: 0 0 6px #e2c48d;
  animation: iwConsolePwrBreath 2.4s infinite ease-in-out;
}

@keyframes iwConsolePwrBreath {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 1; box-shadow: 0 0 8px #e2c48d, 0 0 12px rgba(226, 196, 141, 0.5); }
}

.iw-console-model {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: rgba(255, 255, 255, 0.55);
}

.iw-console-status {
  font-size: 8px;
  letter-spacing: 0.8px;
  color: rgba(226, 196, 141, 0.7);
  background: rgba(226, 196, 141, 0.06);
  padding: 2px 6px;
  border-radius: 2px;
  border: 1px solid rgba(226, 196, 141, 0.18);
}

/* 核心：物理插卡槽（CARTRIDGE SLOT） */
.iw-console-slot-wrap {
  width: 100%;
}

.iw-console-slot {
  position: relative;
  background: #0d0c0b;
  border: 1px solid rgba(0, 0, 0, 0.9);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 8px 12px;
  box-shadow: 
    inset 0 3px 6px rgba(0, 0, 0, 0.9),
    inset 0 0 1px rgba(0, 0, 0, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 卡槽内部微弱的金手指导轨暗纹 */
.iw-console-slot-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.iw-console-slot-guide {
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.22);
  transition: color 0.2s ease;
}

/* 卡槽右上角防反插机械限位凸起/倒角指示 */
.iw-console-slot-notch {
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 10px 10px 0;
  border-color: transparent rgba(226, 196, 141, 0.2) transparent transparent;
  pointer-events: none;
}

.iw-arcade-console:hover .iw-console-slot-guide {
  color: rgba(226, 196, 141, 0.5);
}

/* --- 游嬉大厅卡带展台（实体掌机/GB 工业卡带美学） --- */
.iw-arcade-deck {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.iw-deck-cartridge {
  position: relative;
  background: #171615;
  border-radius: 6px;
  padding: 10px 10px 12px 10px;
  cursor: pointer;
  user-select: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  /* 现代硬件切角：右上角真切角 (14px) */
  clip-path: polygon(
    0 0,
    calc(100% - 14px) 0,
    100% 14px,
    100% 100%,
    0 100%
  );
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.07),
    0 4px 16px rgba(0, 0, 0, 0.45);
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.2s ease,
              box-shadow 0.2s ease;
}

/* 用伪元素配合同样的 clip-path 实现真正的外边框高亮（支持右上角斜边亮线） */
.iw-deck-cartridge::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(226, 196, 141, 0.1) 40%, rgba(255, 255, 255, 0.04) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  clip-path: inherit;
  transition: background 0.2s ease;
}

/* 顶部防滑咬合横槽（Gripper Ribs） */
.iw-cart-grip {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 9px;
  padding-left: 2px;
  padding-right: 14px; /* 右侧留出切角空隙，不顶住切角 */
}

.iw-cart-grip span {
  display: block;
  height: 2px;
  width: 100%;
  background: rgba(0, 0, 0, 0.7);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 1px;
}

/* 卡带中央贴纸（Label Sticker）内凹凹槽质感 */
.iw-cart-label {
  background: linear-gradient(180deg, rgba(28, 25, 22, 0.95) 0%, rgba(19, 18, 16, 0.98) 100%);
  border: 1px solid rgba(226, 196, 141, 0.14);
  border-radius: 4px;
  padding: 10px 9px 9px 9px;
  display: flex;
  flex-direction: column;
  position: relative;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6);
  transition: border-color 0.2s ease, background 0.2s ease;
}

/* 贴纸头部：极简编号与微型图标 */
.iw-cart-label-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.iw-cart-rom-id {
  font-family: "ShareTechMono", monospace;
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(226, 196, 141, 0.65);
  font-weight: 600;
}

.iw-cart-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(226, 196, 141, 0.75);
  transition: transform 0.2s ease, color 0.2s ease;
}

/* 贴纸文字：大标题与极简副标 */
.iw-cart-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #f5f2eb;
  letter-spacing: 0.5px;
  line-height: 1.2;
  margin-bottom: 3px;
}

.iw-cart-sub {
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

/* 悬停微动效：卡带拔插浮起 */
.iw-deck-cartridge:hover,
.iw-deck-cartridge:active {
  transform: translateY(-3px);
  border-color: rgba(226, 196, 141, 0.28);
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 8px 20px rgba(0, 0, 0, 0.5),
    0 0 12px rgba(226, 196, 141, 0.08);
}

.iw-deck-cartridge:hover .iw-cart-label {
  border-color: rgba(226, 196, 141, 0.3);
  background: linear-gradient(180deg, rgba(32, 28, 24, 0.98) 0%, rgba(22, 20, 18, 1) 100%);
}

.iw-deck-cartridge:hover .iw-cart-icon {
  color: #e2c48d;
  transform: scale(1.08);
}

/* --- 游戏大厅（ROM.03 / Arcade Hub）：一排三个竖向卡块网格 --- */
.iw-game-hub-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.iw-game-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.iw-game-tile {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.04) 0%, rgba(226, 196, 141, 0.015) 30%, rgba(14, 16, 20, 0.94) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 16px 8px 14px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  position: relative;
  user-select: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 3px 10px rgba(0, 0, 0, 0.3);
  -webkit-tap-highlight-color: transparent;
}

.iw-game-tile:hover,
.iw-game-tile:active {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.07) 0%, rgba(226, 196, 141, 0.04) 35%, rgba(18, 20, 26, 0.96) 100%);
  border-color: rgba(226, 196, 141, 0.45);
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 6px 14px rgba(0, 0, 0, 0.4), 0 0 12px rgba(226, 196, 141, 0.12);
}

.iw-game-tile-icon {
  width: 38px;
  height: 38px;
  border-radius: 4px;
  background: rgba(226, 196, 141, 0.05);
  border: 1px solid rgba(226, 196, 141, 0.2);
  color: #e2c48d;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.iw-game-tile:hover .iw-game-tile-icon,
.iw-game-tile:active .iw-game-tile-icon {
  background: rgba(226, 196, 141, 0.14);
  border-color: rgba(226, 196, 141, 0.5);
  box-shadow: 0 0 10px rgba(226, 196, 141, 0.25);
  transform: scale(1.06);
}

.iw-game-tile-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
  width: 100%;
}

.iw-game-tile-name {
  font-size: 12.5px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.iw-game-tile-sub {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9px;
  color: rgba(226, 196, 141, 0.55);
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* 占位卡带：敬请期待（虚线微光科技感） */
.iw-game-tile.iw-game-tile-placeholder {
  border: 1px dashed rgba(226, 196, 141, 0.25);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.02) 0%, rgba(14, 16, 20, 0.8) 100%);
  opacity: 0.75;
}

.iw-game-tile.iw-game-tile-placeholder:hover,
.iw-game-tile.iw-game-tile-placeholder:active {
  border-color: rgba(226, 196, 141, 0.5);
  opacity: 1;
  background: linear-gradient(155deg, rgba(226, 196, 141, 0.04) 0%, rgba(18, 20, 26, 0.92) 100%);
}

.iw-game-tile.iw-game-tile-placeholder .iw-game-tile-icon {
  background: rgba(226, 196, 141, 0.03);
  border: 1px dashed rgba(226, 196, 141, 0.25);
  color: rgba(226, 196, 141, 0.7);
}

/* ====================================================
   2048 街机机台界面（纯前端引擎 + 换皮装配点）
   ==================================================== */
.iw-2048-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  user-select: none;
  touch-action: none;
}

/* 顶部状态与分数栏 */
.iw-2048-header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.iw-2048-title-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.iw-2048-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-2048-title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
}

.iw-2048-subtitle {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9.5px;
  color: rgba(226, 196, 141, 0.7);
  letter-spacing: 1px;
}

/* 顶部副标下方的极简重构推演按钮 */
.iw-2048-regen-link {
  background: transparent;
  border: none;
  padding: 0;
  margin-top: 2px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.38);
  cursor: pointer;
  user-select: none;
  transition: all 0.15s ease;
  line-height: 1;
}

.iw-2048-regen-icon {
  font-size: 11px;
  display: inline-block;
  transition: transform 0.25s ease;
  color: rgba(226, 196, 141, 0.6);
}

.iw-2048-regen-link:hover {
  color: #e2c48d;
}

.iw-2048-regen-link:hover .iw-2048-regen-icon {
  transform: rotate(180deg);
  color: #e2c48d;
}

.iw-2048-regen-link:active {
  transform: scale(0.96);
}

.iw-2048-scores {
  display: flex;
  gap: 6px;
}

.iw-2048-score-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 4px 10px;
  min-width: 52px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.iw-2048-score-box.is-best {
  border-color: rgba(226, 196, 141, 0.2);
  background: rgba(226, 196, 141, 0.03);
}

.iw-2048-score-lbl {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.8px;
}

.iw-2048-score-box.is-best .iw-2048-score-lbl {
  color: rgba(226, 196, 141, 0.6);
}

.iw-2048-score-val {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}

.iw-2048-score-box.is-best .iw-2048-score-val {
  color: #e2c48d;
}

/* 控制条（合成表查询 + 重开） */
.iw-2048-toolbar {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.iw-2048-hint {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  gap: 4px;
}

.iw-2048-btn-group {
  display: flex;
  gap: 12px;
}

.iw-2048-btn {
  background: transparent;
  border: none;
  padding: 4px 6px;
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.45);
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}

.iw-2048-btn:hover,
.iw-2048-btn:active {
  background: transparent;
  color: #e2c48d;
}

/* 结算弹窗里的操作按钮保持胶囊块状 */
.iw-2048-overlay-btns .iw-2048-btn {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  padding: 6px 14px;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.iw-2048-overlay-btns .iw-2048-btn:hover,
.iw-2048-overlay-btns .iw-2048-btn:active {
  background: rgba(226, 196, 141, 0.12);
  border-color: rgba(226, 196, 141, 0.35);
  color: #e2c48d;
}

/* 4×4 棋盘网格容器 */
.iw-2048-board-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: rgba(14, 16, 20, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  padding: 10px;
  position: relative;
  box-sizing: border-box;
  box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.6);
}

.iw-2048-grid {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(4, 1fr);
  gap: 8px;
}

/* 格子背景位（空位） */
.iw-2048-cell-bg {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 4px;
}

/* 动态实体方块（数字/词缀） */
.iw-2048-tile {
  width: 100%;
  height: 100%;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  transition: transform 0.08s ease-out, background-color 0.12s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

.iw-2048-tile-text {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 21px;
  line-height: 1;
  letter-spacing: -0.5px;
}

/* 字体自适应：字数多时自动微调 */
.iw-2048-tile-text.is-len-3 { font-size: 16px; }
.iw-2048-tile-text.is-len-4 { font-size: 13px; }
.iw-2048-tile-text.is-len-gt4 { font-size: 11px; }

/* 诞生与合并微弹跳动画 */
@keyframes iw2048Spawn {
  0% { transform: scale(0.35); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes iw2048Merge {
  0% { transform: scale(1); }
  50% { transform: scale(1.15); filter: brightness(1.25); }
  100% { transform: scale(1); }
}

.iw-2048-tile.is-new {
  animation: iw2048Spawn 0.14s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards;
}

.iw-2048-tile.is-merged {
  animation: iw2048Merge 0.16s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards;
}

/* 游戏结束 / 通关遮罩 */
.iw-2048-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10, 11, 14, 0.88);
  backdrop-filter: blur(4px);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  z-index: 50;
  pointer-events: auto;
  animation: iwFadeIn 0.25s ease;
  padding: 20px;
  text-align: center;
}

.iw-2048-overlay-title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
}

.iw-2048-overlay-subtitle {
  font-size: 10.5px;
  color: rgba(226, 196, 141, 0.55);
  letter-spacing: 1.5px;
  margin-top: -6px;
  font-family: "ShareTechMono", "SF Mono", monospace;
}

.iw-2048-overlay-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
}

.iw-2048-overlay-btns {
  display: flex;
  gap: 10px;
  margin-top: 6px;
}

/* 长文案弹窗（开局 narrative / 通关 winText）：允许内部滚动，不撑爆棋盘 */
.iw-2048-overlay.is-scroll {
  justify-content: flex-start;
  overflow-y: auto;
  padding: 24px 18px;
}

.iw-2048-overlay.is-scroll .iw-2048-overlay-desc {
  text-align: left;
  font-size: 12.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.72);
}

/* 皮肤生成加载态：香槟金旋转环 */
.iw-2048-skin-loading-spin {
  width: 32px;
  height: 32px;
  border: 2.5px solid rgba(226, 196, 141, 0.15);
  border-top-color: #e2c48d;
  border-radius: 50%;
  animation: iw2048Spin 0.8s linear infinite;
}

@keyframes iw2048Spin {
  to { transform: rotate(360deg); }
}

/* 合成表底部旧按钮样式（已精简移除） */

/* ====================================================
   扫雷（MINES SWEEPER）独立游戏机台样式
   ==================================================== */
.iw-mines-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  user-select: none;
}

.iw-mines-header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.iw-mines-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.iw-mines-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-mines-title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
}

.iw-mines-subtitle {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9.5px;
  color: rgba(226, 196, 141, 0.7);
  letter-spacing: 1px;
}

.iw-mines-regen-link {
  background: transparent;
  border: none;
  padding: 0;
  margin-top: 2px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.38);
  cursor: pointer;
  user-select: none;
  transition: all 0.15s ease;
  line-height: 1;
}

.iw-mines-regen-icon {
  font-size: 11px;
  display: inline-block;
  transition: transform 0.25s ease;
  color: rgba(226, 196, 141, 0.6);
}

.iw-mines-regen-link:hover {
  color: #e2c48d;
}

.iw-mines-regen-link:hover .iw-mines-regen-icon {
  transform: rotate(180deg);
  color: #e2c48d;
}

/* 顶部状态仪（剩余雷数 + 计时） */
.iw-mines-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
}

.iw-mines-counter-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 4px 8px;
  min-width: 46px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.iw-mines-counter-box.is-time {
  border-color: rgba(226, 196, 141, 0.18);
}

.iw-mines-counter-lbl {
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.6px;
}

.iw-mines-counter-val {
  font-family: "ShareTechMono", monospace;
  font-size: 13px;
  font-weight: 700;
  color: #e2c48d;
}

/* 控制条（操作模式大切换 + 右侧操作组） */
.iw-mines-toolbar {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.iw-mines-mode-toggle {
  display: flex;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  padding: 2px;
  gap: 2px;
}

.iw-mines-mode-btn {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 11.5px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  transition: all 0.16s ease;
  user-select: none;
}

.iw-mines-mode-btn.is-active {
  background: rgba(226, 196, 141, 0.16);
  color: #e2c48d;
  box-shadow: inset 0 0 8px rgba(226, 196, 141, 0.1);
}

.iw-mines-btn-group {
  display: flex;
  gap: 10px;
}

.iw-mines-btn {
  background: transparent;
  border: none;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  padding: 4px 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s ease;
  user-select: none;
}

.iw-mines-btn:hover,
.iw-mines-btn:active {
  color: #e2c48d;
}

/* 扫雷棋盘矩阵宿主（自适应宽高比） */
.iw-mines-board-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: rgba(14, 16, 20, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  padding: 8px;
  position: relative;
  box-sizing: border-box;
  box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.6);
  touch-action: manipulation;
}

.iw-mines-grid {
  width: 100%;
  height: 100%;
  display: grid;
  gap: 4px;
}

/* 扫雷格子 */
.iw-mines-cell {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-weight: 700;
  font-size: 13.5px;
  transition: background 0.12s ease, transform 0.08s ease;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.iw-mines-cell:active {
  transform: scale(0.96);
}

/* 格子状态 */
.iw-mines-cell.is-revealed {
  background: rgba(0, 0, 0, 0.45);
  border-color: rgba(255, 255, 255, 0.03);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6);
  cursor: default;
}

.iw-mines-cell.is-flagged {
  background: rgba(226, 196, 141, 0.08);
  border-color: rgba(226, 196, 141, 0.3);
}

.iw-mines-flag-sym {
  color: #e2c48d;
  font-size: 13px;
  animation: iwFlagPop 0.18s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes iwFlagPop {
  from { transform: scale(0.4); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.iw-mines-cell.is-mine {
  background: rgba(255, 80, 80, 0.12);
  border-color: rgba(255, 80, 80, 0.25);
}

.iw-mines-cell.is-mine-hit {
  background: rgba(255, 60, 60, 0.35);
  border-color: #ff4d4d;
  box-shadow: 0 0 12px rgba(255, 77, 77, 0.4);
}

.iw-mines-mine-sym {
  color: #ff5e5e;
  font-size: 14px;
}

/* 扫雷数字高雅色谱（冷色到暖金梯度，契合 Skynex 质感） */
.iw-mines-cell.is-num-1 .iw-mines-num-text { color: #8bb3e8; }
.iw-mines-cell.is-num-2 .iw-mines-num-text { color: #78c996; }
.iw-mines-cell.is-num-3 .iw-mines-num-text { color: #e2c48d; }
.iw-mines-cell.is-num-4 .iw-mines-num-text { color: #e8a278; }
.iw-mines-cell.is-num-5 .iw-mines-num-text { color: #e87878; }
.iw-mines-cell.is-num-6 .iw-mines-num-text { color: #6ee7b7; }
.iw-mines-cell.is-num-7 .iw-mines-num-text { color: #c084fc; }
.iw-mines-cell.is-num-8 .iw-mines-num-text { color: #f43f5e; }

.iw-mines-bottom-tip {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  letter-spacing: 0.3px;
}

.iw-mines-lvl-tag {
  color: inherit;
  font-family: inherit;
  font-weight: normal;
  letter-spacing: inherit;
}

.iw-mines-tip-sep {
  color: rgba(255, 255, 255, 0.2);
}

/* ====================================================
   记忆翻牌（MEMORY MATCH）机台专有样式
   ==================================================== */
.iw-memory-container {
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
  user-select: none;
}

.iw-memory-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.iw-memory-title-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.iw-memory-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-memory-title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.5px;
}

.iw-memory-subtitle {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 11px;
  color: rgba(226, 196, 141, 0.7);
  letter-spacing: 1px;
}

.iw-memory-regen-link {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  align-self: flex-start;
  transition: color 0.15s ease;
  user-select: none;
}

.iw-memory-regen-link:hover,
.iw-memory-regen-link:active {
  color: #e2c48d;
}

.iw-memory-regen-icon {
  font-size: 11px;
  display: inline-block;
  transition: transform 0.3s ease;
}

.iw-memory-regen-link:hover .iw-memory-regen-icon {
  transform: rotate(180deg);
}

.iw-memory-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
}

.iw-memory-counter-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 4px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 52px;
}

.iw-memory-counter-lbl {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.8px;
}

.iw-memory-counter-num {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  transition: color 0.2s ease;
}

.iw-memory-counter-num.is-warning {
  color: #ff5e5e;
  animation: iwPulse 1s infinite alternate;
}

@keyframes iwPulse {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

.iw-memory-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.iw-memory-tool-btn {
  background: transparent;
  border: none;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  padding: 4px 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s ease;
  user-select: none;
}

.iw-memory-tool-btn:hover,
.iw-memory-tool-btn:active {
  color: #e2c48d;
}

/* 卡牌网格与宿主 */
.iw-memory-board-wrapper {
  position: relative;
  background: #14161b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.6);
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.iw-memory-grid {
  width: 100%;
  display: grid;
  gap: 8px;
  perspective: 1000px;
}

/* 卡牌本体与 3D 翻转 */
.iw-memory-card {
  aspect-ratio: 1 / 1.18;
  cursor: pointer;
  user-select: none;
  perspective: 800px;
}

.iw-memory-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
  border-radius: 6px;
}

.iw-memory-card.is-flipped .iw-memory-card-inner,
.iw-memory-card.is-matched .iw-memory-card-inner {
  transform: rotateY(180deg);
}

/* 卡牌背面（暗金属质感 + 微暗印） */
.iw-memory-card-back,
.iw-memory-card-front {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.iw-memory-card-back {
  background: #1b1e24;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
  transition: border-color 0.15s ease, background 0.15s ease;
}

.iw-memory-card:not(.is-flipped):not(.is-matched):hover .iw-memory-card-back,
.iw-memory-card:not(.is-flipped):not(.is-matched):active .iw-memory-card-back {
  background: #22262e;
  border-color: rgba(226, 196, 141, 0.25);
}

.iw-memory-back-sigil {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.18);
  font-family: "ShareTechMono", monospace;
}

/* 卡牌正面（翻开：柔亮底板 + 金色矢量图腾） */
.iw-memory-card-front {
  background: rgba(226, 196, 141, 0.12);
  border: 1px solid rgba(226, 196, 141, 0.35);
  transform: rotateY(180deg);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
}

/* 配对成功高亮点亮态 */
.iw-memory-card.is-matched .iw-memory-card-front {
  background: rgba(226, 196, 141, 0.22);
  border-color: #e2c48d;
  box-shadow: 0 0 14px rgba(226, 196, 141, 0.35);
}

.iw-memory-sym-icon {
  width: 55%;
  height: 55%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #e2c48d;
}

.iw-memory-sym-icon svg {
  width: 100%;
  height: 100%;
}

.iw-memory-bottom-tip {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  letter-spacing: 0.3px;
}

.iw-memory-lvl-tag {
  color: inherit;
  font-family: inherit;
  font-weight: normal;
  letter-spacing: inherit;
}

.iw-memory-tip-sep {
  color: rgba(255, 255, 255, 0.2);
}
.iw-2048-recipe-mask {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(6px);
  z-index: 1000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  animation: iwFadeIn 0.2s ease;
}

.iw-2048-recipe-sheet {
  width: 100%;
  max-width: 440px;
  background: #12141a;
  border-top: 1px solid rgba(226, 196, 141, 0.25);
  border-radius: 12px 12px 0 0;
  padding: 20px 18px 28px 18px;
  box-sizing: border-box;
  max-height: 75vh;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.6);
  animation: iwSlideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.iw-2048-recipe-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding-bottom: 12px;
}

.iw-2048-recipe-title {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}

.iw-2048-recipe-close {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  transition: color 0.15s;
}

.iw-2048-recipe-close:hover {
  color: #fff;
}

.iw-2048-recipe-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  padding-right: 4px;
}

.iw-2048-recipe-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 4px;
  padding: 6px 12px;
}

.iw-2048-recipe-badge {
  width: 52px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.5px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.iw-2048-recipe-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
}

.iw-2048-recipe-name {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 14px;
  font-weight: 600;
  color: #f0f0f0;
  letter-spacing: 0.5px;
}

.iw-2048-recipe-desc {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 10px;
  color: rgba(226, 196, 141, 0.55);
  letter-spacing: 0.5px;
}

/* --- 游嬉二级卡带机顶操作栏（HUD Console Bar） --- */
.iw-arcade-subnav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #161514;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 10px 14px;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 4px 14px rgba(0, 0, 0, 0.45);
  box-sizing: border-box;
}

/* 顶部香槟金流光微线 */
.iw-arcade-subnav::before {
  content: "";
  position: absolute;
  top: 0;
  left: 10px;
  right: 10px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(226, 196, 141, 0.35) 50%, transparent 100%);
  pointer-events: none;
}

/* 左侧：实体退弹按键（EJECT KEY） */
.iw-subnav-back {
  background: rgba(226, 196, 141, 0.06);
  border: 1px solid rgba(226, 196, 141, 0.22);
  border-radius: 4px;
  color: #e2c48d;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  font-weight: 500;
  cursor: pointer;
  padding: 5px 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: all 0.15s ease;
  user-select: none;
}

.iw-subnav-back:hover {
  background: rgba(226, 196, 141, 0.12);
  border-color: rgba(226, 196, 141, 0.4);
  color: #fff;
}

.iw-subnav-back:active {
  transform: translateY(1px);
  background: rgba(226, 196, 141, 0.18);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.6);
}

/* 右侧：纯静态硬件铭牌（无呼吸灯，克制静止） */
.iw-subnav-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 4px 8px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5);
}

.iw-subnav-code {
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.8px;
  font-weight: 600;
}

.iw-subnav-dot {
  color: rgba(255, 255, 255, 0.2);
  font-size: 7px;
}

.iw-subnav-live {
  color: rgba(226, 196, 141, 0.75);
  letter-spacing: 0.5px;
}

/* --- 视口卡片通用底板 --- */
.iw-quiz-header-card,
.iw-quiz-stage-card,
.iw-theater-stage-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 4px;
  padding: 14px;
  position: relative;
}

/* --- 趣味测试视口样式 --- */
.iw-quiz-header-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  margin-bottom: 8px;
}

.iw-quiz-tag {
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.8px;
}

.iw-quiz-stamp {
  color: #e2c48d;
  border: 1px solid rgba(226, 196, 141, 0.3);
  padding: 1px 6px;
  border-radius: 2px;
  background: rgba(226, 196, 141, 0.05);
}

.iw-quiz-title {
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 12px;
}

.iw-quiz-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.5;
  margin-bottom: 12px;
}

.iw-quiz-progress-track {
  background: transparent;
  border: none;
  padding: 0;
  margin-top: 4px;
}

.iw-quiz-progress-bar {
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 8px;
}

.iw-quiz-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(226, 196, 141, 0.6) 0%, #e2c48d 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(226, 196, 141, 0.5);
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.iw-quiz-progress-label {
  display: flex;
  justify-content: space-between;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 1px;
}

.iw-quiz-progress-num {
  color: #e2c48d;
}

/* 题目台 */
.iw-quiz-stage-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.iw-quiz-q-num {
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  color: #e2c48d;
  letter-spacing: 1px;
}

.iw-quiz-pager {
  display: flex;
  align-items: center;
  gap: 4px;
}

.iw-pager-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 3px;
  color: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  padding: 0;
  transition: all 0.16s ease;
  -webkit-tap-highlight-color: transparent;
}

.iw-pager-btn:hover,
.iw-pager-btn:active {
  border-color: rgba(226, 196, 141, 0.45);
  color: #e2c48d;
}

.iw-pager-btn.is-disabled {
  opacity: 0.25;
  cursor: default;
  border-color: rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.iw-quiz-q-text {
  font-size: 13.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 14px;
}

/* 压感选项按键 */
.iw-quiz-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.iw-quiz-opt {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 4px;
  padding: 10px 12px;
  cursor: pointer;
  transition: all 0.16s ease;
  user-select: none;
}

.iw-quiz-opt:active {
  background: rgba(226, 196, 141, 0.05);
  border-color: rgba(226, 196, 141, 0.4);
  transform: translateY(1px);
}

/* 选中高亮态 */
.iw-quiz-opt.is-selected {
  background: rgba(226, 196, 141, 0.08);
  border-color: rgba(226, 196, 141, 0.55);
  box-shadow: 0 0 12px rgba(226, 196, 141, 0.08);
}

.iw-quiz-opt.is-selected .iw-quiz-opt-key {
  background: #e2c48d;
  color: #111;
  font-weight: 700;
  box-shadow: 0 0 8px rgba(226, 196, 141, 0.6);
}

.iw-quiz-opt.is-selected .iw-quiz-opt-title {
  color: #e2c48d;
}

/* --- 结局结算卡样式（无任何灵魂切片字眼，利落透性质感） --- */
.iw-quiz-result-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(226, 196, 141, 0.28);
  border-radius: 4px;
  padding: 16px 14px;
  position: relative;
  box-shadow: 0 0 20px rgba(226, 196, 141, 0.04);
}

.iw-quiz-result-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}

.iw-result-badge {
  font-family: inherit;
  font-size: 11px;
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.1);
  border: 1px solid rgba(226, 196, 141, 0.25);
  padding: 1px 6px;
  border-radius: 2px;
  letter-spacing: 0.5px;
}

.iw-result-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.iw-result-id {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 1px;
}

.iw-result-hero {
  text-align: center;
  padding: 8px 0 14px 0;
}

.iw-result-title {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
  margin-bottom: 6px;
  text-shadow: 0 0 14px rgba(226, 196, 141, 0.35);
}

.iw-result-one-liner {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.5);
  font-style: italic;
  line-height: 1.4;
}

.iw-result-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-bottom: 14px;
}

.iw-result-tag {
  font-family: inherit;
  font-size: 10px;
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.05);
  border: 1px solid rgba(226, 196, 141, 0.18);
  padding: 2px 8px;
  border-radius: 12px;
}

.iw-result-desc {
  font-size: 12.5px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 4px;
  padding: 12px;
}

.iw-quiz-opt-key {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  font-weight: 700;
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.2);
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  flex-shrink: 0;
  margin-top: 1px;
}

.iw-quiz-opt-body {
  flex: 1;
}

.iw-quiz-opt-title {
  font-size: 12.5px;
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 2px;
}

.iw-quiz-opt-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.5;
}

/* 底部双操作功能按键（重新作答 + 换一套新测试） */
.iw-quiz-action-bar {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  gap: 8px;
  margin-top: 2px;
}

.iw-quiz-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 38px;
  border-radius: 4px;
  font-size: 12px;
  font-family: inherit;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
}

.iw-quiz-btn.is-secondary {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.09);
  color: rgba(255, 255, 255, 0.7);
}

.iw-quiz-btn.is-secondary:active {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
  transform: translateY(1px);
}

.iw-quiz-btn.is-primary {
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.32);
  color: #e2c48d;
  box-shadow: 0 0 10px rgba(226, 196, 141, 0.05);
}

.iw-quiz-btn.is-primary:active {
  background: rgba(226, 196, 141, 0.16);
  border-color: rgba(226, 196, 141, 0.55);
  color: #fff;
  box-shadow: 0 0 14px rgba(226, 196, 141, 0.2);
  transform: translateY(1px);
}

/* --- 空态题卷卡（Blank Cartridge / 待打捞状态，对齐众生相与风靡的古典工坊质感） --- */
.iw-quiz-blank-card {
  background: rgba(255, 255, 255, 0.015);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  padding: 16px 18px 26px;
  position: relative;
}

.iw-quiz-blank-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  padding-bottom: 12px;
  margin-bottom: 22px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.06);
}

.iw-quiz-blank-code {
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.8px;
}

.iw-quiz-blank-badge {
  color: #e2c48d;
  opacity: 0.75;
  letter-spacing: 0.5px;
}

.iw-quiz-blank-main {
  text-align: center;
  padding: 4px 8px 8px;
}

.iw-quiz-blank-title {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 1.2px;
  margin-bottom: 8px;
}

.iw-quiz-blank-epigraph {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12px;
  color: rgba(226, 196, 141, 0.75);
  letter-spacing: 0.6px;
  font-style: italic;
  margin-bottom: 14px;
}

.iw-quiz-blank-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0.4px;
}

/* 独立框外长排通栏控制台（对齐众生相 console 质感） */
.iw-quiz-blank-console {
  margin-top: 2px;
  width: 100%;
  box-sizing: border-box;
}

.iw-quiz-blank-btn {
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 14px;
  background: rgba(226, 196, 141, 0.05);
  border: 1px solid rgba(226, 196, 141, 0.22);
  border-radius: 4px;
  color: #e2c48d;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.iw-quiz-blank-btn:hover {
  background: rgba(226, 196, 141, 0.09);
  border-color: rgba(226, 196, 141, 0.38);
  box-shadow: 0 0 12px rgba(226, 196, 141, 0.08);
}

.iw-quiz-blank-btn:active {
  background: rgba(226, 196, 141, 0.14);
  border-color: rgba(226, 196, 141, 0.5);
  transform: translateY(1px);
}

.iw-blank-btn-text {
  display: flex;
  align-items: center;
  gap: 8px;
}

.iw-blank-btn-spark {
  color: #e2c48d;
  font-size: 12px;
  line-height: 1;
}

.iw-blank-btn-label {
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.5px;
}

.iw-blank-btn-action {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  letter-spacing: 0.8px;
  opacity: 0.8;
}

/* --- 怪奇剧场视口样式 --- */
.iw-theater-act-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.07);
}

.iw-theater-act-badge {
  background: rgba(226, 196, 141, 0.12);
  color: #e2c48d;
  border: 1px solid rgba(226, 196, 141, 0.25);
  padding: 1px 6px;
  border-radius: 2px;
  font-weight: 700;
}

.iw-theater-act-title {
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.5px;
}

.iw-theater-scene-tag {
  margin-left: auto;
  color: rgba(255, 255, 255, 0.3);
}

.iw-theater-script-box {
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 3px;
  padding: 10px 12px;
}

.iw-theater-role-line {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
}

.iw-theater-role-badge {
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.06);
  padding: 1px 4px;
  border-radius: 2px;
}

.iw-theater-role-name {
  color: rgba(255, 255, 255, 0.7);
}

.iw-theater-narrative {
  font-size: 13px;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.2px;
}

.iw-theater-decision-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.iw-theater-fork-title {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: #e2c48d;
  letter-spacing: 1px;
  opacity: 0.85;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 2px;
}

.iw-theater-forks {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.iw-theater-fork-card {
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 4px;
  padding: 11px 12px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  user-select: none;
}

.iw-theater-fork-card:active {
  transform: translateY(1px);
}

.iw-theater-fork-card.is-branch-a:hover,
.iw-theater-fork-card.is-branch-a:active {
  border-color: rgba(226, 196, 141, 0.45);
  background: rgba(226, 196, 141, 0.04);
}

.iw-theater-fork-card.is-branch-b:hover,
.iw-theater-fork-card.is-branch-b:active {
  border-color: rgba(226, 196, 141, 0.45);
  background: rgba(226, 196, 141, 0.04);
}

.iw-theater-fork-head {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 4px;
}

.iw-fork-symbol {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.5px;
  opacity: 0.9;
}

.iw-fork-name {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}

.iw-theater-fork-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
}

/* --- 怪奇剧场专属通栏长排控制台按键 --- */
.iw-theater-console {
  margin-top: 14px;
  width: 100%;
}

.iw-theater-switch-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(226, 196, 141, 0.22);
  border-radius: 4px;
  padding: 12px 14px;
  cursor: pointer;
  outline: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.iw-theater-switch-btn:hover {
  background: rgba(226, 196, 141, 0.04);
  border-color: rgba(226, 196, 141, 0.45);
  box-shadow: 0 0 14px rgba(226, 196, 141, 0.12);
}

.iw-theater-switch-btn:active {
  transform: translateY(1px);
  background: rgba(226, 196, 141, 0.06);
  border-color: rgba(226, 196, 141, 0.6);
}

.iw-theater-btn-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.iw-theater-btn-spark {
  color: #e2c48d;
  font-size: 12px;
  line-height: 1;
  text-shadow: 0 0 8px rgba(226, 196, 141, 0.5);
}

.iw-theater-btn-label {
  font-family: "Noto Serif SC", "Songti SC", "SimSun", serif;
  font-size: 13px;
  font-weight: 600;
  color: #e2c48d;
  letter-spacing: 1px;
}

.iw-theater-btn-right {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 1.2px;
  transition: all 0.2s ease;
}

.iw-theater-switch-btn:hover .iw-theater-btn-right {
  color: #e2c48d;
}

.iw-theater-btn-arrow {
  color: #e2c48d;
  transition: transform 0.2s ease;
}

.iw-theater-switch-btn:hover .iw-theater-btn-arrow {
  transform: translateX(3px);
}

/* --- 怪奇剧场：终幕落幕卡片与谢幕专属质感 --- */
.iw-theater-result-card {
  background: linear-gradient(180deg, rgba(226, 196, 141, 0.04) 0%, rgba(20, 22, 28, 0.98) 35%, rgba(12, 14, 18, 0.98) 100%);
  border: 1px solid rgba(226, 196, 141, 0.28);
  border-radius: 4px;
  padding: 16px 14px 18px;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(226, 196, 141, 0.2),
    0 10px 24px rgba(0, 0, 0, 0.45);
}

.iw-theater-result-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #e2c48d 20%, #e2c48d 80%, transparent);
}

.iw-theater-result-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(226, 196, 141, 0.15);
}

.iw-theater-result-badge {
  color: #e2c48d;
  letter-spacing: 1.2px;
  font-weight: 600;
  opacity: 0.85;
}

.iw-theater-result-code {
  color: rgba(226, 196, 141, 0.6);
  letter-spacing: 1.2px;
}

.iw-theater-result-hero {
  text-align: center;
  margin: 10px 0 6px;
}

.iw-theater-result-title {
  font-family: "Noto Serif SC", "Songti SC", "SimSun", serif;
  font-size: 21px;
  font-weight: 700;
  color: #f7ecd2;
  letter-spacing: 3px;
  text-shadow: 0 0 16px rgba(226, 196, 141, 0.35);
}

.iw-theater-result-epigraph {
  font-family: "Noto Serif SC", "Songti SC", "SimSun", serif;
  font-size: 11.5px;
  font-style: italic;
  color: rgba(226, 196, 141, 0.52);
  text-align: center;
  margin: 6px auto 18px auto;
  line-height: 1.75;
  letter-spacing: 0.8px;
  max-width: 92%;
}

.iw-theater-result-narrative {
  font-size: 12.5px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.4px;
  text-align: justify;
  text-indent: 2em;
  padding: 0 4px;
}

/* 结局页双按键组 */
.iw-theater-action-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}

.iw-theater-switch-btn.is-replay {
  border-color: rgba(255, 255, 255, 0.12);
}

.iw-theater-switch-btn.is-replay:hover {
  border-color: rgba(226, 196, 141, 0.35);
}

/* =========================================================================
   机台 04：贪吃蛇（SNAKE CORRIDOR）一屏自适应与纵深暗调网格
   ========================================================================= */

/* 页面容器：防滑动外溢 */
.iw-snake-page {
  overflow: hidden !important;
  touch-action: none;
}

.iw-snake-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 4px;
}

/* 顶部紧凑标题与控制栏（整合一行） */
.iw-snake-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  flex-shrink: 0;
  gap: 8px;
}

.iw-snake-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}

.iw-snake-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.iw-snake-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #fff;
  font-family: inherit;
  line-height: 1.1;
}

.iw-snake-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(226, 196, 141, 0.7);
  font-family: monospace;
}

/* 紧随标题下方的微型操作行：剧情 + 重构推演 + 暂停 + 重置 */
.iw-snake-subactions-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 1px;
}

.iw-snake-regen-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.42);
  font-size: 10.5px;
  cursor: pointer;
  padding: 1px 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  width: fit-content;
  user-select: none;
}

.iw-snake-regen-link:hover,
.iw-snake-regen-link:active {
  color: #e2c48d;
}

.iw-snake-regen-icon {
  font-size: 11px;
}

.iw-snake-tool-btn {
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  padding: 1px 3px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  user-select: none;
}

.iw-snake-tool-btn:hover,
.iw-snake-tool-btn:active {
  color: #e2c48d;
}

/* 状态仪：SCORE & BEST */
.iw-snake-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.iw-snake-counter-box {
  background: #14161b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 2px 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 44px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

.iw-snake-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.4);
  font-family: monospace;
}

.iw-snake-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: #e2c48d;
  font-family: monospace;
  line-height: 1.15;
}

/* 核心一屏自适应棋盘宿主 (14 列 x 18 行，纵横比 14/18) */
.iw-snake-board-wrapper {
  position: relative;
  background: #14161b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 5px;
  box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;

  /* 宽度自适应，最大填满机台容器 */
  width: 100%;
  /* 严格锁定 14:18 黄金竖屏比例 */
  aspect-ratio: 14 / 18;
  /* 高度自适应：给顶部和底部的横排大按键留足安全余量，保证 100% 同屏无滚动 */
  max-height: calc(100svh - 225px);
  margin: 0 auto;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

/* 横向一排大实体方向按键：◀ ▲ ▼ ▶ */
.iw-snake-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 8px;
  flex-shrink: 0;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  width: 100%;
}

.iw-snake-hpad {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  width: 100%;
  max-width: 320px;
}

.iw-snake-btn {
  height: 44px;
  background: #181b22;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.78);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 3px 6px rgba(0, 0, 0, 0.45);
  transition: background 0.08s ease, color 0.08s ease, transform 0.05s ease;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.iw-snake-btn:active {
  background: #252a35;
  color: #e2c48d;
  border-color: rgba(226, 196, 141, 0.45);
  transform: scale(0.95);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.7);
}

/* 14 列 x 18 行 CSS Grid */
.iw-snake-grid {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(14, 1fr);
  grid-template-rows: repeat(18, 1fr);
  gap: 2px;
  box-sizing: border-box;
}

/* 棋盘格元基底 */
.iw-snake-cell {
  position: relative;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 蛇头 */
.iw-snake-cell.is-head {
  background: transparent;
}

.iw-snake-head-dot {
  width: 90%;
  height: 90%;
  background: linear-gradient(135deg, #f5e2b8 0%, #d4ab65 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(226, 196, 141, 0.6);
  position: relative;
}

/* 蛇身段 */
.iw-snake-cell.is-body {
  background: transparent;
}

.iw-snake-body-segment {
  width: 82%;
  height: 82%;
  background: #c39b56;
  border-radius: 3px;
  transition: opacity 0.1s ease;
}

/* 陨落状态 */
.iw-snake-cell.is-head.is-dead .iw-snake-head-dot,
.iw-snake-cell.is-body.is-dead .iw-snake-body-segment {
  background: rgba(255, 80, 80, 0.7);
  box-shadow: 0 0 6px rgba(255, 60, 60, 0.5);
}

/* 食物点（灵珠） */
.iw-snake-cell.is-food {
  background: transparent;
}

.iw-snake-food-dot {
  width: 70%;
  height: 70%;
  background: #7bd492;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(123, 212, 146, 0.8), inset 0 0 2px #fff;
  animation: iwSnakePulseFood 1.2s ease-in-out infinite alternate;
}

@keyframes iwSnakePulseFood {
  0% { transform: scale(0.85); box-shadow: 0 0 4px rgba(123, 212, 146, 0.5); }
  100% { transform: scale(1.1); box-shadow: 0 0 10px rgba(123, 212, 146, 0.95); }
}

/* 底部状态说明条 */
.iw-snake-bottom-tip {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 6px;
  flex-shrink: 0;
  letter-spacing: 0.3px;
}
.iw-snake-name-tag {
  color: inherit;
  font-family: inherit;
}
.iw-snake-tip-sep {
  color: rgba(255, 255, 255, 0.2);
}

/* =========================================================================
   机台 05：见缝插针（AA PIN）一屏自适应与纯前端极简同心圆盘舞台
   ========================================================================= */
/* 页面容器：防滑动外溢 */
.iw-pin-page {
  overflow: hidden !important;
  touch-action: none;
}
.iw-pin-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 4px;
}
/* 顶部紧凑标题与控制栏（整合一行） */
.iw-pin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  flex-shrink: 0;
  gap: 8px;
}
.iw-pin-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.iw-pin-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.iw-pin-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #fff;
  font-family: inherit;
  line-height: 1.1;
}
.iw-pin-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(226, 196, 141, 0.7);
  font-family: monospace;
}
/* 紧随标题下方的微型操作行：剧情 + 重构推演 + 重置 */
.iw-pin-subactions-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 1px;
}
.iw-pin-regen-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.42);
  font-size: 10.5px;
  cursor: pointer;
  padding: 1px 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  width: fit-content;
  user-select: none;
}
.iw-pin-regen-link:hover,
.iw-pin-regen-link:active {
  color: #e2c48d;
}
.iw-pin-regen-icon {
  font-size: 11px;
}
.iw-pin-tool-btn {
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  padding: 1px 3px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  user-select: none;
}
.iw-pin-tool-btn:hover,
.iw-pin-tool-btn:active {
  color: #e2c48d;
}

/* 状态仪：STAGE & PINS */
.iw-pin-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.iw-pin-counter-box {
  background: #14161b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 2px 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 44px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}
.iw-pin-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.4);
  font-family: monospace;
}
.iw-pin-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: #e2c48d;
  font-family: monospace;
  line-height: 1.15;
}

/* 核心一屏自适应画布容器 (竖长比例，受控于视口限高) */
.iw-pin-board-wrapper {
  position: relative;
  background: #101216;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  box-sizing: border-box;
  width: 100%;
  aspect-ratio: 14 / 18;
  max-height: calc(100svh - 180px);
  margin: 0 auto;
  overflow: hidden;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  cursor: pointer;
}
.iw-pin-canvas {
  width: 100%;
  height: 100%;
  display: block;
}

/* 底部状态说明条 */
.iw-pin-bottom-tip {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 6px;
  flex-shrink: 0;
  letter-spacing: 0.3px;
}
.iw-pin-name-tag {
  color: inherit;
  font-family: inherit;
}
.iw-pin-tip-sep {
  color: rgba(255, 255, 255, 0.2);
}

/* =========================================================================
   机台 06：连连看（LINK LINK）一屏正方形自适应与纯矢量微光网格
   ========================================================================= */
/* 页面容器：防滑动外溢 */
.iw-link-page {
  overflow: hidden !important;
  touch-action: none;
}
.iw-link-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 4px;
}
/* 顶部紧凑标题与控制栏（整合一行） */
.iw-link-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  flex-shrink: 0;
  gap: 8px;
}
.iw-link-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.iw-link-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.iw-link-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #fff;
  font-family: inherit;
  line-height: 1.1;
}
.iw-link-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(226, 196, 141, 0.7);
  font-family: monospace;
}

/* 独立完整功能操作栏：单独成排，居左对齐，宽敞透气防折行挤爆 */
.iw-link-actions-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  padding: 3px 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
}

.iw-link-regen-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.48);
  font-size: 11px;
  cursor: pointer;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s ease;
  width: fit-content;
  user-select: none;
  white-space: nowrap;
}
.iw-link-regen-link:hover,
.iw-link-regen-link:active {
  color: #e2c48d;
}
.iw-link-regen-icon {
  font-size: 11.5px;
}

.iw-link-tool-btn {
  background: none;
  border: none;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s ease;
  user-select: none;
  white-space: nowrap;
}
.iw-link-tool-btn:hover,
.iw-link-tool-btn:active {
  color: #e2c48d;
}

/* 状态仪：STAGE & TIME & PAIRS */
.iw-link-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.iw-link-counter-box {
  background: #14161b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 2px 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 44px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}
.iw-link-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.4);
  font-family: monospace;
}
.iw-link-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: #e2c48d;
  font-family: monospace;
  line-height: 1.15;
}

/* 核心一屏 1:1 正方形网格宿主与防溢出设计 */
.iw-link-board-wrapper {
  position: relative;
  background: #101216;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  box-sizing: border-box;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: calc(100svh - 180px);
  max-width: calc(100svh - 180px);
  margin: 0 auto;
  overflow: hidden;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.7);
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}
.iw-link-grid {
  display: grid;
  width: 100%;
  height: 100%;
  gap: 4px;
}
/* 发光折线层覆盖 */
.iw-link-line-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

/* 单个方块单元格 */
.iw-link-cell {
  position: relative;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.1s ease;
}
.iw-link-cell.is-empty {
  cursor: default;
  pointer-events: none;
}
.iw-link-cell:active:not(.is-empty) {
  transform: scale(0.94);
}
.iw-link-tile {
  width: 100%;
  height: 100%;
  background: #181b22;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4), inset 0 1px 1px rgba(255, 255, 255, 0.05);
  transition: all 0.15s ease;
}
.iw-link-cell.is-selected .iw-link-tile {
  border-color: #e2c48d;
  background: rgba(226, 196, 141, 0.16);
  box-shadow: 0 0 10px rgba(226, 196, 141, 0.5), inset 0 0 6px rgba(226, 196, 141, 0.3);
  transform: scale(0.96);
}
.iw-link-cell.is-hint .iw-link-tile {
  animation: iwLinkHintPulse 0.8s ease-in-out infinite alternate;
  border-color: #7bd492;
}
@keyframes iwLinkHintPulse {
  0% { transform: scale(0.95); box-shadow: 0 0 4px rgba(123, 212, 146, 0.4); }
  100% { transform: scale(1.03); box-shadow: 0 0 12px rgba(123, 212, 146, 0.9); }
}
.iw-link-icon-wrap {
  width: 62%;
  height: 62%;
  color: #e2c48d;
  display: flex;
  align-items: center;
  justify-content: center;
}
.iw-link-icon-wrap svg {
  width: 100%;
  height: 100%;
}

/* 底部状态说明条 */
.iw-link-bottom-tip {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 6px;
  flex-shrink: 0;
  letter-spacing: 0.3px;
}
.iw-link-name-tag {
  color: inherit;
  font-family: inherit;
}
.iw-link-tip-sep {
  color: rgba(255, 255, 255, 0.2);
}

/* =========================================================================
   机台 07：五子棋（GOBANG）15x15 准星放大镜与对手心声系统样式
   ========================================================================= */
.iw-gobang-page {
  overflow: hidden !important;
  touch-action: none;
}
.iw-gobang-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 4px;
}
.iw-gobang-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  flex-shrink: 0;
  gap: 8px;
}
.iw-gobang-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.iw-gobang-title-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.iw-gobang-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #fff;
  line-height: 1.1;
}
.iw-gobang-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(226, 196, 141, 0.7);
  font-family: monospace;
}
.iw-gobang-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.iw-gobang-counter-box {
  background: #14161b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 2px 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 44px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}
.iw-gobang-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(255, 255, 255, 0.4);
  font-family: monospace;
}
.iw-gobang-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: #e2c48d;
  font-family: monospace;
  line-height: 1.15;
}

/* 独立全宽操作栏 */
.iw-gobang-actions-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  padding: 3px 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
}
.iw-gobang-regen-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.48);
  font-size: 11px;
  cursor: pointer;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s ease;
  user-select: none;
  white-space: nowrap;
}
.iw-gobang-regen-link:hover,
.iw-gobang-regen-link:active {
  color: #e2c48d;
}
.iw-gobang-regen-icon {
  font-size: 11.5px;
}
.iw-gobang-tool-btn {
  background: none;
  border: none;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  padding: 2px 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s ease;
  user-select: none;
  white-space: nowrap;
}
.iw-gobang-tool-btn:hover,
.iw-gobang-tool-btn:active {
  color: #e2c48d;
}

/* 对手状态栏与对弈心声气泡 */
.iw-gobang-rival-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  padding: 4px 8px;
  background: rgba(20, 22, 27, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
}
.iw-gobang-rival-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #101216;
  border: 1.5px solid #e2c48d;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(226, 196, 141, 0.3);
}
.iw-gobang-rival-avatar-inner {
  font-size: 12px;
  font-weight: 700;
  color: #e2c48d;
  font-family: inherit;
}
.iw-gobang-rival-info {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  gap: 1px;
}
.iw-gobang-rival-name-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.iw-gobang-rival-name {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
}
.iw-gobang-rival-role {
  font-size: 9.5px;
  color: rgba(226, 196, 141, 0.75);
  font-family: monospace;
}
.iw-gobang-rival-quote-bubble {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.75);
  font-style: italic;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 0.3s ease;
}
.iw-gobang-rival-quote-bubble.is-active {
  opacity: 1;
  color: #e2c48d;
}
.iw-gobang-rival-quote-bubble.is-hidden {
  opacity: 0.25;
}

/* 核心一屏 1:1 正方形棋盘宿主 */
.iw-gobang-board-wrapper {
  position: relative;
  background: #101216;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  box-sizing: border-box;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: calc(100svh - 195px);
  max-width: calc(100svh - 195px);
  margin: 0 auto;
  overflow: hidden;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  cursor: pointer;
}
.iw-gobang-canvas {
  width: 100%;
  height: 100%;
  display: block;
}

/* 触控悬浮放大镜微窗 */
.iw-gobang-loupe {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid #e2c48d;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.8), 0 0 10px rgba(226, 196, 141, 0.4);
  pointer-events: none;
  z-index: 10;
  background: #14161b;
}
.iw-gobang-loupe-canvas {
  width: 100%;
  height: 100%;
  display: block;
}
.iw-gobang-loupe-cross {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  transform: translate(-50%, -50%);
  border: 1.5px dashed rgba(226, 196, 141, 0.9);
  border-radius: 50%;
  pointer-events: none;
}

/* 二次确认悬浮浮标 */
.iw-gobang-confirm-pill {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(20, 22, 27, 0.95);
  border: 1px solid #e2c48d;
  border-radius: 20px;
  padding: 4px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.8), 0 0 10px rgba(226, 196, 141, 0.45);
  z-index: 30;
  pointer-events: auto;
  touch-action: manipulation;
  animation: iwGobangPillFadeIn 0.15s ease-out;
}
@keyframes iwGobangPillFadeIn {
  from { opacity: 0; transform: translate(-50%, 6px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
.iw-gobang-pill-label {
  font-size: 11px;
  color: #fff;
  letter-spacing: 0.5px;
  pointer-events: none;
}
.iw-gobang-pill-btn {
  border: none;
  cursor: pointer;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 12px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.12s ease;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.iw-gobang-pill-btn.is-ok {
  background: #e2c48d;
  color: #101216;
}
.iw-gobang-pill-btn.is-ok:hover,
.iw-gobang-pill-btn.is-ok:active {
  background: #f5e2b8;
  transform: scale(1.05);
}
.iw-gobang-pill-btn.is-cancel {
  background: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
  padding: 5px 10px;
}
.iw-gobang-pill-btn.is-cancel:hover,
.iw-gobang-pill-btn.is-cancel:active {
  background: rgba(255, 80, 80, 0.3);
  color: #ff8080;
}

/* 底部状态说明条 */
.iw-gobang-bottom-tip {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 6px;
  flex-shrink: 0;
  letter-spacing: 0.3px;
}
.iw-gobang-name-tag {
  color: inherit;
  font-family: inherit;
}
.iw-gobang-tip-sep {
  color: rgba(255, 255, 255, 0.2);
}


/* ====================================================
   机台 08：消消乐（ROM.03-H // CRUSH MATCH 3）
   7x7 / 8x8 / 9x9 响应式高精棋盘、微光宝石、特殊光束与赞美飞字
   ==================================================== */
.iw-crush-page {
  padding-bottom: 24px;
}

.iw-crush-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
}

/* 顶部标题行与右侧状态仪 */
.iw-crush-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.iw-crush-title-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.iw-crush-title-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.iw-crush-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.5px;
}
.iw-crush-subtitle {
  font-size: 10px;
  color: #e2c48d;
  font-family: "ShareTechMono", monospace;
  opacity: 0.85;
}
/* 状态仪条带 */
.iw-crush-status-strip {
  display: flex;
  gap: 6px;
}
.iw-crush-counter-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 3px 8px;
  min-width: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.iw-crush-counter-lbl {
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.4);
  font-family: "ShareTechMono", monospace;
  letter-spacing: 0.5px;
}
.iw-crush-counter-num {
  font-size: 13px;
  font-weight: 700;
  color: #e2c48d;
  font-family: "ShareTechMono", monospace;
}
/* 紧随标题下方的微型操作行：剧情 + 重构推演 + 重开（对齐贪吃蛇） */
.iw-crush-subactions-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}
.iw-crush-regen-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.42);
  font-size: 10.5px;
  cursor: pointer;
  padding: 1px 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  user-select: none;
  white-space: nowrap;
}
.iw-crush-regen-link:hover,
.iw-crush-regen-link:active {
  color: #e2c48d;
}
.iw-crush-regen-icon {
  font-size: 11.5px;
  display: inline-block;
}
.iw-crush-regen-icon.is-spinning {
  animation: iw-crush-spin 1s linear infinite;
}
@keyframes iw-crush-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.iw-crush-tool-btn {
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.48);
  cursor: pointer;
  padding: 1px 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  user-select: none;
  white-space: nowrap;
}
.iw-crush-tool-btn:hover,
.iw-crush-tool-btn:active {
  color: #e2c48d;
}
/* 关卡目标提示条 */
.iw-crush-target-banner {
  background: rgba(226, 196, 141, 0.05);
  border: 1px dashed rgba(226, 196, 141, 0.25);
  border-radius: 4px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.iw-crush-target-label {
  font-size: 9.5px;
  font-weight: 700;
  color: #e2c48d;
  background: rgba(226, 196, 141, 0.15);
  padding: 1px 5px;
  border-radius: 2px;
  font-family: "ShareTechMono", monospace;
}
.iw-crush-target-desc {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
}
/* 棋盘正方形宿主与自适应网格 */
.iw-crush-board-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: calc(100svh - 225px);
  max-width: calc(100svh - 225px);
  margin: 0 auto;
  background: #11141b;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.7);
  padding: 6px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  touch-action: none;
  user-select: none;
}
.iw-crush-grid {
  display: grid;
  width: 100%;
  height: 100%;
  gap: 4px;
  box-sizing: border-box;
}
/* 棋盘格子与宝石 */
.iw-crush-cell {
  position: relative;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-sizing: border-box;
  transition: transform 0.15s ease, background 0.15s ease;
  touch-action: none;
}
.iw-crush-cell.is-empty {
  background: transparent;
  border-color: transparent;
  pointer-events: none;
}
.iw-crush-gem-inner {
  width: 78%;
  height: 78%;
  color: var(--gem-color, #e2c48d);
  filter: drop-shadow(0 0 5px var(--gem-glow, rgba(226, 196, 141, 0.4)));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.12s ease;
  pointer-events: none;
}
.iw-crush-gem-inner svg {
  width: 100%;
  height: 100%;
}
/* 选中高亮状态 */
.iw-crush-cell.is-selected {
  background: rgba(226, 196, 141, 0.16);
  border: 1.5px solid #e2c48d;
  box-shadow: 0 0 10px rgba(226, 196, 141, 0.35);
  transform: scale(1.06);
  z-index: 2;
}
/* 无效互换抖动动画 */
.iw-crush-cell.is-swap-invalid {
  animation: iw-crush-shake 0.25s ease-in-out;
}
@keyframes iw-crush-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  75% { transform: translateX(4px); }
}
/* 消除爆炸动画 */
.iw-crush-cell.is-clearing {
  animation: iw-crush-pop 0.24s forwards ease-out;
}
@keyframes iw-crush-pop {
  0% { transform: scale(1); opacity: 1; filter: brightness(1); }
  50% { transform: scale(1.28); opacity: 0.9; filter: brightness(2.2); }
  100% { transform: scale(0.2); opacity: 0; filter: brightness(3); }
}
/* 特殊宝石角标与流光 */
.iw-crush-beam-badge,
.iw-crush-bomb-badge,
.iw-crush-sphere-badge {
  position: absolute;
  top: 1px;
  right: 2px;
  font-size: 9px;
  color: #e2c48d;
  text-shadow: 0 0 4px #000;
  pointer-events: none;
}
.iw-crush-cell.is-h-beam .iw-crush-gem-inner,
.iw-crush-cell.is-v-beam .iw-crush-gem-inner {
  animation: iw-crush-beam-pulse 1.4s ease-in-out infinite;
}
@keyframes iw-crush-beam-pulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 4px var(--gem-glow)); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 10px #fff); }
}
.iw-crush-cell.is-bomb .iw-crush-gem-inner {
  animation: iw-crush-bomb-pulse 1s ease-in-out infinite;
}
@keyframes iw-crush-bomb-pulse {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(8deg) scale(1.12); filter: drop-shadow(0 0 12px #d96a68); }
}
.iw-crush-cell.is-sphere .iw-crush-gem-inner {
  animation: iw-crush-sphere-spin 3s linear infinite;
}
@keyframes iw-crush-sphere-spin {
  0% { transform: rotate(0deg); filter: drop-shadow(0 0 6px #e2c48d); }
  50% { transform: rotate(180deg); filter: drop-shadow(0 0 10px #5ba39d); }
  100% { transform: rotate(360deg); filter: drop-shadow(0 0 6px #e2c48d); }
}

/* 浮空赞美词投射层（Combo 飞字） */
.iw-crush-praise-layer {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 10;
}
.iw-crush-praise-banner {
  position: absolute;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-shadow: 0 0 16px rgba(0, 0, 0, 0.9), 0 0 24px currentColor;
  animation: iw-crush-float-praise 1.1s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards;
  pointer-events: none;
}
.iw-crush-praise-banner.is-combo1 {
  font-size: 22px;
  color: #5ba39d;
}
.iw-crush-praise-banner.is-combo2 {
  font-size: 27px;
  color: #e2c48d;
}
.iw-crush-praise-banner.is-combo3 {
  font-size: 32px;
  color: #d96a68;
}
.iw-crush-praise-banner.is-super {
  font-size: 38px;
  background: linear-gradient(135deg, #e2c48d, #d96a68, #9d84bf);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 12px rgba(226, 196, 141, 0.7));
}

@keyframes iw-crush-float-praise {
  0% { transform: scale(0.3) translateY(20px); opacity: 0; }
  25% { transform: scale(1.15) translateY(-8px); opacity: 1; }
  65% { transform: scale(1) translateY(-14px); opacity: 1; }
  100% { transform: scale(1.08) translateY(-40px); opacity: 0; }
}

/* 底部状态说明：两排清晰展示 */
.iw-crush-bottom-tip {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
  font-family: "ShareTechMono", monospace;
  padding: 6px 8px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.04);
  margin-top: 4px;
}
.iw-crush-bottom-row-top {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
}
.iw-crush-bottom-row-sub {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1.35;
  word-break: break-all;
}
.iw-crush-name-tag {
  color: #e2c48d;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* ============================================================
   第九款卡带：堆叠三消（ROM.03-I // TILE MATCH）  —— 严格对齐消消乐 UI 布局
   ============================================================ */

/* 根容器 */
.iw-tile-container {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 2px 12px;
}

/* 顶部标题行与状态仪：严格对齐消消乐 */
.iw-tile-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.iw-tile-title-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.iw-tile-title-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.iw-tile-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.5px;
}

.iw-tile-subtitle {
  font-size: 10px;
  color: #e2c48d;
  font-family: "ShareTechMono", monospace;
  opacity: 0.85;
}

/* 紧随标题下方的微型操作行：剧情 + 重构推演 + 重开（完全对齐消消乐 .iw-crush-subactions-row） */
.iw-tile-subactions-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}

.iw-tile-regen-link {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.42);
  font-size: 10.5px;
  cursor: pointer;
  padding: 1px 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  user-select: none;
  white-space: nowrap;
}

.iw-tile-regen-link:hover,
.iw-tile-regen-link:active {
  color: #e2c48d;
}

.iw-tile-regen-icon {
  font-size: 11.5px;
  display: inline-block;
}

.iw-tile-regen-icon.is-spinning {
  animation: iw-tile-spin 1s linear infinite;
}

@keyframes iw-tile-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.iw-tile-tool-btn {
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.48);
  cursor: pointer;
  padding: 1px 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: color 0.15s ease;
  user-select: none;
  white-space: nowrap;
}

.iw-tile-tool-btn:hover,
.iw-tile-tool-btn:active {
  color: #e2c48d;
}

/* 状态仪条带：完全对齐消消乐小框 .iw-crush-counter-box */
.iw-tile-status-strip {
  display: flex;
  gap: 6px;
}

.iw-tile-counter-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 3px 8px;
  min-width: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.iw-tile-counter-lbl {
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.4);
  font-family: "ShareTechMono", monospace;
  letter-spacing: 0.5px;
}

.iw-tile-counter-num {
  font-size: 13px;
  font-weight: 700;
  color: #e2c48d;
  font-family: "ShareTechMono", monospace;
}

/* 关卡目标提示条：完全对齐消消乐 .iw-crush-target-banner */
.iw-tile-target-banner {
  background: rgba(226, 196, 141, 0.05);
  border: 1px dashed rgba(226, 196, 141, 0.25);
  border-radius: 4px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
}

.iw-tile-target-label {
  color: #e2c48d;
  font-weight: 700;
  white-space: nowrap;
}

.iw-tile-target-desc {
  color: rgba(255, 255, 255, 0.6);
}

/* 核心主阵盘活动区（固定正方形视口） */
.iw-tile-board-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: 340px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(226, 196, 141, 0.15);
  border-radius: 10px;
  background: rgba(10, 11, 14, 0.65);
  box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.75);
  overflow: hidden;
}

/* 核心卡牌投影画布：固定 320x320 逻辑坐标系（与引擎 boardPx 对齐） */
.iw-tile-arena {
  position: relative;
  width: 320px;
  height: 320px;
  flex: none;
}

/* 实体卡牌 —— 高实体感、不透底、清爽立体麻将质感 */
.iw-tile-card {
  position: absolute;
  border-radius: 8px;
  box-sizing: border-box;
  cursor: pointer;
  transition: transform 0.12s cubic-bezier(0.2, 0, 0.1, 1), filter 0.15s ease, box-shadow 0.15s ease;
  touch-action: manipulation;
  /* 基础立体厚度与投射阴影（即使是底层也有实体边缘） */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.7), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

/* 依据层级赋予逐渐加深的 3D 浮空与多重阴影，一眼分清高低 */
.iw-tile-card.is-layer-0 {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.8), 0 1px 2px rgba(0, 0, 0, 0.9);
}
.iw-tile-card.is-layer-1 {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.85), 0 2px 4px rgba(0, 0, 0, 0.9);
}
.iw-tile-card.is-layer-2 {
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.9), 0 3px 6px rgba(0, 0, 0, 0.95);
}
.iw-tile-card.is-layer-3 {
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.92), 0 4px 8px rgba(0, 0, 0, 0.95);
}
.iw-tile-card.is-layer-4 {
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.95), 0 5px 10px rgba(0, 0, 0, 0.95);
}
.iw-tile-card.is-layer-5 {
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.98), 0 6px 12px rgba(0, 0, 0, 0.95);
}
.iw-tile-card.is-layer-6 {
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.95), 0 7px 14px rgba(0, 0, 0, 0.95);
}
.iw-tile-card.is-layer-7 {
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.96), 0 8px 16px rgba(0, 0, 0, 0.96);
}
.iw-tile-card.is-layer-8 {
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.98), 0 9px 18px rgba(0, 0, 0, 0.96);
}
.iw-tile-card.is-layer-9 {
  box-shadow: 0 20px 40px #000, 0 10px 20px rgba(0, 0, 0, 0.98);
}
.iw-tile-card.is-layer-10 {
  box-shadow: 0 22px 44px #000, 0 11px 22px rgba(0, 0, 0, 0.98);
}
.iw-tile-card.is-layer-11 {
  box-shadow: 0 24px 48px #000, 0 12px 24px #000;
}
.iw-tile-card.is-layer-12,
.iw-tile-card.is-layer-13 {
  box-shadow: 0 26px 52px #000, 0 13px 26px #000;
}

/* 卡牌本体内部：彻底实心不透底（纯实色 #181a22 底板 + 瓷白亚光微渐变），彻底告别塑料透明膜感 */
.iw-tile-card-inner {
  width: 100%;
  height: 100%;
  border-radius: 8px;
  border: 1.5px solid rgba(226, 196, 141, 0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3px;
  box-sizing: border-box;
  /* 100% 不透明纯实色实体底板，顶部微高光，底部沉底 */
  background: linear-gradient(180deg, #232632 0%, #171922 100%);
  position: relative;
  overflow: hidden;
}

/* 顶部与四周高精内凹凸切面：模拟实体麻将/木牌质感 */
.iw-tile-card-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  border-bottom: 1.5px solid rgba(0, 0, 0, 0.6);
  pointer-events: none;
}

.iw-tile-card-icon {
  width: 58%;
  height: 58%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.iw-tile-card-icon svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.8));
}

.iw-tile-card-label {
  font-size: 9.5px;
  font-weight: 700;
  margin-top: 1px;
  white-space: nowrap;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 1;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9);
}

/* 可点击明牌：鲜活明亮、微高光金边 */
.iw-tile-card.is-pickable {
  filter: brightness(1.05);
}

.iw-tile-card.is-pickable .iw-tile-card-inner {
  border-color: rgba(226, 196, 141, 0.7);
}

.iw-tile-card.is-pickable:active {
  transform: scale(0.92) translateY(2px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.9);
}

/* 被压住的暗牌（被遮挡）：深度压暗降调 + 明显暗色覆层，与明牌形成天地之别 */
.iw-tile-card.is-blocked {
  filter: brightness(0.38) grayscale(0.45);
  cursor: not-allowed;
}

.iw-tile-card.is-blocked .iw-tile-card-inner {
  border-color: rgba(255, 255, 255, 0.12) !important;
  background: #111218;
}

.iw-tile-card-mask {
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

.iw-tile-card.is-shaking {
  animation: iw-tile-shake 0.25s ease;
}

@keyframes iw-tile-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-3px); }
  75% { transform: translateX(3px); }
}

/* 移出暂存托盘 */
.iw-tile-stash-tray {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 10px;
  background: rgba(226, 196, 141, 0.04);
  border: 1px dashed rgba(226, 196, 141, 0.25);
  border-radius: 8px;
}

.iw-tile-stash-label {
  font-size: 11px;
  color: #e2c48d;
  font-family: monospace;
  margin-right: 2px;
}

/* 底部 7 格神识卡槽 */
.iw-tile-dock-wrapper {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.iw-tile-dock-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
}

.iw-tile-dock-lbl {
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.04em;
}

.iw-tile-dock-count {
  color: #e2c48d;
  font-family: monospace;
  font-weight: 700;
}

/* 7 格横向排布 */
.iw-tile-dock {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 8px;
  background: rgba(15, 17, 22, 0.95);
  border: 1px solid rgba(226, 196, 141, 0.35);
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.6);
}

.iw-tile-dock-slot {
  width: 40px;
  height: 44px;
  flex: none;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  position: relative;
}

.iw-tile-dock-slot.has-card {
  border-style: solid;
  border-color: transparent;
  background: transparent;
}

/* 卡槽/暂存区内的牌 */
.iw-tile-card.in-dock,
.iw-tile-card.in-stash {
  position: relative;
  animation: iw-tile-dock-in 0.18s cubic-bezier(0.1, 0.9, 0.2, 1);
}

@keyframes iw-tile-dock-in {
  from { transform: scale(0.65) translateY(-8px); opacity: 0.5; }
  to { transform: scale(1) translateY(0); opacity: 1; }
}

/* 三大法宝托盘 */
.iw-tile-props-bar {
  display: flex;
  align-items: center;
  gap: 8px;
}

.iw-tile-prop-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(226, 196, 141, 0.25);
  border-radius: 8px;
  padding: 9px 4px;
  color: #fff;
  font-size: 12px;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  user-select: none;
}

.iw-tile-prop-btn:active:not(.is-disabled) {
  background: rgba(226, 196, 141, 0.2);
  border-color: #e2c48d;
}

.iw-tile-prop-btn.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  border-color: rgba(255, 255, 255, 0.08);
}

.iw-tile-prop-icon {
  font-size: 15px;
  line-height: 1;
}

.iw-tile-prop-name {
  font-size: 12px;
  font-weight: 600;
}

.iw-tile-prop-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  background: #e2c48d;
  color: #121316;
  font-size: 9px;
  font-weight: 800;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* 底部状态说明条：完全对齐消消乐 .iw-crush-bottom-tip */
.iw-tile-bottom-tip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding-top: 4px;
}

.iw-tile-bottom-row-top {
  display: flex;
  align-items: center;
  gap: 6px;
}

.iw-tile-name-tag {
  color: #e2c48d;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 11px;
}

.iw-tile-bottom-row-sub {
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.02);
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

/* ====================================================
   ROM.04 观象演数 // 秘契塔罗（THE ARCANA DIVINATION）
   香槟暗金 (#e2c48d) 神圣法坛 · 3D 拟真卡牌与扇形抽牌
   ==================================================== */
.iw-tarot-page {
  padding-bottom: 48px;
}
.iw-tarot-container {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  margin: 0 auto;
}

/* 顶部法坛 Header */
.iw-tarot-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 8px 4px 12px;
}
.iw-tarot-super {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(226, 196, 141, 0.6);
  text-transform: uppercase;
}

/* 世界观换皮加载遮罩（盖在中央法坛区） */
.iw-tarot-reskin-overlay {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 200px;
  padding: 36px 20px;
  text-align: center;
  background: rgba(14, 12, 10, 0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 10px;
}
.iw-tarot-reskin-txt {
  font-size: 13px;
  color: #e2c48d;
  letter-spacing: 0.06em;
  font-style: italic;
  text-shadow: 0 0 12px rgba(226, 196, 141, 0.3);
}
.iw-tarot-reskin-sub {
  font-size: 11px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.42);
  max-width: 240px;
}
.iw-tarot-title {
  font-size: 20px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.04em;
  margin: 2px 0;
  text-shadow: 0 0 16px rgba(226, 196, 141, 0.25);
}
.iw-tarot-sub {
  font-size: 11px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Times New Roman", serif;
  font-style: italic;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.38);
}
.iw-tarot-btn-reset {
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.25);
  color: #e2c48d;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 11px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: all 0.2s ease;
}
.iw-tarot-btn-reset:hover {
  background: rgba(226, 196, 141, 0.16);
  border-color: #e2c48d;
  box-shadow: 0 0 10px rgba(226, 196, 141, 0.2);
}

/* 牌库操作下拉气泡菜单 */
.iw-tarot-menu-wrap {
  position: relative;
  display: inline-block;
}
.iw-tarot-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 150px;
  background: rgba(20, 18, 16, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(226, 196, 141, 0.3);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 16px rgba(226, 196, 141, 0.15);
  padding: 4px;
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.iw-tarot-menu-item {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.85);
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 11.5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.03em;
  transition: all 0.18s ease;
  width: 100%;
  text-align: left;
}
.iw-tarot-menu-item:hover {
  background: rgba(226, 196, 141, 0.12);
  color: #e2c48d;
}
.iw-tarot-menu-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #e2c48d;
  opacity: 0.85;
}
.iw-tarot-menu-item:hover .iw-tarot-menu-icon {
  opacity: 1;
  color: #fff;
}

/* 问事意念栏 */
.iw-tarot-intent-box {
  background: rgba(18, 17, 16, 0.6);
  border: 1px solid rgba(226, 196, 141, 0.16);
  border-radius: 6px;
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.iw-tarot-intent-lead {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: rgba(226, 196, 141, 0.7);
  letter-spacing: 0.06em;
}
.iw-tarot-intent-icon {
  color: #e2c48d;
  font-size: 11px;
}
.iw-tarot-intent-input {
  background: transparent;
  border: none;
  outline: none;
  color: #f5f0e6;
  font-size: 12px;
  width: 100%;
}
.iw-tarot-intent-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

/* 牌阵选项卡 */
.iw-tarot-spread-tabs {
  display: flex;
  gap: 6px;
  background: rgba(0, 0, 0, 0.35);
  padding: 4px;
  border-radius: 6px;
  border: 1px solid rgba(226, 196, 141, 0.12);
}
.iw-tarot-tab {
  flex: 1;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 11px;
  padding: 6px 4px;
  border-radius: 4px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  transition: all 0.2s ease;
}
.iw-tarot-tab-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: transparent;
}
.iw-tarot-tab-count {
  font-size: 9px;
  opacity: 0.6;
}
.iw-tarot-tab.is-active {
  background: rgba(226, 196, 141, 0.14);
  color: #e2c48d;
  font-weight: 600;
  border: 1px solid rgba(226, 196, 141, 0.3);
}
.iw-tarot-tab.is-active .iw-tarot-tab-dot {
  background: #e2c48d;
  box-shadow: 0 0 6px #e2c48d;
}
.iw-tarot-tab.is-disabled {
  opacity: 0.32;
  cursor: not-allowed;
  filter: grayscale(0.8);
}
.iw-tarot-tab.is-disabled:hover {
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
}

/* 中央仪式台 / 槽位布局：去掉生硬边框与深色衬底，融入背景通透呼吸 */
.iw-tarot-altar {
  position: relative;
  min-height: 200px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0 4px 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  margin-top: -4px;
}
.iw-tarot-spread-layout {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
}
.iw-tarot-slot-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  flex: 1;
  max-width: 140px;
}
.iw-tarot-slot-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-height: 28px;
}
.iw-tarot-slot-meta.is-empty-meta {
  min-height: 0;
  display: none;
}
.iw-tarot-slot-tag {
  font-size: 11px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.04em;
}
.iw-tarot-slot-desc {
  font-size: 8.5px;
  color: rgba(255, 255, 255, 0.35);
  max-width: 120px;
  text-align: center;
  line-height: 1.2;
}

/* 空槽占位与自适应卡牌容器 */
.iw-tarot-slot-box {
  width: 100%;
  aspect-ratio: 1 / 1.7;
  max-height: 210px;
  border-radius: 6px;
  position: relative;
}
.iw-tarot-slot-box.is-empty {
  border: 1px dashed rgba(226, 196, 141, 0.28);
  background: rgba(226, 196, 141, 0.02);
  display: flex;
  align-items: center;
  justify-content: center;
}
.iw-tarot-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: rgba(226, 196, 141, 0.4);
}
.iw-tarot-placeholder-spark {
  font-size: 16px;
  animation: iwTarotPulse 2.4s infinite ease-in-out;
}
.iw-tarot-placeholder-txt {
  font-size: 10px;
  letter-spacing: 0.08em;
}

@keyframes iwTarotPulse {
  0%, 100% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.08); }
}

/* 3D 卡牌实体：全响应式撑满 slot-box */
.iw-tarot-card-3d {
  width: 100%;
  height: 100%;
  perspective: 1000px;
  cursor: pointer;
  transition: transform 0.2s ease;
}
.iw-tarot-card-3d:hover {
  transform: translateY(-4px);
}
.iw-tarot-card-inner {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.6s cubic-bezier(0.2, 0.85, 0.4, 1.15);
  border-radius: 6px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.85), 0 0 12px rgba(226, 196, 141, 0.15);
}
.iw-tarot-card-3d.is-flipped .iw-tarot-card-inner {
  transform: rotateY(180deg);
}

.iw-tarot-face {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 6px;
  backface-visibility: hidden;
  overflow: hidden;
}

/* 牌背：暗黑磨砂 + 双层香槟暗金线框 + 对称法阵 */
.iw-tarot-back {
  background: linear-gradient(135deg, #181614 0%, #0d0c0b 100%);
  border: 1.5px solid #e2c48d;
  padding: 4px;
}
.iw-tarot-back-frame {
  width: 100%;
  height: 100%;
  border: 1px solid rgba(226, 196, 141, 0.35);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: radial-gradient(circle at 50% 50%, rgba(226, 196, 141, 0.08) 0%, transparent 75%);
}
.iw-tarot-back-core {
  color: #e2c48d;
  opacity: 0.85;
}
.iw-tarot-back-ribbon {
  font-size: 8px;
  font-family: "ShareTechMono", monospace;
  color: rgba(226, 196, 141, 0.5);
  letter-spacing: 0.18em;
}

/* 牌面：翻转 180° 展示 */
.iw-tarot-front {
  background: linear-gradient(180deg, #1d1b18 0%, #11100e 100%);
  border: 1.5px solid #e2c48d;
  transform: rotateY(180deg);
  padding: 5px;
}
.iw-tarot-front.is-reversed {
  transform: rotateY(180deg) rotate(180deg);
}
.iw-tarot-front-frame {
  width: 100%;
  height: 100%;
  border: 1px solid rgba(226, 196, 141, 0.4);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 6px 4px;
}
.iw-tarot-front-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.iw-tarot-front-roman {
  font-size: 11px;
  font-weight: 700;
  font-family: "Times New Roman", serif;
  color: #e2c48d;
}
.iw-tarot-front-badge {
  font-size: 8px;
  padding: 1px 4px;
  border-radius: 3px;
  font-weight: 600;
}
.iw-tarot-front-badge.is-up {
  background: rgba(226, 196, 141, 0.15);
  color: #e2c48d;
}
.iw-tarot-front-badge.is-rev {
  background: rgba(212, 74, 74, 0.2);
  color: #ff8888;
  border: 1px solid rgba(212, 74, 74, 0.4);
}
.iw-tarot-front-art {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
}
.iw-tarot-art-totem {
  color: #e2c48d;
  filter: drop-shadow(0 0 10px rgba(226, 196, 141, 0.45));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}
.iw-tarot-art-totem svg {
  display: block;
}
.iw-tarot-front-footer {
  text-align: center;
  border-top: 1px solid rgba(226, 196, 141, 0.2);
  padding-top: 5px;
  padding-bottom: 2px;
}
.iw-tarot-front-title {
  font-size: 11.5px;
  font-weight: 700;
  color: #f5f0e6;
  letter-spacing: 0.04em;
}
.iw-tarot-front-en {
  display: none;
}
/* 横向全宽流光牌河抽牌区 */
.iw-tarot-tray {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: rgba(14, 13, 12, 0.75);
  border: 1px solid rgba(226, 196, 141, 0.18);
  border-radius: 8px;
  padding: 12px 6px 14px;
  overflow: hidden;
  transition: opacity 0.3s ease;
  position: relative;
  min-height: 168px;
}
.iw-tarot-tray.is-finished {
  opacity: 0.45;
  pointer-events: none;
}
.iw-tarot-tray-header {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 11px;
  padding: 0 8px;
}
.iw-tarot-tray-tip {
  color: #e2c48d;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-align: center;
  transition: color 0.2s ease;
}

/* 叠牌状态：中间聚拢的神秘厚牌堆 */
.iw-tarot-deck-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 128px;
  cursor: pointer;
  position: relative;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.iw-tarot-deck-stack.is-hidden {
  opacity: 0;
  transform: scale(0.92);
  pointer-events: none;
}
.iw-tarot-stack-pile {
  position: relative;
  width: 54px;
  height: 90px;
  transition: transform 0.25s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
.iw-tarot-deck-stack:hover .iw-tarot-stack-pile {
  transform: translateY(-4px) scale(1.05);
}
.iw-tarot-stack-card {
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, #181615 0%, #0d0c0b 100%);
  border: 1px solid rgba(226, 196, 141, 0.6);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.75);
  transition: all 0.25s ease;
}
.iw-tarot-stack-card.c-base1 { transform: translate(-3px, 3px) rotate(-2.5deg); opacity: 0.5; border-color: rgba(226, 196, 141, 0.3); }
.iw-tarot-stack-card.c-base2 { transform: translate(3px, 1.5px) rotate(2deg); opacity: 0.7; border-color: rgba(226, 196, 141, 0.45); }
.iw-tarot-stack-card.c-base3 { transform: translate(-1px, -1px) rotate(-0.8deg); opacity: 0.85; }
.iw-tarot-stack-card.c-top {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e2c48d;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.8), 0 0 12px rgba(226, 196, 141, 0.15);
  background: linear-gradient(145deg, #1c1a18 0%, #0e0d0c 100%);
}
.iw-tarot-stack-pulse {
  display: none;
}

/* 正在洗牌动画态：真实三幕物理交互（切牌飞散 ➔ 快速回弹穿插 ➔ 合拢） */
.iw-tarot-deck-stack.is-shuffling .iw-tarot-stack-pulse {
  opacity: 0;
}
.iw-tarot-deck-stack.is-shuffling .iw-tarot-stack-pile {
  animation: iwShuffleVibrate 0.9s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
.iw-tarot-deck-stack.is-shuffling .iw-tarot-stack-card.c-base1 {
  animation: iwRiffleLeft 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.iw-tarot-deck-stack.is-shuffling .iw-tarot-stack-card.c-base2 {
  animation: iwRiffleRight 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.iw-tarot-deck-stack.is-shuffling .iw-tarot-stack-card.c-base3 {
  animation: iwRiffleMid 0.9s ease-in-out forwards;
}
.iw-tarot-deck-stack.is-shuffling .iw-tarot-stack-card.c-top {
  animation: iwRiffleTop 0.9s ease-in-out forwards;
}

@keyframes iwShuffleVibrate {
  0% { transform: scale(1); }
  15% { transform: scale(0.96) translateY(2px); }
  35% { transform: scale(1.04) translateY(-4px); }
  70% { transform: scale(1.02); }
  90% { transform: scale(0.98) translateY(1px); }
  100% { transform: scale(1); }
}

@keyframes iwRiffleLeft {
  0% { transform: translate(-3px, 3px) rotate(-2.5deg); }
  25% { transform: translate(-42px, -8px) rotate(-18deg) scale(1.05); }
  50% { transform: translate(-20px, 4px) rotate(-8deg); }
  75% { transform: translate(-32px, -4px) rotate(-12deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes iwRiffleRight {
  0% { transform: translate(3px, 1.5px) rotate(2deg); }
  25% { transform: translate(42px, -8px) rotate(18deg) scale(1.05); }
  50% { transform: translate(20px, 4px) rotate(8deg); }
  75% { transform: translate(32px, -4px) rotate(12deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes iwRiffleMid {
  0% { transform: translate(-1px, -1px) rotate(-0.8deg); }
  30% { transform: translateY(-16px) scale(1.08); }
  65% { transform: translateY(6px) scale(0.96); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes iwRiffleTop {
  0% { transform: translate(0, 0); }
  20% { transform: translateY(-12px) rotate(3deg); }
  45% { transform: translateY(4px) rotate(-2deg); }
  70% { transform: translateY(-6px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

/* 牌河展开流光动画：柔和淡入与水波纹扩散 */
.iw-tarot-river-viewport {
  width: 100%;
  height: 128px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding: 16px 20px 10px 20px;
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(226, 196, 141, 0.3) transparent;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.iw-tarot-river-viewport.is-revealed {
  opacity: 1;
  transform: translateY(0);
}
.iw-tarot-tray-progress {
  font-family: "ShareTechMono", monospace;
  color: rgba(255, 255, 255, 0.45);
  font-size: 10px;
}

/* 牌河横向自由滚动视口 */
.iw-tarot-river-viewport {
  width: 100%;
  height: 128px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding: 16px 20px 10px 20px;
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(226, 196, 141, 0.3) transparent;
}
.iw-tarot-river-viewport::-webkit-scrollbar {
  height: 4px;
}
.iw-tarot-river-viewport::-webkit-scrollbar-thumb {
  background: rgba(226, 196, 141, 0.25);
  border-radius: 2px;
}
.iw-tarot-river-viewport::-webkit-scrollbar-track {
  background: transparent;
}

/* 牌河长轨道（80 张牌采用负外边距紧凑鱼鳞重叠铺开） */
.iw-tarot-river-track {
  display: flex;
  align-items: flex-end;
  height: 98px;
  width: max-content;
  padding-right: 48px;
}

/* 单张牌河卡牌 */
.iw-tarot-river-card {
  position: relative;
  width: 48px;
  height: 82px;
  margin-right: -24px; /* 鱼鳞叠放间距：露出一半边缘，手感最密实而不局促 */
  flex-shrink: 0;
  cursor: pointer;
  transition: transform 0.22s cubic-bezier(0.18, 0.89, 0.32, 1.28), box-shadow 0.22s ease, opacity 0.25s ease;
  transform-origin: 50% 100%;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  animation: iwCardSpreadIn 0.45s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes iwCardSpreadIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 悬停/触碰探头飞起感应动效 */
.iw-tarot-river-card:not(.is-picked):hover,
.iw-tarot-river-card:not(.is-picked):active {
  transform: translateY(-16px) scale(1.12);
  z-index: 999 !important;
}

/* 牌已被抽走：留痕淡出空位 */
.iw-tarot-river-card.is-picked {
  opacity: 0.15;
  transform: translateY(-24px) scale(0.85);
  pointer-events: none;
  filter: grayscale(1);
}

/* 牌背本体质感 */
.iw-tarot-river-card-back {
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #181615 0%, #0d0c0b 100%);
  border: 1px solid rgba(226, 196, 141, 0.7);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.75), inset 0 0 8px rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.iw-tarot-river-card-glow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, rgba(226, 196, 141, 0.15) 0%, transparent 100%);
  pointer-events: none;
}

.iw-tarot-river-card-edge {
  position: absolute;
  inset: 2px;
  border: 1px solid rgba(226, 196, 141, 0.22);
  border-radius: 2px;
  pointer-events: none;
}

.iw-tarot-river-card-core {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.3);
}

.iw-tarot-river-card-star {
  color: #e2c48d;
  font-size: 11px;
}

/* 底部轻提示 */
.iw-tarot-river-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 9.5px;
  color: rgba(255, 255, 255, 0.32);
  letter-spacing: 0.03em;
  padding-top: 2px;
}
.iw-tarot-river-hint-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(226, 196, 141, 0.5);
}

/* 底部神谕抽屉 */
.iw-tarot-oracle-drawer {
  background: rgba(18, 16, 15, 0.9);
  border: 1px solid rgba(226, 196, 141, 0.25);
  border-radius: 8px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.9);
  animation: iwTarotDrawerSlide 0.4s ease;
}
@keyframes iwTarotDrawerSlide {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.iw-tarot-oracle-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: none;
  padding-bottom: 2px;
}
.iw-tarot-oracle-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.04em;
}
.iw-tarot-oracle-spark {
  color: #e2c48d;
}
.iw-tarot-oracle-ai-trigger {
  display: flex;
  justify-content: center;
  padding: 16px 0 8px;
}
.iw-tarot-oracle-ai-btn {
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.28);
  color: #e2c48d;
  padding: 7px 22px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.05em;
  transition: all 0.25s ease;
  opacity: 0.92;
}
.iw-tarot-oracle-ai-btn:hover {
  opacity: 1;
  color: #fff;
  border-color: #e2c48d;
  background: rgba(226, 196, 141, 0.16);
  box-shadow: 0 0 14px rgba(226, 196, 141, 0.35);
  transform: translateY(-1px);
}
.iw-tarot-oracle-ai-btn:active {
  transform: translateY(0);
}
.iw-tarot-oracle-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.iw-tarot-oracle-card-item {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 2px 0 4px 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.iw-tarot-oracle-card-title-line {
  display: flex;
  align-items: center;
}
.iw-tarot-oracle-card-title-text {
  font-size: 12px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.03em;
}
.iw-tarot-oracle-card-rev-tag {
  font-size: 12px;
  font-weight: 400;
  color: #ffffff;
  margin-left: 2px;
  opacity: 0.88;
}
.iw-tarot-oracle-card-note {
  font-size: 11px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.68);
}
/* AI 解读面板：极简无框通透排版 */
.iw-tarot-ai-reading {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 8px 0 4px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 6px;
}
.iw-tarot-ai-reading-header {
  display: flex;
  align-items: center;
  gap: 6px;
}
.iw-tarot-ai-spark {
  color: #e2c48d;
  font-size: 11px;
}
.iw-tarot-ai-title {
  font-size: 12px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.04em;
}
.iw-tarot-ai-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 0 12px 0;
}
.iw-tarot-loading-stars {
  display: flex;
  align-items: center;
  gap: 10px;
}
.iw-tarot-star {
  font-size: 13px;
  color: #e2c48d;
  display: inline-block;
  opacity: 0.3;
  transform: scale(0.85);
  animation: iwStarTwinkle 1.6s infinite ease-in-out;
}
.iw-tarot-star.s1 {
  animation-delay: 0s;
}
.iw-tarot-star.s2 {
  font-size: 11px;
  animation-delay: 0.28s;
}
.iw-tarot-star.s3 {
  animation-delay: 0.56s;
}
@keyframes iwStarTwinkle {
  0%, 100% {
    opacity: 0.25;
    transform: scale(0.85);
    filter: drop-shadow(0 0 0 transparent);
  }
  50% {
    opacity: 1;
    transform: scale(1.15) translateY(-2px);
    filter: drop-shadow(0 0 8px rgba(226, 196, 141, 0.8));
    color: #fff6e0;
  }
}
.iw-tarot-loading-txt {
  font-size: 11px;
  color: rgba(226, 196, 141, 0.65);
  letter-spacing: 0.05em;
  font-style: italic;
}
.iw-tarot-ai-body {
  font-size: 11.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.76);
  letter-spacing: 0.02em;
  padding: 2px 0;
}
.iw-tarot-ai-para {
  margin: 0 0 10px 0;
  text-indent: 2em;
}
.iw-tarot-ai-para:last-child {
  margin-bottom: 0;
}
.iw-tarot-ai-bottom-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 6px;
}
.iw-tarot-btn-new-question {
  background: transparent;
  border: none;
  color: #e2c48d;
  padding: 4px 0;
  font-size: 11.5px;
  font-weight: 500;
  cursor: pointer;
  letter-spacing: 0.03em;
  transition: all 0.2s ease;
  opacity: 0.88;
}
.iw-tarot-btn-new-question:hover {
  opacity: 1;
  color: #fff;
  text-shadow: 0 0 10px rgba(226, 196, 141, 0.6);
}

/* =======================================
   全览牌库弹窗（秘契档案卷轴）
   ======================================= */
.iw-tarot-viewer-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(8, 7, 6, 0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  animation: iwViewerFadeIn 0.25s ease-out;
}
@keyframes iwViewerFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.iw-tarot-viewer-window {
  background: #141210;
  border: 1px solid rgba(226, 196, 141, 0.35);
  border-radius: 12px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
  width: 100%;
  max-width: 680px;
  height: 85vh;
  max-height: 800px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8), 0 0 30px rgba(226, 196, 141, 0.15);
  overflow: hidden;
  position: relative;
}

.iw-tarot-viewer-header {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(226, 196, 141, 0.03);
}
.iw-tarot-viewer-header-spacer {
  width: 28px;
  height: 28px;
}
.iw-tarot-viewer-title {
  font-size: 15px;
  font-weight: 700;
  color: #f5e4c3;
  letter-spacing: 0.05em;
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  text-shadow: 0 0 12px rgba(226, 196, 141, 0.3);
  text-align: center;
}
.iw-tarot-viewer-close-btn {
  background: transparent;
  border: 1px solid rgba(226, 196, 141, 0.25);
  color: rgba(226, 196, 141, 0.8);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: all 0.2s ease;
}
.iw-tarot-viewer-close-btn:hover {
  border-color: #e2c48d;
  color: #fff;
  background: rgba(226, 196, 141, 0.15);
}

/* 四象意象专用视图 */
.iw-tarot-viewer-suits-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 0;
}
.iw-tarot-viewer-suit-card {
  position: relative;
  background: rgba(22, 19, 16, 0.85);
  border: 1px solid rgba(226, 196, 141, 0.2);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: all 0.25s ease;
  overflow: hidden;
}
.iw-tarot-viewer-suit-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(226, 196, 141, 0.5) 30%, #e2c48d 50%, rgba(226, 196, 141, 0.5) 70%, transparent 100%);
  opacity: 0.8;
}
.iw-tarot-viewer-suit-card:hover {
  border-color: rgba(226, 196, 141, 0.45);
  background: rgba(34, 29, 24, 0.95);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}
.iw-tarot-viewer-suit-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 1px dashed rgba(226, 196, 141, 0.18);
  padding-bottom: 6px;
}
.iw-tarot-viewer-suit-card-name {
  font-size: 15px;
  font-weight: 700;
  color: #f5e4c3;
  letter-spacing: 0.04em;
}
.iw-tarot-viewer-suit-card-classic {
  font-size: 11px;
  color: rgba(226, 196, 141, 0.7);
  font-style: italic;
}
.iw-tarot-viewer-suit-card-gist,
.iw-tarot-viewer-suit-card-meta {
  font-size: 11.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
}
.iw-tarot-viewer-suit-card-lbl {
  color: #e2c48d;
  font-weight: 600;
}

/* 分类 Tab */
.iw-tarot-viewer-tabs {
  padding: 8px 18px;
  display: flex;
  gap: 6px;
  border-bottom: 1px solid rgba(226, 196, 141, 0.12);
  overflow-x: auto;
  scrollbar-width: none;
}
.iw-tarot-viewer-tabs::-webkit-scrollbar {
  display: none;
}
.iw-tarot-viewer-tab {
  background: transparent;
  border: 1px solid rgba(226, 196, 141, 0.2);
  color: rgba(255, 255, 255, 0.6);
  padding: 4px 12px;
  border-radius: 14px;
  font-size: 11px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
}
.iw-tarot-viewer-tab:hover {
  color: #e2c48d;
  border-color: rgba(226, 196, 141, 0.4);
}
.iw-tarot-viewer-tab.is-active {
  background: rgba(226, 196, 141, 0.15);
  border-color: #e2c48d;
  color: #f5e4c3;
  font-weight: 600;
}

/* 卡片滚动区 */
.iw-tarot-viewer-body {
  flex: 1;
  overflow-y: auto;
  padding: 14px 18px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  scrollbar-width: thin;
  scrollbar-color: rgba(226, 196, 141, 0.25) transparent;
}
.iw-tarot-viewer-body::-webkit-scrollbar {
  width: 5px;
}
.iw-tarot-viewer-body::-webkit-scrollbar-thumb {
  background: rgba(226, 196, 141, 0.25);
  border-radius: 3px;
}

/* 常规卡片条目：神秘学秘契卡片风格 */
.iw-tarot-viewer-card {
  position: relative;
  flex-shrink: 0;
  background: rgba(22, 19, 16, 0.82);
  border: 1px solid rgba(226, 196, 141, 0.15);
  border-radius: 10px;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: all 0.25s ease;
  overflow: hidden;
}
.iw-tarot-viewer-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(226, 196, 141, 0.35) 25%, rgba(226, 196, 141, 0.6) 50%, rgba(226, 196, 141, 0.35) 75%, transparent 100%);
  opacity: 0.6;
}
.iw-tarot-viewer-card:hover {
  border-color: rgba(226, 196, 141, 0.38);
  background: rgba(30, 26, 21, 0.95);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4), 0 0 16px rgba(226, 196, 141, 0.1);
}
.iw-tarot-viewer-card:hover::before {
  opacity: 1;
}
.iw-tarot-viewer-card.is-major::before {
  height: 1.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(245, 228, 195, 0.6) 30%, #f5e4c3 50%, rgba(245, 228, 195, 0.6) 70%, transparent 100%);
  opacity: 0.9;
}
.iw-tarot-viewer-card.is-minor::before {
  opacity: 0.45;
}

.iw-tarot-viewer-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 2px;
}
.iw-tarot-viewer-card-left {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.iw-tarot-viewer-card-num {
  font-size: 11.5px;
  font-weight: 700;
  color: #e2c48d;
  letter-spacing: 0.08em;
  font-family: "Times New Roman", Times, serif;
  opacity: 0.85;
  flex-shrink: 0;
}
.iw-tarot-viewer-card-name {
  font-size: 14.5px;
  font-weight: 700;
  color: #f5e4c3;
  letter-spacing: 0.04em;
  text-shadow: 0 0 10px rgba(226, 196, 141, 0.2);
  white-space: nowrap;
}
.iw-tarot-viewer-card-orig {
  font-size: 10px;
  color: rgba(226, 196, 141, 0.85);
  background: rgba(226, 196, 141, 0.08);
  border: 1px solid rgba(226, 196, 141, 0.22);
  padding: 2px 8px;
  border-radius: 12px;
  letter-spacing: 0.03em;
  white-space: nowrap;
  flex-shrink: 0;
}
.iw-tarot-viewer-card-scene {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.55;
  letter-spacing: 0.01em;
}
.iw-tarot-viewer-card-meaning {
  font-size: 11px;
  color: rgba(226, 196, 141, 0.72);
  line-height: 1.5;
  font-style: italic;
  padding-top: 2px;
}

/* 专属核心神谕卡片（高亮金边华丽款） */
.iw-tarot-viewer-card.is-special {
  background: linear-gradient(135deg, rgba(38, 30, 20, 0.92) 0%, rgba(20, 18, 16, 0.98) 100%);
  border: 1px solid rgba(226, 196, 141, 0.45);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5), 0 0 24px rgba(226, 196, 141, 0.15), inset 0 0 30px rgba(226, 196, 141, 0.08);
  padding: 16px 18px;
}
.iw-tarot-viewer-card.is-special::before {
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, #e2c48d 25%, #fff 50%, #e2c48d 75%, transparent 100%);
  opacity: 1;
}
.iw-tarot-viewer-card-badge {
  font-size: 10px;
  color: #e2c48d;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-transform: uppercase;
}
.iw-tarot-viewer-card.is-special .iw-tarot-viewer-card-name {
  font-size: 16px;
  color: #fff;
  text-shadow: 0 0 10px rgba(226, 196, 141, 0.4);
}
.iw-tarot-viewer-detail-box {
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px dashed rgba(226, 196, 141, 0.25);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.iw-tarot-viewer-detail-item {
  font-size: 11px;
  line-height: 1.55;
  display: flex;
  align-items: flex-start;
  gap: 4px;
}
.iw-tarot-viewer-detail-label {
  color: #e2c48d;
  font-weight: 600;
  white-space: nowrap;
}
.iw-tarot-viewer-detail-val {
  color: rgba(255, 255, 255, 0.82);
}
.iw-tarot-viewer-empty {
  text-align: center;
  padding: 40px 0;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}
