/* ---------- archive toolbar + filter (co-located with the grid it controls) ---------- */
.archive-toolbar {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.archive-toolbar__count {
    font-size: 13px;
    color: var(--ink-soft);
    white-space: nowrap;
}

.archive-toolbar__count b {
    color: var(--ink);
}

.archive-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 36px;
}

.archive-filter-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 18px 8px 8px;
    border-radius: var(--radius-pill);
    background: var(--white);
    border: 1px solid var(--ink-faint);
    transition: background-color .2s ease, border-color .2s ease;
}

.archive-filter-chip:hover:not(.is-active) {
    background: var(--accent-soft);
    border-color: var(--accent-dark);
}

.archive-filter-chip__icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    background: var(--accent-soft);
    color: var(--accent-text);
}

.archive-filter-chip__icon svg {
    width: 15px;
    height: 15px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
}

.archive-filter-chip span {
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--ink-soft);
}

.archive-filter-chip.is-active {
    background: var(--ink);
    border-color: var(--ink);
}

.archive-filter-chip.is-active .archive-filter-chip__icon {
    background: var(--accent);
    color: var(--ink);
}

.archive-filter-chip.is-active span {
    color: var(--white);
}

@media (max-width: 768px) {
    .archive-filter-bar {
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    .archive-filter-bar::-webkit-scrollbar {
        display: none;
    }

    .archive-filter-chip {
        flex: 0 0 auto;
        scroll-snap-align: start;
        white-space: nowrap;
    }
}

/* ---------- archive grid ---------- */
.activity-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
}

.activity-grid .activity-card {
    flex: 1 1 300px;
    max-width: 380px;
    width: auto;
    scroll-snap-align: none;
    transition: opacity .32s cubic-bezier(.16, 1, .3, 1), transform .32s cubic-bezier(.16, 1, .3, 1);
}

.activity-grid .activity-card.is-entering {
    opacity: 0;
    transform: scale(.94) translateY(6px);
}

.activities__empty.archive-empty {
    display: none;
    width: 100%;
}

.activities__empty.archive-empty.is-visible {
    display: block;
}
