{"id":2913,"date":"2025-07-08T05:15:13","date_gmt":"2025-07-08T05:15:13","guid":{"rendered":"https:\/\/godsgalaxygame.com\/GGG\/?page_id=2913"},"modified":"2026-01-01T06:19:47","modified_gmt":"2026-01-01T06:19:47","slug":"gastronomic","status":"publish","type":"page","link":"https:\/\/godsgalaxygame.com\/GGG\/gastronomic\/","title":{"rendered":"Gastronomic"},"content":{"rendered":"\n<!-- BLOQUE 2 - Gastronomic Cube V19 Completo + Mapa Circular + API -->\n<style>\n  @media (max-width: 768px) {\n    #glowMapContainer {\n      margin-top: -55px !important;\n    }\n  }\n<\/style>\n<div id=\"gastronomicCubeContainer\" 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=\"gastronomicCube\" 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\udf7d\ufe0f<\/div>\n        <div style=\"font-size:16px; color:white; font-weight:bold; text-shadow:0 0 10px white; margin-top:6px;\">Gastronomic<\/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\/medayork-pyramid-2\/?travelclub=1&#038;access=Galaxy2025&#038;open=evolution\n\" 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 (Cook) -->\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('cook-learn')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Learn<\/button>\n        <button onclick=\"showHostButtons('cook-locals')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Locals<\/button>\n        <button onclick=\"showHostButtons('cook-itr')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-rl; background:transparent;\">In The Room<\/button>\n        <button onclick=\"showHostButtons('cook-shopc')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-lr; background:transparent;\">Shop\/Cook<\/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;\">Cook<\/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 (Culinary) -->\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('culi-camp')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Camp<\/button>\n        <button onclick=\"showHostButtons('culi-classes')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Classes<\/button>\n        <button onclick=\"showHostButtons('culi-date')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-rl; background:transparent;\">Date<\/button>\n        <button onclick=\"showHostButtons('culi-pri')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-lr; background:transparent;\">Private<\/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;\">Culinary<\/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 (Tasting) -->\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('taste-gastro')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Gastro<\/button>\n        <button onclick=\"showHostButtons('taste-truck')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Truck<\/button>\n        <button onclick=\"showHostButtons('taste-expo')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-rl; background:transparent;\">Expo<\/button>\n        <button onclick=\"showHostButtons('taste-festi')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-lr; background:transparent;\">Festival<\/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;\">Tasting<\/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 (Innovative) -->\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('inno-crea')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Creative<\/button>\n        <button onclick=\"showHostButtons('inno-herb')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Herbal<\/button>\n        <button onclick=\"showHostButtons('inno-cann')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-rl; background:transparent;\">Cannabis<\/button>\n        <button onclick=\"showHostButtons('inno-medi')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-lr; background:transparent;\">Medicinal<\/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;\">Innovative<\/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\" style=\"opacity:1; pointer-events:auto; transition: opacity 0.6s ease; margin: 0 auto; margin-top: -95px; margin-bottom: 40px; width: 320px; height: 320px; border-radius: 50%; overflow: hidden; border: 6px solid rgba(0,255,255,0.6); box-shadow: 0 0 25px cyan; position: relative; z-index: 900;\">\n    <div id=\"googleMap\" style=\"width:100%; height:100%;\"><\/div>\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<script>\n  function activategastronomicCube() {\n    \/\/ Oculta el grid de opciones\n    const rrGrid = document.getElementById(\"rrGrid\");\n    if (rrGrid) {\n      rrGrid.style.display = \"none\";\n    }\n\n    \/\/ Muestra el contenedor del cubo Gastronomic\n    const container = document.getElementById(\"gastronomicContainer\");\n    if (container) {\n      container.style.opacity = \"1\";\n      container.style.pointerEvents = \"auto\";\n    }\n\n    \/\/ Muestra el mapa\n    const map = document.getElementById(\"glowMapContainer\");\n    if (map) {\n      map.style.opacity = \"1\";\n      map.style.pointerEvents = \"auto\";\n    }\n\n    \/\/ Reinicia el mapa si es necesario\n    if (typeof initMap === \"function\") {\n      initMap();\n    }\n  }\n<\/script>\n<script>\n function initMap() {\n  const map = new google.maps.Map(document.getElementById(\"googleMap\"), {\n    center: { lat: 6.2414088, lng: -75.22951 },  \/\/ Bliss Glamping\n    zoom: 15,\n    disableDefaultUI: true,\n    gestureHandling: \"greedy\"\n  });\n\n  \/\/ \ud83d\udfe2 Add this to show the marker\n  const marker = new google.maps.Marker({\n    position: { lat: 6.2414088, lng: -75.22951 },\n    map: map,\n    title: \"Bliss Glamping\"\n  });\n\n  \/\/ Optional: save the map to global variable if needed later\n  window.ggMap = map;\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<!-- ============================\nGLOBAL PREVIEW + ROUTE + INFO + DATES\n(Gastronomic \/ Level 4)\n============================ -->\n<script>\n(() => {\n  \/* ============ 1) VIDEOS \/ LINKS PARA SEE PREVIEW ============ *\/\n  const PREVIEW_MEDIA = {\n    \/* COOK *\/\n    \"cook-learn\": {\n      type: \"video\",\n      src: \"https:\/\/youtu.be\/q8yNuq_VHsA?si=kk-f4oqLLxAGSztp\"\n    },\n    \"cook-locals\": {\n      type: \"video\",\n      src: \"https:\/\/www.instagram.com\/reel\/C-8wnIQx2j2\/?igsh=bzR3YTB5c3Q2N3Qz\"\n    },\n    \"cook-itr\": {\n      type: \"video\",\n      src: \"https:\/\/www.thecharlee.com\/room\/spice\/\"\n    },\n    \"cook-shopc\": {\n      type: \"video\",\n      src: \"https:\/\/turismoi.co\/tours\/tour-de-mercados-medellin\"\n    },\n\n    \/* CULINARY *\/\n    \"culi-camp\": {\n      type: \"video\",\n      src: \"https:\/\/youtu.be\/bjDpQJ5vYy0?si=kAmbY2F6JzxuZta0\"\n    },\n    \"culi-classes\": {\n      type: \"video\",\n      src: \"https:\/\/www.superprof.co\/clases\/cocina\/medellin\/?utm_source=google&utm_medium=ads_el&utm_campaign=EL_CO_SEARCH_General&gad_source=1&gclid=CjwKCAjwreW2BhBhEiwAavLwfDQwop72Ulq9w2hGeAja-_afr-Cqc3zMXY9DkSqMLMEStQnfDI9tGhoCTocQAvD_BwE\"\n    },\n    \"culi-date\": {\n      type: \"video\",\n      src: \"https:\/\/youtu.be\/q8yNuq_VHsA?si=ip8kqE6zwZKDTAbo\"\n    },\n    \"culi-pri\": {\n      type: \"video\",\n      src: \"https:\/\/www.superprof.co\/clases\/cocina\/medellin\/?utm_source=google&utm_medium=ads_el&utm_campaign=EL_CO_SEARCH_General&gad_source=1&gclid=CjwKCAjwreW2BhBhEiwAavLwfDQwop72Ulq9w2hGeAja-_afr-Cqc3zMXY9DkSqMLMEStQnfDI9tGhoCTocQAvD_BwE\"\n    },\n\n    \/* TASTING *\/\n    \"taste-gastro\": {\n      type: \"video\",\n      src: \"https:\/\/www.instagram.com\/barrioprovenza?igsh=MW1jeGpqeWJ5eGloeg==\"\n    },\n    \/\/ taste-truck: sin preview -> usar\u00e1 la imagen de fondo del c\u00edrculo\n    \"taste-expo\": {\n      type: \"video\",\n      src: \"https:\/\/plazamayor.com.co\/eventos-pm\/\"\n    },\n    \"taste-festi\": {\n      type: \"video\",\n      src: \"https:\/\/medellingourmet.com\/\"\n    },\n\n    \/* INNOVATIVE *\/\n    \"inno-crea\": {\n      type: \"video\",\n      src: \"https:\/\/youtu.be\/U3Mx9H66gR8?si=a52QZ83j4gsjPV0O\"\n    },\n    \"inno-herb\": {\n      type: \"video\",\n      src: \"https:\/\/youtu.be\/JKsMvNM1zRM?si=t_rTuRY_vl4Bk1HP\"\n    },\n    \/\/ inno-cann: sin preview -> usar\u00e1 imagen\n    \"inno-medi\": {\n      type: \"video\",\n      src: \"https:\/\/psychotravels.co\/\"\n    }\n  };\n\n  \/* ============ 1.5) KML PARA SHOW ROUTE ============ *\/\n  const ROUTE_KMLS = {\n    \/* COOK *\/\n    \"cook-learn\":  \"https:\/\/godsgalaxygame.com\/Kml\/Cook%20Learn.kml\",\n    \"cook-locals\": \"https:\/\/godsgalaxygame.com\/Kml\/Cook%20Local.kml\",\n    \"cook-itr\":    \"https:\/\/godsgalaxygame.com\/Kml\/Cook%20in%20the%20room.kml\",\n    \"cook-shopc\":  \"https:\/\/godsgalaxygame.com\/Kml\/Cook%20Shop_Cook.kml\",\n\n    \/* CULINARY *\/\n    \"culi-camp\":   \"https:\/\/godsgalaxygame.com\/Kml\/Culinary%20Camp.kml\",\n    \"culi-classes\":\"https:\/\/godsgalaxygame.com\/Kml\/Culinary%20Classes.kml\",\n    \"culi-date\":   \"https:\/\/godsgalaxygame.com\/Kml\/Culinary%20Date.kml\",\n    \"culi-pri\":    \"https:\/\/godsgalaxygame.com\/Kml\/Culinary%20Private.kml\",\n\n    \/* TASTING *\/\n    \"taste-gastro\":\"https:\/\/godsgalaxygame.com\/Kml\/Tasting%20Gastro.kml\",\n    \"taste-truck\":\"https:\/\/godsgalaxygame.com\/Kml\/Tasting%20Trucks.kml\",\n    \"taste-expo\": \"https:\/\/godsgalaxygame.com\/Kml\/Tasting%20Expo.kml\",\n    \"taste-festi\":\"https:\/\/godsgalaxygame.com\/Kml\/Tasting%20Featival.kml\",\n\n    \/* INNOVATIVE *\/\n    \"inno-crea\":   \"https:\/\/godsgalaxygame.com\/Kml\/Innovative%20Creative.kml\",\n    \"inno-herb\":   \"https:\/\/godsgalaxygame.com\/Kml\/Innovative%20Herbal.kml\",\n    \"inno-cann\":   \"https:\/\/godsgalaxygame.com\/Kml\/Innovative%20Cannabis.kml\",\n    \"inno-medi\":   \"https:\/\/godsgalaxygame.com\/Kml\/Innovative%20Medicinal.kml\"\n  };\n\n  \/* ============ 1.6) LINKS EXTERNOS (MORE INFO) ============ *\/\n  const INFO_LINKS = {\n    \/* COOK *\/\n    \"cook-learn\":  \"https:\/\/chefmont.com\/\",\n    \"cook-locals\": \"https:\/\/www.instagram.com\/reel\/C-8wnIQx2j2\/?igsh=bzR3YTB5c3Q2N3Qz\",\n    \"cook-itr\":    \"https:\/\/www.thecharlee.com\/room\/spice\/\",\n    \"cook-shopc\":  \"https:\/\/turismoi.co\/tours\/tour-de-mercados-medellin\",\n\n    \/* CULINARY *\/\n    \"culi-camp\":   \"https:\/\/lunaticoexperience.com\/es\/cooking-workshop-cook-eat-share\/\",\n    \"culi-classes\":\"https:\/\/www.superprof.co\/clases\/cocina\/medellin\/?utm_source=google&utm_medium=ads_el&utm_campaign=EL_CO_SEARCH_General&gad_source=1&gclid=CjwKCAjwreW2BhBhEiwAavLwfDQwop72Ulq9w2hGeAja-_afr-Cqc3zMXY9DkSqMLMEStQnfDI9tGhoCTocQAvD_BwE\",\n    \"culi-date\":   \"https:\/\/chefmont.com\/\",\n    \"culi-pri\":    \"https:\/\/www.superprof.co\/clases\/cocina\/medellin\/?utm_source=google&utm_medium=ads_el&utm_campaign=EL_CO_SEARCH_General&gad_source=1&gclid=CjwKCAjwreW2BhBhEiwAavLwfDQwop72Ulq9w2hGeAja-_afr-Cqc3zMXY9DkSqMLMEStQnfDI9tGhoCTocQAvD_BwE\",\n\n    \/* TASTING *\/\n    \"taste-gastro\":\"https:\/\/www.instagram.com\/barrioprovenza?igsh=MW1jeGpqeWJ5eGloeg==\",\n    \"taste-expo\":  \"https:\/\/plazamayor.com.co\/eventos-pm\/\",\n    \"taste-festi\": \"https:\/\/medellingourmet.com\/\",\n\n    \/* INNOVATIVE *\/\n    \"inno-crea\":   \"https:\/\/www.instagram.com\/reel\/C8uZdYIRHRq\/?igsh=MXNoMXl4ZW00ZDJiZQ==\",\n    \"inno-herb\":   \"https:\/\/apiladosdeautor.com\/\",\n    \"inno-medi\":   \"https:\/\/psychotravels.co\/\"\n  };\n\n  \/* ============ 2) ESTADO INTERNO ============ *\/\n  let state = { key: null, type: null, src: null, title: null };\n  let currentKmlLayer = null;\n\n  const until = (fn, timeout = 8000, every = 120) => new Promise((res, rej) => {\n    const t0 = performance.now();\n    const tick = () => {\n      const out = fn();\n      if (out) return res(out);\n      if (performance.now() - t0 > timeout) return rej(new Error('timeout'));\n      setTimeout(tick, every);\n    };\n    tick();\n  });\n\n  const getBgURL = (el) => {\n    const bg = (getComputedStyle(el).backgroundImage || '').trim();\n    return bg.replace(\/^url\\((['\"]?)(.*)\\1\\)$\/, '$2');\n  };\n\n  const make = (tag, attrs = {}, html = '') => {\n    const el = document.createElement(tag);\n    Object.entries(attrs).forEach(([k, v]) => el.setAttribute(k, v));\n    if (html) el.innerHTML = html;\n    return el;\n  };\n\n  \/\/ Convierte YouTube\/Vimeo\/otros links en iframe o link con AUTOPLAY\n  const embedFrom = (url) => {\n    if (\/youtube\\.com\\\/embed\\\/\/i.test(url)) {\n      const hasQuery = url.includes(\"?\");\n      return `<iframe src=\"${url}${hasQuery ? \"&#038;\" : \"?\"}autoplay=1&#038;rel=0&#038;playsinline=1\"\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n        allowfullscreen><\/iframe>`;\n    }\n\n    const yt = url.match(\/(?:youtu\\.be\\\/|youtube\\.com\\\/watch\\?v=)([\\w\\-]+)\/i);\n    const vm = url.match(\/vimeo\\.com\\\/(\\d+)\/i);\n\n    if (yt) {\n      const id = yt[1];\n      return `<iframe src=\"https:\/\/www.youtube.com\/embed\/${id}?autoplay=1&#038;rel=0&#038;playsinline=1\"\n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n        allowfullscreen><\/iframe>`;\n    }\n\n    if (vm) {\n      const id = vm[1];\n      return `<iframe src=\"https:\/\/player.vimeo.com\/video\/${id}?autoplay=1\"\n        allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\"\n        allowfullscreen><\/iframe>`;\n    }\n\n    \/\/ Cualquier otro URL: link general dentro del c\u00edrculo\n    return `<a href=\"${url}\" target=\"_blank\" style=\"color:#00ffff; font-weight:900; text-decoration:underline;\">Open link<\/a>`;\n  };\n\n  \/* ============ 3) ESTILOS + UI EN EL MAPA ============ *\/\n  function injectStyles() {\n    if (document.getElementById('ggg-preview-styles')) return;\n    const css = `\n#glowMapContainer{ position:relative; }\n#accSeePreview, #accShowRoute, #accMoreInfo, #accSeeDates{\n  position:absolute; left:50%; transform:translateX(-50%);\n  padding:6px 13px;\n  border-radius:999px; border:2px solid rgba(0,255,255,.7);\n  background:rgba(0,0,0,.7); color:#eafcff;\n  font-family:Orbitron,system-ui,sans-serif; font-weight:900; letter-spacing:.2px;\n  box-shadow:0 0 16px rgba(0,255,255,.45);\n  cursor:pointer; z-index:1200; display:none;\n  font-size:11px;\n}\n#accSeePreview{ bottom:82px; }\n#accShowRoute{ bottom:58px; }\n#accMoreInfo{  bottom:34px; }\n#accSeeDates{  bottom:10px; }\n\n#accSeePreview:hover, #accShowRoute:hover, #accMoreInfo:hover, #accSeeDates:hover{\n  box-shadow:0 0 22px rgba(0,255,255,.85);\n}\n#accPreviewOverlay{\n  position:absolute; inset:0; display:none; place-items:center;\n  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.30), rgba(0,0,0,.65) 70%);\n  z-index:1300;\n}\n.acc-preview-circle{\n  width: clamp(200px, 62%, 300px); aspect-ratio:1\/1;\n  border-radius:50%; border:4px solid rgba(0,255,255,.75);\n  box-shadow: 0 0 28px rgba(0,255,255,.6), inset 0 0 22px rgba(0,255,255,.25);\n  background:#000; overflow:hidden; position:relative;\n  display:grid; place-items:center;\n}\n.acc-closeX{\n  position:absolute; top:6px; right:8px; z-index:2;\n  border:0; background:rgba(0,0,0,.55); color:#9fefff;\n  font-size:20px; font-weight:900; width:28px; height:28px;\n  border-radius:50%; cursor:pointer; line-height:26px;\n  box-shadow:0 0 10px rgba(0,255,255,.35);\n}\n#accPreviewMedia{ width:92%; height:92%; display:grid; place-items:center; }\n#accPreviewMedia img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }\n#accPreviewMedia iframe{ width:100%; height:100%; border:0; border-radius:50%; }`;\n    const style = make('style', { id: 'ggg-preview-styles' }, css);\n    document.head.appendChild(style);\n  }\n\n  function mountUI(mapWrap) {\n    if (document.getElementById('accSeePreview')) {\n      return {\n        btnPreview: document.getElementById('accSeePreview'),\n        btnRoute: document.getElementById('accShowRoute'),\n        btnInfo: document.getElementById('accMoreInfo'),\n        btnDates: document.getElementById('accSeeDates'),\n        overlay: document.getElementById('accPreviewOverlay'),\n        media: document.getElementById('accPreviewMedia')\n      };\n    }\n\n    const btnPrev  = make('button', { id: 'accSeePreview', 'aria-haspopup': 'dialog' }, '\ud83d\udc41\ufe0f See Preview');\n    const btnRoute = make('button', { id: 'accShowRoute', 'aria-haspopup': 'false' }, '\ud83d\udccd Show Route');\n    const btnInfo  = make('button', { id: 'accMoreInfo', 'aria-haspopup': 'false' }, '\ud83d\udd17 More Info');\n    const btnDates = make('button', { id: 'accSeeDates', 'aria-haspopup': 'dialog' }, '\ud83d\udcc5 See Dates');\n\n    const overlay = make('div', { id: 'accPreviewOverlay', 'aria-hidden': 'true' });\n    overlay.innerHTML = `\n      <div class=\"acc-preview-circle\" role=\"dialog\" aria-label=\"Map preview\">\n        <button class=\"acc-closeX\" aria-label=\"Close preview\">\u00d7<\/button>\n        <div id=\"accPreviewMedia\"><\/div>\n      <\/div>`;\n\n    mapWrap.appendChild(btnPrev);\n    mapWrap.appendChild(btnRoute);\n    mapWrap.appendChild(btnInfo);\n    mapWrap.appendChild(btnDates);\n    mapWrap.appendChild(overlay);\n\n    const media = document.getElementById('accPreviewMedia');\n    const closeBtn = overlay.querySelector('.acc-closeX');\n\n    \/\/ Abrir PREVIEW\n    btnPrev.addEventListener('click', () => {\n      if (!state.src) return;\n      media.innerHTML = state.type === 'video'\n        ? embedFrom(state.src)\n        : `<img decoding=\"async\" src=\"${state.src}\" alt=\"${state.title || 'Preview'}\">`;\n\n      overlay.style.display = 'grid';\n      overlay.setAttribute('aria-hidden', 'false');\n    });\n\n    \/\/ Cerrar PREVIEW\n    const close = () => {\n      overlay.style.display = 'none';\n      overlay.setAttribute('aria-hidden', 'true');\n      media.innerHTML = '';\n    };\n    closeBtn.addEventListener('click', close);\n    overlay.addEventListener('click', (e) => { if (e.target === overlay) close(); });\n    window.addEventListener('keydown', (e) => { if (e.key === 'Escape') close(); }, { passive: true });\n\n    \/\/ CLICK EN SHOW ROUTE (KML + zoom 13)\n    btnRoute.addEventListener('click', () => {\n      if (!state.key) return;\n      const url = ROUTE_KMLS[state.key];\n      if (!url || !window.ggMap || !window.google) return;\n\n      if (currentKmlLayer) {\n        currentKmlLayer.setMap(null);\n        currentKmlLayer = null;\n      }\n\n      currentKmlLayer = new google.maps.KmlLayer({\n        url,\n        map: window.ggMap,\n        suppressInfoWindows: false,\n        preserveViewport: false\n      });\n\n      google.maps.event.addListenerOnce(currentKmlLayer, 'status_changed', () => {\n        google.maps.event.addListenerOnce(window.ggMap, 'idle', () => {\n          window.ggMap.setZoom(13);\n        });\n      });\n    });\n\n    \/\/ CLICK EN MORE INFO (abre link externo)\n    btnInfo.addEventListener('click', () => {\n      if (!state.key) return;\n      const url = INFO_LINKS[state.key];\n      if (!url) return;\n      window.open(url, '_blank');\n    });\n\n    \/\/ CLICK EN SEE DATES (placeholder creativo)\n    btnDates.addEventListener('click', () => {\n      const label = state.title || 'this Gastronomic Tour';\n      alert(`\ud83d\udcc5 Dates for ${label} are coming soon.\\nThey will appear here inside Gods Galaxy Game \u2013 Gastronomic Level.`);\n    });\n\n    return { btnPreview: btnPrev, btnRoute, btnInfo, btnDates, overlay, media };\n  }\n\n  \/* ============ 4) LEER CLAVE DESDE EL C\u00cdRCULO ============ *\/\n  function keyFromClasses(el) {\n    const classes = [...el.classList];\n    const anyKnown = classes.find(c => PREVIEW_MEDIA[c] || ROUTE_KMLS[c] || INFO_LINKS[c]);\n    return anyKnown || null;\n  }\n\n  function hookCircles(btnPrev, btnRoute, btnInfo, btnDates) {\n    const wrap = document.getElementById('hostButtons');\n    if (!wrap) return;\n\n    wrap.addEventListener('click', (e) => {\n      const el = e.target.closest('.host-circle');\n      if (!el) return;\n\n      const key = keyFromClasses(el);\n      const cfg = key ? PREVIEW_MEDIA[key] : null;\n      const title = el.getAttribute('title') || '';\n\n      const fallbackImg = getBgURL(el);\n      state = {\n        key,\n        type: cfg?.type || 'image',\n        src:  cfg?.src || fallbackImg,\n        title\n      };\n\n      \/\/ See Preview\n      if (btnPrev) {\n        btnPrev.style.display = state.src ? 'block' : 'none';\n      }\n\n      \/\/ Show Route\n      if (btnRoute) {\n        btnRoute.style.display = (key && ROUTE_KMLS[key]) ? 'block' : 'none';\n      }\n\n      \/\/ More Info\n      if (btnInfo) {\n        btnInfo.style.display = (key && INFO_LINKS[key]) ? 'block' : 'none';\n      }\n\n      \/\/ See Dates: visible si hay key\n      if (btnDates) {\n        btnDates.style.display = key ? 'block' : 'none';\n      }\n\n    }, { passive: true });\n  }\n\n  \/* ============ 5) ARRANQUE ============ *\/\n  async function boot() {\n    try {\n      injectStyles();\n\n      await until(() => window.ggMap && document.getElementById('glowMapContainer'));\n      const mapWrap = document.getElementById('glowMapContainer');\n      const refs = mountUI(mapWrap);\n\n      await until(() => document.getElementById('hostButtons'));\n      hookCircles(refs.btnPreview, refs.btnRoute, refs.btnInfo, refs.btnDates);\n\n      console.log('%c[GGG Gastronomic Preview+Route+Info+Dates] Ready', 'color:#0ff');\n    } catch (e) {\n      console.warn('[GGG Gastronomic Preview+Route+Info+Dates] init failed:', e);\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\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#roseBtn {\n  width: 38px;\n  height: 38px;\n  background-color: black; \/* Keep black background *\/\n  background-image: url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/ChatGPT-Image-Jul-7-2025-05_11_38-PM.png');\n  background-size: cover;\n  background-position: center;\n  border: 2px solid white; \/* Optional white border *\/\n  border-radius: 50%;\n  box-shadow: 0 0 10px white; \/* White glow around the button *\/\n  cursor: pointer;\n  margin-top: 2px; \/* Adjust position to align with others *\/\n}\n\n#roseBtn: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<button id=\"roseBtn\"><\/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 Gastronomic\n  let isDragging = false, startX, startY, rotateX = 0, rotateY = 0;\n  const cube = document.getElementById('gastronomicCube');\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\n  const observer = new MutationObserver(() => {\n    const gastronomic = document.getElementById('gastronomicCubeContainer');\n    if (gastronomic && gastronomic.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 (Gastronomic) -->\n<style>\n  \/* container *\/\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 .cook { border-color:beige;   box-shadow:0 0 14px beige; }\n  #hostButtons .culi { border-color:#00ccff; box-shadow:0 0 14px #00ccff; }\n  #hostButtons .taste  { border-color:#33ff33; box-shadow:0 0 14px #33ff33; }\n  #hostButtons .inno { 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<\/style>\n\n<!-- HOST CIRCLES \u2014 HTML (Gastronomic: Cook\n \/ Culinary \/ Tasting \/ Innovative) -->\n<div id=\"hostButtons\">\n  <!-- Cook (beige) -->\n  <button class=\"host-circle cook cook-learn one\"\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_150308_Chrome.jpg');\"\n    title=\"Cook \u2022 Learn\"><\/button>\n\n  <button class=\"host-circle cook cook-locals five\"\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240821_175227_Instagram.jpg');\"\n    title=\"Cook \u2022 Locals\"><\/button>\n\n  <button class=\"host-circle cook cook-itr seven\"\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_152726_Chrome.jpg');\"\n    title=\"Cook \u2022 In The Room\"><\/button>\n\n  <button class=\"host-circle cook cook-shopc month\"\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_153558_Chrome.jpg');\"\n    title=\"Cook \u2022 Shop\/Cook\"><\/button>\n\n  <!-- Culinary (cyan) -->\n  <button class=\"host-circle culi culi-camp one\"\n    data-lat=\"6.2414088\" data-lng=\"-75.2315485\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_154711_Chrome.jpg');\"\n    title=\"Culinary \u2022 Camp\"><\/button>\n\n  <button class=\"host-circle culi culi-classes five\"\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_162459_Chrome.jpg');\"\n    title=\"Culinary \u2022 Classes\"><\/button>\n\n  <button class=\"host-circle culi culi-date seven\"\n    data-lat=\"6.2083202\" data-lng=\"-75.5677995\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_150308_Chrome.jpg');\"\n    title=\"Culinary \u2022 Date\"><\/button>\n\n  <button class=\"host-circle culi culi-pri month\"\n    data-lat=\"6.2252116\" data-lng=\"-75.1800426\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_162459_Chrome.jpg');\"\n    title=\"Culinary \u2022 Private\"><\/button>\n\n  <!-- Tasting (green) -->\n  <button class=\"host-circle taste taste-gastro one\"\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240904_185358_Instagram.jpg');\"\n    title=\"Tasting \u2022 Gastro\"><\/button>\n\n  <button class=\"host-circle taste taste-truck five\"\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_165603_Maps.jpg');\"\n    title=\"Tasting \u2022 Truck\"><\/button>\n\n  <button class=\"host-circle taste taste-expo seven\"\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_170323_Chrome.jpg');\"\n    title=\"Tasting \u2022 Expo\"><\/button>\n\n  <button class=\"host-circle taste taste-festi month\"\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240904_184152_Chrome.jpg');\"\n    title=\"Tasting \u2022 Festival\"><\/button>\n\n  <!-- Innovative (red) -->\n  <button class=\"host-circle inno inno-crea one\"\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20251223_112550_Google-scaled.jpg');\"\n    title=\"Innovative \u2022 Creative\"><\/button>\n\n  <button class=\"host-circle inno inno-herb five\"\n    data-lat=\"6.22663\" data-lng=\"-75.1831\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20251223_112949_Google.jpg');\"\n    title=\"Innovative \u2022 Herbal\"><\/button>\n\n  <button class=\"host-circle inno inno-cann seven\"\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_175408_Chrome.jpg');\"\n    title=\"Innovative \u2022 Cannabis\"><\/button>\n\n  <button class=\"host-circle inno inno-medi month\"\n    data-lat=\"6.24426\" data-lng=\"-75.217632\"\n    style=\"background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/12\/Screenshot_20240905_180445_Chrome.jpg');\"\n    title=\"Innovative \u2022 Medicinal\"><\/button>\n<\/div>\n\n<!-- HOST CIRCLES \u2014 JS (Gastronomic) -->\n<script>\n  \/* Show only the requested key, e.g., 'cook-learn' *\/\n  function showHostButtons(suboption){\n    const wrap = document.getElementById('hostButtons');\n    if(!wrap) return;\n\n    \/\/ hide all\n    wrap.querySelectorAll('.host-circle').forEach(el => el.style.display = 'none');\n\n    \/\/ show only requested group (class names include exact key)\n    wrap.querySelectorAll('.' + suboption).forEach(el => el.style.display = 'inline-block');\n\n    \/\/ reveal the container and allow clicks\n    wrap.style.display = 'flex';\n    wrap.style.pointerEvents = 'auto';\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  \/* 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&#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","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf7d\ufe0f Gastronomic \ud83d\udcb3 Learn Locals In The Room Shop\/Cook Cook Camp Classes Date Private Culinary Gastro Truck Expo Festival Tasting Creative Herbal Cannabis Medicinal Innovative \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 &#8211; AVATAR &#8211;> Loading&#8230; Yes No \ud83d\udc64 Assistant<\/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-2913","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2913","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=2913"}],"version-history":[{"count":15,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2913\/revisions"}],"predecessor-version":[{"id":6843,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2913\/revisions\/6843"}],"wp:attachment":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/media?parent=2913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}