/* =========================================
   Scroll Reveal 滚动渐显
   - 进入视口时，文字 / 图片淡入 + 轻微上移
   - 由 js/scroll-reveal.js 自动给主要内容元素打标
   - 已规避 banner / service / work-process / gallery / header / footer 等
     由 GSAP 或自定义动画控制的区块
   ========================================= */

/* 隐藏初始状态：透明 + 较明显位移
   --sr-translate-y 由 JS 根据滚动方向动态设定：
     - 默认 60px：从下方升起淡入
     - 负值（如 -60px）：从上方滑下淡入（用户向上滚回时使用） */
.is-sr {
  --sr-translate-y: 60px;
  opacity: 0;
  transform: translate3d(0, var(--sr-translate-y), 0);
  transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  transition-delay: var(--sr-delay, 0s);
  will-change: opacity, transform;
}

/* 进入视口：还原 */
.is-sr.is-sr-in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* 动画结束后释放合成层，减轻边缘反复显隐时的 GPU 闪烁 */
.is-sr.is-sr-in.is-sr-done {
  will-change: auto;
}

/* 横向变体（可通过 data-sr="left" / "right" 启用） */
.is-sr[data-sr='left'] {
  transform: translate3d(-48px, 0, 0);
}
.is-sr[data-sr='right'] {
  transform: translate3d(48px, 0, 0);
}
.is-sr[data-sr='fade'] {
  transform: none;
}
.is-sr.is-sr-in[data-sr='left'],
.is-sr.is-sr-in[data-sr='right'],
.is-sr.is-sr-in[data-sr='fade'] {
  transform: translate3d(0, 0, 0);
}

/* 移动端：位移幅度按 rem 适配 */
@media (max-width: 768px) {
  .is-sr {
    --sr-translate-y: 0.4rem;
    transition-duration: 0.75s;
  }

  .is-sr[data-sr='left'] {
    transform: translate3d(-0.32rem, 0, 0);
  }
  .is-sr[data-sr='right'] {
    transform: translate3d(0.32rem, 0, 0);
  }

  /* H5 Preface 文案滑动入场：位移 + 缩放 + 模糊 + 错位 */
  .preface .is-sr {
    transform: translate3d(0, 0.6rem, 0) scale(0.96);
    filter: blur(0.08rem);
    transition-property: opacity, transform, filter;
    transition-duration: 0.65s;
    transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  .preface .is-sr.is-sr-in {
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }

  .preface .preface__subtitle.is-sr {
    --sr-delay: 0.1s;
  }
}

/* PC 端 Preface 文案滑动入场：加强版（更大位移 + 缩放 + 模糊 + 错位） */
@media (min-width: 769px) {
  .preface .is-sr {
    transform: translate3d(0, 120px, 0) scale(0.92);
    filter: blur(12px);
    transition-property: opacity, transform, filter;
    transition-duration: 0.65s;
    transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  .preface .is-sr.is-sr-in {
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
  }

  /* 副标题比主标题晚出现，制造层次感 */
  .preface .preface__subtitle.is-sr {
    --sr-delay: 0.1s;
  }
}

/* 系统级动效减弱偏好：直接显示，无动画 */
@media (prefers-reduced-motion: reduce) {
  .is-sr {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
