/* 3D "Join today" button (closing card): outline draws in, splash lines burst, letters swap to "Join now" on hover */
.join3d{position:relative;display:inline-block;margin:0 0 28px;isolation:isolate;-webkit-tap-highlight-color:transparent}
.join3d-wrap{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;height:56px;min-width:224px;padding:0 36px;border-radius:999px;background:var(--fg,var(--text));color:var(--bg);font:600 15px/1 var(--fs,var(--fb,Inter,sans-serif));letter-spacing:.01em;box-shadow:0 1px 0 rgba(var(--fgr),.2),0 10px 22px -10px rgba(var(--fgr),.5),inset 0 -3px 0 rgba(var(--bgr),.22);transition:transform .18s ease,box-shadow .18s ease}
.join3d:hover .join3d-wrap{transform:translateY(-2px);box-shadow:0 1px 0 rgba(var(--fgr),.2),0 16px 30px -12px rgba(var(--fgr),.6),inset 0 -3px 0 rgba(var(--bgr),.22)}
.join3d:active .join3d-wrap{transform:translateY(1px);box-shadow:0 1px 0 rgba(var(--fgr),.2),0 6px 14px -8px rgba(var(--fgr),.5),inset 0 -1px 0 rgba(var(--bgr),.22)}
.join3d-path{position:absolute;left:-5px;top:-5px;width:calc(100% + 10px);height:calc(100% + 10px);pointer-events:none;overflow:visible}
.join3d-path path{fill:none;stroke:#39C5B5;stroke-width:3;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520;transition:stroke-dashoffset .9s ease}
[data-theme="light"] .join3d-path path{stroke:#2db3a3}
.join3d:hover .join3d-path path,.join3d:focus-visible .join3d-path path{stroke-dashoffset:0}
.join3d-splash{position:absolute;left:50%;top:50%;width:342px;height:208px;transform:translate(-50%,-50%);pointer-events:none;z-index:0}
.join3d-splash path{fill:none;stroke:#39C5B5;stroke-width:3;stroke-linecap:round;stroke-dasharray:110;stroke-dashoffset:110;opacity:0}
.join3d-splash path.soft{stroke-opacity:.35}
[data-theme="light"] .join3d-splash path{stroke:#2db3a3}
.join3d:hover .join3d-splash path,.join3d:focus-visible .join3d-splash path{animation:join3dSplash .85s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes join3dSplash{0%{stroke-dashoffset:110;opacity:0}25%{opacity:1}100%{stroke-dashoffset:-110;opacity:0}}
.join3d-content{display:grid;height:1em;overflow:hidden}
.join3d-char{grid-area:1/1;justify-self:center;display:inline-flex;white-space:nowrap}
.join3d-char span{display:inline-block;transition:transform .38s cubic-bezier(.2,.7,.2,1),opacity .3s ease;transition-delay:calc(var(--i,0)*28ms)}
.join3d-char .sp{width:.32em}
.join3d-char.s2 span{transform:translateY(130%);opacity:0}
.join3d:hover .join3d-char.s1 span,.join3d:focus-visible .join3d-char.s1 span{transform:translateY(-130%);opacity:0}
.join3d:hover .join3d-char.s2 span,.join3d:focus-visible .join3d-char.s2 span{transform:translateY(0);opacity:1}
@media (prefers-reduced-motion:reduce){.join3d *{transition:none!important;animation:none!important}.join3d-char.s2{display:none}}
