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

/* ===== InnerWorld 色彩令牌（v740：颜色整合第 1-2 步）=====
   夜间为默认值；日间模式后续用 [data-iw-theme="day"] 覆盖同名变量即可。
   挂 :root 而非 .innerworld-panel：2048 合成谱 modal 被 append 到 body（面板外），
   必须让它也继承到令牌。--iw-rgb-* 三元组供第 3 步 rgba 归顺用。 */
:root {
  --iw-gold: #e2c48d;        /* 品牌金：文字/描边/微光通用，昼夜一起翻 */
  --iw-text-bright: #fff;    /* 最亮文字档（仅 color:），日间翻墨黑 */
  /* RGB 三元组（逗号格式）：用法 rgba(var(--iw-rgb-gold), 0.35)，兼容老 WebView */
  --iw-rgb-gold: 226, 196, 141;
  --iw-rgb-white: 255, 255, 255;
  --iw-rgb-black: 0, 0, 0;
  /* 凹陷面板底数（第 8 步）：夜间=纯黑，与 rgb-black 同值；
     日间换成浅暖砂，否则风靡/剧场的凹陷正文块会合成出灰棕。 */
  --iw-rgb-inset: 0, 0, 0;
  /* ---- 近黑背景阶梯（第 4 步：41 种手调漂移 → 14 个令牌）----
     冷/暖两族分离是刻意的：冷调=战术监视站，暖调=纸张木质媒介，
     压进同一套中性灰会丢掉媒介质感。日间模式按族整体翻即可。 */
  --iw-cool-0: #08090c;    /* 冷调 L4%：面板最底 */
  --iw-cool-1: #101216;    /* 冷调 L7%：卡片/面板 */
  --iw-cool-2: #14161b;    /* 冷调 L9%：浮层/条目 */
  --iw-cool-3: #181b22;    /* 冷调 L11%：输入框/强调块 */
  --iw-cool-4: #232632;    /* 冷调 L17%：抬升块（原 #22262e/#252a35） */
  --iw-warm-0: #0d0c0b;    /* 暖调 L5%：纸张最底 */
  --iw-warm-1: #141210;    /* 暖调 L7%：纸面 */
  --iw-warm-2: #181615;    /* 暖调 L9%：纸面抬升 */
  --iw-warm-3: #1c1a18;    /* 暖调 L10%：木质/皮革 */
  --iw-shadow-pure: #000;  /* 纯黑：仅用于 shadow */
  --iw-danger-bg: #1f0b0f; /* 警示态暗红底 */
  --iw-on-gold: #101216;   /* 金底上的深色文字（日间金变暗→此处要变浅） */
  /* ---- 文字与状态色（第 5 步）----
     冷灰族=战术界面文字，暖纸族=纸张媒介文字（跟暗红系一起翻）。
     面板默认 color 用 --iw-text-1，日间不翻这组就是白底白字。 */
  --iw-text-0: #f8fafc;  /* 冷灰文字 最亮：标题 */
  --iw-text-0b: #f0f0f0; /* 冷灰文字 最亮（中性白，无蓝调） */
  --iw-text-1: #e4e7eb;  /* 冷灰文字 正文（面板默认 color） */
  --iw-text-2: #cbd5e1;  /* 冷灰文字 次要（偏蓝） */
  --iw-text-2b: #d1d5db; /* 冷灰文字 次要（中性） */
  --iw-text-3: #c0c6cf;  /* 冷灰文字 辅助/说明 */
  --iw-paper-0: #fbf1d9; /* 暖纸文字 最亮暖白 */
  --iw-paper-1: #f5e4c3; /* 暖纸文字 标准 */
  --iw-paper-2: #f5f0e6; /* 暖纸文字 偏灰暖白 */
  --iw-gold-pale: #f5e2b8; /* 浅金（高饱和）：hover 态背景等 */
  --iw-gold-pale-hi: #fce7b8; /* 浅金 更亮档 */
  --iw-state-danger: #ff8484; /* 状态色 危险/警示 */
  --iw-state-danger-soft: #fca5a5; /* 状态色 危险（柔和档） */
  --iw-state-info: #8bb3e8; /* 状态色 信息 */
  --iw-state-magic: #c084fc; /* 状态色 异常/魔法 */
  /* ---- 近黑族的 RGB 三元组（第 6 步）----
     这批色原本以 rgba(自定义底数, α) 形态散落在渐变和半透明背景里，
     第 3 步只归顺了白/金/黑三个底数，漏掉了它们，于是日间模式下
     世界全域 feature 卡、游嬉卡带、2048/扫雷棋盘仍然是黑底。
     数值与上面的 --iw-cool-*/--iw-warm-* 一致，只是换成逗号三元组形态。 */
  --iw-rgb-cool-0: 8, 9, 12;
  --iw-rgb-cool-1: 16, 18, 22;
  --iw-rgb-cool-2: 20, 22, 27;
  --iw-rgb-cool-3: 24, 27, 34;
  --iw-rgb-cool-4: 35, 38, 50;
  --iw-rgb-warm-0: 13, 12, 11;
  --iw-rgb-warm-1: 20, 18, 16;
  --iw-rgb-warm-2: 24, 22, 21;
  --iw-rgb-warm-3: 28, 26, 24;
  --iw-rgb-warm-amber: 38, 30, 20;
  /* ---- 卡带外壳专用（第 7 步）----
     原先卡带直接复用 warm-2/warm-3，但日间需要单独降黄：
     暖族在米白底上饱和度一高就发闷。夜间值与原 warm 族完全一致（视觉零变化），
     日间在覆盖块里单独给一套低饱和的浅塑料色。 */
  --iw-cart-shell: #181615;                      /* = warm-2，卡带外壳 */
  --iw-cart-label-top: rgba(28, 26, 24, 0.95);   /* = rgba(warm-3, .95) */
  --iw-cart-label-bot: rgba(20, 18, 16, 0.98);   /* = rgba(warm-1, .98) */
  --iw-cart-label-top-hv: rgba(28, 26, 24, 0.98);
  --iw-cart-label-bot-hv: rgba(20, 18, 16, 1);
  --iw-cart-slot: #0d0c0b;                       /* = warm-0，游嬉机卡带插槽凹陷 */
  /* 日间投影透明度（仅日间专用规则引用；夜间占位，保持链路完整） */
  --iw-shadow-a: 0.5;
  --iw-shadow-b: 0.6;
  /* ---- 2048 砖块色板（第 9 步）----
     原先写死在 js/innerworld.js 的 DEFAULT_SKIN_2048 里，并以内联 style 输出。
     内联样式优先级最高，CSS 覆盖不了，所以日间低阶砖会是「浅纸底 + 白字」糊成一片。
     改成变量后昼夜自动跟随，AI 生成的皮肤也只带文案、配色一律走这里。
     夜间值与原字面量完全一致（视觉零变化）。 */
  --iw-t2-bg: rgba(255, 255, 255, 0.06);   --iw-t2-fg: rgba(255, 255, 255, 0.75);
  --iw-t4-bg: rgba(255, 255, 255, 0.10);   --iw-t4-fg: #ffffff;
  --iw-t8-bg: rgba(226, 196, 141, 0.22);   --iw-t8-fg: #e2c48d;
  --iw-t16-bg: rgba(226, 196, 141, 0.38);  --iw-t16-fg: #f5dfb8;
  --iw-t32-bg: rgba(230, 162, 60, 0.48);   --iw-t32-fg: #ffffff;
  --iw-t64-bg: rgba(230, 120, 50, 0.58);   --iw-t64-fg: #ffffff;
  --iw-t128-bg: rgba(235, 90, 60, 0.68);   --iw-t128-fg: #ffffff;
  --iw-t256-bg: rgba(240, 70, 80, 0.78);   --iw-t256-fg: #ffffff;
  --iw-t512-bg: rgba(180, 70, 220, 0.80);  --iw-t512-fg: #ffffff;
  --iw-t1024-bg: rgba(130, 80, 240, 0.88); --iw-t1024-fg: #ffffff;
  --iw-t2048-bg: rgba(226, 196, 141, 0.96);--iw-t2048-fg: #14161a;
  /* ---- 见缝插针 canvas 绘制色（第 10 步）----
     canvas 拿不到 var()，由 JS 的 _pinColors() 用 getComputedStyle 读这里。
     夜间值 = 原绘制代码的字面色（视觉零变化），日间在覆盖块里另给一套。 */
  --iw-pin-stroke: rgba(226, 196, 141, 0.75);
  --iw-pin-head: #e2c48d;
  --iw-pin-glow: rgba(226, 196, 141, 0.6);
  --iw-pin-disc-bg: #14161b;
  --iw-pin-disc-rim: rgba(226, 196, 141, 0.4);
  --iw-pin-disc-inner: rgba(255, 255, 255, 0.08);
  --iw-pin-disc-text: #fff;
  --iw-pin-fly-stroke: #e2c48d;
  --iw-pin-fly-head: #f5e2b8;
  --iw-pin-ready-stroke: rgba(226, 196, 141, 0.85);
  --iw-pin-ready-orb-bg: #1c1f28;
  --iw-pin-ready-orb-rim: #e2c48d;
  --iw-pin-ready-orb-text: #e2c48d;
  /* dead 态在昼夜都偏警示红，日间微调即可，先共用夜间值 */
  --iw-pin-dead-stroke: rgba(255, 80, 80, 0.85);
  --iw-pin-dead-head: #ff5050;
  --iw-pin-dead-glow: rgba(255, 80, 80, 0.9);
  --iw-pin-dead-disc-bg: #2d181b;
  --iw-pin-dead-disc-rim: rgba(255, 80, 80, 0.7);
  --iw-pin-dead-disc-text: #ff7070;
  /* ---- 五子棋 canvas 绘制色（第 11 步）----
     网格线原是 12% 白，日间米白底上直接看不见；星位/准星是金色残留。
     棋子渐变（黑子三段/白子三段）昼夜通用，不令牌化。 */
  --iw-gb-grid: rgba(255, 255, 255, 0.12);
  --iw-gb-star: #e2c48d;
  --iw-gb-black-rim: rgba(226, 196, 141, 0.5);
  --iw-gb-black-shadow: rgba(0, 0, 0, 0.8);
  --iw-gb-white-rim: rgba(255, 255, 255, 0.9);
  --iw-gb-white-shadow: rgba(255, 255, 255, 0.4);
  --iw-gb-last: #ff5050;
  --iw-gb-cross: #e2c48d;
  --iw-gb-loupe-bg: #14161b;
  --iw-gb-loupe-grid: rgba(255, 255, 255, 0.2);
  --iw-gb-loupe-black-rim: #e2c48d;
  --iw-gb-loupe-white-rim: #fff;
  /* 翻转棋 canvas（夜间 = 原写死色） */
  --iw-rv-bg: #14161b;
  --iw-rv-grid: rgba(226, 196, 141, 0.12);
  --iw-rv-star: rgba(226, 196, 141, 0.35);
  --iw-rv-accent-rgb: 226, 196, 141;
  --iw-rv-mark: #e2c48d;
  --iw-rv-mark-ring: rgba(226, 196, 141, 0.6);
  --iw-rv-hint-halo: rgba(226, 196, 141, 0.28);
  --iw-rv-black-rim: rgba(226, 196, 141, 0.85);
  --iw-rv-black-shadow: rgba(0, 0, 0, 0.6);
  --iw-rv-white-rim: rgba(20, 22, 27, 0.25);
  --iw-rv-white-shadow: rgba(0, 0, 0, 0.5);
}

/* ========================================================
   日间模式（档案馆）——米白纸底 + 墨黑字 + 暗砖红替代金
   挂在 .innerworld-panel 上而非 :root：避免影响主程序其它面板。
   注意 2048 合成谱 modal 被 append 到 body 外，所以补一条
   body[data-iw-theme] 选择器让它也能拿到同一套变量。
   色号都是变量，想调整改这里一行即可。
   ======================================================== */
