@charset "utf-8";
/*
 * home-fallback.css — 首页 SSR 兜底/入场动画门控（期4）。
 *
 * 背景（决策 #123 §2 + 平台验收口径）：原版 home_css3.css 把 hero 内容与各区块初始态
 * 置为 opacity:0（依赖 index_3d.js / index.js 运行后加 .on 入场）。平台要求 SSR 静态兜底
 * —— 无 JS / JS 异常 / 无 WebGL 时内容必须可见（搜索引擎与降级环境看到完整内容）。
 *
 * 门控方案：html 级 JS 能力类 keel-js（KeelSiteHeader 页首第一条内联打上，先于正文解析）。
 *   - 无 keel-js（无 JS）：以下 !important 规则覆盖原版初始隐藏 → 全可见（SSR 兜底）。
 *   - 有 keel-js：html.keel-js 选择器（特异性高于原版单/双类规则）精确复刻原版初始态与
 *     .on 入场终态，动画行为与原版逐字节一致（index.js scrollbox 滚动入场 / index_3d
 *     hero 入场时序）。
 * 保险：home.vue 输出兜底 watchdog（无 WebGL 或 3D 链 12s 未 reveal → 强制 .on 全可见），
 * 对应「无 WebGL 环境下兜底帧可见」验收项。
 *
 * 预载层（.load/.loading-bar/.loading-bg）：原版全屏加载动画与 SSR 兜底冲突，期4 以
 * display:none 内联 stub 输出（index_3d/index.js 引用不炸），加载期视觉差异见 PORTING 期4。
 */

/* ---- 无 JS：SSR 兜底全可见（覆盖 home_css3.css 初始隐藏） ---- */
.home_part1 .cont,
.home_title > div,
.home_part2 .cont > div,
.home_part3 form ul,
.home_part3 form .but,
.home_part4 .list .item,
.home_part5 .list,
.home_part6 .cont,
.home_part6 .pic {
  opacity: 1 !important;
  transform: none !important;
}

/* ---- 有 JS：复刻原版初始态（html.keel-js 特异性 > 原版选择器，动画交给原版 JS） ---- */
html.keel-js .home_part1 .cont {
  opacity: 0;
  transform: translateY(2.08vw);
  transition: 1.5s;
}
html.keel-js .home_title > div,
html.keel-js .home_part2 .cont > div,
html.keel-js .home_part3 form ul,
html.keel-js .home_part3 form .but,
html.keel-js .home_part4 .list .item,
html.keel-js .home_part5 .list,
html.keel-js .home_part6 .cont,
html.keel-js .home_part6 .pic {
  transform: translateY(40px);
  transition: 1.5s 0s;
  opacity: 0;
}

/* ---- 有 JS：复刻原版 .on 入场终态（含原版 transition-delay 级联） ---- */
html.keel-js .home_part1 .cont.on {
  opacity: 1;
  transform: translateY(0);
}
html.keel-js .home_part2 .cont.on .d2 {
  transition-delay: 0.2s;
}
html.keel-js .home_part2 .cont.on .d3 {
  transition-delay: 0.4s;
}
html.keel-js .home_part3 form.on ul {
  transition-delay: 0.2s;
}
html.keel-js .home_part3 form.on .but {
  transition-delay: 0.4s;
}
html.keel-js .home_part4 .list.on .item:nth-child(1),
html.keel-js .home_part4 .list.on .item:nth-child(2) {
  transition-delay: 0.2s;
}
html.keel-js .home_part4 .list.on .item:nth-child(3),
html.keel-js .home_part4 .list.on .item:nth-child(4) {
  transition-delay: 0.4s;
}
html.keel-js .home_part4 .list.on .item:nth-child(5),
html.keel-js .home_part4 .list.on .item:nth-child(6) {
  transition-delay: 0.6s;
}
html.keel-js .home_part5 .list.on {
  transition-delay: 0.2s;
}
html.keel-js .home_part6 .cont.on {
  transition-delay: 0.2s;
}
html.keel-js .home_part6 .pic.on {
  transition-delay: 0.4s;
}
html.keel-js .home_title.on > div,
html.keel-js .home_part2 .cont.on > div,
html.keel-js .home_part3 form.on ul,
html.keel-js .home_part3 form.on .but,
html.keel-js .home_part4 .list.on .item,
html.keel-js .home_part5 .list.on,
html.keel-js .home_part6 .cont.on,
html.keel-js .home_part6 .pic.on {
  transform: translateY(0);
  opacity: 1;
}
