/* Continuous tap: one fluid approach and rebound, with no idle hold. */
.mbp-report-action-bar:has(.has-star-guide),
.wentian-chart-ai-hero:has(.has-star-guide) { overflow: visible; }
.mbp-report-action-bar button.has-star-guide,
.wentian-chart-ai-coin.has-star-guide { overflow: visible; }
/* The original moving sheen relies on clipping; let the star trail lead instead. */
.mbp-report-action-bar button.has-star-guide::after,
.wentian-chart-ai-coin.has-star-guide::after { display: none; }
.reading-star-guide {
  position: absolute;
  width: 148%;
  height: 148%;
  right: -34%;
  bottom: -43%;
  z-index: 6;
  overflow: visible;
  pointer-events: none;
  opacity: 1;
  transition: opacity .4s ease, transform .4s ease;
}
.rsg-hand {
  transform-origin: 108px 105px;
  filter: drop-shadow(1px 4px 2px #05132999) drop-shadow(0 0 3px #5dcaff66);
  animation: rsg-tap 1.6s cubic-bezier(.45,0,.55,1) infinite;
}
.rsg-comet { stroke-dasharray: 9 91; transform: rotate(-90deg); transform-origin: 78px 67px; filter: drop-shadow(0 0 3px #6acbff); animation: rsg-orbit 4.8s linear infinite; }
.rsg-orbit-star { transform-origin: 78px 67px; filter: drop-shadow(0 0 3px #a8e7ff); animation: rsg-star-orbit 4.8s linear infinite; }
.rsg-contact { transform-origin: 108px 105px; animation: rsg-contact 1.6s ease-out infinite; }
.rsg-ripple { transform-origin: 108px 105px; animation: rsg-ripple 1.6s ease-out infinite; }
.rsg-ripple-echo { animation-delay: .13s; }
.rsg-sparks { transform-origin: 108px 105px; animation: rsg-sparks 1.6s ease-out infinite; }
.reading-star-guide.is-leaving { opacity: 0; transform: translate(5px,7px); }
button:is(:disabled,.is-running,.is-complete,.has-progress) > .reading-star-guide { display: none; }
@keyframes rsg-tap {
  0%, 100% { transform: translate(5px,9px) rotate(5deg); }
  50% { transform: translate(0,0) rotate(-3deg) scale(.96); }
}
@keyframes rsg-orbit { to { stroke-dashoffset: -100; } }
@keyframes rsg-star-orbit { to { transform: rotate(360deg); } }
@keyframes rsg-contact { 0%,42%,76%,100% { opacity: 0; transform: scale(.6); } 50% { opacity: 1; transform: scale(1.1); } }
@keyframes rsg-ripple { 0%,46% { transform: scale(.65); opacity: 0; } 51% { opacity: .95; } 96%,100% { transform: scale(2.7); opacity: 0; } }
@keyframes rsg-sparks { 0%,46%,100% { opacity: 0; transform: scale(.85); } 56% { opacity: .8; } 90% { transform: scale(1.2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .reading-star-guide * { animation: none !important; }
  .reading-star-guide { transition: none; }
  .rsg-contact, .rsg-ripple-echo, .rsg-sparks { display: none; }
  .rsg-ripple { opacity: .5; }
}
