/* ===== Vertical flow ===== */
.flow--vertical .flow__panel {
    position: relative;
    height: 320px;
    /* viewport for the list */
    overflow: hidden;
    display: grid;
    align-items: center;
}

/* vertical track */
.flow--vertical .flow__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    will-change: transform;
    transform: translateY(0);
    transition: transform 450ms cubic-bezier(.2, .7, .2, 1);
    padding: 6px 2px;
    margin: 0;
}

/* items */
.flow--vertical .flow__item {
    flex: 0 0 auto;
    width: min(720px, 100%);
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    padding: 12px 16px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .02);
    border: 1px solid rgba(11, 18, 32, .18);
    color: #0b1220;

    transition: transform .35s ease, opacity .35s ease, filter .35s ease,
        background .35s ease, box-shadow .35s ease, border-color .35s ease;
    opacity: .45;
    filter: blur(.4px);
}

/* active (centered) */
.flow--vertical .flow__item.is-active {
    opacity: 1;
    filter: none;
    transform: scale(1.03);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, 0)),
        linear-gradient(135deg, #423dfc22, #7271fb22);
    border-color: color-mix(in srgb, #423dfc, #7271fb 45%);
    box-shadow: 0 12px 30px rgba(66, 77, 254, .18), inset 0 1px 0 rgba(255, 255, 255, .25);
    z-index: 1;
}

/* icon + labels */
.flow--vertical .flow__icon {
    display: inline-grid;
    place-items: center;
}

.flow--vertical .flow__icon svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
    color: #7271fb;
}

.flow--vertical .flow__item.is-active .flow__icon svg {
    color: #423dfc;
}

.flow--vertical .flow__label {
    font-weight: 700;
    letter-spacing: .2px;
}

.flow--vertical .flow__status {
    font-weight: 700;
    opacity: .75
}

/* nice on small screens */
@media (max-width:576px) {
    .flow--vertical .flow__item {
        padding: 10px 12px;
        border-radius: 12px;
    }

    .flow--vertical .flow__icon svg {
        width: 20px;
        height: 20px;
    }
}

/* accessibility */
@media (prefers-reduced-motion: reduce) {
    .flow--vertical .flow__list {
        transition: none
    }

    .flow--vertical .flow__item {
        transition: none
    }
}