.innerworld-panel[data-iw-theme="day"],
body[data-iw-theme="day"] {
  /* 主角：暗砖红替代金 */
  --iw-gold: #8c2f23;
  --iw-rgb-gold: 140, 47, 35;
  /* 冷族纸底（原战术深色）：阶梯整体提亮 6~8%，从偏灰转为清爽的奶米白，不再发沉 */
  --iw-cool-0: #fbf9f5;    /* 面板最底：近乎纯净的奶白底（带极微暖） */
  --iw-cool-1: #f5f1e8;    /* 卡片主底 */
  --iw-cool-2: #eee8dc;    /* 浮层/条目 */
  --iw-cool-3: #e6dfd0;    /* 输入框/强调块 */
  --iw-cool-4: #ded5c2;    /* 抬升块（最深一档，仍保持明亮） */
  /* 暖族纸底：比冷族更偏牛皮纸/素描纸，但同样大幅提亮 */
  --iw-warm-0: #faf6ed;    /* 暖纸最底 */
  --iw-warm-1: #f4ede0;    /* 纸面卡片 */
  --iw-warm-2: #ece3d2;    /* 纸面抬升 */
  --iw-warm-3: #e3d7c2;    /* 木质/卡带外壳（原 #d6cbb4 偏深沉，现为浅木麦色） */

  /* 文字翻墨黑：阶梯方向反转（夜间越小越亮 → 日间越小越深） */
  --iw-text-0:  #1a1714;   /* 标题：最深 */
  --iw-text-0b: #1f1b17;
  --iw-text-1:  #2b2620;   /* 正文 */
  --iw-text-2:  #544b40;   /* 次要 */
  --iw-text-2b: #5a5146;
  --iw-text-3:  #5f564a;   /* 辅助/说明（压深以满足 AA） */
  --iw-text-bright: #15120f;  /* 夜间的最亮白 → 日间最深墨 */

  /* 暖纸文字族跟暗红走：原本是浅金，现在是红棕墨 */
  --iw-paper-0: #3d2b22;
  --iw-paper-1: #4a3328;
  --iw-paper-2: #574338;
  --iw-gold-pale:    #a8503c;  /* 浅金 → 浅砖红（含 background 用途）*/
  --iw-gold-pale-hi: #b85c45;

  /* 描边/高光：原本是白，日间要翻成墨线，否则白线在米白上消失 */
  --iw-rgb-white: 60, 50, 40;
  /* 阴影：白底上的黑影要更柔，用暖灰代替纯黑 */
  --iw-rgb-black: 120, 102, 80;
  --iw-rgb-inset: 222, 210, 188;  /* 凹陷底：极浅暖砂。176,156,128 实测合成后与父底仍差 27% 亮度（页面正常层级差仅 6.7%），看着还是深色补丁 */
  /* 2048 砖块日间色板：全部实色（不用 alpha，避免叠在纸底上失控）。
     低阶砖墨黑字、高阶砖米白字，每阶对比度实测 5.0~11.0:1，均过 AA。 */
  --iw-t2-bg: #f6f1e7;    --iw-t2-fg: #3a332b;
  --iw-t4-bg: #e6dccb;    --iw-t4-fg: #2b2620;
  --iw-t8-bg: #ecd2c3;    --iw-t8-fg: #6a2318;
  --iw-t16-bg: #e3bba9;   --iw-t16-fg: #5a1d14;
  --iw-t32-bg: #efcf98;   --iw-t32-fg: #3d2a12;
  --iw-t64-bg: #eab083;   --iw-t64-fg: #3a1e0e;
  --iw-t128-bg: #e48b70;  --iw-t128-fg: #2b120c;
  --iw-t256-bg: #b8434a;  --iw-t256-fg: #fff7f2;
  --iw-t512-bg: #9446b8;  --iw-t512-fg: #fbf6ff;
  --iw-t1024-bg: #6a48c9; --iw-t1024-fg: #f8f5ff;
  --iw-t2048-bg: #8c2f23; --iw-t2048-fg: #f7f4ed;
  /* 见缝插针日间色：针用暗砖红（米白底上金色会发灰发浅），
     圆盘翻纸色配墨字，待发主珠同样翻浅。dead 态警示红压深一档保对比。 */
  --iw-pin-stroke: rgba(140, 47, 35, 0.8);
  --iw-pin-head: #8c2f23;
  --iw-pin-glow: rgba(140, 47, 35, 0.35);
  --iw-pin-disc-bg: #efe9dc;
  --iw-pin-disc-rim: rgba(140, 47, 35, 0.75);
  --iw-pin-disc-inner: rgba(60, 50, 40, 0.12);
  --iw-pin-disc-text: #2b2620;
  --iw-pin-fly-stroke: #8c2f23;
  --iw-pin-fly-head: #a8503c;
  --iw-pin-ready-stroke: rgba(140, 47, 35, 0.9);
  --iw-pin-ready-orb-bg: #e6dfd0;
  --iw-pin-ready-orb-rim: #8c2f23;
  --iw-pin-ready-orb-text: #8c2f23;
  --iw-pin-dead-stroke: rgba(179, 38, 30, 0.9);
  --iw-pin-dead-head: #b3261e;
  --iw-pin-dead-glow: rgba(179, 38, 30, 0.45);
  --iw-pin-dead-disc-bg: #f3ded9;
  --iw-pin-dead-disc-rim: rgba(179, 38, 30, 0.8);
  --iw-pin-dead-disc-text: #b3261e;
  /* 五子棋日间：网格翻墨线（12% 白在米白上消失），星位/准星翻暗砖红，
     黑子描边翻红、白子描边翻墨（白子靠描边在纸底上显形），
     放大镜小窗整体翻纸色。 */
  --iw-gb-grid: rgba(60, 50, 40, 0.35);
  --iw-gb-star: #8c2f23;
  --iw-gb-black-rim: rgba(140, 47, 35, 0.6);
  --iw-gb-black-shadow: rgba(120, 102, 80, 0.5);
  --iw-gb-white-rim: rgba(60, 50, 40, 0.55);
  --iw-gb-white-shadow: rgba(120, 102, 80, 0.45);
  --iw-gb-last: #b3261e;
  --iw-gb-cross: #8c2f23;
  --iw-gb-loupe-bg: #efe9dc;
  --iw-gb-loupe-grid: rgba(60, 50, 40, 0.35);
  --iw-gb-loupe-black-rim: #8c2f23;
  --iw-gb-loupe-white-rim: rgba(60, 50, 40, 0.6);

  /* 翻转棋日间：底板翻纸色（与五子棋放大镜同色），格线翻墨，
     金色点缀全翻暗砖红；白子加墨色描边在纸底显形，黑子描边翻红 */
  --iw-rv-bg: #efe9dc;
  --iw-rv-grid: rgba(60, 50, 40, 0.35);
  --iw-rv-star: rgba(140, 47, 35, 0.55);
  --iw-rv-accent-rgb: 140, 47, 35;
  --iw-rv-mark: #8c2f23;
  --iw-rv-mark-ring: rgba(140, 47, 35, 0.6);
  --iw-rv-hint-halo: rgba(140, 47, 35, 0.2);
  --iw-rv-black-rim: rgba(140, 47, 35, 0.6);
  --iw-rv-black-shadow: rgba(120, 102, 80, 0.5);
  --iw-rv-white-rim: rgba(60, 50, 40, 0.55);
  --iw-rv-white-shadow: rgba(120, 102, 80, 0.45);

  /* 三消暗牌日间：brightness(0.38) 会把米白压到 L9% 成黑块。
     0.85 压到 L54%，比明牌（L67%）暗 13pt：一眼可辨又不发黑。
     灰度加到 0.7 让暗牌褪成灰纸色，图标色彩与明牌拉开差距。 */
  --iw-tm-blocked-bright: 0.85;
  --iw-tm-blocked-gray: 0.7;
  --iw-tm-mask-a: 0.3;
  --iw-shadow-pure: #6d6356;

  /* 暗红底上的文字翻成米白（与背景反向，这就是单列它的原因） */
  --iw-on-gold: #f7f4ed;

  /* 状态色压深：原本是亮色系，在米白上会发虚 */
  --iw-state-danger:      #b3261e;
  --iw-state-danger-soft: #c4564a;
  --iw-state-info:        #2f5d8c;
  --iw-state-magic:       #6b3fa0;
  --iw-danger-bg:         #f7e4e0;
  /* 近黑族 RGB 三元组翻纸色：与上面的 --iw-cool-*/--iw-warm-* 同值 */
  --iw-rgb-cool-0: 251, 249, 245;
  --iw-rgb-cool-1: 245, 241, 232;
  --iw-rgb-cool-2: 238, 232, 220;
  --iw-rgb-cool-3: 230, 223, 208;
  --iw-rgb-cool-4: 222, 213, 194;
  --iw-rgb-warm-0: 250, 246, 237;
  --iw-rgb-warm-1: 244, 237, 224;
  --iw-rgb-warm-2: 236, 227, 210;
  --iw-rgb-warm-3: 227, 215, 194;
  --iw-rgb-warm-amber: 235, 222, 196;  /* 高饱和暖棕 → 琥珀浅米 */
  /* 卡带外壳：v749 回暖。v748 把饱和砍到 9%（R-B 仅 3~6）在米白底上发灰发白，
     原始值 40~47%（R-B 20）又发闷。现按 R-B 通道差定在 9~16 之间，
     明度不变，只是把 R 抬高、B 压低，保留塑料壳的米黄感。 */
  --iw-cart-shell: #f3f0ea;
  --iw-cart-label-top: #ede9e0;
  --iw-cart-label-bot: #f7f5ef;
  --iw-cart-label-top-hv: #e9e4d9;
  --iw-cart-label-bot-hv: #fbfaf5;
  --iw-cart-slot: #e7e2d8;   /* 插槽：比机壳深一档，表现凹陷，带米黄不发灰 */
  /* 日间投影减重：黑影在米白上压太实会让卡片「陷进纸里」，透明度砍到夜间的 1/4 左右 */
  --iw-shadow-a: 0.12;
  --iw-shadow-b: 0.16;
}
/* 日间专用：外部卡片与卡带的投影改用轻薄暖灰，营造「纸叠纸」而非「陷入」 */
.innerworld-panel[data-iw-theme="day"] .iw-gazette-feature {
  box-shadow:
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.04),
    0 2px 8px rgba(var(--iw-rgb-black), var(--iw-shadow-a));
}
.innerworld-panel[data-iw-theme="day"] .iw-gazette-feature:hover,
.innerworld-panel[data-iw-theme="day"] .iw-gazette-feature:active {
  box-shadow:
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.06),
    0 4px 14px rgba(var(--iw-rgb-black), var(--iw-shadow-b)),
    0 0 10px rgba(var(--iw-rgb-gold), 0.06);
}
.innerworld-panel[data-iw-theme="day"] .iw-deck-cartridge {
  box-shadow:
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.04),
    0 2px 8px rgba(var(--iw-rgb-black), var(--iw-shadow-a));
}
.innerworld-panel[data-iw-theme="day"] .iw-deck-cartridge:hover,
.innerworld-panel[data-iw-theme="day"] .iw-deck-cartridge:active {
  box-shadow:
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.06),
    0 5px 14px rgba(var(--iw-rgb-black), var(--iw-shadow-b)),
    0 0 10px rgba(var(--iw-rgb-gold), 0.06);
}
/* 卡带标签内凹阴影同样减重，否则贴纸看着像黑框 */
.innerworld-panel[data-iw-theme="day"] .iw-cart-label {
  box-shadow: inset 0 1px 3px rgba(var(--iw-rgb-black), 0.14);
}
/* 风声容器的投影也压薄，和外部卡片保持一致的纸感 */
.innerworld-panel[data-iw-theme="day"] .iw-paper-container {
  box-shadow: 0 4px 14px rgba(var(--iw-rgb-black), var(--iw-shadow-a));
}
/* v748：游嬉机壳 / 二级页操作栏投影减重 */
.innerworld-panel[data-iw-theme="day"] .iw-arcade-console,
.innerworld-panel[data-iw-theme="day"] .iw-arcade-subnav {
  box-shadow:
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.04),
    0 2px 8px rgba(var(--iw-rgb-black), var(--iw-shadow-a));
}
/* 插槽：夜间是 0.9 的实黑描边 + 双层深内阴影，日间换成细灰线 + 浅内阴影，
   否则会是一条粗棕框，正是「太黄太重」的来源之一 */
.innerworld-panel[data-iw-theme="day"] .iw-console-slot {
  border-color: rgba(var(--iw-rgb-black), 0.28);
  border-bottom-color: rgba(var(--iw-rgb-white), 0.06);
  box-shadow:
    inset 0 2px 4px rgba(var(--iw-rgb-black), 0.18),
    inset 0 0 1px rgba(var(--iw-rgb-black), 0.3);
}
/* 二级页返回键：按下态内阴影减重 */
.innerworld-panel[data-iw-theme="day"] .iw-subnav-back {
  box-shadow: inset 0 1px 0 rgba(var(--iw-rgb-white), 0.04);
}
.innerworld-panel[data-iw-theme="day"] .iw-subnav-back:active {
  box-shadow: inset 0 1px 2px rgba(var(--iw-rgb-black), 0.18);
}
/* v755：三消卡牌。夜间用 0.7~0.98 的浓阴影区分 14 层高低，日间这个浓度
   配暖灰会让每张牌拖一片灰影，整盘发脏。按层级重排一套轻投影：
   浓度压到 0.06~0.3，但保留「层越高影越大越重」的梯度，立体感不丢。 */
