{"id":3227,"date":"2025-07-11T00:10:19","date_gmt":"2025-07-11T00:10:19","guid":{"rendered":"https:\/\/godsgalaxygame.com\/GGG\/?page_id=3227"},"modified":"2026-04-27T13:31:17","modified_gmt":"2026-04-27T13:31:17","slug":"new","status":"publish","type":"page","link":"https:\/\/godsgalaxygame.com\/GGG\/new\/","title":{"rendered":"New"},"content":{"rendered":"\n<!-- BLOQUE 2 - New Real Estate Cube V19 Completo + Mapa Circular + API -->\n  <style>\n  @media (max-width: 768px) {\n    #glowMapContainer { margin-top: -55px !important; }\n  }\n\n  \/* ===== L7 PORTAL FX LAYERS ===== *\/\n  #l7MapPortal { position:relative; }\n  #l7PortalFX{\n    pointer-events:none;           \/* keep map clickable *\/\n    mix-blend-mode: screen;        \/* makes it look \u201cdimensional\u201d *\/\n    opacity:.9;\n  }\n  .l7PortalRing{\n    position:absolute; inset:10px;\n    border-radius:50%;\n    pointer-events:none;\n    border:2px solid rgba(0,255,255,.55);\n    box-shadow:\n      0 0 18px rgba(0,255,255,.35),\n      inset 0 0 18px rgba(0,255,255,.25);\n  }\n  .l7PortalVignette{\n    position:absolute; inset:0;\n    border-radius:50%;\n    pointer-events:none;\n    background: radial-gradient(circle at 50% 45%,\n      rgba(0,0,0,0) 55%,\n      rgba(0,0,0,.55) 100%);\n\n  }\n<\/style>\n<div id=\"newCubeContainer\" style=\"opacity:1; pointer-events:auto; transition: opacity 0.6s ease;\">\n  <!-- ESCENA CUBO -->\n  <div class=\"cube-scene\" style=\"width:180px; height:180px; perspective:1000px; position:fixed; bottom:20px; left:20px; z-index:1000;\">\n    <div class=\"cube\" id=\"newCube\" style=\"width:100%; height:100%; position:relative; transform-style:preserve-3d; transform:rotateX(0deg) rotateY(0deg); transition:transform 0.3s ease;\">\n   <!-- FRONT -->\n      <div class=\"face front\" style=\"width:180px; height:180px; background:transparent; border:2px solid white; box-shadow:0 0 20px white; position:absolute; transform:rotateY(0deg) translateZ(90px); display:flex; flex-direction:column; justify-content:center; align-items:center; font-family:Orbitron;\">\n        <div style=\"font-size:42px; color:white; text-shadow:0 0 15px white;\">\ud83c\udf10<\/div>\n        <div style=\"font-size:16px; color:white; font-weight:bold; text-shadow:0 0 10px white; margin-top:6px;\">New<\/div>\n      <\/div>\n\n      <!-- Cara Trasera del Cubo: Transportation -->\n<!-- Back Face - Transportation Cube - Nuevo Dise\u00f1o con Botones Circulares -->\n<div class=\"face back\" style=\"width:180px; height:180px; background:#000; border:2px solid white; box-shadow:0 0 15px white; position:absolute; transform:rotateY(180deg) translateZ(90px); font-family:Orbitron,sans-serif;\">\n\n  <!-- Sol central -->\n  <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/1000065346-scaled.jpg\"\n       style=\"width:70px; height:70px; border-radius:50%; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); box-shadow:0 0 20px white;\" \/>\n\n  <!-- Reserve -->\n  <a href=\"https:\/\/godsgalaxygame.com\/GGG\/real-estate\/?enp=1\" target=\"_blank\"\n     style=\"position:absolute; top:8px; left:8px; width:44px; height:44px; border-radius:50%; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225452_Chrome-scaled.jpg'); background-size:cover; box-shadow:0 0 12px cyan;\"\n     title=\"Reserve\"><\/a>\n\n  <!-- Bliss Coin -->\n  <div onclick=\"openBlissCoinPopup()\"\n       style=\"position:absolute; top:8px; right:8px; width:44px; height:44px; border-radius:50%; background:#222; font-size:40px; display:flex; justify-content:center; align-items:center; color:white; box-shadow:0 0 10px cyan; cursor:pointer;\"\n       title=\"Pay with Bliss Coin\">\ud83d\udcb3<\/div>\n\n  <!-- Coupon Button (Bottom-Left Corner) -->\n<a href=\"https:\/\/godsgalaxygame.com\/GGG\/discounts-gift\/\"\n   target=\"_blank\"\n   style=\"position: absolute;\n          bottom: 8px;\n          left: 8px;\n          width: 44px;\n          height: 44px;\n          border-radius: 50%;\n          background-image: url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225546_Chrome.jpg');\n          background-size: cover;\n          box-shadow: 0 0 12px cyan;\n          cursor: pointer;\"\n   title=\"Get Coupons\">\n<\/a>\n\n  <!-- Become a Host -->\n  <a href=\"https:\/\/luxus2.godaddysites.com\/\" target=\"_blank\"\n     style=\"position:absolute; bottom:8px; right:8px; width:44px; height:44px; border-radius:50%; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-224514_Chrome-scaled.jpg'); background-size:cover; box-shadow:0 0 12px cyan;\"\n     title=\"Become a Host\"><\/a>\n<\/div>\n\n\n\n      <!-- RIGHT (Rent) -->\n      <div class=\"face right\" style=\"width:180px; height:180px; background:#000; border:2px solid beige; box-shadow:0 0 15px beige; position:absolute; transform:rotateY(90deg) translateZ(90px); font-family:Orbitron;\">\n        <button onclick=\"showHostButtons('rentss-avat')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Avatar<\/button>\n        <button onclick=\"showHostButtons('rentss-club')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Club<\/button>\n        <button onclick=\"showHostButtons('rentss-proper')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-rl; background:transparent;\">Properties<\/button>\n        <button onclick=\"showHostButtons('rentss-lotss')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-lr; background:transparent;\">Lot<\/button>\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\n          <div style=\"color:beige; font-size:16px; font-weight:bold;\">Rent<\/div>\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075245_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px beige;\">\n        <\/div>\n      <\/div>\n\n      <!-- LEFT (Buy) -->\n      <div class=\"face left\" style=\"width:180px; height:180px; background:#000; border:2px solid #00ccff; box-shadow:0 0 15px #00ccff; position:absolute; transform:rotateY(-90deg) translateZ(90px); font-family:Orbitron;\">\n        <button onclick=\"showHostButtons('buyz-ava')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Avatar<\/button>\n        <button onclick=\"showHostButtons('buyz-propert')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Properties<\/button>\n        <button onclick=\"showHostButtons('buyz-landm')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-rl; background:transparent;\">Landmarks<\/button>\n        <button onclick=\"showHostButtons('buyz-busin')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-lr; background:transparent;\">Businesses<\/button>\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\n          <div style=\"color:#00ccff; font-size:16px; font-weight:bold;\">Buy<\/div>\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075344_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px #00ccff;\">\n        <\/div>\n      <\/div>\n\n      <!-- TOP (Sell) -->\n      <div class=\"face top\" style=\"width:180px; height:180px; background:#000; border:2px solid green; box-shadow:0 0 15px #33ff33; position:absolute; transform:rotateX(90deg) translateZ(90px); font-family:Orbitron;\">\n        <button onclick=\"showHostButtons('sellz-properti')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Properties<\/button>\n        <button onclick=\"showHostButtons('sellz-even')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Events<\/button>\n        <button onclick=\"showHostButtons('sellz-busine')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-rl; background:transparent;\">Business<\/button>\n        <button onclick=\"showHostButtons('sellz-lott')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-lr; background:transparent;\">Lot<\/button>\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\n          <div style=\"color:#33ff33; font-size:16px; font-weight:bold;\">Sell<\/div>\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075305_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px #33ff33;\">\n        <\/div>\n      <\/div>\n\n      <!-- BOTTOM (Invest) -->\n      <div class=\"face bottom\" style=\"width:180px; height:180px; background:#000; border:2px solid red; box-shadow:0 0 15px red; position:absolute; transform:rotateX(-90deg) translateZ(90px); font-family:Orbitron;\">\n        <button onclick=\"showHostButtons('investz-landma')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Landmark<\/button>\n        <button onclick=\"showHostButtons('investz-clubz')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Club<\/button>\n        <button onclick=\"showHostButtons('investz-lanzz')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-rl; background:transparent;\">Land<\/button>\n        <button onclick=\"showHostButtons('investz-propertiez')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-lr; background:transparent;\">Properties<\/button>\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\n          <div style=\"color:red; font-size:16px; font-weight:bold;\">Invest<\/div>\n          <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250612_075325_Gallery.jpg\" style=\"width:65px; height:65px; border-radius:50%; box-shadow:0 0 12px red;\">\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <!-- MAPA CIRCULAR -->\n  <div id=\"glowMapContainer\"\n     style=\"opacity:1; pointer-events:auto; transition: opacity 0.6s ease;\n            margin: 0 auto; margin-top: -95px; margin-bottom: 40px;\n            width: 320px; height: 320px; border-radius: 50%;\n            overflow: hidden; border: 6px solid rgba(0,255,255,0.6);\n            box-shadow: 0 0 25px cyan; position: relative; z-index: 900;\">\n\n  <!-- PORTAL WRAPPER -->\n  <div id=\"l7MapPortal\" style=\"width:100%; height:100%; border-radius:50%; overflow:hidden; position:relative;\">\n\n    <!-- THIS IS STILL YOUR REAL GOOGLE MAP -->\n    <div id=\"googleMap\" style=\"width:100%; height:100%; position:absolute; inset:0;\"><\/div>\n\n    <!-- DIMENSION FX -->\n    <canvas id=\"l7PortalFX\" style=\"position:absolute; inset:0;\"><\/canvas>\n    <div class=\"l7PortalRing\"><\/div>\n    <div class=\"l7PortalVignette\"><\/div>\n\n  <\/div>\n<\/div>\n\n<!-- Google Maps API (clave v\u00e1lida y correcta) -->\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDLPhx98z9AgoqXS6VeoESE9NV6URuOhiE&#038;callback=initMap\" async defer><\/script>\n\n<!-- Google Maps API -->\n<script>\n  \/\/ evita re-cargar si el bloque se pega dos veces\n  window.__L7_MAPS_LOADED = window.__L7_MAPS_LOADED || false;\n<\/script>\n\n<script>\n  \/\/ ====== ACTIVAR CUBO (desde Bloque 1) ======\n  function activatenewCube() {\n    const selector = document.getElementById(\"enpCircleLayout\"); \/\/ AJUSTA ESTE ID si tu Block 1 usa otro\n    if (selector) selector.style.display = \"none\";\n\n    const container = document.getElementById(\"newCubeContainer\");\n    if (container) {\n      container.style.opacity = \"1\";\n      container.style.pointerEvents = \"auto\";\n    }\n\n    const mapWrap = document.getElementById(\"glowMapContainer\");\n    if (mapWrap) {\n      mapWrap.style.opacity = \"1\";\n      mapWrap.style.pointerEvents = \"auto\";\n    }\n\n    \/\/ si ya existe el mapa, solo refresca FX\n    if (window.ggMap) {\n      setTimeout(() => {\n        initL7PortalFX();\n        if (window.l7PortalPulse) window.l7PortalPulse();\n      }, 150);\n      return;\n    }\n\n    \/\/ si Google Maps ya carg\u00f3, inicializa\n    if (window.google && google.maps) {\n      initMap();\n    }\n  }\n\n  \/\/ ====== MAPA (callback de Google) ======\n  function initMap() {\n    const el = document.getElementById(\"googleMap\");\n    if (!el) return;\n\n    const map = new google.maps.Map(el, {\n      center: { lat: 6.25184, lng: -75.56359 }, \/\/ Medell\u00edn\n      zoom: 14,\n      mapTypeId: google.maps.MapTypeId.SATELLITE,\n      disableDefaultUI: false,\n    });\n\n    new google.maps.Marker({\n      position: { lat: 6.2414088, lng: -75.22951 },\n      map,\n      title: \"Bliss Glamping\",\n    });\n\n    window.ggMap = map;\n\n    \/\/ Portal FX despu\u00e9s de que el mapa existe\n    setTimeout(() => {\n      initL7PortalFX();\n      if (window.l7PortalPulse) window.l7PortalPulse();\n    }, 250);\n  }\n\n  \/\/ ====== PORTAL FX ======\n  function initL7PortalFX(){\n    const c = document.getElementById(\"l7PortalFX\");\n    const wrap = document.getElementById(\"l7MapPortal\");\n    if(!c || !wrap) return;\n\n    const ctx = c.getContext(\"2d\");\n    let w=0,h=0, t=0;\n\n    const stars = Array.from({length: 120}, ()=>({\n      x: Math.random(),\n      y: Math.random(),\n      z: 0.35 + Math.random()*0.65,\n      r: 0.6 + Math.random()*1.6\n    }));\n\n    function resize(){\n      const rect = wrap.getBoundingClientRect();\n      w = Math.max(1, Math.floor(rect.width));\n      h = Math.max(1, Math.floor(rect.height));\n      const dpr = window.devicePixelRatio || 1;\n      c.width = Math.floor(w * dpr);\n      c.height = Math.floor(h * dpr);\n      ctx.setTransform(dpr,0,0,dpr,0,0);\n    }\n\n    resize();\n\n    \/\/ no apiles listeners\n    if(!window.__l7PortalResizeBound){\n      window.addEventListener(\"resize\", resize);\n      window.__l7PortalResizeBound = true;\n    }\n\n    \/\/ no apiles animaciones (si pegas el bloque varias veces)\n    if (window.__l7PortalAnimOn) return;\n    window.__l7PortalAnimOn = true;\n\n    function draw(){\n      t += 0.008;\n      ctx.clearRect(0,0,w,h);\n\n      const g = ctx.createRadialGradient(\n        w*0.52, h*0.46, Math.min(w,h)*0.10,\n        w*0.5,  h*0.5,  Math.min(w,h)*0.70\n      );\n      g.addColorStop(0, `rgba(0,255,255,${0.10 + 0.06*Math.sin(t)})`);\n      g.addColorStop(0.55, `rgba(255,80,120,${0.06 + 0.04*Math.cos(t*1.3)})`);\n      g.addColorStop(1, \"rgba(0,0,0,0)\");\n      ctx.fillStyle = g;\n      ctx.fillRect(0,0,w,h);\n\n      ctx.globalAlpha = 0.9;\n      for(const s of stars){\n        const driftX = 0.012*Math.sin(t*s.z*2);\n        const driftY = 0.012*Math.cos(t*s.z*2.2);\n        const x = (s.x + driftX + 1) % 1;\n        const y = (s.y + driftY + 1) % 1;\n\n        const px = x*w, py = y*h;\n        const pulse = 0.35 + 0.65*Math.sin(t*2 + s.x*6);\n        ctx.fillStyle = `rgba(255,255,255,${0.18 + 0.22*pulse})`;\n        ctx.beginPath();\n        ctx.arc(px, py, s.r, 0, Math.PI*2);\n        ctx.fill();\n      }\n      ctx.globalAlpha = 1;\n\n      requestAnimationFrame(draw);\n    }\n    draw();\n  }\n\n  window.l7PortalPulse = function(){\n    const ring = document.querySelector(\"#l7MapPortal .l7PortalRing\");\n    if(!ring || !ring.animate) return;\n    ring.animate([\n      {transform:\"scale(1)\", opacity:1},\n      {transform:\"scale(1.05)\", opacity:0.7},\n      {transform:\"scale(1)\", opacity:1}\n    ], {duration:520, easing:\"ease-out\"});\n  };\n<\/script>\n\n<script>\n  \/\/ cargar Google Maps solo una vez\n  (function loadGoogleMapsOnce(){\n    if (window.__L7_MAPS_LOADED) return;\n    window.__L7_MAPS_LOADED = true;\n\n    const s = document.createElement(\"script\");\n    s.src = \"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDLPhx98z9AgoqXS6VeoESE9NV6URuOhiE&callback=initMap\";\n    s.async = true;\n    s.defer = true;\n    document.head.appendChild(s);\n  })();\n<\/script>\n\n\n<\/script>\n<!-- POP-UP para Bliss Coin -->\n<div id=\"blissCoinPopup\" style=\"display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.9); z-index:9999; justify-content:center; align-items:center; font-family:Orbitron;\">\n  <div style=\"background:#111; padding:30px 20px; border:2px solid cyan; border-radius:20px; color:white; width:300px; text-align:center; box-shadow:0 0 20px cyan;\">\n    <h3 style=\"font-size:18px;\">\ud83d\udcb3 Pay with Bliss Coin<\/h3>\n    <p style=\"font-size:14px;\">Enter your digital wallet #:<\/p>\n    <input type=\"text\" placeholder=\"Your Wallet #\" style=\"width:90%; padding:8px; border-radius:10px; border:1px solid white; background:#000; color:white; margin-top:8px;\" \/>\n    <p style=\"margin-top:14px;\">Send payment to:<\/p>\n    <div style=\"margin:8px auto; padding:6px; background:#222; border:1px solid cyan; border-radius:8px;\">\n      <code style=\"font-size:13px;\">HOST-WALLET-ADDRESS-123<\/code>\n    <\/div>\n    <button onclick=\"closeBlissCoinPopup()\" style=\"margin-top:12px; padding:6px 16px; border-radius:10px; background:cyan; border:none; color:#000; font-weight:bold; cursor:pointer;\">\n      Close\n    <\/button>\n  <\/div>\n<\/div>\n\n<script>\n  function openBlissCoinPopup() {\n    document.getElementById('blissCoinPopup').style.display = 'flex';\n  }\n  function closeBlissCoinPopup() {\n    document.getElementById('blissCoinPopup').style.display = 'none';\n  }\n<\/script>\n\n\n\n<!-- BLOQUE 3 \u2013 Movimiento + Swipe + SignIn + Favoritos (First You) -->\n\n<!-- ESTILOS -->\n<style>\n  #floatingButtons {\n    position: fixed;\n    top: 14px;\n    right: 14px;\n    display: flex;\n    flex-direction: row;\n    gap: 10px;\n    z-index: 3000;\n  }\n\n  #favoritesBtn, #signinBtn {\n    font-size: 15px;\n    padding: 6px 10px;\n    border-radius: 8px;\n    border: 2px solid white;\n    color: white;\n    background: rgba(0, 0, 0, 0.6);\n    cursor: pointer;\n    box-shadow: 0 0 8px cyan;\n    font-family: Orbitron;\n  }\n\n  #favoritesBtn:hover::after {\n    content: ' Double click a Host to add \ud83d\udc98';\n    font-size: 10px;\n    margin-left: 8px;\n    color: cyan;\n  }\n#pyramidBtn {\n    width: 38px;\n    height: 38px;\n    background-color: black;\n    border: 2px solid white;\n    border-radius: 50%;\n    box-shadow: 0 0 10px cyan; \/* glow *\/\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    font-size: 20px; \/* emoji size *\/\n    cursor: pointer;\n    margin-top: 2px; \/* align with rose *\/\n  }\n\n  #pyramidBtn:hover {\n    transform: scale(1.2);\n  }\n\n  #signinBtn:hover::after {\n    content: ' Sign in to save your Favorites';\n    font-size: 10px;\n    margin-left: 8px;\n    color: cyan;\n  }\n\n  #swipeImage {\n    position: fixed;\n    top: 0;\n    left: 50%;\n    transform: translateX(-50%);\n    width: 160px;\n    z-index: 1200;\n    display: none;\n  }\n#swipeImage {\n  display: none !important;\n}\n\n<\/style>\n\n<!-- BOTONES FLOTANTES -->\n<div id=\"floatingButtons\">\n<button\n    id=\"pyramidBtn\"\n    title=\"Back to MedaYork Pyramid\"\n    onclick=\"window.location.href='https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/';\">\n    \ud83e\uddca\n  <\/button>\n\n  <button id=\"favoritesBtn\">\ud83d\udc96<\/button>\n  <button id=\"signinBtn\">Sign In \/ Sign Up<\/button>\n<\/div>\n\n<!-- IMAGEN DE SWIPE -->\n<img decoding=\"async\" id=\"swipeImage\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20250627_154147_Gallery.jpg\" alt=\"Swipe\" \/>\n\n<!-- SCRIPT DE FUNCIONALIDAD -->\n<script>\n  \/\/ Movimiento del cubo Commercial \n  let isDragging = false, startX, startY, rotateX = 0, rotateY = 0;\n  const cube = document.getElementById('newCube');\n\n  function updateRotation(x, y) {\n    cube.style.transform = `rotateX(${x}deg) rotateY(${y}deg)`;\n  }\n\n  function onMouseDown(e) {\n    isDragging = true;\n    startX = e.clientX;\n    startY = e.clientY;\n  }\n\n  function onMouseMove(e) {\n    if (!isDragging) return;\n    const deltaX = e.clientX - startX;\n    const deltaY = e.clientY - startY;\n    rotateY += deltaX * 0.5;\n    rotateX -= deltaY * 0.5;\n    updateRotation(rotateX, rotateY);\n    startX = e.clientX;\n    startY = e.clientY;\n  }\n\n  function onMouseUp() {\n    isDragging = false;\n  }\n\n  function onTouchStart(e) {\n    isDragging = true;\n    startX = e.touches[0].clientX;\n    startY = e.touches[0].clientY;\n  }\n\n  function onTouchMove(e) {\n    if (!isDragging) return;\n    const deltaX = e.touches[0].clientX - startX;\n    const deltaY = e.touches[0].clientY - startY;\n    rotateY += deltaX * 0.5;\n    rotateX -= deltaY * 0.5;\n    updateRotation(rotateX, rotateY);\n    startX = e.touches[0].clientX;\n    startY = e.touches[0].clientY;\n  }\n\n  function onTouchEnd() {\n    isDragging = false;\n  }\n\n  const cubeContainer = document.querySelector('.cube-scene');\n  if (cubeContainer) {\n    cubeContainer.addEventListener('mousedown', onMouseDown);\n    window.addEventListener('mousemove', onMouseMove);\n    window.addEventListener('mouseup', onMouseUp);\n    cubeContainer.addEventListener('touchstart', onTouchStart);\n    window.addEventListener('touchmove', onTouchMove);\n    window.addEventListener('touchend', onTouchEnd);\n  }\n\n  \/\/ Swipe image cuando aparece el cubo Commercial\n  const observer = new MutationObserver(() => {\n    const commercial = document.getElementById('commercialCubeContainer');\n    if (commercial && commercial.style.opacity === \"1\") {\n      const swipe = document.getElementById('swipeImage');\n      swipe.style.display = 'block';\n      setTimeout(() => {\n        swipe.style.display = 'none';\n      }, 3500);\n      observer.disconnect();\n    }\n  });\n  observer.observe(document.body, { childList: true, subtree: true });\n\n  \/\/ Sistema de favoritos \ud83d\udc96 \u2192 \ud83d\udc98\n  const favorites = [];\n\n  function toggleFavorite(id, imgUrl, mapLat, mapLng) {\n    if (!favorites.some(f => f.id === id)) {\n      favorites.push({ id, imgUrl, lat: mapLat, lng: mapLng });\n      document.getElementById(\"favoritesBtn\").textContent = \"\ud83d\udc98\";\n      console.log(\"Favorito agregado:\", id);\n    }\n  }\n\n  function clearFavorites() {\n    favorites.length = 0;\n    document.getElementById(\"favoritesBtn\").textContent = \"\ud83d\udc96\";\n  }\n\n  function focusOnHost(lat, lng) {\n    if (window.ggMap) {\n      window.ggMap.setCenter({ lat, lng });\n      window.ggMap.setZoom(15);\n      new google.maps.Marker({ position: { lat, lng }, map: window.ggMap });\n    }\n  }\n\n  document.getElementById(\"favoritesBtn\").addEventListener(\"click\", () => {\n    if (favorites.length === 0) return;\n    document.querySelectorAll('.host-circle').forEach(btn => btn.style.display = 'none');\n    favorites.forEach(fav => {\n      const existing = document.querySelector(`.${fav.id}`);\n      if (existing) existing.style.display = 'inline-block';\n    });\n  });\n<\/script>\n\n\n\n<!-- HOST CIRCLES \u2014 CSS (Accommodations) -->\n<style>\n  #hostButtons{\n    display:none;                 \/* hidden until a sub-option is clicked *\/\n    position:absolute;\n    top:50%; left:50%;\n    transform:translate(-50%,-50%);\n    width:100%; max-width:500px; height:500px;\n    pointer-events:none;          \/* turned ON in JS when shown *\/\n    z-index:3000;\n  }\n\n  \/* buttons *\/\n  #hostButtons .host-circle{\n    width:80px; height:80px; border-radius:50%;\n    border:2px solid #fff; box-shadow:0 0 14px #fff;\n    background-size:cover; background-position:center;\n    position:absolute; pointer-events:auto; cursor:pointer;\n    transition:transform .3s, box-shadow .3s;\n  }\n  #hostButtons .host-circle:hover{ transform:scale(1.15); box-shadow:0 0 20px cyan; }\n\n  \/* desktop placement (around the circle) *\/\n  #hostButtons .one    { top:4%;    left:10%; }\n  #hostButtons .five   { top:4%;    right:10%; }\n  #hostButtons .seven  { bottom:8%; left:10%; }\n  #hostButtons .month  { bottom:8%; right:10%; }\n\n  \/* color accents per family (match cube face glows) *\/\n  #hostButtons .highrise { border-color:beige;   box-shadow:0 0 14px beige; }\n  #hostButtons .historic { border-color:#00ccff; box-shadow:0 0 14px #00ccff; }\n  #hostButtons .ecostay  { border-color:#33ff33; box-shadow:0 0 14px #33ff33; }\n  #hostButtons .mansions { border-color:red;     box-shadow:0 0 14px red; }\n\n  \/* phone: turn into one row under the map *\/\n  @media (max-width:768px){\n    #hostButtons{\n      position:relative; top:auto; left:auto; transform:none;\n      height:auto; margin-top:-35px;\n      display:none;               \/* still hidden by default *\/\n      flex-wrap:nowrap; justify-content:center; gap:10px;\n    }\n    #hostButtons .host-circle{ position:relative; width:75px; height:75px; margin:0 6px; }\n  }\n\n<\/style>\n\n<!-- HOST CIRCLES \u2014 HTML (Accommodations: High-Rise\n \/ Historic \/ Eco-Stay \/ Mansions) -->\n<div id=\"hostButtons\">\n  <!-- HIGH-RISE (beige) -->\n  <button class=\"host-circle rentss rentss-avat one\"\n    data-lat=\"6.241568778606768\" data-lng=\"-75.22695655776336\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240821_175227_Instagram.jpg');\"\n    title=\"High-Rise \u2022 1\u20133 Days\"><\/button>\n\n  <button class=\"host-circle rentss rentss-club five\"\n    data-lat=\"6.241568778606768\" data-lng=\"-75.22695655776336\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"High-Rise \u2022 4\u20136 Days\"><\/button>\n\n  <button class=\"host-circle rentss rentss-proper seven\"\n    data-lat=\"6.24267\" data-lng=\"-75.22668\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"High-Rise \u2022 7 Days\"><\/button>\n\n  <button class=\"host-circle rentss rentss-lotss month\"\n    data-lat=\"6.24267\" data-lng=\"-75.22668\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"High-Rise \u2022 1 Month\"><\/button>\n\n  <!-- HISTORIC (cyan) -->\n  <button class=\"host-circle buyz buyz-ava one\"\n    data-lat=\"6.23796\" data-lng=\"-75.21421\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Historic \u2022 1\u20133 Days\"><\/button>\n\n  <button class=\"host-circle buyz buyz-propert five\"\n    data-lat=\"6.23796\" data-lng=\"-75.21421\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Historic \u2022 4\u20136 Days\"><\/button>\n\n  <button class=\"host-circle buyz buyz-landm seven\"\n    data-lat=\"6.24006\" data-lng=\"-75.18750\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Historic \u2022 7 Days\"><\/button>\n\n  <button class=\"host-circle buyz buyz-busin seven\"\n    data-lat=\"6.22670\" data-lng=\"-75.18056\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Historic \u2022 1 Month\"><\/button>\n\n  <!-- ECO-STAY (green) -->\n  <button class=\"host-circle sellz sellz-properti one\"\n    data-lat=\"6.241568778606768\" data-lng=\"-75.22695655776336\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Eco-Stay \u2022 1\u20133 Days\"><\/button>\n\n  <button class=\"host-circle sellz sellz-even five\"\n    data-lat=\"6.241568778606768\" data-lng=\"-75.22695655776336\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Eco-Stay \u2022 4\u20136 Days\"><\/button>\n\n  <button class=\"host-circle sellz sellz-busine seven\"\n    data-lat=\"6.22879\" data-lng=\"-75.21184\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Eco-Stay \u2022 7 Days\"><\/button>\n\n  <button class=\"host-circle sellz sellz-lott month\"\n    data-lat=\"6.22879\" data-lng=\"-75.21184\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Eco-Stay \u2022 1 Month\"><\/button>\n\n  <!-- MANSIONS (red) -->\n  <button class=\"host-circle investz investz-landma one\"\n    data-lat=\"6.24203\" data-lng=\"-75.22696\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Mansions \u2022 1\u20133 Days\"><\/button>\n\n  <button class=\"host-circle investz investz-clubz five\"\n    data-lat=\"6.24203\" data-lng=\"-75.22696\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061057_PowerPoint-1.jpg');\"\n    title=\"Mansions \u2022 4\u20136 Days\"><\/button>\n\n  <button class=\"host-circle investz investz-lanzz seven\"\n    data-lat=\"6.24203\" data-lng=\"-75.22696\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240706_061611_PowerPoint.jpg');\"\n    title=\"Mansions \u2022 7 Days\"><\/button>\n\n  <button class=\"host-circle investz investz-propertiez month\"\n    data-lat=\"6.24203\" data-lng=\"-75.22696\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240821_175227_Instagram.jpg');\"\n    title=\"Mansions \u2022 1 Month\"><\/button>\n<\/div>\n\n<!-- HOST CIRCLES \u2014 JS (Accommodations) -->\n<script>\n  \/* Show only the requested key, e.g., 'highrise-one' *\/\n  function showHostButtons(suboption){\n  loadLevel7Hosts(suboption);\n}\n\n  \/\/ dbl-tap \/ dbl-click to favorite (uses your existing toggleFavorite)\n  document.addEventListener('DOMContentLoaded', () => {\n    document.querySelectorAll('#hostButtons .host-circle').forEach(btn => {\n      btn.addEventListener('dblclick', (e) => {\n        e.preventDefault();\n\n        \/\/ \u2705 Get the specific key like \"heli-around\" \/ \"yacht-goto\"\n        const id = [...btn.classList].find(c =>\n          c.includes('-') &&\n          !['host-circle','around','goto','emergency','adventure'].includes(c)\n        );\n\n        if (!id) {\n          console.warn(\"No favorite id found for button:\", btn.className);\n          return;\n        }\n\n        \/\/ background-image: url(\"...\") or url('...')\n        const bg = btn.style.backgroundImage || '';\n        const img = bg.startsWith('url(')\n          ? bg.slice(4, -1).replace(\/^[\"']|[\"']$\/g, '')\n          : '';\n\n        const lat = parseFloat(btn.dataset.lat);\n        const lng = parseFloat(btn.dataset.lng);\n\n        if (typeof toggleFavorite === 'function') {\n          toggleFavorite(id, img, lat, lng);\n        } else {\n          console.warn(\"toggleFavorite() is not defined yet.\");\n        }\n      });\n    });\n  });\n\n\n\n  \/* Center the map when any host circle is clicked *\/\n  document.addEventListener('click', function (e) {\n    const btn = e.target.closest('#hostButtons .host-circle');\n    if (!btn) return;\n\n    const lat = parseFloat(btn.dataset.lat);\n    const lng = parseFloat(btn.dataset.lng);\n    if (!Number.isFinite(lat) || !Number.isFinite(lng)) return;\n\n    if (typeof window.focusOnHost === 'function') {\n      focusOnHost(lat, lng);\n      return;\n    }\n\n    if (window.ggMap && window.google) {\n      const pos = new google.maps.LatLng(lat, lng);\n      ggMap.setCenter(pos);\n      ggMap.setZoom(15);\n      new google.maps.Marker({ position: pos, map: ggMap });\n    }\n  });\n<\/script>\n\n\n\n<!-- ==========================================================\nLEVEL 7 \u2014 NEW REAL ESTATE PAGE (FULL GATE + CONTENT)\n- LOCKED: Gate overlay only (whole page hidden)\n- UNLOCKED: Full page visible (map, UI, cube, circles, modal, etc.)\n========================================================== -->\n\n<style>\n  \/* =========================\n     FULL PAGE GATE OVERLAY\n  ========================= *\/\n  #gggNewRE_GateOverlay{\n    position:fixed; inset:0;\n    z-index:2147483647;\n    display:none;              \/* toggled by JS *\/\n    align-items:center;\n    justify-content:center;\n    padding:16px;\n    background:rgba(0,0,0,.82);\n    backdrop-filter: blur(12px);\n    -webkit-backdrop-filter: blur(12px);\n  }\n\n  .gggGateWrap{\n    width:min(980px, 94vw);\n    padding: 18px;\n    border-radius: 22px;\n    border:1px solid rgba(255,255,255,.14);\n    background: linear-gradient(135deg, rgba(8,10,16,.92), rgba(18,18,26,.82));\n    box-shadow: 0 0 42px rgba(0,255,255,.16);\n    color:#fff;\n    font-family: Orbitron, system-ui, sans-serif !important;\n  }\n  .gggGateTitle{\n    margin:0 0 6px;\n    font-weight: 900;\n    letter-spacing: .08em;\n    text-transform: uppercase;\n    font-size: 14px;\n  }\n  .gggGateSub{\n    margin:0 0 14px;\n    opacity:.80;\n    font-size: 12px;\n    line-height: 1.4;\n    font-family: system-ui, sans-serif;\n  }\n  .gggDivider{\n    height:1px;\n    background: rgba(255,255,255,.10);\n    margin: 14px 0;\n  }\n  .gggRow{\n    display:grid;\n    grid-template-columns: 1fr 1fr 1fr;\n    gap:10px;\n    margin: 10px 0 0;\n  }\n  .gggInp{\n    height:46px;\n    border-radius:14px;\n    border:1px solid rgba(255,255,255,.16);\n    background:rgba(0,0,0,.30);\n    color:#fff;\n    padding:0 12px;\n    outline:none;\n    font-family: system-ui, sans-serif;\n  }\n  .gggBtnRow{\n    display:flex;\n    gap:10px;\n    flex-wrap:wrap;\n    margin-top:12px;\n  }\n  .gggBtn{\n    height:46px;\n    padding:0 14px;\n    border-radius:14px;\n    border:1px solid rgba(255,255,255,.18);\n    background:rgba(0,0,0,.35);\n    color:#fff;\n    cursor:pointer;\n    font-family: Orbitron, system-ui, sans-serif !important;\n    font-weight: 900;\n    letter-spacing: .04em;\n    box-shadow: 0 0 16px rgba(0,255,255,.12);\n  }\n  .gggBtn:hover{ transform: scale(1.01); }\n  .gggNote{\n    font-family: system-ui, sans-serif;\n    font-size: 12px;\n    opacity:.80;\n    line-height: 1.4;\n    margin: 10px 0 0;\n  }\n  #gggGateMsg{ margin-top:10px; font-family: system-ui, sans-serif; font-size:12px; opacity:.85; }\n\n  @media (max-width: 820px){\n    .gggRow{ grid-template-columns: 1fr; }\n  }\n\n  \/* =========================\n     PAGE VISIBILITY CONTROL\n     (this is the key)\n  ========================= *\/\n  #gggNewRE_Page.gggLocked{\n    display:none !important;  \/* hides EVERYTHING in the page when locked *\/\n  }\n<\/style>\n\n<!-- ==========================================================\nENTIRE PAGE WRAPPER\nPut EVERYTHING that should be hidden until unlocked inside here.\n========================================================== -->\n<div id=\"gggNewRE_Page\" class=\"gggLocked\">\n\n  <!-- ==========================================================\n  LOCKED CONTENT AREA (your New Real Estate system)\n  Everything is inside the page wrapper, so it stays hidden while locked.\n  ========================================================== -->\n  <div id=\"gggNewRE_Locked\">\n\n    <!-- ============================\n    L7 \u2014 NEW REAL ESTATE MODAL v7 (CAMERA + RENT AVATAR)\n    (UNCHANGED: your full modal system)\n    ============================ -->\n\n    <style>\n      #l7GoldOverlay{\n        position:fixed; inset:0;\n        display:none;\n        align-items:center; justify-content:center;\n        background:rgba(0,0,0,.58);\n        z-index:999999;\n        padding:14px;\n      }\n      html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }\n      #l7CameraPanel{\n        max-height: 62vh;\n        overflow-y: auto;\n        -webkit-overflow-scrolling: touch;\n      }\n\n      #l7GoldCard{\n        width:min(900px, 94vw);\n        max-height:min(900px, 88vh);\n        overflow:hidden;\n        border-radius:22px;\n        border:1px solid rgba(255,255,255,.16);\n        background:linear-gradient(135deg, rgba(8,10,16,.92), rgba(18,18,26,.82));\n        box-shadow:0 0 42px rgba(0,255,255,.18);\n        font-family: Orbitron, system-ui, sans-serif !important;\n        color:#fff;\n        position:relative;\n        display:flex;\n        flex-direction:column;\n      }\n      #l7GoldTop{\n        display:flex;\n        align-items:center;\n        justify-content:space-between;\n        gap:14px;\n        padding:14px 16px;\n        border-bottom:1px solid rgba(255,255,255,.08);\n      }\n      #l7GoldTitleWrap{ display:flex; flex-direction:column; gap:6px; }\n      #l7GoldTitle{\n        margin:0;\n        font-weight:900;\n        letter-spacing:.08em;\n        text-transform:uppercase;\n        font-size:clamp(13px, 1.25vw, 15px);\n        opacity:.98;\n      }\n      #l7GoldSub{\n        margin:0;\n        font-size:clamp(11px, 1.05vw, 12px);\n        opacity:.78;\n      }\n      #l7GoldClose{\n        width:42px; height:42px;\n        border-radius:14px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.35);\n        color:#fff;\n        cursor:pointer;\n        font-size:18px;\n        line-height:1;\n        box-shadow:0 0 14px rgba(0,255,255,.16);\n      }\n      #l7GoldClose:hover{ transform:scale(1.04); }\n\n      #l7BackToGrid{\n        display:none;\n        margin-left:auto;\n        margin-right:10px;\n        height:42px;\n        padding:0 14px;\n        border-radius:14px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.35);\n        color:#fff;\n        cursor:pointer;\n        font-family: Orbitron, system-ui, sans-serif !important;\n        font-weight:900;\n        letter-spacing:.04em;\n        font-size:12px;\n        box-shadow:0 0 14px rgba(0,255,255,.12);\n      }\n      #l7BackToGrid:hover{ transform:scale(1.02); }\n\n      #l7AptPanel{\n        display:none;\n        padding:14px 16px 16px;\n        border-bottom:1px solid rgba(255,255,255,.08);\n      }\n      #l7AptGrid{\n        display:grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap:10px;\n      }\n      .l7AptBtn{\n        font-family: Orbitron, system-ui, sans-serif !important;\n        font-weight:900;\n        letter-spacing:.02em;\n        font-size:clamp(12px, 1.2vw, 14px);\n        height:54px;\n        border-radius:16px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.30);\n        color:rgba(255,255,255,.96);\n        box-shadow:0 0 16px rgba(0,255,255,.12);\n        cursor:pointer;\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        text-align:center;\n        padding:0 10px;\n      }\n      .l7AptBtn:hover{ transform:scale(1.01); }\n\n      #l7AvatarPanel,\n      #l7CameraPanel,\n      #l7SellPanel{\n        display:none;\n        padding:14px 16px 16px;\n        border-bottom:1px solid rgba(255,255,255,.08);\n      }\n\n      .l7PanelTitle{\n        margin:0 0 10px;\n        font-weight:900;\n        letter-spacing:.06em;\n        text-transform:uppercase;\n        font-size:13px;\n        opacity:.95;\n      }\n\n      .l7ChipRow{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }\n      .l7Chip{\n        height:42px;\n        padding:0 14px;\n        border-radius:999px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.30);\n        color:#fff;\n        cursor:pointer;\n        font-family: Orbitron, system-ui, sans-serif !important;\n        font-weight:900;\n        letter-spacing:.03em;\n        box-shadow:0 0 14px rgba(0,255,255,.10);\n      }\n      .l7Chip.active{\n        border-color:rgba(0,255,255,.38);\n        box-shadow:0 0 18px rgba(0,255,255,.18);\n      }\n\n      #l7AvatarGrid{\n        margin-top:12px;\n        display:grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap:10px;\n      }\n      .l7AvatarOpt{\n        height:110px;\n        border-radius:18px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.30);\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        font-family: Orbitron, system-ui, sans-serif !important;\n        font-weight:900;\n        letter-spacing:.03em;\n        cursor:pointer;\n        box-shadow:0 0 14px rgba(0,255,255,.10);\n        position:relative;\n        overflow:hidden;\n      }\n      .l7AvatarOpt.selected{\n        border-color:rgba(255,80,120,.50);\n        box-shadow:0 0 18px rgba(255,80,120,.20);\n      }\n      .l7AvatarThumb{\n        position:absolute; inset:0;\n        background-size:cover; background-position:center;\n        opacity:.95;\n        filter:saturate(1.05) contrast(1.05);\n      }\n      .l7AvatarLabel{\n        position:relative;\n        padding:8px 10px;\n        background:rgba(0,0,0,.45);\n        border:1px solid rgba(255,255,255,.14);\n        border-radius:999px;\n        font-size:12px;\n        letter-spacing:.06em;\n        text-transform:uppercase;\n      }\n\n      .l7FormRow{\n        display:grid;\n        grid-template-columns:1fr 1fr;\n        gap:10px;\n      }\n      .l7Inp{\n        height:46px;\n        border-radius:14px;\n        border:1px solid rgba(255,255,255,.16);\n        background:rgba(0,0,0,.30);\n        color:#fff;\n        padding:0 12px;\n        outline:none;\n        font-family: system-ui, sans-serif;\n      }\n      .l7Txt{\n        width:100%;\n        min-height:120px;\n        border-radius:16px;\n        border:1px solid rgba(255,255,255,.16);\n        background:rgba(0,0,0,.30);\n        color:#fff;\n        padding:10px 12px;\n        outline:none;\n        font-family: system-ui, sans-serif;\n        resize:vertical;\n      }\n\n      #l7GoldMedia{\n        position:relative;\n        background:rgba(0,0,0,.65);\n        display:flex;\n        align-items:center;\n        justify-content:center;\n      }\n      #l7GoldImg, #l7GoldVid{\n        width:100%;\n        height:min(54vh, 460px);\n        object-fit:contain;\n        background:rgba(0,0,0,.75);\n        display:none;\n      }\n      #l7GoldVid{ object-fit:cover; }\n\n      #l7GoldNav{\n        position:absolute;\n        left:12px; right:12px; bottom:12px;\n        display:none;\n        align-items:center;\n        justify-content:space-between;\n        gap:10px;\n        pointer-events:none;\n      }\n      .l7NavBtn{\n        pointer-events:auto;\n        width:44px; height:40px;\n        border-radius:14px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.42);\n        color:#fff;\n        cursor:pointer;\n        font-size:20px;\n      }\n      #l7Dots{\n        pointer-events:auto;\n        display:flex;\n        gap:8px;\n        justify-content:center;\n        flex:1;\n      }\n      .l7Dot{\n        width:10px; height:10px;\n        border-radius:999px;\n        background:rgba(255,255,255,.22);\n        border:1px solid rgba(0,255,255,.20);\n        cursor:pointer;\n      }\n      .l7Dot.active{\n        background:rgba(0,255,255,.90);\n        box-shadow:0 0 16px rgba(0,255,255,.20);\n      }\n\n      #l7GoldActions{\n        padding:14px 16px 16px;\n        display:grid;\n        grid-template-columns: 1fr 1fr;\n        gap:10px;\n        border-top:1px solid rgba(255,255,255,.08);\n      }\n      .l7Action{\n        font-family: Orbitron, system-ui, sans-serif !important;\n        font-weight:900;\n        letter-spacing:.02em;\n        font-size:clamp(12px, 1.25vw, 14px);\n        height:52px;\n        border-radius:16px;\n        border:1px solid rgba(255,255,255,.18);\n        background:rgba(0,0,0,.32);\n        color:rgba(255,255,255,.96);\n        box-shadow:0 0 16px rgba(0,255,255,.14);\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        gap:10px;\n        cursor:pointer;\n        text-decoration:none;\n        user-select:none;\n      }\n      .l7Action:hover{ transform:scale(1.01); }\n      .l7Ico{ font-size:18px; line-height:1; opacity:.95; }\n\n      .l7MiniHelp{\n        opacity:.75;\n        font-size:12px;\n        margin:10px 0 0;\n        line-height:1.35;\n        font-family: system-ui, sans-serif;\n      }\n      .l7Divider{\n        height:1px;\n        background:rgba(255,255,255,.10);\n        margin:12px 0;\n      }\n\n      @media (max-width: 720px){\n        #l7AptGrid{ grid-template-columns: repeat(2, 1fr); }\n        #l7AvatarGrid{ grid-template-columns: repeat(2, 1fr); }\n        .l7FormRow{ grid-template-columns:1fr; }\n      }\n    <\/style>\n\n    <div id=\"l7GoldOverlay\" aria-hidden=\"true\">\n      <div id=\"l7GoldCard\" role=\"dialog\" aria-label=\"Listing Preview\">\n        <div id=\"l7GoldTop\">\n          <div id=\"l7GoldTitleWrap\">\n            <h3 id=\"l7GoldTitle\">ENP NEW REAL ESTATE \u2022 LISTINGS<\/h3>\n            <p id=\"l7GoldSub\">Select an option<\/p>\n          <\/div>\n\n          <button id=\"l7BackToGrid\" type=\"button\">\u25c0 BACK<\/button>\n          <button id=\"l7GoldClose\" aria-label=\"Close\">\u2715<\/button>\n        <\/div>\n\n        <div id=\"l7AptPanel\">\n          <div id=\"l7AptGrid\"><\/div>\n        <\/div>\n\n        <div id=\"l7AvatarPanel\">\n          <p class=\"l7PanelTitle\">Rent Avatar \u2022 Choose Type + Avatar<\/p>\n\n          <div class=\"l7ChipRow\">\n            <button class=\"l7Chip\" data-type=\"Men\" type=\"button\">MEN<\/button>\n            <button class=\"l7Chip\" data-type=\"Women\" type=\"button\">WOMEN<\/button>\n            <button class=\"l7Chip\" data-type=\"Kids\" type=\"button\">KIDS<\/button>\n          <\/div>\n\n          <div class=\"l7Divider\"><\/div>\n          <div id=\"l7AvatarGrid\"><\/div>\n\n          <p class=\"l7MiniHelp\">\n            Your avatar choice + picture are saved and included when you press <b>Contact<\/b>.\n          <\/p>\n        <\/div>\n\n        <div id=\"l7CameraPanel\">\n          <p class=\"l7PanelTitle\">Buy Avatar \u2022 Capture Photo (Auto-creates Avatar)<\/p>\n          <div class=\"l7FormRow\">\n            <div style=\"border:1px solid rgba(255,255,255,.16);border-radius:16px;overflow:hidden;background:rgba(0,0,0,.25);\">\n              <video id=\"l7Cam\" autoplay playsinline style=\"width:100%;aspect-ratio:16\/10;object-fit:cover;\"><\/video>\n            <\/div>\n            <div style=\"border:1px solid rgba(255,255,255,.16);border-radius:16px;overflow:hidden;background:rgba(0,0,0,.25);\">\n              <canvas id=\"l7Snap\" style=\"width:100%;aspect-ratio:16\/10;display:block;\"><\/canvas>\n            <\/div>\n          <\/div>\n\n          <div class=\"l7FormRow\" style=\"margin-top:10px;\">\n            <div>\n              <div style=\"font-size:12px;opacity:.78;margin-bottom:6px;\">Upload Photo (No Camera)<\/div>\n              <input id=\"buyUpload\" class=\"l7Inp\" type=\"file\" accept=\"image\/*\" style=\"padding-top:10px;\" \/>\n            <\/div>\n            <div>\n              <div style=\"font-size:12px;opacity:.75;line-height:1.35;font-family:system-ui,sans-serif;margin-top:20px;\">\n                Upload or Capture \u2192 it saves as the avatar automatically for Contact.\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"l7Divider\"><\/div>\n          <p class=\"l7MiniHelp\">\n            Capture will <b>instantly save<\/b> this photo as the user\u2019s avatar picture (for Contact + future use).\n          <\/p>\n        <\/div>\n\n        <div id=\"l7SellPanel\">\n          <p class=\"l7PanelTitle\" id=\"l7SellTitle\">Sell Form<\/p>\n          <div class=\"l7FormRow\">\n            <input id=\"l7SellName\" class=\"l7Inp\" placeholder=\"Full Name\">\n            <input id=\"l7SellEmail\" class=\"l7Inp\" placeholder=\"Email\">\n            <input id=\"l7SellItem\" class=\"l7Inp\" placeholder=\"What are you selling? (Property \/ Lot \/ Business)\">\n            <input id=\"l7SellLoc\" class=\"l7Inp\" placeholder=\"City \/ State \/ Country\">\n          <\/div>\n          <textarea id=\"l7SellDesc\" class=\"l7Txt\" placeholder=\"Describe it (price, details, links, etc.)\"><\/textarea>\n          <div style=\"display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;\">\n            <button class=\"l7Action\" type=\"button\" id=\"l7SellSend\"><span class=\"l7Ico\">\u2709\ufe0f<\/span> Send<\/button>\n            <button class=\"l7Action\" type=\"button\" id=\"l7SellClear\"><span class=\"l7Ico\">\ud83e\uddfc<\/span> Clear<\/button>\n          <\/div>\n          <p class=\"l7MiniHelp\">\n            Attach photos\/videos manually in your email after it opens.\n          <\/p>\n        <\/div>\n\n        <div id=\"l7GoldMedia\">\n          <img id=\"l7GoldImg\" alt=\"Listing image\" \/>\n          <video id=\"l7GoldVid\" muted autoplay loop playsinline><\/video>\n\n          <div id=\"l7GoldNav\">\n            <button class=\"l7NavBtn\" id=\"l7Prev\" aria-label=\"Previous\">\u2039<\/button>\n            <div id=\"l7Dots\"><\/div>\n            <button class=\"l7NavBtn\" id=\"l7Next\" aria-label=\"Next\">\u203a<\/button>\n          <\/div>\n        <\/div>\n\n        <div id=\"l7GoldActions\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"l7ChatOverlay\" style=\"display:none;position:fixed;inset:0;z-index:1000000;background:rgba(0,0,0,.65);backdrop-filter:blur(10px);padding:14px;align-items:center;justify-content:center;\">\n      <div style=\"width:min(720px,94vw);border-radius:22px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(135deg, rgba(8,10,16,.92), rgba(18,18,26,.82));box-shadow:0 0 42px rgba(0,255,255,.18);overflow:hidden;\">\n        <div style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08);\">\n          <div>\n            <div id=\"l7ChatTitle\" style=\"font-family:Orbitron,system-ui,sans-serif;font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:13px;\">Contact<\/div>\n            <div id=\"l7ChatMeta\" style=\"opacity:.75;font-size:12px;margin-top:4px;\"><\/div>\n          <\/div>\n          <button id=\"l7ChatClose\" style=\"width:42px;height:42px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.35);color:#fff;cursor:pointer;font-size:18px;line-height:1;\">\u2715<\/button>\n        <\/div>\n        <div style=\"padding:14px 16px 16px;\">\n          <textarea id=\"l7ChatMsg\" class=\"l7Txt\" placeholder=\"Write your message...\"><\/textarea>\n          <div style=\"display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;\">\n            <button class=\"l7Action\" type=\"button\" id=\"l7ChatSend\"><span class=\"l7Ico\">\u2709\ufe0f<\/span> Send Email<\/button>\n            <button class=\"l7Action\" type=\"button\" id=\"l7ChatCancel\"><span class=\"l7Ico\">\u21a9\ufe0f<\/span> Cancel<\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ============================\n    YOUR EXISTING MODAL SCRIPT (UNCHANGED)\n    ============================ -->\n    <script>\n    (() => {\n      \/* ========= CONFIG ========= *\/\n      const BROKER_EMAIL = \"edwardraigozallc@gmail.com\";\n      const TEAM_EMAIL   = \"Godsgalaxygame@gmail.com\";\n      const MATTERPORT_FALLBACK = \"https:\/\/godsgalaxygame.com\/GGG\/fractional-ownership\/?fractional=1\";\n      const DEFAULT_VIDEO = \"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/Screen_Recording_20260104_183102_Chrome.mp4\";\n\n      \/* ========= LOCAL STORAGE KEYS ========= *\/\n      const LS_AVATAR = \"l7_newre_avatar\";\n      const LS_BUY_CAPTURE = \"l7_newre_buy_avatar_capture\";\n\n      \/* ========= HELPERS ========= *\/\n      function lockScroll(lock){\n        document.body.style.overflow = lock ? \"hidden\" : \"\";\n        document.documentElement.style.overflow = lock ? \"hidden\" : \"\";\n      }\n      function safeParse(json, fallback=null){ try{ return JSON.parse(json); } catch(e){ return fallback; } }\n      function getAvatar(){ return safeParse(localStorage.getItem(LS_AVATAR) || \"null\", null); }\n      function setAvatar(obj){ localStorage.setItem(LS_AVATAR, JSON.stringify(obj || {})); }\n\n      function centerMap(lat, lng){\n        if(!Number.isFinite(lat) || !Number.isFinite(lng)) return;\n        if (typeof window.focusOnHost === \"function\") { window.focusOnHost(lat, lng); return; }\n        if (window.ggMap && window.google && window.google.maps){\n          const pos = {lat, lng};\n          window.ggMap.setCenter(pos);\n          window.ggMap.setZoom(15);\n          new google.maps.Marker({ position: pos, map: window.ggMap });\n        }\n      }\n\n      \/* ========= ELEMENTS ========= *\/\n      const overlay  = document.getElementById(\"l7GoldOverlay\");\n      const card     = document.getElementById(\"l7GoldCard\");\n      const imgEl    = document.getElementById(\"l7GoldImg\");\n      const vidEl    = document.getElementById(\"l7GoldVid\");\n      const navEl    = document.getElementById(\"l7GoldNav\");\n      const dotsEl   = document.getElementById(\"l7Dots\");\n      const closeBtn = document.getElementById(\"l7GoldClose\");\n      const prevBtn  = document.getElementById(\"l7Prev\");\n      const nextBtn  = document.getElementById(\"l7Next\");\n      const titleEl  = document.getElementById(\"l7GoldTitle\");\n      const subEl    = document.getElementById(\"l7GoldSub\");\n      const actionsEl= document.getElementById(\"l7GoldActions\");\n\n      const aptPanel = document.getElementById(\"l7AptPanel\");\n      const aptGrid  = document.getElementById(\"l7AptGrid\");\n      const backBtn  = document.getElementById(\"l7BackToGrid\");\n\n      const avatarPanel = document.getElementById(\"l7AvatarPanel\");\n      const avatarGrid  = document.getElementById(\"l7AvatarGrid\");\n\n      const camPanel = document.getElementById(\"l7CameraPanel\");\n      const camVid   = document.getElementById(\"l7Cam\");\n      const snapC    = document.getElementById(\"l7Snap\");\n\n      const sellPanel= document.getElementById(\"l7SellPanel\");\n      const sellTitle= document.getElementById(\"l7SellTitle\");\n      const sellName = document.getElementById(\"l7SellName\");\n      const sellEmail= document.getElementById(\"l7SellEmail\");\n      const sellItem = document.getElementById(\"l7SellItem\");\n      const sellLoc  = document.getElementById(\"l7SellLoc\");\n      const sellDesc = document.getElementById(\"l7SellDesc\");\n      const sellSend = document.getElementById(\"l7SellSend\");\n      const sellClear= document.getElementById(\"l7SellClear\");\n\n      \/\/ chat\n      const chatO = document.getElementById(\"l7ChatOverlay\");\n      const chatT = document.getElementById(\"l7ChatTitle\");\n      const chatM = document.getElementById(\"l7ChatMeta\");\n      const chatX = document.getElementById(\"l7ChatClose\");\n      const chatC = document.getElementById(\"l7ChatCancel\");\n      const chatS = document.getElementById(\"l7ChatSend\");\n      const chatMsg = document.getElementById(\"l7ChatMsg\");\n\n      if(!overlay || !actionsEl) return;\n\n      const state = {\n        open:false,\n        mode:\"grid\",\n        groupId:null,\n        group:null,\n        option:null,\n        idx:0,\n        media:[]\n      };\n\n      function openModal(){\n        overlay.style.display = \"flex\";\n        overlay.setAttribute(\"aria-hidden\",\"false\");\n        lockScroll(true);\n        state.open = true;\n      }\n      function closeModal(){\n        overlay.style.display = \"none\";\n        overlay.setAttribute(\"aria-hidden\",\"true\");\n        lockScroll(false);\n        state.open = false;\n        state.mode = \"grid\";\n        state.option=null; state.media=[]; state.idx=0;\n        hideAllPanels();\n        hideMedia();\n        actionsEl.innerHTML = \"\";\n      }\n\n      function hideAllPanels(){\n        aptPanel.style.display = \"none\";\n        avatarPanel.style.display = \"none\";\n        camPanel.style.display = \"none\";\n        sellPanel.style.display = \"none\";\n        backBtn.style.display = \"none\";\n      }\n      function hideMedia(){\n        imgEl.style.display = \"none\";\n        vidEl.style.display = \"none\";\n        navEl.style.display = \"none\";\n        dotsEl.innerHTML = \"\";\n      }\n\n      function getTypeFromGroupId(groupId){\n        if(groupId.startsWith(\"rentss-avat\")) return \"rentAvatar\";\n        if(groupId.startsWith(\"rentss-lotss\")) return \"rentLot\";\n        if(groupId.startsWith(\"rentss-club\")) return \"rentClub\";\n        if(groupId.startsWith(\"rentss-proper\")) return \"rentProp\";\n\n        if(groupId.startsWith(\"buyz-ava\")) return \"buyAvatar\";\n        if(groupId.startsWith(\"buyz-landm\")) return \"buyLandmarks\";\n        if(groupId.startsWith(\"buyz-propert\")) return \"buyProps\";\n        if(groupId.startsWith(\"buyz-busin\")) return \"buyBiz\";\n\n        if(groupId.startsWith(\"sellz-properti\")) return \"sellProps\";\n        if(groupId.startsWith(\"sellz-lott\")) return \"sellLot\";\n        if(groupId.startsWith(\"sellz-busine\")) return \"sellBiz\";\n        if(groupId.startsWith(\"sellz-even\")) return \"sellEvents\";\n\n        if(groupId.startsWith(\"investz-landma\")) return \"invLandmarks\";\n        if(groupId.startsWith(\"investz-propertiez\")) return \"invProps\";\n        if(groupId.startsWith(\"investz-clubz\")) return \"invClub\";\n        if(groupId.startsWith(\"investz-lanzz\")) return \"invLand\";\n\n        return \"listing\";\n      }\n\n      function buildDefaultGroup(groupId, latFromCircle, lngFromCircle){\n        const type = getTypeFromGroupId(groupId);\n\n        const baseOption = (name) => ({\n          id: groupId + \"-\" + name.toLowerCase().replace(\/\\s+\/g,\"-\"),\n          name,\n          lat: Number.isFinite(latFromCircle) ? latFromCircle : null,\n          lng: Number.isFinite(lngFromCircle) ? lngFromCircle : null,\n          listingUrl: \"#\",\n          investmentUrl: \"#\",\n          matterportUrl: MATTERPORT_FALLBACK,\n          media: [DEFAULT_VIDEO]\n        });\n\n        const options = [\n          baseOption(\"Option 1\"),\n          baseOption(\"Option 2\"),\n          baseOption(\"Option 3\")\n        ];\n\n        let title = \"ENP NEW REAL ESTATE\";\n        let subtitle = \"Select an option\";\n        if(type===\"rentAvatar\"){ title += \" \u2022 RENT \u2022 AVATAR\"; subtitle = \"Pick Men \/ Women \/ Kids + avatar\"; }\n        if(type===\"rentLot\"){ title += \" \u2022 RENT \u2022 LOT\"; subtitle = \"Video listings\"; }\n        if(type===\"rentClub\"){ title += \" \u2022 RENT \u2022 CLUB\"; subtitle = \"Video listings\"; }\n        if(type===\"rentProp\"){ title += \" \u2022 RENT \u2022 PROPERTIES\"; subtitle = \"Video listings + 3D render\"; }\n        if(type===\"buyAvatar\"){ title += \" \u2022 BUY \u2022 AVATAR\"; subtitle = \"Capture photo \u2192 avatar created instantly\"; }\n        if(type===\"buyLandmarks\"){ title += \" \u2022 BUY \u2022 LANDMARKS\"; subtitle = \"Listing grid (slideshow ready)\"; }\n        if(type===\"buyProps\"){ title += \" \u2022 BUY \u2022 PROPERTIES\"; subtitle = \"Video listings\"; }\n        if(type===\"buyBiz\"){ title += \" \u2022 BUY \u2022 BUSINESSES\"; subtitle = \"Business video + investment report\"; }\n        if(type===\"sellProps\"){ title += \" \u2022 SELL \u2022 PROPERTIES\"; subtitle = \"Submit form\"; }\n        if(type===\"sellLot\"){ title += \" \u2022 SELL \u2022 LOT\"; subtitle = \"Submit form\"; }\n        if(type===\"sellBiz\"){ title += \" \u2022 SELL \u2022 BUSINESS\"; subtitle = \"Submit form\"; }\n        if(type===\"sellEvents\"){ title += \" \u2022 SELL \u2022 EVENTS\"; subtitle = \"Choose event type\"; }\n        if(type===\"invLandmarks\"){ title += \" \u2022 INVEST \u2022 LANDMARKS\"; subtitle = \"Video listings\"; }\n        if(type===\"invProps\"){ title += \" \u2022 INVEST \u2022 PROPERTIES\"; subtitle = \"Video listings\"; }\n        if(type===\"invClub\"){ title += \" \u2022 INVEST \u2022 CLUB\"; subtitle = \"Video listings\"; }\n        if(type===\"invLand\"){ title += \" \u2022 INVEST \u2022 LAND\"; subtitle = \"Video listings\"; }\n\n        return { groupId, type, title, subtitle, options };\n      }\n\n      function renderGrid(){\n        hideAllPanels();\n        hideMedia();\n        actionsEl.innerHTML = \"\";\n\n        state.mode = \"grid\";\n        aptPanel.style.display = \"block\";\n        backBtn.style.display = \"none\";\n\n        titleEl.textContent = state.group.title;\n        subEl.textContent = state.group.subtitle;\n\n        aptGrid.innerHTML = \"\";\n\n        if(state.group.type === \"sellEvents\"){\n          const events = [\"Chat with Super Stars\", \"Sell Your Product\", \"Network by Date\", \"Live Digital Concert\"];\n          events.forEach((nm)=>{\n            const b = document.createElement(\"button\");\n            b.type = \"button\";\n            b.className = \"l7AptBtn\";\n            b.textContent = nm;\n            b.addEventListener(\"click\", ()=>{\n              state.option = {\n                id: state.groupId + \"-event-\" + nm.toLowerCase().replace(\/\\s+\/g,\"-\"),\n                name: nm,\n                lat: state.group.options[0]?.lat ?? null,\n                lng: state.group.options[0]?.lng ?? null,\n                media: [DEFAULT_VIDEO]\n              };\n              renderDetail();\n            });\n            aptGrid.appendChild(b);\n          });\n          return;\n        }\n\n        if(state.group.type === \"rentAvatar\"){ renderRentAvatarPanel(); return; }\n        if(state.group.type === \"buyAvatar\"){ renderBuyAvatarPanel(); return; }\n        if(state.group.type === \"sellProps\" || state.group.type === \"sellLot\" || state.group.type === \"sellBiz\"){\n          renderSellPanel(state.group.type);\n          return;\n        }\n\n        state.group.options.forEach((opt)=>{\n          const b = document.createElement(\"button\");\n          b.type = \"button\";\n          b.className = \"l7AptBtn\";\n          b.textContent = opt.name || \"Option\";\n          b.addEventListener(\"click\", ()=>{ state.option = opt; renderDetail(); });\n          aptGrid.appendChild(b);\n        });\n      }\n\n      function renderMedia(){\n        hideMedia();\n        const media = state.media || [];\n        if(!media.length) return;\n\n        if(media.length > 1){\n          navEl.style.display = \"flex\";\n          renderDots();\n        }\n\n        const current = media[state.idx] || media[0] || \"\";\n        if(!current) return;\n\n        const isVideo = \/\\.mp4(\\?|$)\/i.test(current);\n        if(isVideo){\n          vidEl.src = current;\n          vidEl.style.display = \"block\";\n          try{ vidEl.play().catch(()=>{}); }catch(e){}\n        } else {\n          imgEl.src = current;\n          imgEl.style.display = \"block\";\n        }\n      }\n      function renderDots(){\n        dotsEl.innerHTML = \"\";\n        (state.media || []).forEach((_, i) => {\n          const d = document.createElement(\"div\");\n          d.className = \"l7Dot\" + (i === state.idx ? \" active\" : \"\");\n          d.addEventListener(\"click\", () => { state.idx = i; renderMedia(); });\n          dotsEl.appendChild(d);\n        });\n      }\n      function prev(){\n        const m = state.media || [];\n        if(!m.length) return;\n        state.idx = (state.idx - 1 + m.length) % m.length;\n        renderMedia();\n      }\n      function next(){\n        const m = state.media || [];\n        if(!m.length) return;\n        state.idx = (state.idx + 1) % m.length;\n        renderMedia();\n      }\n\n      function setActions(buttons){\n        actionsEl.innerHTML = \"\";\n        buttons.forEach((btn)=>{\n          if(btn.kind === \"link\"){\n            const a = document.createElement(\"a\");\n            a.className = \"l7Action\";\n            a.href = btn.href || \"#\";\n            a.target = btn.target || \"_blank\";\n            a.rel = \"noopener\";\n            a.innerHTML = `<span class=\"l7Ico\">${btn.ico || \"\ud83d\udd17\"}<\/span> ${btn.label}`;\n            actionsEl.appendChild(a);\n          } else {\n            const b = document.createElement(\"button\");\n            b.className = \"l7Action\";\n            b.type = \"button\";\n            b.innerHTML = `<span class=\"l7Ico\">${btn.ico || \"\u26a1\"}<\/span> ${btn.label}`;\n            b.addEventListener(\"click\", btn.onClick);\n            actionsEl.appendChild(b);\n          }\n        });\n      }\n\n      function renderDetail(){\n        hideAllPanels();\n        state.mode = \"detail\";\n        backBtn.style.display = \"inline-flex\";\n        aptPanel.style.display = \"none\";\n\n        titleEl.textContent = state.group.title;\n        subEl.textContent = state.option ? (\"Viewing: \" + (state.option.name || \"Option\")) : \"Viewing\";\n\n        state.media = Array.isArray(state.option?.media) && state.option.media.length ? state.option.media : [DEFAULT_VIDEO];\n        state.idx = 0;\n        renderMedia();\n\n        const t = state.group.type;\n        const lat = Number.isFinite(state.option?.lat) ? state.option.lat : null;\n        const lng = Number.isFinite(state.option?.lng) ? state.option.lng : null;\n\n        const openChat = (topic) => {\n          openChatPopup({\n            topic,\n            groupTitle: state.group.title,\n            optionName: state.option?.name || \"\",\n            lat, lng\n          });\n        };\n\n        const viewLocBtn = {\n          kind:\"btn\", ico:\"\ud83d\udccd\", label:\"View Location\",\n          onClick: ()=>{ closeModal(); setTimeout(()=>centerMap(lat, lng), 120); }\n        };\n\n        if(t === \"rentLot\"){\n          setActions([\n            {kind:\"btn\", ico:\"\ud83c\udfa5\", label:\"View Lot\", onClick: ()=>{}},\n            viewLocBtn,\n            {kind:\"btn\", ico:\"\ud83d\udcac\", label:\"Contact\", onClick: ()=>openChat(\"Rent Lot \u2022 Contact\")}\n          ]);\n          return;\n        }\n\n        setActions([\n          viewLocBtn,\n          {kind:\"btn\", ico:\"\ud83d\udcac\", label:\"Contact\", onClick: ()=>openChat(\"Contact\")}\n        ]);\n      }\n\n      function renderRentAvatarPanel(){\n        hideAllPanels();\n        hideMedia();\n        actionsEl.innerHTML = \"\";\n        state.mode = \"avatar\";\n\n        titleEl.textContent = state.group.title;\n        subEl.textContent = \"Choose Men \/ Women \/ Kids + avatar\";\n\n        avatarPanel.style.display = \"block\";\n        backBtn.style.display = \"none\";\n\n        const chips = [...avatarPanel.querySelectorAll(\".l7Chip\")];\n\n        const avatarImgs = {\n          \"Men-1\":   \"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Dec-25-2025-06_24_05-PM.png\",\n          \"Men-2\":   \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/men-2.png\",\n          \"Men-3\":   \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/men-3.png\",\n          \"Women-1\": \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/women-1.png\",\n          \"Women-2\": \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/women-2.png\",\n          \"Kids-1\":  \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/kids-1.png\",\n          \"Kids-2\":  \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2026\/01\/kids-2.png\",\n        };\n\n        function setType(type){\n          chips.forEach(c=>c.classList.toggle(\"active\", c.dataset.type===type));\n          avatarGrid.innerHTML = \"\";\n\n          const opts = (type===\"Men\") ? [\"Men-1\",\"Men-2\",\"Men-3\"] :\n                       (type===\"Women\") ? [\"Women-1\",\"Women-2\"] :\n                       [\"Kids-1\",\"Kids-2\"];\n\n          avatarGrid.style.gridTemplateColumns = (type===\"Men\") ? \"\" : \"repeat(2, 1fr)\";\n\n          opts.forEach((id)=>{\n            const box = document.createElement(\"div\");\n            box.className = \"l7AvatarOpt\";\n\n            const img = avatarImgs[id] || \"\";\n            if (img){\n              const bg = document.createElement(\"div\");\n              bg.className = \"l7AvatarThumb\";\n              bg.style.backgroundImage = `url(\"${img}\")`;\n              box.appendChild(bg);\n            }\n\n            const lbl = document.createElement(\"div\");\n            lbl.className = \"l7AvatarLabel\";\n            lbl.textContent = id.toUpperCase();\n            box.appendChild(lbl);\n\n            const av = getAvatar() || {};\n            if(av.type===type && av.choice===id) box.classList.add(\"selected\");\n\n            box.addEventListener(\"click\", ()=>{\n              avatarGrid.querySelectorAll(\".l7AvatarOpt\").forEach(x=>x.classList.remove(\"selected\"));\n              box.classList.add(\"selected\");\n              setAvatar({ type, choice:id, img });\n            });\n\n            avatarGrid.appendChild(box);\n          });\n\n          setActions([\n            {\n              kind:\"btn\", ico:\"\ud83d\udcac\", label:\"Contact\",\n              onClick: ()=>openChatPopup({\n                topic:\"Rent Avatar \u2022 Contact\",\n                groupTitle:state.group.title,\n                optionName:type,\n                lat: state.group.options[0]?.lat ?? null,\n                lng: state.group.options[0]?.lng ?? null\n              })\n            }\n          ]);\n        }\n\n        const saved = getAvatar();\n        setType(saved?.type || \"Men\");\n        chips.forEach(c=> c.addEventListener(\"click\", ()=>setType(c.dataset.type)));\n      }\n\n      async function startCamera(){\n        try{\n          const stream = await navigator.mediaDevices.getUserMedia({ video:true, audio:false });\n          camVid.srcObject = stream;\n          camVid.dataset.streaming = \"1\";\n        }catch(e){\n          alert(\"Camera blocked or not available on this device.\");\n          console.warn(e);\n        }\n      }\n\n      function roundRect(ctx, x, y, w, h, r){\n        const rr = Math.min(r, w\/2, h\/2);\n        ctx.beginPath();\n        ctx.moveTo(x+rr, y);\n        ctx.arcTo(x+w, y,   x+w, y+h, rr);\n        ctx.arcTo(x+w, y+h, x,   y+h, rr);\n        ctx.arcTo(x,   y+h, x,   y,   rr);\n        ctx.arcTo(x,   y,   x+w, y,   rr);\n        ctx.closePath();\n      }\n\n      function capturePhotoAndCreateAvatar(){\n        if(!camVid || !camVid.srcObject){ alert(\"Start Camera first.\"); return; }\n\n        const OUT = 1024;\n        const PAD = 0.12;\n\n        const ctx = snapC.getContext(\"2d\");\n        snapC.width = OUT;\n        snapC.height = OUT;\n\n        const vw = camVid.videoWidth || 1280;\n        const vh = camVid.videoHeight || 720;\n\n        const minSide = Math.min(vw, vh);\n        const cropSide = Math.floor(minSide * (1 + PAD));\n        const sx = Math.max(0, Math.floor((vw - cropSide) \/ 2));\n        const sy = Math.max(0, Math.floor((vh - cropSide) \/ 2));\n\n        ctx.clearRect(0,0,OUT,OUT);\n\n        const grad = ctx.createRadialGradient(OUT*0.5, OUT*0.45, OUT*0.10, OUT*0.5, OUT*0.5, OUT*0.72);\n        grad.addColorStop(0, \"rgba(0,255,255,.10)\");\n        grad.addColorStop(1, \"rgba(0,0,0,1)\");\n        ctx.fillStyle = grad;\n        ctx.fillRect(0,0,OUT,OUT);\n\n        const r = Math.floor(OUT * 0.08);\n        ctx.save();\n        roundRect(ctx, 0, 0, OUT, OUT, r);\n        ctx.clip();\n\n        ctx.filter = \"contrast(1.12) saturate(1.10) brightness(1.02)\";\n        ctx.drawImage(camVid, sx, sy, cropSide, cropSide, 0, 0, OUT, OUT);\n        ctx.filter = \"none\";\n\n        const vg = ctx.createRadialGradient(OUT*0.5, OUT*0.5, OUT*0.40, OUT*0.5, OUT*0.5, OUT*0.78);\n        vg.addColorStop(0, \"rgba(0,0,0,0)\");\n        vg.addColorStop(1, \"rgba(0,0,0,.55)\");\n        ctx.fillStyle = vg;\n        ctx.fillRect(0,0,OUT,OUT);\n\n        ctx.lineWidth = Math.max(8, Math.floor(OUT * 0.012));\n        ctx.strokeStyle = \"rgba(0,255,255,.65)\";\n        ctx.shadowColor = \"rgba(0,255,255,.65)\";\n        ctx.shadowBlur = Math.floor(OUT * 0.04);\n        roundRect(ctx, ctx.lineWidth\/2, ctx.lineWidth\/2, OUT-ctx.lineWidth, OUT-ctx.lineWidth, r);\n        ctx.stroke();\n        ctx.shadowBlur = 0;\n\n        ctx.restore();\n\n        const dataURL = snapC.toDataURL(\"image\/png\", 0.92);\n        localStorage.setItem(LS_BUY_CAPTURE, dataURL);\n\n        const av = getAvatar() || { type:\"Men\", choice:\"Men-1\", img:\"\" };\n        setAvatar({ ...av, img:dataURL });\n\n        subEl.textContent = \"\u2705 Avatar created from capture. You can now Contact (or go Rent Avatar).\";\n      }\n\n      function downloadPhoto(){\n        const dataURL = localStorage.getItem(LS_BUY_CAPTURE);\n        if(!dataURL){ alert(\"Capture a photo first.\"); return; }\n        const a = document.createElement(\"a\");\n        a.href = dataURL;\n        a.download = \"GGG_BuyAvatar_Capture.png\";\n        document.body.appendChild(a);\n        a.click();\n        a.remove();\n      }\n\n      function emailBuyAvatar(){\n        const subject = encodeURIComponent(\"Gods Galaxy Game \u2022 Buy Avatar Request\");\n        const av = getAvatar();\n        const hasImg = !!(av && av.img);\n\n        const body = encodeURIComponent(\n`Hello Gods Galaxy Game Team,\n\nI want to BUY an avatar.\n\nMy capture is saved on my device.\n${hasImg ? \"Avatar image: (captured in-browser \/ stored locally)\" : \"Avatar image: (none attached)\"}\n\nPlease reply to confirm how my avatar will be delivered and activated.\n\nThank you.`\n        );\n        window.location.href = `mailto:${encodeURIComponent(TEAM_EMAIL)}?subject=${subject}&body=${body}`;\n      }\n\n      function renderBuyAvatarPanel(){\n        hideAllPanels();\n        hideMedia();\n        actionsEl.innerHTML = \"\";\n        state.mode = \"camera\";\n        titleEl.textContent = state.group.title;\n        subEl.textContent = \"Capture photo \u2192 avatar created instantly\";\n        camPanel.style.display = \"block\";\n        backBtn.style.display = \"none\";\n\n        setActions([\n          {kind:\"btn\", ico:\"\ud83d\uddbc\ufe0f\", label:\"Upload Photo\", onClick: () => document.getElementById(\"buyUpload\").click()},\n          {kind:\"btn\", ico:\"\ud83d\udcf7\", label:\"Start Camera\", onClick: startCamera},\n          {kind:\"btn\", ico:\"\ud83e\uddff\", label:\"Capture + Create Avatar\", onClick: capturePhotoAndCreateAvatar},\n          {kind:\"btn\", ico:\"\u2b07\ufe0f\", label:\"Download\", onClick: downloadPhoto},\n          {kind:\"btn\", ico:\"\u2709\ufe0f\", label:\"Email Request\", onClick: emailBuyAvatar}\n        ]);\n      }\n\n      function renderSellPanel(type){\n        hideAllPanels();\n        hideMedia();\n        actionsEl.innerHTML = \"\";\n        state.mode = \"sell\";\n\n        titleEl.textContent = state.group.title;\n        subEl.textContent = \"Submit form \u2192 email opens\";\n\n        sellPanel.style.display = \"block\";\n        backBtn.style.display = \"none\";\n\n        sellTitle.textContent =\n          type===\"sellProps\" ? \"Sell Properties\" :\n          type===\"sellLot\"   ? \"Sell Lot\" :\n          \"Sell Business\";\n\n        setActions([\n          {kind:\"btn\", ico:\"\u2709\ufe0f\", label:\"Send\", onClick: sendSellEmail},\n          {kind:\"btn\", ico:\"\ud83e\uddfc\", label:\"Clear\", onClick: clearSellForm},\n          {kind:\"btn\", ico:\"\ud83d\udcac\", label:\"Contact\", onClick: ()=>openChatPopup({topic:\"Sell \u2022 Contact\", groupTitle:state.group.title, optionName:\"\", lat: state.group.options[0]?.lat ?? null, lng: state.group.options[0]?.lng ?? null})}\n        ]);\n      }\n\n      function clearSellForm(){\n        sellName.value=\"\"; sellEmail.value=\"\"; sellItem.value=\"\"; sellLoc.value=\"\"; sellDesc.value=\"\";\n      }\n      function sendSellEmail(){\n        const subject = encodeURIComponent(\"Gods Galaxy Game \u2022 Level 7 \u2022 Sell Submission\");\n        const body = encodeURIComponent(\n`Hello,\n\nI want to submit a Level 7 listing.\n\nName: ${sellName.value || \"\"}\nEmail: ${sellEmail.value || \"\"}\nItem: ${sellItem.value || \"\"}\nLocation: ${sellLoc.value || \"\"}\n\nDescription:\n${sellDesc.value || \"\"}\n\n(Attachments: please attach photos\/videos to this email.)`\n        );\n        window.location.href = `mailto:${encodeURIComponent(TEAM_EMAIL)}?subject=${subject}&body=${body}`;\n      }\n\n      sellSend.addEventListener(\"click\", sendSellEmail);\n      sellClear.addEventListener(\"click\", clearSellForm);\n\n      let chatCtx = null;\n\n      function openChatPopup(ctx){\n        chatCtx = ctx || {};\n        chatT.textContent = \"Contact\";\n\n        const av = getAvatar();\n        const meta = [];\n        if(chatCtx.topic) meta.push(chatCtx.topic);\n        if(av){\n          meta.push(\"Avatar: \" + (av.type||\"\") + \" \u2022 \" + (av.choice||\"\"));\n          meta.push(\"Pic: \" + (av.img ? \"YES\" : \"NO\"));\n        }\n        if(Number.isFinite(chatCtx.lat) && Number.isFinite(chatCtx.lng)) meta.push(\"Map: \" + chatCtx.lat + \", \" + chatCtx.lng);\n\n        chatM.textContent = meta.join(\" | \");\n        chatMsg.value = \"\";\n        chatO.style.display = \"flex\";\n      }\n\n      function closeChat(){\n        chatO.style.display = \"none\";\n        chatCtx = null;\n      }\n\n      function sendChat(){\n        const msg = (chatMsg.value || \"\").trim();\n        if(!msg){ alert(\"Write a message first.\"); return; }\n\n        const av = getAvatar();\n        const subject = encodeURIComponent(\"Gods Galaxy Game \u2022 Level 7 New Real Estate \u2022 Contact\");\n        const lines = [];\n        lines.push(\"Hello,\");\n        lines.push(\"\");\n        lines.push(msg);\n        lines.push(\"\");\n        lines.push(\"\u2014 Context \u2014\");\n        if(chatCtx?.topic) lines.push(\"Topic: \" + chatCtx.topic);\n        if(chatCtx?.groupTitle) lines.push(\"Group: \" + chatCtx.groupTitle);\n        if(chatCtx?.optionName) lines.push(\"Option: \" + chatCtx.optionName);\n        if(Number.isFinite(chatCtx?.lat) && Number.isFinite(chatCtx?.lng)) lines.push(\"Location: \" + chatCtx.lat + \", \" + chatCtx.lng);\n\n        if(av){\n          lines.push(\"Avatar: \" + (av.type||\"\") + \" \u2022 \" + (av.choice||\"\"));\n          lines.push(\"Avatar Picture: \" + (av.img ? \"Saved (local)\" : \"None\"));\n          lines.push(\"Note: If you want the picture included, please attach it manually before sending.\");\n        } else {\n          lines.push(\"Avatar: (none yet)\");\n        }\n\n        const body = encodeURIComponent(lines.join(\"\\n\"));\n        window.location.href = `mailto:${encodeURIComponent(BROKER_EMAIL)}?subject=${subject}&body=${body}`;\n      }\n\n      chatX.addEventListener(\"click\", closeChat);\n      chatC.addEventListener(\"click\", closeChat);\n      chatS.addEventListener(\"click\", sendChat);\n\n      function setGroup(groupId, latFromCircle=null, lngFromCircle=null){\n        state.groupId = groupId;\n        state.group = buildDefaultGroup(groupId, latFromCircle, lngFromCircle);\n        renderGrid();\n      }\n\n      closeBtn.addEventListener(\"click\", closeModal);\n      overlay.addEventListener(\"click\", (e) => { if(e.target === overlay) closeModal(); });\n      backBtn.addEventListener(\"click\", () => renderGrid());\n\n      document.addEventListener(\"keydown\", (e) => {\n        if(!state.open) return;\n        if(e.key === \"Escape\"){\n          if(chatO.style.display === \"flex\") closeChat();\n          else closeModal();\n        }\n        if(state.mode !== \"detail\") return;\n        if(e.key === \"ArrowLeft\") prev();\n        if(e.key === \"ArrowRight\") next();\n      });\n\n      prevBtn.addEventListener(\"click\", (e)=>{ e.stopPropagation(); prev(); });\n      nextBtn.addEventListener(\"click\", (e)=>{ e.stopPropagation(); next(); });\n\n      let x0=0, y0=0, touching=false;\n      card.addEventListener(\"touchstart\", (e) => {\n        if(!state.open || state.mode !== \"detail\") return;\n        const t = e.touches && e.touches[0]; if(!t) return;\n        touching=true; x0=t.clientX; y0=t.clientY;\n      }, {passive:true});\n      card.addEventListener(\"touchend\", (e) => {\n        if(!state.open || state.mode !== \"detail\" || !touching) return;\n        touching=false;\n        const t = e.changedTouches && e.changedTouches[0]; if(!t) return;\n        const dx=t.clientX-x0, dy=t.clientY-y0;\n        if(Math.abs(dx)>55 && Math.abs(dx)>Math.abs(dy)) dx>0 ? prev() : next();\n      }, {passive:true});\n\n      const buyUpload = document.getElementById(\"buyUpload\");\n      if (buyUpload) {\n        buyUpload.addEventListener(\"change\", async (e) => {\n          const file = e.target.files && e.target.files[0];\n          if(!file) return;\n\n          const img = new Image();\n          img.onload = () => {\n            const OUT = 1024;\n            const ctx = snapC.getContext(\"2d\");\n\n            snapC.width = OUT;\n            snapC.height = OUT;\n\n            const iw = img.naturalWidth;\n            const ih = img.naturalHeight;\n            const side = Math.min(iw, ih);\n            const sx = Math.floor((iw - side) \/ 2);\n            const sy = Math.floor((ih - side) \/ 2);\n\n            ctx.clearRect(0,0,OUT,OUT);\n            ctx.imageSmoothingEnabled = true;\n            ctx.imageSmoothingQuality = \"high\";\n            ctx.drawImage(img, sx, sy, side, side, 0, 0, OUT, OUT);\n\n            const dataURL = snapC.toDataURL(\"image\/png\", 0.92);\n            localStorage.setItem(LS_BUY_CAPTURE, dataURL);\n\n            const av = getAvatar() || { type:\"Men\", choice:\"Men-1\", img:\"\" };\n            setAvatar({ ...av, img:dataURL });\n\n            subEl.textContent = \"\u2705 Avatar created from uploaded photo.\";\n          };\n\n          img.src = URL.createObjectURL(file);\n        });\n      }\n\n      \/* CLICK a host circle -> opens the modal *\/\n      document.addEventListener(\"click\", (e) => {\n        const btn = e.target.closest(\"#hostButtons .host-circle\");\n        if(!btn) return;\n\n        e.stopImmediatePropagation();\n        e.preventDefault();\n\n        const lat = parseFloat(btn.dataset.lat);\n        const lng = parseFloat(btn.dataset.lng);\n        const latOk = Number.isFinite(lat) ? lat : null;\n        const lngOk = Number.isFinite(lng) ? lng : null;\n\n        let groupId = (btn.dataset.group || \"\").trim();\n        if(!groupId){\n          const pos = [\"one\",\"five\",\"seven\",\"month\"].find(p => btn.classList.contains(p)) || \"one\";\n          const ignore = new Set([\n            \"host-circle\",\"one\",\"five\",\"seven\",\"month\",\n            \"rentss\",\"buyz\",\"sellz\",\"investz\",\n            \"rent\",\"buy\",\"sell\",\"invest\"\n          ]);\n          const base = [...btn.classList].find(c => c.includes(\"-\") && !ignore.has(c)) || \"fallback\";\n          groupId = `${base}-${pos}`;\n        }\n\n        openModal();\n        setGroup(groupId, latOk, lngOk);\n      }, true);\n\n      console.log(\"%c[L7 New Real Estate Modal v7] \u2705 loaded\", \"color:#00ffff;font-weight:900\");\n    })();\n    <\/script>\n\n  <\/div><!-- \/#gggNewRE_Locked -->\n\n<\/div><!-- \/#gggNewRE_Page -->\n\n<!-- ==========================================================\nGATE OVERLAY UI (shows ONLY when locked)\n========================================================== -->\n<div id=\"gggNewRE_GateOverlay\">\n  <div class=\"gggGateWrap\" id=\"gggNewRE_Gate\">\n    <h3 class=\"gggGateTitle\">ENP New Real Estate \u2022 Access<\/h3>\n    <p class=\"gggGateSub\">\n      To access this system, you must request approval first. Once approved, you\u2019ll receive an invoice for\n      <b>$49.99 USD<\/b>. After payment, you\u2019ll receive an access code to unlock this page.\n    <\/p>\n\n    <div class=\"gggDivider\"><\/div>\n\n    <h3 class=\"gggGateTitle\" style=\"margin-top:0;\">Step 1 \u2014 Request Approval<\/h3>\n    <div class=\"gggRow\">\n      <input class=\"gggInp\" id=\"gggReqName\" placeholder=\"Full Name\" autocomplete=\"name\">\n      <input class=\"gggInp\" id=\"gggReqDob\" placeholder=\"Date of Birth (MM\/DD\/YYYY)\" inputmode=\"numeric\">\n      <input class=\"gggInp\" id=\"gggReqEmail\" placeholder=\"Email\" autocomplete=\"email\" inputmode=\"email\">\n    <\/div>\n    <div class=\"gggBtnRow\">\n      <button class=\"gggBtn\" id=\"gggSendApproval\" type=\"button\">\u2709\ufe0f Send Approval Email<\/button>\n    <\/div>\n    <p class=\"gggNote\">This opens the user\u2019s email app with everything pre-filled.<\/p>\n\n    <div class=\"gggDivider\"><\/div>\n\n    <h3 class=\"gggGateTitle\" style=\"margin-top:0;\">Step 2 \u2014 Enter Access Code<\/h3>\n    <div class=\"gggRow\" style=\"grid-template-columns: 1fr;\">\n      <input class=\"gggInp\" id=\"gggAccessCode\" placeholder=\"Enter access code\" autocomplete=\"off\">\n    <\/div>\n    <div class=\"gggBtnRow\">\n      <button class=\"gggBtn\" id=\"gggUnlock\" type=\"button\">\ud83d\udd13 Unlock<\/button>\n      <button class=\"gggBtn\" id=\"gggLock\" type=\"button\" style=\"display:none;\">\ud83d\udd12 Lock<\/button>\n      <button class=\"gggBtn\" id=\"gggResetGate\" type=\"button\">\u267b\ufe0f Reset Gate<\/button>\n    <\/div>\n    <p class=\"gggNote\" id=\"gggGateMsg\"><\/p>\n  <\/div>\n<\/div>\n\n<!-- ==========================================================\nGATE LOGIC (FULL-HIDE STYLE)\n========================================================== -->\n<script>\n(() => {\n  const APPROVAL_EMAIL = \"Godsgalaxygame@gmail.com\";\n  const PRICE_USD = \"49.99\";\n  const LS_KEY = \"ggg_newre_access_ok\";\n\n  \/*\n    \u2705 SHA-256 HASH of the access code \"Galaxy2025\"\n    - user types: Galaxy2025\n    - internally normalized to: galaxy2025\n  *\/\n  const ACCESS_HASH_HEX =\n    \"752667d9cbcc011a716e37d27c1807fcff1fe791f53ef0f6b5e4ff05db082628\";\n\n  const overlay = document.getElementById(\"gggNewRE_GateOverlay\");\n  const page    = document.getElementById(\"gggNewRE_Page\");\n  const msg     = document.getElementById(\"gggGateMsg\");\n\n  const btnSend   = document.getElementById(\"gggSendApproval\");\n  const btnUnlock = document.getElementById(\"gggUnlock\");\n  const btnLock   = document.getElementById(\"gggLock\");\n  const btnReset  = document.getElementById(\"gggResetGate\");\n\n  const nameEl  = document.getElementById(\"gggReqName\");\n  const dobEl   = document.getElementById(\"gggReqDob\");\n  const emailEl = document.getElementById(\"gggReqEmail\");\n  const codeEl  = document.getElementById(\"gggAccessCode\");\n\n  function setUnlocked(on){\n    localStorage.setItem(LS_KEY, on ? \"1\" : \"0\");\n\n    if(on){\n      overlay.style.display = \"none\";\n      page.classList.remove(\"gggLocked\");\n      btnLock.style.display = \"inline-flex\";\n      msg.textContent = \"\";\n    } else {\n      overlay.style.display = \"flex\";\n      page.classList.add(\"gggLocked\");\n      btnLock.style.display = \"none\";\n    }\n  }\n\n  function clean(v){ return String(v || \"\").trim(); }\n\n  function openApprovalEmail(){\n    const full = clean(nameEl.value);\n    const dob  = clean(dobEl.value);\n    const em   = clean(emailEl.value);\n\n    if(!full || !dob || !em){\n      msg.textContent = \"Please enter Full Name, Date of Birth, and Email.\";\n      return;\n    }\n\n    const subject = encodeURIComponent(\"ENP New Real Estate \u2022 Approval Request\");\n    const body = encodeURIComponent(\n`Hello Gods Galaxy Game Team,\n\nI\u2019m requesting approval for ENP New Real Estate access.\n\nFull Name: ${full}\nDate of Birth: ${dob}\nEmail: ${em}\n\nPlease send me the invoice for $${PRICE_USD} USD to unlock access.\n\nThank you.`\n    );\n\n    window.location.href =\n      `mailto:${encodeURIComponent(APPROVAL_EMAIL)}?subject=${subject}&body=${body}`;\n\n    msg.textContent =\n      \"Email opened. After approval + payment, enter your access code below.\";\n  }\n\n  async function sha256Hex(str){\n    const data = new TextEncoder().encode(str);\n    const hash = await crypto.subtle.digest(\"SHA-256\", data);\n    return [...new Uint8Array(hash)]\n      .map(b => b.toString(16).padStart(2,\"0\"))\n      .join(\"\");\n  }\n\n  async function unlock(){\n    const raw = clean(codeEl.value).toLowerCase();\n    if(!raw){\n      msg.textContent = \"Enter your access code.\";\n      return;\n    }\n    const hx = await sha256Hex(raw);\n    if(hx === ACCESS_HASH_HEX){\n      setUnlocked(true);\n    } else {\n      msg.textContent =\n        \"Invalid code. If you already paid, check your email for the exact code.\";\n    }\n  }\n\n  function lock(){\n    setUnlocked(false);\n    msg.textContent = \"Locked. Enter your access code to unlock again.\";\n  }\n\n  function resetGate(){\n    localStorage.removeItem(LS_KEY);\n    setUnlocked(false);\n    msg.textContent = \"Reset done. Gate is showing again on this device.\";\n  }\n\n  btnSend?.addEventListener(\"click\", openApprovalEmail);\n  btnUnlock?.addEventListener(\"click\", unlock);\n  btnLock?.addEventListener(\"click\", lock);\n  btnReset?.addEventListener(\"click\", resetGate);\n\n  codeEl?.addEventListener(\"keydown\", e => {\n    if(e.key === \"Enter\") unlock();\n  });\n\n  \/\/ Auto restore on page load\n  const ok = localStorage.getItem(LS_KEY) === \"1\";\n  setUnlocked(ok);\n})();\n<\/script>\n\n\n\n&#8211; AVATAR &#8211;>\n<div id=\"avatarContainer\" onclick=\"showAvatarCloud()\" \n     style=\"position:fixed; bottom:80px; right:20px; z-index:9999; cursor:pointer; display:none;\">\n  <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20231118-120724_Instagram-scaled.jpg\" \n       style=\"width:180px; height:auto; border-radius: 50% \/ 30%; object-fit: cover; box-shadow: 0 0 12px aqua; filter: invert(100%) contrast(120%) brightness(110%);\">\n<\/div>\n\n<!-- CLOUD BUBBLE -->\n<div id=\"avatarCloud\" style=\"position:fixed; bottom:310px; right:30px; max-width:250px; background:rgba(0,0,0,0.7); \n     color:white; font-family:Orbitron, sans-serif; font-size:12px; line-height:16px; border-radius:20px 20px 20px 0px; \n     padding:14px 16px; box-shadow:0 0 15px aqua; display:none; z-index:9999; text-align:center;\n     border: 1px solid aqua;\">\n  <div id=\"avatarCloudMsg\">Loading&#8230;<\/div>\n  <div style=\"margin-top:10px;\">\n    <button onclick=\"acceptAvatarSuggestion()\" style=\"background:lime; color:black; border:none; padding:6px 10px; font-weight:bold;\">Yes<\/button>\n    <button onclick=\"dismissAvatarCloud()\" style=\"background:aqua; color:white; border:none; padding:6px 10px; font-weight:bold;\">No<\/button>\n  <\/div>\n  <div style=\"position:absolute; bottom:-18px; right:10px; width:0; height:0; border-left:10px solid transparent; \n              border-right:10px solid transparent; border-top:18px solid rgba(0,255,255,0.6); filter:blur(0.5px);\">\n  <\/div>\n<\/div>\n\n<!-- MOBILE ASSISTANT BUTTON -->\n<div id=\"avatarMobileBtn\" onclick=\"toggleMobileAvatar()\" style=\"display:none;\">\n  \ud83d\udc64 Assistant\n<\/div>\n\n<!-- ESTILOS -->\n<style>\n  #avatarMobileBtn {\n    position: fixed;\n    bottom: 18px;\n    right: 18px;\n    z-index: 9999;\n    background: rgba(0, 0, 0, 0.7);\n    color: white;\n    font-family: Orbitron, sans-serif;\n    font-size: 13px;\n    padding: 10px 14px;\n    border: 2px solid aqua;\n    border-radius: 14px;\n    box-shadow: 0 0 12px aqua;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  @media (min-width: 769px) {\n    #avatarMobileBtn {\n      display: none !important;\n    }\n  }\n\n  @media (max-width: 768px) {\n    #avatarContainer {\n      bottom: 30px !important;\n      right: 90px !important;\n      width: 100px !important;\n      display: none;\n      pointer-events: none;\n    }\n\n    #avatarContainer img {\n      width: 100%;\n      height: auto;\n      border-radius: 50% \/ 30%;\n      object-fit: cover;\n      filter: grayscale(0%) brightness(1.1) contrast(1.2);\n      box-shadow: 0 0 12px aqua;\n    }\n  }\n\n  @media (min-width: 769px) {\n    #avatarContainer {\n      pointer-events: auto;\n    }\n  }\n<\/style>\n\n<!-- L\u00d3GICA -->\n<script>\n  const entertainmentQuestions = [\n    \"Ready to see what\u2019s out there today?\",\n    \"Want entertainment options nearby?\",\n    \"Looking for something fun to do?\",\n    \"Need ideas for your free time?\",\n    \"Want something exciting tonight?\"\n  ];\n\n  const gastronomyQuestions = [\n    \"Want to see gastronomy options nearby?\",\n    \"Ready to have dinner tonight?\",\n    \"Would you like some brunch spots?\",\n    \"Hungry for something special?\",\n    \"Looking for restaurants around you?\"\n  ];\n\n  function showAvatarCloud(forcedType = null) {\n    const hour = new Date().getHours();\n    const type = forcedType || (hour % 2 === 0 ? \"gastronomy\" : \"entertainment\");\n    const question = (type === \"gastronomy\" ? gastronomyQuestions : entertainmentQuestions)[Math.floor(Math.random() * 5)];\n\n    document.getElementById(\"avatarCloudMsg\").innerText = question;\n    document.getElementById(\"avatarCloud\").style.display = \"block\";\n  }\n\n  function acceptAvatarSuggestion() {\n    dismissAvatarCloud();\n    alert(\"\u2705 Showing Aries recommendations near you...\");\n  }\n\n  function dismissAvatarCloud() {\n    document.getElementById(\"avatarCloud\").style.display = \"none\";\n  }\n\n  \/\/ \ud83d\udcbb Show avatar automatically after 3 seconds (desktop only)\n  function showAvatarAssistant() {\n    const avatar = document.getElementById(\"avatarContainer\");\n    if (window.innerWidth > 768) {\n      avatar.style.display = \"block\";\n      avatar.style.pointerEvents = \"auto\";\n    }\n  }\n  setTimeout(showAvatarAssistant, 3000);\n\n  \/\/ \ud83d\udcf1 Toggle mobile avatar on\/off\n  let avatarVisible = false;\n  function toggleMobileAvatar() {\n    const avatar = document.getElementById(\"avatarContainer\");\n    const btn = document.getElementById(\"avatarMobileBtn\");\n\n    if (!avatarVisible) {\n      avatar.style.display = \"block\";\n      avatar.style.pointerEvents = \"auto\";\n      showAvatarCloud();\n      btn.innerHTML = \"\u274c Close\";\n    } else {\n      avatar.style.display = \"none\";\n      avatar.style.pointerEvents = \"none\";\n      dismissAvatarCloud();\n      btn.innerHTML = \"\ud83d\udc64 Assistant\";\n    }\n\n    avatarVisible = !avatarVisible;\n  }\n\n  \/\/ \ud83d\udcf1 Show mobile button on load\n  window.addEventListener(\"load\", () => {\n    if (window.innerWidth <= 768) {\n      document.getElementById(\"avatarMobileBtn\").style.display = \"flex\";\n    }\n  });\n<\/script>\n<!-- BLOCK - ENP Avatar Under Button with WhatsApp Trigger -->\n\n<style>\n  #enpAssistantContainer {\n    position: fixed;\n    top: 18px;\n    left: 18px;\n    z-index: 3000;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 8px;\n  }\n\n  #avatarToggleBtn {\n    background: rgba(0, 0, 0, 0.6);\n    border: 2px solid cyan;\n    border-radius: 8px;\n    color: white;\n    font-family: Orbitron, sans-serif;\n    padding: 6px 12px;\n    font-size: 14px;\n    cursor: pointer;\n    box-shadow: 0 0 10px cyan;\n  }\n\n  #enpAvatar {\n    width: 220px;\n    display: none;\n    transition: opacity 0.4s ease;\n  }\n\n  #enpAvatar img {\n    width: 100%;\n    height: auto;\n    cursor: pointer;\n    filter: drop-shadow(0 0 14px cyan);\n  }\n\n  @media (max-width: 768px) {\n    #enpAssistantContainer {\n      top: 12px;\n      left: 12px;\n    }\n\n    #avatarToggleBtn {\n      font-size: 12px;\n      padding: 4px 10px;\n    }\n\n    #enpAvatar {\n      width: 170px;\n    }\n  }\n<\/style>\n\n<div id=\"enpAssistantContainer\">\n  <button id=\"avatarToggleBtn\" onclick=\"toggleENPAvatar()\">\ud83e\ude84 Assistant<\/button>\n  <div id=\"enpAvatar\">\n    <img decoding=\"async\" src=\"http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-Dec-5-2025-10_59_28-AM-1.png\" \n         alt=\"ENP Assistant\" onclick=\"openENPWhatsApp()\" \/>\n  <\/div>\n<\/div>\n\n<script>\n  function toggleENPAvatar() {\n    const avatar = document.getElementById('enpAvatar');\n    avatar.style.display = (avatar.style.display === 'none' || avatar.style.display === '') ? 'block' : 'none';\n  }\n\n  function openENPWhatsApp() {\n    alert(\"\ud83d\udc4b Welcome to ENP Luxury Homes Inc.\\nHow can we help you today?\");\n    const message = encodeURIComponent(\"Hello! I'm exploring ENP Luxury Homes Inc and would love some assistance.\");\n    const phoneNumber = \"+13219452434\";\n    window.open(`https:\/\/wa.me\/${phoneNumber.replace('+', '')}?text=${message}`, '_blank');\n  }\n<\/script>\n\n\n\n<style>\n#gggL7Panel{\n  display:none;\n  position:fixed;\n  inset:0;\n  z-index:2147483647;\n  background:radial-gradient(circle at top,#18213a,#02040a 70%);\n  color:white;\n  overflow:auto;\n  font-family:Arial,sans-serif;\n  padding:24px;\n}\n#gggL7Panel *{box-sizing:border-box}\n.l7-wrap{max-width:1250px;margin:auto}\n.l7-header{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:20px}\n.l7-title{font-size:28px;font-weight:900;color:#fbbf24;text-transform:uppercase}\n.l7-btn{\n  border:none;border-radius:999px;padding:12px 18px;\n  background:linear-gradient(135deg,#fbbf24,#f59e0b);\n  color:#111;font-weight:900;cursor:pointer;text-transform:uppercase\n}\n.l7-btn.dark{background:#07111f;color:white;border:1px solid rgba(255,255,255,.2)}\n.l7-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:18px}\n.l7-card{\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.14);\n  border-radius:24px;\n  padding:18px;\n  box-shadow:0 20px 60px rgba(0,0,0,.45)\n}\n.l7-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.l7-field.full{grid-column:1\/-1}\n.l7-field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#cbd5e1;margin-bottom:6px}\n.l7-field input,.l7-field select,.l7-field textarea{\n  width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.16);\n  background:rgba(0,0,0,.35);color:white;padding:11px\n}\n.l7-field textarea{min-height:90px}\n#l7List{display:grid;gap:12px}\n.l7-item{\n  display:grid;grid-template-columns:76px 1fr auto;gap:12px;align-items:center;\n  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);\n  border-radius:18px;padding:12px\n}\n.l7-thumb{width:76px;height:76px;border-radius:16px;background:#111 center\/cover no-repeat}\n.l7-name{font-weight:900;color:#fbbf24}\n.l7-meta{font-size:12px;color:#cbd5e1;margin-top:4px}\n.l7-actions{display:flex;gap:8px;flex-wrap:wrap}\n@media(max-width:850px){\n  .l7-grid{grid-template-columns:1fr}\n  .l7-form{grid-template-columns:1fr}\n  .l7-item{grid-template-columns:60px 1fr}\n}\n<\/style>\n\n<div id=\"gggL7Panel\">\n  <div class=\"l7-wrap\">\n    <div class=\"l7-header\">\n      <div>\n        <div class=\"l7-title\">Level 7 Real Estate Control Panel<\/div>\n        <div style=\"color:#cbd5e1\">Edit properties\/hosts for the cube circles and ENP hidden page.<\/div>\n      <\/div>\n      <button class=\"l7-btn dark\" onclick=\"location.href='\/GGG\/medayork-pyramid-2\/'\">Back to Pyramid<\/button>\n    <\/div>\n\n    <div class=\"l7-grid\">\n      <div class=\"l7-card\">\n        <h3>Add \/ Edit Property<\/h3>\n\n        <div class=\"l7-form\">\n          <input type=\"hidden\" id=\"l7Id\">\n\n          <div class=\"l7-field\">\n            <label>Name<\/label>\n            <input id=\"l7Name\" placeholder=\"Example: 2230 Sunset Ave\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Main Type<\/label>\n            <select id=\"l7MainType\">\n              <option>Residential<\/option>\n              <option>Commercial<\/option>\n              <option>New Real Estate<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Action<\/label>\n            <select id=\"l7Action\">\n              <option>Rent<\/option>\n              <option>Buy<\/option>\n              <option>Sell<\/option>\n              <option>Invest<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Suboption Key<\/label>\n            <input id=\"l7SuboptionKey\" placeholder=\"Example: rent-apto\">\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Main Image URL<\/label>\n            <input id=\"l7ImageUrl\" placeholder=\"Paste WordPress image URL\">\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Gallery Image URLs<\/label>\n            <textarea id=\"l7GalleryUrls\" placeholder=\"Paste multiple image URLs, one per line\"><\/textarea>\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Price<\/label>\n            <input id=\"l7Price\" placeholder=\"$499,000\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Location<\/label>\n            <input id=\"l7Location\" placeholder=\"Orlando, FL\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Beds<\/label>\n            <input id=\"l7Beds\" placeholder=\"4\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Baths<\/label>\n            <input id=\"l7Baths\" placeholder=\"3\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Sqft<\/label>\n            <input id=\"l7Sqft\" placeholder=\"2,100\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Status<\/label>\n            <select id=\"l7Status\">\n              <option value=\"active\">Active<\/option>\n              <option value=\"hidden\">Hidden<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Latitude<\/label>\n            <input id=\"l7Lat\" placeholder=\"28.5383\">\n          <\/div>\n\n          <div class=\"l7-field\">\n            <label>Longitude<\/label>\n            <input id=\"l7Lng\" placeholder=\"-81.3792\">\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Website \/ MLS \/ Contact Link<\/label>\n            <input id=\"l7WebsiteUrl\" placeholder=\"https:\/\/...\">\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Google Map Link<\/label>\n            <input id=\"l7MapUrl\" placeholder=\"https:\/\/maps.google.com\/...\">\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Video URL \/ YouTube Link<\/label>\n            <input type=\"url\" id=\"videoUrl\" placeholder=\"Paste YouTube video link\">\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Description<\/label>\n            <textarea id=\"l7Description\" placeholder=\"Property description...\"><\/textarea>\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>Highlights<\/label>\n            <textarea id=\"l7Highlights\" placeholder=\"One highlight per line\"><\/textarea>\n          <\/div>\n\n          <div class=\"l7-field full\">\n            <label>\n              <input type=\"checkbox\" id=\"l7Featured\"> Featured property\n            <\/label>\n          <\/div>\n        <\/div>\n\n        <br>\n        <button class=\"l7-btn\" onclick=\"l7SaveItem()\">Save Property<\/button>\n        <button class=\"l7-btn dark\" onclick=\"l7ResetForm()\">Clear<\/button>\n      <\/div>\n\n      <div class=\"l7-card\">\n        <h3>Current Level 7 Inventory<\/h3>\n        <div id=\"l7List\">Loading...<\/div>\n        <br>\n        <button class=\"l7-btn\" onclick=\"l7SaveAll()\">Save All Changes<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  const params = new URLSearchParams(window.location.search);\n  if(params.get(\"level7panel\") === \"1\"){\n    document.getElementById(\"gggL7Panel\").style.display = \"block\";\n    document.body.style.overflow = \"hidden\";\n  }\n})();\n\nconst L7_AJAX = \"\/GGG\/wp-admin\/admin-ajax.php\";\nlet l7Items = [];\n\nfunction l7GetForm(){\n  return {\n    id: document.getElementById(\"l7Id\").value || (\"l7_\" + Date.now()),\n    name: document.getElementById(\"l7Name\").value,\n    mainType: document.getElementById(\"l7MainType\").value,\n    action: document.getElementById(\"l7Action\").value,\n    suboptionKey: document.getElementById(\"l7SuboptionKey\").value,\n    imageUrl: document.getElementById(\"l7ImageUrl\").value,\n    galleryUrls: document.getElementById(\"l7GalleryUrls\").value,\n    price: document.getElementById(\"l7Price\").value,\n    location: document.getElementById(\"l7Location\").value,\n    beds: document.getElementById(\"l7Beds\").value,\n    baths: document.getElementById(\"l7Baths\").value,\n    sqft: document.getElementById(\"l7Sqft\").value,\n    lat: document.getElementById(\"l7Lat\").value,\n    lng: document.getElementById(\"l7Lng\").value,\n    websiteUrl: document.getElementById(\"l7WebsiteUrl\").value,\n    mapUrl: document.getElementById(\"l7MapUrl\").value,\n    videoUrl: document.getElementById(\"videoUrl\").value.trim(),\n    description: document.getElementById(\"l7Description\").value,\n    highlights: document.getElementById(\"l7Highlights\").value,\n    status: document.getElementById(\"l7Status\").value,\n    featured: document.getElementById(\"l7Featured\").checked ? 1 : 0\n  };\n}\n\nfunction l7SetForm(item){\n  document.getElementById(\"l7Id\").value = item.id || \"\";\n  document.getElementById(\"l7Name\").value = item.name || \"\";\n  document.getElementById(\"l7MainType\").value = item.mainType || \"Residential\";\n  document.getElementById(\"l7Action\").value = item.action || \"Rent\";\n  document.getElementById(\"l7SuboptionKey\").value = item.suboptionKey || \"\";\n  document.getElementById(\"l7ImageUrl\").value = item.imageUrl || \"\";\n  document.getElementById(\"l7GalleryUrls\").value = item.galleryUrls || \"\";\n  document.getElementById(\"l7Price\").value = item.price || \"\";\n  document.getElementById(\"l7Location\").value = item.location || \"\";\n  document.getElementById(\"l7Beds\").value = item.beds || \"\";\n  document.getElementById(\"l7Baths\").value = item.baths || \"\";\n  document.getElementById(\"l7Sqft\").value = item.sqft || \"\";\n  document.getElementById(\"l7Lat\").value = item.lat || \"\";\n  document.getElementById(\"l7Lng\").value = item.lng || \"\";\n  document.getElementById(\"l7WebsiteUrl\").value = item.websiteUrl || \"\";\n  document.getElementById(\"l7MapUrl\").value = item.mapUrl || \"\";\n  document.getElementById(\"videoUrl\").value = item.videoUrl || \"\";\n  document.getElementById(\"l7Description\").value = item.description || \"\";\n  document.getElementById(\"l7Highlights\").value = item.highlights || \"\";\n  document.getElementById(\"l7Status\").value = item.status || \"active\";\n  document.getElementById(\"l7Featured\").checked = !!Number(item.featured || 0);\n}\n\nfunction l7ResetForm(){\n  l7SetForm({});\n}\n\nfunction l7SaveItem(){\n  const item = l7GetForm();\n\n  if(!item.name){\n    alert(\"Add a property name first.\");\n    return;\n  }\n\n  const index = l7Items.findIndex(x => x.id === item.id);\n\n  if(index >= 0){\n    l7Items[index] = item;\n  }else{\n    l7Items.push(item);\n  }\n\n  l7Render();\n  l7SaveAll();\n  l7ResetForm();\n}\n\nfunction l7Edit(id){\n  const item = l7Items.find(x => x.id === id);\n  if(item) l7SetForm(item);\n}\n\nfunction l7Delete(id){\n  if(!confirm(\"Delete this property from Level 7 inventory?\")) return;\n\n  l7Items = l7Items.filter(x => x.id !== id);\n  l7Render();\n  l7SaveAll();\n}\n\nfunction l7Move(id, direction){\n  const index = l7Items.findIndex(x => x.id === id);\n  if(index === -1) return;\n\n  const newIndex = index + direction;\n  if(newIndex < 0 || newIndex >= l7Items.length) return;\n\n  const temp = l7Items[index];\n  l7Items[index] = l7Items[newIndex];\n  l7Items[newIndex] = temp;\n\n  l7Render();\n  l7SaveAll();\n}\n\nfunction l7Render(){\n  const list = document.getElementById(\"l7List\");\n\n  if(!l7Items.length){\n    list.innerHTML = \"<p style='color:#cbd5e1'>No properties added yet.<\/p>\";\n    return;\n  }\n\n  list.innerHTML = l7Items.map(item => `\n    <div class=\"l7-item\">\n      <div class=\"l7-thumb\" style=\"background-image:url('${item.imageUrl || \"\"}')\"><\/div>\n\n      <div>\n        <div class=\"l7-name\">${item.name || \"Unnamed Property\"}<\/div>\n        <div class=\"l7-meta\">${item.mainType || \"\"} \u2022 ${item.action || \"\"} \u2022 ${item.suboptionKey || \"\"}<\/div>\n        <div class=\"l7-meta\">${item.price || \"\"} ${item.location ? \"\u2022 \" + item.location : \"\"}<\/div>\n      <\/div>\n\n      <div class=\"l7-actions\">\n        <button class=\"l7-btn dark\" onclick=\"l7Edit('${item.id}')\">Edit<\/button>\n        <button class=\"l7-btn dark\" onclick=\"l7Delete('${item.id}')\">Delete<\/button>\n        <button class=\"l7-btn dark\" onclick=\"l7Move('${item.id}', -1)\">\u2191<\/button>\n        <button class=\"l7-btn dark\" onclick=\"l7Move('${item.id}', 1)\">\u2193<\/button>\n      <\/div>\n    <\/div>\n  `).join(\"\");\n}\n\nfunction l7Load(){\n  const fd = new FormData();\n  fd.append(\"action\", \"ggg_l7_get_inventory\");\n\n  fetch(L7_AJAX, {\n    method:\"POST\",\n    credentials:\"same-origin\",\n    body:fd\n  })\n  .then(r => r.json())\n  .then(data => {\n    l7Items = data?.data?.items || [];\n    l7Render();\n  })\n  .catch(() => {\n    document.getElementById(\"l7List\").innerHTML = \"Could not load inventory.\";\n  });\n}\n\nfunction l7SaveAll(){\n  if(!Array.isArray(l7Items)){\n    alert(\"Inventory is not loaded correctly. Save blocked.\");\n    return;\n  }\n\n  if(l7Items.length === 0){\n    const confirmEmpty = confirm(\n      \"Inventory is empty. Are you sure you want to overwrite and delete all saved properties?\"\n    );\n\n    if(!confirmEmpty) return;\n  }\n\n  const fd = new FormData();\n  fd.append(\"action\", \"ggg_l7_save_inventory\");\n  fd.append(\"items\", JSON.stringify(l7Items));\n\n  fetch(L7_AJAX, {\n    method:\"POST\",\n    credentials:\"same-origin\",\n    body:fd\n  })\n  .then(r => r.json())\n  .then(data => {\n    if(!data.success){\n      alert(data?.data?.message || \"Save failed.\");\n    }else{\n      alert(\n        \"Inventory saved.\\n\\nProperties saved: \" +\n        (data.data && data.data.saved_count !== undefined ? data.data.saved_count : \"unknown\")\n      );\n    }\n  })\n  .catch(() => {\n    alert(\"Save failed. Server did not respond.\");\n  });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", l7Load);\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf10 New \ud83d\udcb3 Avatar Club Properties Lot Rent Avatar Properties Landmarks Businesses Buy Properties Events Business Lot Sell Landmark Club Land Properties Invest \ud83d\udcb3 Pay with Bliss Coin Enter your digital wallet #: Send payment to: HOST-WALLET-ADDRESS-123 Close \ud83e\uddca \ud83d\udc96 Sign In \/ Sign Up ENP NEW REAL ESTATE \u2022 LISTINGS Select an option \u25c0 [&hellip;]<\/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-3227","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/3227","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=3227"}],"version-history":[{"count":88,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/3227\/revisions"}],"predecessor-version":[{"id":7941,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/3227\/revisions\/7941"}],"wp:attachment":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/media?parent=3227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}