Проблема не в слайдере —
overflow:hidden и есть причина. Он всегда режет box-shadow, потому что тень технически "вылезает" за границы элемента.
Фикс: добавь паддинг на viewport слайдера и скомпенсируй отрицательным маргином:
.slider-viewport {
overflow: hidden;
padding: 20px; /* ≥ blur + spread + offset твоей тени */
margin: -20px;
box-sizing: border-box;
}
Карточки 4–6 скрывать не нужно — они просто уходят за край viewport'а. Двигай весь трек через
transform: translateX(), тогда и JS-скрытие не понадобится.
p.s.
display:none на карточках ломает расчёт ширин слайдера — отсюда и "не работает".