.innerworld-panel[data-iw-theme="day"] .iw-tile-card {
  box-shadow: 0 1px 3px rgba(var(--iw-rgb-black), 0.14);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-0 {
  box-shadow: 0 1px 3px rgba(var(--iw-rgb-black), 0.1);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-1 {
  box-shadow: 0 2px 5px rgba(var(--iw-rgb-black), 0.12);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-2 {
  box-shadow: 0 3px 7px rgba(var(--iw-rgb-black), 0.14);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-3 {
  box-shadow: 0 4px 9px rgba(var(--iw-rgb-black), 0.16);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-4 {
  box-shadow: 0 5px 11px rgba(var(--iw-rgb-black), 0.18);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-5 {
  box-shadow: 0 6px 13px rgba(var(--iw-rgb-black), 0.2);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-6 {
  box-shadow: 0 7px 15px rgba(var(--iw-rgb-black), 0.21);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-7 {
  box-shadow: 0 8px 17px rgba(var(--iw-rgb-black), 0.22);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-8 {
  box-shadow: 0 9px 19px rgba(var(--iw-rgb-black), 0.24);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-9 {
  box-shadow: 0 10px 21px rgba(var(--iw-rgb-black), 0.25);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-10 {
  box-shadow: 0 11px 23px rgba(var(--iw-rgb-black), 0.26);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-11 {
  box-shadow: 0 12px 25px rgba(var(--iw-rgb-black), 0.28);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-12,
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-layer-13 {
  box-shadow: 0 13px 27px rgba(var(--iw-rgb-black), 0.3);
}
/* 牌面内凹切面：夜间底边是 0.6 实黑模拟厚度，日间换成细暖灰线 */
.innerworld-panel[data-iw-theme="day"] .iw-tile-card-inner::after {
  border-top-color: rgba(var(--iw-rgb-white), 0.5);
  border-bottom-color: rgba(var(--iw-rgb-black), 0.18);
}
/* 图标与文字的阴影：夜间 0.8~0.9 是为了在深底上描边，日间纸底上会糊 */
.innerworld-panel[data-iw-theme="day"] .iw-tile-card-icon svg {
  filter: drop-shadow(0 1px 1px rgba(var(--iw-rgb-black), 0.18));
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card-label {
  text-shadow: 0 1px 1px rgba(var(--iw-rgb-white), 0.6);
}
.innerworld-panel[data-iw-theme="day"] .iw-tile-card.is-pickable:active {
  box-shadow: 0 1px 2px rgba(var(--iw-rgb-black), 0.22);
}

/* 日间：战术网格点阵与顶部扫描光都基于白色叠加，在米白上会消失。
   这里改用墨色低透明度，保留「有纹理」的观感。 */
.innerworld-panel[data-iw-theme="day"]::before {
  background-image: radial-gradient(rgba(60, 50, 40, 0.07) 1px, transparent 1px);
}
.innerworld-panel[data-iw-theme="day"]::after {
  background: radial-gradient(circle at 50% 0%, rgba(140, 47, 35, 0.05), transparent 70%);
}

/* 日间模式切换按钮（顶栏右上角） */
.iw-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-left: auto;          /* 顶栏是 flex-start，靠这个推到最右 */
  padding: 0;
  border-radius: 8px;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: var(--iw-text-3) !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.2s ease, transform 0.3s ease;
}
.iw-theme-toggle:active {
  transform: scale(0.88);
}
.iw-theme-toggle:hover {
  color: var(--iw-gold) !important;
}
/* 两个图标按当前主题互斥显示 */
.iw-theme-toggle .iw-icon-moon { display: none; }
.iw-theme-toggle .iw-icon-sun  { display: block; }
.innerworld-panel[data-iw-theme="day"] .iw-theme-toggle .iw-icon-moon { display: block; }
.innerworld-panel[data-iw-theme="day"] .iw-theme-toggle .iw-icon-sun  { display: none; }

.innerworld-panel {
  background-color: var(--iw-cool-0) !important;
  color: var(--iw-text-1);
  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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-text-3) !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(var(--iw-rgb-white), 0.12) !important;
  color: var(--iw-text-0) !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: var(--iw-text-0);
  line-height: 1.1;
  text-shadow: 0 2px 10px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.45);
  letter-spacing: 2px;
}

/* 顶部引言文字：严格锁死现代无衬线黑体，绝不吃全局自定义字体 */
.iw-epigraph {
  margin: 0 0 20px 0;
  padding: 0 2px;
  font-size: 12px;
  line-height: 1.65;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.7);
  margin-bottom: 6px;
  text-transform: uppercase;
}

.iw-gazette-folio-sep {
  color: rgba(var(--iw-rgb-white), 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: var(--iw-text-0);
  line-height: 1;
}

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

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

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

/* 题记（保持原观测文案与内敛气质） */
.iw-epigraph {
  margin: 4px 0 0 0;
  padding: 0;
  font-size: 11.5px;
  line-height: 1.6;
  color: rgba(var(--iw-rgb-white), 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 {
  /* v747：改用风声同款纸底（cool-1 纯色），去掉暖棕渐变——日间那段渐变起点偏黄偏深，是发沉的主因 */
  background: var(--iw-cool-1);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.22);
  border-radius: 6px;
  padding: 18px 16px 14px 16px;
  cursor: pointer;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.08),
    0 4px 20px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.45);
  box-shadow: 
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.12),
    0 8px 26px rgba(var(--iw-rgb-black), 0.6),
    0 0 14px rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  line-height: 1;
}

.iw-gazette-kicker-text {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 1.2px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.25);
}

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

.iw-gazette-deck {
  font-size: 12px;
  line-height: 1.6;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.07);
}

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

.iw-gazette-arrow {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  color: var(--iw-gold);
  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: var(--iw-cool-1);  /* v747：与风声同纸 */
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.16);
  background: var(--iw-cool-2);
  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(var(--iw-rgb-white), 0.45);
}

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

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

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

.iw-gazette-col-status {
  font-family: "ShareTechMono", monospace;
  font-size: 7.5px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-white), 0.25);
  border-top: 1px dashed rgba(var(--iw-rgb-white), 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: var(--iw-gold); /* 高级香槟淡金，沉着静谧 */
  line-height: 1;
  opacity: 0.95;
  text-shadow: 0 0 12px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.5);
}

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

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

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

.iw-card:active .iw-card-arrow {
  transform: translateX(4px);
  color: var(--iw-text-bright);
}

/* 卡片意境描述 / 观察视角 */
.iw-card-desc {
  font-size: 12px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-text-2);
  background: rgba(var(--iw-rgb-white), 0.04);
  border: 1px solid rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  opacity: 0.75;
  box-shadow: 0 0 6px rgba(var(--iw-rgb-gold), 0.4);
}

.iw-footer-note {
  margin-top: 24px;
  text-align: center;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 4px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.12);
  border-color: rgba(var(--iw-rgb-white), 0.35);
  color: var(--iw-text-bright);
  font-weight: 600;
}

.iw-media-tab.active svg {
  color: var(--iw-text-bright);
}

/* 媒介操作工具栏（左对齐，无边框，与题头呼应的“按钮 英文 / 中文”排版） */
.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(var(--iw-rgb-white), 0.4);
  color: var(--iw-text-bright);
  background: rgba(var(--iw-rgb-white), 0.1);
}

.iw-btn-pulse:active .iw-pulse-en {
  color: var(--iw-text-bright);
}

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

.iw-btn-pulse:active .iw-pulse-tag {
  color: var(--iw-text-bright);
  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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.38);
  letter-spacing: 0.5px;
}

/* --------------------------------------------------------
   实体媒介封底栏（Colophon）—— 将刷新按钮有机吸纳为刊物底标
   -------------------------------------------------------- */
.iw-medium-footer {
  margin-top: 24px;
  padding-top: 14px;
  border-top: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.02);
  border: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.08);
}

.iw-cutline-text {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9.5px;
  letter-spacing: 1.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-text-bright);
}

.iw-colophon-btn:active .iw-pulse-cn {
  color: var(--iw-text-bright);
}

/* 右侧世界观游戏内时间戳（无边框无圆点，极简注记） */
.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(var(--iw-rgb-white), 0.4);
}

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

/* --------------------------------------------------------
   媒介 1：【暗色纪事早报】（The Broadsheet）—— 交互式多篇动态折叠展开
   -------------------------------------------------------- */
.iw-paper-container {
  background: var(--iw-cool-1);
  border: 1px solid rgba(var(--iw-rgb-white), 0.12);
  border-radius: 4px;
  padding: 16px 14px 20px;
  position: relative;
  box-shadow: 0 10px 30px rgba(var(--iw-rgb-black), 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%, var(--iw-danger-bg) 0%, var(--iw-cool-1) 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(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 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: var(--iw-state-danger-soft);
  text-shadow: 0 0 8px rgba(239, 68, 68, 0.4);
}

.iw-manifest-step-desc {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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, var(--iw-gold));
  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(var(--iw-rgb-white), 0.05);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
  animation: iwSkelSilverBreathe 2s ease-in-out infinite alternate;
}

@keyframes iwSkelSilverBreathe {
  0% { background: rgba(var(--iw-rgb-white), 0.04); }
  100% { background: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.08);
}

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

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

.iw-skel-photo-box {
  width: 96px;
  height: 72px;
  background: var(--iw-cool-0);
  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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.015);
  border: 1px solid rgba(var(--iw-rgb-white), 0.04);
  border-radius: 4px;
  box-sizing: border-box;
}

.iw-paper-masthead {
  text-align: center;
  border-bottom: 2px solid rgba(var(--iw-rgb-white), 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: var(--iw-text-0);
  text-transform: uppercase;
}

.iw-paper-meta-strip {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-bottom: 1px solid rgba(var(--iw-rgb-white), 0.08);
  padding: 4px 2px;
  margin-top: 6px;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-text-bright);
}

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

.iw-paper-article.is-expanded .iw-tag-badge {
  background: rgba(var(--iw-rgb-white), 0.16);
  color: var(--iw-text-bright);
  border: 1px solid rgba(var(--iw-rgb-white), 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: var(--iw-text-0);
  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: var(--iw-text-2);
  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: var(--iw-gold);
  text-shadow: 0 0 12px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.55);
}

/* ---------------- 图文特稿（第 4 条 Wirephoto） ---------------- */
.iw-article-wirephoto {
  margin-top: 14px;
  margin-bottom: 8px;
  padding-bottom: 12px;
  border-bottom: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.16);
  background: var(--iw-cool-1);
  box-shadow: 0 2px 8px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
  white-space: nowrap;
}

.iw-comment-line {
  flex: 1;
  height: 1px;
  background: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.02);
  border-radius: 4px;
  border: 1px solid rgba(var(--iw-rgb-white), 0.04);
}

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

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

/* ---------------- 底部双列副刊剪报（第 5、6 条） ---------------- */
.iw-paper-twin-section {
  margin-top: 14px;
  margin-bottom: 6px;
  padding-top: 10px;
  border-top: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.42);
  white-space: nowrap;
}

.iw-twin-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.15);
  border-bottom: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 0.05);
  border-radius: 4px;
  transition: all 0.2s ease;
}

.iw-paper-article.is-collapsed:active {
  background: rgba(var(--iw-rgb-white), 0.05);
  border-color: rgba(var(--iw-rgb-white), 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: var(--iw-text-1);
  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(var(--iw-rgb-white), 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: var(--iw-text-bright);
  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: var(--iw-cool-1);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 4px;
  padding: 24px 20px 22px;
  position: relative;
  box-shadow: 0 12px 36px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.35);
  padding: 2px 7px;
  border-radius: 2px;
  margin-bottom: 12px;
  background: rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
}

.iw-living-vol {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 10px;
  color: rgba(var(--iw-rgb-gold), 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: var(--iw-text-0);
}

.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(var(--iw-rgb-white), 0.45);
  margin-bottom: 14px;
  padding-left: 2px;
}

.iw-living-rule {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--iw-rgb-gold), 0.25) 0%, rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 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: var(--iw-gold);
  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(var(--iw-rgb-white), 0.78);
  letter-spacing: 0.6px;
}

/* 纯文本段落排版：极致舒适度 */
.iw-act-text {
  font-size: 13.5px;
  line-height: 1.85;
  color: var(--iw-text-2b);
  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: var(--iw-paper-1);
  text-decoration: underline dotted rgba(var(--iw-rgb-gold), 0.45);
  text-underline-offset: 3px;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0 1px;
}

.iw-marginalia-anchor:active {
  color: var(--iw-text-bright);
  background: rgba(var(--iw-rgb-gold), 0.15);
  border-radius: 2px;
}

.iw-marginalia-sup {
  font-size: 9px;
  color: var(--iw-gold);
  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(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.65);
  letter-spacing: 0.2px;
  text-indent: 0;
}

/* 孤儿注释前的词语标签（因为没有正文锚点，需显式标明注的是哪个词） */
.iw-marginalia-key {
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.04);
  border: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 4px;
  color: var(--iw-gold);
  cursor: pointer;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.iw-keepsake-trigger:active {
  background: rgba(var(--iw-rgb-gold), 0.08);
  border-color: rgba(var(--iw-rgb-gold), 0.4);
}

.iw-keepsake-clip-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  color: var(--iw-gold);
  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(var(--iw-rgb-gold), 0.55);
  font-family: "ShareTechMono", monospace;
  letter-spacing: 0.5px;
}

/* 触发条右侧：展开/收起提示 + 箭头 */
.iw-keepsake-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.3);
  background: rgba(var(--iw-rgb-gold), 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: var(--iw-warm-2);
  background-image: radial-gradient(circle at 85% 15%, rgba(var(--iw-rgb-gold), 0.06), transparent 70%),
                    linear-gradient(180deg, var(--iw-warm-2) 0%, var(--iw-warm-1) 100%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.18);
  border-radius: 3px;
  padding: 16px 14px 14px 14px;
  box-shadow: inset 0 0 20px rgba(var(--iw-rgb-black), 0.6), 0 6px 16px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.02) 58px,
    rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.55);
  filter: drop-shadow(0 1px 2px rgba(var(--iw-rgb-black), 0.5));
}
.iw-keepsake-doodle-caption {
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
}

.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(var(--iw-rgb-gold), 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: var(--iw-warm-1);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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%, var(--iw-warm-2) 0%, var(--iw-warm-0) 78%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.16);
  border-radius: 4px;
  animation: iwLivingSettle 0.42s ease forwards;
  box-shadow: inset 0 0 50px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.6);
  margin-bottom: 10px;
}

.iw-living-loading-sub {
  font-family: "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 12px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.08);
  text-align: center;
}

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

.iw-living-colophon {
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  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: var(--iw-gold);
  white-space: nowrap;
}

.iw-long-btn-divider {
  font-size: 11px;
  color: rgba(var(--iw-rgb-gold), 0.35);
}

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

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

.iw-living-long-btn:active .iw-long-btn-arrow {
  color: var(--iw-gold-pale-hi);
  transform: translateX(2px);
}

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

/* 刊头：对齐风声与众生相的报刊/卷首风格 */
.iw-zine-masthead {
  padding: 12px 14px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.85);
}

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

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

/* 空态：本期尚未付印引导卡（对齐众生相空态的沉静基调） */
.iw-zine-empty {
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.14);
  border-radius: 50%;
  color: rgba(var(--iw-rgb-white), 0.32);
}

.iw-zine-empty-text {
  font-size: 12.5px;
  line-height: 1.9;
  color: rgba(var(--iw-rgb-white), 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%, var(--iw-cool-2) 0%, var(--iw-cool-0) 78%);
  border: 1px solid rgba(var(--iw-rgb-white), 0.12);
  border-radius: 4px;
  box-shadow: inset 0 0 45px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.35);
  background: rgba(var(--iw-rgb-gold), 0.04);
  color: var(--iw-gold);
  margin-bottom: 14px;
  box-shadow: 0 0 14px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.75);
  margin-bottom: 12px;
}

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

.iw-reg-label {
  padding: 1px 6px;
  border: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 2px;
}

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

.iw-zine-loading-sub {
  font-size: 11.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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, var(--iw-gold), 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(var(--iw-rgb-white), 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: var(--iw-gold); }
}

.iw-zine-loading-ticker {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13.5px;
  color: var(--iw-gold);
  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%, var(--iw-cool-2) 0%, var(--iw-cool-0) 80%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.2);
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(var(--iw-rgb-black), 0.8), inset 0 0 40px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.4);
  margin-bottom: 22px;
}

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

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

.iw-chip-state {
  color: var(--iw-gold);
  padding: 1px 5px;
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-inset), 0.4);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 6px;
  box-shadow: inset 0 2px 6px rgba(var(--iw-rgb-black), 0.6);
}

