/**
 * reveal.css — 滚动进入视口时的入场动效
 * 由 reveal.js 驱动（IntersectionObserver），只有 html.rv-ready 时才隐藏元素，
 * 脚本未加载或加载失败时会自动恢复显示，不会出现整页空白。
 */

:root {
  --rv-ease: cubic-bezier(.16, 1, .3, 1);
  --rv-dur: .9s;
}

/* ---------- 基础状态 ---------- */
html.rv-ready [data-reveal] {
  transition:
    opacity var(--rv-dur) var(--rv-ease),
    transform var(--rv-dur) var(--rv-ease),
    filter var(--rv-dur) var(--rv-ease),
    clip-path 1.05s var(--rv-ease);
  transition-delay: var(--rv-delay, 0ms);
  backface-visibility: hidden;
}

html.rv-ready [data-reveal]:not(.is-visible) {
  opacity: 0;
}

html.rv-ready [data-reveal].is-visible {
  opacity: 1;
  transform: none;
  filter: none;
}

/* clip-path 只给遮罩类效果用。
   内页 .content_about 等容器因浮动子元素高度塌陷为 0，若给它加
   clip-path: inset(0)，裁剪框也是 0 高，会把里面所有浮动卡片全部裁掉
   （表现为计算样式 opacity=1 却整片空白）。首页元素高度正常所以不易发现。 */
html.rv-ready [data-reveal="mask"].is-visible,
html.rv-ready [data-reveal="mask-up"].is-visible {
  clip-path: inset(0 0 0 0);
}

/* ---------- 入场效果 ---------- */
html.rv-ready [data-reveal="up"]:not(.is-visible) {
  transform: translate3d(0, 72px, 0) scale(.965);
  filter: blur(8px);
}
html.rv-ready [data-reveal="down"]:not(.is-visible) {
  transform: translate3d(0, -72px, 0) scale(.965);
  filter: blur(8px);
}
html.rv-ready [data-reveal="left"]:not(.is-visible) {
  transform: translate3d(-110px, 26px, 0) rotateY(15deg);
  filter: blur(6px);
  transform-origin: left center;
}
html.rv-ready [data-reveal="right"]:not(.is-visible) {
  transform: translate3d(110px, 26px, 0) rotateY(-15deg);
  filter: blur(6px);
  transform-origin: right center;
}
html.rv-ready [data-reveal="zoom"]:not(.is-visible) {
  transform: scale(.76) rotateX(11deg);
  filter: blur(10px);
}
html.rv-ready [data-reveal="flip"]:not(.is-visible) {
  transform: perspective(1100px) rotateY(-62deg) translateZ(-70px);
  transform-origin: left center;
  filter: blur(5px);
}
html.rv-ready [data-reveal="blur"]:not(.is-visible) {
  transform: scale(1.07);
  filter: blur(24px);
}
html.rv-ready [data-reveal="rise"]:not(.is-visible) {
  transform: translate3d(0, 120px, 0) rotateX(-22deg);
  transform-origin: center top;
  filter: blur(6px);
}
/* 遮罩擦除：用 clip-path 从左到右 / 从下往上揭示，不做位移动画 */
html.rv-ready [data-reveal="mask"]:not(.is-visible) {
  clip-path: inset(0 100% 0 0);
  opacity: 1;
}
html.rv-ready [data-reveal="mask-up"]:not(.is-visible) {
  clip-path: inset(100% 0 0 0);
  opacity: 1;
}

/* ---------- 光带掠过 ---------- */
.rv-shine { position: relative; }
html.rv-ready .rv-shine { overflow: hidden; }
html.rv-ready .rv-shine::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(105deg,
      transparent 32%,
      rgba(255, 255, 255, .48) 48%,
      rgba(255, 255, 255, .12) 56%,
      transparent 70%);
  transform: translateX(-130%);
}
html.rv-ready .rv-shine.is-visible::after {
  animation: rvShine 1.15s var(--rv-ease) var(--rv-delay, 0ms) both;
}
@keyframes rvShine {
  to { transform: translateX(130%); }
}

