{"id":24757,"date":"2024-02-10T14:06:32","date_gmt":"2024-02-10T14:06:32","guid":{"rendered":"https:\/\/levelplaytech.com\/?page_id=24757"},"modified":"2026-09-04T04:03:34","modified_gmt":"2026-09-04T04:03:34","slug":"under-construction","status":"publish","type":"page","link":"https:\/\/levelplaytech.com\/it\/under-construction\/","title":{"rendered":"Under Construction"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; height=&#8221;920px&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; background_enable_image=&#8221;off&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_row custom_padding_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||||false|false&#8221; custom_padding_tablet=&#8221;39vh||||false|false&#8221; custom_padding_phone=&#8221;10vh||||false|false&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.24.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.24.0&#8243; _module_preset=&#8221;default&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_font_size_tablet=&#8221;&#8221; header_font_size_phone=&#8221;23px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; header_3_font_size_tablet=&#8221;&#8221; header_3_font_size_phone=&#8221;16px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3 style=\"text-align: center;\">WARNING!<\/h3>\n<h1 style=\"text-align: center;\">UNDER CONSTRUCTION<\/h1>\n<p style=\"text-align: center;\">This site is being levelled.<\/p>\n<p>[\/et_pb_text][et_pb_code _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]<!-- ============================================================<!-- [et_pb_line_break_holder] -->  LEVELPLAY ARCADE \u2014 &#8220;Street Kick&#8221;<!-- [et_pb_line_break_holder] -->  Paste this WHOLE block into a Divi CODE MODULE (not a Text module).<!-- [et_pb_line_break_holder] -->  Self-contained: no external files, no dependencies, no build step.<!-- [et_pb_line_break_holder] -->  See the instructions at the very bottom of this file (inside comments)<!-- [et_pb_line_break_holder] -->  for how to embed it and what&#8217;s easy to customize.<!-- [et_pb_line_break_holder] -->============================================================= &#8211;><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"lp-game-root\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<style><!-- [et_pb_line_break_holder] -->    #lp-game-root {<!-- [et_pb_line_break_holder] -->      --lp-orange: #e8531f;<!-- [et_pb_line_break_holder] -->      --lp-orange-dark: #6a2e0d;<!-- [et_pb_line_break_holder] -->      --lp-cream: #f4f2e6;<!-- [et_pb_line_break_holder] -->      --lp-black: #000000;<!-- [et_pb_line_break_holder] -->      --lp-panel: rgba(10,10,10,0.92);<!-- [et_pb_line_break_holder] -->      position: relative;<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      max-width: 1200px;<!-- [et_pb_line_break_holder] -->      margin: 0 auto;<!-- [et_pb_line_break_holder] -->      aspect-ratio: 16 \/ 9;<!-- [et_pb_line_break_holder] -->      background: #000;<!-- [et_pb_line_break_holder] -->      overflow: hidden;<!-- [et_pb_line_break_holder] -->      border-radius: 4px;<!-- [et_pb_line_break_holder] -->      font-family: 'Press Start 2P', 'Courier New', monospace;<!-- [et_pb_line_break_holder] -->      -webkit-user-select: none;<!-- [et_pb_line_break_holder] -->      user-select: none;<!-- [et_pb_line_break_holder] -->      touch-action: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/* Fallback for browsers without aspect-ratio support *\/<!-- [et_pb_line_break_holder] -->    @supports not (aspect-ratio: 16 \/ 9) {<!-- [et_pb_line_break_holder] -->      #lp-game-root { height: 0; padding-bottom: 56.25%; }<!-- [et_pb_line_break_holder] -->      #lp-game-root > * { position: absolute; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #lp-canvas {<!-- [et_pb_line_break_holder] -->      position: absolute;<!-- [et_pb_line_break_holder] -->      inset: 0;<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      height: 100%;<!-- [et_pb_line_break_holder] -->      display: block;<!-- [et_pb_line_break_holder] -->      image-rendering: pixelated;<!-- [et_pb_line_break_holder] -->      image-rendering: -moz-crisp-edges;<!-- [et_pb_line_break_holder] -->      image-rendering: crisp-edges;<!-- [et_pb_line_break_holder] -->      cursor: crosshair;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-overlay {<!-- [et_pb_line_break_holder] -->      position: absolute;<!-- [et_pb_line_break_holder] -->      inset: 0;<!-- [et_pb_line_break_holder] -->      display: flex;<!-- [et_pb_line_break_holder] -->      flex-direction: column;<!-- [et_pb_line_break_holder] -->      align-items: center;<!-- [et_pb_line_break_holder] -->      justify-content: center;<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->      color: var(--lp-cream);<!-- [et_pb_line_break_holder] -->      background: var(--lp-panel);<!-- [et_pb_line_break_holder] -->      padding: 4%;<!-- [et_pb_line_break_holder] -->      box-sizing: border-box;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-hidden { display: none !important; }<!-- [et_pb_line_break_holder] -->    .lp-title {<!-- [et_pb_line_break_holder] -->      color: var(--lp-orange);<!-- [et_pb_line_break_holder] -->      font-size: clamp(16px, 4vw, 34px);<!-- [et_pb_line_break_holder] -->      letter-spacing: 2px;<!-- [et_pb_line_break_holder] -->      margin: 0 0 3vh 0;<!-- [et_pb_line_break_holder] -->      text-shadow: 3px 3px 0 var(--lp-orange-dark);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-sub {<!-- [et_pb_line_break_holder] -->      font-size: clamp(8px, 1.4vw, 13px);<!-- [et_pb_line_break_holder] -->      line-height: 2;<!-- [et_pb_line_break_holder] -->      margin-bottom: 3vh;<!-- [et_pb_line_break_holder] -->      max-width: 90%;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-sub .k {<!-- [et_pb_line_break_holder] -->      color: var(--lp-orange);<!-- [et_pb_line_break_holder] -->      background: rgba(232,83,31,0.15);<!-- [et_pb_line_break_holder] -->      border: 1px solid var(--lp-orange);<!-- [et_pb_line_break_holder] -->      padding: 2px 6px;<!-- [et_pb_line_break_holder] -->      border-radius: 3px;<!-- [et_pb_line_break_holder] -->      margin: 0 3px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-btn {<!-- [et_pb_line_break_holder] -->      font-family: inherit;<!-- [et_pb_line_break_holder] -->      font-size: clamp(9px, 1.6vw, 14px);<!-- [et_pb_line_break_holder] -->      background: var(--lp-orange);<!-- [et_pb_line_break_holder] -->      color: #1a0a02;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->      padding: 1.4em 2em;<!-- [et_pb_line_break_holder] -->      cursor: pointer;<!-- [et_pb_line_break_holder] -->      border-radius: 3px;<!-- [et_pb_line_break_holder] -->      letter-spacing: 1px;<!-- [et_pb_line_break_holder] -->      box-shadow: 0 4px 0 var(--lp-orange-dark);<!-- [et_pb_line_break_holder] -->      transition: transform 0.08s ease;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-btn:active { transform: translateY(4px); box-shadow: none; }<!-- [et_pb_line_break_holder] -->    .lp-btn.secondary {<!-- [et_pb_line_break_holder] -->      background: transparent;<!-- [et_pb_line_break_holder] -->      color: var(--lp-cream);<!-- [et_pb_line_break_holder] -->      border: 2px solid var(--lp-cream);<!-- [et_pb_line_break_holder] -->      box-shadow: none;<!-- [et_pb_line_break_holder] -->      margin-left: 10px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-score-big {<!-- [et_pb_line_break_holder] -->      color: var(--lp-cream);<!-- [et_pb_line_break_holder] -->      font-size: clamp(20px, 5vw, 40px);<!-- [et_pb_line_break_holder] -->      margin: 1vh 0 2vh 0;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-score-big span { color: var(--lp-orange); }<!-- [et_pb_line_break_holder] -->    .lp-newbest {<!-- [et_pb_line_break_holder] -->      color: var(--lp-orange);<!-- [et_pb_line_break_holder] -->      font-size: clamp(9px, 1.6vw, 14px);<!-- [et_pb_line_break_holder] -->      margin-bottom: 1.5vh;<!-- [et_pb_line_break_holder] -->      animation: lp-pulse 1s infinite;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    @keyframes lp-pulse { 0%,100%{opacity:1;} 50%{opacity:0.4;} }<!-- [et_pb_line_break_holder] -->    .lp-name-row { display:flex; gap:8px; margin-bottom: 2vh; }<!-- [et_pb_line_break_holder] -->    .lp-name-row input {<!-- [et_pb_line_break_holder] -->      font-family: inherit;<!-- [et_pb_line_break_holder] -->      font-size: clamp(9px, 1.6vw, 13px);<!-- [et_pb_line_break_holder] -->      background: #111;<!-- [et_pb_line_break_holder] -->      border: 2px solid var(--lp-orange);<!-- [et_pb_line_break_holder] -->      color: var(--lp-cream);<!-- [et_pb_line_break_holder] -->      padding: 0.8em;<!-- [et_pb_line_break_holder] -->      width: 10em;<!-- [et_pb_line_break_holder] -->      text-transform: uppercase;<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->      letter-spacing: 3px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-leaderboard {<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      max-width: 360px;<!-- [et_pb_line_break_holder] -->      font-size: clamp(8px, 1.3vw, 12px);<!-- [et_pb_line_break_holder] -->      margin-bottom: 2.5vh;<!-- [et_pb_line_break_holder] -->      max-height: 26vh;<!-- [et_pb_line_break_holder] -->      overflow-y: auto;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-leaderboard ol { list-style: none; margin: 0; padding: 0; }<!-- [et_pb_line_break_holder] -->    .lp-leaderboard li {<!-- [et_pb_line_break_holder] -->      display: flex;<!-- [et_pb_line_break_holder] -->      justify-content: space-between;<!-- [et_pb_line_break_holder] -->      padding: 6px 10px;<!-- [et_pb_line_break_holder] -->      border-bottom: 1px solid rgba(244,242,230,0.15);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .lp-leaderboard li.lp-me { color: var(--lp-orange); }<!-- [et_pb_line_break_holder] -->    .lp-leaderboard .rank { color: #888; width: 2em; }<!-- [et_pb_line_break_holder] -->    .lp-btn-row { display: flex; align-items: center; }<!-- [et_pb_line_break_holder] -->    .lp-mute {<!-- [et_pb_line_break_holder] -->      position: absolute;<!-- [et_pb_line_break_holder] -->      top: 3%;<!-- [et_pb_line_break_holder] -->      right: 3%;<!-- [et_pb_line_break_holder] -->      z-index: 5;<!-- [et_pb_line_break_holder] -->      background: rgba(0,0,0,0.5);<!-- [et_pb_line_break_holder] -->      border: 1px solid var(--lp-cream);<!-- [et_pb_line_break_holder] -->      color: var(--lp-cream);<!-- [et_pb_line_break_holder] -->      font-family: inherit;<!-- [et_pb_line_break_holder] -->      font-size: 10px;<!-- [et_pb_line_break_holder] -->      padding: 6px 8px;<!-- [et_pb_line_break_holder] -->      cursor: pointer;<!-- [et_pb_line_break_holder] -->      border-radius: 3px;<!-- [et_pb_line_break_holder] -->      line-height: 1;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/* touch controls *\/<!-- [et_pb_line_break_holder] -->    .lp-touch-btn {<!-- [et_pb_line_break_holder] -->      position: absolute;<!-- [et_pb_line_break_holder] -->      bottom: 5%;<!-- [et_pb_line_break_holder] -->      width: 17%;<!-- [et_pb_line_break_holder] -->      max-width: 90px;<!-- [et_pb_line_break_holder] -->      aspect-ratio: 1\/1;<!-- [et_pb_line_break_holder] -->      border-radius: 50%;<!-- [et_pb_line_break_holder] -->      background: rgba(232,83,31,0.25);<!-- [et_pb_line_break_holder] -->      border: 2px solid var(--lp-orange);<!-- [et_pb_line_break_holder] -->      color: var(--lp-cream);<!-- [et_pb_line_break_holder] -->      font-family: inherit;<!-- [et_pb_line_break_holder] -->      font-size: clamp(8px, 1.6vw, 11px);<!-- [et_pb_line_break_holder] -->      display: flex;<!-- [et_pb_line_break_holder] -->      align-items: center;<!-- [et_pb_line_break_holder] -->      justify-content: center;<!-- [et_pb_line_break_holder] -->      z-index: 4;<!-- [et_pb_line_break_holder] -->      -webkit-tap-highlight-color: transparent;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #lp-btn-kick { right: 4%; }<!-- [et_pb_line_break_holder] -->    #lp-btn-jump { right: 22%; }<!-- [et_pb_line_break_holder] -->    @media (hover: hover) and (pointer: fine) {<!-- [et_pb_line_break_holder] -->      .lp-touch-btn { display: none; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  <\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <canvas id=\"lp-canvas\"><\/canvas><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <button class=\"lp-mute\" id=\"lp-mute\" title=\"Toggle sound\">SOUND: ON<\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- START SCREEN --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"lp-overlay\" id=\"lp-start\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h1 class=\"lp-title\">LEVELPLAY ARCADE<\/h1>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"lp-sub\"><!-- [et_pb_line_break_holder] -->      <span class=\"k\">CLICK<\/span> or <span class=\"k\">ENTER<\/span> to KICK<!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->      <span class=\"k\">SPACE<\/span> to JUMP (dodge + air kick)<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <button class=\"lp-btn\" id=\"lp-start-btn\">START GAME<\/button><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- GAME OVER SCREEN --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"lp-overlay lp-hidden\" id=\"lp-gameover\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h1 class=\"lp-title\" style=\"font-size: clamp(14px,3vw,22px);\">GAME OVER<\/h1>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"lp-score-big\">SCORE <span id=\"lp-final-score\">0<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"lp-newbest lp-hidden\" id=\"lp-newbest\">\u2605 NEW HIGH SCORE \u2605<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"lp-name-row lp-hidden\" id=\"lp-name-row\"><!-- [et_pb_line_break_holder] -->      <input id=\"lp-name-input\" maxlength=\"10\" placeholder=\"YOUR NAME\"><!-- [et_pb_line_break_holder] -->      <button class=\"lp-btn\" id=\"lp-submit-score\" style=\"padding:0.8em 1.2em;\">SAVE<\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"lp-leaderboard\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<ol id=\"lp-leaderboard-list\"><\/ol>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"lp-btn-row\"><!-- [et_pb_line_break_holder] -->      <button class=\"lp-btn\" id=\"lp-retry-btn\">PLAY AGAIN<\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Touch controls (mobile) --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"lp-touch-btn lp-hidden\" id=\"lp-btn-jump\">JUMP<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"lp-touch-btn lp-hidden\" id=\"lp-btn-kick\">KICK<\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function () {<!-- [et_pb_line_break_holder] -->  \"use strict\";<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Optional retro font (safe to remove this line if you don't want an external request) ----------<!-- [et_pb_line_break_holder] -->  try {<!-- [et_pb_line_break_holder] -->    var lpFontLink = document.createElement('link');<!-- [et_pb_line_break_holder] -->    lpFontLink.rel = 'stylesheet';<!-- [et_pb_line_break_holder] -->    lpFontLink.href = 'https:\/\/fonts.googleapis.com\/css2?family=Press+Start+2P&display=swap';<!-- [et_pb_line_break_holder] -->    document.head.appendChild(lpFontLink);<!-- [et_pb_line_break_holder] -->  } catch (e) {}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var root = document.getElementById('lp-game-root');<!-- [et_pb_line_break_holder] -->  var canvas = document.getElementById('lp-canvas');<!-- [et_pb_line_break_holder] -->  var ctx = canvas.getContext('2d');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Low-res \"pixel\" world we draw to, then scale up crisply.<!-- [et_pb_line_break_holder] -->  var GW = 320, GH = 180;<!-- [et_pb_line_break_holder] -->  var off = document.createElement('canvas');<!-- [et_pb_line_break_holder] -->  off.width = GW; off.height = GH;<!-- [et_pb_line_break_holder] -->  var octx = off.getContext('2d');<!-- [et_pb_line_break_holder] -->  octx.imageSmoothingEnabled = false;<!-- [et_pb_line_break_holder] -->  ctx.imageSmoothingEnabled = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function resize() {<!-- [et_pb_line_break_holder] -->    var rect = root.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->    var dpr = Math.min(window.devicePixelRatio || 1, 2);<!-- [et_pb_line_break_holder] -->    canvas.width = Math.max(1, Math.round(rect.width * dpr));<!-- [et_pb_line_break_holder] -->    canvas.height = Math.max(1, Math.round(rect.height * dpr));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  window.addEventListener('resize', resize);<!-- [et_pb_line_break_holder] -->  resize();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Palette (sampled from the LevelPlay brand clip) ----------<!-- [et_pb_line_break_holder] -->  var COL = {<!-- [et_pb_line_break_holder] -->    bg: '#000000',<!-- [et_pb_line_break_holder] -->    sky1: '#111111',<!-- [et_pb_line_break_holder] -->    sky2: '#1e1e1e',<!-- [et_pb_line_break_holder] -->    sky3: '#2c2c2c',<!-- [et_pb_line_break_holder] -->    ground: '#3d3d3d',<!-- [et_pb_line_break_holder] -->    groundEdge: '#c9c9c9',<!-- [et_pb_line_break_holder] -->    ledge: '#a83a1e',<!-- [et_pb_line_break_holder] -->    railing: '#565656',<!-- [et_pb_line_break_holder] -->    player: '#e8531f',<!-- [et_pb_line_break_holder] -->    playerDark: '#6a2e0d',<!-- [et_pb_line_break_holder] -->    playerLight: '#f4f2e6',<!-- [et_pb_line_break_holder] -->    hurt: '#ff5252',<!-- [et_pb_line_break_holder] -->    enemyColors: ['#c23b2e', '#e4da25', '#7a3b9e', '#3b8ec2']<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Audio (tiny synthesized SFX, no files needed) ----------<!-- [et_pb_line_break_holder] -->  var AudioCtor = window.AudioContext || window.webkitAudioContext;<!-- [et_pb_line_break_holder] -->  var actx = null;<!-- [et_pb_line_break_holder] -->  var soundOn = true;<!-- [et_pb_line_break_holder] -->  function ensureAudio() { if (!actx && AudioCtor) { try { actx = new AudioCtor(); } catch (e) {} } }<!-- [et_pb_line_break_holder] -->  function beep(freq, dur, type, vol, glideTo) {<!-- [et_pb_line_break_holder] -->    if (!soundOn || !actx) return;<!-- [et_pb_line_break_holder] -->    var t0 = actx.currentTime;<!-- [et_pb_line_break_holder] -->    var osc = actx.createOscillator();<!-- [et_pb_line_break_holder] -->    var gain = actx.createGain();<!-- [et_pb_line_break_holder] -->    osc.type = type || 'square';<!-- [et_pb_line_break_holder] -->    osc.frequency.setValueAtTime(freq, t0);<!-- [et_pb_line_break_holder] -->    if (glideTo) osc.frequency.exponentialRampToValueAtTime(glideTo, t0 + dur);<!-- [et_pb_line_break_holder] -->    gain.gain.setValueAtTime((vol || 0.15), t0);<!-- [et_pb_line_break_holder] -->    gain.gain.exponentialRampToValueAtTime(0.001, t0 + dur);<!-- [et_pb_line_break_holder] -->    osc.connect(gain); gain.connect(actx.destination);<!-- [et_pb_line_break_holder] -->    osc.start(t0); osc.stop(t0 + dur);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function sfxKick() { beep(280, 0.09, 'square', 0.12, 180); }<!-- [et_pb_line_break_holder] -->  function sfxHitEnemy() { beep(500, 0.12, 'square', 0.15, 120); beep(120, 0.1, 'sawtooth', 0.08); }<!-- [et_pb_line_break_holder] -->  function sfxJump() { beep(260, 0.12, 'triangle', 0.1, 420); }<!-- [et_pb_line_break_holder] -->  function sfxHurt() { beep(140, 0.25, 'sawtooth', 0.18, 60); }<!-- [et_pb_line_break_holder] -->  function sfxGameOver() { beep(220, 0.5, 'sawtooth', 0.15, 40); }<!-- [et_pb_line_break_holder] -->  function sfxScore() { beep(660, 0.06, 'square', 0.08); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var muteBtn = document.getElementById('lp-mute');<!-- [et_pb_line_break_holder] -->  muteBtn.addEventListener('click', function () {<!-- [et_pb_line_break_holder] -->    soundOn = !soundOn;<!-- [et_pb_line_break_holder] -->    muteBtn.textContent = 'SOUND: ' + (soundOn ? 'ON' : 'OFF');<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Leaderboard (localStorage, per-browser) ----------<!-- [et_pb_line_break_holder] -->  var LB_KEY = 'levelplay_kickgame_scores_v1';<!-- [et_pb_line_break_holder] -->  function getScores() {<!-- [et_pb_line_break_holder] -->    try { return JSON.parse(localStorage.getItem(LB_KEY)) || []; } catch (e) { return []; }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function saveScores(list) {<!-- [et_pb_line_break_holder] -->    try { localStorage.setItem(LB_KEY, JSON.stringify(list)); } catch (e) {}<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function qualifiesForBoard(score) {<!-- [et_pb_line_break_holder] -->    var list = getScores();<!-- [et_pb_line_break_holder] -->    return score > 0 && (list.length < 10 || score > list[list.length - 1].score);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function addScore(name, score) {<!-- [et_pb_line_break_holder] -->    var list = getScores();<!-- [et_pb_line_break_holder] -->    list.push({ name: (name || 'PLAYER').toUpperCase().slice(0, 10), score: score });<!-- [et_pb_line_break_holder] -->    list.sort(function (a, b) { return b.score - a.score; });<!-- [et_pb_line_break_holder] -->    list = list.slice(0, 10);<!-- [et_pb_line_break_holder] -->    saveScores(list);<!-- [et_pb_line_break_holder] -->    return list;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function renderLeaderboard(highlightScore) {<!-- [et_pb_line_break_holder] -->    var list = getScores();<!-- [et_pb_line_break_holder] -->    var ol = document.getElementById('lp-leaderboard-list');<!-- [et_pb_line_break_holder] -->    ol.innerHTML = '';<!-- [et_pb_line_break_holder] -->    if (list.length === 0) {<!-- [et_pb_line_break_holder] -->      var li = document.createElement('li');<!-- [et_pb_line_break_holder] -->      li.textContent = 'No scores yet \u2014 be first!';<!-- [et_pb_line_break_holder] -->      ol.appendChild(li);<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    list.forEach(function (entry, i) {<!-- [et_pb_line_break_holder] -->      var li = document.createElement('li');<!-- [et_pb_line_break_holder] -->      if (highlightScore !== undefined && entry.score === highlightScore) li.className = 'lp-me';<!-- [et_pb_line_break_holder] -->      li.innerHTML = '<span class=\"rank\">' + (i + 1) + '.<\/span><span>' + entry.name +<!-- [et_pb_line_break_holder] -->        '<\/span><span>' + entry.score + '<\/span>';<!-- [et_pb_line_break_holder] -->      ol.appendChild(li);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Game state ----------<!-- [et_pb_line_break_holder] -->  var STATE_START = 0, STATE_PLAY = 1, STATE_OVER = 2;<!-- [et_pb_line_break_holder] -->  var state = STATE_START;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var groundY = 148;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var player = {<!-- [et_pb_line_break_holder] -->    x: 54, y: 0, vy: 0, w: 14, h: 26,<!-- [et_pb_line_break_holder] -->    jumping: false, jumpT: 0,<!-- [et_pb_line_break_holder] -->    kicking: false, kickT: 0, kickCooldown: 0,<!-- [et_pb_line_break_holder] -->    hurtFlash: 0, facing: 1, bob: 0<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var enemies = [];<!-- [et_pb_line_break_holder] -->  var particles = [];<!-- [et_pb_line_break_holder] -->  var scrollX = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var score = 0, lives = 3, combo = 0, comboMax = 5;<!-- [et_pb_line_break_holder] -->  var elapsed = 0, spawnTimer = 0;<!-- [et_pb_line_break_holder] -->  var inputCooldown = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function resetGame() {<!-- [et_pb_line_break_holder] -->    player.y = 0; player.vy = 0; player.jumping = false; player.kicking = false;<!-- [et_pb_line_break_holder] -->    player.kickCooldown = 0; player.hurtFlash = 0; player.bob = 0;<!-- [et_pb_line_break_holder] -->    enemies = []; particles = [];<!-- [et_pb_line_break_holder] -->    score = 0; lives = 3; combo = 0; elapsed = 0; spawnTimer = 0.6;<!-- [et_pb_line_break_holder] -->    scrollX = 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function spawnEnemy() {<!-- [et_pb_line_break_holder] -->    var speed = 46 + Math.min(70, elapsed * 1.6) + Math.random() * 14;<!-- [et_pb_line_break_holder] -->    var type = Math.floor(Math.random() * COL.enemyColors.length);<!-- [et_pb_line_break_holder] -->    enemies.push({<!-- [et_pb_line_break_holder] -->      x: GW + 10, w: 12, h: 24,<!-- [et_pb_line_break_holder] -->      speed: speed, color: COL.enemyColors[type],<!-- [et_pb_line_break_holder] -->      alive: true, dying: 0, bob: Math.random() * 10<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function doKick() {<!-- [et_pb_line_break_holder] -->    if (state !== STATE_PLAY) return;<!-- [et_pb_line_break_holder] -->    if (player.kickCooldown > 0) return;<!-- [et_pb_line_break_holder] -->    player.kicking = true;<!-- [et_pb_line_break_holder] -->    player.kickT = 0.16;<!-- [et_pb_line_break_holder] -->    player.kickCooldown = 0.26;<!-- [et_pb_line_break_holder] -->    sfxKick();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function doJump() {<!-- [et_pb_line_break_holder] -->    if (state !== STATE_PLAY) return;<!-- [et_pb_line_break_holder] -->    if (player.jumping) return;<!-- [et_pb_line_break_holder] -->    player.jumping = true;<!-- [et_pb_line_break_holder] -->    player.vy = -132;<!-- [et_pb_line_break_holder] -->    sfxJump();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Input ----------<!-- [et_pb_line_break_holder] -->  canvas.addEventListener('mousedown', function (e) {<!-- [et_pb_line_break_holder] -->    if (e.button !== 0) return;<!-- [et_pb_line_break_holder] -->    ensureAudio();<!-- [et_pb_line_break_holder] -->    handlePrimaryAction();<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  window.addEventListener('keydown', function (e) {<!-- [et_pb_line_break_holder] -->    if (e.repeat) return;<!-- [et_pb_line_break_holder] -->    if (e.code === 'Space') {<!-- [et_pb_line_break_holder] -->      e.preventDefault();<!-- [et_pb_line_break_holder] -->      ensureAudio();<!-- [et_pb_line_break_holder] -->      if (state === STATE_PLAY) doJump();<!-- [et_pb_line_break_holder] -->      else handlePrimaryAction();<!-- [et_pb_line_break_holder] -->    } else if (e.code === 'Enter') {<!-- [et_pb_line_break_holder] -->      ensureAudio();<!-- [et_pb_line_break_holder] -->      if (document.activeElement === document.getElementById('lp-name-input')) return;<!-- [et_pb_line_break_holder] -->      handlePrimaryAction();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function handlePrimaryAction() {<!-- [et_pb_line_break_holder] -->    if (inputCooldown > 0) return;<!-- [et_pb_line_break_holder] -->    if (state === STATE_START) { startGame(); }<!-- [et_pb_line_break_holder] -->    else if (state === STATE_PLAY) { doKick(); }<!-- [et_pb_line_break_holder] -->    else if (state === STATE_OVER) { \/* no-op, use buttons *\/ }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  document.getElementById('lp-start-btn').addEventListener('click', function () { ensureAudio(); startGame(); });<!-- [et_pb_line_break_holder] -->  document.getElementById('lp-retry-btn').addEventListener('click', function () { ensureAudio(); startGame(); });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var btnKick = document.getElementById('lp-btn-kick');<!-- [et_pb_line_break_holder] -->  var btnJump = document.getElementById('lp-btn-jump');<!-- [et_pb_line_break_holder] -->  function touchHandler(fn) {<!-- [et_pb_line_break_holder] -->    return function (e) { e.preventDefault(); ensureAudio(); fn(); };<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  btnKick.addEventListener('touchstart', touchHandler(function () {<!-- [et_pb_line_break_holder] -->    if (state === STATE_START) startGame(); else doKick();<!-- [et_pb_line_break_holder] -->  }));<!-- [et_pb_line_break_holder] -->  btnJump.addEventListener('touchstart', touchHandler(function () {<!-- [et_pb_line_break_holder] -->    if (state === STATE_START) startGame(); else doJump();<!-- [et_pb_line_break_holder] -->  }));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  document.getElementById('lp-submit-score').addEventListener('click', function () {<!-- [et_pb_line_break_holder] -->    var input = document.getElementById('lp-name-input');<!-- [et_pb_line_break_holder] -->    addScore(input.value, score);<!-- [et_pb_line_break_holder] -->    renderLeaderboard(score);<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-name-row').classList.add('lp-hidden');<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function startGame() {<!-- [et_pb_line_break_holder] -->    resetGame();<!-- [et_pb_line_break_holder] -->    state = STATE_PLAY;<!-- [et_pb_line_break_holder] -->    inputCooldown = 0.25;<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-start').classList.add('lp-hidden');<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-gameover').classList.add('lp-hidden');<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function endGame() {<!-- [et_pb_line_break_holder] -->    state = STATE_OVER;<!-- [et_pb_line_break_holder] -->    sfxGameOver();<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-final-score').textContent = score;<!-- [et_pb_line_break_holder] -->    var isNew = qualifiesForBoard(score);<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-newbest').classList.toggle('lp-hidden', !isNew);<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-name-row').classList.toggle('lp-hidden', !isNew);<!-- [et_pb_line_break_holder] -->    if (!isNew) renderLeaderboard(score);<!-- [et_pb_line_break_holder] -->    else { renderLeaderboard(); document.getElementById('lp-name-input').value = ''; }<!-- [et_pb_line_break_holder] -->    document.getElementById('lp-gameover').classList.remove('lp-hidden');<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Update ----------<!-- [et_pb_line_break_holder] -->  var lastT = null;<!-- [et_pb_line_break_holder] -->  function update(dt) {<!-- [et_pb_line_break_holder] -->    dt = Math.min(dt, 0.05);<!-- [et_pb_line_break_holder] -->    if (inputCooldown > 0) inputCooldown -= dt;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (state !== STATE_PLAY) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    elapsed += dt;<!-- [et_pb_line_break_holder] -->    scrollX += dt * 18;<!-- [et_pb_line_break_holder] -->    player.bob += dt * 6;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ player physics<!-- [et_pb_line_break_holder] -->    if (player.jumping) {<!-- [et_pb_line_break_holder] -->      player.y += player.vy * dt;<!-- [et_pb_line_break_holder] -->      player.vy += 420 * dt;<!-- [et_pb_line_break_holder] -->      if (player.y >= 0) { player.y = 0; player.jumping = false; player.vy = 0; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (player.kickCooldown > 0) player.kickCooldown -= dt;<!-- [et_pb_line_break_holder] -->    if (player.kicking) {<!-- [et_pb_line_break_holder] -->      player.kickT -= dt;<!-- [et_pb_line_break_holder] -->      if (player.kickT <= 0) player.kicking = false;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (player.hurtFlash > 0) player.hurtFlash -= dt;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ spawn<!-- [et_pb_line_break_holder] -->    spawnTimer -= dt;<!-- [et_pb_line_break_holder] -->    if (spawnTimer <= 0) {<!-- [et_pb_line_break_holder] -->      spawnEnemy();<!-- [et_pb_line_break_holder] -->      var interval = Math.max(0.55, 1.6 - elapsed * 0.012);<!-- [et_pb_line_break_holder] -->      spawnTimer = interval * (0.8 + Math.random() * 0.4);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ kick hitbox (active only during first ~0.09s of kick for a crisp window)<!-- [et_pb_line_break_holder] -->    var kickActive = player.kicking && player.kickT > 0.07;<!-- [et_pb_line_break_holder] -->    var kickRangeMin = player.x + player.w * 0.5;<!-- [et_pb_line_break_holder] -->    var kickRangeMax = player.x + player.w * 0.5 + 26;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var dodging = player.jumping && player.y < -14;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    for (var i = enemies.length - 1; i >= 0; i--) {<!-- [et_pb_line_break_holder] -->      var en = enemies[i];<!-- [et_pb_line_break_holder] -->      if (!en.alive) {<!-- [et_pb_line_break_holder] -->        en.dying -= dt;<!-- [et_pb_line_break_holder] -->        if (en.dying <= 0) enemies.splice(i, 1);<!-- [et_pb_line_break_holder] -->        continue;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      en.x -= en.speed * dt;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      var enCenter = en.x + en.w \/ 2;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (kickActive && enCenter > kickRangeMin && enCenter < kickRangeMax) {<!-- [et_pb_line_break_holder] -->        en.alive = false;<!-- [et_pb_line_break_holder] -->        en.dying = 0.25;<!-- [et_pb_line_break_holder] -->        combo = Math.min(comboMax, combo + 1);<!-- [et_pb_line_break_holder] -->        var gained = 10 * combo;<!-- [et_pb_line_break_holder] -->        score += gained;<!-- [et_pb_line_break_holder] -->        spawnHitParticles(en.x + en.w \/ 2, groundY - en.h \/ 2);<!-- [et_pb_line_break_holder] -->        sfxHitEnemy();<!-- [et_pb_line_break_holder] -->        continue;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      \/\/ contact with player<!-- [et_pb_line_break_holder] -->      if (en.x < player.x + player.w &#038;&#038; en.x + en.w > player.x) {<!-- [et_pb_line_break_holder] -->        if (!dodging) {<!-- [et_pb_line_break_holder] -->          en.alive = false;<!-- [et_pb_line_break_holder] -->          en.dying = 0.2;<!-- [et_pb_line_break_holder] -->          lives -= 1;<!-- [et_pb_line_break_holder] -->          combo = 0;<!-- [et_pb_line_break_holder] -->          player.hurtFlash = 0.5;<!-- [et_pb_line_break_holder] -->          sfxHurt();<!-- [et_pb_line_break_holder] -->          if (lives <= 0) { endGame(); return; }<!-- [et_pb_line_break_holder] -->        } else {<!-- [et_pb_line_break_holder] -->          \/\/ dodged mid-air, enemy passes under with no score<!-- [et_pb_line_break_holder] -->          en.dodgedPass = true;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (en.x < -30) enemies.splice(i, 1);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    for (var p = particles.length - 1; p >= 0; p--) {<!-- [et_pb_line_break_holder] -->      particles[p].life -= dt;<!-- [et_pb_line_break_holder] -->      particles[p].x += particles[p].vx * dt;<!-- [et_pb_line_break_holder] -->      particles[p].y += particles[p].vy * dt;<!-- [et_pb_line_break_holder] -->      particles[p].vy += 200 * dt;<!-- [et_pb_line_break_holder] -->      if (particles[p].life <= 0) particles.splice(p, 1);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function spawnHitParticles(x, y) {<!-- [et_pb_line_break_holder] -->    for (var i = 0; i < 6; i++) {<!-- [et_pb_line_break_holder] -->      particles.push({<!-- [et_pb_line_break_holder] -->        x: x, y: y,<!-- [et_pb_line_break_holder] -->        vx: (Math.random() - 0.5) * 90,<!-- [et_pb_line_break_holder] -->        vy: -Math.random() * 80,<!-- [et_pb_line_break_holder] -->        life: 0.35 + Math.random() * 0.2,<!-- [et_pb_line_break_holder] -->        color: Math.random() > 0.5 ? COL.player : COL.playerLight<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ ---------- Draw ----------<!-- [et_pb_line_break_holder] -->  function drawBackground() {<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.bg;<!-- [et_pb_line_break_holder] -->    octx.fillRect(0, 0, GW, GH);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ parallax buildings, two layers, tiled<!-- [et_pb_line_break_holder] -->    drawSkylineLayer(scrollX * 0.25, 60, COL.sky1, 40);<!-- [et_pb_line_break_holder] -->    drawSkylineLayer(scrollX * 0.5, 40, COL.sky2, 26);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ ground<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.ground;<!-- [et_pb_line_break_holder] -->    octx.fillRect(0, groundY, GW, GH - groundY);<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.ledge;<!-- [et_pb_line_break_holder] -->    octx.fillRect(0, groundY, GW, 2);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ scrolling dash lines on ground<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.groundEdge;<!-- [et_pb_line_break_holder] -->    var dashW = 10, gap = 8, total = dashW + gap;<!-- [et_pb_line_break_holder] -->    var off1 = Math.floor(scrollX * 1.4) % total;<!-- [et_pb_line_break_holder] -->    for (var x = -off1; x < GW; x += total) {<!-- [et_pb_line_break_holder] -->      octx.fillRect(x, groundY + 8, dashW, 3);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/\/ railing dots<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.railing;<!-- [et_pb_line_break_holder] -->    var off2 = Math.floor(scrollX * 1.4) % 14;<!-- [et_pb_line_break_holder] -->    for (var x2 = -off2; x2 < GW; x2 += 14) {<!-- [et_pb_line_break_holder] -->      octx.fillRect(x2, groundY - 4, 2, 4);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawSkylineLayer(offsetX, baseH, color, seedMul) {<!-- [et_pb_line_break_holder] -->    octx.fillStyle = color;<!-- [et_pb_line_break_holder] -->    var segW = 22;<!-- [et_pb_line_break_holder] -->    var count = Math.ceil(GW \/ segW) + 2;<!-- [et_pb_line_break_holder] -->    var start = -Math.floor(offsetX) % segW - segW;<!-- [et_pb_line_break_holder] -->    for (var i = 0; i < count; i++) {<!-- [et_pb_line_break_holder] -->      var bx = start + i * segW;<!-- [et_pb_line_break_holder] -->      var seedIndex = Math.floor((bx + offsetX) \/ segW);<!-- [et_pb_line_break_holder] -->      var h = baseH + pseudoRandom(seedIndex * seedMul) * baseH * 0.7;<!-- [et_pb_line_break_holder] -->      octx.fillRect(bx, groundY - h, segW - 4, h);<!-- [et_pb_line_break_holder] -->      \/\/ tiny window lights<!-- [et_pb_line_break_holder] -->      if (pseudoRandom(seedIndex * 3 + 1) > 0.6) {<!-- [et_pb_line_break_holder] -->        octx.fillStyle = COL.ledge;<!-- [et_pb_line_break_holder] -->        octx.fillRect(bx + 6, groundY - h + 6, 2, 2);<!-- [et_pb_line_break_holder] -->        octx.fillStyle = color;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  function pseudoRandom(n) {<!-- [et_pb_line_break_holder] -->    var x = Math.sin(n * 999) * 10000;<!-- [et_pb_line_break_holder] -->    return x - Math.floor(x);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawPlayer() {<!-- [et_pb_line_break_holder] -->    var baseY = groundY + player.y;<!-- [et_pb_line_break_holder] -->    var bobOff = (state === STATE_PLAY && !player.jumping) ? Math.sin(player.bob) * 1.4 : 0;<!-- [et_pb_line_break_holder] -->    var px = player.x;<!-- [et_pb_line_break_holder] -->    var py = baseY - player.h + bobOff;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var body = COL.player;<!-- [et_pb_line_break_holder] -->    if (player.hurtFlash > 0 && Math.floor(player.hurtFlash * 20) % 2 === 0) body = COL.hurt;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ legs<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.playerDark;<!-- [et_pb_line_break_holder] -->    if (player.jumping) {<!-- [et_pb_line_break_holder] -->      octx.fillRect(px + 2, py + 16, 4, 8);<!-- [et_pb_line_break_holder] -->      octx.fillRect(px + 8, py + 14, 4, 6);<!-- [et_pb_line_break_holder] -->    } else if (player.kicking) {<!-- [et_pb_line_break_holder] -->      octx.fillRect(px + 1, py + 16, 4, 9);<!-- [et_pb_line_break_holder] -->      octx.fillRect(px + 8, py + 12, 10, 4); \/\/ extended kicking leg<!-- [et_pb_line_break_holder] -->    } else {<!-- [et_pb_line_break_holder] -->      var legSwing = Math.sin(player.bob) * 2;<!-- [et_pb_line_break_holder] -->      octx.fillRect(px + 2 + legSwing, py + 16, 4, 9);<!-- [et_pb_line_break_holder] -->      octx.fillRect(px + 8 - legSwing, py + 16, 4, 9);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ torso<!-- [et_pb_line_break_holder] -->    octx.fillStyle = body;<!-- [et_pb_line_break_holder] -->    octx.fillRect(px, py + 6, 14, 12);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ arm<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.playerLight;<!-- [et_pb_line_break_holder] -->    octx.fillRect(px - 2, py + 9, 4, 6);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ head<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.playerLight;<!-- [et_pb_line_break_holder] -->    octx.fillRect(px + 2, py, 10, 8);<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.bg;<!-- [et_pb_line_break_holder] -->    octx.fillRect(px + 8, py + 2, 2, 2); \/\/ eye<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawEnemy(en) {<!-- [et_pb_line_break_holder] -->    var py = groundY - en.h + Math.sin((elapsed * 6) + en.bob) * 1.2;<!-- [et_pb_line_break_holder] -->    var alpha = en.alive ? 1 : Math.max(0, en.dying \/ 0.25);<!-- [et_pb_line_break_holder] -->    octx.globalAlpha = alpha;<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.playerDark;<!-- [et_pb_line_break_holder] -->    octx.fillRect(en.x + 1, py + 15, 4, 9);<!-- [et_pb_line_break_holder] -->    octx.fillRect(en.x + 7, py + 15, 4, 9);<!-- [et_pb_line_break_holder] -->    octx.fillStyle = en.color;<!-- [et_pb_line_break_holder] -->    octx.fillRect(en.x, py + 5, en.w, 12);<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.playerLight;<!-- [et_pb_line_break_holder] -->    octx.fillRect(en.x + 2, py, 8, 7);<!-- [et_pb_line_break_holder] -->    octx.globalAlpha = 1;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawParticles() {<!-- [et_pb_line_break_holder] -->    particles.forEach(function (p) {<!-- [et_pb_line_break_holder] -->      octx.globalAlpha = Math.max(0, p.life \/ 0.4);<!-- [et_pb_line_break_holder] -->      octx.fillStyle = p.color;<!-- [et_pb_line_break_holder] -->      octx.fillRect(p.x, p.y, 2, 2);<!-- [et_pb_line_break_holder] -->      octx.globalAlpha = 1;<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function drawHUD() {<!-- [et_pb_line_break_holder] -->    octx.fillStyle = COL.playerLight;<!-- [et_pb_line_break_holder] -->    octx.font = '8px monospace';<!-- [et_pb_line_break_holder] -->    octx.textBaseline = 'top';<!-- [et_pb_line_break_holder] -->    octx.fillText('SCORE ' + score, 6, 6);<!-- [et_pb_line_break_holder] -->    if (combo > 1) {<!-- [et_pb_line_break_holder] -->      octx.fillStyle = COL.player;<!-- [et_pb_line_break_holder] -->      octx.fillText('COMBO x' + combo, 6, 16);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/\/ lives as small hearts (blocks)<!-- [et_pb_line_break_holder] -->    for (var i = 0; i < 3; i++) {<!-- [et_pb_line_break_holder] -->      octx.fillStyle = i < lives ? COL.player : '#333';<!-- [et_pb_line_break_holder] -->      octx.fillRect(GW - 14 - i * 12, 6, 8, 8);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function render() {<!-- [et_pb_line_break_holder] -->    drawBackground();<!-- [et_pb_line_break_holder] -->    enemies.forEach(drawEnemy);<!-- [et_pb_line_break_holder] -->    drawPlayer();<!-- [et_pb_line_break_holder] -->    drawParticles();<!-- [et_pb_line_break_holder] -->    if (state === STATE_PLAY) drawHUD();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    ctx.imageSmoothingEnabled = false;<!-- [et_pb_line_break_holder] -->    ctx.clearRect(0, 0, canvas.width, canvas.height);<!-- [et_pb_line_break_holder] -->    ctx.drawImage(off, 0, 0, GW, GH, 0, 0, canvas.width, canvas.height);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function loop(t) {<!-- [et_pb_line_break_holder] -->    if (lastT === null) lastT = t;<!-- [et_pb_line_break_holder] -->    var dt = (t - lastT) \/ 1000;<!-- [et_pb_line_break_holder] -->    lastT = t;<!-- [et_pb_line_break_holder] -->    update(dt);<!-- [et_pb_line_break_holder] -->    render();<!-- [et_pb_line_break_holder] -->    requestAnimationFrame(loop);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  requestAnimationFrame(loop);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  renderLeaderboard();<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- ============================================================<!-- [et_pb_line_break_holder] -->HOW TO EMBED IN DIVI<!-- [et_pb_line_break_holder] -->1. Edit the page \u2192 add a &#8220;Code&#8221; module (NOT a Text module \u2014 Text<!-- [et_pb_line_break_holder] -->   modules run content through the visual\/wpautop editor and will<!-- [et_pb_line_break_holder] -->   break the <script> tag).<!-- [et_pb_line_break_holder] -->2. Paste this entire file's contents into that Code module.<!-- [et_pb_line_break_holder] -->3. Place it where the hero video currently sits. Give the row a<!-- [et_pb_line_break_holder] -->   fixed-ish height if you want (the game is responsive and keeps<!-- [et_pb_line_break_holder] -->   a 16:9 box on its own, so you usually don't need to).<!-- [et_pb_line_break_holder] -->4. Preview on the live page (not just the builder canvas) \u2014 some<!-- [et_pb_line_break_holder] -->   Divi builder previews sandbox scripts differently than the<!-- [et_pb_line_break_holder] -->   published page.<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->EASY THINGS TO CUSTOMIZE<!-- [et_pb_line_break_holder] -->- Title text: search for \"LEVELPLAY ARCADE\" in the HTML.<!-- [et_pb_line_break_holder] -->- Colors: all in the COL = {...} object near the top of the<!-- [et_pb_line_break_holder] -->  <script>, and the CSS custom properties at the top of the<!-- [et_pb_line_break_holder] -->  <\/p>\n<style> block (--lp-orange, --lp-cream, etc).<!-- [et_pb_line_break_holder] -->- Difficulty: search \"spawnTimer\" and \"en.speed\" in update() \/<!-- [et_pb_line_break_holder] -->  spawnEnemy() to tune pacing.<!-- [et_pb_line_break_holder] -->- Remove the Google Font request: delete the \"lpFontLink\" block<!-- [et_pb_line_break_holder] -->  near the top of the script if you'd rather not load an external<!-- [et_pb_line_break_holder] -->  font (falls back to Courier New automatically).<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->ABOUT THE LEADERBOARD<!-- [et_pb_line_break_holder] -->This version stores scores with localStorage, so each visitor's<!-- [et_pb_line_break_holder] -->top-10 list lives only in their own browser (it survives reloads,<!-- [et_pb_line_break_holder] -->but two different visitors won't see each other's scores). That's<!-- [et_pb_line_break_holder] -->a deliberate zero-backend choice so this drops into Divi with no<!-- [et_pb_line_break_holder] -->server work. If you want one shared, site-wide leaderboard, the<!-- [et_pb_line_break_holder] -->smallest lift is a custom WP REST endpoint (a few lines of PHP in<!-- [et_pb_line_break_holder] -->your theme's functions.php) that reads\/writes a small DB table or<!-- [et_pb_line_break_holder] -->even a JSON file, and swapping getScores()\/addScore() in this file<!-- [et_pb_line_break_holder] -->to call fetch() against it instead of localStorage \u2014 happy to<!-- [et_pb_line_break_holder] -->build that next if you want it.<!-- [et_pb_line_break_holder] -->============================================================= -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WARNING! UNDER CONSTRUCTION This site is being levelled.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":99,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-24757","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/levelplaytech.com\/it\/under-construction\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"levelplay - Let&#039;s Level The World Of PC Building!\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Under Construction - levelplay\" \/>\n\t\t<meta property=\"og:description\" content=\"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/levelplaytech.com\/it\/under-construction\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-02-10T14:06:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-04T04:03:34+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Under Construction - levelplay\" \/>\n\t\t<meta name=\"twitter:description\" content=\"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#listItem\",\"name\":\"Under Construction\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#listItem\",\"position\":2,\"name\":\"Under Construction\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/#organization\",\"name\":\"levelplay\",\"description\":\"Let's Level The World Of PC Building!\",\"url\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/levelplaytech.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/logo_black_v.svg\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#organizationLogo\"},\"image\":{\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#organizationLogo\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#webpage\",\"url\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/\",\"name\":\"Under Construction - levelplay\",\"description\":\"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \\u2605 NEW HIGH SCORE \\u2605 SAVE PLAY AGAIN JUMP KICK\",\"inLanguage\":\"it-IT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/under-construction\\\/#breadcrumblist\"},\"datePublished\":\"2024-02-10T14:06:32+00:00\",\"dateModified\":\"2026-09-04T04:03:34+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/\",\"name\":\"levelplay\",\"alternateName\":\"levelplaytech\",\"description\":\"Let's Level The World Of PC Building!\",\"inLanguage\":\"it-IT\",\"publisher\":{\"@id\":\"https:\\\/\\\/levelplaytech.com\\\/it\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Under Construction - levelplay","description":"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK","canonical_url":"https:\/\/levelplaytech.com\/it\/under-construction\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/levelplaytech.com\/it\/#listItem","position":1,"name":"Home","item":"https:\/\/levelplaytech.com\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#listItem","name":"Under Construction"}},{"@type":"ListItem","@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#listItem","position":2,"name":"Under Construction","previousItem":{"@type":"ListItem","@id":"https:\/\/levelplaytech.com\/it\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/levelplaytech.com\/it\/#organization","name":"levelplay","description":"Let's Level The World Of PC Building!","url":"https:\/\/levelplaytech.com\/it\/","logo":{"@type":"ImageObject","url":"https:\/\/levelplaytech.com\/wp-content\/uploads\/2024\/02\/logo_black_v.svg","@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#organizationLogo"},"image":{"@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#organizationLogo"}},{"@type":"WebPage","@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#webpage","url":"https:\/\/levelplaytech.com\/it\/under-construction\/","name":"Under Construction - levelplay","description":"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK","inLanguage":"it-IT","isPartOf":{"@id":"https:\/\/levelplaytech.com\/it\/#website"},"breadcrumb":{"@id":"https:\/\/levelplaytech.com\/it\/under-construction\/#breadcrumblist"},"datePublished":"2024-02-10T14:06:32+00:00","dateModified":"2026-09-04T04:03:34+00:00"},{"@type":"WebSite","@id":"https:\/\/levelplaytech.com\/it\/#website","url":"https:\/\/levelplaytech.com\/it\/","name":"levelplay","alternateName":"levelplaytech","description":"Let's Level The World Of PC Building!","inLanguage":"it-IT","publisher":{"@id":"https:\/\/levelplaytech.com\/it\/#organization"}}]},"og:locale":"it_IT","og:site_name":"levelplay - Let's Level The World Of PC Building!","og:type":"article","og:title":"Under Construction - levelplay","og:description":"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK","og:url":"https:\/\/levelplaytech.com\/it\/under-construction\/","article:published_time":"2024-02-10T14:06:32+00:00","article:modified_time":"2026-09-04T04:03:34+00:00","twitter:card":"summary_large_image","twitter:title":"Under Construction - levelplay","twitter:description":"WARNING! UNDER CONSTRUCTION This site is being levelled. SOUND: ON LEVELPLAY ARCADE CLICK or ENTER to KICK SPACE to JUMP (dodge + air kick) START GAME GAME OVER SCORE 0 \u2605 NEW HIGH SCORE \u2605 SAVE PLAY AGAIN JUMP KICK"},"aioseo_meta_data":{"post_id":"24757","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2024-02-21 09:17:48","updated":"2026-09-04 06:34:35","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/levelplaytech.com\/it\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tUnder Construction\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/levelplaytech.com\/it\/"},{"label":"Under Construction","link":"https:\/\/levelplaytech.com\/it\/under-construction\/"}],"_links":{"self":[{"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/pages\/24757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/comments?post=24757"}],"version-history":[{"count":4,"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/pages\/24757\/revisions"}],"predecessor-version":[{"id":987498729,"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/pages\/24757\/revisions\/987498729"}],"wp:attachment":[{"href":"https:\/\/levelplaytech.com\/it\/wp-json\/wp\/v2\/media?parent=24757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}