Там JS-ом переключается класс position: fixed и в зависимости от прокрутки меняется margin-top (отступ сверху), типа если край блока достиг края вьюпорта -> fixed, если и верхний край блока, и нижний находятся не касаются края вьюпорта, то выставляется margin-top текущей прокрутки (window.scrollY)
От этого и пляшем
нагугли про clientHeight, offsetY и scrollTop