.galaxy-button{--glow-primary: var(--color-azure-500);--glow-secondary: var(--color-ocean-500);--glow-accent: var(--color-azure-400);--glow-bg: var(--color-bg-primary);--glow-text: var(--color-text-primary);--transition: .25s;--spark: 2s;position:relative;display:inline-flex}.dark .galaxy-button{--glow-primary: var(--color-azure-400);--glow-secondary: var(--color-ocean-400);--glow-accent: var(--color-azure-300)}.galaxy-button__btn{--active: 0;--cut: .1em;position:relative;padding:.75em 1.5em;font-size:.9375rem;font-weight:500;color:var(--color-text-primary);background:radial-gradient(120% 120% at 126% 126%,var(--glow-primary) 40%,transparent 50%) calc(100px - calc(var(--active) * 100px)) 0 / 100% 100% no-repeat,radial-gradient(120% 120% at 120% 120%,var(--glow-secondary) 30%,transparent 70%) calc(100px - calc(var(--active) * 100px)) 0 / 100% 100% no-repeat,linear-gradient(135deg,var(--color-azure-100) 0%,var(--color-ocean-50) 100%);border:1px solid var(--color-border-default);border-radius:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5em;white-space:nowrap;box-shadow:0 0 calc(var(--active) * 3em) calc(var(--active) * 1.5em) var(--glow-primary),0 .05em #ffffff80 inset,0 -.05em #0000000d inset;transition:box-shadow var(--transition),transform var(--transition),background var(--transition),color var(--transition),border-color var(--transition);transform:scale(calc(1 + (var(--active) * .03)));transform-style:preserve-3d;perspective:100vmin;overflow:hidden;z-index:1}.dark .galaxy-button__btn{background:radial-gradient(120% 120% at 126% 126%,var(--glow-primary) 40%,transparent 50%) calc(100px - calc(var(--active) * 100px)) 0 / 100% 100% no-repeat,radial-gradient(120% 120% at 120% 120%,var(--glow-secondary) 30%,transparent 70%) calc(100px - calc(var(--active) * 100px)) 0 / 100% 100% no-repeat,linear-gradient(135deg,#1e3a8a66,#0c4a6e66);border-color:var(--color-border-default);box-shadow:0 0 calc(var(--active) * 3em) calc(var(--active) * 1.5em) var(--glow-primary),0 .05em #ffffff1a inset,0 -.05em #0003 inset}.galaxy-button__btn:active{transform:scale(.98)}.galaxy-button__btn:hover,.galaxy-button__btn:focus-visible{--active: 1;border-color:var(--glow-primary);outline:none}.galaxy-button__spark{position:absolute;inset:0;border-radius:.875rem;rotate:0deg;overflow:hidden;-webkit-mask:linear-gradient(white,transparent 50%);mask:linear-gradient(white,transparent 50%);animation:spark-rotate calc(var(--spark) * 2) infinite steps(2,end);pointer-events:none}.galaxy-button__spark:before{content:"";position:absolute;width:200%;aspect-ratio:1;top:0%;left:50%;z-index:-1;translate:-50% -15%;rotate:0;transform:rotate(-90deg);opacity:calc(var(--active) + .3);background:conic-gradient(from 0deg,transparent 0 340deg,white 360deg);transition:opacity var(--transition);animation:spark-spin var(--spark) linear infinite both}.galaxy-button__spark:after{content:"";position:absolute;inset:var(--cut);border-radius:calc(.875rem - var(--cut));background:inherit}@keyframes spark-rotate{to{rotate:360deg}}@keyframes spark-spin{to{transform:rotate(90deg)}}.galaxy-button__stars{position:absolute;inset:0;opacity:var(--active);transition:opacity var(--transition);pointer-events:none;overflow:hidden;border-radius:.875rem}.galaxy-button__star{--size: 4;--distance: 40;--duration: 3;--delay: 0;--alpha: .9;position:absolute;width:calc(var(--size) * 1px);height:calc(var(--size) * 1px);background:#fff;border-radius:50%;top:50%;left:50%;opacity:var(--alpha);box-shadow:0 0 6px 2px var(--glow-primary);transform:translate(-50%,-50%) rotate(10deg) rotate(0) translateY(calc(var(--distance) * 1px));animation:star-orbit calc(var(--duration) * 1s) calc(var(--delay) * -1s) infinite linear}.galaxy-button__star:nth-child(1){--size: 4;--distance: 35;--duration: 2.5;--delay: 0}.galaxy-button__star:nth-child(2){--size: 3;--distance: 45;--duration: 3;--delay: .5}.galaxy-button__star:nth-child(3){--size: 5;--distance: 40;--duration: 2.8;--delay: 1}.galaxy-button__star:nth-child(4){--size: 3;--distance: 50;--duration: 3.2;--delay: 1.5}.galaxy-button__star:nth-child(5){--size: 4;--distance: 43;--duration: 2.6;--delay: 2}.galaxy-button__star:nth-child(6){--size: 3;--distance: 47;--duration: 3.5;--delay: .3}@keyframes star-orbit{to{transform:translate(-50%,-50%) rotate(10deg) rotate(360deg) translateY(calc(var(--distance) * 1px))}}.galaxy-button__star--static{animation:none;top:50%;left:50%;transform:translate(-50%,-50%);max-height:4px;filter:brightness(3);opacity:.8;animation:star-move-x calc(var(--duration) * .15s) calc(var(--delay) * -.15s) infinite linear,star-move-y calc(var(--duration) * .25s) calc(var(--delay) * -.25s) infinite linear}.galaxy-button__btn:hover .galaxy-button__star--static{animation-play-state:paused}@keyframes star-move-x{0%{translate:-100px 0}to{translate:100px 0}}@keyframes star-move-y{0%{transform:translateY(-60px)}to{transform:translateY(60px)}}.galaxy-button__text{position:relative;z-index:2;letter-spacing:.02em;transition:color var(--transition)}.galaxy-button__icon{position:relative;z-index:2;width:1.25em;height:1.25em;transition:transform var(--transition)}.galaxy-button__btn:hover .galaxy-button__icon{transform:translate(2px)}.galaxy-button__backdrop{position:absolute;inset:var(--cut);border-radius:calc(.875rem - var(--cut));background:inherit;z-index:0;transition:background var(--transition)}.galaxy-button--sm .galaxy-button__btn{padding:.625em 1.25em;font-size:.875rem;border-radius:.75rem}.galaxy-button--sm .galaxy-button__spark,.galaxy-button--sm .galaxy-button__spark:after,.galaxy-button--sm .galaxy-button__stars{border-radius:.75rem}.galaxy-button--sm .galaxy-button__star{--size: 3;--distance: 30}.galaxy-button--lg .galaxy-button__btn{padding:.875em 1.75em;font-size:1rem;border-radius:1rem}.galaxy-button--lg .galaxy-button__spark,.galaxy-button--lg .galaxy-button__spark:after,.galaxy-button--lg .galaxy-button__stars{border-radius:1rem}.galaxy-button--lg .galaxy-button__star{--size: 5;--distance: 50}.galaxy-button--ocean{--glow-primary: var(--color-ocean-500);--glow-secondary: var(--color-ocean-400);--glow-accent: var(--color-ocean-300)}.dark .galaxy-button--ocean{--glow-primary: var(--color-ocean-400);--glow-secondary: var(--color-ocean-300);--glow-accent: var(--color-ocean-200)}.galaxy-button--azure{--glow-primary: var(--color-azure-500);--glow-secondary: var(--color-azure-400);--glow-accent: var(--color-azure-300)}.dark .galaxy-button--azure{--glow-primary: var(--color-azure-400);--glow-secondary: var(--color-azure-300);--glow-accent: var(--color-azure-200)}.galaxy-button--cyan{--glow-primary: var(--color-cyan-500);--glow-secondary: var(--color-cyan-400);--glow-accent: var(--color-cyan-300)}.dark .galaxy-button--cyan{--glow-primary: var(--color-cyan-400);--glow-secondary: var(--color-cyan-300);--glow-accent: var(--color-cyan-200)}.galaxy-button__btn:disabled{--active: 0;opacity:.5;cursor:not-allowed;transform:scale(1)}.galaxy-button__btn:disabled .galaxy-button__stars{opacity:0}@media (prefers-reduced-motion: reduce){.galaxy-button__spark,.galaxy-button__star,.galaxy-button__star--static{animation:none}.galaxy-button__btn{transition:none}}
