/* 全站粒子层
   1) .mouse-particles  固定画布：鼠标拖尾粒子（每页都有，覆盖全站）
   2) .scene-dust       Hero 场景飘散光尘：覆盖人物全身轮廓，而非只在头部
   设计要点：光尘基础态自带透明度，动画只负责上飘与淡出，
   即使动画被环境暂停（如减少动效 / 无头渲染）粒子依然可见。 */

/* —— 鼠标拖尾画布（全站固定层） —— */
.mouse-particles{
  position:fixed;inset:0;
  width:100vw;height:100vh;
  z-index:92;
  pointer-events:none;
  mix-blend-mode:screen;
}

/* —— Hero 场景光尘（人物身后） —— */
.scene-dust{
  position:absolute;inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  mix-blend-mode:screen;
}
.scene-dust span{
  position:absolute;border-radius:50%;
  background:#f2f8ff;
  box-shadow:0 0 9px rgba(196,224,255,.9),0 0 20px rgba(150,195,255,.45);
  opacity:var(--o,.6);
  animation:sceneFloat linear infinite;
  will-change:transform,opacity;
}
.scene-dust .bokeh{
  filter:blur(5px);
  background:radial-gradient(circle,rgba(255,255,255,.9),rgba(200,228,255,.45) 45%,rgba(200,228,255,0) 72%);
  box-shadow:none;
}
@keyframes sceneFloat{
  0%{transform:translate(0,0);opacity:var(--o,.6)}
  70%{opacity:var(--o,.6)}
  100%{transform:translate(var(--dx),var(--rise));opacity:0}
}

@media(max-width:980px){
  .scene-dust{opacity:.75}
  .mouse-particles{opacity:.8}
}
@media(prefers-reduced-motion:reduce){
  .mouse-particles{opacity:.35}
  .scene-dust span{animation:none;opacity:calc(var(--o,.6) * .55)}
}
