// Load leaderboard via Cloudflare Worker proxy async function fetchLeaderboard() { try { const realUrl = `${RANKORA_API_BASE}/leaderboards/${RANKORA_LEADERBOARD_ID}/entries?limit=10`; const proxyUrl = `https://restless-paper-f890.sfguy2.workers.dev/?target=${encodeURIComponent(realUrl)}`; const res = await fetch(proxyUrl); if (!res.ok) throw new Error(`HTTP ${res.status}`); const data = await res.json(); renderLeaderboard(data.entries); } catch (err) { console.error("fetchLeaderboard failed:", err); } } // Submit score via Cloudflare Worker proxy async function submitScore(playerName, score) { try { const realUrl = `${RANKORA_API_BASE}/leaderboards/${RANKORA_LEADERBOARD_ID}/entries`; const proxyUrl = `https://restless-paper-f890.sfguy2.workers.dev/?target=${encodeURIComponent(realUrl)}`; const payload = { name: playerName, score: score }; const res = await fetch(proxyUrl, { method: "POST", headers: { "Content‑Type": "application/json" }, body: JSON.stringify(payload) }); if (!res.ok) throw new Error(`HTTP ${res.status}`); await res.json(); await fetchLeaderboard(); // refresh leaderboard after submit } catch (err) { console.error("submitScore failed:", err); } }