body{
    font-family: 'Poppins', sans-serif;
}

.story-cards{
    max-width:700px;
    margin:40px auto;
    padding:0 18px;
    display:flex;
    flex-direction:column;
    gap:18px;
}

.story-card{

    background:#fff;

    border-radius:22px;

    padding:24px;

    border:1px solid #E8ECEF;

    transition: all .3s ease;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

}

.story-card:hover{

    transform:translateY(-3px);

    border-color:#0F766E;

}

.story-top{

    display:flex;

    justify-content:space-between;

    align-items:flex-end;

}

.story-count{

    font-size:52px;

    font-weight:700;

    color:#0F766E;

    line-height:1;

}

.story-total{

    color:#6B7280;

    font-size:15px;

}

.story-progress{

    height:10px;

    background:#EEF2F4;

    border-radius:100px;

    overflow:hidden;

    margin:20px 0;

}

.story-progress-fill{

    height:100%;

    background:#0F766E;

    border-radius:100px;

}

.story-text{

    font-size:20px;

    line-height:1.6;

    color:#374151;

}

.story-text strong{

    color:#111827;

}

.stat-dots {
    display: grid;
    grid-template-columns: repeat(21, 1fr);
    gap: 7px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #E8ECEF;
}

.stat-dots span {
    width: 7px;
    height: 7px;
    background: #D9E1E3;
    border-radius: 50%;
}

.stat-dots span.active {
    background: #0F766E;
}

.stat-dots::after {
    content: "Green = represented   •   Grey = remaining";
    grid-column: 1 / -1;
    font-size: 11px;
    color: #6B7280;
    margin-top: 6px;
}

.stat-dots span {
    animation: dotAppear .25s ease both;
}

@keyframes dotAppear {
    from {
        opacity: 0;
        transform: scale(0.5);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}


@media (max-width:768px){

    .story-cards{
        width:100%;
        padding:0 16px;
        gap:16px;
    }

    .story-card{
        padding:22px;
    }

    .story-number{
        font-size:3rem;
    }

    .story-title{
        font-size:1.15rem;
    }

    .stat-dots {
        grid-template-columns: repeat(18, 1fr);
        gap: 8px;
        margin-top: 20px;
    }

}