/* ============================================================
   Phase 6 表现层 — 像素字体 + Pixi 画布层级
   - Fusion Pixel 12px：开源像素字体，含 ASCII 拉丁/数字 + 简中 + ♠♥♦♣（实测 36511 字形）
   - 缺 emoji（🤡🃏💀…）→ 字体链末尾追加系统 emoji 字体兜底，绝不豆腐块
   - 双持久画布层级：#pixi-bg(z-index:-1 透出透明 play 区) / #pixi-fx(z-index:250)，全程 pointer-events:none
   ============================================================ */

@font-face {
  font-family: 'FusionPixel';
  src: url('/fonts/fusion-pixel-12px.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap; /* 先出 Noto 再换像素，不阻塞首屏（避免 FOIT） */
}

:root {
  /* 像素字体链：FusionPixel 命中拉丁/数字/CJK/花色；漏字落 Noto；emoji 落系统彩色字体 */
  --pixel-font-stack: 'FusionPixel', 'Noto Sans SC', 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif;
}

/* ========== Pixi 画布层级（pointer-events:none 是输入红线：物理上不可能吞 DOM 点击）========== */
#pixi-bg {
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;            /* 高于 #swirl-bg(-2)、低于 .blt-game(1)：透出透明的对局屏 .play */
  pointer-events: none;
  display: block;
}
#pixi-fx {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 250;           /* 高于卡 hover(30)/score-float(20)；低于 tooltip(1000)/toast(999)/sa-overlay(900) */
  pointer-events: none;
  display: block;
}

/* ========== 像素字体全局开关（由 fonts.js 在 PIXI_ENABLED 时加 body.pixel-ui）==========
   通用 !important 覆盖：现有 CSS 多处硬编码 'Noto Sans SC'，逐字形回退处理 CJK/emoji/花色。
   移除 .pixel-ui 即一键回退 Noto，可逆。 */
body.pixel-ui,
body.pixel-ui * {
  font-family: var(--pixel-font-stack) !important;
}

/* 像素字体在小字号下开启点阵清晰渲染（关闭抗锯齿插值，保像素颗粒感）*/
body.pixel-ui {
  -webkit-font-smoothing: none;
  font-smooth: never;
}

/* ============================================================
   P5：Pixi 运行时让出 edition「移动高光」给 #pixi-fx，避免双重闪光
   - 仅作用对局屏 .play（card-fx 也只在 playing 激活）；商店/选牌屏保留 CSS 闪光
   - 仅 foil/holo/polychrome 的动画 sheen 层；保留 edition 的边框/辉光（仍用于辨识）
   - negative 不受影响（Pixi 不打亮它，CSS 继续负责）
   - body 无 .pixi-on（Pixi 未启用/降级）时本段全不命中 → CSS 闪光照常，零回退损失
   ============================================================ */
/* foil/poly 卡的 ::after/::before 仅是动画 sheen，可整层关掉 */
body.pixi-on .play .card.foil::after,
body.pixi-on .play .card.holo::after,
body.pixi-on .play .card.polychrome::after {
  animation: none !important;
  opacity: 0 !important;
}
/* 小丑 edition 已统一为设计稿 .jcard.ed-*（纯 box-shadow 静态辉光、无动画、无 .jk-ed-ring 描边层）：
   pixi-on 下本就无小丑 edition 动画需要抑制，旧 .joker-card/.jk-ed-ring 抑制规则退役 */
/* holo 卡的彩虹边框 identity 全在 ::before（base 是 border-color:transparent）：
   只停 holoShift 色相循环，保留静态彩虹边——绝不可 opacity:0（否则 holo 卡丢失辨识度，Pixi 只扫高光不画边）*/
body.pixi-on .play .card.holo::before {
  animation: none !important;
}
/* polychrome 卡背景的流动渐变停掉动画，保留静态底色以辨识 */
body.pixi-on .play .card.polychrome {
  animation: none !important;
}