/* ---------- 标题组合：擦除 + 装饰线生长 + 中英文分层淡入 ---------- */
html.rv-ready .rv-title .product_title_box_cn,
html.rv-ready .rv-title .product_title_box_en,
html.rv-ready .rv-title .youshi_2_title_2,
html.rv-ready .rv-title .youshi_2_title_3,
html.rv-ready .rv-title .youshi_2_title_4 {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity .8s var(--rv-ease), transform .8s var(--rv-ease);
}
html.rv-ready .rv-title .product_title_box_line,
html.rv-ready .rv-title .youshi_1_top_2_line {
  transform: scaleX(0);
  transform-origin: center center;
  transition: transform 1.1s var(--rv-ease) .3s;
}
html.rv-ready .rv-title.is-visible .product_title_box_line,
html.rv-ready .rv-title.is-visible .youshi_1_top_2_line {
  transform: scaleX(1);
}
html.rv-ready .rv-title.is-visible .product_title_box_cn,
html.rv-ready .rv-title.is-visible .youshi_2_title_2 {
  opacity: 1; transform: none; transition-delay: .16s;
}
html.rv-ready .rv-title.is-visible .product_title_box_en,
html.rv-ready .rv-title.is-visible .youshi_2_title_3 {
  opacity: 1; transform: none; transition-delay: .3s;
}
html.rv-ready .rv-title.is-visible .youshi_2_title_4 {
  opacity: 1; transform: none; transition-delay: .44s;
}

/* ---------- 序号弹入 ---------- */
html.rv-ready [data-reveal="flip"] .youshi_2_info_1_title_icon_nub,
html.rv-ready [data-reveal].rv-pop .youshi_2_info_1_title_icon_nub {
  display: inline-block;
  transform: scale(.4) rotate(-12deg);
  opacity: 0;
  transition: transform .7s cubic-bezier(.34, 1.56, .64, 1) .4s, opacity .5s ease .4s;
}
html.rv-ready [data-reveal="flip"].is-visible .youshi_2_info_1_title_icon_nub,
html.rv-ready [data-reveal].rv-pop.is-visible .youshi_2_info_1_title_icon_nub {
  transform: none; opacity: 1;
}

/* ---------- 卡片 / 图片的细节增强 ---------- */
html.rv-ready .product_s_center_box_img_box img,
html.rv-ready .product_c_center_box img {
  transition: transform .65s var(--rv-ease), filter .65s ease;
}
html.rv-ready .product_s_center_box:hover .product_s_center_box_img_box img,
html.rv-ready .product_c_center_box:hover img {
  transform: scale(1.09) rotate(-1.2deg);
  filter: saturate(1.25) brightness(1.05);
}

/* 轻微视差：只作用于容器内的图片，避免与入场 transform 冲突 */
html.rv-ready [data-parallax] { overflow: hidden; }
html.rv-ready [data-parallax] > img,
html.rv-ready [data-parallax] img {
  transform: translate3d(0, var(--rv-py, 0px), 0);
  transition: transform .18s linear;
}

/* ---------- 顶部滚动进度条 ---------- */
#rv-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 9999;
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: 0 50%;
  background: linear-gradient(90deg, #ff8a00, #ff3d3d 45%, #ffc400 78%, #fff);
  box-shadow: 0 0 12px rgba(255, 120, 0, .65);
  transition: transform .08s linear;
}

/* ---------- 内页：产品/项目卡片与新闻条目的悬浮反馈 ---------- */
html.rv-ready .content_about_img_1 img {
  transition: transform .55s var(--rv-ease), box-shadow .55s var(--rv-ease);
}
html.rv-ready .content_about_img_1:hover img { transform: scale(1.07); }
html.rv-ready .content_news_list_Title_2 a {
  transition: color .35s ease, letter-spacing .4s var(--rv-ease);
}
html.rv-ready .content_news_list_Title_2:hover a {
  color: #c8161d;
  letter-spacing: .6px;
}
html.rv-ready .content_news_list_2 p { transition: transform .45s var(--rv-ease); }
html.rv-ready .content_news_list_2 p:hover { transform: translateX(6px); }

/* ---------- 无障碍：尊重系统的「减少动态效果」 ---------- */
@media (prefers-reduced-motion: reduce) {
  html.rv-ready [data-reveal] {
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    opacity: 1 !important;
  }
  html.rv-ready .rv-title *,
  html.rv-ready [data-reveal] .youshi_2_info_1_title_icon_nub,
  html.rv-ready [data-parallax] img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    clip-path: none !important;
  }
  html.rv-ready .rv-shine::after { display: none; }
  html.rv-ready .content_about_img_1 img,
  html.rv-ready .content_news_list_Title_2 a,
  html.rv-ready .content_news_list_2 p { transition: none !important; }
  #rv-progress { display: none; }
}
