.magic-button{--white: #ffe7ff;--purple-100: #f4b1fd;--purple-200: #d190ff;--purple-300: #c389f2;--purple-400: #8e26e2;--purple-500: #5e2b83;--lime-400: #a3e635;--lime-500: #84cc16;--radius: 36px;border-radius:var(--radius);outline:none;cursor:pointer;font-size:20px;font-family:inherit;background:transparent;letter-spacing:-1px;border:0;position:relative;width:100%;max-width:320px;height:80px}.magic-button{--primary-lighter: #d9f99d;--primary-light: #bef264;--primary: #a3e635;--primary-dark: #65a30d;--primary-darker: #3f6212;--text-on-primary: #0f172a}.bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;filter:blur(1px)}.bg:before,.bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:calc(var(--radius) * 1.1);background:var(--primary-dark)}.bg:before{filter:blur(5px);transition:all .3s ease;box-shadow:-2px 2px #65a30d4d,-5px 5px #65a30d33,-8px 8px 4px #65a30d1a}.wrap{border-radius:inherit;overflow:hidden;height:100%;transform:translate(6px,-6px);padding:3px;background:linear-gradient(to bottom,var(--primary-light) 0%,var(--primary-dark) 100%);position:relative;transition:all .3s ease}.outline{position:absolute;overflow:hidden;top:0;right:0;bottom:0;left:0;opacity:0;outline:none;border-radius:inherit;transition:all .4s ease}.outline:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;width:120px;height:300px;margin:auto;background:linear-gradient(to right,transparent 0%,white 50%,transparent 100%);animation:spin 3s linear infinite;animation-play-state:paused}.content{pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:1;position:relative;height:100%;gap:16px;border-radius:calc(var(--radius) * .85);font-weight:800;text-transform:uppercase;transition:all .3s ease;background:linear-gradient(to bottom,var(--primary) 0%,var(--primary-dark) 100%);box-shadow:inset -2px 12px 11px -5px var(--primary-light),inset 1px -3px 11px #00000059;color:var(--text-on-primary)}.content:before{content:"";right:0;left:0;position:absolute;z-index:10;width:80%;top:45%;bottom:35%;opacity:.7;margin:auto;background:linear-gradient(to bottom,transparent,var(--primary-dark));filter:brightness(1.3) blur(5px)}.char{transition:all .3s ease;display:flex;align-items:center;justify-content:center}.char span{display:block;color:transparent;position:relative}.char.state-1 span{animation:charAppear 1.2s ease backwards calc(var(--i) * .03s)}.char.state-1 span:before,.char span:after{content:attr(data-label);position:absolute;color:var(--text-on-primary);text-shadow:-1px 1px 2px rgba(255,255,255,.2);left:0}.char span:before{opacity:0;transform:translateY(-100%)}.char.state-2{position:absolute;left:80px;display:none}.char.state-2{display:flex;left:0;right:0;margin:auto}.char.state-2 span:after{opacity:1}.icon{animation:resetArrow .8s cubic-bezier(.7,-.5,.3,1.2) forwards;z-index:10;margin-left:10px}.icon div,.icon div:before,.icon div:after{height:3px;border-radius:1px;background-color:var(--text-on-primary)}.icon div:before,.icon div:after{content:"";position:absolute;right:0;transform-origin:center right;width:14px;border-radius:15px;transition:all .3s ease}.icon div{position:relative;width:24px;box-shadow:-2px 2px 5px var(--primary-dark);transform:scale(.9);background:linear-gradient(to bottom,var(--text-on-primary),var(--primary-lighter));animation:swingArrow 1s ease-in-out infinite;animation-play-state:paused}.icon div:before{transform:rotate(44deg);top:1px;box-shadow:1px -2px 3px -1px var(--primary-dark);animation:rotateArrowLine 1s linear infinite;animation-play-state:paused}.icon div:after{bottom:1px;transform:rotate(316deg);box-shadow:-2px 2px 3px 0 var(--primary-dark);background:linear-gradient(200deg,var(--text-on-primary),var(--primary-lighter));animation:rotateArrowLine2 1s linear infinite;animation-play-state:paused}.path{position:absolute;z-index:12;bottom:0;left:0;right:0;width:100%;stroke-dasharray:150 480;stroke-dashoffset:150;pointer-events:none}.splash{position:absolute;top:0;left:0;pointer-events:none;stroke-dasharray:60 60;stroke-dashoffset:60;transform:translate(-17%,-31%);stroke:var(--primary)}.magic-button:hover .words{opacity:1}.magic-button:hover .words span{animation-play-state:running}.magic-button:hover .char.state-1 span:before{animation:charAppear .7s ease calc(var(--i) * .03s)}.magic-button:hover .char.state-1 span:after{opacity:1;animation:charDisappear .7s ease calc(var(--i) * .03s)}.magic-button:hover .wrap{transform:translate(8px,-8px)}.magic-button:hover .outline{opacity:1}.magic-button:hover .outline:before,.magic-button:hover .icon div:before,.magic-button:hover .icon div:after,.magic-button:hover .icon div{animation-play-state:running}.magic-button:active .bg:before{filter:blur(5px);opacity:.7;box-shadow:-2px 2px #65a30d4d,-4px 4px #65a30d26}.magic-button:active .content{box-shadow:inset -1px 12px 8px -5px #3f621266,inset 0 -3px 8px 0 var(--primary-dark)}.magic-button:active .outline{opacity:0}.magic-button:active .wrap{transform:translate(3px,-3px)}.magic-button:active .splash{animation:splash .8s cubic-bezier(.3,0,0,1) forwards .05s}.magic-button:focus .path{animation:path 1.6s ease forwards .2s}.magic-button:focus .icon{animation:arrow 1s cubic-bezier(.7,-.5,.3,1.5) forwards}.char.state-2 span:after,.magic-button:focus .char.state-1 span{animation:charDisappear .5s ease forwards calc(var(--i) * .03s)}.magic-button:focus .char.state-2 span:after{animation:charAppear 1s ease backwards calc(var(--i) * .03s)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes charAppear{0%{transform:translateY(50%);opacity:0;filter:blur(20px)}20%{transform:translateY(70%);opacity:1}50%{transform:translateY(-15%);opacity:1;filter:blur(0)}to{transform:translateY(0);opacity:1}}@keyframes charDisappear{0%{transform:translateY(0);opacity:1}to{transform:translateY(-70%);opacity:0;filter:blur(3px)}}@keyframes arrow{0%{opacity:1}50%{transform:translate(60px);opacity:0}51%{transform:translate(-200px);opacity:0}to{transform:translate(-128px);opacity:1}}@keyframes swingArrow{50%{transform:translate(5px) scale(.9)}}@keyframes rotateArrowLine{50%{transform:rotate(30deg)}80%{transform:rotate(55deg)}}@keyframes rotateArrowLine2{50%{transform:rotate(330deg)}80%{transform:rotate(300deg)}}@keyframes resetArrow{0%{transform:translate(-128px)}to{transform:translate(0)}}@keyframes path{0%{stroke:#fff}to{stroke-dashoffset:-480;stroke:#f9c6fe}}@keyframes splash{to{stroke-dasharray:2 60;stroke-dashoffset:-60}}
