/* Halo de Início — adaptação localizada do círculo com inércia de
   Animmaster / Mouse Effects 13 / Canvas cursor. Ver documentação de origem.
   Uma camada decorativa; posições finitas mantêm a CSP sem estilos inline. */
body.produto-operacional .exp-home__visual > .exp-pointer-light {
  --exp-pointer-x: 0px;
  --exp-pointer-y: 0px;
  position: absolute;
  z-index: 0;
  top: 46%;
  left: 50%;
  display: block;
  width: min(130%, 430px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 54% 48%, #d3bcff78, #a184ee48 32%, #7860cd30 49%, transparent 72%),
    radial-gradient(ellipse at 34% 62%, #bedfe536, transparent 55%);
  transform: translate(calc(-50% + var(--exp-pointer-x)), calc(-50% + var(--exp-pointer-y)));
  pointer-events: none;
  user-select: none;
}
body.produto-operacional .exp-home__visual > .exp-pointer-light::before {
  content: '';
  position: absolute;
  inset: 19% 5%;
  border: 1px solid #d3c6ff70;
  border-radius: 50%;
  box-shadow: 0 0 24px #9d88e84d, inset 0 0 20px #9d88e82e;
  transform: rotate(-28deg);
}
body.produto-operacional .exp-home__visual > .exp-pointer-light::after {
  content: '';
  position: absolute;
  inset: 28% -3%;
  border: 1px solid #cedfe331;
  border-radius: 50%;
  transform: rotate(25deg);
}
body.produto-operacional .exp-home__visual > .exp-pointer-light.exp-pointer-live {
  transition: transform 340ms cubic-bezier(.2, .75, .3, 1);
}

/* Os únicos valores dinâmicos são classes, nunca CSS vindo de dados ou ponteiro. */
body.produto-operacional .exp-pointer-light.exp-pointer-x0 { --exp-pointer-x: -90px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x1 { --exp-pointer-x: -72px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x2 { --exp-pointer-x: -54px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x3 { --exp-pointer-x: -36px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x4 { --exp-pointer-x: -18px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x5 { --exp-pointer-x: 0px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x6 { --exp-pointer-x: 18px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x7 { --exp-pointer-x: 36px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x8 { --exp-pointer-x: 54px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x9 { --exp-pointer-x: 72px; }
body.produto-operacional .exp-pointer-light.exp-pointer-x10 { --exp-pointer-x: 90px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y0 { --exp-pointer-y: -54px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y1 { --exp-pointer-y: -36px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y2 { --exp-pointer-y: -18px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y3 { --exp-pointer-y: 0px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y4 { --exp-pointer-y: 18px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y5 { --exp-pointer-y: 36px; }
body.produto-operacional .exp-pointer-light.exp-pointer-y6 { --exp-pointer-y: 54px; }

@media (max-width: 560px) {
  body.produto-operacional .exp-home__visual > .exp-pointer-light { width: 290px; top: 42%; }
}
@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  body.produto-operacional .exp-home__visual > .exp-pointer-light.exp-pointer-live {
    transition: none;
    transform: translate(-50%, -50%);
  }
}
body.produto-operacional.sem-movimento .exp-home__visual > .exp-pointer-light {
  transition: none;
  transform: translate(-50%, -50%);
}
@media print, (forced-colors: active) {
  body.produto-operacional .exp-home__visual > .exp-pointer-light { display: none; }
}
