{"id":2311,"date":"2025-07-03T03:08:43","date_gmt":"2025-07-03T03:08:43","guid":{"rendered":"https:\/\/godsgalaxygame.com\/GGG\/?page_id=2311"},"modified":"2026-07-01T21:17:26","modified_gmt":"2026-07-01T21:17:26","slug":"virgo","status":"publish","type":"page","link":"https:\/\/godsgalaxygame.com\/GGG\/virgo\/","title":{"rendered":"Virgo"},"content":{"rendered":"\r\n<!-- BLOQUE 2 - Virgo Cube V19 Completo + Mapa Circular + Tutorial con Im\u00e1genes -->\r\n<style>\r\n  @media (max-width: 768px) {\r\n    #glowMapContainer { margin-top: -55px !important; }\r\n  }\r\n  \/* Replay (Tutorial) button \u2014 scoped for Virgo *\/\r\n  #virgoReplay{\r\n    position:fixed; right:14px; bottom:14px; z-index:10000;\r\n    border:1px solid rgba(0,255,255,.45); background:rgba(0,255,255,.10);\r\n    color:#cfffff; padding:10px 12px; border-radius:12px; cursor:pointer;\r\n    backdrop-filter:blur(6px) saturate(130%); font-size:14px;\r\n    display:inline-flex;\r\n  }\r\n  #virgoReplay.show{ display:inline-flex; }\r\n  #virgoReplay:hover{ background:rgba(0,255,255,.18); box-shadow:0 0 14px rgba(0,255,255,.25); }\r\n<\/style>\r\n\r\n<div id=\"virgoCubeContainer\" style=\"opacity:1; pointer-events:auto; transition: opacity 0.6s ease;\">\r\n  <!-- ESCENA CUBO -->\r\n  <div class=\"cube-scene\" style=\"width:180px; height:180px; perspective:1000px; position:fixed; bottom:20px; left:20px; z-index:1000;\">\r\n    <div class=\"cube\" id=\"virgoCube\" style=\"width:100%; height:100%; position:relative; transform-style:preserve-3d; transform:rotateX(0deg) rotateY(0deg); transition:transform 0.3s ease;\">\r\n      <!-- FRONT -->\r\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;\">\r\n        <div style=\"font-size:42px; color:white; text-shadow:0 0 15px white;\">\u264d<\/div>\r\n        <div style=\"font-size:16px; color:white; font-weight:bold; text-shadow:0 0 10px white; margin-top:6px;\">Virgo<\/div>\r\n      <\/div>\r\n\r\n      <!-- BACK (Sol + 4 botones) -->\r\n      <div class=\"face back\" style=\"width:180px; height:180px; background:black; border:2px solid orange; box-shadow:0 0 20px orange; position:absolute; transform:rotateY(180deg) translateZ(90px); font-family:Orbitron;\">\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:75px; height:75px; border-radius:50%; overflow:hidden; box-shadow:0 0 25px orange;\">\r\n          <img decoding=\"async\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/1000065346-scaled.jpg\" style=\"width:100%; height:100%; object-fit:cover;\" alt=\"\">\r\n        <\/div>\r\n        <a href=\"#\" id=\"hostWebsiteBtn\" title=\"Go to Host Website\" target=\"_blank\" style=\"position:absolute; top:10px; left:10px; width:38px; height:38px; border-radius:50%; background:rgba(0,0,0,0.7); box-shadow:0 0 10px cyan; display:flex; justify-content:center; align-items:center;\">\r\n          <img decoding=\"async\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225358_Chrome-scaled.jpg\" style=\"width:70%; height:70%; border-radius:50%; object-fit:cover;\" alt=\"\">\r\n        <\/a>\r\n        <a href=\"https:\/\/godsgalaxygame.com\/GGG\/responsable-reservations\/\" title=\"Reserve with Us\" target=\"_blank\" style=\"position:absolute; top:10px; right:10px; width:38px; height:38px; border-radius:50%; background:rgba(0,0,0,0.7); box-shadow:0 0 10px lightgreen; display:flex; justify-content:center; align-items:center;\">\r\n          <img decoding=\"async\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225452_Chrome-scaled.jpg\" style=\"width:70%; height:70%; border-radius:50%; object-fit:cover;\" alt=\"\">\r\n        <\/a>\r\n        <a href=\"https:\/\/luxus2.godaddysites.com\/\" title=\"Become a Host\" target=\"_blank\" style=\"position:absolute; bottom:10px; left:10px; width:38px; height:38px; border-radius:50%; background:rgba(0,0,0,0.7); box-shadow:0 0 10px #ff33cc; display:flex; justify-content:center; align-items:center;\">\r\n          <img decoding=\"async\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-224514_Chrome-scaled.jpg\" style=\"width:70%; height:70%; border-radius:50%; object-fit:cover;\" alt=\"\">\r\n        <\/a>\r\n        <a href=\"https:\/\/godsgalaxygame.com\/GGG\/discounts-gift\/\" title=\"Get Coupons\" target=\"_blank\"\r\n           style=\"position:absolute; bottom:10px; right:10px; width:38px; height:38px; border-radius:50%; background:rgba(0,0,0,0.7); box-shadow:0 0 10px cyan; display:flex; justify-content:center; align-items:center;\">\r\n          <img decoding=\"async\" src=\"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240108-225546_Chrome.jpg\"\r\n               style=\"width:70%; height:70%; border-radius:50%; object-fit:cover;\" alt=\"\">\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <!-- RIGHT (Artistic) -->\r\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;\">\r\n        <button onclick=\"showHostButtons('artistic-accommodations')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Accommodations<\/button>\r\n        <button onclick=\"showHostButtons('artistic-restaurants')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid beige; color:white; background:transparent;\">Restaurants<\/button>\r\n        <button onclick=\"showHostButtons('artistic-entertainment')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-rl; background:transparent;\">Entertainment<\/button>\r\n        <button onclick=\"showHostButtons('artistic-vip')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid beige; color:white; writing-mode:vertical-lr; background:transparent;\">VIP<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:beige; font-size:16px; font-weight:bold;\">Artistic<\/div>\r\n          <img decoding=\"async\" src=\"https:\/\/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;\" alt=\"\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- LEFT (Mystery) -->\r\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;\">\r\n        <button onclick=\"showHostButtons('mystery-accommodations')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Accommodations<\/button>\r\n        <button onclick=\"showHostButtons('mystery-restaurants')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid #00ccff; color:white; background:transparent;\">Restaurants<\/button>\r\n        <button onclick=\"showHostButtons('mystery-entertainment')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-rl; background:transparent;\">Entertainment<\/button>\r\n        <button onclick=\"showHostButtons('mystery-vip')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid #00ccff; color:white; writing-mode:vertical-lr; background:transparent;\">VIP<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:#00ccff; font-size:16px; font-weight:bold;\">Mystery<\/div>\r\n          <img decoding=\"async\" src=\"https:\/\/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;\" alt=\"\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- TOP (Organized) -->\r\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;\">\r\n        <button onclick=\"showHostButtons('organized-accommodations')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Accommodations<\/button>\r\n        <button onclick=\"showHostButtons('organized-restaurants')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid green; color:white; background:transparent;\">Restaurants<\/button>\r\n        <button onclick=\"showHostButtons('organized-entertainment')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-rl; background:transparent;\">Entertainment<\/button>\r\n        <button onclick=\"showHostButtons('organized-vip')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid green; color:white; writing-mode:vertical-lr; background:transparent;\">VIP<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:#33ff33; font-size:16px; font-weight:bold;\">Organized<\/div>\r\n          <img decoding=\"async\" src=\"https:\/\/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;\" alt=\"\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- BOTTOM (Luxury) -->\r\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;\">\r\n        <button onclick=\"showHostButtons('luxury-accommodations')\" style=\"position:absolute; top:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Accommodations<\/button>\r\n        <button onclick=\"showHostButtons('luxury-restaurants')\" style=\"position:absolute; bottom:8px; left:27px; width:126px; height:17px; border:1px solid red; color:white; background:transparent;\">Restaurants<\/button>\r\n        <button onclick=\"showHostButtons('luxury-entertainment')\" style=\"position:absolute; top:27px; left:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-rl; background:transparent;\">Entertainment<\/button>\r\n        <button onclick=\"showHostButtons('luxury-vip')\" style=\"position:absolute; top:27px; right:8px; height:126px; width:17px; border:1px solid red; color:white; writing-mode:vertical-lr; background:transparent;\">VIP<\/button>\r\n        <div style=\"position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); text-align:center;\">\r\n          <div style=\"color:red; font-size:16px; font-weight:bold;\">Luxury<\/div>\r\n          <img decoding=\"async\" src=\"https:\/\/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;\" alt=\"\">\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- MAPA CIRCULAR -->\r\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;\">\r\n    <div id=\"googleMap\" style=\"width:100%; height:100%;\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Google Maps API -->\r\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDLPhx98z9AgoqXS6VeoESE9NV6URuOhiE&#038;callback=initMap\" async defer><\/script>\r\n\r\n<script>\r\n  function initMap() {\r\n    const location = { lat: 6.2333, lng: -75.5905 };\r\n    window.ggMap = new google.maps.Map(document.getElementById(\"googleMap\"), {\r\n      zoom: 12,\r\n      center: location,\r\n      disableDefaultUI: true\r\n    });\r\n    new google.maps.Marker({ position: location, map: window.ggMap });\r\n  }\r\n  function focusOnHost(lat, lng) {\r\n    if (window.ggMap) {\r\n      const newCenter = new google.maps.LatLng(lat, lng);\r\n      window.ggMap.setCenter(newCenter);\r\n      new google.maps.Marker({ position: newCenter, map: window.ggMap });\r\n    } else {\r\n      console.log(\"Google Map not ready yet.\");\r\n    }\r\n  }\r\n<\/script>\r\n\r\n<!-- Activaci\u00f3n Virgo + tutorial trigger -->\r\n<script>\r\n  function activateVirgoCube() {\r\n    const zs = document.getElementById(\"zodiacSelector\");\r\n    if (zs) { zs.style.opacity = \"0\"; zs.style.pointerEvents = \"none\"; }\r\n\r\n    const virgo = document.getElementById(\"virgoCubeContainer\");\r\n    const map  = document.getElementById(\"glowMapContainer\");\r\n    const swipe = document.getElementById(\"swipeImage\");\r\n\r\n    if (virgo) { virgo.style.opacity = \"1\"; virgo.style.pointerEvents = \"auto\"; }\r\n    if (map)   { map.style.opacity = \"1\";   map.style.pointerEvents = \"auto\"; }\r\n\r\n    if (swipe) {\r\n      swipe.style.display = \"block\";\r\n      setTimeout(() => { swipe.style.display = \"none\"; }, 3500);\r\n    }\r\n\r\n    \/\/ Open Virgo tutorial 2s after activation\r\n    if (window.__virgoTutorTimer) clearTimeout(window.__virgoTutorTimer);\r\n    window.__virgoTutorTimer = setTimeout(() => {\r\n      if (window.VirgoTutor) VirgoTutor.open(0);\r\n    }, 2000);\r\n  }\r\n  \/\/ aliases for older calls\r\n  function activatevirgoCube(){ activateVirgoCube(); }\r\n  function activatevirgoCUBE(){ activateVirgoCube(); }\r\n<\/script>\r\n\r\n<!-- ===== Virgo Cube Help Tutorial (scoped) ===== -->\r\n<style>\r\n  #virgoTutor { position:fixed; inset:0; display:none; place-items:center; z-index:9999; }\r\n  #virgoTutor.is-open { display:grid; }\r\n  #virgoTutor .ct-overlay {\r\n    position:absolute; inset:0;\r\n    background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.65));\r\n    backdrop-filter:blur(2px);\r\n  }\r\n  #virgoTutor .ct-card{\r\n    position:relative; width:min(720px,96vw); padding:16px; border-radius:16px;\r\n    background:rgba(10,14,22,.78); color:#e9f8ff; border:1px solid rgba(0,255,255,.28);\r\n    box-shadow:0 8px 28px rgba(0,255,255,.25), inset 0 0 28px rgba(255,255,255,.05);\r\n    backdrop-filter:blur(10px) saturate(130%);\r\n  }\r\n  #virgoTutor .ct-top   { font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#9fe7ff; opacity:.9; margin-bottom:6px; }\r\n  #virgoTutor .ct-title { margin:0 0 6px; font:700 20px\/1.2 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }\r\n  #virgoTutor .ct-desc  { margin:0 8px 10px 0; font:15px\/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; color:#d9f0ff; }\r\n  #virgoTutor .ct-media { margin:8px 0 10px; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:#0b111a; }\r\n  #virgoTutor .ct-media img { display:block; width:100%; height:280px; object-fit:contain; background:#0b111a; }\r\n  @media (min-width: 768px){ #virgoTutor .ct-media img { height:340px; } }\r\n  #virgoTutor .ct-actions{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }\r\n  #virgoTutor .ct-left{ display:flex; gap:8px; align-items:center; }\r\n  #virgoTutor .ct-right{ display:flex; gap:8px; align-items:center; }\r\n  #virgoTutor .ct-btn{\r\n    appearance:none; border:1px solid rgba(0,255,255,.35); background:rgba(0,255,255,.08);\r\n    color:#cfffff; padding:9px 12px; border-radius:12px; cursor:pointer; font-size:14px;\r\n  }\r\n  #virgoTutor .ct-btn[disabled]{ opacity:.4; pointer-events:none; }\r\n  #virgoTutor .ct-close{\r\n    position:absolute; top:8px; right:10px; width:34px; height:34px; border-radius:10px;\r\n    border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.06); color:#fff;\r\n    font-size:18px; display:grid; place-items:center; cursor:pointer;\r\n  }\r\n  #virgoTutor .ct-close:hover{ background:rgba(255,255,255,.10); }\r\n  #virgoTutor .ct-progress{ font-size:12px; opacity:.75; }\r\n<\/style>\r\n\r\n<div id=\"virgoTutor\" aria-hidden=\"true\">\r\n  <div class=\"ct-overlay\" onclick=\"VirgoTutor.close()\"><\/div>\r\n  <div class=\"ct-card\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"virTTitle\" aria-describedby=\"virTDesc\">\r\n    <button class=\"ct-close\" type=\"button\" aria-label=\"Close\" onclick=\"VirgoTutor.close()\">\u00d7<\/button>\r\n\r\n    <div class=\"ct-top\" id=\"virTTop\">How it works<\/div>\r\n    <h3 class=\"ct-title\" id=\"virTTitle\">Rotate the Cube<\/h3>\r\n    <p class=\"ct-desc\" id=\"virTDesc\">Drag with one finger (touch) or click-and-drag (mouse) to rotate. Swipe for a quick spin.<\/p>\r\n\r\n    <div class=\"ct-media\"><img decoding=\"async\" id=\"virTImg\" src=\"\" alt=\"\"><\/div>\r\n\r\n    <div class=\"ct-actions\">\r\n      <div class=\"ct-left\">\r\n        <button id=\"virTPrev\" class=\"ct-btn\" type=\"button\">\u2190 Prev<\/button>\r\n        <span id=\"virTProg\" class=\"ct-progress\">1 \/ 7<\/span>\r\n      <\/div>\r\n      <div class=\"ct-right\">\r\n        <button id=\"virTSkip\" class=\"ct-btn\" type=\"button\">Skip<\/button>\r\n        <button id=\"virTNext\" class=\"ct-btn\" type=\"button\">Next \u2192<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Bot\u00f3n Replay (Virgo) -->\r\n<button id=\"virgoReplay\" type=\"button\" title=\"Open tutorial\">Tutorial<\/button>\r\n\r\n<script>\r\n(function(){\r\n  \/* Timing \u2014 adjust as needed *\/\r\n  const OPEN_AFTER_MS   = -1; \/\/ open 2s after page load (safety if user lands directly on Virgo)\r\n  const REPLAY_AFTER_MS = -1;    \/\/ 0 = show replay button immediately\r\n  const AUTO_CLOSE_MS   = 0;    \/\/ 0 = no auto-advance; set e.g. 5000 for 5s per step\r\n\r\n  \/* Images (same set) *\/\r\n  const IMG_MOVE        = \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/Screenshot_20250907_233457_Chrome.jpg\";\r\n  const IMG_FOUR_SIDES  = \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/Screenshot_20250907_233921_Chrome.jpg\";\r\n  const IMG_OPEN_PLACE  = \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/20250715_202059-scaled.jpg\";\r\n  const IMG_DOUBLE_TAP  = \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/20250715_202156-scaled.jpg\";\r\n  const IMG_FAVORITES   = \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/20250715_202221-scaled.jpg\";\r\n  const IMG_BACK_ACTION = \"https:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/09\/Screenshot_20250907_234036_Chrome.jpg\";\r\n\r\n  const steps = [\r\n    { top:\"How it works\", title:\"Rotate the Cube\",        desc:\"Drag with one finger (touch) or click-and-drag (mouse) to rotate. Swipe for a quick spin.\", img: IMG_MOVE },\r\n    { top:\"Explore\",      title:\"Open the Four Sides\",    desc:\"Each face has four options. Tap any option to explore nearby places and services.\",          img: IMG_FOUR_SIDES },\r\n    { top:\"Map\",          title:\"Open a Place\",           desc:\"Tap a circle on the map to view details, photos, and available actions.\",                  img: IMG_OPEN_PLACE },\r\n    { top:\"Favorites\",    title:\"Save with a Double-Tap\", desc:\"Double-tap any circle to add it to Favorites. A star confirms it\u2019s saved.\",                 img: IMG_DOUBLE_TAP },\r\n    { top:\"Favorites\",    title:\"View Your Favorites\",    desc:\"Tap the Favorites (\u2605) button to see all saved places in one list.\",                        img: IMG_FAVORITES },\r\n    { top:\"Review\",       title:\"Back of the Cube\",       desc:\"Keep the favorite selected and use action buttons to get directions, call, share, or book.\", img: IMG_BACK_ACTION },\r\n    { top:\"Tips\",         title:\"Close or Skip\",          desc:\"Use the \u00d7 at top-right or the Skip button to close this tutorial at any time.\",            img: IMG_BACK_ACTION }\r\n  ];\r\n\r\n  \/\/ Preload images\r\n  steps.forEach(s => { if (s.img) { const im = new Image(); im.src = s.img; } });\r\n\r\n  const root   = document.getElementById('virgoTutor');\r\n  const title  = root.querySelector('#virTTitle');\r\n  const desc   = root.querySelector('#virTDesc');\r\n  const topEl  = root.querySelector('#virTTop');\r\n  const prev   = root.querySelector('#virTPrev');\r\n  const next   = root.querySelector('#virTNext');\r\n  const skip   = root.querySelector('#virTSkip');\r\n  const prog   = root.querySelector('#virTProg');\r\n  const imgEl  = root.querySelector('#virTImg');\r\n  const media  = root.querySelector('.ct-media');\r\n  const replay = document.getElementById('virgoReplay');\r\n\r\n  let i = 0, autoTimer = null, armed = false;\r\n\r\n  function render(){\r\n    const s = steps[i];\r\n    topEl.textContent   = s.top;\r\n    title.textContent   = s.title;\r\n    desc.textContent    = s.desc;\r\n    prog.textContent    = (i+1) + \" \/ \" + steps.length;\r\n    prev.disabled       = (i === 0);\r\n    next.textContent    = (i === steps.length - 1) ? 'Finish' : 'Next \u2192';\r\n\r\n    if (s.img) {\r\n      media.style.display = 'block';\r\n      imgEl.src = s.img;\r\n      imgEl.alt = s.title;\r\n      imgEl.loading = 'eager';\r\n      imgEl.decoding = 'async';\r\n    } else {\r\n      media.style.display = 'none';\r\n      imgEl.removeAttribute('src');\r\n      imgEl.alt = '';\r\n    }\r\n\r\n    if (AUTO_CLOSE_MS > 0) {\r\n      clearTimeout(autoTimer);\r\n      autoTimer = setTimeout(() => {\r\n        if (i < steps.length - 1) { i++; render(); } else { VirgoTutor.close(); }\r\n      }, AUTO_CLOSE_MS);\r\n    }\r\n  }\r\n\r\n  const VirgoTutor = {\r\n    open(idx=0){\r\n      i = Math.max(0, Math.min(idx, steps.length - 1));\r\n      render();\r\n      root.classList.add('is-open');\r\n      root.setAttribute('aria-hidden','false');\r\n    },\r\n    close(){\r\n      root.classList.remove('is-open');\r\n      root.setAttribute('aria-hidden','true');\r\n      clearTimeout(autoTimer);\r\n    },\r\n    next(){ if (i < steps.length - 1) { i++; render(); } else { VirgoTutor.close(); } },\r\n    prev(){ if (i > 0) { i--; render(); } }\r\n  };\r\n  window.VirgoTutor = VirgoTutor;\r\n\r\n  \/\/ Controls\r\n  prev.addEventListener('click', VirgoTutor.prev);\r\n  next.addEventListener('click', VirgoTutor.next);\r\n  skip.addEventListener('click', VirgoTutor.close);\r\n  root.querySelector('.ct-overlay').addEventListener('click', VirgoTutor.close);\r\n  document.addEventListener('keydown', (e)=>{ if (e.key === 'Escape') VirgoTutor.close(); });\r\n\r\n  \/\/ Auto-open on load (in case user lands directly on Virgo page)\r\n  function boot(){\r\n    if (armed) return; armed = true;\r\n    if (OPEN_AFTER_MS >= 0) {\r\n  setTimeout(() => { CubeTutor.open(0); }, OPEN_AFTER_MS);\r\n}\r\n\r\nif (REPLAY_AFTER_MS >= 0) {\r\n  setTimeout(() => { replay.classList.add('show'); }, REPLAY_AFTER_MS);\r\n}\r\n\r\n    replay.addEventListener('click', () => VirgoTutor.open(0));\r\n  }\r\n  if (document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', boot); }\r\n  else { boot(); }\r\n\r\n  \/\/ Close tutorial if user interacts with cube\/map\r\n  document.addEventListener('click', (e) => {\r\n    if (e.target.closest('.cube') || e.target.closest('#googleMap')) {\r\n      VirgoTutor.close();\r\n    }\r\n  });\r\n})();\r\n<\/script>\r\n\r\n\r\n\r\n<!-- =========================================================\r\nGGG BLOCK 3 \u2014 UNIVERSAL\r\nONLY CHANGE:\r\n1. PAGE_KEY\r\n2. CUBE_ID\r\n========================================================= -->\r\n\r\n<style>\r\n#floatingButtons {\r\nposition: fixed;\r\ntop: 14px;\r\nright: 14px;\r\ndisplay: flex;\r\nflex-direction: row;\r\ngap: 10px;\r\nz-index: 3000;\r\n}\r\n\r\n#favoritesBtn, #signinBtn {\r\nfont-size: 15px;\r\npadding: 6px 10px;\r\nborder-radius: 8px;\r\nborder: 2px solid white;\r\ncolor: white;\r\nbackground: rgba(0, 0, 0, 0.6);\r\ncursor: pointer;\r\nbox-shadow: 0 0 8px cyan;\r\nfont-family: Orbitron, system-ui, sans-serif;\r\n}\r\n\r\n#pyramidBtn {\r\nwidth: 38px;\r\nheight: 38px;\r\nbackground-color: black;\r\nborder: 2px solid white;\r\nborder-radius: 50%;\r\nbox-shadow: 0 0 10px cyan;\r\ndisplay: flex;\r\njustify-content: center;\r\nalign-items: center;\r\nfont-size: 20px;\r\ncursor: pointer;\r\nmargin-top: 2px;\r\n}\r\n\r\n#favoritesPanel {\r\nposition: fixed;\r\ntop: 64px;\r\nright: 14px;\r\nwidth: min(92vw, 340px);\r\nmax-height: 68vh;\r\noverflow-y: auto;\r\ndisplay: none;\r\nz-index: 3200;\r\nborder-radius: 18px;\r\npadding: 12px;\r\nbackground: linear-gradient(180deg, rgba(8,12,24,.96), rgba(4,7,18,.98));\r\nborder: 1px solid rgba(255,255,255,.12);\r\nbox-shadow: 0 0 20px rgba(0,255,255,.18), 0 0 60px rgba(0,0,0,.45);\r\ncolor: #fff;\r\nfont-family: Orbitron, system-ui, sans-serif;\r\n}\r\n\r\n#favoritesPanel.show { display: block; }\r\n\r\n.favorites-header {\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: space-between;\r\ngap: 10px;\r\nmargin-bottom: 10px;\r\n}\r\n\r\n.favorites-title {\r\nfont-size: 12px;\r\nletter-spacing: .14em;\r\ntext-transform: uppercase;\r\ncolor: rgba(255,255,255,.85);\r\n}\r\n\r\n.favorites-close,\r\n.favorites-action-btn,\r\n.favorite-btn {\r\nborder: 1px solid rgba(0,255,255,.35);\r\nbackground: rgba(0,255,255,.08);\r\ncolor: #fff;\r\nborder-radius: 999px;\r\npadding: 8px 10px;\r\ncursor: pointer;\r\nfont-size: 11px;\r\ntext-transform: uppercase;\r\nfont-family: inherit;\r\n}\r\n\r\n.favorites-actions {\r\ndisplay: flex;\r\ngap: 8px;\r\nmargin-bottom: 12px;\r\nflex-wrap: wrap;\r\n}\r\n\r\n.favorites-empty {\r\nfont-size: 12px;\r\ncolor: rgba(255,255,255,.72);\r\nline-height: 1.6;\r\n}\r\n\r\n.favorite-card {\r\ndisplay: grid;\r\ngrid-template-columns: 58px 1fr;\r\ngap: 10px;\r\nalign-items: center;\r\npadding: 10px;\r\nborder-radius: 14px;\r\nmargin-bottom: 10px;\r\nbackground: rgba(255,255,255,.04);\r\nborder: 1px solid rgba(255,255,255,.08);\r\n}\r\n\r\n.favorite-thumb {\r\nwidth: 58px;\r\nheight: 58px;\r\nborder-radius: 50%;\r\nbackground-size: cover;\r\nbackground-position: center;\r\nborder: 2px solid rgba(255,255,255,.8);\r\nbox-shadow: 0 0 12px cyan;\r\n}\r\n\r\n.favorite-name {\r\nfont-size: 11px;\r\nline-height: 1.35;\r\nword-break: break-word;\r\ncolor: #fff;\r\n}\r\n\r\n.favorite-meta {\r\nmargin-top: 4px;\r\nfont-size: 10px;\r\ncolor: rgba(255,255,255,.64);\r\ntext-transform: uppercase;\r\nletter-spacing: .08em;\r\n}\r\n\r\n.favorite-row {\r\ndisplay: flex;\r\ngap: 8px;\r\nmargin-top: 8px;\r\nflex-wrap: wrap;\r\n}\r\n\r\n.glow-pulse {\r\nanimation: gggPulseGlow 1.2s infinite ease-in-out;\r\n}\r\n\r\n@keyframes gggPulseGlow {\r\n0%, 100% {\r\nbox-shadow: 0 0 12px rgba(0,255,255,0.45), 0 0 22px rgba(0,255,255,0.20);\r\n}\r\n50% {\r\nbox-shadow: 0 0 24px rgba(0,255,255,1), 0 0 44px rgba(0,255,255,0.75);\r\n}\r\n}\r\n<\/style>\r\n\r\n<div id=\"floatingButtons\">\r\n<button id=\"pyramidBtn\" title=\"Back to MedaYork Pyramid\" onclick=\"window.location.href='https:\/\/godsgalaxygame.com\/GGG\/medayork-pyramid-2\/';\">\ud83e\uddca<\/button>\r\n<button id=\"favoritesBtn\">\ud83d\udc96<\/button>\r\n<button id=\"signinBtn\">Sign In \/ Sign Up<\/button>\r\n<\/div>\r\n\r\n<div id=\"favoritesPanel\">\r\n<div class=\"favorites-header\">\r\n<div class=\"favorites-title\">My Favorites<\/div>\r\n<button class=\"favorites-close\" type=\"button\" onclick=\"gggCloseFavoritesPanel()\">Close<\/button>\r\n<\/div>\r\n\r\n<div class=\"favorites-actions\">\r\n<button class=\"favorites-action-btn\" type=\"button\" onclick=\"gggShowCurrentPageFavorites()\">Show on Map<\/button>\r\n<button class=\"favorites-action-btn\" type=\"button\" onclick=\"gggClearFavoritesWithConfirm()\">Clear All<\/button>\r\n<\/div>\r\n\r\n<div id=\"favoritesPanelContent\" class=\"favorites-empty\">No favorites saved yet.<\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst PAGE_KEY = \"virgo\";\r\nconst CUBE_ID = \"virgoCube\";\r\nconst AJAX_URL = \"\/GGG\/wp-admin\/admin-ajax.php\";\r\nconst ACCOUNT_URL = \"https:\/\/godsgalaxygame.com\/account\/\";\r\nconst LOGIN_URL = \"https:\/\/godsgalaxygame.com\/login\/\";\r\n\r\nlet isDragging = false, startX, startY, rotateX = 0, rotateY = 10;\r\nlet autoRotate = true;\r\nlet autoRotateFrame = null;\r\n\r\nconst cube = document.getElementById(CUBE_ID);\r\nconst cubeContainer = document.querySelector('.cube-scene');\r\n\r\nfunction updateRotation(x, y) {\r\nif (!cube) return;\r\ncube.style.transform = `rotateX(${x}deg) rotateY(${y}deg)`;\r\n}\r\n\r\nfunction startAutoRotate() {\r\nstopAutoRotate();\r\nautoRotate = true;\r\n\r\nfunction animate() {\r\nif (!autoRotate) return;\r\nrotateY -= 0.4;\r\nupdateRotation(rotateX, rotateY);\r\nautoRotateFrame = requestAnimationFrame(animate);\r\n}\r\n\r\nanimate();\r\n}\r\n\r\nfunction stopAutoRotate() {\r\nautoRotate = false;\r\nif (autoRotateFrame) {\r\ncancelAnimationFrame(autoRotateFrame);\r\nautoRotateFrame = null;\r\n}\r\n}\r\n\r\nfunction onMouseDown(e) {\r\nstopGuidePulse();\r\nstopAutoRotate();\r\nisDragging = true;\r\nstartX = e.clientX;\r\nstartY = e.clientY;\r\n}\r\n\r\nfunction onMouseMove(e) {\r\nif (!isDragging) return;\r\nconst deltaX = e.clientX - startX;\r\nconst deltaY = e.clientY - startY;\r\nrotateY += deltaX * 0.5;\r\nrotateX -= deltaY * 0.5;\r\nupdateRotation(rotateX, rotateY);\r\nstartX = e.clientX;\r\nstartY = e.clientY;\r\n}\r\n\r\nfunction onMouseUp() {\r\nisDragging = false;\r\n}\r\n\r\nfunction onTouchStart(e) {\r\nstopGuidePulse();\r\nstopAutoRotate();\r\nisDragging = true;\r\nstartX = e.touches[0].clientX;\r\nstartY = e.touches[0].clientY;\r\n}\r\n\r\nfunction onTouchMove(e) {\r\nif (!isDragging) return;\r\nconst deltaX = e.touches[0].clientX - startX;\r\nconst deltaY = e.touches[0].clientY - startY;\r\nrotateY += deltaX * 0.5;\r\nrotateX -= deltaY * 0.5;\r\nupdateRotation(rotateX, rotateY);\r\nstartX = e.touches[0].clientX;\r\nstartY = e.touches[0].clientY;\r\n}\r\n\r\nfunction onTouchEnd() {\r\nisDragging = false;\r\n}\r\n\r\nif (cubeContainer && cube) {\r\nupdateRotation(rotateX, rotateY);\r\nstartAutoRotate();\r\n\r\ncubeContainer.addEventListener('mousedown', onMouseDown);\r\nwindow.addEventListener('mousemove', onMouseMove);\r\nwindow.addEventListener('mouseup', onMouseUp);\r\n\r\ncubeContainer.addEventListener('touchstart', onTouchStart, { passive: true });\r\nwindow.addEventListener('touchmove', onTouchMove, { passive: true });\r\nwindow.addEventListener('touchend', onTouchEnd);\r\n}\r\n\r\nlet gggUserStatus = {\r\nlogged_in: false,\r\nuser_id: 0,\r\ndisplay_name: \"\",\r\nemail: \"\",\r\naccount_url: ACCOUNT_URL,\r\nlogin_url: LOGIN_URL\r\n};\r\n\r\nfunction gggUpdateSignInButton() {\r\nconst btn = document.getElementById(\"signinBtn\");\r\nif (!btn) return;\r\n\r\nif (gggUserStatus.logged_in) {\r\nbtn.textContent = \"My Account\";\r\nbtn.onclick = function () {\r\nwindow.location.href = gggUserStatus.account_url || ACCOUNT_URL;\r\n};\r\n} else {\r\nbtn.textContent = \"Sign In \/ Sign Up\";\r\nbtn.onclick = function () {\r\nwindow.location.href = gggUserStatus.login_url || LOGIN_URL;\r\n};\r\n}\r\n}\r\n\r\nfunction gggLoadUserStatus() {\r\nconst formData = new FormData();\r\nformData.append(\"action\", \"ggg_get_current_user_status\");\r\n\r\nreturn fetch(AJAX_URL, {\r\nmethod: \"POST\",\r\ncredentials: \"same-origin\",\r\nbody: formData\r\n})\r\n.then(r => r.json())\r\n.then(data => {\r\nif (data && data.success && data.data) {\r\ngggUserStatus = data.data;\r\n}\r\ngggUpdateSignInButton();\r\n})\r\n.catch(() => {\r\ngggUpdateSignInButton();\r\n});\r\n}\r\n\r\nfunction clearGuideGlow() {\r\ndocument.querySelectorAll('.glow-pulse').forEach(el => {\r\nel.classList.remove('glow-pulse');\r\n});\r\n}\r\n\r\nfunction stopGuidePulse() {\r\nclearGuideGlow();\r\n}\r\n\r\nfunction startGuidePulse() {\r\n[\r\ndocument.getElementById('hostWebsiteBtn'),\r\ndocument.getElementById('reserveBtn'),\r\ndocument.getElementById('hostBtn'),\r\ndocument.getElementById('couponBtn')\r\n].forEach(btn => {\r\nif (btn) btn.classList.add('glow-pulse');\r\n});\r\n}\r\n\r\nwindow.addEventListener('load', startGuidePulse);\r\n\r\nlet favorites = [];\r\n\r\nfunction gggUpdateFavoritesButton() {\r\nconst btn = document.getElementById(\"favoritesBtn\");\r\nif (!btn) return;\r\nbtn.textContent = favorites.length > 0 ? \"\ud83d\udc98\" : \"\ud83d\udc96\";\r\n}\r\n\r\nfunction gggLoadFavorites() {\r\nconst formData = new FormData();\r\nformData.append(\"action\", \"ggg_get_favorites\");\r\n\r\nreturn fetch(AJAX_URL, {\r\nmethod: \"POST\",\r\ncredentials: \"same-origin\",\r\nbody: formData\r\n})\r\n.then(r => r.json())\r\n.then(data => {\r\nfavorites = data && data.success && data.data && Array.isArray(data.data.favorites)\r\n? data.data.favorites\r\n: [];\r\ngggUpdateFavoritesButton();\r\ngggRenderFavoritesPanel();\r\n})\r\n.catch(() => {\r\nfavorites = [];\r\ngggUpdateFavoritesButton();\r\ngggRenderFavoritesPanel();\r\n});\r\n}\r\n\r\nfunction gggRenderFavoritesPanel() {\r\nconst panelContent = document.getElementById(\"favoritesPanelContent\");\r\nif (!panelContent) return;\r\n\r\nif (!favorites.length) {\r\npanelContent.innerHTML = `<div class=\"favorites-empty\">No favorites saved yet.<\/div>`;\r\nreturn;\r\n}\r\n\r\npanelContent.innerHTML = favorites.map(fav => {\r\nconst title = fav.id ? String(fav.id).replace(\/-\/g, ' ') : 'Favorite';\r\nconst pageLabel = fav.pageKey ? String(fav.pageKey).toUpperCase() : 'PAGE';\r\n\r\nreturn `\r\n<div class=\"favorite-card\">\r\n<div class=\"favorite-thumb\" style=\"background-image:url('${fav.imgUrl || ''}')\"><\/div>\r\n<div class=\"favorite-info\">\r\n<div class=\"favorite-name\">${title}<\/div>\r\n<div class=\"favorite-meta\">${pageLabel}<\/div>\r\n<div class=\"favorite-row\">\r\n${fav.pageKey === PAGE_KEY ? `<button class=\"favorite-btn\" type=\"button\" onclick=\"gggFocusFavoriteOnPage('${fav.id}')\">Show<\/button>` : ``}\r\n${(fav.lat && fav.lng) ? `<button class=\"favorite-btn\" type=\"button\" onclick=\"focusOnHost(${parseFloat(fav.lat)}, ${parseFloat(fav.lng)})\">Map<\/button>` : ``}\r\n<button class=\"favorite-btn\" type=\"button\" onclick=\"gggRemoveFavoriteById('${fav.id}')\">Remove<\/button>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n`;\r\n}).join('');\r\n}\r\n\r\nfunction gggOpenFavoritesPanel() {\r\nconst panel = document.getElementById(\"favoritesPanel\");\r\nif (!panel) return;\r\npanel.classList.add(\"show\");\r\n}\r\n\r\nfunction gggCloseFavoritesPanel() {\r\nconst panel = document.getElementById(\"favoritesPanel\");\r\nif (!panel) return;\r\npanel.classList.remove(\"show\");\r\n}\r\n\r\nfunction gggShowCurrentPageFavorites() {\r\nconst currentPageFavorites = favorites.filter(f => f.pageKey === PAGE_KEY);\r\nif (!currentPageFavorites.length) return;\r\n\r\ndocument.querySelectorAll('.host-circle').forEach(btn => btn.style.display = 'none');\r\n\r\ncurrentPageFavorites.forEach(fav => {\r\nconst matches = document.querySelectorAll(`.${fav.id}`);\r\nmatches.forEach(el => el.style.display = 'inline-block');\r\n});\r\n\r\ngggCloseFavoritesPanel();\r\n}\r\n\r\nfunction gggFocusFavoriteOnPage(id) {\r\ndocument.querySelectorAll('.host-circle').forEach(btn => btn.style.display = 'none');\r\n\r\nconst matches = document.querySelectorAll(`.${id}`);\r\nmatches.forEach(el => el.style.display = 'inline-block');\r\n\r\ngggCloseFavoritesPanel();\r\n}\r\n\r\nfunction toggleFavorite(id, imgUrl, mapLat, mapLng) {\r\nif (!gggUserStatus.logged_in) {\r\nalert(\"Please sign in first to save favorites.\");\r\nwindow.location.href = gggUserStatus.login_url || LOGIN_URL;\r\nreturn;\r\n}\r\n\r\nconst alreadySaved = favorites.some(f => f.id === id);\r\n\r\nif (alreadySaved) {\r\nreturn gggRemoveFavoriteById(id);\r\n}\r\n\r\nconst formData = new FormData();\r\nformData.append(\"action\", \"ggg_add_favorite\");\r\nformData.append(\"id\", id);\r\nformData.append(\"imgUrl\", imgUrl || \"\");\r\nformData.append(\"mapLat\", mapLat || \"\");\r\nformData.append(\"mapLng\", mapLng || \"\");\r\nformData.append(\"pageKey\", PAGE_KEY);\r\n\r\nfetch(AJAX_URL, {\r\nmethod: \"POST\",\r\ncredentials: \"same-origin\",\r\nbody: formData\r\n})\r\n.then(r => r.json())\r\n.then(data => {\r\nif (data && data.success && data.data) {\r\nfavorites = Array.isArray(data.data.favorites) ? data.data.favorites : [];\r\ngggUpdateFavoritesButton();\r\ngggRenderFavoritesPanel();\r\n}\r\n});\r\n}\r\n\r\nfunction gggRemoveFavoriteById(id) {\r\nif (!gggUserStatus.logged_in) return;\r\n\r\nconst formData = new FormData();\r\nformData.append(\"action\", \"ggg_remove_favorite\");\r\nformData.append(\"id\", id);\r\n\r\nfetch(AJAX_URL, {\r\nmethod: \"POST\",\r\ncredentials: \"same-origin\",\r\nbody: formData\r\n})\r\n.then(r => r.json())\r\n.then(data => {\r\nif (data && data.success && data.data) {\r\nfavorites = Array.isArray(data.data.favorites) ? data.data.favorites : [];\r\ngggUpdateFavoritesButton();\r\ngggRenderFavoritesPanel();\r\n}\r\n});\r\n}\r\n\r\nfunction clearFavorites() {\r\nif (!gggUserStatus.logged_in) return;\r\n\r\nconst formData = new FormData();\r\nformData.append(\"action\", \"ggg_clear_favorites\");\r\n\r\nfetch(AJAX_URL, {\r\nmethod: \"POST\",\r\ncredentials: \"same-origin\",\r\nbody: formData\r\n})\r\n.then(r => r.json())\r\n.then(data => {\r\nif (data && data.success && data.data) {\r\nfavorites = Array.isArray(data.data.favorites) ? data.data.favorites : [];\r\ngggUpdateFavoritesButton();\r\ngggRenderFavoritesPanel();\r\n}\r\n});\r\n}\r\n\r\nfunction gggClearFavoritesWithConfirm() {\r\nif (!favorites.length) return;\r\nconst ok = confirm(\"Clear all saved favorites?\");\r\nif (!ok) return;\r\nclearFavorites();\r\n}\r\n\r\nfunction focusOnHost(lat, lng) {\r\nif (window.ggMap) {\r\nwindow.ggMap.setCenter({ lat, lng });\r\nwindow.ggMap.setZoom(15);\r\nnew google.maps.Marker({ position: { lat, lng }, map: window.ggMap });\r\n}\r\n}\r\n\r\nconst favoritesBtn = document.getElementById(\"favoritesBtn\");\r\nif (favoritesBtn) {\r\nfavoritesBtn.addEventListener(\"click\", gggOpenFavoritesPanel);\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\nPromise.all([\r\ngggLoadUserStatus(),\r\ngggLoadFavorites()\r\n]).then(() => {\r\ngggUpdateSignInButton();\r\ngggUpdateFavoritesButton();\r\ngggRenderFavoritesPanel();\r\n});\r\n});\r\n<\/script>\r\n\r\n\r\n\r\n<style>\r\n  #hostButtons {\r\n    display: none;\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    width: 100%;\r\n    max-width: 500px;\r\n    height: 500px;\r\n    pointer-events: none;\r\n    z-index: 2000;\r\n  }\r\n\r\n  .host-circle {\r\n    width: 80px;\r\n    height: 80px;\r\n    border-radius: 50%;\r\n    border: 2px solid white;\r\n    background-size: cover;\r\n    background-position: center;\r\n    cursor: pointer;\r\n    box-shadow: 0 0 14px white;\r\n    position: absolute;\r\n    pointer-events: all;\r\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\r\n  }\r\n\r\n  .host-circle:hover {\r\n    transform: scale(1.15);\r\n    box-shadow: 0 0 20px cyan;\r\n  }\r\n\r\n  .accommodations { top: 0%; left: 10%; }\r\n  .restaurants    { top: 71%; right: 10%; }\r\n  .entertainment  { bottom: 12%; left: 10%; }\r\n  .vip            { bottom: 84%; right: 10%; }\r\n\r\n  @media (max-width:768px){\r\n    #hostButtons{\r\n      position:relative; top:auto; left:auto; transform:none;\r\n      height:auto; margin-top:-35px;\r\n      display:none;               \/* still hidden by default *\/\r\n      flex-wrap:nowrap; justify-content:center; gap:10px;\r\n    }\r\n\r\n    .host-circle {\r\n      position: relative;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div id=\"hostButtons\">\r\n  <!-- EXOTIC -->\r\n  <button class=\"host-circle luxury-accommodations accommodations\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    onclick=\"focusOnHost(6.241632763787265, -75.22696729191163)\"\r\n    style=\"border-color:red; box-shadow:0 0 14px red; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20250713_165526_Instagram.jpg');\"\r\n    title=\"Luxury Accommodations\"><\/button>\r\n\r\n  <button class=\"host-circle luxury-restaurants restaurants\"\r\n    data-lat=\"6.2266301\" data-lng=\"-75.1831\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:red; box-shadow:0 0 14px red; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Luxury Restaurants\"><\/button>\r\n\r\n  <button class=\"host-circle luxury-entertainment entertainment\"\r\n    data-lat=\"6.2266301\" data-lng=\"-75.1831\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:red; box-shadow:0 0 14px red; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Luxury Entertainment\"><\/button>\r\n\r\n  <button class=\"host-circle luxury-vip vip\"\r\n    data-lat=\"6.2442602\" data-lng=\"-75.217632\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:red; box-shadow:0 0 14px red; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Luxury VIP\"><\/button>\r\n\r\n  <!-- ROMANTIC -->\r\n  <button class=\"host-circle artistic-accommodations accommodations\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    onclick=\"focusOnHost(6.241632763787265, -75.22696729191163)\"\r\n    style=\"border-color:beige; box-shadow:0 0 14px beige; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20250713_165526_Instagram.jpg');\"\r\n    title=\"Artistic Accommodations\"><\/button>\r\n\r\n  <button class=\"host-circle artistic-restaurants restaurants\"\r\n    data-lat=\"6.2288021\" data-lng=\"-75.2142911\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:beige; box-shadow:0 0 14px beige; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Artistic Restaurants\"><\/button>\r\n\r\n  <button class=\"host-circle artistic-entertainment entertainment\"\r\n    data-lat=\"6.2266301\" data-lng=\"-75.1831\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:beige; box-shadow:0 0 14px beige; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Artistic Entertainment\"><\/button>\r\n\r\n  <button class=\"host-circle artistic-vip vip\"\r\n    data-lat=\"6.2442602\" data-lng=\"-75.217632\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:beige; box-shadow:0 0 14px beige; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Artistic VIP\"><\/button>\r\n\r\n  <!-- VIEWS -->\r\n  <button class=\"host-circle mystery-accommodations accommodations\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.22951\"\r\n    onclick=\"focusOnHost(6.304606452948106, -75.21901777656907)\"\r\n    style=\"border-color:#00ccff; box-shadow:0 0 14px #00ccff; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240824_071131_Google.jpg');\"\r\n    title=\"Mystery Accommodations\"><\/button>\r\n\r\n  <button class=\"host-circle mystery-restaurants restaurants\"\r\n    data-lat=\"6.2442602\" data-lng=\"-75.217632\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:#00ccff; box-shadow:0 0 14px #00ccff; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Mystery Restaurants\"><\/button>\r\n\r\n  <button class=\"host-circle mystery-entertainment entertainment\"\r\n    data-lat=\"6.2442602\" data-lng=\"-75.217632\"\r\n    onclick=\"focusOnHost(6.260985355481761, -75.22141889006306)\"\r\n    style=\"border-color:#00ccff; box-shadow:0 0 14px #00ccff; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Mystery Entertainment\"><\/button>\r\n\r\n  <button class=\"host-circle mystery-vip vip\"\r\n    data-lat=\"6.2442602\" data-lng=\"-75.217632\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:#00ccff; box-shadow:0 0 14px #00ccff; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Mystery VIP\"><\/button>\r\n\r\n  <!-- WILD -->\r\n  <button class=\"host-circle organized-accommodations accommodations\"\r\n    data-lat=\"6.2414088\" data-lng=\"-75.2315485\"\r\n    onclick=\"focusOnHost(6.241632763787265, -75.22696729191163)\"\r\n    style=\"border-color:green; box-shadow:0 0 14px green; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20250713_165526_Instagram.jpg');\"\r\n    title=\"Organized Accommodations\"><\/button>\r\n\r\n  <button class=\"host-circle organized-restaurants restaurants\"\r\n    data-lat=\"6.2252116\" data-lng=\"-75.1800426\"\r\n    onclick=\"focusOnHost(6.200449358265824, -75.55657367342043)\"\r\n    style=\"border-color:green; box-shadow:0 0 14px green; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/1000066845.jpg');\"\r\n    title=\"Organized Restaurants\"><\/button>\r\n\r\n  <button class=\"host-circle organized-entertainment entertainment\"\r\n    data-lat=\"6.2083202\" data-lng=\"-75.5677995\"\r\n    onclick=\"focusOnHost(6.2251255734227176, -75.18024037286845)\"\r\n    style=\"border-color:green; box-shadow:0 0 14px green; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/07\/Screenshot_20250713_233817_Gallery-scaled.jpg');\"\r\n    title=\"Organized Entertainment\"><\/button>\r\n\r\n  <button class=\"host-circle organized-vip vip\"\r\n    data-lat=\"6.2442602\" data-lng=\"-75.217632\"\r\n    onclick=\"focusOnHost(6.244462832205367, -75.21510002074707)\"\r\n    style=\"border-color:green; box-shadow:0 0 14px green; background-image:url('http:\/\/godsgalaxygame.com\/GGG\/wp-content\/uploads\/2025\/06\/Screenshot_20240821_175227_Instagram.jpg');\"\r\n    title=\"Organized VIP\"><\/button>\r\n<\/div>\r\n\r\n<script>\r\n  function showHostButtons(suboption) {\r\n    document.querySelectorAll('.host-circle').forEach(el => el.style.display = 'none');\r\n    document.querySelectorAll('.' + suboption).forEach(el => el.style.display = 'inline-block');\r\n    document.getElementById('hostButtons').style.display = 'flex';\r\n  }\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    document.querySelectorAll('.host-circle').forEach(button => {\r\n      button.addEventListener('dblclick', () => {\r\n        const id = button.classList[1];\r\n        const img = button.style.backgroundImage.slice(5, -2);\r\n        const lat = parseFloat(button.dataset.lat);\r\n        const lng = parseFloat(button.dataset.lng);\r\n        toggleFavorite(id, img, lat, lng);\r\n      });\r\n    });\r\n  });\r\n<\/script>\r\n\r\n\r\n\r\n<script>\r\n  \/\/ Mapeo de ID \u00fanico \u2192 Enlace real actualizado por categor\u00eda y elemento\r\n  const hostLinks = {\r\n    \/\/ ROMANTIC - Aire\r\n    \"artistic-accommodations\": \"https:\/\/www.instagram.com\/reel\/C3_YCV7t0_Q\/?igsh=MWk2djNsYjhhYTlwag%3D%3D\",\r\n    \"artistic-restaurants\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"artistic-vip\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"artistic-entertainment\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n\r\n    \/\/ VIEWS - Agua\r\n    \"mystery-accommodations\": \"https:\/\/bethellozana.com\/\",\r\n    \"mystery-restaurants\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"mystery-vip\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"mystery-entertainment\": \"https:\/\/www.google.com\/search?client=ms-android-samsung-gn-rev1&sca_esv=6c1fb03c8061d660&hl=en-US&cs=0&sxsrf=ADLYWIJk6PTILWNaVy-1c5eYNbnUTpdshg:1723974973724&q=Marial%27s+Rock&ludocid=1780501022021258878&lsig=AB86z5Voi5wF8l_4ceYzFY6r8ot4&shndl=-1&shem=lrnolc,lsde,vslcca&source=sh\/x\/loc\/act\/m1\/4&kgs=2abccae43fbf147a#lpg=cid:CgIgAQ%3D%3D\",\r\n\r\n    \/\/ WILD - Tierra\r\n    \"organized-accommodations\": \"https:\/\/www.instagram.com\/reel\/C3_YCV7t0_Q\/?igsh=MWk2djNsYjhhYTlwag%3D%3D\",\r\n    \"organized-restaurants\": \"https:\/\/www.instagram.com\/mambanegra.22\/\",\r\n    \"organized-vip\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"organized-entertainment\": \"https:\/\/www.bing.com\/alink\/link?url=https%3a%2f%2fhelitours.com.co%2f&source=serp-local&h=2JMMERXb5hjhs0JcVZGIWyn54gZLHWOa6SQk5Wk4c8Y%3d&p=lw_lstpt&ig=2A6D343BE0AB4EBFA31412A9BC3BC699&ypid=YN8041x12846487465356114042\",\r\n\r\n    \/\/ EXOTIC - Fuego\r\n    \"luxury-accommodations\": \"https:\/\/www.instagram.com\/reel\/C3_YCV7t0_Q\/?igsh=MWk2djNsYjhhYTlwag%3D%3D\",\r\n    \"luxury-restaurants\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"luxury-vip\": \"https:\/\/www.instagram.com\/blisscluboficial\/\",\r\n    \"luxury-entertainment\": \"https:\/\/www.instagram.com\/blisscluboficial\/\"\r\n  };\r\n\r\n  \/\/ Conectar favorito con bot\u00f3n trasero\r\n  function activateHostLink(hostId) {\r\n    const btn = document.getElementById('hostWebsiteBtn');\r\n    const url = hostLinks[hostId];\r\n    if (btn && url) {\r\n      btn.href = url;\r\n      btn.style.boxShadow = '0 0 20px cyan';\r\n      setTimeout(() => btn.style.boxShadow = '0 0 10px cyan', 500);\r\n    }\r\n  }\r\n\r\n  \/\/ Al hacer clic en cualquier c\u00edrculo\r\n  document.addEventListener('click', function (e) {\r\n    if (e.target.classList.contains('host-circle')) {\r\n      const idMatch = [...e.target.classList].find(c => hostLinks[c]);\r\n      if (idMatch) activateHostLink(idMatch);\r\n    }\r\n  });\r\n\r\n  \/\/ Tooltip en desktop\r\n  document.addEventListener('mouseover', function (e) {\r\n    if (e.target.classList.contains('host-circle')) {\r\n      e.target.setAttribute('title', 'Click to activate link');\r\n    }\r\n  });\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>\u264d Virgo Accommodations Restaurants Entertainment VIP Artistic Accommodations Restaurants Entertainment VIP Mystery Accommodations Restaurants Entertainment VIP Organized Accommodations Restaurants Entertainment VIP Luxury \u00d7 How it works Rotate the Cube Drag with one finger (touch) or click-and-drag (mouse) to rotate. Swipe for a quick spin. \u2190 Prev 1 \/ 7 Skip Next \u2192 Tutorial \ud83e\uddca \ud83d\udc96 [&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-2311","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2311","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=2311"}],"version-history":[{"count":20,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2311\/revisions"}],"predecessor-version":[{"id":9351,"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/pages\/2311\/revisions\/9351"}],"wp:attachment":[{"href":"https:\/\/godsgalaxygame.com\/GGG\/wp-json\/wp\/v2\/media?parent=2311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}