/* === 共享交互增强：滚动入场 / hover 抬升 / 关键帧 === */
/* 滚动渐显基础（仅在 JS 就绪 html.anim-ready 下隐藏，避免 JS 失败白屏） */
.reveal{opacity:1;transform:none;}
html.anim-ready .reveal{opacity:0;transform:translateY(36px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform;}
html.anim-ready .reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
.reveal.d4{transition-delay:.32s;}
.reveal.d5{transition-delay:.40s;}
.reveal.d6{transition-delay:.48s;}
@keyframes sbFadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
@keyframes sbPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,215,0,.5);}70%{box-shadow:0 0 0 16px rgba(255,215,0,0);}}
@keyframes sbFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}

/* 卡片 hover 抬升（覆盖全站常见卡片类） */
.prd-card,.oh-card,.case-card,.news-featured,.nl-item,.partner-card,.icon_index,.stat-card,.value-card,.dl-item{
  transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease,border-color .3s ease;
}
.prd-card:hover,.oh-card:hover,.case-card:hover,.news-featured:hover,.partner-card:hover,.stat-card:hover,.value-card:hover,.dl-item:hover{
  transform:translateY(-8px);
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}
/* 链接型卡片去下划线 */
a.prd-card,a.news-featured,a.case-card,a.partner-card{text-decoration:none;color:inherit;}

/* 数字滚动计数器 */
.sb-counter{font-variant-numeric:tabular-nums;}

/* 尊重用户减弱动画偏好 */
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important;}
  *{animation:none!important;}
}