.iw-tape-spool {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px dashed rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.25);
}

.iw-spool-center {
  width: 5px;
  height: 5px;
  background: var(--iw-gold);
  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(var(--iw-rgb-white), 0.15);
  margin-top: 1px;
}

.iw-tape-pulse {
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--iw-gold), 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: var(--iw-text-bright);
  margin-bottom: 8px;
}

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

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

/* 通用 Zine 卡片基础容器：统一深邃冷黑底色与素净微线 */
.iw-zine-card {
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.07);
}

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

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

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

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

/* ---------------- 1. 热门 Meme ---------------- */
.iw-meme-frame {
  margin: 10px 0;
  padding: 10px 12px 11px;
  background: rgba(var(--iw-rgb-inset), 0.32);
  border: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.25);
  border-left: 1.5px solid rgba(var(--iw-rgb-white), 0.25);
}

/* 右下角准星 */
.iw-meme-frame::after {
  bottom: 3px;
  right: 3px;
  border-bottom: 1.5px solid rgba(var(--iw-rgb-white), 0.25);
  border-right: 1.5px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.25);
  transition: color 0.3s ease;
}

/* 初始失焦态：文字毛玻璃模糊与微降透明度 */
.iw-meme-frame-text {
  font-size: 11.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.32);
  background: rgba(var(--iw-rgb-gold), 0.03);
}

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

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

.iw-meme-frame.is-focused .iw-meme-frame-tag {
  color: var(--iw-gold);
}

.iw-meme-frame.is-focused .iw-meme-frame-rec {
  color: rgba(var(--iw-rgb-gold), 0.65);
}

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

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

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

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

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

.iw-meme-flow-hit {
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.04);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 8px 8px 8px 2px;
  color: rgba(var(--iw-rgb-white), 0.72);
}

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

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

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

.iw-snack-selling {
  color: rgba(var(--iw-rgb-white), 0.75);
}

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

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

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

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

/* 测评一体化收缩扩展卡（去竖线，框体内延展） */
.iw-snack-review-box {
  margin-top: 8px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.48);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.25s ease;
}

.iw-snack-review-icon {
  font-size: 10px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.9);
  line-height: 1.65;
}

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

.iw-snack-review-box.is-open .iw-snack-review-label {
  color: var(--iw-gold);
}

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

.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(var(--iw-rgb-white), 0.55);
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  padding: 2px 7px;
  border-radius: 2px;
  letter-spacing: 0.3px;
}

.iw-merch-specimen {
  margin: 8px 0;
  padding: 9px 11px;
  background: rgba(var(--iw-rgb-inset), 0.22);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.35);
  background: rgba(var(--iw-rgb-gold), 0.02);
}

.iw-merch-fidget-hint {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  letter-spacing: 0.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 盘玩解压冒出的极淡香槟金微浮字 */
.iw-merch-fidget-toast {
  position: absolute;
  top: 6px;
  right: 10px;
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  font-weight: 600;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 0.35);
  display: flex;
  align-items: center;
  gap: 4px;
}

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

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

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

/* ---------------- 4. 穿搭风尚 ---------------- */
/* 风格核心释义盒（元素/材质说明） */
.iw-fashion-definition {
  margin: 8px 0 10px 0;
  padding: 8px 10px;
  background: rgba(var(--iw-rgb-inset), 0.22);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.35);
}

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

.iw-fashion-def-text {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  letter-spacing: 0.5px;
  font-weight: 600;
}

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

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

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

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

.iw-fashion-origin {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 0.45);
  line-height: 1.55;
  padding-top: 8px;
  border-top: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.1);
  border-radius: 2px;
  color: rgba(var(--iw-rgb-white), 0.55);
  font-size: 9.5px;
}

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

/* 弹幕荧幕舱（直播式垂直顶升流） */
.iw-danmaku-screen {
  margin-top: 10px;
  background: rgba(var(--iw-rgb-inset), 0.35);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.3);
}

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

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

.iw-danmaku-btn {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.92);
}

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

.iw-danmaku-item.is-highlight .iw-danmaku-item-svg {
  color: var(--iw-gold);
}

@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(var(--iw-rgb-white), 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: var(--iw-gold);
  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(var(--iw-rgb-white), 0.45);
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.28);
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

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

/* ---------------- 7. 好物分享（购物小票 Receipt 风格） ---------------- */
.iw-receipt-wrap {
  margin-top: 8px;
  background: rgba(var(--iw-rgb-inset), 0.28);
  border: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.35);
  letter-spacing: 0.8px;
  padding-bottom: 6px;
  border-bottom: 1px dashed rgba(var(--iw-rgb-white), 0.08);
}

.iw-receipt-category {
  display: inline-block;
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(var(--iw-rgb-gold), 0.7);
  background: rgba(var(--iw-rgb-gold), 0.05);
  border: 1px solid rgba(var(--iw-rgb-gold), 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: var(--iw-text-0);
  letter-spacing: 0.3px;
  margin-bottom: 6px;
}

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

.iw-receipt-pain-k {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
}

.iw-receipt-stars {
  font-family: "ShareTechMono", monospace;
  color: var(--iw-gold);
  letter-spacing: 2px;
  font-size: 11px;
}

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

/* 小票封底条形码（激光扫码结算交互） */
.iw-receipt-barcode-wrap {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.75);
}

/* 激光扫描线（Laser Beam） */
.iw-receipt-laser {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -10px;
  width: 2px;
  background: var(--iw-gold);
  box-shadow: 0 0 8px var(--iw-gold), 0 0 16px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.35);
  transition: color 0.3s ease;
}

.iw-receipt-barcode-wrap.is-scanned .iw-receipt-barcode-sub {
  color: var(--iw-gold);
}

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

/* 媒介就绪/待印刷空态提示 */
.iw-empty-state {
  text-align: center;
  padding: 36px 16px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px dashed rgba(var(--iw-rgb-white), 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: var(--iw-text-1);
  margin-bottom: 6px;
}

.iw-empty-desc {
  font-size: 12px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-cart-shell);  /* v748：游嬉机壳跟卡带同族，日间不发黄 */
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 6px;
  padding: 10px 14px 12px 14px;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.08),
    0 4px 16px rgba(var(--iw-rgb-black), 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: var(--iw-gold);
  box-shadow: 0 0 6px var(--iw-gold);
  animation: iwConsolePwrBreath 2.4s infinite ease-in-out;
}

@keyframes iwConsolePwrBreath {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 1; box-shadow: 0 0 8px var(--iw-gold), 0 0 12px rgba(var(--iw-rgb-gold), 0.5); }
}

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

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

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

.iw-console-slot {
  position: relative;
  background: var(--iw-cart-slot);  /* v748：卡带插槽凹陷，日间为浅灰凹槽 */
  border: 1px solid rgba(var(--iw-rgb-black), 0.9);
  border-bottom: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 4px;
  padding: 8px 12px;
  box-shadow: 
    inset 0 3px 6px rgba(var(--iw-rgb-black), 0.9),
    inset 0 0 1px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.2) transparent transparent;
  pointer-events: none;
}

.iw-arcade-console:hover .iw-console-slot-guide {
  color: rgba(var(--iw-rgb-gold), 0.5);
}

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

.iw-deck-cartridge {
  position: relative;
  background: var(--iw-cart-shell);  /* v747：卡带壳专用令牌，日间单独降黄 */
  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(var(--iw-rgb-white), 0.07),
    0 4px 16px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.15) 0%, rgba(var(--iw-rgb-gold), 0.1) 40%, rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 0.7);
  border-bottom: 1px solid rgba(var(--iw-rgb-white), 0.06);
  border-radius: 1px;
}

/* 卡带中央贴纸（Label Sticker）内凹凹槽质感 */
.iw-cart-label {
  background: linear-gradient(180deg, var(--iw-cart-label-top) 0%, var(--iw-cart-label-bot) 100%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.14);
  border-radius: 4px;
  padding: 10px 9px 9px 9px;
  display: flex;
  flex-direction: column;
  position: relative;
  box-shadow: inset 0 1px 3px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.65);
  font-weight: 600;
}

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

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

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

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

.iw-deck-cartridge:hover .iw-cart-label {
  border-color: rgba(var(--iw-rgb-gold), 0.3);
  background: linear-gradient(180deg, var(--iw-cart-label-top-hv) 0%, var(--iw-cart-label-bot-hv) 100%);
}

.iw-deck-cartridge:hover .iw-cart-icon {
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 0.04) 0%, rgba(var(--iw-rgb-gold), 0.015) 30%, rgba(var(--iw-rgb-cool-1), 0.94) 100%);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.06), 0 3px 10px rgba(var(--iw-rgb-black), 0.3);
  -webkit-tap-highlight-color: transparent;
}

.iw-game-tile:hover,
.iw-game-tile:active {
  background: linear-gradient(155deg, rgba(var(--iw-rgb-white), 0.07) 0%, rgba(var(--iw-rgb-gold), 0.04) 35%, rgba(var(--iw-rgb-cool-2), 0.96) 100%);
  border-color: rgba(var(--iw-rgb-gold), 0.45);
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(var(--iw-rgb-white), 0.14), 0 6px 14px rgba(var(--iw-rgb-black), 0.4), 0 0 12px rgba(var(--iw-rgb-gold), 0.12);
}

.iw-game-tile-icon {
  width: 38px;
  height: 38px;
  border-radius: 4px;
  background: rgba(var(--iw-rgb-gold), 0.05);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.2);
  color: var(--iw-gold);
  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(var(--iw-rgb-gold), 0.14);
  border-color: rgba(var(--iw-rgb-gold), 0.5);
  box-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 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: var(--iw-text-bright);
  letter-spacing: 0.5px;
  line-height: 1.3;
}

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

/* 占位卡带：敬请期待（虚线微光科技感） */
.iw-game-tile.iw-game-tile-placeholder {
  border: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  background: linear-gradient(155deg, rgba(var(--iw-rgb-white), 0.02) 0%, rgba(var(--iw-rgb-cool-1), 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(var(--iw-rgb-gold), 0.5);
  opacity: 1;
  background: linear-gradient(155deg, rgba(var(--iw-rgb-gold), 0.04) 0%, rgba(var(--iw-rgb-cool-2), 0.92) 100%);
}

.iw-game-tile.iw-game-tile-placeholder .iw-game-tile-icon {
  background: rgba(var(--iw-rgb-gold), 0.03);
  border: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  color: rgba(var(--iw-rgb-gold), 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: var(--iw-text-bright);
  letter-spacing: 1px;
}

.iw-2048-subtitle {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.6);
}

.iw-2048-regen-link:hover {
  color: var(--iw-gold);
}

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

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

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

.iw-2048-score-box {
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.2);
  background: rgba(var(--iw-rgb-gold), 0.03);
}

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

.iw-2048-score-box.is-best .iw-2048-score-lbl {
  color: rgba(var(--iw-rgb-gold), 0.6);
}

.iw-2048-score-val {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 14px;
  font-weight: 700;
  color: var(--iw-text-bright);
}

.iw-2048-score-box.is-best .iw-2048-score-val {
  color: var(--iw-gold);
}

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

.iw-2048-hint {
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 结算弹窗里的操作按钮保持胶囊块状 */
.iw-2048-overlay-btns .iw-2048-btn {
  background: rgba(var(--iw-rgb-white), 0.05);
  border: 1px solid rgba(var(--iw-rgb-white), 0.12);
  border-radius: 4px;
  padding: 6px 14px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.12);
  border-color: rgba(var(--iw-rgb-gold), 0.35);
  color: var(--iw-gold);
}

/* 4×4 棋盘网格容器 */
.iw-2048-board-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: rgba(var(--iw-rgb-cool-1), 0.95);
  border: 1px solid rgba(var(--iw-rgb-white), 0.1);
  border-radius: 6px;
  padding: 10px;
  position: relative;
  box-sizing: border-box;
  box-shadow: inset 0 2px 10px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.025);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 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(var(--iw-rgb-cool-0), 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: var(--iw-text-bright);
  letter-spacing: 1px;
}

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

.iw-2048-overlay-desc {
  font-size: 12px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.72);
}

/* 皮肤生成加载态：香槟金旋转环 */
.iw-2048-skin-loading-spin {
  width: 32px;
  height: 32px;
  border: 2.5px solid rgba(var(--iw-rgb-gold), 0.15);
  border-top-color: var(--iw-gold);
  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: var(--iw-text-bright);
  letter-spacing: 1px;
}

.iw-mines-subtitle {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.6);
}

.iw-mines-regen-link:hover {
  color: var(--iw-gold);
}

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

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

.iw-mines-counter-box {
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.18);
}

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

.iw-mines-counter-val {
  font-family: "ShareTechMono", monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--iw-gold);
}

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

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

.iw-mines-mode-btn {
  background: transparent;
  border: none;
  outline: none;
  color: rgba(var(--iw-rgb-white), 0.45);
  font-size: 11.5px;
  font-weight: 600;
  padding: 6px 14px;
  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(var(--iw-rgb-gold), 0.18);
  color: var(--iw-gold);
  box-shadow: inset 0 0 8px rgba(var(--iw-rgb-gold), 0.12);
}

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

.iw-mines-btn {
  background: transparent;
  border: none;
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

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

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

/* 扫雷格子 */
.iw-mines-cell {
  background: rgba(var(--iw-rgb-white), 0.06);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.08);
}

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

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

.iw-mines-cell.is-flagged {
  background: rgba(var(--iw-rgb-gold), 0.08);
  border-color: rgba(var(--iw-rgb-gold), 0.3);
}

.iw-mines-flag-sym {
  color: var(--iw-gold);
  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: var(--iw-state-info); }
.iw-mines-cell.is-num-2 .iw-mines-num-text { color: #78c996; }
.iw-mines-cell.is-num-3 .iw-mines-num-text { color: var(--iw-gold); }
.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: var(--iw-state-magic); }
.iw-mines-cell.is-num-8 .iw-mines-num-text { color: #f43f5e; }

.iw-mines-bottom-tip {
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-text-bright);
  letter-spacing: 0.5px;
}

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

