/* gm-alien-cursor v2 (psychedelic lenses): funky alien cursor (desktop / fine pointers only). Hotspot = purple antenna tip (3,3). */
@media (hover:hover) and (pointer:fine){
html,body{cursor:url(/assets/cursor/alien-v2.svg) 3 3,url(/assets/cursor/alien-v2.png) 3 3,auto}
:is(a[href],button,[role=button],[role=link],[role=tab],[role=switch],[role=option],[role=menuitem],select,summary,label[for],input:is([type=checkbox],[type=radio],[type=range],[type=submit],[type=button],[type=reset],[type=color],[type=file]),.btn,.chip,.tag,.fx-knob,.cover-frame):not(:disabled):not([aria-disabled=true]):not(.is-drag){cursor:url(/assets/cursor/alien-point-v2.svg) 3 3,url(/assets/cursor/alien-point-v2.png) 3 3,pointer!important}
:is(input:not([type]),input:is([type=text],[type=search],[type=email],[type=url],[type=tel],[type=password],[type=number],[type=date],[type=time]),textarea,[contenteditable=""],[contenteditable=true]){cursor:text!important}
:disabled,[aria-disabled=true]{cursor:not-allowed}
}
.gm-sparkle{position:fixed;left:0;top:0;width:8px;height:8px;margin:-4px 0 0 -4px;pointer-events:none;z-index:2147483646;border-radius:50%;background:var(--c,#a855f7);box-shadow:0 0 6px 1px var(--c,#a855f7);opacity:0;will-change:transform,opacity;contain:strict}
.gm-sparkle.on{animation:gmSpark .6s ease-out forwards}
@keyframes gmSpark{0%{opacity:.95;transform:translate(var(--x),var(--y)) scale(1)}100%{opacity:0;transform:translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy))) scale(.2)}}
@media (prefers-reduced-motion:reduce){.gm-sparkle{display:none!important}}
/* gm-guitar-fx: cursor trail effect modes linked to the pedalboard (gain / mod / time / filter / dyn). */
.gm-sparkle.m-gain{width:9px;height:9px;margin:-4px 0 0 -4px;border-radius:0;box-shadow:none;clip-path:polygon(0 40%,35% 0,50% 35%,100% 10%,65% 55%,90% 100%,40% 70%,10% 95%)}
.gm-sparkle.m-gain.on{animation:gmGain .42s steps(4,end) forwards}
@keyframes gmGain{0%{opacity:1;transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(1.2)}35%{opacity:.9;transform:translate(calc(var(--x) + var(--dx)),var(--y)) rotate(calc(var(--r) + 40deg)) scale(1)}70%{opacity:.7;transform:translate(calc(var(--x) - var(--dx)),calc(var(--y) + 4px)) rotate(var(--r)) scale(.8)}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + var(--dy))) scale(.3)}}
.gm-sparkle.m-mod.on{animation:gmMod .9s ease-out forwards}
@keyframes gmMod{0%{opacity:.95;filter:hue-rotate(0deg);transform:translate(var(--x),var(--y)) scale(1)}25%{transform:translate(calc(var(--x) + 7px),calc(var(--y) + var(--dy)*.25)) scale(1.15)}50%{opacity:.75;transform:translate(calc(var(--x) - 7px),calc(var(--y) + var(--dy)*.5)) scale(.9)}75%{transform:translate(calc(var(--x) + 5px),calc(var(--y) + var(--dy)*.75)) scale(.7)}100%{opacity:0;filter:hue-rotate(300deg);transform:translate(var(--x),calc(var(--y) + var(--dy))) scale(.3)}}
.gm-sparkle.m-time{width:26px;height:26px;margin:-3px 0 0 -3px;border-radius:0;background:url(/assets/cursor/alien-v2.svg) center/contain no-repeat;box-shadow:none}
.gm-sparkle.m-time.on{animation:gmEcho 1.15s ease-out forwards}
@keyframes gmEcho{0%{opacity:.55;filter:blur(0) saturate(1.4);transform:translate(var(--x),var(--y)) scale(1)}100%{opacity:0;filter:blur(3px) hue-rotate(160deg);transform:translate(var(--x),var(--y)) scale(1.35)}}
.gm-sparkle.m-filter{width:12px;height:12px;margin:-6px 0 0 -6px;background:transparent;border:2px solid var(--c);box-shadow:0 0 10px var(--c),inset 0 0 6px var(--c)}
.gm-sparkle.m-filter.on{animation:gmWah .7s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes gmWah{0%{opacity:.95;transform:translate(var(--x),var(--y)) scale(.4)}60%{opacity:.6}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(2.8)}}
.gm-sparkle.m-dyn{width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2)}
.gm-sparkle.m-dyn.on{animation:gmDyn .65s ease-out forwards}
@keyframes gmDyn{0%{opacity:.9;transform:translate(var(--x),var(--y)) scale(1)}40%{transform:translate(var(--x),var(--y)) scale(var(--sw))}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + 6px)) scale(.2)}}
