/* 用途：首页、工具页和关于页共用桌面指针反馈与首屏粒子层；关闭动效或触屏时不显示。 */
:is(.portal-home, .tools-page, .profile-page) .pointer-trail, :is(.portal-home, .tools-page, .profile-page) .pointer-halo { display: none; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :is(.portal-home, .tools-page, .profile-page) .pointer-trail { display: block; position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
  .portal-home .hero-stage > .wrap, .tools-page .tools-hero > .wrap, .profile-page .hero > .hero-grid { position: relative; z-index: 1; }
  :is(.portal-home, .tools-page, .profile-page) .pointer-halo { display: block; position: fixed; top: 0; left: 0; z-index: 1000; width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1px solid var(--coral); border-radius: 50%; pointer-events: none; opacity: 0; transform: translate3d(-100px,-100px,0); transition: opacity .18s ease; }
  :is(.portal-home, .tools-page, .profile-page) .pointer-halo::after { content: ''; position: absolute; inset: 5px; border: 1px solid var(--coral); border-radius: 50%; opacity: .35; transform: scale(.55); transition: transform .2s ease, opacity .2s ease; }
  :is(.portal-home, .tools-page, .profile-page) .pointer-halo.is-visible { opacity: .85; }
  :is(.portal-home, .tools-page, .profile-page) .pointer-halo.is-interactive::after { transform: scale(1.8); opacity: .7; }

  /* 局部光源放在文字下方，只装饰明确标记的表面，不接管链接点击。 */
  :is(.tools-page, .profile-page) [data-pointer-surface] { position: relative; isolation: isolate; overflow: hidden; }
  :is(.tools-page, .profile-page) [data-pointer-surface]::after {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: radial-gradient(350px circle at var(--spot-x, 50%) var(--spot-y, 50%), rgba(255, 145, 98, .16), transparent 68%);
    opacity: 0; transition: opacity .25s ease;
  }
  :is(.tools-page, .profile-page) [data-pointer-surface].is-pointer-lit::after { opacity: 1; }
}
