Итак, решения которые приходят в голову:
1) CSS clip-path: polygon(%цифры или проценты%) - по идее самое идеальное решение, но поддержка браузерами вас вряд ли порадует.
2) SVG. То есть берете прозрачный див, внутрь кладете SVG polygon/path с position: absolute и примененным к нему svg фильтром для box-shadow. Адаптивности можно легко добиться с помощью аттрибутов viewBox и preserveAspectRatio. Ну и соответственно поверх свг идет контент, который лежит внутри дива.
3) Картинка. Ужасный вариант, забудьте :)
4) Какие-нибудь адские хаки с :before, :after. На фоне свг вообще не боец.
Сырая демка -
codepen.io/suez/pen/2d7d1453a9d842b85ae307e4244cc237