.iw-memory-regen-link {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

.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(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
  letter-spacing: 0.8px;
}

.iw-memory-counter-num {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--iw-text-bright);
  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(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 卡牌网格与宿主 */
.iw-memory-board-wrapper {
  position: relative;
  background: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 10px;
  padding: 10px;
  box-shadow: inset 0 2px 8px rgba(var(--iw-rgb-black), 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: var(--iw-cool-3);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  box-shadow: 0 2px 5px rgba(var(--iw-rgb-black), 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: var(--iw-cool-4);
  border-color: rgba(var(--iw-rgb-gold), 0.25);
}

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

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

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

.iw-memory-sym-icon {
  width: 55%;
  height: 55%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--iw-gold);
}

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

.iw-memory-bottom-tip {
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.2);
}
.iw-2048-recipe-mask {
  position: fixed;
  inset: 0;
  background: rgba(var(--iw-rgb-black), 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: var(--iw-cool-2);
  border-top: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.08);
  padding-bottom: 12px;
}

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

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

.iw-2048-recipe-close:hover {
  color: var(--iw-text-bright);
}

.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(var(--iw-rgb-white), 0.025);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 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: var(--iw-text-0b);
  letter-spacing: 0.5px;
}

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

/* --- 游嬉二级卡带机顶操作栏（HUD Console Bar） --- */
.iw-arcade-subnav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--iw-cart-shell);  /* v748：二级页操作栏与机壳同色 */
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 6px;
  padding: 10px 14px;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(var(--iw-rgb-white), 0.08),
    0 4px 14px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.35) 50%, transparent 100%);
  pointer-events: none;
}

/* 左侧：实体退弹按键（EJECT KEY） */
.iw-subnav-back {
  background: rgba(var(--iw-rgb-gold), 0.06);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.22);
  border-radius: 4px;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 0.08);
  transition: all 0.15s ease;
  user-select: none;
}

.iw-subnav-back:hover {
  background: rgba(var(--iw-rgb-gold), 0.12);
  border-color: rgba(var(--iw-rgb-gold), 0.4);
  color: var(--iw-text-bright);
}

.iw-subnav-back:active {
  transform: translateY(1px);
  background: rgba(var(--iw-rgb-gold), 0.18);
  box-shadow: inset 0 1px 2px rgba(var(--iw-rgb-black), 0.6);
}

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

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

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

.iw-subnav-live {
  color: rgba(var(--iw-rgb-gold), 0.75);
  letter-spacing: 0.5px;
}

/* --- 视口卡片通用底板 --- */
.iw-quiz-header-card,
.iw-quiz-stage-card,
.iw-theater-stage-card {
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
  letter-spacing: 0.8px;
}

.iw-quiz-stamp {
  color: var(--iw-gold);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.3);
  padding: 1px 6px;
  border-radius: 2px;
  background: rgba(var(--iw-rgb-gold), 0.05);
}

.iw-quiz-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--iw-text-bright);
  line-height: 1.4;
  margin-bottom: 12px;
}

.iw-quiz-sub {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.08);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 8px;
}

.iw-quiz-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(var(--iw-rgb-gold), 0.6) 0%, var(--iw-gold) 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.35);
  letter-spacing: 1px;
}

.iw-quiz-progress-num {
  color: var(--iw-gold);
}

/* 题目台 */
.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: var(--iw-gold);
  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(var(--iw-rgb-white), 0.12);
  border-radius: 3px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.45);
  color: var(--iw-gold);
}

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

.iw-quiz-q-text {
  font-size: 13.5px;
  line-height: 1.65;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.015);
  border: 1px solid rgba(var(--iw-rgb-white), 0.06);
  border-radius: 4px;
  padding: 10px 12px;
  cursor: pointer;
  transition: all 0.16s ease;
  user-select: none;
}

.iw-quiz-opt:active {
  background: rgba(var(--iw-rgb-gold), 0.05);
  border-color: rgba(var(--iw-rgb-gold), 0.4);
  transform: translateY(1px);
}

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

.iw-quiz-opt.is-selected .iw-quiz-opt-key {
  background: var(--iw-gold);
  color: var(--iw-on-gold);
  font-weight: 700;
  box-shadow: 0 0 8px rgba(var(--iw-rgb-gold), 0.6);
}

.iw-quiz-opt.is-selected .iw-quiz-opt-title {
  color: var(--iw-gold);
}

/* --- 结局结算卡样式（无任何灵魂切片字眼，利落透性质感） --- */
.iw-quiz-result-card {
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.28);
  border-radius: 4px;
  padding: 16px 14px;
  position: relative;
  box-shadow: 0 0 20px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.08);
}

.iw-result-badge {
  font-family: inherit;
  font-size: 11px;
  color: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.1);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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: var(--iw-text-bright);
  letter-spacing: 1px;
  margin-bottom: 6px;
  text-shadow: 0 0 14px rgba(var(--iw-rgb-gold), 0.35);
}

.iw-result-one-liner {
  font-size: 11.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.05);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.18);
  padding: 2px 8px;
  border-radius: 12px;
}

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

.iw-quiz-opt-key {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 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: var(--iw-text-bright);
  line-height: 1.4;
  margin-bottom: 2px;
}

.iw-quiz-opt-desc {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.09);
  color: rgba(var(--iw-rgb-white), 0.7);
}

.iw-quiz-btn.is-secondary:active {
  background: rgba(var(--iw-rgb-white), 0.06);
  border-color: rgba(var(--iw-rgb-white), 0.18);
  color: var(--iw-text-bright);
  transform: translateY(1px);
}

.iw-quiz-btn.is-primary {
  background: rgba(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.32);
  color: var(--iw-gold);
  box-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 0.05);
}

.iw-quiz-btn.is-primary:active {
  background: rgba(var(--iw-rgb-gold), 0.16);
  border-color: rgba(var(--iw-rgb-gold), 0.55);
  color: var(--iw-text-bright);
  box-shadow: 0 0 14px rgba(var(--iw-rgb-gold), 0.2);
  transform: translateY(1px);
}

/* --- 空态题卷卡（Blank Cartridge / 待打捞状态，对齐众生相与风靡的古典工坊质感） --- */
.iw-quiz-blank-card {
  background: rgba(var(--iw-rgb-white), 0.015);
  border: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.06);
}

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

.iw-quiz-blank-badge {
  color: var(--iw-gold);
  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: var(--iw-text-bright);
  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(var(--iw-rgb-gold), 0.75);
  letter-spacing: 0.6px;
  font-style: italic;
  margin-bottom: 14px;
}

.iw-quiz-blank-desc {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.05);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.22);
  border-radius: 4px;
  color: var(--iw-gold);
  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(var(--iw-rgb-gold), 0.09);
  border-color: rgba(var(--iw-rgb-gold), 0.38);
  box-shadow: 0 0 12px rgba(var(--iw-rgb-gold), 0.08);
}

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

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

.iw-blank-btn-spark {
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 0.07);
}

.iw-theater-act-badge {
  background: rgba(var(--iw-rgb-gold), 0.12);
  color: var(--iw-gold);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.25);
  padding: 1px 6px;
  border-radius: 2px;
  font-weight: 700;
}

.iw-theater-act-title {
  color: var(--iw-text-bright);
  font-size: 11px;
  letter-spacing: 0.5px;
}

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

.iw-theater-script-box {
  background: rgba(var(--iw-rgb-inset), 0.25);
  border: 1px solid rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.06);
  padding: 1px 4px;
  border-radius: 2px;
}

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

.iw-theater-narrative {
  font-size: 13px;
  line-height: 1.75;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  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(var(--iw-rgb-white), 0.015);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.45);
  background: rgba(var(--iw-rgb-gold), 0.04);
}

.iw-theater-fork-card.is-branch-b:hover,
.iw-theater-fork-card.is-branch-b:active {
  border-color: rgba(var(--iw-rgb-gold), 0.45);
  background: rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  letter-spacing: 0.5px;
  opacity: 0.9;
}

.iw-fork-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--iw-text-bright);
}

.iw-theater-fork-desc {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.04);
  border-color: rgba(var(--iw-rgb-gold), 0.45);
  box-shadow: 0 0 14px rgba(var(--iw-rgb-gold), 0.12);
}

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

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

.iw-theater-btn-spark {
  color: var(--iw-gold);
  font-size: 12px;
  line-height: 1;
  text-shadow: 0 0 8px rgba(var(--iw-rgb-gold), 0.5);
}

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

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

.iw-theater-switch-btn:hover .iw-theater-btn-right {
  color: var(--iw-gold);
}

.iw-theater-btn-arrow {
  color: var(--iw-gold);
  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(var(--iw-rgb-gold), 0.04) 0%, rgba(var(--iw-rgb-cool-2), 0.98) 35%, rgba(var(--iw-rgb-cool-1), 0.98) 100%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.28);
  border-radius: 4px;
  padding: 16px 14px 18px;
  position: relative;
  box-shadow: 
    inset 0 1px 0 rgba(var(--iw-rgb-gold), 0.2),
    0 10px 24px rgba(var(--iw-rgb-black), 0.45);
}

.iw-theater-result-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--iw-gold) 20%, var(--iw-gold) 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(var(--iw-rgb-gold), 0.15);
}

.iw-theater-result-badge {
  color: var(--iw-gold);
  letter-spacing: 1.2px;
  font-weight: 600;
  opacity: 0.85;
}

.iw-theater-result-code {
  color: rgba(var(--iw-rgb-gold), 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: var(--iw-paper-0);
  letter-spacing: 3px;
  text-shadow: 0 0 16px rgba(var(--iw-rgb-gold), 0.35);
}

.iw-theater-result-epigraph {
  font-family: "Noto Serif SC", "Songti SC", "SimSun", serif;
  font-size: 11.5px;
  font-style: italic;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.12);
}

.iw-theater-switch-btn.is-replay:hover {
  border-color: rgba(var(--iw-rgb-gold), 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: var(--iw-text-bright);
  font-family: inherit;
  line-height: 1.1;
}

.iw-snake-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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: var(--iw-gold);
}

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

.iw-snake-tool-btn {
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

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

.iw-snake-counter-box {
  background: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 0.5);
}

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

.iw-snake-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--iw-gold);
  font-family: monospace;
  line-height: 1.15;
}

/* 核心一屏自适应棋盘宿主 (14 列 x 18 行，纵横比 14/18) */
.iw-snake-board-wrapper {
  position: relative;
  background: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 10px;
  padding: 5px;
  box-shadow: inset 0 2px 10px rgba(var(--iw-rgb-black), 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: var(--iw-cool-3);
  border: 1px solid rgba(var(--iw-rgb-white), 0.12);
  border-radius: 8px;
  color: rgba(var(--iw-rgb-white), 0.78);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(var(--iw-rgb-white), 0.06), 0 3px 6px rgba(var(--iw-rgb-black), 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: var(--iw-cool-4);
  color: var(--iw-gold);
  border-color: rgba(var(--iw-rgb-gold), 0.45);
  transform: scale(0.95);
  box-shadow: inset 0 2px 4px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 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, var(--iw-gold-pale) 0%, #d4ab65 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-text-bright);
  font-family: inherit;
  line-height: 1.1;
}
.iw-pin-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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: var(--iw-gold);
}
.iw-pin-regen-icon {
  font-size: 11px;
}
.iw-pin-tool-btn {
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 状态仪：STAGE & PINS */
.iw-pin-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.iw-pin-counter-box {
  background: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 0.5);
}
.iw-pin-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(var(--iw-rgb-white), 0.4);
  font-family: monospace;
}
.iw-pin-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--iw-gold);
  font-family: monospace;
  line-height: 1.15;
}

/* 核心一屏自适应画布容器 (竖长比例，受控于视口限高) */
.iw-pin-board-wrapper {
  position: relative;
  background: var(--iw-cool-1);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 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(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-text-bright);
  font-family: inherit;
  line-height: 1.1;
}
.iw-link-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.05);
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
}

.iw-link-regen-link {
  background: none;
  border: none;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}
.iw-link-regen-icon {
  font-size: 11.5px;
}

.iw-link-tool-btn {
  background: none;
  border: none;
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 状态仪：STAGE & TIME & PAIRS */
.iw-link-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.iw-link-counter-box {
  background: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 0.5);
}
.iw-link-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(var(--iw-rgb-white), 0.4);
  font-family: monospace;
}
.iw-link-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--iw-gold);
  font-family: monospace;
  line-height: 1.15;
}

/* 核心一屏 1:1 正方形网格宿主与防溢出设计 */
.iw-link-board-wrapper {
  position: relative;
  background: var(--iw-cool-1);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 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: var(--iw-cool-3);
  border: 1px solid rgba(var(--iw-rgb-white), 0.1);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  box-shadow: 0 2px 5px rgba(var(--iw-rgb-black), 0.4), inset 0 1px 1px rgba(var(--iw-rgb-white), 0.05);
  transition: all 0.15s ease;
}
.iw-link-cell.is-selected .iw-link-tile {
  border-color: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.16);
  box-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 0.5), inset 0 0 6px rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  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(var(--iw-rgb-white), 0.45);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  margin-top: 8px;
  flex-shrink: 0;
  letter-spacing: 0.3px;
  text-align: center;
  line-height: 1.35;
}
.iw-link-tip-line1 {
  font-size: 11px;
  color: var(--iw-gold);
  font-weight: 500;
  letter-spacing: 0.5px;
}
.iw-link-tip-line2 {
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-white), 0.35);
}
.iw-link-name-tag {
  color: inherit;
  font-family: inherit;
}
.iw-link-tip-sep {
  color: rgba(var(--iw-rgb-white), 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: var(--iw-text-bright);
  line-height: 1.1;
}
.iw-gobang-subtitle {
  font-size: 10px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-gold), 0.7);
  font-family: monospace;
}
.iw-gobang-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.iw-gobang-counter-box {
  background: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 0.5);
}
.iw-gobang-counter-lbl {
  font-size: 8.5px;
  letter-spacing: 0.8px;
  color: rgba(var(--iw-rgb-white), 0.4);
  font-family: monospace;
}
.iw-gobang-counter-num {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.05);
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
}
.iw-gobang-regen-link {
  background: none;
  border: none;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}
