(() => { "use strict"; function escapeHtml(value) { return String(value ?? "").replace(/[&<>"']/g, (ch) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'", }[ch])); } function fmtNumber(value) { const n = Number(value || 0); return Number.isFinite(n) ? n.toLocaleString() : "0"; } function statusText(row) { if (row.Alive === false || row.alive === false) return "Dead"; return "Alive"; } function fitName(value, width) { const s = String(value || "—").trimEnd(); if (s.length <= width) return s.padEnd(width, " "); return s.slice(0, Math.max(0, width - 1)) + "…"; } function fitPoints(value, width) { return `${fmtNumber(value)} pts`.padStart(width, " "); } async function loadHomeHardcoreLeaderboard() { const list = document.querySelector("#home-hardcore-leaderboard-body"); if (!list) return; const cacheBucket = Math.floor(Date.now() / 300000); const urls = [ `/generated/hardcore-leaderboard-points.json?v=${cacheBucket}`, "/hardcore/leaderboard/points", ]; let rows = null; let lastError = null; for (const url of urls) { try { const res = await fetch(url, { credentials: "same-origin" }); if (!res.ok) { lastError = new Error(`${url}: HTTP ${res.status}`); continue; } const data = await res.json(); rows = Array.isArray(data) ? data : (data.rows || []); break; } catch (err) { lastError = err; } } if (!rows) { list.innerHTML = `