/* Animated floating LINE action */
.line-floating{isolation:isolate;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;animation:line-invite 6s ease-in-out 2s infinite;transform-origin:center;will-change:auto}
.line-floating::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffffff00 42%,#ffffff80 49%,#ffffff00 56%,transparent 65%);background-size:300% 100%;background-position:130% 0;animation:line-shine 6s ease-in-out 2s infinite;z-index:0}
.line-floating::after{content:"";position:absolute;inset:-7px;border:1px solid #0dcc9480;border-radius:inherit;pointer-events:none;animation:line-ring 6s ease-out 2s infinite;z-index:-1;opacity:0}
.line-floating>span{position:relative;z-index:1}.line-floating .line-badge{transition:transform .3s ease,box-shadow .3s ease}
@keyframes line-shine{0%,12%{background-position:130% 0}35%,100%{background-position:-40% 0}}
@keyframes line-ring{0%,8%{transform:scale(1);opacity:0}12%{opacity:.6}40%,100%{transform:scale(1.12,1.35);opacity:0}}
@keyframes line-invite{0%,8%,34%,100%{transform:translateY(0)}20%{transform:translateY(-4px)}}
@media(hover:hover) and (pointer:fine){.line-floating:hover{animation:none;transform:translateY(-5px) scale(1.035);background:#19dfa5;box-shadow:0 0 0 1px #00ad7a,0 0 0 8px #0dcc9425,0 16px 36px #006c4955}.line-floating:hover .line-badge{transform:rotate(-7deg) scale(1.07);box-shadow:0 4px 12px #006c4920}}
.line-floating:focus-visible{animation:none;transform:translateY(-3px);outline:3px solid #173a2d;outline-offset:9px}.line-floating:active{animation:none;transform:translateY(1px) scale(.96);box-shadow:0 0 0 1px #00ad7a,0 4px 12px #006c4930}
@media(prefers-reduced-motion:reduce){.line-floating,.line-floating::before,.line-floating::after{animation:none}.line-floating::before,.line-floating::after{display:none}.line-floating,.line-floating .line-badge{transition:none}.line-floating:hover,.line-floating:active,.line-floating:focus-visible,.line-floating:hover .line-badge{transform:none}}

/* Small, staggered sparkles frame the action without covering its label. */
.line-floating>.line-glitter{position:absolute;inset:-5px;pointer-events:none;z-index:2}
.line-glitter i{position:absolute;width:12px;height:12px;background:#fff;clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%);filter:drop-shadow(0 0 3px #baffea);opacity:0;animation:line-glitter 3.6s ease-in-out infinite}
.line-glitter i:nth-child(1){left:15%;top:2%;animation-delay:-.5s}
.line-glitter i:nth-child(2){left:49%;top:8%;width:7px;height:7px;animation-delay:-2.2s}
.line-glitter i:nth-child(3){right:13%;top:0;animation-delay:-1.3s;background:#87ffd8}
.line-glitter i:nth-child(4){right:1%;top:44%;width:9px;height:9px;animation-delay:-2.8s}
.line-glitter i:nth-child(5){right:24%;bottom:0;animation-delay:-.1s;background:#87ffd8}
.line-glitter i:nth-child(6){left:29%;bottom:7%;width:7px;height:7px;animation-delay:-1.9s}
.line-glitter i:nth-child(7){left:1%;top:41%;width:10px;height:10px;animation-delay:-3s;background:#87ffd8}
@keyframes line-glitter{0%,65%,100%{opacity:0;transform:scale(.3) rotate(-20deg)}25%{opacity:1;transform:scale(1.15) rotate(10deg)}45%{opacity:.65;transform:scale(.7) rotate(25deg)}}
@media(hover:hover) and (pointer:fine){.line-floating:hover .line-glitter i{animation-duration:1.8s}}
@media(prefers-reduced-motion:reduce){.line-glitter i{animation:none;opacity:.7;transform:none}.line-glitter i:nth-child(even){display:none}}
