{
  "version": 3,
  "sources": ["/cdn/shop/t/92/assets/gg-home-navigation.js?gg_menu_fix=36"],
  "sourcesContent": ["/* GG_HOME_NAVIGATION_26 \u2014 shared by the header and the retired relational landing. */\n(() => {\n  if (window.ggHomeNavigation36) return;\n  window.ggHomeNavigation36 = true;\n  const anchors = new Set(['GGDetectiveGames', 'GGInvestigationTrailer', 'GGCaseFiles']);\n  let observer;\n  let userInteracted = false;\n  ['wheel', 'touchstart', 'pointerdown', 'keydown'].forEach(name =>\n    window.addEventListener(name, () => { userInteracted = true; }, { passive: true, once: true })\n  );\n  const getTarget = hash => {\n    const id = hash.replace(/^#/, '');\n    return anchors.has(id) ? document.getElementById(id) : null;\n  };\n  function measureHeader() {\n    const header = document.querySelector('.section-header');\n    const height = header ? Math.ceil(header.getBoundingClientRect().height) : 76;\n    document.documentElement.style.setProperty('--gg26-header-offset', `${height + 24}px`);\n  }\n  function observeHeader() {\n    measureHeader();\n    if (observer) observer.disconnect();\n    const header = document.querySelector('.section-header');\n    if (header && 'ResizeObserver' in window) {\n      observer = new ResizeObserver(measureHeader);\n      observer.observe(header);\n    }\n  }\n  // GG_AUTOCLOSE_MENU_36: close the drawer synchronously, then scroll the viewport.\n  let navigationTicket = 0;\n  let finishCurrentScroll;\n  function focusTarget(target) {\n    if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '-1');\n    target.focus({ preventScroll: true });\n  }\n  function scrollToTarget(target, smooth, focus) {\n    finishCurrentScroll?.(false);\n    measureHeader();\n    const header = document.querySelector('.section-header');\n    const offset = (header ? Math.ceil(header.getBoundingClientRect().height) : 76) + 24;\n    const top = Math.max(0, window.scrollY + target.getBoundingClientRect().top - offset);\n    const animate = smooth && !window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    if (!animate || Math.abs(top - window.scrollY) < 2) {\n      window.scrollTo({ top, left: window.scrollX, behavior: 'instant' });\n      if (focus) focusTarget(target);\n      return;\n    }\n    // Native viewport scrolling avoids also scrolling the closed drawer or nested containers.\n    let idleTimer, fallbackTimer, finished = false;\n    const finish = (giveFocus = true) => {\n      if (finished) return;\n      finished = true;\n      clearTimeout(idleTimer); clearTimeout(fallbackTimer);\n      window.removeEventListener('scroll', onScroll);\n      window.removeEventListener('scrollend', onEnd);\n      if (finishCurrentScroll === finish) finishCurrentScroll = undefined;\n      if (giveFocus && focus && target.isConnected) focusTarget(target);\n    };\n    const onScroll = () => {\n      clearTimeout(idleTimer);\n      idleTimer = setTimeout(() => finish(), 160);\n    };\n    const onEnd = () => finish();\n    finishCurrentScroll = finish;\n    window.addEventListener('scroll', onScroll, { passive: true });\n    window.addEventListener('scrollend', onEnd);\n    fallbackTimer = setTimeout(() => finish(), 3000);\n    window.scrollTo({ top, left: window.scrollX, behavior: 'smooth' });\n  }\n  function closeDrawer(link) {\n    const panel = link.closest('#menu-drawer');\n    const drawer = link.closest('header-drawer, menu-drawer');\n    const details = drawer?.mainDetailsToggle || panel?.closest('details') || drawer?.querySelector('details');\n    if (!details || !details.open) return;\n    // GG_AUTOCLOSE_MENU_36: release the actual drawer state, not just its animation.\n    // Do not call closeMenuDrawer: its focus return and delayed animation can race scrolling.\n    if (typeof window.removeTrapFocus === 'function') window.removeTrapFocus();\n    details.querySelectorAll('details[open]').forEach(item => item.removeAttribute('open'));\n    details.querySelectorAll('.menu-opening, .submenu-open').forEach(item => {\n      item.classList.remove('menu-opening', 'submenu-open');\n    });\n    details.querySelectorAll('summary[aria-expanded]').forEach(item => item.setAttribute('aria-expanded', 'false'));\n    details.querySelector('summary')?.setAttribute('aria-expanded', 'false');\n    details.classList.remove('menu-opening', 'submenu-open');\n    details.removeAttribute('open');\n    const header = drawer?.closest('.section-header') || details.closest('.section-header');\n    header?.classList.remove('menu-open');\n    document.body.classList.remove(`overflow-hidden-${drawer?.dataset.breakpoint || 'tablet'}`);\n    if (typeof drawer?.onResize === 'function') window.removeEventListener('resize', drawer.onResize);\n  }\n\n  function interruptNavigation(event) {\n    if (event.type === 'keydown' && !['Escape', 'Tab', 'ArrowUp', 'ArrowDown', 'PageUp', 'PageDown', 'Home', 'End', ' '].includes(event.key)) return;\n    navigationTicket++;\n    if (finishCurrentScroll) {\n      finishCurrentScroll(false);\n      window.scrollTo({ top: window.scrollY, left: window.scrollX, behavior: 'instant' });\n    }\n  }\n  ['wheel', 'touchstart', 'pointerdown', 'keydown'].forEach(name =>\n    window.addEventListener(name, interruptNavigation, { passive: true })\n  );\n  document.addEventListener('click', async event => {\n    if ((typeof event.button === 'number' && event.button !== 0) || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n    const origin = event.target instanceof Element ? event.target : event.target?.parentElement;\n    const link = origin?.closest('a[data-gg26-scroll], #menu-drawer a[href], header-drawer a[href], menu-drawer a[href]');\n    if (!link || link.hasAttribute('download') || (link.target && link.target !== '_self')) return;\n    const url = new URL(link.href, window.location.href);\n    if (url.origin !== window.location.origin || url.pathname.replace(/\\/$/, '') !== window.location.pathname.replace(/\\/$/, '') || (url.searchParams.get('view') || '') !== (new URLSearchParams(window.location.search).get('view') || '')) return;\n    const target = getTarget(url.hash);\n    if (!target) return;\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    userInteracted = true;\n    const ticket = ++navigationTicket;\n    finishCurrentScroll?.(false);\n    closeDrawer(link);\n    await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve)));\n    if (ticket !== navigationTicket || !target.isConnected) return;\n    if (window.location.hash !== url.hash) history.pushState(null, '', url.hash);\n    scrollToTarget(target, true, true);\n  }, { capture: true });\n\n  function followHash(smooth = false) {\n    const target = getTarget(window.location.hash);\n    if (target) scrollToTarget(target, smooth, false);\n  }\n  function start() {\n    const redirect = document.querySelector('[data-gg26-relational-redirect]');\n    if (redirect && !window.Shopify?.designMode) {\n      const destination = new URL(redirect.dataset.gg26RelationalRedirect, window.location.origin);\n      const preview = new URLSearchParams(window.location.search).get('preview_theme_id');\n      if (preview) destination.searchParams.set('preview_theme_id', preview);\n      window.location.replace(destination.href);\n      return;\n    }\n    observeHeader();\n    followHash();\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start, { once: true });\n  else start();\n  window.addEventListener('resize', measureHeader, { passive: true });\n  window.addEventListener('load', () => { if (!userInteracted) followHash(); }, { once: true });\n  window.addEventListener('hashchange', () => followHash());\n  document.addEventListener('shopify:section:load', observeHeader);\n})();\n"],
  "mappings": "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",
  "names": []
}
