.capabilities { background: var(--paper); padding: 7rem 0 7rem; overflow: hidden; }
.cap-head { margin-bottom: 2.8rem; }
.cap-head h3 { margin-top: 0.9rem; font-weight: 500; max-width: 24ch; }

.marquee {
    position: relative;
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.marquee + .marquee { margin-top: 16px; }

.marquee-track {
    display: flex;
    width: max-content;
    gap: 14px;
    padding: 4px 7px;
    animation: marquee-left 40s linear infinite;
}
.marquee-track.reverse { animation-name: marquee-right; }

.marquee:hover .marquee-track { animation-play-state: paused; }

@keyframes marquee-left {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes marquee-right {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}

.cap-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    flex-shrink: 0;
    padding: 0.7rem 1.1rem;
    background: var(--paper-2);
    border-radius: var(--pill);
    font-family: var(--font-mono);
    font-size: 0.82rem;
    color: var(--text-on-light-soft);
}
.cap-chip svg { width: 18px; height: 18px; color: var(--violet-700); flex-shrink: 0; }

@media (prefers-reduced-motion: reduce) {
    .marquee {
        -webkit-mask-image: none;
        mask-image: none;
    }
    .marquee-track,
    .marquee-track.reverse {
        animation: none;
        flex-wrap: wrap;
        width: 100%;
        justify-content: center;
    }
    .marquee + .marquee { display: none; }
}

@media (max-width: 768px) {
    .capabilities { padding: 4.5rem 0; }
}
