document.addEventListener('DOMContentLoaded', function () { function fitTitles() { var cards = document.querySelectorAll('.post-card'); cards.forEach(function (card) { var h2 = card.querySelector('.gradient-container h2'); if (!h2) return; var container = h2.closest('.gradient-container'); var maxHeight = container.clientHeight; var fontSize = parseFloat(window.getComputedStyle(h2).fontSize); var minSize = 12; h2.style.fontSize = ''; fontSize = parseFloat(window.getComputedStyle(h2).fontSize); while (h2.scrollHeight > maxHeight && fontSize > minSize) { fontSize -= 1; h2.style.fontSize = fontSize + 'px'; } }); } window.fitPostCardTitles = fitTitles; fitTitles(); var resizeTimer; window.addEventListener('resize', function () { clearTimeout(resizeTimer); resizeTimer = setTimeout(fitTitles, 200); }); // Re-fit after infinite scroll loads new cards var observer = new MutationObserver(function (mutations) { mutations.forEach(function (m) { if (m.addedNodes.length) fitTitles(); }); }); var grid = document.getElementById('post-grid'); if (grid) { observer.observe(grid, { childList: true }); } });