@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap');

.message-holder {
    position: absolute;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100%;
    height: 100%;
    inset: 0;
    z-index: 1000 !important;
    background: var(--background-color);
}

.success-message,
.error-message,
.loading-message {
    text-align: center;  
    font-family: var(--nunito);
    text-transform: uppercase;
    user-select: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.5rem;
    align-items: center;
}

.success-message-icon,
.error-message-icon,
.loading-message-icon {
    width: 75px;
    height: 75px;
    display: block;
    margin: 0 auto;
}

.loading-message-icon {
    animation: loading-message-rotate 900ms linear infinite;
}

.success-message-icon circle,
.error-message-icon circle {
    transform-origin: center;
    transform-box: fill-box;
    transform: scale(0);
    transition:
        transform 350ms cubic-bezier(.22, .96, .38, .98);
}

.success-message-icon circle {
    fill: var(--success-color);
}

.error-message-icon circle {
    fill: var(--delayed-color);
}

.success-message-check,
.error-message-cross {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition:
        stroke-dashoffset 450ms ease;
    transition-delay: 250ms;
}

.success-message-title,
.error-message-title,
.loading-message-title {
    color: var(--message-color);
    transform: translateY(25px);
    opacity: 0;
    transition:
        transform 300ms ease,
        opacity 300ms ease;
    transition-delay: 500ms;
    font-size: 1rem;
    padding: 0.5rem;
    border-radius: 0.5rem;
}

.loading-message-title {
    transition-delay: 150ms;
    margin-top: 1rem;
    background: var(--text-color);
}

.success-message-title {
    background: var(--success-color);
}

.error-message-title {
    background: var(--delayed-color);
}

.message-holder.active .success-message .success-message-icon circle,
.message-holder.active .error-message .error-message-icon circle {
    transform: scale(1);
}


.message-holder.active .success-message .success-message-check,
.message-holder.active .error-message .error-message-cross {
    stroke-dashoffset: 0;
}

.message-holder.active .success-message .success-message-title,
.message-holder.active .error-message .error-message-title,
.message-holder.active .loading-message .loading-message-title  {
    transform: translateY(0);
    opacity: 1;
}

.loading-message-spinner {
    fill: none;
    stroke: var(--text-color);
    stroke-width: 6;
    stroke-linecap: round;
    stroke-dasharray: 150 70;
}

@keyframes loading-message-rotate {
    to {
        transform: rotate(360deg);
    }
}