/* Interaction feedback only. Registration and payment state remain server-owned. */
.gg-motion-button{position:relative;isolation:isolate;overflow:hidden}
.gg-touch-ripple{position:absolute;z-index:5;border-radius:50%;background:rgba(255,255,255,.3);transform:scale(0);animation:gg-touch-ripple .6s ease-out forwards;pointer-events:none}
@keyframes gg-touch-ripple{to{transform:scale(2);opacity:0}}
.gg-motion-busy{cursor:progress!important}.gg-motion-busy::before{content:"";display:inline-block;width:15px;height:15px;flex:none;vertical-align:middle;margin-right:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gg-motion-spin .75s linear infinite}
@keyframes gg-motion-spin{to{transform:rotate(360deg)}}
.gg-motion-success{animation:gg-success-pop .4s ease-out both}.gg-motion-success svg path{stroke-dasharray:40;stroke-dashoffset:40;animation:gg-check-draw .55s .15s ease forwards}
@keyframes gg-success-pop{from{transform:scale(.7);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes gg-check-draw{to{stroke-dashoffset:0}}
.notification.gg-bell-ring img,.notification.gg-bell-ring i,.gg-bell-preview.gg-bell-ring{transform-origin:50% 15%;animation:gg-bell-ring 1.1s ease-in-out both}
@keyframes gg-bell-ring{0%,100%{transform:rotate(0)}15%{transform:rotate(18deg)}30%{transform:rotate(-15deg)}45%{transform:rotate(11deg)}60%{transform:rotate(-7deg)}80%{transform:rotate(3deg)}}
button.gg-copy-done{color:#c3ffe9!important;background:#17674f!important;transition:background .2s ease}button.gg-copy-done i{animation:gg-success-pop .3s ease-out}
.gg-motion-skeleton{position:relative;overflow:hidden;background:#233044;border-radius:8px}.gg-motion-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(161,198,225,.18),transparent);animation:gg-skeleton-sweep 1.6s linear infinite}
@keyframes gg-skeleton-sweep{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.gg-touch-ripple{display:none}.gg-motion-success,.gg-motion-success svg path,.gg-bell-ring img,.gg-bell-ring i,.gg-bell-preview.gg-bell-ring,.gg-copy-done i,.gg-motion-skeleton::after{animation:none!important}.gg-motion-success svg path{stroke-dashoffset:0}.gg-motion-busy::before{animation:none}}
