{"id":3539,"date":"2025-07-12T09:08:34","date_gmt":"2025-07-12T09:08:34","guid":{"rendered":"https:\/\/godsgalaxygame.com\/GGG\/?page_id=3539"},"modified":"2026-09-01T22:35:34","modified_gmt":"2026-09-01T22:35:34","slug":"medayork-pyramid-2","status":"publish","type":"page","link":"https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/","title":{"rendered":"MedaYork Pyramid"},"content":{"rendered":"\r\n<script>\r\n\/* BLISS \u2014 SHARED MEMBERSHIP SERVER REQUEST *\/\r\nwindow.BlissMembershipRequest =\r\n  window.BlissMembershipRequest ||\r\n  (function(){\r\n\r\n    let activeRequest = null;\r\n    let cachedResult = null;\r\n    let cachedAt = 0;\r\n\r\n    function load(url, action){\r\n\r\n      \/*\r\n       * Reuse a response briefly so all membership systems\r\n       * loading together receive the same server result.\r\n       *\/\r\n      if(\r\n        cachedResult &&\r\n        Date.now() - cachedAt < 2000\r\n      ){\r\n        return Promise.resolve(cachedResult);\r\n      }\r\n\r\n      \/*\r\n       * If another membership request is currently running,\r\n       * return that exact same Promise.\r\n       *\/\r\n      if(activeRequest){\r\n        return activeRequest;\r\n      }\r\n\r\n      const formData = new FormData();\r\n      formData.append(\"action\", action);\r\n\r\n      activeRequest =\r\n        fetch(url, {\r\n          method:\"POST\",\r\n          credentials:\"same-origin\",\r\n          cache:\"no-store\",\r\n          body:formData\r\n        })\r\n        .then(function(response){\r\n          if(!response.ok){\r\n            throw new Error(\r\n              \"Membership request failed: \" +\r\n              response.status\r\n            );\r\n          }\r\n\r\n          return response.json();\r\n        })\r\n        .then(function(result){\r\n          cachedResult = result;\r\n          cachedAt = Date.now();\r\n\r\n          return result;\r\n        })\r\n        .finally(function(){\r\n          activeRequest = null;\r\n        });\r\n\r\n      return activeRequest;\r\n    }\r\n\r\n    function clear(){\r\n      activeRequest = null;\r\n      cachedResult = null;\r\n      cachedAt = 0;\r\n    }\r\n\r\n    return {\r\n      load:load,\r\n      clear:clear\r\n    };\r\n\r\n  })();\r\n<\/script>\r\n<!-- ================== GGG PYRAMID \u2013 MEMBERSHIP-BASED UNLOCK ================== -->\r\n<style>\r\n  #pyramidShell{\r\n    position:relative;\r\n    width:100%;\r\n    max-width:600px;\r\n    margin:-130px auto 0;\r\n    z-index:10;\r\n  }\r\n\r\n  #pyramidContainer{\r\n    position:relative;\r\n    width:100%;\r\n    display:flex;\r\n    flex-direction:column;\r\n    align-items:center;\r\n    gap:18px;\r\n    z-index:15;\r\n    transition:filter .25s ease;\r\n  }\r\n\r\n  .pyramid-row{\r\n    display:flex;\r\n    justify-content:center;\r\n    gap:14px;\r\n  }\r\n\r\n  .pyramid-cube{\r\n    width:80px;\r\n    height:80px;\r\n    background-size:cover;\r\n    background-position:center;\r\n    border:2px solid white;\r\n    border-radius:16px;\r\n    box-shadow:0 0 12px cyan;\r\n    cursor:pointer;\r\n    transition:transform .3s ease, box-shadow .3s ease, filter .25s ease, opacity .25s ease;\r\n  }\r\n\r\n  .pyramid-cube:hover{\r\n    transform:scale(1.05);\r\n    box-shadow:0 0 18px white;\r\n  }\r\n\r\n  .pyramid-cube.locked{\r\n    filter:brightness(.45) saturate(.85);\r\n    opacity:.72;\r\n  }\r\n\r\n  .pyramid-cube.band-active{\r\n    box-shadow:0 0 20px rgba(0,255,255,.9);\r\n    border-color:rgba(0,255,255,.8);\r\n  }\r\n\r\n  .pyramid-cube.unlocked{\r\n    box-shadow:0 0 22px rgba(0,255,255,1);\r\n    border-color:rgba(0,255,255,.95);\r\n  }\r\n\r\n  #gggAuthBar{\r\n    position:fixed;\r\n    top:14px;\r\n    right:14px;\r\n    z-index:9999;\r\n    display:flex;\r\n    gap:10px;\r\n  }\r\n\r\n  #gggAuthBar button{\r\n    border:1px solid rgba(0,255,255,.45);\r\n    background:rgba(0,255,255,.10);\r\n    color:#e9f8ff;\r\n    padding:9px 12px;\r\n    border-radius:12px;\r\n    cursor:pointer;\r\n    backdrop-filter:blur(6px) saturate(130%);\r\n    font-size:14px;\r\n    line-height:1;\r\n    font-family:Orbitron,system-ui,sans-serif;\r\n  }\r\n\r\n  #gggAuthBar button:hover{\r\n    background:rgba(0,255,255,.18);\r\n    box-shadow:0 0 14px rgba(0,255,255,.25);\r\n  }\r\n\r\n  #pyramidBands{\r\n    pointer-events:auto;\r\n    position:absolute;\r\n    inset:0;\r\n    display:flex;\r\n    flex-direction:column;\r\n    justify-content:space-between;\r\n    padding:4px 6%;\r\n    z-index:5;\r\n  }\r\n\r\n  .pyramid-band{\r\n    flex:0 0 23%;\r\n    margin:3px 0;\r\n    border-radius:26px;\r\n    background:rgba(0,0,0,.25);\r\n    border:1px solid rgba(255,255,255,.12);\r\n    backdrop-filter:blur(10px);\r\n    display:flex;\r\n    align-items:center;\r\n    justify-content:center;\r\n    text-align:center;\r\n    color:rgba(255,255,255,.9);\r\n    font-family:Orbitron,system-ui,sans-serif;\r\n    font-size:18px;\r\n    letter-spacing:.05em;\r\n    cursor:pointer;\r\n    transition:background .25s, box-shadow .25s, border-color .25s, transform .25s;\r\n  }\r\n\r\n  .pyramid-band:hover{\r\n    transform:translateY(-2px);\r\n    box-shadow:0 0 18px rgba(0,255,255,.25);\r\n  }\r\n\r\n  .pyramid-band.unlocked{\r\n    background:rgba(0,255,255,.18);\r\n    border-color:rgba(0,255,255,.6);\r\n    box-shadow:0 0 26px rgba(0,255,255,.7);\r\n  }\r\n\r\n  .pyramid-band.active-band{\r\n    background:rgba(0,255,255,.24);\r\n    border-color:rgba(0,255,255,1);\r\n    box-shadow:0 0 32px rgba(0,255,255,1);\r\n  }\r\n\r\n  #cubeLabel{\r\n    position:fixed;\r\n    left:50%;\r\n    bottom:14px;\r\n    transform:translateX(-50%);\r\n    padding:6px 14px;\r\n    border-radius:999px;\r\n    border:1px solid rgba(0,255,255,.6);\r\n    background:rgba(0,0,0,.78);\r\n    color:#eaf8ff;\r\n    font-family:Orbitron,system-ui,sans-serif;\r\n    font-size:13px;\r\n    letter-spacing:.03em;\r\n    pointer-events:none;\r\n    opacity:0;\r\n    transition:opacity .25s ease, transform .25s ease;\r\n    z-index:9998;\r\n  }\r\n\r\n  #cubeLabel.show{\r\n    opacity:1;\r\n    transform:translate(-50%, -4px);\r\n  }\r\n\r\n  .ggg-toast{\r\n    position:fixed;\r\n    left:50%;\r\n    bottom:60px;\r\n    transform:translateX(-50%);\r\n    background:rgba(0,0,0,.88);\r\n    color:#fff;\r\n    border:1px solid rgba(0,255,255,.45);\r\n    border-radius:14px;\r\n    padding:10px 14px;\r\n    font-size:13px;\r\n    font-family:Orbitron,system-ui,sans-serif;\r\n    z-index:10000;\r\n    box-shadow:0 0 18px rgba(0,255,255,.3);\r\n    display:none;\r\n    max-width:90vw;\r\n    text-align:center;\r\n  }\r\n\r\n  .ggg-toast.show{\r\n    display:block;\r\n  }\r\n\r\n  @media (min-width:1024px){\r\n    #pyramidShell{ max-width:900px; }\r\n    #pyramidContainer{ gap:24px; }\r\n    .pyramid-cube{ width:110px; height:110px; }\r\n    .pyramid-band{ font-size:20px; }\r\n  }\r\n\r\n  @media (max-width:768px){\r\n    #pyramidShell{\r\n      max-width:360px;\r\n      margin:10px auto 0;\r\n    }\r\n    .pyramid-cube{ width:70px; height:70px; }\r\n    .pyramid-band{ font-size:15px; }\r\n  }\r\n\r\n\/* Floor rectangle contents *\/\r\n.pyramid-band {\r\n  position:relative;\r\n  box-sizing:border-box;\r\n  justify-content:initial;\r\n}\r\n\r\n\/* Floor name \u2014 top-left *\/\r\n.pyramid-band-name {\r\n  position:absolute;\r\n  top:12px;\r\n  left:16px;\r\n\r\n  max-width:145px;\r\n\r\n  color:#ffffff;\r\n  font-size:11px;\r\n  font-weight:700;\r\n  line-height:1.25;\r\n  text-align:left;\r\n\r\n  text-shadow:\r\n    0 0 10px rgba(255,255,255,.30);\r\n\r\n  pointer-events:none;\r\n}\r\n\r\n\/* Floor action \u2014 top-right *\/\r\n.pyramid-band-site {\r\n  position:absolute;\r\n  top:10px;\r\n  right:14px;\r\n  z-index:30;\r\n\r\n  display:inline-flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  padding:7px 10px;\r\n\r\n  border:1px solid rgba(255,255,255,.28);\r\n  border-radius:999px;\r\n\r\n  background:rgba(0,0,0,.46);\r\n  color:#ffffff;\r\n\r\n  font-size:8px;\r\n  font-weight:700;\r\n  line-height:1;\r\n  letter-spacing:.05em;\r\n  text-decoration:none;\r\n  text-transform:uppercase;\r\n  white-space:nowrap;\r\n\r\n  box-shadow:\r\n    0 0 12px rgba(0,255,255,.14);\r\n}\r\n\r\n\/* Allow the links behind the cube layer to receive clicks *\/\r\n#pyramidContainer {\r\n  pointer-events:none;\r\n}\r\n\r\n#pyramidContainer .pyramid-cube {\r\n  pointer-events:auto;\r\n}\r\n\r\n\/* Different subtle color for each existing rectangle *\/\r\n.pyramid-band[data-band=\"fractional\"] {\r\n  background:rgba(174,117,38,.32);\r\n  border-color:rgba(255,203,109,.36);\r\n}\r\n\r\n.pyramid-band[data-band=\"real\"] {\r\n  background:rgba(45,91,170,.30);\r\n  border-color:rgba(104,165,255,.36);\r\n}\r\n\r\n.pyramid-band[data-band=\"discounts\"] {\r\n  background:rgba(39,125,81,.30);\r\n  border-color:rgba(91,219,151,.34);\r\n}\r\n\r\n.pyramid-band[data-band=\"travel\"] {\r\n  background:rgba(39,112,145,.30);\r\n  border-color:rgba(70,221,255,.36);\r\n}\r\n\r\n.pyramid-band-site:hover {\r\n  background:rgba(255,255,255,.14);\r\n  box-shadow:0 0 16px rgba(0,255,255,.24);\r\n}\r\n\r\n@media (max-width:768px) {\r\n  .pyramid-band-name {\r\n    top:8px;\r\n    left:10px;\r\n    max-width:85px;\r\n    font-size:8px;\r\n  }\r\n\r\n  .pyramid-band-site {\r\n    top:7px;\r\n    right:8px;\r\n    padding:6px 7px;\r\n    font-size:7px;\r\n  }\r\n}\r\n\/* =====================================================\r\n   FINAL RECTANGLE SIZE AND LABEL POSITION CORRECTION\r\n   Does not resize any cubes\r\n===================================================== *\/\r\n\r\n\/* Desktop: extend rectangles slightly around cube rows *\/\r\n#pyramidBands {\r\n  top:-8px;\r\n  right:-32px;\r\n  bottom:-16px;\r\n  left:-32px;\r\n\r\n  padding:4px 3%;\r\n}\r\n\r\n\/*\r\n * Allow clicks to pass through the transparent cube\r\n * container while keeping every cube clickable.\r\n *\/\r\n#pyramidContainer {\r\n  pointer-events:none;\r\n}\r\n\r\n#pyramidContainer .pyramid-cube {\r\n  pointer-events:auto;\r\n}\r\n\r\n.pyramid-band {\r\n  pointer-events:none;\r\n}\r\n\r\n.pyramid-band-site {\r\n  pointer-events:auto;\r\n}\r\n\r\n\/* Keep the two labels clearly at the upper corners *\/\r\n.pyramid-band-name {\r\n  top:8px;\r\n  left:14px;\r\n}\r\n\r\n.pyramid-band-site {\r\n  top:7px;\r\n  right:12px;\r\n}\r\n\r\n.pyramid-band {\r\n  scale:1.05;\r\n}\r\n\r\n#pyramidBands {\r\n  transform:translateY(-8px);\r\n}\r\n\r\n\/* MOBILE *\/\r\n@media (max-width:768px) {\r\n\r\n  \/*\r\n   * More spacing between rows creates enough vertical\r\n   * room for the names above the cubes.\r\n   *\/\r\n  #pyramidContainer {\r\n    gap:30px;\r\n  }\r\n\r\n  \/*\r\n   * Extend each rectangle horizontally and vertically.\r\n   * The four Level 1\u20134 cubes now remain inside the\r\n   * bottom rectangle.\r\n   *\/\r\n  #pyramidBands {\r\n    top:-18px;\r\n    right:-24px;\r\n    bottom:-26px;\r\n    left:-24px;\r\n\r\n    padding:4px 8px;\r\n  }\r\n\r\n  \/*\r\n   * Move cube rows slightly down inside their rectangles,\r\n   * creating a clear header area for both top labels.\r\n   *\/\r\n  #pyramidContainer .pyramid-row {\r\n    transform:translateY(8px);\r\n  }\r\n\r\n  .pyramid-band-name {\r\n    top:5px;\r\n    left:9px;\r\n\r\n    max-width:105px;\r\n\r\n    font-size:8px;\r\n    line-height:1.2;\r\n  }\r\n\r\n  .pyramid-band-site {\r\n    top:5px;\r\n    right:8px;\r\n\r\n    padding:5px 7px;\r\n\r\n    font-size:7px;\r\n  }\r\n}\r\n\r\n<\/style>\r\n\r\n<div id=\"gggAuthBar\">\r\n  <button id=\"gggAuthMain\" type=\"button\">Sign In \/ Sign Up<\/button>\r\n<\/div>\r\n\r\n<div id=\"cubeLabel\"><\/div>\r\n<div id=\"gggToast\" class=\"ggg-toast\"><\/div>\r\n\r\n<div id=\"pyramidShell\">\r\n  <div id=\"pyramidBands\">\r\n\r\n  <div class=\"pyramid-band\" data-band=\"fractional\">\r\n    <span class=\"pyramid-band-name\">\r\n      Bliss Premier Access\r\n    <\/span>\r\n\r\n    <a\r\n      class=\"pyramid-band-site\"\r\n      href=\"https:\/\/godsgalaxygame.com\/GGG\/astro\/?fractional=1\"\r\n      onclick=\"event.stopPropagation();\">\r\n      Website \u2197\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <div class=\"pyramid-band\" data-band=\"real\">\r\n    <span class=\"pyramid-band-name\">\r\n      Real Estate\r\n    <\/span>\r\n\r\n    <a\r\n      class=\"pyramid-band-site\"\r\n      href=\"https:\/\/godsgalaxygame.com\/GGG\/real-estate\/?enp=1\"\r\n      onclick=\"event.stopPropagation();\">\r\n      Website \u2197\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <div class=\"pyramid-band\" data-band=\"discounts\">\r\n    <span class=\"pyramid-band-name\">\r\n      Discounts &amp; Investments\r\n    <\/span>\r\n\r\n    <a\r\n      class=\"pyramid-band-site\"\r\n      href=\"https:\/\/godsgalaxygame.com\/GGG\/discounts-gift\/?dgi=1\"\r\n      onclick=\"event.stopPropagation();\">\r\n      Website \u2197\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <div class=\"pyramid-band\" data-band=\"travel\">\r\n    <span class=\"pyramid-band-name\">\r\n      Bliss Medellin Guide\r\n    <\/span>\r\n\r\n    <a\r\n      class=\"pyramid-band-site\"\r\n      href=\"https:\/\/godsgalaxygame.com\/GGG\/password-reset\/?travelclub=1\"\r\n      onclick=\"event.stopPropagation();\">\r\n      Website \u2197\r\n    <\/a>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n  <div id=\"pyramidContainer\">\r\n    <!-- TOP -->\r\n    <div class=\"pyramid-row\">\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"fractional\"\r\n           data-level=\"8\"\r\n           data-key=\"fractional\"\r\n           data-url=\"\/GGG\/fractional-ownership\/\"\r\n           data-name=\"Fractional Club \u2013 Bliss\u2019s Exclusive Fractional Ownership Club\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20231020-190236_PowerPoint.jpg')\"><\/div>\r\n    <\/div>\r\n\r\n    <!-- REAL ESTATE -->\r\n    <div class=\"pyramid-row\">\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"real\"\r\n           data-level=\"7\"\r\n           data-key=\"real\"\r\n           data-url=\"\/GGG\/real-estate\/\"\r\n           data-name=\"Real Estate \u2013 ENP Worldwide Real Estate\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250605_200742_PowerPoint-scaled.jpg')\"><\/div>\r\n    <\/div>\r\n\r\n    <!-- DISCOUNTS + INVESTMENTS -->\r\n    <div class=\"pyramid-row\">\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"discounts\"\r\n           data-level=\"5\"\r\n           data-key=\"discounts\"\r\n           data-url=\"\/GGG\/discounts-gift\/\"\r\n           data-name=\"Discounts &#038; Gifts\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250601_193959_Gallery.jpg')\"><\/div>\r\n\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"discounts\"\r\n           data-level=\"6\"\r\n           data-key=\"investments\"\r\n           data-url=\"\/GGG\/limitless-investments\/\"\r\n           data-name=\"Limitless Investments\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240104-113821_PowerPoint.jpg')\"><\/div>\r\n    <\/div>\r\n\r\n    <!-- TRAVEL -->\r\n    <div class=\"pyramid-row\">\r\n      <div class=\"pyramid-cube always-open unlocked\"\r\n           data-band=\"travel\"\r\n           data-level=\"1\"\r\n           data-key=\"astro\"\r\n           data-url=\"\/GGG\/astro\"\r\n           data-name=\"Astro Travel Recommendations\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/Screenshot_20250909_174524_Chrome.jpg')\"><\/div>\r\n\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"travel\"\r\n           data-level=\"2\"\r\n           data-key=\"rr\"\r\n           data-url=\"\/GGG\/responsable-reservations\/\"\r\n           data-name=\"Responsable Reservations\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20231205-181457_PowerPoint.jpg')\"><\/div>\r\n\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"travel\"\r\n           data-level=\"3\"\r\n           data-key=\"thematic\"\r\n           data-url=\"\/GGG\/thematic-tours\/\"\r\n           data-name=\"Thematic Tours\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20231205-183244_PowerPoint.jpg')\"><\/div>\r\n\r\n      <div class=\"pyramid-cube locked\"\r\n           data-band=\"travel\"\r\n           data-level=\"4\"\r\n           data-key=\"evolution\"\r\n           data-url=\"\/GGG\/evolution-tours\/\"\r\n           data-name=\"Evolution Tours\"\r\n           style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20231205-182854_PowerPoint.jpg')\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  const ajaxUrl = \"\/GGG\/wp-admin\/admin-ajax.php\";\r\n\r\n  const data = window.gggPmsData || {\r\n    loggedIn: false,\r\n    owned: {1:true,2:false,3:false,4:false,5:false,6:false,7:false,8:false},\r\n    urls: {login:'\/login\/', account:'\/account\/', register:'\/register\/'},\r\n    currentUserEmail: ''\r\n  };\r\n\r\n  const adminTestMode = true;\r\n  const adminEmails = [\r\n    \"edwardraigozallc@gmail.com\",\r\n    \"juelsbotmi@hotmail.com\"\r\n  ];\r\n  const masterCode = \"Galaxy2026\";\r\n\r\n  const authBtn = document.getElementById('gggAuthMain');\r\n  const bands   = document.querySelectorAll('.pyramid-band');\r\n  const cubes   = document.querySelectorAll('#pyramidContainer .pyramid-cube');\r\n  const label   = document.getElementById('cubeLabel');\r\n  const toast   = document.getElementById('gggToast');\r\n\r\n  function showToast(message){\r\n    if (!toast) return;\r\n    toast.textContent = message;\r\n    toast.classList.add('show');\r\n    clearTimeout(toast._hide);\r\n    toast._hide = setTimeout(() => toast.classList.remove('show'), 2200);\r\n  }\r\n\r\n  function lockCube(cube){\r\n    if (!cube.classList.contains('always-open')) {\r\n      cube.classList.add('locked');\r\n      cube.classList.remove('unlocked');\r\n    }\r\n  }\r\n\r\n  function unlockCube(cube){\r\n    cube.classList.remove('locked');\r\n    cube.classList.add('unlocked');\r\n  }\r\n\r\n  function refreshBands(){\r\n    bands.forEach(band => {\r\n      const bandId = band.dataset.band;\r\n      const unlockedInBand = document.querySelector('.pyramid-cube[data-band=\"' + bandId + '\"]:not(.locked)');\r\n      band.classList.toggle('unlocked', !!unlockedInBand);\r\n    });\r\n  }\r\n\r\n  function resetOwnershipVisuals(){\r\n    cubes.forEach(cube => {\r\n      if (cube.classList.contains('always-open')) {\r\n        unlockCube(cube);\r\n      } else {\r\n        lockCube(cube);\r\n      }\r\n    });\r\n  }\r\n\r\n  function applyOwnership(){\r\n    resetOwnershipVisuals();\r\n\r\n    cubes.forEach(cube => {\r\n      const level = parseInt(cube.dataset.level || '0', 10);\r\n\r\n      if (level === 1 || cube.classList.contains('always-open')){\r\n        unlockCube(cube);\r\n        return;\r\n      }\r\n\r\n      if (data.owned && data.owned[level]) {\r\n        unlockCube(cube);\r\n      }\r\n    });\r\n\r\n    refreshBands();\r\n  }\r\n\r\n  function setActiveBand(bandId){\r\n    bands.forEach(b => b.classList.toggle('active-band', b.dataset.band === bandId));\r\n    cubes.forEach(c => c.classList.toggle('band-active', c.dataset.band === bandId));\r\n  }\r\n\r\n  function setAuthButton(){\r\n    if (data.loggedIn){\r\n      authBtn.textContent = 'My Account';\r\n      authBtn.onclick = function(){ window.location.href = data.urls.account; };\r\n    } else {\r\n      authBtn.textContent = 'Sign In \/ Sign Up';\r\n      authBtn.onclick = function(){\r\n        const entered = prompt(\"Enter master access code or press Cancel to sign in:\");\r\n\r\n        if (entered === masterCode) {\r\n          data.owned = {\r\n            1: true, 2: true, 3: true, 4: true,\r\n            5: true, 6: true, 7: true, 8: true\r\n          };\r\n          showToast('Master access activated.');\r\n          applyOwnership();\r\n          refreshBands();\r\n        } else if (entered !== null && entered !== \"\") {\r\n          showToast('Incorrect code.');\r\n        } else {\r\n          window.location.href = data.urls.login;\r\n        }\r\n      };\r\n    }\r\n  }\r\n\r\n  function applyAdminEmailOverride(){\r\n    if (\r\n      adminTestMode &&\r\n      data.loggedIn &&\r\n      adminEmails.includes((data.currentUserEmail || \"\").toLowerCase())\r\n    ) {\r\n      data.owned = {\r\n        1: true, 2: true, 3: true, 4: true,\r\n        5: true, 6: true, 7: true, 8: true\r\n      };\r\n    }\r\n  }\r\n\r\n  function loadVaultLevels(){\r\n    window.BlissMembershipRequest.load(\r\n  ajaxUrl,\r\n  \"ggg_get_current_user_vault_levels\"\r\n)\r\n    .then(res => {\r\n      if (!res || !res.success || !res.data) {\r\n        applyAdminEmailOverride();\r\n        setAuthButton();\r\n        applyOwnership();\r\n        return;\r\n      }\r\n\r\n      if (res.data.logged_in && res.data.owned) {\r\n        data.loggedIn = true;\r\n        data.owned = res.data.owned;\r\n      }\r\n\r\n      applyAdminEmailOverride();\r\n      setAuthButton();\r\n      applyOwnership();\r\n    })\r\n    .catch(() => {\r\n      applyAdminEmailOverride();\r\n      setAuthButton();\r\n      applyOwnership();\r\n    });\r\n  }\r\n\r\n  bands.forEach(band => {\r\n    band.addEventListener('click', () => {\r\n      setActiveBand(band.dataset.band);\r\n    });\r\n  });\r\n\r\n  cubes.forEach(cube => {\r\n    cube.addEventListener('click', () => {\r\n      const name = cube.dataset.name || '';\r\n      const url  = cube.dataset.url || '#';\r\n      const band = cube.dataset.band || '';\r\n\r\n      if (label && name){\r\n        label.textContent = name;\r\n        label.classList.add('show');\r\n        clearTimeout(label._hideTimer);\r\n        label._hideTimer = setTimeout(() => label.classList.remove('show'), 1800);\r\n      }\r\n\r\n      setActiveBand(band);\r\n\r\n      if (!cube.classList.contains('locked')) {\r\n        window.location.href = url;\r\n        return;\r\n      }\r\n\r\n      if (!data.loggedIn) {\r\n        showToast('Please sign in or sign up first.');\r\n        setTimeout(() => {\r\n          window.location.href = data.urls.login;\r\n        }, 700);\r\n        return;\r\n      }\r\n\r\n      showToast('This level is not active in your account yet.');\r\n    });\r\n  });\r\n\r\n  loadVaultLevels();\r\n})();\r\n<\/script>\r\n\r\n\r\n\r\n<!-- MedaYork \u2014 HyperTunnel PURE: Purple Warp + Neon Network (no shapes), SLOW -->\r\n<style>\r\n  #medayork-bg{position:fixed; inset:0; z-index:0; pointer-events:none;}\r\n  #medayork-bg canvas{position:absolute; inset:0; width:100vw; height:100vh; display:block;}\r\n\r\n  \/* Deep purple ambience *\/\r\n  #medayork-bg::before{\r\n    content:\"\"; position:absolute; inset:-10%;\r\n    background:\r\n      radial-gradient(120% 90% at 50% 100%, rgba(8, 4, 20, .95), transparent 58%),\r\n      radial-gradient(100% 80% at 80% 24%, rgba(170, 80, 255, .22), transparent 60%),\r\n      radial-gradient(90% 70%  at 22% 76%, rgba(70, 190, 255, .12), transparent 60%),\r\n      radial-gradient(65% 55%  at 50% 40%, rgba(140, 0, 255, .18), transparent 60%);\r\n    mix-blend-mode:screen; opacity:.98;\r\n  }\r\n  \/* Soft scanning shimmer (slower) *\/\r\n  #medayork-bg::after{\r\n    content:\"\"; position:absolute; inset:0;\r\n    background:linear-gradient(transparent 42%, rgba(160, 80, 255, .10) 50%, transparent 58%);\r\n    background-size:100% 300%;\r\n    animation:medaScan 14s linear infinite; opacity:.28;\r\n  }\r\n  @keyframes medaScan{0%{background-position-y:-180%}100%{background-position-y:180%}}\r\n\r\n  body{ background:#0a0714; }\r\n  .medayork-raise{ position:relative; z-index:1; }\r\n\r\n  @media (prefers-reduced-motion: reduce){\r\n    #medayork-bg::after{ animation:none; opacity:.14; }\r\n  }\r\n<\/style>\r\n\r\n<div id=\"medayork-bg\" aria-hidden=\"true\">\r\n  <canvas id=\"medaHyper\"><\/canvas>\r\n<\/div>\r\n\r\n<script>\r\n(()=>{\r\n\r\n  const MOBILE = innerWidth < 768;\r\n\r\n  \/* ===== Slowed config (no shapes) ===== *\/\r\n  const CFG = {\r\n    \/\/ Radial warp stars (very slow)\r\n    growth   : MOBILE ? 1.006 : 1.009,          \/\/ radial expansion per frame\r\n    swirl    : 0.00055,                          \/\/ subtle spiral\r\n    starCount: MOBILE ? 600 : 1200,\r\n    parallax : 10,\r\n\r\n    \/\/ Neon network\r\n    nodes    : MOBILE ? 60 : 120,\r\n    nodeSpeed: 0.12,                             \/\/ drift speed (slow)\r\n    linkDist : MOBILE ? 120 : 160,\r\n\r\n    \/\/ Colors\r\n    col:{\r\n      streak : 'rgba(195, 235, 255, .75)',\r\n      streak2: 'rgba(160, 120, 255, .35)',\r\n      glow   : 'rgba(150, 90, 255, .10)',\r\n      node   : '#efe6ff',\r\n      link   : 'rgba(140, 220, 255, .20)'\r\n    }\r\n  };\r\n\r\n  \/* ===== Canvas ===== *\/\r\n  const cvs = document.getElementById('medaHyper');\r\n  if(!cvs) return;\r\n  const ctx = cvs.getContext('2d', { alpha:true });\r\n  const DPR = Math.min(devicePixelRatio||1, 2);\r\n  let W=0,H=0,CX=0,CY=0,MAXR=0;\r\n\r\n  function resize(){\r\n    W = Math.max(document.documentElement.clientWidth, innerWidth||0);\r\n    H = Math.max(document.documentElement.clientHeight, innerHeight||0);\r\n    CX = W\/2; CY = H\/2;\r\n    MAXR = Math.hypot(W, H) * 0.72;\r\n    cvs.width = Math.floor(W*DPR); cvs.height = Math.floor(H*DPR);\r\n    cvs.style.width = W+'px'; cvs.style.height = H+'px';\r\n    ctx.setTransform(DPR,0,0,DPR,0,0);\r\n  }\r\n  resize(); addEventListener('resize', resize);\r\n\r\n  \/* ===== Input (parallax) ===== *\/\r\n  let mx=0,my=0;\r\n  addEventListener('mousemove', e=>{ mx = (e.clientX\/W)*2-1; my = (e.clientY\/H)*2-1; }, {passive:true});\r\n  addEventListener('deviceorientation', e=>{\r\n    if (e && (e.beta||e.gamma)){\r\n      mx = Math.max(-1, Math.min(1, (e.gamma||0)\/45));\r\n      my = Math.max(-1, Math.min(1, (e.beta ||0)\/45));\r\n    }\r\n  }, {passive:true});\r\n\r\n  \/* ===== Star Streaks (radial warp) ===== *\/\r\n  function makeStar(){\r\n    const r0 = 1 + Math.random()*3;\r\n    const a0 = Math.random()*Math.PI*2;\r\n    const v  = 1 + Math.random()*0.012;         \/\/ much smaller variance\r\n    const t  = Math.random()*2*Math.PI;\r\n    return { r:r0, a:a0, v, px:null, py:null, t };\r\n  }\r\n  const stars = Array.from({length:CFG.starCount}, makeStar);\r\n\r\n  function drawStars(){\r\n    ctx.globalCompositeOperation = 'source-over';\r\n    ctx.strokeStyle = CFG.col.streak;\r\n\r\n    for(const s of stars){\r\n      const ox = s.px, oy = s.py;\r\n\r\n      \/\/ slow radial growth + gentle swirl\r\n      s.r *= (CFG.growth * s.v);\r\n      s.a += CFG.swirl * (1.6 - Math.min(1.6, s.r\/(MAXR*0.6)));\r\n\r\n      \/\/ recycle when past edge\r\n      if (s.r > MAXR){\r\n        Object.assign(s, makeStar());\r\n      }\r\n\r\n      const x = CX + Math.cos(s.a)*s.r + mx*CFG.parallax;\r\n      const y = CY + Math.sin(s.a)*s.r - my*(CFG.parallax*0.9);\r\n\r\n      \/\/ short, soft trail (slow)\r\n      const tail = Math.min(8, (s.r\/MAXR)*12) + Math.sin(s.t += 0.08)*0.3;\r\n\r\n      if (ox != null){\r\n        ctx.lineWidth = Math.max(0.9, tail*0.42);\r\n        ctx.beginPath(); ctx.moveTo(ox, oy); ctx.lineTo(x, y); ctx.stroke();\r\n\r\n        ctx.globalCompositeOperation = 'lighter';\r\n        ctx.strokeStyle = CFG.col.streak2;\r\n        ctx.lineWidth = Math.max(0.5, tail*0.26);\r\n        ctx.beginPath(); ctx.moveTo(ox+0.4, oy); ctx.lineTo(x+0.4, y); ctx.stroke();\r\n        ctx.globalCompositeOperation = 'source-over';\r\n        ctx.strokeStyle = CFG.col.streak;\r\n      }\r\n\r\n      \/\/ node glow\r\n      ctx.fillStyle = CFG.col.glow;\r\n      ctx.beginPath(); ctx.arc(x, y, 5.5, 0, Math.PI*2); ctx.fill();\r\n      ctx.fillStyle = CFG.col.node;\r\n      ctx.beginPath(); ctx.arc(x, y, 1.1, 0, Math.PI*2); ctx.fill();\r\n\r\n      s.px = x; s.py = y;\r\n    }\r\n  }\r\n\r\n  \/* ===== Neon Network (nodes + links) ===== *\/\r\n  const nodes = Array.from({length:CFG.nodes}, ()=>({\r\n    x: Math.random()*W,\r\n    y: Math.random()*H,\r\n    vx: (Math.random()*2-1)*CFG.nodeSpeed,\r\n    vy: (Math.random()*2-1)*CFG.nodeSpeed\r\n  }));\r\n\r\n  function drawNetwork(){\r\n    \/\/ slow drift\r\n    for(const n of nodes){\r\n      n.x += n.vx; n.y += n.vy;\r\n      if (n.x<-30) n.x=W+30; if (n.x>W+30) n.x=-30;\r\n      if (n.y<-30) n.y=H+30; if (n.y>H+30) n.y=-30;\r\n    }\r\n\r\n    \/\/ links\r\n    ctx.strokeStyle = CFG.col.link;\r\n    ctx.lineWidth = 1;\r\n    ctx.globalAlpha = 0.9;\r\n    ctx.beginPath();\r\n    for(let i=0;i<nodes.length;i++){\r\n      const a = nodes[i];\r\n      const ax = a.x + mx*4, ay = a.y - my*4;\r\n      for(let j=i+1;j<nodes.length;j++){\r\n        const b = nodes[j];\r\n        const bx = b.x + mx*4, by = b.y - my*4;\r\n        const dx = ax - bx, dy = ay - by, d = Math.hypot(dx,dy);\r\n        if (d < CFG.linkDist){ ctx.moveTo(ax, ay); ctx.lineTo(bx, by); }\r\n      }\r\n    }\r\n    ctx.stroke();\r\n    ctx.globalAlpha = 1;\r\n\r\n    \/\/ nodes\r\n    for(const n of nodes){\r\n      const x = n.x + mx*4, y = n.y - my*4;\r\n      ctx.fillStyle = CFG.col.glow;\r\n      ctx.beginPath(); ctx.arc(x, y, 6, 0, Math.PI*2); ctx.fill();\r\n      ctx.fillStyle = CFG.col.node;\r\n      ctx.beginPath(); ctx.arc(x, y, 1.2, 0, Math.PI*2); ctx.fill();\r\n    }\r\n  }\r\n\r\n  \/* ===== Main Loop ===== *\/\r\n  let running = true;\r\n  function frame(){\r\n    if(!running) return;\r\n    requestAnimationFrame(frame);\r\n    ctx.clearRect(0,0,W,H);\r\n    drawNetwork();   \/\/ web first\r\n    drawStars();     \/\/ then warp streaks over it\r\n  }\r\n  frame();\r\n\r\n  document.addEventListener('visibilitychange', ()=>{\r\n    running = !document.hidden; if (running) frame();\r\n  });\r\n\r\n  \/\/ Runtime speed control (0.5 = slower, 1.0 = default, 1.4 = faster)\r\n  window.MedaYorkHyper = {\r\n    speed(mult=1){\r\n      const base = (innerWidth<768?1.006:1.009);\r\n      CFG.growth = base * mult;\r\n      CFG.swirl  = 0.00055 * mult;\r\n      \/\/ network drift\r\n      const baseV = 0.12;\r\n      for (const n of nodes){\r\n        const ang = Math.atan2(n.vy, n.vx);\r\n        const spd = baseV * mult;\r\n        n.vx = Math.cos(ang) * spd;\r\n        n.vy = Math.sin(ang) * spd;\r\n      }\r\n    }\r\n  };\r\n\r\n})();\r\n<\/script>\r\n\r\n<!-- MEDAYORK BOTTOM LEGAL LINKS -->\r\n<style>\r\n#medayorkLegalLinks {\r\n  position: relative;\r\n  z-index: 100;\r\n  width: 100%;\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n  flex-wrap: wrap;\r\n  gap: 8px 16px;\r\n  margin-top: 40px;\r\n  padding: 18px 12px 24px;\r\n  box-sizing: border-box;\r\n}\r\n\r\n#medayorkLegalLinks a {\r\n  color: rgba(205, 245, 255, 0.82);\r\n  font-family: Arial, sans-serif;\r\n  font-size: 12px;\r\n  font-weight: 600;\r\n  letter-spacing: 0.4px;\r\n  text-decoration: none;\r\n  transition: color 0.2s ease, text-shadow 0.2s ease;\r\n}\r\n\r\n#medayorkLegalLinks a:hover,\r\n#medayorkLegalLinks a:focus {\r\n  color: #ffffff;\r\n  text-shadow:\r\n    0 0 6px #00eaff,\r\n    0 0 12px rgba(0, 234, 255, 0.75);\r\n}\r\n\r\n#medayorkLegalLinks .medayork-legal-divider {\r\n  color: rgba(0, 234, 255, 0.45);\r\n  font-size: 10px;\r\n}\r\n\r\n@media (max-width: 600px) {\r\n  #medayorkLegalLinks {\r\n    gap: 7px 10px;\r\n    margin-top: 28px;\r\n    padding-bottom: 20px;\r\n  }\r\n\r\n  #medayorkLegalLinks a {\r\n    font-size: 10px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<nav id=\"medayorkLegalLinks\" aria-label=\"Legal information\">\r\n  <a href=\"https:\/\/godsgalaxygame.com\/GGG\/evolution-tours\/?privacy=1\">\r\n    Privacy Policy\r\n  <\/a>\r\n\r\n  <span class=\"medayork-legal-divider\" aria-hidden=\"true\">\u25c6<\/span>\r\n\r\n  <a href=\"https:\/\/godsgalaxygame.com\/GGG\/evolution-tours\/?terms=1\">\r\n    Terms of Use\r\n  <\/a>\r\n\r\n  <span class=\"medayork-legal-divider\" aria-hidden=\"true\">\u25c6<\/span>\r\n\r\n  <a href=\"https:\/\/godsgalaxygame.com\/GGG\/evolution-tours\/?operations=1\">\r\n    Operations Disclosure\r\n  <\/a>\r\n<\/nav>\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>Sign In \/ Sign Up Bliss Premier Access Website \u2197 Real Estate Website \u2197 Discounts &amp; Investments Website \u2197 Bliss Medellin Guide Website \u2197 Privacy Policy \u25c6 Terms of Use \u25c6 Operations Disclosure<\/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-3539","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/3539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/comments?post=3539"}],"version-history":[{"count":524,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/3539\/revisions"}],"predecessor-version":[{"id":10499,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/3539\/revisions\/10499"}],"wp:attachment":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/media?parent=3539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}