/* ===== MILITEC 全局动效层（fx）=====
   克制版：滚动进度条 / 导航毛玻璃 / 内容上浮入场 / 桌面卡片微倾斜
   尊重 prefers-reduced-motion；JS 未执行时内容照常显示（靠 html.fx-on 兜底） */
#fxbar{position:fixed;left:0;top:0;height:2px;width:0;z-index:9998;pointer-events:none;
  background:linear-gradient(90deg,var(--blue,#3f5cf0),#7b5cff,#2da663);
  box-shadow:0 0 10px rgba(63,92,240,.45);transition:width .1s linear}

.ypnav{transition:background .3s ease,box-shadow .3s ease,border-color .3s ease}
.ypnav.fx-scrolled{background:rgba(255,255,255,.88);
  backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);
  border-bottom-color:transparent;box-shadow:0 6px 22px rgba(20,28,50,.07)}

html.fx-on .fx-r,
html.fx-on .hp-shows .wrap > *,
html.fx-on .page-head .wrap > *,
html.fx-on .zd-hero .wrap > *,
html.fx-on section.zd-sec > .wrap > *,
html.fx-on .footer > .wrap > *{
  opacity:0;transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--fxd,0ms)}
html.fx-on .fx-r.fx-in,
html.fx-on .fx-in{opacity:1 !important;transform:none !important}
/* JS 出问题时的兜底：3 秒后无论如何全显示 */
html.fx-fallback .fx-r,html.fx-fallback .fx-in{opacity:1 !important;transform:none !important}

/* 桌面端卡片微倾斜（跟随鼠标，幅度很小，只求“有质感”） */
html.fx-tilt .fx-t{transition:transform .18s ease-out,box-shadow .18s ease-out}
html.fx-tilt .fx-t:hover{box-shadow:0 14px 34px rgba(20,28,50,.10)}

@media (prefers-reduced-motion:reduce){
  html.fx-on .fx-r{opacity:1 !important;transform:none !important;transition:none !important}
  #fxbar{display:none}
  html.fx-tilt .fx-t{transition:none !important}
}
