/* Hub/list scroll reveal overrides (shared with home-reveal in home-v2.css) */
.home-reveal .scheme-carousel.home-reveal-item,
.home-reveal .carousel-viewport.home-reveal-item {
  transform: none;
}
.home-reveal.is-inview .scheme-carousel.home-reveal-item,
.home-reveal.is-inview .carousel-viewport.home-reveal-item {
  transform: none;
}

/* 工程案例列表：主内容首屏即见，禁止渐现把整块 grid 隐成空白 */
.cs-page #csCaseList .list-section.home-reveal,
.cs-page #csCaseList .list-section .home-reveal-item,
.cs-page #csCaseList .list-section .grid {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* 工程案例综合页（AI/音视频案例区）：网格不隐藏，仅标题可渐现，避免超高 section 滚过空白 */
.cs-page .cs-hub-grid-section .grid.home-reveal-item,
.cs-page .cs-hub-grid-section .view-all-wrap.home-reveal-item {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* ===== Banner 文案：自下而上渐现（标题 / 简介 / 按钮等） ===== */
@keyframes hero-rise-in {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.hero-rise-item {
  animation: hero-rise-in 0.72s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: var(--rise-delay, 0ms);
  will-change: opacity, transform;
}
/* 方案/案例/算法详情 Banner：更快、更齐的入场，减少参差感 */
.detail-hero__inner .hero-rise-item--sync,
.algo-d-hero-text .hero-rise-item--sync {
  animation-duration: 0.52s;
  animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);
}
@media (prefers-reduced-motion: reduce) {
  .hero-rise-item {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Banner 文案：随页面滚动上移淡出（由 reveal-v2.js 写入 transform/opacity） */
.hero-scroll-fx-active,
.hero-scroll-fx-wrap {
  will-change: transform, opacity;
}
.hero-scroll-fx-wrap {
  display: block;
  width: 100%;
  box-sizing: border-box;
}
@media (prefers-reduced-motion: reduce) {
  .hero-scroll-fx-active,
  .hero-scroll-fx-wrap {
    transform: none !important;
    opacity: 1 !important;
  }
}

/* ===== 详情页面板：进视口小位移渐现（产品 / 算法 / 方案 / 案例） ===== */
.detail-panel-reveal {
  opacity: 0;
  transform: translateY(22px);
}
/* 先落到隐藏态再开 transition，避免首屏合成直接跳过 opacity:0 */
.detail-panel-reveal.is-ready {
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.detail-panel-reveal.is-inview {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .detail-panel-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
