/* ============================================================
 * text-sharp.css —— 根治「交互时文字先粗后细」
 *   实测：font-weight / font-size / font-family 全程不变 ✓
 *   → 是位图重新栅格化：按压缩放动画(scale) 让文字位图被缩放 → 糊(粗) → 复原(细)
 *   做法：① 所有交互只做 background/border/opacity 反馈，禁止 scale
 * ========================================================== */

/* ① 禁止任何按压缩放（app 自带的 :active / .active 也一起压掉） */
button:active, button:focus, button:focus-visible,
a:active, [role="button"]:active,
.tab:active, .tab.active,
.btn:active, .btn.active,
.sv-level:active, .sv-unit:active, .sv-row:active, .sv-card:active,
.p4-mode:active, .p4-opt:active, .p4-lv:active, .p4-chunk:active, .p4-play:active,
.lesson-item:active, .seg-btn:active, .quiz-item:active {
  transform: none !important;
  scale: none !important;
  transition-property: background-color, border-color, color, box-shadow, opacity !important;
  transition-duration: .12s !important;
}

/* ② 文字栅格化稳定：避免父级变换导致重新抗锯齿 */
:root:root body .sv-level-card, :root:root body .sv-unit, :root:root body .sv-row,
:root:root body .p4-mode, :root:root body .p4-opt,
:root:root body #tabbar .tab, :root:root body .btn {
  text-rendering: auto;
}

/* ③ 按压反馈改为底色（不缩放、不位移） */
:root:root body .sv-unit:active, :root:root body .sv-row:active,
:root:root body .p4-mode:active, :root:root body .p4-opt:active {
  background-color: rgba(143,140,224,.10) !important;
}
:root:root body .sv-level:active .sv-level-card { filter: brightness(.96) !important; }


/* ===== GLOBAL_NO_SCALE =====
   全站禁止 transform: scale —— 这是"文字变粗再变细"的根因
   （scale 会让文字位图被缩放重采样：放大→糊(粗)，复原→清晰(细)） */
[class*="btn"]:active, [class*="btn"].active,
[class*="card"]:active, [class*="card"].active,
[class*="item"]:active, [class*="item"].active,
[class*="mode"]:active, [class*="mode"].active,
[class*="opt"]:active, [class*="opt"].active,
[class*="tab"]:active, [class*="tab"].active,
[class*="seg"]:active, [class*="seg"].active,
[class*="chip"]:active, [class*="chip"].active,
[class*="pill"]:active, [class*="pill"].active {
  transform: none !important;
}
/* 播放中的动画也压掉缩放 */
.sv-press, .pressed, .tap-anim { transform: none !important; animation: none !important; }
