/* Floating and popping stars. Pair with stars.js */
#stars{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:3;}
#stars .st{position:absolute;display:block;will-change:transform,opacity;}
#stars .st svg{display:block;width:100%;height:100%;}
#stars .fl{animation:stdrift var(--dur) ease-in-out var(--del) infinite alternate,sttw calc(var(--dur) * .45) ease-in-out var(--del) infinite alternate;}
@keyframes stdrift{from{transform:translate(0,0) rotate(0deg);}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));}}
@keyframes sttw{from{opacity:var(--o1);}to{opacity:var(--o2);}}
#stars .pop{animation:stpop 1.3s cubic-bezier(.2,.8,.3,1) forwards;}
@keyframes stpop{0%{transform:translate(0,0) scale(0) rotate(-30deg);opacity:0;}25%{opacity:.9;}100%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(25deg);opacity:0;}}
@media(prefers-reduced-motion:reduce){#stars{display:none;}}

/* 2026-11-04: menu-item stars linger (slower, with a hold before they fade) */
#stars .pop--linger{animation:stpoplinger 2.5s cubic-bezier(.2,.8,.3,1) forwards;}
@keyframes stpoplinger{0%{transform:translate(0,0) scale(0) rotate(-30deg);opacity:0;}18%{opacity:.95;transform:translate(calc(var(--dx) * .7),calc(var(--dy) * .7)) scale(1) rotate(0deg);}70%{opacity:.9;transform:translate(var(--dx),calc(var(--dy) - 4px)) scale(1) rotate(18deg);}100%{transform:translate(var(--dx),calc(var(--dy) - 12px)) scale(.9) rotate(25deg);opacity:0;}}
