  /* ---------- 1. 滚动渐显 + 微交互 ---------- */
  .zlh-fx{
  opacity:0;
  transform:translate3d(0,16px,0);
  transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1)}
  .zlh-fx.zlh-fx-in{
  opacity:1;
  transform:none}
  .zlh-fx-d1{
  transition-delay:.06s}
  .zlh-fx-d2{
  transition-delay:.12s}
  .zlh-fx-d3{
  transition-delay:.18s}
  .zlh-fx-d4{
  transition-delay:.24s}
  @media (prefers-reduced-motion: reduce){
  .zlh-fx{
  opacity:1 !important;
  transform:none !important;
  transition:none !important}
  }
  /* 卡片 hover 提升 */
  .zlh-ca__item,.zgl-item,.zlh-ent-item,#zlh-reading li a,.vp-card,.mp-fig,.zb-item{
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
  .zlh-ca__item:hover,.zgl-item:hover,#zlh-reading li a:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 24px rgba(38,74,140,.10)}
  .zlh-ent-item:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(38,74,140,.08);
  border-radius:10px}
  .vp-card:hover,.mp-fig:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(38,74,140,.12)}
  .mp-fig img,.vp-card img{
  transition:transform .4s ease}
  .mp-fig:hover img,.vp-card:hover img{
  transform:scale(1.04)}
  /* 按钮/链接的轻微反馈 */
  .zha-footer a,header a,nav a{
  transition:color .16s ease,opacity .16s ease}
  button,.zlh-ent-btn{
  transition:transform .14s ease,box-shadow .16s ease,background .16s ease}
  button:active,.zlh-ent-btn:active{
  transform:translateY(1px)}
  /* ---------- 2. 顶栏毛玻璃 + 滚动收缩 ---------- */
  .zlh-scrolled .zlh-h01__bar,.zlh-scrolled .zlh-cms__site-header,.zlh-scrolled .zlh-brand{
    box-shadow:0 6px 22px rgba(38,74,140,.10) !important;
    backdrop-filter:saturate(160%) blur(10px);
    -webkit-backdrop-filter:saturate(160%) blur(10px);
  }
  .zlh-h01__bar,.zlh-cms__site-header,.zlh-brand{
  transition:box-shadow .25s ease,background .25s ease,padding .25s ease}
  /* Header geometry stays constant while scrolling. */
  /* ---------- 3. 回到顶部 + 阅读进度 ---------- */
  #zlh-top{
  position:fixed;
  right:16px;
  bottom:96px;
  z-index:99980;
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid #dfe8f6;
  background:#fff;
    box-shadow:0 8px 22px rgba(38,74,140,.14);
  color:#1d4ed8;
  font-size:18px;
  line-height:40px;
  text-align:center;
  cursor:pointer;
  opacity:0;
  transform:translateY(8px);
    transition:opacity .22s ease,transform .22s ease;
  pointer-events:none;
  padding:0;
  font-family:inherit}
  #zlh-top.on{
  opacity:1;
  transform:none;
  pointer-events:auto}
  #zlh-top:hover{
  background:#2979ff;
  border-color:#2979ff;
  color:#fff}
  #zlh-progress{
  position:fixed;
  left:0;
  top:0;
  height:2px;
  width:0;
  background:linear-gradient(90deg,#2979ff,#7dc4ff);
  z-index:100001;
  transition:width .12s linear}
  /* 数字滚动不做闪烁兜底 */
  .zlh-count{
  font-variant-numeric:tabular-nums}