if (!window.__tvctlCursor) window.__tvctlCursor = (() => {
const DELAY_MS = 10000;
const fullscreen = matchMedia("(display-mode: fullscreen)");
let timer = null;
let style = null;
let pointer = null;
function restore() {
if (timer !== null) clearTimeout(timer);
timer = null;
if (style) style.remove();
}
function active() {
return fullscreen.matches || !!document.fullscreenElement;
}
function wake() {
restore();
if (!active()) return;
timer = setTimeout(() => {
timer = null;
if (!active()) return;
if (!style) {
style = document.createElement("style");
style.textContent = "*, *::before, *::after { cursor: none !important; }";
}
document.documentElement.appendChild(style);
}, DELAY_MS);
}
window.addEventListener("mousemove", (e) => {
const next = [e.screenX, e.screenY];
if (pointer && next[0] === pointer[0] && next[1] === pointer[1]) return;
pointer = next;
wake();
}, true);
fullscreen.addEventListener("change", wake);
document.addEventListener("fullscreenchange", wake);
wake();
return { wake };
})();