.iw-gobang-regen-icon {
  font-size: 11.5px;
}
.iw-gobang-tool-btn {
  background: none;
  border: none;
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 对手状态栏与对弈心声气泡 */
.iw-gobang-rival-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  padding: 4px 8px;
  background: rgba(var(--iw-rgb-cool-2), 0.7);
  border: 1px solid rgba(var(--iw-rgb-white), 0.06);
  border-radius: 8px;
}
.iw-gobang-rival-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--iw-cool-1);
  border: 1.5px solid var(--iw-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(var(--iw-rgb-gold), 0.3);
}
.iw-gobang-rival-avatar-inner {
  font-size: 12px;
  font-weight: 700;
  color: var(--iw-gold);
  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: var(--iw-text-bright);
}
.iw-gobang-rival-role {
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-gold), 0.75);
  font-family: monospace;
}
.iw-gobang-rival-quote-bubble {
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
}
.iw-gobang-rival-quote-bubble.is-hidden {
  opacity: 0.25;
}

/* 核心一屏 1:1 正方形棋盘宿主 */
.iw-gobang-board-wrapper {
  position: relative;
  background: var(--iw-cool-1);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-black), 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 var(--iw-gold);
  box-shadow: 0 4px 14px rgba(var(--iw-rgb-black), 0.8), 0 0 10px rgba(var(--iw-rgb-gold), 0.4);
  pointer-events: none;
  z-index: 10;
  background: var(--iw-cool-2);
}
.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(var(--iw-rgb-gold), 0.9);
  border-radius: 50%;
  pointer-events: none;
}

/* 二次确认悬浮浮标 */
.iw-gobang-confirm-pill {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(var(--iw-rgb-cool-2), 0.95);
  border: 1px solid var(--iw-gold);
  border-radius: 20px;
  padding: 4px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 18px rgba(var(--iw-rgb-black), 0.8), 0 0 10px rgba(var(--iw-rgb-gold), 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: var(--iw-text-bright);
  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: var(--iw-gold);
  color: var(--iw-on-gold);
}
.iw-gobang-pill-btn.is-ok:hover,
.iw-gobang-pill-btn.is-ok:active {
  background: var(--iw-gold-pale);
  transform: scale(1.05);
}
.iw-gobang-pill-btn.is-cancel {
  background: rgba(var(--iw-rgb-white), 0.15);
  color: rgba(var(--iw-rgb-white), 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: var(--iw-state-danger);
}

/* 底部状态说明条 */
.iw-gobang-bottom-tip {
  font-size: 10px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 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: var(--iw-text-bright);
  letter-spacing: 0.5px;
}
.iw-crush-subtitle {
  font-size: 10px;
  color: var(--iw-gold);
  font-family: "ShareTechMono", monospace;
  opacity: 0.85;
}
/* 状态仪条带 */
.iw-crush-status-strip {
  display: flex;
  gap: 6px;
}
.iw-crush-counter-box {
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
  font-family: "ShareTechMono", monospace;
  letter-spacing: 0.5px;
}
.iw-crush-counter-num {
  font-size: 13px;
  font-weight: 700;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 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: var(--iw-gold);
}
.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(var(--iw-rgb-white), 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: var(--iw-gold);
}
/* 关卡目标提示条 */
.iw-crush-target-banner {
  background: rgba(var(--iw-rgb-gold), 0.05);
  border: 1px dashed rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.15);
  padding: 1px 5px;
  border-radius: 2px;
  font-family: "ShareTechMono", monospace;
}
.iw-crush-target-desc {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-cool-2);
  border: 1px solid rgba(var(--iw-rgb-white), 0.1);
  border-radius: 6px;
  box-shadow: inset 0 0 24px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 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, var(--iw-gold));
  filter: drop-shadow(0 0 5px var(--gem-glow, rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.16);
  border: 1.5px solid var(--iw-gold);
  box-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  text-shadow: 0 0 4px var(--iw-shadow-pure);
  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 var(--iw-gold)); }
  50% { transform: rotate(180deg); filter: drop-shadow(0 0 10px #5ba39d); }
  100% { transform: rotate(360deg); filter: drop-shadow(0 0 6px var(--iw-gold)); }
}

/* 浮空赞美词投射层（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(var(--iw-rgb-black), 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: var(--iw-gold);
}
.iw-crush-praise-banner.is-combo3 {
  font-size: 32px;
  color: #d96a68;
}
.iw-crush-praise-banner.is-super {
  font-size: 38px;
  background: linear-gradient(135deg, var(--iw-gold), #d96a68, #9d84bf);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 12px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.45);
  font-family: "ShareTechMono", monospace;
  padding: 6px 8px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border-radius: 6px;
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
  line-height: 1.35;
  word-break: break-all;
}
.iw-crush-name-tag {
  color: var(--iw-gold);
  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: var(--iw-text-bright);
  letter-spacing: 0.5px;
}

.iw-tile-subtitle {
  font-size: 10px;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 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: var(--iw-gold);
}

.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(var(--iw-rgb-white), 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: var(--iw-gold);
}

/* 状态仪条带：完全对齐消消乐小框 .iw-crush-counter-box */
.iw-tile-status-strip {
  display: flex;
  gap: 6px;
}

.iw-tile-counter-box {
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.4);
  font-family: "ShareTechMono", monospace;
  letter-spacing: 0.5px;
}

.iw-tile-counter-num {
  font-size: 13px;
  font-weight: 700;
  color: var(--iw-gold);
  font-family: "ShareTechMono", monospace;
}

/* 关卡目标提示条：完全对齐消消乐 .iw-crush-target-banner */
.iw-tile-target-banner {
  background: rgba(var(--iw-rgb-gold), 0.05);
  border: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 4px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
}

.iw-tile-target-label {
  color: var(--iw-gold);
  font-weight: 700;
  white-space: nowrap;
}

.iw-tile-target-desc {
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.15);
  border-radius: 10px;
  background: rgba(var(--iw-rgb-cool-0), 0.65);
  box-shadow: inset 0 0 24px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-black), 0.7), 0 1px 0 rgba(var(--iw-rgb-white), 0.08) inset;
}

/* 依据层级赋予逐渐加深的 3D 浮空与多重阴影，一眼分清高低 */
.iw-tile-card.is-layer-0 {
  box-shadow: 0 2px 5px rgba(var(--iw-rgb-black), 0.8), 0 1px 2px rgba(var(--iw-rgb-black), 0.9);
}
.iw-tile-card.is-layer-1 {
  box-shadow: 0 4px 10px rgba(var(--iw-rgb-black), 0.85), 0 2px 4px rgba(var(--iw-rgb-black), 0.9);
}
.iw-tile-card.is-layer-2 {
  box-shadow: 0 6px 14px rgba(var(--iw-rgb-black), 0.9), 0 3px 6px rgba(var(--iw-rgb-black), 0.95);
}
.iw-tile-card.is-layer-3 {
  box-shadow: 0 8px 18px rgba(var(--iw-rgb-black), 0.92), 0 4px 8px rgba(var(--iw-rgb-black), 0.95);
}
.iw-tile-card.is-layer-4 {
  box-shadow: 0 10px 22px rgba(var(--iw-rgb-black), 0.95), 0 5px 10px rgba(var(--iw-rgb-black), 0.95);
}
.iw-tile-card.is-layer-5 {
  box-shadow: 0 12px 26px rgba(var(--iw-rgb-black), 0.98), 0 6px 12px rgba(var(--iw-rgb-black), 0.95);
}
.iw-tile-card.is-layer-6 {
  box-shadow: 0 14px 28px rgba(var(--iw-rgb-black), 0.95), 0 7px 14px rgba(var(--iw-rgb-black), 0.95);
}
.iw-tile-card.is-layer-7 {
  box-shadow: 0 16px 32px rgba(var(--iw-rgb-black), 0.96), 0 8px 16px rgba(var(--iw-rgb-black), 0.96);
}
.iw-tile-card.is-layer-8 {
  box-shadow: 0 18px 36px rgba(var(--iw-rgb-black), 0.98), 0 9px 18px rgba(var(--iw-rgb-black), 0.96);
}
.iw-tile-card.is-layer-9 {
  box-shadow: 0 20px 40px var(--iw-shadow-pure), 0 10px 20px rgba(var(--iw-rgb-black), 0.98);
}
.iw-tile-card.is-layer-10 {
  box-shadow: 0 22px 44px var(--iw-shadow-pure), 0 11px 22px rgba(var(--iw-rgb-black), 0.98);
}
.iw-tile-card.is-layer-11 {
  box-shadow: 0 24px 48px var(--iw-shadow-pure), 0 12px 24px var(--iw-shadow-pure);
}
.iw-tile-card.is-layer-12,
.iw-tile-card.is-layer-13 {
  box-shadow: 0 26px 52px var(--iw-shadow-pure), 0 13px 26px var(--iw-shadow-pure);
}

/* 卡牌本体内部：彻底实心不透底（纯实色 #181a22 底板 + 瓷白亚光微渐变），彻底告别塑料透明膜感 */
.iw-tile-card-inner {
  width: 100%;
  height: 100%;
  border-radius: 8px;
  border: 1.5px solid rgba(var(--iw-rgb-gold), 0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3px;
  box-sizing: border-box;
  /* 100% 不透明纯实色实体底板，顶部微高光，底部沉底 */
  background: linear-gradient(180deg, var(--iw-cool-4) 0%, var(--iw-cool-3) 100%);
  position: relative;
  overflow: hidden;
}

/* 顶部与四周高精内凹凸切面：模拟实体麻将/木牌质感 */
.iw-tile-card-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  border-top: 1px solid rgba(var(--iw-rgb-white), 0.15);
  border-bottom: 1.5px solid rgba(var(--iw-rgb-black), 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(var(--iw-rgb-black), 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(var(--iw-rgb-black), 0.9);
}

/* 可点击明牌：鲜活明亮、微高光金边 */
.iw-tile-card.is-pickable {
  filter: brightness(1.05);
}

.iw-tile-card.is-pickable .iw-tile-card-inner {
  border-color: rgba(var(--iw-rgb-gold), 0.7);
}

.iw-tile-card.is-pickable:active {
  transform: scale(0.92) translateY(2px);
  box-shadow: 0 2px 4px rgba(var(--iw-rgb-black), 0.9);
}

/* 被压住的暗牌（被遮挡）：深度压暗降调 + 明显暗色覆层，与明牌形成天地之别 */
.iw-tile-card.is-blocked {
  filter: brightness(var(--iw-tm-blocked-bright, 0.38)) grayscale(var(--iw-tm-blocked-gray, 0.45));
  cursor: not-allowed;
}

.iw-tile-card.is-blocked .iw-tile-card-inner {
  border-color: rgba(var(--iw-rgb-white), 0.12) !important;
  background: var(--iw-cool-1);
}

.iw-tile-card-mask {
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: rgba(var(--iw-rgb-inset), var(--iw-tm-mask-a, 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(var(--iw-rgb-gold), 0.04);
  border: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 8px;
}

.iw-tile-stash-label {
  font-size: 11px;
  color: var(--iw-gold);
  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(var(--iw-rgb-white), 0.5);
  letter-spacing: 0.04em;
}

.iw-tile-dock-count {
  color: var(--iw-gold);
  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(var(--iw-rgb-cool-1), 0.95);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.35);
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(var(--iw-rgb-black), 0.6);
}

.iw-tile-dock-slot {
  width: 40px;
  height: 44px;
  flex: none;
  border-radius: 7px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px dashed rgba(var(--iw-rgb-white), 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(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 8px;
  padding: 9px 4px;
  color: var(--iw-text-bright);
  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(var(--iw-rgb-gold), 0.2);
  border-color: var(--iw-gold);
}

.iw-tile-prop-btn.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  border-color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  color: var(--iw-on-gold);
  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(var(--iw-rgb-black), 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: var(--iw-gold);
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 11px;
}

.iw-tile-bottom-row-sub {
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-white), 0.45);
  background: rgba(var(--iw-rgb-white), 0.02);
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

/* ============================================================
   第十款卡带：汉诺塔（ROM.03-J // HANOI TOWER）  —— 对齐堆叠三消 UI 语言
   ============================================================ */

/* 根容器 */
.iw-hanoi-container {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 2px 12px;
}

/* 顶部标题行与状态仪 */
.iw-hanoi-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

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

.iw-hanoi-title {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 16px;
  font-weight: 700;
  color: var(--iw-text-bright);
  letter-spacing: 0.5px;
}

.iw-hanoi-subtitle {
  font-size: 10px;
  color: var(--iw-gold);
  font-family: "ShareTechMono", monospace;
  opacity: 0.85;
}

/* 微型操作行：剧情 + 重构推演 + 撤销 + 重开 */
.iw-hanoi-subactions-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}

.iw-hanoi-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 0.48);
  cursor: pointer;
  padding: 1px 0;
}
.iw-hanoi-tool-btn:hover,
.iw-hanoi-tool-btn:active {
  color: var(--iw-gold);
}

.iw-hanoi-regen-link {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: none;
  border: none;
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-gold), 0.6);
  cursor: pointer;
  padding: 1px 0;
}
.iw-hanoi-regen-link:hover { color: var(--iw-gold); }

/* 状态仪条带 */
.iw-hanoi-status-strip {
  display: flex;
  gap: 6px;
}

.iw-hanoi-counter-box {
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 4px;
  padding: 3px 8px;
  min-width: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.iw-hanoi-counter-lbl {
  font-family: "ShareTechMono", monospace;
  font-size: 8px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-white), 0.35);
}

.iw-hanoi-counter-num {
  font-family: "ShareTechMono", monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--iw-gold);
  line-height: 1.1;
}

/* 阶数选择条 */
.iw-hanoi-stage-bar {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 2px 0;
  scrollbar-width: none;
}
.iw-hanoi-stage-bar::-webkit-scrollbar { display: none; }

