/* ============================================================
 *  i18n 启动占位 —— 消除「先英文、后闪变中文」
 * ============================================================
 *  问题：HTML 里内联的是英文兜底文案，中文/韩文由 js/i18n.js 的
 *  applyI18n() 改写。而在那之前，浏览器已经把英文画出来了
 *  （关键路径上 js/i18n/lang-*.js 约 45KB + blog/posts-meta.js 7.4KB，gzip），
 *  于是闪变。
 *
 *  做法：翻译未就绪前，把带 data-i18n 的元素设为 visibility:hidden。
 *  - 用 visibility 而非 display：保留布局，不会引起页面重排/跳动。
 *  - 由 js/i18n.js 的 applyI18n() 在改写完成后给 <html> 加 .i18n-ready 解除。
 *
 *  兜底：脚本异常时，动画在 3.5s 后强制显示，避免文案永久空白。
 *  （本站导航栏与页脚本就由 js/template.js 注入，脚本挂掉页面本就不完整，
 *    这条只是防止极端情况下出现「有框架但没文字」的观感。）
 *
 *  本文件必须在各页 <head> 里、其它样式表之后引入。
 * ============================================================ */

html:not(.i18n-ready) [data-i18n] {
  visibility: hidden;
}

@keyframes i18nBootFallback {
  to { visibility: visible; }
}

html:not(.i18n-ready) [data-i18n] {
  animation: i18nBootFallback 0s linear 3.5s forwards;
}

/* —— 导航豁免（2026-09-20，build-nav.js 烘焙后启用）——
   导航顶栏已由构建期按页面语言烘焙进 HTML（header[data-nav-baked]），
   文字即当前语言，无需等语言包就绪，直接可见：
   - visibility:visible 覆盖上面的隐藏规则（特异性更高）；
   - animation:none 撤掉 3.5s 兜底动画（导航不受其约束）。
   抽屉/搜索面板默认收起，不受影响；运行时 applyI18n 仍会把导航
   文字改写为同一语言内容，零闪变。 */
html:not(.i18n-ready) header.nav[data-nav-baked] [data-i18n] {
  visibility: visible;
  animation: none;
}
