(function () { function initAutoCarousel() { var track = document.querySelector("[data-carousel-track]"); if (!track) return; if (track.dataset.carouselInit === "1") return; track.dataset.carouselInit = "1"; var cards = Array.prototype.slice.call(track.children); if (!cards.length) return; cards.forEach(function (card) { track.appendChild(card.cloneNode(true)); }); var paused = false; var userPaused = false; var speed = 0.45; var resetAt = track.scrollWidth / 2; function tick() { if (!paused) { track.scrollLeft += speed; if (track.scrollLeft >= resetAt) { track.scrollLeft = 0; } } window.requestAnimationFrame(tick); } track.addEventListener("mouseenter", function () { paused = true; }); track.addEventListener("mouseleave", function () { paused = userPaused; }); track.addEventListener("focusin", function () { paused = true; }); track.addEventListener("focusout", function () { paused = userPaused; }); window.addEventListener("blur", function () { paused = true; }); window.addEventListener("focus", function () { paused = userPaused; }); var toggle = document.getElementById("updates-carousel-toggle"); if (toggle) { toggle.addEventListener("click", function () { userPaused = !userPaused; paused = userPaused; toggle.textContent = userPaused ? "Play" : "Pause"; toggle.setAttribute("aria-pressed", userPaused ? "true" : "false"); }); } window.requestAnimationFrame(tick); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initAutoCarousel); } else { initAutoCarousel(); } })();