.iw-hanoi-stage-chip {
  flex-shrink: 0;
  font-family: "ShareTechMono", monospace;
  font-size: 10.5px;
  padding: 3px 10px;
  border-radius: 10px;
  border: 1px solid rgba(var(--iw-rgb-white), 0.12);
  background: rgba(var(--iw-rgb-white), 0.03);
  color: rgba(var(--iw-rgb-white), 0.5);
  cursor: pointer;
  transition: all 0.15s;
}
.iw-hanoi-stage-chip.is-active {
  border-color: rgba(var(--iw-rgb-gold), 0.55);
  color: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.08);
}
.iw-hanoi-chip-star {
  margin-left: 3px;
  color: var(--iw-gold);
  font-size: 9px;
}

/* 迁移目标横幅 */
.iw-hanoi-target-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: rgba(var(--iw-rgb-gold), 0.05);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.14);
  border-radius: 6px;
}

.iw-hanoi-target-label {
  font-family: "ShareTechMono", monospace;
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--iw-gold);
  flex-shrink: 0;
  padding-right: 8px;
  border-right: 1px solid rgba(var(--iw-rgb-gold), 0.25);
}

.iw-hanoi-target-desc {
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 0.6);
}

/* 核心盘面视口 */
.iw-hanoi-board-wrapper {
  position: relative;
  width: 100%;
  height: 300px;
  margin: 0 auto;
  border-radius: 8px;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(var(--iw-rgb-gold), 0.05), transparent 60%),
    rgba(var(--iw-rgb-white), 0.015);
  border: 1px solid rgba(var(--iw-rgb-white), 0.06);
  overflow: hidden;
}

.iw-hanoi-board {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-around;
  padding: 10px 8px 0;
}

/* 单柱容器 */
.iw-hanoi-peg {
  position: relative;
  flex: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.iw-hanoi-peg-label {
  font-family: "ShareTechMono", monospace;
  font-size: 9.5px;
  letter-spacing: 1px;
  color: rgba(var(--iw-rgb-white), 0.35);
  margin-bottom: 4px;
  flex-shrink: 0;
  transition: color 0.15s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.iw-hanoi-peg.is-selected .iw-hanoi-peg-label { color: var(--iw-gold); }

/* 柱体区：立杆在底层，圆盘叠其上 */
.iw-hanoi-peg-area {
  position: relative;
  flex: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
}

.iw-hanoi-peg-pole {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 5px;
  height: 92%;
  border-radius: 2.5px;
  background: linear-gradient(90deg, rgba(var(--iw-rgb-white), 0.10), rgba(var(--iw-rgb-white), 0.28) 40%, rgba(var(--iw-rgb-white), 0.10));
  transition: background 0.15s, box-shadow 0.15s;
}

.iw-hanoi-peg.is-selected .iw-hanoi-peg-pole {
  background: linear-gradient(90deg, rgba(var(--iw-rgb-gold), 0.25), rgba(var(--iw-rgb-gold), 0.7) 40%, rgba(var(--iw-rgb-gold), 0.25));
  box-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 0.35);
}

.iw-hanoi-peg-disks {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

/* 柱底座 */
.iw-hanoi-peg-base {
  flex-shrink: 0;
  width: 86%;
  height: 7px;
  border-radius: 3px;
  background: linear-gradient(180deg, rgba(var(--iw-rgb-white), 0.22), rgba(var(--iw-rgb-white), 0.08));
  box-shadow: 0 2px 6px rgba(var(--iw-rgb-black), 0.4);
  transition: background 0.15s;
}

.iw-hanoi-peg.is-selected .iw-hanoi-peg-base {
  background: linear-gradient(180deg, rgba(var(--iw-rgb-gold), 0.5), rgba(var(--iw-rgb-gold), 0.18));
}

/* 圆盘 */
.iw-hanoi-disk {
  height: 20px;
  margin-bottom: 2px;
  border-radius: 10px;
  border: 1px solid rgba(var(--iw-rgb-white), 0.22);
  box-shadow: inset 0 2px 3px rgba(var(--iw-rgb-white), 0.22), 0 2px 4px rgba(var(--iw-rgb-black), 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.18s cubic-bezier(0.2, 0.9, 0.3, 1.3), filter 0.18s;
}

.iw-hanoi-disk span {
  font-family: "ShareTechMono", monospace;
  font-size: 9px;
  color: rgba(var(--iw-rgb-white), 0.75);
  text-shadow: 0 1px 2px rgba(var(--iw-rgb-black), 0.6);
  pointer-events: none;
}

/* 选中柱顶盘：悬浮呼吸 */
.iw-hanoi-disk.is-lifted {
  transform: translateY(-9px) scale(1.03);
  filter: brightness(1.25);
  box-shadow: inset 0 2px 3px rgba(var(--iw-rgb-white), 0.3), 0 8px 14px rgba(var(--iw-rgb-black), 0.5), 0 0 12px rgba(var(--iw-rgb-gold), 0.4);
  animation: iwHanoiLift 1.1s ease-in-out infinite;
}

@keyframes iwHanoiLift {
  0%, 100% { transform: translateY(-9px) scale(1.03); }
  50% { transform: translateY(-12px) scale(1.03); }
}

/* 刚落盘的顶盘：弹落 */
.iw-hanoi-disk.just-moved {
  animation: iwHanoiDrop 0.22s cubic-bezier(0.3, 1.4, 0.5, 1);
}

@keyframes iwHanoiDrop {
  0% { transform: translateY(-26px); opacity: 0.6; }
  70% { transform: translateY(2px); opacity: 1; }
  100% { transform: translateY(0); }
}

/* 非法操作：红光抖动 */
.iw-hanoi-peg.is-illegal .iw-hanoi-peg-pole {
  background: linear-gradient(90deg, rgba(217,106,104,0.3), rgba(217,106,104,0.85) 40%, rgba(217,106,104,0.3));
  box-shadow: 0 0 12px rgba(217, 106, 104, 0.5);
}
.iw-hanoi-peg.is-illegal .iw-hanoi-peg-label { color: #d96a68; }
.iw-hanoi-peg.is-illegal {
  animation: iwHanoiShake 0.36s ease;
}

@keyframes iwHanoiShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}

/* 底部状态说明条 */
.iw-hanoi-bottom-tip {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 8px 10px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 0.05);
  border-radius: 6px;
}

.iw-hanoi-name-tag {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  color: var(--iw-gold);
  letter-spacing: 0.5px;
}

.iw-hanoi-bottom-row-sub {
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 0.4);
}

/* 通关弹窗内的步数小结与完美戳 */
.iw-hanoi-win-bits {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}

.iw-hanoi-win-bits span {
  font-family: "ShareTechMono", monospace;
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 0.55);
  border: 1px solid rgba(var(--iw-rgb-white), 0.14);
  border-radius: 4px;
  padding: 2px 8px;
}

.iw-hanoi-perfect-stamp {
  margin: 10px auto 0;
  display: inline-block;
  font-family: "ShareTechMono", monospace;
  font-size: 12px;
  letter-spacing: 2px;
  color: var(--iw-gold);
  border: 2px solid rgba(var(--iw-rgb-gold), 0.65);
  border-radius: 6px;
  padding: 4px 14px;
  transform: rotate(-3deg);
  text-shadow: 0 0 8px rgba(var(--iw-rgb-gold), 0.5);
  box-shadow: 0 0 14px rgba(var(--iw-rgb-gold), 0.15), inset 0 0 10px rgba(var(--iw-rgb-gold), 0.08);
  animation: iwHanoiStampIn 0.4s cubic-bezier(0.2, 1.6, 0.4, 1);
}

@keyframes iwHanoiStampIn {
  0% { transform: rotate(-3deg) scale(2.2); opacity: 0; }
  100% { transform: rotate(-3deg) scale(1); opacity: 1; }
}

/* 圆满弹窗：无限模式解锁提示行 */
.iw-hanoi-infinite-unlock {
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.7;
  color: rgba(var(--iw-rgb-gold), 0.8);
  border-top: 1px dashed rgba(var(--iw-rgb-gold), 0.25);
  padding-top: 8px;
}

/* ====================================================
   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(var(--iw-rgb-gold), 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(var(--iw-rgb-warm-0), 0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 10px;
}
.iw-tarot-reskin-txt {
  font-size: 13px;
  color: var(--iw-gold);
  letter-spacing: 0.06em;
  font-style: italic;
  text-shadow: 0 0 12px rgba(var(--iw-rgb-gold), 0.3);
}
.iw-tarot-reskin-sub {
  font-size: 11px;
  line-height: 1.6;
  color: rgba(var(--iw-rgb-white), 0.42);
  max-width: 240px;
}
.iw-tarot-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--iw-gold);
  letter-spacing: 0.04em;
  margin: 2px 0;
  text-shadow: 0 0 16px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.38);
}
.iw-tarot-btn-reset {
  background: rgba(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.25);
  color: var(--iw-gold);
  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(var(--iw-rgb-gold), 0.16);
  border-color: var(--iw-gold);
  box-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-warm-1), 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.3);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(var(--iw-rgb-black), 0.6), 0 0 16px rgba(var(--iw-rgb-gold), 0.15);
  padding: 4px;
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.iw-tarot-menu-item {
  background: transparent;
  border: none;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.12);
  color: var(--iw-gold);
}
.iw-tarot-menu-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--iw-gold);
  opacity: 0.85;
}
.iw-tarot-menu-item:hover .iw-tarot-menu-icon {
  opacity: 1;
  color: var(--iw-text-bright);
}

/* 问事意念栏 */
.iw-tarot-intent-box {
  background: rgba(var(--iw-rgb-warm-1), 0.6);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.7);
  letter-spacing: 0.06em;
}
.iw-tarot-intent-icon {
  color: var(--iw-gold);
  font-size: 11px;
}
.iw-tarot-intent-input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--iw-paper-2);
  font-size: 12px;
  width: 100%;
}
.iw-tarot-intent-input::placeholder {
  color: rgba(var(--iw-rgb-white), 0.28);
}

/* 牌阵选项卡 */
.iw-tarot-spread-tabs {
  display: flex;
  gap: 6px;
  background: rgba(var(--iw-rgb-inset), 0.35);
  padding: 4px;
  border-radius: 6px;
  border: 1px solid rgba(var(--iw-rgb-gold), 0.12);
}
.iw-tarot-tab {
  flex: 1;
  background: transparent;
  border: none;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.14);
  color: var(--iw-gold);
  font-weight: 600;
  border: 1px solid rgba(var(--iw-rgb-gold), 0.3);
}
.iw-tarot-tab.is-active .iw-tarot-tab-dot {
  background: var(--iw-gold);
  box-shadow: 0 0 6px var(--iw-gold);
}
.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(var(--iw-rgb-white), 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: var(--iw-gold);
  letter-spacing: 0.04em;
}
.iw-tarot-slot-desc {
  font-size: 8.5px;
  color: rgba(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.28);
  background: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 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(var(--iw-rgb-black), 0.85), 0 0 12px rgba(var(--iw-rgb-gold), 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, var(--iw-warm-2) 0%, var(--iw-warm-0) 100%);
  border: 1.5px solid var(--iw-gold);
  padding: 4px;
}
.iw-tarot-back-frame {
  width: 100%;
  height: 100%;
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.08) 0%, transparent 75%);
}
.iw-tarot-back-core {
  color: var(--iw-gold);
  opacity: 0.85;
}
.iw-tarot-back-ribbon {
  font-size: 8px;
  font-family: "ShareTechMono", monospace;
  color: rgba(var(--iw-rgb-gold), 0.5);
  letter-spacing: 0.18em;
}

/* 牌面：翻转 180° 展示 */
.iw-tarot-front {
  background: linear-gradient(180deg, var(--iw-warm-3) 0%, var(--iw-warm-1) 100%);
  border: 1.5px solid var(--iw-gold);
  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(var(--iw-rgb-gold), 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: var(--iw-gold);
}
.iw-tarot-front-badge {
  font-size: 8px;
  padding: 1px 4px;
  border-radius: 3px;
  font-weight: 600;
}
.iw-tarot-front-badge.is-up {
  background: rgba(var(--iw-rgb-gold), 0.15);
  color: var(--iw-gold);
}
.iw-tarot-front-badge.is-rev {
  background: rgba(212, 74, 74, 0.2);
  color: var(--iw-state-danger);
  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: var(--iw-gold);
  filter: drop-shadow(0 0 10px rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.2);
  padding-top: 5px;
  padding-bottom: 2px;
}
.iw-tarot-front-title {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--iw-paper-2);
  letter-spacing: 0.04em;
}
.iw-tarot-front-en {
  display: none;
}
/* 横向全宽流光牌河抽牌区 */
.iw-tarot-tray {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: rgba(var(--iw-rgb-warm-0), 0.75);
  border: 1px solid rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  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, var(--iw-warm-2) 0%, var(--iw-warm-0) 100%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.6);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.3); }
.iw-tarot-stack-card.c-base2 { transform: translate(3px, 1.5px) rotate(2deg); opacity: 0.7; border-color: rgba(var(--iw-rgb-gold), 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 var(--iw-gold);
  box-shadow: 0 6px 16px rgba(var(--iw-rgb-black), 0.8), 0 0 12px rgba(var(--iw-rgb-gold), 0.15);
  background: linear-gradient(145deg, var(--iw-warm-3) 0%, var(--iw-warm-0) 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(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 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(var(--iw-rgb-gold), 0.3) transparent;
}
.iw-tarot-river-viewport::-webkit-scrollbar {
  height: 4px;
}
.iw-tarot-river-viewport::-webkit-scrollbar-thumb {
  background: rgba(var(--iw-rgb-gold), 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, var(--iw-warm-2) 0%, var(--iw-warm-0) 100%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.7);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(var(--iw-rgb-black), 0.75), inset 0 0 8px rgba(var(--iw-rgb-black), 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(var(--iw-rgb-gold), 0.15) 0%, transparent 100%);
  pointer-events: none;
}

.iw-tarot-river-card-edge {
  position: absolute;
  inset: 2px;
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.3);
}

.iw-tarot-river-card-star {
  color: var(--iw-gold);
  font-size: 11px;
}

/* 底部轻提示 */
.iw-tarot-river-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 9.5px;
  color: rgba(var(--iw-rgb-white), 0.32);
  letter-spacing: 0.03em;
  padding-top: 2px;
}
.iw-tarot-river-hint-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(var(--iw-rgb-gold), 0.5);
}

