.card-flip-container{perspective:1000px;width:100%}.card-flipper{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .8s;position:relative}.card-flipper.is-flipped{transform:rotateY(180deg)}.card-front{backface-visibility:hidden;z-index:1;width:100%;transform:rotateY(0)}.card-back{backface-visibility:hidden;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;transform:rotateY(180deg)}@media not all and (min-resolution:.001dpcm){@supports ((-webkit-appearance:none)){.card-front,.card-back{backface-visibility:hidden}.card-back{transform:rotateY(180deg)}}}.card-front label{transition:opacity .4s}.card-flipper.is-flipped .card-front label{opacity:0}.loading-spinner{width:60px;height:60px;margin:0 auto;position:relative}.spinner-ring{border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;width:100%;height:100%;animation:2s linear infinite contact-spin;position:absolute}.success-checkmark,.failure-mark{flex-direction:column;justify-content:center;align-items:center;animation:.3s ease-in-out contact-scale-up;display:flex}.check-circle,.fail-circle{background:#000;border-radius:50%;width:60px;height:60px;margin:0 auto;animation:.4s ease-in-out contact-circle-fill;position:relative}.fail-circle{background:red}.check-stroke{opacity:0;border-top:none;border-bottom:4px solid #fff;border-left:4px solid #fff;border-right:none;width:30px;height:15px;animation:.3s ease-in-out .4s forwards contact-check-stroke;position:absolute;top:50%;left:50%;transform:translate(-50%,-60%)rotate(-45deg)}.exclamation-mark{color:#fff;opacity:0;font-size:32px;font-weight:700;animation:.3s ease-in-out .4s forwards contact-check-stroke;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.peer:placeholder-shown~label{cursor:text;z-index:1}.peer:focus~label{cursor:default;color:hsl(var(--primary));z-index:1}.peer:focus{border-color:hsl(var(--primary))}.peer,textarea.peer{padding:.5rem .75rem!important}@media (max-width:1024px){.peer:invalid{box-shadow:none}.peer.border-red-500{border-width:1px}.peer.border-red-500:focus{border-color:hsl(var(--destructive));box-shadow:0 0 0 1px hsl(var(--destructive))}input:invalid,textarea:invalid{box-shadow:none}}@keyframes contact-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes contact-scale-up{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes contact-circle-fill{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes contact-check-stroke{0%{opacity:0}to{opacity:1}}
