/* ===== 视觉魔改语法层（spec §4；红/墨/绿零新增色；批 1：tokens+导航+页脚+总闸）=====
   命名纪律：本文件选择器只允许 ① 既有类名的增强（同特异性后加载获胜）
   ② .m-* 新类。禁裸标签选择器（防污染案例 SPA）。 */

:root {
  --m-ease: cubic-bezier(.16, 1, .3, 1);   /* langalpha --la-ease 同款 */
  --m-dur-in: .55s;
  --m-reveal-y: 18px;                        /* 渐显位移 SSOT（代码轮 R4：main.css 与 .m-stagger-in 同源引用） */
}

/* ── 导航：吸顶 + 毛玻璃（nav.hbs 零字节改动；覆盖 main.css:98 的 .nav）──
   ★ 已知冲突（审计轮 2 实锤）：main.css:20 有 `html, body { overflow-x: hidden }`，
   body 因此成为 scrollport 而自身不滚动 → sticky 恒失效。解法：改 `overflow-x: clip`
   ——clip 不生成滚动容器，sticky 恢复工作；不支持 clip 的老浏览器保持 hidden 行为
   （= 导航不吸顶，渐进增强降级，无破坏）。
   ★ 阴影静态常驻（不做滚动渐入——那需 JS，批 1 导航零 JS；0.3s 渐入取消已入账）。 */
html, body { overflow-x: clip; }
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 rgba(17, 17, 17, .05);
}
/* active 下划线：**保留既有墨色**（main.css:121 不动）——2026-08-06 裁决（main.css:118-120
   注释）：红只留给「登录引擎」动作，当前项用墨色+下划线表示状态。motion.css 不碰
   .is-current（A21 已修订为 A21r）。 */

/* ── 页脚抛光（footer.hbs 零字节改动；不动 .footer 的 padding——main.css:185 的
   ≤900px 88px 底部避让是回顶钮让位，覆盖会压字，审计实锤；分栏化推迟批 3，DECISIONS A22）── */
.footer-desc { display: block; margin-top: 8px; font-size: var(--text-caption); color: var(--muted); max-width: 34em; }
.footer-copy { color: var(--muted); font-size: var(--text-caption); }

/* ── 入场错峰工具类（reveal-bridge.mjs 消费；代码轮订正：隐藏态不再预挂 CSS——
   .m-stagger-in 由模块在 JS 活着时写入，完成态 .m-in 常驻，无 fill 锁、无重播）── */
.js-motion .m-stagger-in {
  opacity: 0;
  transform: translateY(var(--m-reveal-y, 18px));
  transition: opacity var(--m-dur-in, .55s) var(--m-ease, cubic-bezier(.16, 1, .3, 1)),
              transform var(--m-dur-in, .55s) var(--m-ease, cubic-bezier(.16, 1, .3, 1));
}
.js-motion .m-stagger-in.m-in { opacity: 1; transform: none; }

/* ── reduced-motion 总闸（CSS 侧；JS 侧在 motion/index.mjs，双闸）── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .js-motion .m-stagger-in { opacity: 1; transform: none; }  /* 落点=静态可见（铁律 4） */
}
