/* 2026-11-02 主人指令：「用起来」→ ElasticMesh 充气果冻字（vanilla 移植 React Bits）。
   排版零位移：.em-word 内联相对定位，原三字占位（.em-word-place 保留可访问性与回流宽度），
   canvas 绝对定位覆盖原字正上方；WebGL2 缺失/失败时 canvas 不显示、原字原样（零风险降级）。
   颜色/大小沿原 h1：墨色 #2C2B2B、72px(5vw)/32px 档、字距继承。 */
.pg-home .hero h1 .em-word{
  position:relative;display:inline-block;cursor:default;
  -webkit-user-select:none;user-select:none;touch-action:pan-y;
}
.pg-home .hero h1 .em-word .em-word-place{
  /* 占位三字：正常渲染参与排版；em-on 后视觉上被 canvas 覆盖（同字同位同色） */
  display:inline-block;
}
.pg-home .hero h1 .em-word .em-word-canvas{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
  /* 充气膨胀需要呼吸空间：字面 bbox 外扩（上 24% 下 30% 左右 12%），不改变行盒 */
  width:124%;height:158%;
  max-width:none;max-height:none;
  pointer-events:none;
}
.pg-home .hero h1 .em-word.em-interactive .em-word-canvas{pointer-events:auto}
/* em-on：canvas 接管视觉，占位字隐身（但保留盒宽） */
.pg-home .hero h1 .em-word.em-on .em-word-place{opacity:0}
/* RM：不开 canvas（JS 侧 return），占位字正常显示——即原样 */
/* 低版本浏览器无 WebGL2 时 JS 直接 return，无 CSS 副作用 */
