{"id":7794,"date":"2026-05-23T21:21:14","date_gmt":"2026-05-23T21:21:14","guid":{"rendered":"https:\/\/eidetictrinidad.com\/?page_id=7794"},"modified":"2026-05-28T14:52:13","modified_gmt":"2026-05-28T14:52:13","slug":"test-for-error","status":"publish","type":"page","link":"https:\/\/eidetictrinidad.com\/","title":{"rendered":"launching soon"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7794\" class=\"elementor elementor-7794\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d5baad6 e-flex e-con-boxed e-con e-parent\" data-id=\"d5baad6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4732ffd elementor-widget elementor-widget-spacer\" data-id=\"4732ffd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9c0ae09 e-flex e-con-boxed e-con e-parent\" data-id=\"9c0ae09\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-b543851 e-con-full e-flex e-con e-child\" data-id=\"b543851\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c829ecc e-flex e-con-boxed e-con e-child\" data-id=\"c829ecc\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<p class=\"e-fe97e02-d14a7cd e-paragraph-base\" data-interaction-id=\"fe97e02\" data-e-type=\"widget\" data-id=\"fe97e02\">DESIGN, DEVELOPMENT, AI + MORE<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-de96112 e-flex e-con-boxed e-con e-parent\" data-id=\"de96112\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ba4ffb elementor-widget elementor-widget-text-editor\" data-id=\"7ba4ffb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #61ce70;\"><strong>Eidetic \/ i\u02c8detik \/<br \/><\/strong><\/span><span style=\"color: #e0e0e0;\">is a creative partner building clear, distinctive brands and digital experiences designed to be recognized instantly and remembered over time.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ff8e8f e-flex e-con-boxed e-con e-parent\" data-id=\"0ff8e8f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e159ac5 elementor-widget elementor-widget-heading\" data-id=\"e159ac5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">WE'RE NOT READY YET.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06d85e1 elementor-widget elementor-widget-heading\" data-id=\"06d85e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">MIGHT AS WELL PLAY A GAME.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fbef8a2 e-flex e-con-boxed e-con e-parent\" data-id=\"fbef8a2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3dadb12 e-con-full e-flex e-con e-child\" data-id=\"3dadb12\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e26afe4 elementor-widget elementor-widget-html\" data-id=\"e26afe4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  #eidetic-game-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n  #eidetic-game-wrap {\n    width: 100%;\n    background: #000;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n  }\n  #eidetic-game-wrap canvas {\n    display: block;\n    width: 100%;\n    max-width: 820px;\n    background: #000;\n    border-top: 1px solid #404040;\n    border-bottom: 1px solid #404040;\n    cursor: pointer;\n  }\n  #eidetic-score {\n    width: 100%;\n    max-width: 820px;\n    position: relative;\n    height: 0;\n  }\n  #eidetic-score-text {\n    position: absolute;\n    top: -120px;\n    right: 16px;\n    font-family: 'Space Mono', monospace;\n    font-size: 11px;\n    letter-spacing: 3px;\n    color: #404040;\n    transition: color 0.3s;\n  }\n  #eidetic-score-text.active { color: #6EE87A; }\n  #eidetic-hint {\n    font-family: 'Space Mono', monospace;\n    font-size: 9px;\n    letter-spacing: 3px;\n    color: #404040;\n    margin-top: 12px;\n    text-transform: uppercase;\n    transition: opacity 0.3s;\n  }\n<\/style>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Mono:wght@400;700&display=swap\" rel=\"stylesheet\">\n\n<div id=\"eidetic-game-wrap\">\n  <canvas id=\"eideticCanvas\" width=\"820\" height=\"200\"><\/canvas>\n  <div id=\"eidetic-score\"><span id=\"eidetic-score-text\">SCORE \u2014 00000<\/span><\/div>\n  <div id=\"eidetic-hint\">\u2014 Press Space or Tap to Start \u2014<\/div>\n<\/div>\n\n<script>\n(function() {\n  const canvas = document.getElementById('eideticCanvas');\n  const ctx = canvas.getContext('2d');\n  const scoreEl = document.getElementById('eidetic-score-text');\n  const hintEl = document.getElementById('eidetic-hint');\n\n  const eImg = new Image();\n  eImg.src = 'data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw\/eHBhY2tldCBiZWdpbj0i77u\/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmExY2QxMmY0MSwgMjAyNC8xMS8wOC0xNjowOToyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxM2UxYmU2Ni1hNDViLTQ2MWQtYjg5NC1lYTg5MjZmZWQ2NTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTlDNkQ1MjM0RDk3MTFGMTlGOEJCNzIxNjlEQzlCNUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTlDNkQ1MjI0RDk3MTFGMTlGOEJCNzIxNjlEQzlCNUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI2LjIgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxM2UxYmU2Ni1hNDViLTQ2MWQtYjg5NC1lYTg5MjZmZWQ2NTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTNlMWJlNjYtYTQ1Yi00NjFkLWI4OTQtZWE4OTI2ZmVkNjU0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QKlXnQAAEzBJREBUeNrs3VuMXdV5B\/B15owHPBhiaC055pbAi6mwK5E8IIGDW0SiqKmqECwlVWQJpQ8ojpRS2odG6gMXKaBASCUXEZUqUVS1FGRHqK0igkBxAxIPgFRjal4MuFwColQTwJ4Ze2ZOvzVnm2Kwsee2r7+f9AmbuXjO2uvM9z9rr71PbzAYJACgW0YMAQAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAABQqdEy\/7Fer2fEi6GIWh11RlFjRY0WH8vBrG+YgJaYjZqLGkTNRB0parqoyeJjnTcYlDcMo4Z7Ra2J2lTU5qiNUZdEXWjsAT6QQ8GrUS9FvRi1N+r5ot43PCv0SrTMtNGBFYDzo66JujrqqqjLk9MsAIuVVw32RT0V9WTUnqjXrQAIAHWQl+m3RH25qE2erwArKq8K\/KKoX6fh6QUBQAAorelvjdoWdX3UOs9HgEq8HbU76uGoX7UhDAgA9XRx1Leiboy6wPMOoFZei\/pJ1D9EHRQABIAl\/8hR10XdHPWl4u8A1LiHRj0adW\/UY6lhVxcIANXLl+R9I+ov03AjHwDNkzcQ3h31z2l42aEAIACcVL4075tRf5OGl+sB0Hz58sLbo\/4xDS84FAAEgOPkTX3fj7rUcwWglQ5E\/XUabhoUAASAdEXUj9LwcjYA2i9fPvjnUc91OQB0+SY1a6N+HPWM5g\/QKVuK3\/0\/LnpBJ3V1BSBfv\/93Ues9DwA67c2oHWl4PwErAC12XtRDUbs0fwCKXrCr6A3nWQFo5wrAtVE\/i9pgvgNwAm9EbY97jgBQXW+sIgBsdJwBoNreWEUAeNFxBoBqe2MVAWCv4wwA1fbGKgLA844zAFTbG3uDQXl7Dnq9Xv7PmqjfJm9FDABZfhOgT0W9X2ZPrqIJvx+1z\/EGgHn7it5YqqpehT\/leANAdT2xqgDwpOMNANX1xCr2AGTnR73mmANAuiDq9fyHtu8BSMUDdTUAAF33\/LHmX7Yqd+L\/wnEHoOMq64UCAAB0sBdWtQcg60f9Jmqd4w9AB70d9emo2WP\/owt7AFLxgHc7\/gB01O4PN\/+yVX03vocdfwA6qtIeWOUpgCyfBnglDS+BAICuyJfCf+ajKwBdOQWQigf+U\/MAgI75aapw+b8OKwDZxVEv5w+bDwB0QG68n426+LEPdGgFIBUD8Kj5AEBHPHqi5l+2urwl773mAwAdUYueV4dTAPMfitobdbl5AUCL5bf+3ZyGpwE+pmunAFIxEHebFwC03N0na\/5dXQGY\/7SoPVFbzBcAWuDXUdek09j8V2pPrmEAyK6Ieia5OyAAzZab7OejnjutT+7wKYBj8kA9YN4A0HAPnG7zL1tdVwCytVH7o9abPwA00JtRl0VNnPZygRWAeXnAdpg\/ADTUjoU0\/7KN1HzwdkftMocAaJhdRQ+rrTqfAjjmd9LwfQI2mE8ANMAbaXi\/\/3cW+oVOARwvD+D2VJN7JwPAJ\/Xwome9U\/cfdKQhA\/p41F3mFQA1d1fRs2qvCacAjulH\/TLqD80vAGroiagvRs0u9hu4EdDJrYt6NupC8wyAGnk16nNRby\/lm9gDcHJ5YL8addhcA6AmDhe96e0m\/dAjDRzovALw9ag5cw6Ais0VPenZpv3gIw0d8H+N+q55B0DFvlv0pMYZafCg74y6w9wDoCJ3FL2okZq2CfBE7on6C\/MQgBL9MOqW5f6mrgJY4LeNui\/qJvMRgBLcH\/XttAI3qHMVwALHqzgQPzQnASjhlf+KNP+yjbTkgOQDkZdi7AkAYKXcUfSaVtyavg2nAD7qO1F\/26JwA0C18qV+ebf\/im\/4swdg6f446sGocfMWgCXIN\/nJ1\/mXcqiXWQFo5wrAtVE\/i9pgvgNwAm9EbY87AEDXGAIAEAAAABAAQAAAAQAAEAAAAAEAABAAAAABAAAQAAAAAQAAEAAAAAEAABAAAAABAAAQAAAAAQAAEAAAAAEAAAQAAAAAQAAEAAAgDYZNQQ0neRRSwAAAABJRU5ErkJggg==';\n\n  const STATES = { IDLE: 0, PLAYING: 1, DEAD: 2 };\n  let state = STATES.IDLE;\n\n  const W = 820, H = 200, GROUND = 155, CHAR_SIZE = 38;\n  const GREEN = '#6EE87A', DIM_GREEN = '#1e4d22';\n\n  const player = { x: 80, y: GROUND - CHAR_SIZE, vy: 0, grounded: true, rotation: 0, squash: 1, squashTimer: 0 };\n  let obstacles = [], spawnTimer = 0, spawnInterval = 90;\n  let score = 0, speed = 5, frame = 0, hiScore = 0, deathFlash = 0;\n\n  const groundDots = Array.from({length: 30}, () => ({\n    x: Math.random() * W, size: Math.random() * 1.5 + 0.5, speed: Math.random() * 0.5 + 0.5\n  }));\n\n  function jump() {\n    if (state === STATES.IDLE) {\n      state = STATES.PLAYING;\n      scoreEl.classList.add('active');\n      hintEl.style.opacity = '0';\n      doJump();\n    } else if (state === STATES.PLAYING && player.grounded) {\n      doJump();\n    } else if (state === STATES.DEAD) {\n      resetGame();\n    }\n  }\n\n  function doJump() {\n    player.vy = -13;\n    player.grounded = false;\n    player.squash = 0.75;\n    player.squashTimer = 8;\n  }\n\n  function resetGame() {\n    state = STATES.PLAYING;\n    obstacles = []; score = 0; speed = 5; frame = 0;\n    spawnTimer = 0; spawnInterval = 90;\n    player.y = GROUND - CHAR_SIZE; player.vy = 0;\n    player.grounded = true; player.rotation = 0;\n    scoreEl.classList.add('active');\n    hintEl.style.opacity = '0';\n    doJump();\n  }\n\n  function spawnObstacle() {\n    const configs = [\n      { type: 'bracket', w: 28, h: 40 },\n      { type: 'slash',   w: 26, h: 50 },\n      { type: 'pixel',   w: 30, h: 30 },\n      { type: 'cursor',  w: 28, h: 45 }\n    ];\n    const c = configs[Math.floor(Math.random() * configs.length)];\n    obstacles.push({ x: W + 20, w: c.w, h: c.h, y: GROUND - c.h, type: c.type });\n  }\n\n  function drawObstacle(obs) {\n    ctx.save();\n    if (obs.type === 'bracket') {\n      ctx.fillStyle = DIM_GREEN;\n      ctx.fillRect(obs.x, obs.y, obs.w, obs.h);\n      ctx.strokeStyle = GREEN; ctx.lineWidth = 2;\n      ctx.strokeRect(obs.x, obs.y, obs.w, obs.h);\n      ctx.fillStyle = GREEN;\n      ctx.font = `bold ${Math.floor(obs.h * 0.65)}px Space Mono, monospace`;\n      ctx.textBaseline = 'middle';\n      ctx.fillText('{', obs.x + 5, obs.y + obs.h \/ 2);\n    } else if (obs.type === 'slash') {\n      ctx.fillStyle = GREEN;\n      ctx.font = `bold ${obs.h}px Space Mono, monospace`;\n      ctx.textBaseline = 'top';\n      ctx.fillText('\/', obs.x, obs.y);\n    } else if (obs.type === 'pixel') {\n      ctx.fillStyle = GREEN;\n      ctx.fillRect(obs.x, obs.y, obs.w, obs.h);\n      ctx.fillStyle = '#000';\n      ctx.fillRect(obs.x + 5, obs.y + 5, obs.w - 10, obs.h - 10);\n      ctx.fillStyle = GREEN;\n      ctx.fillRect(obs.x + 10, obs.y + 10, obs.w - 20, obs.h - 20);\n    } else if (obs.type === 'cursor') {\n      ctx.beginPath();\n      ctx.moveTo(obs.x + obs.w\/2, obs.y);\n      ctx.lineTo(obs.x + obs.w, obs.y + obs.h * 0.6);\n      ctx.lineTo(obs.x + obs.w * 0.65, obs.y + obs.h * 0.55);\n      ctx.lineTo(obs.x + obs.w * 0.8, obs.y + obs.h);\n      ctx.lineTo(obs.x + obs.w * 0.55, obs.y + obs.h * 0.75);\n      ctx.lineTo(obs.x + obs.w * 0.35, obs.y + obs.h * 0.65);\n      ctx.lineTo(obs.x, obs.y + obs.h * 0.6);\n      ctx.closePath();\n      ctx.fillStyle = DIM_GREEN; ctx.fill();\n      ctx.strokeStyle = GREEN; ctx.lineWidth = 1.5; ctx.stroke();\n    }\n    ctx.restore();\n  }\n\n  function drawPlayer() {\n    ctx.save();\n    const cx = player.x + CHAR_SIZE \/ 2;\n    const cy = player.y + CHAR_SIZE \/ 2;\n    ctx.translate(cx, cy);\n    ctx.rotate(player.rotation);\n    ctx.scale(1, player.squash);\n\n    if (eImg.complete && eImg.naturalWidth > 0) {\n      ctx.drawImage(eImg, -CHAR_SIZE\/2, -CHAR_SIZE\/2, CHAR_SIZE, CHAR_SIZE);\n    } else {\n      ctx.fillStyle = '#111';\n      ctx.beginPath();\n      ctx.roundRect(-CHAR_SIZE\/2, -CHAR_SIZE\/2, CHAR_SIZE, CHAR_SIZE, 6);\n      ctx.fill();\n      ctx.fillStyle = '#eee';\n      ctx.font = `bold ${Math.floor(CHAR_SIZE*0.7)}px sans-serif`;\n      ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n      ctx.fillText('E', 0, 0);\n    }\n\n    if (state === STATES.PLAYING) {\n      ctx.beginPath();\n      ctx.roundRect(-CHAR_SIZE\/2, -CHAR_SIZE\/2, CHAR_SIZE, CHAR_SIZE, 6);\n      ctx.strokeStyle = `rgba(110,232,122,${0.12 + Math.sin(frame*0.15)*0.08})`;\n      ctx.lineWidth = 1.5; ctx.stroke();\n    }\n    ctx.restore();\n  }\n\n  function drawGround() {\n    ctx.strokeStyle = '#404040'; ctx.lineWidth = 1;\n    ctx.beginPath(); ctx.moveTo(0, GROUND); ctx.lineTo(W, GROUND); ctx.stroke();\n    ctx.fillStyle = '#404040';\n    groundDots.forEach(d => {\n      ctx.beginPath(); ctx.arc(d.x, GROUND + 8, d.size, 0, Math.PI*2); ctx.fill();\n    });\n  }\n\n  function update() {\n    frame++;\n    if (state === STATES.PLAYING) {\n      player.vy += 0.7;\n      player.y += player.vy;\n      if (player.y >= GROUND - CHAR_SIZE) {\n        player.y = GROUND - CHAR_SIZE; player.vy = 0;\n        if (!player.grounded) { player.squash = 1.3; player.squashTimer = 6; }\n        player.grounded = true; player.rotation = 0;\n      } else {\n        player.grounded = false;\n        player.rotation += 0.05;\n      }\n      if (player.squashTimer > 0) { player.squashTimer--; player.squash += (1 - player.squash) * 0.3; }\n      else player.squash = 1;\n\n      groundDots.forEach(d => { d.x -= speed * d.speed * 0.4; if (d.x < 0) d.x = W + 10; });\n\n      spawnTimer++;\n      if (spawnTimer >= spawnInterval) {\n        spawnObstacle(); spawnTimer = 0;\n        spawnInterval = Math.max(45, spawnInterval - 1.5);\n      }\n      obstacles.forEach(o => o.x -= speed);\n      obstacles = obstacles.filter(o => o.x > -60);\n\n      score++; speed = 5 + score \/ 500;\n      if (score > hiScore) hiScore = score;\n      scoreEl.textContent = `SCORE \u2014 ${String(Math.floor(score\/5)).padStart(5,'0')}`;\n\n      \/\/ Collision\n      const pad = 6, px1 = player.x+pad, py1 = player.y+pad, px2 = player.x+CHAR_SIZE-pad, py2 = player.y+CHAR_SIZE-pad;\n      for (const obs of obstacles) {\n        if (px2 > obs.x+pad && px1 < obs.x+obs.w-pad && py2 > obs.y+pad && py1 < obs.y+obs.h-pad) {\n          state = STATES.DEAD; deathFlash = 20;\n          hintEl.style.opacity = '1'; hintEl.textContent = '\u2014 Tap or Space to Retry \u2014';\n          scoreEl.classList.remove('active'); break;\n        }\n      }\n    } else if (state === STATES.IDLE) {\n      player.y = GROUND - CHAR_SIZE + Math.sin(frame * 0.04) * 3;\n    } else if (state === STATES.DEAD) {\n      player.rotation += 0.08;\n      if (deathFlash > 0) deathFlash--;\n    }\n  }\n\n  function draw() {\n    ctx.clearRect(0, 0, W, H);\n    ctx.fillStyle = '#000'; ctx.fillRect(0, 0, W, H);\n    drawGround();\n\n    if (state === STATES.IDLE && Math.floor(frame\/30) % 2 === 0) {\n      ctx.fillStyle = GREEN;\n      ctx.fillRect(W\/2 - 6, GROUND - 100, 2, 20);\n    }\n\n    if (state === STATES.DEAD) {\n      if (deathFlash > 0) {\n        ctx.fillStyle = `rgba(110,232,122,${deathFlash\/20*0.12})`;\n        ctx.fillRect(0,0,W,H);\n      }\n      ctx.textAlign = 'center';\n      ctx.font = '11px Space Mono, monospace';\n      ctx.fillStyle = GREEN;\n      ctx.globalAlpha = 0.6 + Math.sin(frame*0.05)*0.3;\n      ctx.fillText('NICE TRY.  TAP TO RETRY', W\/2, GROUND - 70);\n      ctx.globalAlpha = 0.45;\n      ctx.font = '9px Space Mono, monospace';\n      ctx.fillStyle = '#666';\n      ctx.fillText(`HI \u2014 ${String(Math.floor(hiScore\/5)).padStart(5,'0')}`, W\/2, GROUND - 50);\n      ctx.globalAlpha = 1;\n    }\n\n    obstacles.forEach(drawObstacle);\n    drawPlayer();\n  }\n\n  function loop() { update(); draw(); requestAnimationFrame(loop); }\n\n  document.addEventListener('keydown', e => { if (e.code==='Space'||e.code==='ArrowUp') { e.preventDefault(); jump(); } });\n  canvas.addEventListener('click', jump);\n  canvas.addEventListener('touchstart', e => { e.preventDefault(); jump(); }, { passive: false });\n\n  loop();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>DESIGN, DEVELOPMENT, AI + MORE Eidetic \/ i\u02c8detik \/is a creative partner building clear, distinctive brands and digital experiences designed to be recognized instantly and remembered over time. WE&#8217;RE NOT READY YET. MIGHT AS WELL PLAY A GAME. SCORE \u2014 00000 \u2014 Press Space or Tap to Start \u2014<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7794","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/pages\/7794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/comments?post=7794"}],"version-history":[{"count":99,"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/pages\/7794\/revisions"}],"predecessor-version":[{"id":8365,"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/pages\/7794\/revisions\/8365"}],"wp:attachment":[{"href":"https:\/\/eidetictrinidad.com\/wp-json\/wp\/v2\/media?parent=7794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}