/* ============================================================
   motion.css
   动效初始态 · .js 下的隐藏声明（初始态部分，末段会追加）
   ============================================================ */

/* ---------- 动效说明 ----------
   入场与滚动动效全部改由页尾的 GSAP 时间线驱动。
   这里只声明"GSAP 接管之前"的初始态：.js 标记由 <head> 内联脚本加上，
   无 JS / 降级时该标记不存在，内容默认全部可见，不会白屏。 */
.js .brand__mark,.js .brand__name,.js .brand__city,
.js .title,.js .subtitle,
.js .card,.js .check,.js .card__label,.js .card__result,.js .card__desc,.js .card__count,
.js .footer__mark,.js .footer__fr,.js .footer__name,.js .footer__city,
.js .scroll-cue,
.js .outro__line,.js .outro__mark,.js .outro__btn,.js .outro__fr{opacity:0}

/* ---------- 滚动揭示的初始态（动画由 GSAP 负责） ----------
   注意：隐藏的是"将被单独动画的元素"，不是章节父容器 ——
   父容器若整体隐藏，GSAP 就无从对子元素分别编排节奏。 */
.js .reveal,
.js .chapter__eyebrow,.js .chapter__title,.js .chapter__rule,
.js .prose,.js .fr,.js .verse,.js .note,
.js .outro__line,.js .outro__mark,.js .outro__btn,.js .outro__fr{opacity:0}
.js .bar__track i{transform:scaleX(0)}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important}
  .js .reveal{opacity:1 !important}
  .js .bar__track i{transform:scaleX(var(--w)) !important}
}
