NEON STALKER: THE CORE NODES

HTML

<div id="ui">
        <h1 id="levelTitle">LEVEL 1: THE ENTRY</h1>
        <div class="stats" id="info">FIND THE BLUE DATA CORE</div>
        <div id="instructions">WASD TO MOVE | LOOK FOR THE GLITCH</div>
    </div>
    <canvas id="c" width="800" height="500"></canvas>

CSS

body { margin: 0; background: #111; display: flex; justify-content: center; align-items: center; height: 100vh; color: white; font-family: Courier, monospace; overflow: hidden;}
        #gameCanvas { border: 4px solid #fff; box-shadow: 0 0 20px #ff0000; display: block;}
        #ui { position: absolute; top: 10px; text-align: center; width: 400px; pointer-events: none;}body { margin: 0; background: #000; color: #0f0; font-family: 'Courier New', monospace; overflow: hidden; display: flex; flex-direction: column; align-items: center; }
        canvas { border: 2px solid #0f0; box-shadow: 0 0 20px #0f0; margin-top: 20px; }
        #ui { text-align: center; margin-top: 10px; }body { margin: 0; background: #000; color: #0f0; font-family: 'Courier New', monospace; overflow: hidden; display: flex; flex-direction: column; align-items: center; }
        canvas { border: 2px solid #0f0; box-shadow: 0 0 30px #040; margin-top: 20px; }
        #ui { text-align: center; margin-top: 10px; text-transform: uppercase; letter-spacing: 2px; }
        .stats { color: #0a0; font-size: 12px; margin-top: 5px; }body { margin: 0; background: #000; color: #070; font-family: 'Courier New', monospace; overflow: hidden; display: flex; flex-direction: column; align-items: center; }
        canvas { border: 2px solid #030; box-shadow: 0 0 40px #010; margin-top: 20px; }
        #ui { text-align: center; margin-top: 10px; text-transform: uppercase; }
        .stats { color: #050; font-size: 14px; margin-top: 5px; font-weight: bold; }body { 
            margin: 0; 
            background: #000; 
            color: #070; 
            font-family: 'Courier New', monospace; 
            overflow: hidden; 
            display: flex; 
            flex-direction: column; 
            align-items: center; 
        }
        canvas { 
            border: 2px solid #030; 
            box-shadow: 0 0 40px #010; 
            margin-top: 20px; 
            background-color: #000;
    ...

JavaScript

const canvas = document.getElementById("c");
    const ctx = canvas.getContext("2d");

    // --- LEVEL DATA CONFIGURATION ---
    const levels = [
        {
            title: "LEVEL 1: THE ENTRY",
            map: [
                [1,1,1,1,1,1,1,1],
                [1,0,0,0,0,0,0,1],
                [1,0,1,1,1,1,0,1],
                [1,0,1,2,0,0,0,1],
                [1,0,1,1,1,1,0,1],
                [1,0,0,0,0,0,0,1],
                [1,1,1,1,1,1,1,1]
            ],
            start: {x: 96, y: 96}
        },
        {
            title: "LEVEL 2: THE CORRIDORS",
            map: [
                [1,1,1,1,1,1,1,1,1,1,1,1],
                [1,0,0,0,1,0,0,0,0,0,0,1],
                [1,0,1,0,1,0,1,1,1,1,0,1],
                [1,0,1,0,0,0,1,2,0,1,0,1],
                [1,0,1,1,1,1,1,1,0,1,0,1],
                [1,0,0,0,0,0,0,0,0,1,0,1],
                [1,1,1,1,1,1,1,1,1,1,1,1]
            ],
            start: {x: 96, y: 96}
        },
        {
            title: "LEVEL 3: THE ZIG-ZAG",
            map: [
                [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
                [1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1],
                [1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1],
                [1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1],
                [1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1],
                [1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1],
                [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
            ],
            start: {x: 96, y: 96}
        },
        {
            title: "LEVEL 4: THE VOID",
            map: [
                [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
                [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
                [1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1],
                [1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1],
                [1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1],
                [1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1],
                [1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1],
               ...