.rainbow-btn{--transition:0.5s ease-out;--top:45%;position:relative;display:inline-flex;align-items:center;justify-content:center;height:64px;max-height:64px;min-height:64px;padding:0 28px;border-radius:999px;font-weight:500;overflow:hidden;border-width:3px;border-style:solid;z-index:1}.icon-wrap{display:inline-flex;margin-right:10px;z-index:2}.icon{transition:transform .3s ease-out}.rainbow-btn__text{position:relative;z-index:2;display:inline-block;overflow:hidden}.after-text,.before-text{transition:transform .5s ease-out}.after-text{position:absolute}.rainbow-btn__layers{background:transparent;border-radius:inherit;position:absolute;inset:0;z-index:0;transition:var(--transition);overflow:hidden;pointer-events:none}.rainbow-btn__layer{aspect-ratio:1/1;border-radius:99rem;position:absolute;inset:-20px;top:var(--top);translate:0 3rem;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.6s;opacity:.9}.rainbow-btn__layer.first{background:cyan}.rainbow-btn__layer.second{background:#B46AFF;inset:-15px;top:calc(var(--top) + 10px);transition-duration:.4s}.rainbow-btn__layer.third{inset:-10px;top:calc(var(--top) + 20px);transition-duration:.2s}@media (hover:hover) and (pointer:fine){.rainbow-btn:hover .icon{transform:translateX(3px)}.rainbow-btn:hover .rainbow-btn__layers{transform:scale(.9)}.rainbow-btn:hover .rainbow-btn__layer.first{translate:0 -100%;transition-duration:.8s}.rainbow-btn:hover .rainbow-btn__layer.second{translate:0 -80%}.rainbow-btn:hover .rainbow-btn__layer.third{translate:0 -60%;transition-duration:1s}.rainbow-btn:hover .after-text,.rainbow-btn:hover .before-text{transform:translateY(-100%)}}@media (hover:none){.rainbow-btn:active .rainbow-btn__layers{transform:scale(.9)}.rainbow-btn:active .rainbow-btn__layer.first{translate:0 -100%;transition-duration:.8s}.rainbow-btn:active .rainbow-btn__layer.second{translate:0 -80%}.rainbow-btn:active .rainbow-btn__layer.third{translate:0 -60%;transition-duration:1s}.rainbow-btn:active .after-text,.rainbow-btn:active .before-text{transform:translateY(-100%)}}