/* 底部神谕抽屉 */
.iw-tarot-oracle-drawer {
  background: rgba(var(--iw-rgb-warm-1), 0.9);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 8px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 12px 32px rgba(var(--iw-rgb-black), 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: var(--iw-gold);
  letter-spacing: 0.04em;
}
.iw-tarot-oracle-spark {
  color: var(--iw-gold);
}
.iw-tarot-oracle-ai-trigger {
  display: flex;
  justify-content: center;
  padding: 16px 0 8px;
}
.iw-tarot-oracle-ai-btn {
  background: rgba(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.28);
  color: var(--iw-gold);
  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: var(--iw-text-bright);
  border-color: var(--iw-gold);
  background: rgba(var(--iw-rgb-gold), 0.16);
  box-shadow: 0 0 14px rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  letter-spacing: 0.03em;
}
.iw-tarot-oracle-card-rev-tag {
  font-size: 12px;
  font-weight: 400;
  color: var(--iw-text-bright);
  margin-left: 2px;
  opacity: 0.88;
}
.iw-tarot-oracle-card-note {
  font-size: 11px;
  line-height: 1.5;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  font-size: 11px;
}
.iw-tarot-ai-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--iw-gold);
  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: var(--iw-gold);
  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(var(--iw-rgb-gold), 0.8));
    color: var(--iw-paper-0);
  }
}
.iw-tarot-loading-txt {
  font-size: 11px;
  color: rgba(var(--iw-rgb-gold), 0.65);
  letter-spacing: 0.05em;
  font-style: italic;
}
.iw-tarot-ai-body {
  font-size: 11.5px;
  line-height: 1.65;
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  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: var(--iw-text-bright);
  text-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 0.6);
}

/* =======================================
   全览牌库弹窗（秘契档案卷轴）
   ======================================= */
.iw-tarot-viewer-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(var(--iw-rgb-warm-0), 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: var(--iw-warm-1);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-black), 0.8), 0 0 30px rgba(var(--iw-rgb-gold), 0.15);
  overflow: hidden;
  position: relative;
}

.iw-tarot-viewer-header {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(var(--iw-rgb-gold), 0.03);
}
.iw-tarot-viewer-header-spacer {
  width: 28px;
  height: 28px;
}
.iw-tarot-viewer-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--iw-paper-1);
  letter-spacing: 0.05em;
  font-family: "Georgia", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;
  text-shadow: 0 0 12px rgba(var(--iw-rgb-gold), 0.3);
  text-align: center;
}
.iw-tarot-viewer-close-btn {
  background: transparent;
  border: 1px solid rgba(var(--iw-rgb-gold), 0.25);
  color: rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  color: var(--iw-text-bright);
  background: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-warm-1), 0.85);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.5) 30%, var(--iw-gold) 50%, rgba(var(--iw-rgb-gold), 0.5) 70%, transparent 100%);
  opacity: 0.8;
}
.iw-tarot-viewer-suit-card:hover {
  border-color: rgba(var(--iw-rgb-gold), 0.45);
  background: rgba(var(--iw-rgb-warm-3), 0.95);
  box-shadow: 0 4px 16px rgba(var(--iw-rgb-black), 0.4);
}
.iw-tarot-viewer-suit-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 1px dashed rgba(var(--iw-rgb-gold), 0.18);
  padding-bottom: 6px;
}
.iw-tarot-viewer-suit-card-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--iw-paper-1);
  letter-spacing: 0.04em;
}
.iw-tarot-viewer-suit-card-classic {
  font-size: 11px;
  color: rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.78);
}
.iw-tarot-viewer-suit-card-lbl {
  color: var(--iw-gold);
  font-weight: 600;
}

/* 分类 Tab */
.iw-tarot-viewer-tabs {
  padding: 8px 18px;
  display: flex;
  gap: 6px;
  border-bottom: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.2);
  color: rgba(var(--iw-rgb-white), 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: var(--iw-gold);
  border-color: rgba(var(--iw-rgb-gold), 0.4);
}
.iw-tarot-viewer-tab.is-active {
  background: rgba(var(--iw-rgb-gold), 0.15);
  border-color: var(--iw-gold);
  color: var(--iw-paper-1);
  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(var(--iw-rgb-gold), 0.25) transparent;
}
.iw-tarot-viewer-body::-webkit-scrollbar {
  width: 5px;
}
.iw-tarot-viewer-body::-webkit-scrollbar-thumb {
  background: rgba(var(--iw-rgb-gold), 0.25);
  border-radius: 3px;
}

/* 常规卡片条目：神秘学秘契卡片风格 */
.iw-tarot-viewer-card {
  position: relative;
  flex-shrink: 0;
  background: rgba(var(--iw-rgb-warm-1), 0.82);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-gold), 0.35) 25%, rgba(var(--iw-rgb-gold), 0.6) 50%, rgba(var(--iw-rgb-gold), 0.35) 75%, transparent 100%);
  opacity: 0.6;
}
.iw-tarot-viewer-card:hover {
  border-color: rgba(var(--iw-rgb-gold), 0.38);
  background: rgba(var(--iw-rgb-warm-3), 0.95);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(var(--iw-rgb-black), 0.4), 0 0 16px rgba(var(--iw-rgb-gold), 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%, var(--iw-paper-1) 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: var(--iw-gold);
  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: var(--iw-paper-1);
  letter-spacing: 0.04em;
  text-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 0.2);
  white-space: nowrap;
}
.iw-tarot-viewer-card-orig {
  font-size: 10px;
  color: rgba(var(--iw-rgb-gold), 0.85);
  background: rgba(var(--iw-rgb-gold), 0.08);
  border: 1px solid rgba(var(--iw-rgb-gold), 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(var(--iw-rgb-white), 0.75);
  line-height: 1.55;
  letter-spacing: 0.01em;
}
.iw-tarot-viewer-card-meaning {
  font-size: 11px;
  color: rgba(var(--iw-rgb-gold), 0.72);
  line-height: 1.5;
  font-style: italic;
  padding-top: 2px;
}

/* 专属核心神谕卡片（高亮金边华丽款） */
.iw-tarot-viewer-card.is-special {
  background: linear-gradient(135deg, rgba(var(--iw-rgb-warm-amber), 0.92) 0%, rgba(var(--iw-rgb-warm-1), 0.98) 100%);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.45);
  box-shadow: 0 6px 24px rgba(var(--iw-rgb-black), 0.5), 0 0 24px rgba(var(--iw-rgb-gold), 0.15), inset 0 0 30px rgba(var(--iw-rgb-gold), 0.08);
  padding: 16px 18px;
}
.iw-tarot-viewer-card.is-special::before {
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--iw-gold) 25%, #fff 50%, var(--iw-gold) 75%, transparent 100%);
  opacity: 1;
}
.iw-tarot-viewer-card-badge {
  font-size: 10px;
  color: var(--iw-gold);
  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: var(--iw-text-bright);
  text-shadow: 0 0 10px rgba(var(--iw-rgb-gold), 0.4);
}
.iw-tarot-viewer-detail-box {
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px dashed rgba(var(--iw-rgb-gold), 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: var(--iw-gold);
  font-weight: 600;
  white-space: nowrap;
}
.iw-tarot-viewer-detail-val {
  color: rgba(var(--iw-rgb-white), 0.82);
}
.iw-tarot-viewer-empty {
  text-align: center;
  padding: 40px 0;
  color: rgba(var(--iw-rgb-white), 0.35);
  font-size: 12px;
}

/* ============================================================
   第十一款卡带：翻转棋 / 黑白棋（ROM.03-K // REVERSI）—— 对齐五子棋 UI 架构
   ============================================================ */

/* 根容器（复用五子棋布局）*/
.iw-reversi-container {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 2px 12px;
}

/* 顶部标题行与状态仪 */
.iw-reversi-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.iw-reversi-title-group {
  flex: 1;
  min-width: 0;
}

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

.iw-reversi-title {
  font-family: "ShareTechMono", "SF Mono", monospace;
  font-size: 16px;
  font-weight: 700;
  color: var(--iw-text-bright);
  letter-spacing: 0.5px;
}

.iw-reversi-subtitle {
  font-size: 10px;
  color: var(--iw-gold);
  font-family: "ShareTechMono", monospace;
  opacity: 0.85;
}

/* 状态仪：STAGE + TURN + COUNT */
.iw-reversi-status-strip {
  display: flex;
  align-items: center;
  gap: 6px;
}

.iw-reversi-counter-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 5px 8px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 0.06);
  border-radius: 6px;
  min-width: 50px;
}

.iw-reversi-counter-lbl {
  font-size: 8.5px;
  font-family: "ShareTechMono", monospace;
  color: rgba(var(--iw-rgb-white), 0.45);
  letter-spacing: 0.8px;
}

.iw-reversi-counter-num {
  font-size: 13px;
  font-weight: 600;
  font-family: "ShareTechMono", monospace;
  color: var(--iw-gold);
  letter-spacing: 0.3px;
}

/* 独立全宽操作栏：剧情 + 重构推演 + 提示 + 悔棋 + 重开 */
.iw-reversi-actions-toolbar {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  background: rgba(var(--iw-rgb-white), 0.015);
  border: 1px solid rgba(var(--iw-rgb-white), 0.04);
  border-radius: 7px;
}

.iw-reversi-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 9px;
  background: rgba(var(--iw-rgb-white), 0.03);
  border: 1px solid rgba(var(--iw-rgb-white), 0.08);
  border-radius: 5px;
  color: rgba(var(--iw-rgb-white), 0.7);
  font-size: 10.5px;
  cursor: pointer;
  transition: all 0.2s;
}

.iw-reversi-tool-btn:hover {
  background: rgba(var(--iw-rgb-gold), 0.08);
  border-color: rgba(var(--iw-rgb-gold), 0.25);
  color: var(--iw-gold);
}

.iw-reversi-tool-btn svg {
  width: 12px;
  height: 12px;
}

.iw-reversi-regen-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border: 1px solid rgba(var(--iw-rgb-gold), 0.2);
  border-radius: 5px;
  background: rgba(var(--iw-rgb-gold), 0.05);
  color: var(--iw-gold);
  font-size: 10.5px;
  cursor: pointer;
  transition: all 0.25s;
}

.iw-reversi-regen-link:hover {
  background: rgba(var(--iw-rgb-gold), 0.12);
  border-color: rgba(var(--iw-rgb-gold), 0.35);
}

.iw-reversi-regen-icon {
  font-size: 13px;
  font-weight: 600;
}

/* 对手状态卡片与对弈心声气泡 */
.iw-reversi-rival-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: linear-gradient(135deg, rgba(var(--iw-rgb-gold), 0.03), rgba(var(--iw-rgb-gold), 0.01));
  border: 1px solid rgba(var(--iw-rgb-gold), 0.12);
  border-radius: 8px;
}

.iw-reversi-rival-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(var(--iw-rgb-gold), 0.15), rgba(var(--iw-rgb-gold), 0.05));
  border: 1.5px solid rgba(var(--iw-rgb-gold), 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.iw-reversi-rival-avatar-inner {
  font-size: 16px;
  font-weight: 700;
  color: var(--iw-gold);
  font-family: "ShareTechMono", monospace;
}

.iw-reversi-rival-info {
  flex: 1;
  min-width: 0;
}

.iw-reversi-rival-name-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 4px;
}

.iw-reversi-rival-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--iw-text-bright);
  letter-spacing: 0.3px;
}

.iw-reversi-rival-role {
  font-size: 10px;
  color: rgba(var(--iw-rgb-gold), 0.7);
  font-family: "ShareTechMono", monospace;
}

.iw-reversi-rival-quote-bubble {
  padding: 6px 10px;
  background: rgba(var(--iw-rgb-inset), 0.25);
  border: 1px solid rgba(var(--iw-rgb-gold), 0.15);
  border-radius: 6px;
  font-size: 11px;
  color: rgba(var(--iw-rgb-white), 0.75);
  line-height: 1.4;
  opacity: 0;
  transform: translateY(-4px);
  transition: all 0.3s ease;
}

.iw-reversi-rival-quote-bubble.is-active {
  opacity: 1;
  transform: translateY(0);
}

.iw-reversi-rival-quote-bubble.is-hidden {
  display: none;
}

/* 8×8 标准黑白棋盘 Canvas 宿主（1:1 正方形） */
.iw-reversi-board-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  overflow: hidden;
  background: var(--iw-cool-2);
  border: 2px solid rgba(var(--iw-rgb-gold), 0.15);
  box-shadow: 0 2px 10px rgba(var(--iw-rgb-black), 0.3), inset 0 0 20px rgba(var(--iw-rgb-gold), 0.03);
  position: relative;
}

.iw-reversi-canvas {
  width: 100%;
  height: 100%;
  display: block;
  cursor: pointer;
  touch-action: none;
}

/* 底部状态说明条 */
.iw-reversi-bottom-tip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: rgba(var(--iw-rgb-white), 0.02);
  border: 1px solid rgba(var(--iw-rgb-white), 0.05);
  border-radius: 6px;
}

.iw-reversi-name-tag {
  font-family: "ShareTechMono", monospace;
  font-size: 11px;
  color: var(--iw-gold);
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.iw-reversi-tip-sep {
  color: rgba(var(--iw-rgb-white), 0.2);
  font-size: 8px;
}

#iw-reversi-tip-desc {
  font-size: 10.5px;
  color: rgba(var(--iw-rgb-white), 0.45);
  line-height: 1.3;
}

/* 翻转棋页面容器（对齐五子棋架构）*/
.iw-reversi-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
