/* Loaded after component styles so reduced-motion rules cannot be overwritten. */
body.no-anim .card, body.no-anim .folder-items { transition: none; }
body.no-anim .readme-button, body.no-anim .mode-glider { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .card, .folder-items { transition: none; }
  .readme-button, .mode-glider { transition: none; }
  .explanation-container { animation: none; }
}

/* 2026-10-08（需求 §3 / §4.2.3）：抽屉与遮罩同属动效，减少动态效果下必须**直接到位**。
 * 背景：`settings-controller` 的「收起抽屉 → 再展示背题提示」用的是**真实过渡信号**
 * （`src/ui/drawer-transition.js` 读 computed `transition-duration`）。若只把 JS 侧的
 * `immediate` 置真、CSS 仍留 0.4s 过渡，就会出现「提示已经出现、面板还在往下滑」的错位；
 * 反过来，只加 CSS 不加 `immediate` 也能靠 computed duration = 0 走同步分支 —— 两条都留，
 * 是为了让「读不到 computed style」的环境（老浏览器 / 测试替身）也有确定行为。
 * ⚠️ 判据与 `progress-notice.js` 的 `reduced()` 完全一致：`no-anim` 类 **或** 系统偏好。 */
body.no-anim .drawer-panel,
body.no-anim .bottom-drawer,
body.no-anim .drawer-mask { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .drawer-panel, .bottom-drawer, .drawer-mask { transition: none; }
}
