.btn{position:relative;padding:12px 24px;font-size:16px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block}.glow-btn,.particle-btn{background:var(--primary);color:var(--primary-foreground);box-shadow:0 4px 15px color-mix(in srgb,var(--primary) 30%,transparent);transition:all .3s cubic-bezier(.4,0,.2,1)}.glow-btn:hover,.particle-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px color-mix(in srgb,var(--primary) 40%,transparent),0 0 30px color-mix(in srgb,var(--primary) 60%,transparent)}.liquid-btn,.ripple-btn,.shimmer-btn{overflow:hidden}.shimmer-btn{background:var(--secondary);color:var(--secondary-foreground)}.shimmer-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--secondary-foreground) 40%,transparent),transparent);transition:left .6s ease}.shimmer-btn:hover:before{left:100%}.ripple-btn{background:var(--accent);color:var(--accent-foreground)}.ripple-btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:color-mix(in srgb,var(--accent-foreground) 30%,transparent);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.ripple-btn:hover:after{width:300px;height:300px}.neon-btn{background:transparent;color:var(--primary);border:2px solid var(--primary);text-shadow:0 0 10px var(--primary);box-shadow:inset 0 0 10px color-mix(in srgb,var(--primary) 10%,transparent),0 0 20px color-mix(in srgb,var(--primary) 20%,transparent);transition:all .3s ease}.neon-btn:hover{background:color-mix(in srgb,var(--primary) 10%,transparent);box-shadow:inset 0 0 20px color-mix(in srgb,var(--primary) 20%,transparent),0 0 30px color-mix(in srgb,var(--primary) 40%,transparent),0 0 40px color-mix(in srgb,var(--primary) 30%,transparent);text-shadow:0 0 15px var(--primary)}.morph-btn{background:var(--primary);color:var(--primary-foreground);border-radius:25px;transition:all .4s cubic-bezier(.68,-.55,.265,1.55)}.morph-btn:hover{border-radius:8px;background:color-mix(in srgb,var(--primary) 100%,black)}.liquid-btn{background:var(--primary);color:var(--primary-foreground);transition:all .3s ease;z-index:1}.liquid-btn .text{position:relative;z-index:2}.liquid-btn:before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background:var(--accent);transition:width .4s cubic-bezier(.23,1,.32,1);z-index:-1}.liquid-btn:hover:before{width:100%}.liquid-btn:hover{color:var(--accent-foreground)}.btn-3d{background:var(--secondary);color:var(--secondary-foreground);border:none;transform-style:preserve-3d;transition:all .2s ease;box-shadow:0 6px 0 color-mix(in srgb,var(--secondary) 80%,black),0 8px 15px rgba(0,0,0,.2)}.btn-3d:hover{transform:translateY(-2px);box-shadow:0 8px 0 color-mix(in srgb,var(--secondary) 80%,black),0 12px 20px rgba(0,0,0,.3)}.btn-3d:active{transform:translateY(2px);box-shadow:0 2px 0 color-mix(in srgb,var(--secondary) 80%,black),0 4px 8px rgba(0,0,0,.2)}.particle-btn{position:relative;overflow:visible}.particle-btn span{position:relative;z-index:2;display:inline-block;transition:all .2s ease}.particle-btn svg{position:absolute;z-index:3;width:12px;height:12px;transform:translate(-50%,-50%) scale(0);--delay-step:0.15}.particle-btn svg path{fill:color-mix(in srgb,var(--primary-foreground) 90%,transparent)}.particle-btn:hover svg{animation:sparkle .75s calc((var(--delay-step) * var(--d)) * 1s) both}@keyframes sparkle{50%{transform:translate(-50%,-50%) scale(var(--s,1))}}.particle-btn svg:first-of-type{top:20%;left:10%;--s:1.1;--d:1}.particle-btn svg:nth-of-type(2){top:80%;left:25%;--s:1.25;--d:2}.particle-btn svg:nth-of-type(3){top:40%;left:50%;--s:1.1;--d:3}.particle-btn svg:nth-of-type(4){top:60%;left:80%;--s:0.9;--d:2}.particle-btn svg:nth-of-type(5){top:30%;left:90%;--s:0.8;--d:4}@media (prefers-reduced-motion:reduce){.btn,.btn:after,.btn:before{transition:none;animation:none}}.btn-svg-border{background:var(--destructive);color:var(--destructive-foreground);font-weight:100;height:45px;line-height:45px;max-width:160px;position:relative;text-decoration:none;text-transform:uppercase;width:100%;text-align:center}.btn-svg-border svg{height:45px;left:0;position:absolute;top:0;width:100%}.btn-svg-border rect{fill:none;stroke:var(--destructive-foreground);stroke-width:2;stroke-dasharray:422,0;transition:all .35s linear}.btn-svg-border:hover{background:transparent;font-weight:900;letter-spacing:1px;color:var(--destructive)}.btn-svg-border:hover rect{stroke-width:5;stroke-dasharray:15,310;stroke-dashoffset:48;stroke:var(--destructive);transition:all 1.35s cubic-bezier(.19,1,.22,1)}