.phase-line {
    position: relative;
    margin: 100px auto 50px;
    max-width: 1000px;
}

.phase-line::before {
    content: "";
    position: absolute;
    height: 1.5rem;
    width: 1.5rem;
    top: -50px;
    left: 0.25rem;
    border-radius: 50rem;
    background: rgb(var(--brand-clr-2));
    z-index: -1;
}

.phase-line::after {
    content: "";
    position: absolute;
    height: 6px;
    width: 6px;
    top: -50px;
    left: calc(1rem - 3px);
    border-radius: 50rem;
    background: rgb(var(--brand-clr-2));
    z-index: -1;
    animation: move-line var(--line-duration) linear forwards;
}

.phase-container {
    width: 100%;
    padding: 10px 20px 10px 50px;
    left: 0%;
}

.phase-no {
    position: absolute;
    top: 40px;
    left: 0px;
    width: 2rem;
    aspect-ratio: 1/1;
    border-radius: 50rem;
    text-align: center;
    background-color: rgb(var(--brand-clr-2));
}

.phase-container .arrow {
    border: 15px solid transparent;
    border-right: 15px solid rgb(var(--brand-clr-2));
    position: absolute;
    top: 34px;
    left: -28px;
    z-index: -2;
}

.phase {
    position: relative;
    padding: 20px 30px;
    border-radius: 10px;
    opacity: 0;
    background: linear-gradient(to right, rgb(var(--brand-clr-2)), rgb(var(--brand-clr-3)));
    background: var(--card-bg-clr);
    animation: move-left 0.5s ease var(--i) forwards;
}

.phase img {
    position: absolute;
    border-radius: 10px;
    object-fit: cover;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    z-index: -1;
    opacity: 0.5;
    filter: brightness(0.3);
}

.iips-div>div>div {
    border-radius: 1rem;
    max-width: 350px;
    width: calc(100vw - 1rem);
    background: var(--brand-bg-clr);
    background: var(--card-bg-clr);
    position: relative;
    z-index: 0;
    overflow: hidden;
}

.iips-div>div>div>img {
    position: absolute;
    top: 0px;
    left: 0px;
    object-fit: cover;
    width: 100%;
    height: 100%;
    filter: brightness(0.3);
    opacity: 1;
    transform: scale(1.5);
    z-index: -1;
    transition: all ease 300ms;
}

.iips-div>div>div>img.animate {
    opacity: 0.5;
    transform: scale(1);
}

.iips-div small {
    opacity: 0.4;
    font-weight: bold;
}

@keyframes move-line {
    to {
        height: calc(100% + 40px);
    }
}

@keyframes move-right {
    from {
        transform: translateX(-100px);
    }

    to {
        opacity: 1;
        transform: translateX(0px);
    }
}

@keyframes move-left {
    from {
        transform: translateX(100px);
    }

    to {
        opacity: 1;
        transform: translateX(0px);
    }
}

@media screen and (min-width: 768px) {
    .phase-line::after {
        left: calc(50% - 3px);
    }

    .phase-line::before {
        left: calc(50% - 0.75rem);
    }

    .phase-container {
        width: 50%;
        padding: 10px 50px;
    }

    .phase-container:nth-child(odd) {
        left: 50%;
    }

    .phase-container:nth-child(even)>.phase {
        animation: move-right var(--phase-duration) ease var(--i) forwards;
    }

    .phase-container:nth-child(odd)>.phase-no {
        margin-left: -1rem;
    }

    .phase-container:nth-child(even)>.phase-no {
        left: unset;
        right: 0px;
        margin-right: -1rem;
    }

    .phase-container:nth-child(even) .arrow {
        border: 15px solid transparent;
        border-left: 15px solid rgb(var(--brand-clr-3));
        left: unset;
        right: -28px;
    }

    .phase {
        padding: 20px 30px;
    }
}