@keyframes fade-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes blur-in{0%{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}@keyframes slide-in-start{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-end{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes sonar-pulse{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(2.2)}}@keyframes beam-vertical{0%{background-position:0 -100%}to{background-position:0 200%}}@keyframes holodex-scale{0%,to{transform:scale(.85);opacity:.7}50%{transform:scale(1);opacity:1}}.animate-fade-in-up{animation:fade-in-up .7s cubic-bezier(.16,1,.3,1) both}.animate-blur-in{animation:blur-in .8s cubic-bezier(.16,1,.3,1) both}.animate-slide-in-start{animation:slide-in-start .7s cubic-bezier(.16,1,.3,1) both}.animate-slide-in-end{animation:slide-in-end .7s cubic-bezier(.16,1,.3,1) both}.animate-sonar-pulse{animation:sonar-pulse 2s ease-out infinite}.animate-beam-vertical{background:linear-gradient(180deg,transparent 0%,var(--primary, #3b82f6) 50%,transparent 100%);background-size:100% 200%;animation:beam-vertical 3s linear infinite}.flashlight-card{--mouse-x: 50%;--mouse-y: 50%;position:relative;overflow:hidden}.flashlight-card:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(400px circle at var(--mouse-x) var(--mouse-y),rgba(var(--primary-rgb, 59 130 246) / .08),transparent 60%);pointer-events:none;z-index:1}.flashlight-card:hover:before{opacity:1}.holodex-item{transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s ease}.holodex-item-active{transform:scale(1.05);opacity:1;z-index:10}.holodex-item-adjacent{transform:scale(.88);opacity:.65}
