/* ================= PRELOADER ================= */
#preloader {
    position: fixed;
    inset: 0;
    background: var(--default-purple-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 2000;
}

.preloader-logo {
    font-size: 3rem;
    font-weight: 700;
    color: var(--default-green-color);
    text-shadow: 0px 0px 10px var(--neon-1), 0px 0px 20px var(--neon-2);
    animation: float 2s ease-in-out infinite alternate;
    margin-bottom: 20px;
}

@keyframes float {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(-20px);
    }
}

/* Ring Loader */
.loader-ring {
    position: relative;
    width: 180px;
    height: 180px;
}

    .loader-ring svg {
        width: 100%;
        height: 100%;
        transform: rotate(-90deg);
    }

.bg {
    fill: none;
    stroke: rgba(255, 255, 255, 0.1);
    stroke-width: 10;
}

.progress {
    fill: none;
    stroke: var(--default-green-color);
    stroke-width: 10;
    stroke-linecap: round;
    stroke-dasharray: 458;
    stroke-dashoffset: 458;
}

/* NEW Neon Glow Rings */
.neon-ring {
    position: absolute;
    inset: -20px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    box-shadow: 0 0 25px var(--neon-1), 0 0 50px var(--neon-2), 0 0 80px var(--neon-1);
    filter: blur(1px);
}

/* Percentage */
.percent {
    margin-top: 40px;
    font-size: 2rem;
    font-weight: 800;
    color: var(--default-green-color);
}

/* Loading Text */
.loading-text {
    color: #fff;
    margin-top: 10px;
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: 1px;
}

    .loading-text span {
        display: inline-block;
        animation: bounce 1s infinite;
    }

        .loading-text span:nth-child(2) {
            animation-delay: .2s;
        }

        .loading-text span:nth-child(3) {
            animation-delay: .4s;
        }

@keyframes bounce {
    50% {
        transform: translateY(-4px);
    }
}

/* Tick */
.checkmark {
    width: 60px;
    height: 60px;
    background: transparent;
    display: none;
    margin-top: 20px;
}

    .checkmark path {
        stroke: #34c182;
        stroke-width: 6;
        stroke-linecap: round;
        stroke-dasharray: 36.7;
        stroke-dashoffset: 36.7;
        animation: draw 0.6s forwards 0.5s;
        fill: none;
    }

@keyframes draw {
    to {
        stroke-dashoffset: 0;
    }
}
