/* Shared interaction motion for every GG action; never resize the hit target. */
.gg-button[data-gg-feedback] { position: relative; overflow: visible; min-width: 44px; min-height: 44px; touch-action: manipulation; }
.gg-feedback-label { display: inline-flex; align-items: center; }
/* No transition delay: react at contact, then hold until the request settles. */
.gg-feedback-touching .gg-feedback-label,
.gg-feedback-pending .gg-feedback-label { transform: scale(.94); opacity: .72; }
.gg-button[data-gg-feedback].gg-feedback-pending { opacity: 1; }
.gg-feedback-sparkles { position: absolute; right: 14px; top: 50%; width: 0; height: 0; pointer-events: none; }
/* Exempt decorative dots from the shared card-text max-width:100% constraint. */
.gg-feedback-sparkles > span { position: absolute; left: 0; top: 0; width: 3px; height: 3px; max-width: none; border-radius: 50%; background: #60894e; opacity: 0; pointer-events: none; }
.theme-dim .gg-feedback-sparkles > span { background: #b4d69b; }
@media (prefers-reduced-motion: reduce) {
  .gg-feedback-touching .gg-feedback-label,
  .gg-feedback-pending .gg-feedback-label { transform: none; }
  .gg-feedback-sparkles { display: none; }
}
