{"version":3,"file":"shared-lib.tBVSw8Aa.mjs","names":[],"sources":["https:/framerusercontent.com/modules/egBU48UeDtGIelRP9SHH/RHBfJGntE31J0fh74VhD/siteMetadata.js"],"sourcesContent":["// Generated by Framer (a6932ec)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<script>\\n(function () {\\n  // === CONFIG ===\\n  const GROUPS = [\\n    {\\n      groupKey: \"lowsec\",                   // clave de \"memoria\"\\n      selectors: [\"#lowsec\", \"#lowsecBtn\"], // TODOS los elementos a revelar\\n      delayMs: 120000,                      // 120 s = 2 min\\n      scope: \"local\"                        // \"local\" o \"session\"\\n    }\\n  ];\\n\\n  const params = new URLSearchParams(location.search);\\n  const doReset = params.get(\"resetReveal\") === \"1\";\\n\\n  function storageFor(scope) {\\n    try { return scope === \"session\" ? sessionStorage : localStorage; }\\n    catch { return null; }\\n  }\\n\\n  // --- Scroll Lock Helpers ---\\n  let _lockData = null;\\n  const _wheelHandler = (e) => e.preventDefault();\\n  const _touchHandler = (e) => e.preventDefault();\\n  const _keyHandler = (e) => {\\n    // space(32), page up(33), page down(34), end(35), home(36), up(38), down(40)\\n    const blocked = [32,33,34,35,36,38,40];\\n    if (blocked.includes(e.keyCode)) e.preventDefault();\\n  };\\n\\n  function lockScroll() {\\n    if (_lockData) return; // ya estaba bloqueado\\n    const scrollY = window.scrollY || document.documentElement.scrollTop || 0;\\n    const scrollX = window.scrollX || document.documentElement.scrollLeft || 0;\\n\\n    // Compensar el ancho de la barra de scroll para evitar \"salto\" de layout\\n    const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\\n    document.documentElement.style.paddingRight = scrollbarWidth > 0 ? `${scrollbarWidth}px` : \"\";\\n\\n    // Fijar body en la posici\\xf3n actual\\n    document.documentElement.style.overflow = \"hidden\";\\n    document.body.style.position = \"fixed\";\\n    document.body.style.top = `-${scrollY}px`;\\n    document.body.style.left = `0`;\\n    document.body.style.right = `0`;\\n    document.body.style.width = \"100%\";\\n    document.body.style.height = \"100dvh\"; // estable en mobile\\n    document.body.style.touchAction = \"none\";\\n\\n    // Bloquear interacciones de scroll\\n    window.addEventListener(\"wheel\", _wheelHandler, { passive: false });\\n    window.addEventListener(\"touchmove\", _touchHandler, { passive: false });\\n    window.addEventListener(\"keydown\", _keyHandler, { passive: false });\\n\\n    _lockData = { scrollY, scrollX };\\n  }\\n\\n  function unlockScroll() {\\n    if (!_lockData) return;\\n    // Quitar estilos\\n    document.documentElement.style.overflow = \"\";\\n    document.documentElement.style.paddingRight = \"\";\\n    document.body.style.position = \"\";\\n    document.body.style.top = \"\";\\n    document.body.style.left = \"\";\\n    document.body.style.right = \"\";\\n    document.body.style.width = \"\";\\n    document.body.style.height = \"\";\\n    document.body.style.touchAction = \"\";\\n\\n    // Quitar listeners\\n    window.removeEventListener(\"wheel\", _wheelHandler, { passive: false });\\n    window.removeEventListener(\"touchmove\", _touchHandler, { passive: false });\\n    window.removeEventListener(\"keydown\", _keyHandler, { passive: false });\\n\\n    // Restaurar posici\\xf3n (normalmente 0 si bloqueaste al inicio)\\n    window.scrollTo(_lockData.scrollX || 0, _lockData.scrollY || 0);\\n    _lockData = null;\\n  }\\n\\n  // --- Reveal Helpers ---\\n  function hide(el) {\\n    el.style.opacity = \"0\";\\n    el.style.visibility = \"hidden\";\\n    el.style.pointerEvents = \"none\";\\n  }\\n  function show(el) {\\n    el.style.opacity = \"\";\\n    el.style.visibility = \"\";\\n    el.style.pointerEvents = \"\";\\n  }\\n\\n  function setupGroup({ groupKey, selectors, delayMs, scope }) {\\n    const store = storageFor(scope || \"local\");\\n    const key = \"reveal-group:\" + groupKey;\\n\\n    if (doReset && store) store.removeItem(key);\\n    const already = store && store.getItem(key) === \"1\";\\n\\n    function applyHideToExisting() {\\n      selectors.forEach(sel => {\\n        document.querySelectorAll(sel).forEach(hide);\\n      });\\n    }\\n    function revealAll() {\\n      selectors.forEach(sel => {\\n        document.querySelectorAll(sel).forEach(show);\\n      });\\n    }\\n\\n    if (already) {\\n      // Ya visto: mostrar todo y no bloquear scroll\\n      const obs = new MutationObserver(() => revealAll());\\n      obs.observe(document.documentElement, { childList: true, subtree: true });\\n      revealAll();\\n      setTimeout(() => obs.disconnect(), 3000);\\n      return;\\n    }\\n\\n    // Primera vez: ocultar todo y bloquear scroll\\n    applyHideToExisting();\\n    lockScroll();\\n\\n    // Si Framer monta tarde, aseguramos que lo nuevo aparezca oculto\\n    const obs = new MutationObserver(muts => {\\n      muts.forEach(m => {\\n        selectors.forEach(sel => {\\n          m.addedNodes.forEach(node => {\\n            if (node.nodeType === 1) {\\n              if (node.matches?.(sel)) hide(node);\\n              node.querySelectorAll?.(sel).forEach(hide);\\n            }\\n          });\\n        });\\n      });\\n    });\\n    obs.observe(document.documentElement, { childList: true, subtree: true });\\n\\n    // Al cumplir el delay, revelamos y habilitamos scroll\\n    setTimeout(() => {\\n      revealAll();\\n      if (store) store.setItem(key, \"1\");\\n      obs.disconnect();\\n      unlockScroll();\\n    }, Math.max(0, delayMs || 0));\\n  }\\n\\n  function init() {\\n    GROUPS.forEach(setupGroup);\\n  }\\n\\n  if (document.readyState === \"loading\") {\\n    document.addEventListener(\"DOMContentLoaded\", init);\\n  } else {\\n    init();\\n  }\\n})();\\n</script>\\n',description:\"La Formula X - Estoy Consiguiendo que el negocio de mis padres gane +30.000€ en un 1 mes s\\xf3lo con contenido org\\xe1nico - Si quieres que yo aplique este sistema en tu negocio, mira este video\",favicon:\"https://framerusercontent.com/assets/roQPAsAfXUqPGB1KCj7aEVCI.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/N0SDPj9cPrXO0bba7bVZve9cc.png\",title:\"La Formula X\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+uK,YAAY,+LAAqM,QAAQ,oEAAoE,OAAO,0BAA0B,YAAY,qEAAqE,MAAM,eAAe"}