function typeset() {
        if (window.MathJax && MathJax.typesetPromise) {
            MathJax.typesetPromise();
        } else if (window.MathJax && MathJax.startup && MathJax.startup.promise) {
            MathJax.startup.promise.then(function() {
                MathJax.typesetPromise && MathJax.typesetPromise();
            });
        }
    }

    function load() {
        var jobs = L.map(function(o) {
            return new FontFace(o.f, "url(" + o.u + ") format('woff2')", {
                weight: o.w,
                style: o.s,
                display: 'swap'
            }).load().then(function(ft) {
                document.fonts.add(ft);
            }).catch(function() {});
        });
        Promise.all(jobs).then(function() {
            document.documentElement.style.setProperty('--f-body', "'Source Serif 4',serif");
            document.documentElement.style.setProperty('--f-display', "'Marcellus',serif");
            typeset();
        });
    }
    'requestIdleCallback' in window ? requestIdleCallback(load, {
        timeout: 2000
    }) : window.addEventListener('load', function() {
        setTimeout(load, 200);
    });
    window.addEventListener('load', function() {
        setTimeout(typeset, 300);
    });
})();