Можно просто задать transition с разным transition-delay.. Хотя, если jQuery подключен, судя по тэгам вопроса, можно проще https://jsfiddle.net/qeqd310r/
Ну, судя по картинке, там сверху тоже какой-то блок - задать ему больший z-index. Или position: relative/ Ну, в общем, чтоб он сверху и снизу другими блоками перекрывался. Или сделать псевдоэлементом с внутренней тенью или градиентом
что-то типа box-shadow: inset 0px 10px 5px -5px - последнее значение как-бы растягивает или сжимает всю тень. Но если тень внутренняя - то наоборот. То есть в данном случае будет внутренняя тень, но как будто бы от блока на 5px большего во все стороны. По этому будет видно только тень сверху
У верхнего блока position: fixed и top меняется по onscroll в 2 раза мленнее, чем scrollTop. У основного контента z-index больше, по этому он "наезжает" на шапку
Ну, вот если сделать порядок выводе в 2-х строчном виде немного другой
картинка-1 текст-1 картинка-2
текст-3 картинка-3 текст-2;
то можно так: https://jsfiddle.net/trushka/xq9daLy5/1/
Только там надо будет задавать фиксированный размер списку в зависимости от размера экрана, чтоб "правый" элемент не съезжал
upd: исправил немного: https://jsfiddle.net/trushka/xq9daLy5/2/
Можно задавать для квадрата и треугольника размеры в em, тогда размеры конвертика будут меняться изменением font-size.
А если он должен адаптивно в зависимости от размера страницы меняться - то в vw задать можно
А лучше нарисовать треугольничек на svg полигоном и вставить как background-image, растянув на всю ширину
https://jsfiddle.net/trushka/g3335tL9/
Можно так примерно. Ну, сдвиги в скрипте и в css надо будет подобрать в зависимости от используемого шрифта и размеров
Фон можно сделать из нескольких повторяющихся паттернов полупрозрачных разных размеров - принцип цикады. + наложить сверху "изгибы". Ну а всякие фоны элементов и рисуночки тоже отдельными слоями. Рисуночки лучше сделать png с прозрачностью, причём, есть сервис очень эффективно их сжимающий - tinypng.com