На счет шрифта, для
@font-face
добавляем
font-display: swap;
, для установки шрифта
*, body { ... }
, и там где еще необходимо,
font-family: 'Ваш шрифт', дефолтные шрифты;
(
font-family: 'Assistant', 'Segoe UI', Arial, Helvetica, sans-serif;
). Таким образом, будет отображен первый доступный шрифт, а после загрузки - Ваш.
UPD:
На счет красивого хэдера, можно сделать так:
const header = document.querySelector('.header');
const maxHeight = window.innerHeight;
const minHeight = 150;
window.addEventListener('scroll', () => {
const height = Math.max(minHeight, maxHeight - window.scrollY);
header.style.setProperty('height', `${height}px`);
});