'use strict'; /* ============================================================ NEON SURVIVORS — main.js : bootstrap ============================================================ */ (function boot() { Store.load(); const canvas = document.getElementById('game'); window.GAME = new Game(canvas); UI.init(GAME); GAME.applySettings(); // leave the splash setTimeout(() => { UI.showScreen('scr-menu'); }, 450); // unlock WebAudio on first user gesture const kick = () => { Snd.init(); }; window.addEventListener('pointerdown', kick); window.addEventListener('keydown', kick); // PWA service worker (https only; plain http still runs without SW) if ('serviceWorker' in navigator && /^https:/.test(location.protocol)) { window.addEventListener('load', () => { navigator.serviceWorker.register('sw.js').catch(() => {}); }); } // block context menu / double-tap zoom on mobile window.addEventListener('contextmenu', e => e.preventDefault()); })();