{
  "version": 3,
  "sources": ["/cdn/shop/t/26/assets/giclee-artist-collection-showcase.js?gab=mobile-scroll-static-v17-20260606"],
  "sourcesContent": ["(function () {\n  \"use strict\";\n\n  function gicleeUi(key, fallback) {\n    if (typeof window.__gicleeI18nGet === 'function') return window.__gicleeI18nGet(key, fallback);\n    var bag = window.__gicleeI18n || {};\n    var v = bag[key];\n    if (!v || (typeof v === 'string' && /translation missing/i.test(v))) return fallback;\n    return v;\n  }\n\n  function prefersReducedMotion() {\n    return (\n      window.matchMedia &&\n      window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n    );\n  }\n\n  function isTouchLikeDevice() {\n    return (\n      (window.matchMedia &&\n        window.matchMedia(\"(hover: none), (pointer: coarse), (max-width: 749px)\").matches) ||\n      (\"ontouchstart\" in window && navigator.maxTouchPoints > 0)\n    );\n  }\n\n  function clamp(n, min, max) {\n    return Math.max(min, Math.min(max, n));\n  }\n\n  function escapeHtml(str) {\n    if (str == null) return \"\";\n    return String(str)\n      .replace(/&/g, \"&amp;\")\n      .replace(/</g, \"&lt;\")\n      .replace(/>/g, \"&gt;\")\n      .replace(/\"/g, \"&quot;\");\n  }\n\n  function shopifyUrlRoot() {\n    var root =\n      (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || \"/\";\n    if (root.length && root.charAt(root.length - 1) !== \"/\") root += \"/\";\n    return root;\n  }\n\n  function productUrl(product) {\n    if (!product) return \"\";\n    if (product.handle) return shopifyUrlRoot() + \"products/\" + product.handle;\n    return product.url || \"\";\n  }\n\n  function formatStorefrontPrice(variant) {\n    if (!variant || variant.price == null) return \"\";\n    var raw = parseFloat(variant.price);\n    if (!isFinite(raw)) return \"\";\n    return (\n      raw.toLocaleString(\"pl-PL\", {\n        minimumFractionDigits: 2,\n        maximumFractionDigits: 2,\n      }) + \" z\u0142\"\n    );\n  }\n\n  var GACS_PRODUCT_CACHE = Object.create(null);\n\n  function optimizeImageSrc(src, width) {\n    if (!src) return \"\";\n    width = width || 900;\n    if (src.indexOf(\"width=\") !== -1) return src;\n    if (src.indexOf(\"cdn.shopify.com\") === -1 && src.indexOf(\"/cdn/\") === -1) return src;\n    return src + (src.indexOf(\"?\") === -1 ? \"?\" : \"&\") + \"width=\" + width;\n  }\n\n  var CAROUSEL_TITLE_PAREN_ALT_RE =\n    /\\s*\\(\\s*(?:lub|or|oder|ou|of|oppure|o)\\b/i;\n  var CAROUSEL_TITLE_BARE_ALT_RE =\n    /\\s+(?:lub|or|oder|ou|of|oppure|o)\\s+/i;\n\n  function shortCarouselTitle(title) {\n    if (title == null) return \"\";\n    var text = String(title).trim();\n    var parenMatch = text.match(CAROUSEL_TITLE_PAREN_ALT_RE);\n    if (parenMatch && parenMatch.index >= 0) {\n      text = text.slice(0, parenMatch.index).trim();\n    } else {\n      var bareMatch = text.match(CAROUSEL_TITLE_BARE_ALT_RE);\n      if (bareMatch && bareMatch.index > 0) {\n        text = text.slice(0, bareMatch.index).trim();\n      }\n    }\n    return text.replace(/\\s*\\(\\s*$/, \"\").trim();\n  }\n\n  function navigateSlideLink(link) {\n    if (!link || !link.href) return;\n    var href = link.getAttribute(\"href\");\n    if (!href || href.charAt(0) === \"#\") return;\n    window.location.assign(href);\n  }\n\n  function GicleeArtistShowcase(root) {\n    this.root = root;\n    this.layout = root.getAttribute(\"data-layout\") || \"coverflow\";\n    this.autoplay =\n      root.getAttribute(\"data-autoplay\") === \"true\" &&\n      !prefersReducedMotion() &&\n      !isTouchLikeDevice();\n    this.autoplayMs = parseInt(root.getAttribute(\"data-autoplay-ms\") || \"7000\", 10);\n    this.viewport = root.querySelector(\".giclee-artist-showcase__viewport\");\n    this.track = root.querySelector(\".giclee-artist-showcase__track\");\n    this.slides = Array.prototype.slice.call(\n      root.querySelectorAll(\".giclee-artist-showcase__slide\")\n    );\n    this.dotsWrap = root.querySelector(\".giclee-artist-showcase__dots\");\n    this.prevBtn = root.querySelector(\".giclee-artist-showcase__nav--prev\");\n    this.nextBtn = root.querySelector(\".giclee-artist-showcase__nav--next\");\n\n    this.index = 0;\n    this.count = this.slides.length;\n    this.dragging = false;\n    this.dragStartX = 0;\n    this.dragStartY = 0;\n    this.dragDelta = 0;\n    this.dragAxis = null;\n    this.gestureSwiped = false;\n    this.autoplayTimer = null;\n    this.paused = false;\n\n    if (!this.count || !this.track) return;\n\n    this.buildDots();\n    this.bindEvents();\n    this.goTo(0, false);\n    if (this.layout === \"coverflow\") this.startAutoplay();\n  }\n\n  GicleeArtistShowcase.prototype.buildDots = function () {\n    if (!this.dotsWrap || this.layout !== \"coverflow\") return;\n    this.dotsWrap.innerHTML = \"\";\n    for (var i = 0; i < this.count; i++) {\n      var dot = document.createElement(\"button\");\n      dot.type = \"button\";\n      dot.className = \"giclee-artist-showcase__dot\";\n      dot.setAttribute(\"aria-label\", gicleeUi(\"showcase_go_to_work\", \"Przejd\u017A do dzie\u0142a {{ index }}\").replace(\"{{ index }}\", String(i + 1)));\n      dot.dataset.index = String(i);\n      this.dotsWrap.appendChild(dot);\n    }\n    this.dots = Array.prototype.slice.call(\n      this.dotsWrap.querySelectorAll(\".giclee-artist-showcase__dot\")\n    );\n  };\n\n  GicleeArtistShowcase.prototype.resolveLinkFromPoint = function (clientX, clientY) {\n    var direct = document.elementFromPoint(clientX, clientY);\n    var link = direct && direct.closest(\".giclee-artist-showcase__slide-link\");\n    if (link) return link;\n\n    for (var i = 0; i < this.slides.length; i++) {\n      if (Math.abs(i - this.index) > 2) continue;\n      var slide = this.slides[i];\n      var rect = slide.getBoundingClientRect();\n      if (\n        clientX >= rect.left &&\n        clientX <= rect.right &&\n        clientY >= rect.top &&\n        clientY <= rect.bottom\n      ) {\n        link = slide.querySelector(\".giclee-artist-showcase__slide-link\");\n        if (link) return link;\n      }\n    }\n\n    var active = this.slides[this.index];\n    return active ? active.querySelector(\".giclee-artist-showcase__slide-link\") : null;\n  };\n\n  GicleeArtistShowcase.prototype.bindEvents = function () {\n    var self = this;\n\n    if (this.prevBtn) {\n      this.prevBtn.addEventListener(\"click\", function () {\n        self.pauseAutoplay();\n        self.prev();\n      });\n    }\n    if (this.nextBtn) {\n      this.nextBtn.addEventListener(\"click\", function () {\n        self.pauseAutoplay();\n        self.next();\n      });\n    }\n\n    if (this.dotsWrap) {\n      this.dotsWrap.addEventListener(\"click\", function (e) {\n        var dot = e.target.closest(\".giclee-artist-showcase__dot\");\n        if (!dot) return;\n        self.pauseAutoplay();\n        self.goTo(parseInt(dot.dataset.index, 10));\n      });\n    }\n\n    this.slides.forEach(function (slide) {\n      if (self.layout === \"coverflow\") {\n        self.bindSlideHover(slide);\n      }\n    });\n\n    if (this.viewport && this.layout === \"coverflow\") {\n      function swipeThreshold(pointerType) {\n        return pointerType === \"touch\" || isTouchLikeDevice() ? 28 : 48;\n      }\n\n      function resetGestureState(delayMs) {\n        window.setTimeout(function () {\n          self.dragDelta = 0;\n          self.dragAxis = null;\n          self.gestureSwiped = false;\n        }, delayMs);\n      }\n\n      /* Only treat the gesture as a carousel swipe once the full threshold is met.\n         A lower bar (previously 8px) blocked product links without changing slides. */\n      function finishDrag(delta, pointerType) {\n        var swiped = false;\n        if (self.dragAxis === \"x\") {\n          var threshold = swipeThreshold(pointerType);\n          if (Math.abs(delta) > threshold) {\n            swiped = true;\n            if (delta < 0) self.next();\n            else self.prev();\n          }\n        }\n        self.gestureSwiped = swiped;\n        resetGestureState(swiped ? 0 : 320);\n        return swiped;\n      }\n\n      function followLinkAtPoint(clientX, clientY) {\n        var link = self.resolveLinkFromPoint(clientX, clientY);\n        navigateSlideLink(link);\n      }\n\n      this.viewport.addEventListener(\"click\", function (e) {\n        if (self.gestureSwiped) {\n          e.preventDefault();\n          return;\n        }\n        var link = e.target.closest(\".giclee-artist-showcase__slide-link\");\n        if (!link) {\n          link = self.resolveLinkFromPoint(e.clientX, e.clientY);\n          if (link) {\n            e.preventDefault();\n            navigateSlideLink(link);\n          }\n        }\n      });\n\n      this.viewport.addEventListener(\"pointerdown\", function (e) {\n        if (e.button !== 0) return;\n        if (e.target.closest(\".giclee-artist-showcase__slide-link\")) return;\n        self.dragging = true;\n        self.dragStartX = e.clientX;\n        self.dragStartY = e.clientY;\n        self.dragDelta = 0;\n        self.dragAxis = null;\n        self.gestureSwiped = false;\n        self.viewport.classList.add(\"is-dragging\");\n        self.pauseAutoplay();\n        if (e.pointerType !== \"touch\") {\n          self.viewport.setPointerCapture(e.pointerId);\n        }\n      });\n\n      this.viewport.addEventListener(\"keydown\", function (e) {\n        if (e.key === \"ArrowLeft\") {\n          e.preventDefault();\n          self.pauseAutoplay();\n          self.prev();\n        } else if (e.key === \"ArrowRight\") {\n          e.preventDefault();\n          self.pauseAutoplay();\n          self.next();\n        }\n      });\n\n      this.viewport.addEventListener(\"pointermove\", function (e) {\n        if (!self.dragging) return;\n        var deltaX = e.clientX - self.dragStartX;\n        var deltaY = e.clientY - self.dragStartY;\n        var absX = Math.abs(deltaX);\n        var absY = Math.abs(deltaY);\n        self.dragDelta = deltaX;\n\n        if (!self.dragAxis && (absX > 8 || absY > 8)) {\n          if (absY > absX * 1.15) {\n            self.dragging = false;\n            self.dragAxis = null;\n            self.dragDelta = 0;\n            self.viewport.classList.remove(\"is-dragging\");\n            return;\n          }\n          if (absX > absY * 1.2) {\n            self.dragAxis = \"x\";\n          }\n        }\n\n        if (\n          self.dragAxis === \"x\" &&\n          absX >= swipeThreshold(e.pointerType) &&\n          e.cancelable\n        ) {\n          e.preventDefault();\n        }\n      });\n\n      this.viewport.addEventListener(\"pointerup\", function (e) {\n        if (!self.dragging) return;\n        self.dragging = false;\n        self.viewport.classList.remove(\"is-dragging\");\n        try {\n          self.viewport.releasePointerCapture(e.pointerId);\n        } catch (err) {}\n        finishDrag(self.dragDelta, e.pointerType);\n      });\n\n      this.viewport.addEventListener(\"pointercancel\", function () {\n        self.dragging = false;\n        self.viewport.classList.remove(\"is-dragging\");\n        self.dragDelta = 0;\n        self.dragAxis = null;\n        self.gestureSwiped = false;\n      });\n\n      this.viewport.addEventListener(\n        \"touchstart\",\n        function (e) {\n          if (!e.touches || e.touches.length !== 1) return;\n          if (e.target.closest(\".giclee-artist-showcase__slide-link\")) return;\n          self.dragging = true;\n          self.dragStartX = e.touches[0].clientX;\n          self.dragStartY = e.touches[0].clientY;\n          self.dragDelta = 0;\n          self.dragAxis = null;\n          self.gestureSwiped = false;\n          self.viewport.classList.add(\"is-dragging\");\n          self.pauseAutoplay();\n        },\n        { passive: true }\n      );\n\n      this.viewport.addEventListener(\n        \"touchmove\",\n        function (e) {\n          if (!self.dragging || !e.touches || e.touches.length !== 1) return;\n          var deltaX = e.touches[0].clientX - self.dragStartX;\n          var deltaY = e.touches[0].clientY - self.dragStartY;\n          var absX = Math.abs(deltaX);\n          var absY = Math.abs(deltaY);\n          self.dragDelta = deltaX;\n\n          if (!self.dragAxis && (absX > 8 || absY > 8)) {\n            if (absY > absX * 1.15) {\n              self.dragging = false;\n              self.dragAxis = null;\n              self.dragDelta = 0;\n              self.viewport.classList.remove(\"is-dragging\");\n              return;\n            }\n            if (absX > absY * 1.2) {\n              self.dragAxis = \"x\";\n            }\n          }\n\n          if (self.dragAxis === \"x\" && absX >= swipeThreshold(\"touch\") && e.cancelable) {\n            e.preventDefault();\n          }\n        },\n        { passive: false }\n      );\n\n      this.viewport.addEventListener(\"touchend\", function (e) {\n        if (!self.dragging) return;\n        self.dragging = false;\n        self.viewport.classList.remove(\"is-dragging\");\n        var swiped = finishDrag(self.dragDelta, \"touch\");\n        if (!swiped && e.changedTouches && e.changedTouches[0]) {\n          var touch = e.changedTouches[0];\n          window.requestAnimationFrame(function () {\n            followLinkAtPoint(touch.clientX, touch.clientY);\n          });\n        }\n      });\n\n      this.viewport.addEventListener(\"touchcancel\", function () {\n        self.dragging = false;\n        self.viewport.classList.remove(\"is-dragging\");\n        self.dragDelta = 0;\n        self.dragAxis = null;\n        self.gestureSwiped = false;\n      });\n    }\n\n    this.root.addEventListener(\"mouseenter\", function () {\n      self.pauseAutoplay();\n    });\n    this.root.addEventListener(\"mouseleave\", function () {\n      if (!self.paused) self.startAutoplay();\n    });\n    this.root.addEventListener(\"focusin\", function () {\n      self.pauseAutoplay();\n    });\n    this.root.addEventListener(\"focusout\", function (e) {\n      if (self.root.contains(e.relatedTarget)) return;\n      if (!self.paused) self.startAutoplay();\n    });\n\n    window.addEventListener(\n      \"resize\",\n      function () {\n        if (self.layout === \"coverflow\") self.layoutSlides();\n      },\n      { passive: true }\n    );\n  };\n\n  GicleeArtistShowcase.prototype.bindSlideHover = function (slide) {\n    var self = this;\n    slide.onmousemove = function (e) {\n      if (!slide.classList.contains(\"is-active\") || prefersReducedMotion()) return;\n      self.tiltSlide(slide, e);\n    };\n    slide.onmouseleave = function () {\n      self.resetTilt(slide);\n    };\n  };\n\n  GicleeArtistShowcase.prototype.tiltSlide = function (slide, e) {\n    var card = slide.querySelector(\".giclee-artist-showcase__slide-card\");\n    if (!card) return;\n    var rect = card.getBoundingClientRect();\n    var px = (e.clientX - rect.left) / rect.width - 0.5;\n    var py = (e.clientY - rect.top) / rect.height - 0.5;\n    var rotateY = px * 6;\n    var rotateX = py * -4;\n    card.style.transform =\n      \"rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) translateY(-4px)\";\n  };\n\n  GicleeArtistShowcase.prototype.resetTilt = function (slide) {\n    var card = slide.querySelector(\".giclee-artist-showcase__slide-card\");\n    if (card) card.style.transform = \"\";\n  };\n\n  GicleeArtistShowcase.prototype.layoutSlides = function () {\n    if (this.layout !== \"coverflow\") return;\n    var self = this;\n    var isEndPage = this.root.classList.contains(\"gacs-end-page\");\n    /* Bufor animacji wej\u015Bcia/wyj\u015Bcia karty (offset 4); end_page: dalsze slajdy\n       display:none \u2014 3D bbox nie rozpycha scrollHeight na dole strony. */\n    var layoutMax = 4;\n    this.slides.forEach(function (slide, i) {\n      var offset = i - self.index;\n      var abs = Math.abs(offset);\n\n      if (isEndPage && abs > layoutMax) {\n        slide.classList.toggle(\"is-active\", false);\n        slide.style.display = \"none\";\n        slide.style.pointerEvents = \"none\";\n        slide.style.transform = \"\";\n        slide.style.opacity = \"0\";\n        self.resetTilt(slide);\n        return;\n      }\n\n      var layoutOff = clamp(offset, -layoutMax, layoutMax);\n      var layoutAbs = Math.abs(layoutOff);\n\n      var x = layoutOff * clamp(window.innerWidth * 0.14, 88, 148);\n      var rotateY = layoutOff * -32;\n      var z = -layoutAbs * 90;\n      var scale = 1 - layoutAbs * 0.1;\n      var opacity = abs > 3 ? 0 : 1 - abs * 0.22;\n\n      slide.style.display = \"\";\n      slide.classList.toggle(\"is-active\", offset === 0);\n      slide.style.zIndex = String(100 - Math.min(abs, layoutMax));\n      slide.style.opacity = String(opacity);\n      slide.style.visibility = abs > layoutMax ? \"hidden\" : \"visible\";\n      slide.style.pointerEvents = abs > 2 ? \"none\" : \"auto\";\n      slide.style.transform =\n        \"translateX(\" +\n        x +\n        \"px) translateZ(\" +\n        z +\n        \"px) rotateY(\" +\n        rotateY +\n        \"deg) scale(\" +\n        scale +\n        \")\";\n    });\n\n    if (this.dots) {\n      this.dots.forEach(function (dot, i) {\n        dot.classList.toggle(\"is-active\", i === self.index);\n        dot.setAttribute(\"aria-current\", i === self.index ? \"true\" : \"false\");\n      });\n    }\n\n    if (this.prevBtn) this.prevBtn.disabled = this.index <= 0;\n    if (this.nextBtn) this.nextBtn.disabled = this.index >= this.count - 1;\n\n    var panel = this.root.closest(\"[data-gacs-scroll-panel]\");\n    if (\n      panel &&\n      !panel.classList.contains(\"gacs-panel-scroll--static\") &&\n      window.GicleeArtistLayoutSync\n    ) {\n      window.GicleeArtistLayoutSync.refreshScrollPanels();\n    }\n  };\n\n  GicleeArtistShowcase.prototype.goTo = function (i) {\n    this.index = clamp(i, 0, this.count - 1);\n    if (this.layout === \"coverflow\") {\n      this.layoutSlides();\n    } else {\n      this.slides.forEach(function (slide, idx) {\n        slide.classList.toggle(\"is-active\", idx === this.index);\n      }, this);\n    }\n    if (this.viewport) {\n      this.viewport.setAttribute(\n        \"aria-label\",\n        gicleeUi(\"showcase_gallery_position\", \"Galeria dzie\u0142, pozycja {{ current }} z {{ total }}\")\n          .replace(\"{{ current }}\", String(this.index + 1))\n          .replace(\"{{ total }}\", String(this.count))\n      );\n    }\n  };\n\n  GicleeArtistShowcase.prototype.prev = function () {\n    this.goTo(this.index - 1);\n  };\n\n  GicleeArtistShowcase.prototype.next = function () {\n    this.goTo(this.index + 1);\n  };\n\n  GicleeArtistShowcase.prototype.startAutoplay = function () {\n    var self = this;\n    if (!this.autoplay || this.layout !== \"coverflow\" || this.count < 2) return;\n    this.stopAutoplay();\n    this.autoplayTimer = window.setInterval(function () {\n      if (self.index >= self.count - 1) self.goTo(0);\n      else self.next();\n    }, this.autoplayMs);\n  };\n\n  GicleeArtistShowcase.prototype.stopAutoplay = function () {\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n      this.autoplayTimer = null;\n    }\n  };\n\n  GicleeArtistShowcase.prototype.pauseAutoplay = function () {\n    this.paused = true;\n    this.stopAutoplay();\n  };\n\n  GicleeArtistShowcase.prototype.reinit = function () {\n    this.stopAutoplay();\n    this.slides = Array.prototype.slice.call(\n      this.root.querySelectorAll(\".giclee-artist-showcase__slide\")\n    );\n    this.count = this.slides.length;\n    this.index = 0;\n    this.dragging = false;\n    this.dragDelta = 0;\n    this.gestureSwiped = false;\n    var self = this;\n    this.slides.forEach(function (slide) {\n      if (self.layout === \"coverflow\") self.bindSlideHover(slide);\n    });\n    this.buildDots();\n    this.goTo(0);\n    if (this.layout === \"coverflow\") {\n      var self = this;\n      requestAnimationFrame(function () {\n        requestAnimationFrame(function () {\n          self.layoutSlides();\n        });\n      });\n    }\n    if (this.layout === \"coverflow\" && !this.paused) this.startAutoplay();\n  };\n\n  var GACS_EXHIBITION_EASE = \"cubic-bezier(0.22, 1, 0.36, 1)\";\n  var GACS_EXHIBITION_MS = 880;\n\n  function notifyScrollPanels() {\n    document.querySelectorAll(\"[data-gacs-scroll-panel]\").forEach(function (el) {\n      var panel = el._gacsScrollPanelInstance;\n      if (panel && typeof panel.update === \"function\") {\n        panel.update();\n      }\n    });\n  }\n\n  function isGalleryViewportLocked() {\n    return !!document.querySelector(\"[data-gacs-scroll-panel].is-overlapping\");\n  }\n\n  function lockSectionLayout(section) {\n    if (!section || section.dataset.gacsLayoutLocked === \"1\") return;\n    if (\n      section.matches &&\n      (section.matches(\"[data-giclee-artist-bio]\") ||\n        section.matches(\".giclee-artist-biography-section, .giclee-artist-biography-section *\"))\n    ) {\n      return;\n    }\n    if (section.closest && section.closest(\"[data-giclee-artist-bio], .giclee-artist-biography-section\")) {\n      return;\n    }\n    section.style.height = section.offsetHeight + \"px\";\n    section.style.overflow = \"hidden\";\n    section.dataset.gacsLayoutLocked = \"1\";\n  }\n\n  function releaseSectionLayout(section) {\n    if (!section) return;\n    if (section.dataset.gacsLayoutLocked !== \"1\") return;\n    if (isGalleryViewportLocked()) return;\n    section.style.height = \"\";\n    section.style.overflow = \"\";\n    delete section.dataset.gacsLayoutLocked;\n    notifyScrollPanels();\n  }\n\n  function releaseBioLayoutLocks(root) {\n    var el = root;\n    while (el) {\n      if (el.dataset && el.dataset.gacsLayoutLocked === \"1\") {\n        el.style.height = \"\";\n        el.style.overflow = \"\";\n        delete el.dataset.gacsLayoutLocked;\n      }\n      if (\n        el.classList &&\n        (el.classList.contains(\"giclee-artist-biography-section\") ||\n          el.classList.contains(\"shopify-section\"))\n      ) {\n        break;\n      }\n      el = el.parentElement;\n    }\n    notifyScrollPanels();\n  }\n\n  window.GicleeArtistLayoutSync = {\n    lockSectionLayout: lockSectionLayout,\n    releaseSectionLayout: releaseSectionLayout,\n    releaseBioLayoutLocks: releaseBioLayoutLocks,\n    releaseBioSectionsIfIdle: function () {\n      document.querySelectorAll(\"[data-gacs-layout-locked='1']\").forEach(function (el) {\n        releaseSectionLayout(el);\n      });\n    },\n    refreshScrollPanels: notifyScrollPanels,\n    isGalleryViewportLocked: isGalleryViewportLocked,\n  };\n\n  function GicleeArtistExhibition(root) {\n    this.root = root;\n    this.jsonEl = root.querySelector(\"[data-gacs-artists-json]\");\n    this.track = root.querySelector(\"[data-gacs-track]\");\n    this.contentPanes = Array.prototype.slice.call(\n      root.querySelectorAll(\"[data-gacs-exhibition-content]\")\n    );\n    this.prevNav = root.querySelector('[data-gacs-artist-nav=\"prev\"]');\n    this.nextNav = root.querySelector('[data-gacs-artist-nav=\"next\"]');\n    this.showCta = root.getAttribute(\"data-show-cta\") === \"true\";\n    this.ctaLabel = root.getAttribute(\"data-cta-label\") || gicleeUi(\"showcase_cta_default\", \"Zobacz ca\u0142\u0105 kolekcj\u0119\");\n    this.fixedLead = root.getAttribute(\"data-gacs-fixed-lead\") || \"\";\n    this.artists = [];\n    this.currentIndex = parseInt(root.getAttribute(\"data-artist-index\") || \"0\", 10);\n    this.targetArtistIndex = this.currentIndex;\n    this.targetDirection = 1;\n    this.productFetchSeq = 0;\n    this.transitioning = false;\n    this.transitionSeq = 0;\n    this.transitionPhase = \"idle\";\n    this.showcase = root._gacsShowcase || null;\n    this.state = window.GicleeActiveAuthor;\n    this.unsub = null;\n\n    if (!this.jsonEl || !this.track) return;\n\n    try {\n      this.artists = JSON.parse(this.jsonEl.textContent || \"[]\");\n    } catch (err) {\n      this.artists = [];\n    }\n\n    if (this.artists.length < 2) return;\n\n    if (this.state) {\n      this.state.init(this.artists, this.currentIndex);\n      this.unsub = this.state.subscribe(this.onActiveAuthorChange.bind(this));\n    }\n\n    this.updateNavLabels();\n    this.bindNav();\n\n    var bootArtist = this.getArtist(this.currentIndex);\n    if (bootArtist) {\n      var self = this;\n      if (bootArtist.products && bootArtist.products.length > 0) {\n        if (self.showcase) {\n          self.showcase.reinit();\n        }\n      } else {\n        this.refreshArtistProducts(bootArtist, function (products) {\n          self.track.innerHTML = self.buildTrackHtml(products);\n          if (self.showcase) {\n            self.showcase.reinit();\n          } else {\n            self._pendingBootProducts = products;\n          }\n        });\n      }\n    }\n  }\n\n  GicleeArtistExhibition.prototype.waitPaneTransition = function (callback) {\n    var panes = this.contentPanes;\n    if (!panes.length || prefersReducedMotion()) {\n      callback();\n      return;\n    }\n\n    var finished = false;\n    var done = function () {\n      if (finished) return;\n      finished = true;\n      panes.forEach(function (pane) {\n        pane.removeEventListener(\"transitionend\", onEnd);\n      });\n      callback();\n    };\n    var onEnd = function (e) {\n      if (panes.indexOf(e.target) === -1) return;\n      if (e.propertyName !== \"opacity\" && e.propertyName !== \"transform\") return;\n      done();\n    };\n\n    panes.forEach(function (pane) {\n      pane.addEventListener(\"transitionend\", onEnd);\n    });\n    window.setTimeout(done, GACS_EXHIBITION_MS + 120);\n  };\n\n  GicleeArtistExhibition.prototype.clearExhibitionStates = function () {\n    this.root.classList.remove(\n      \"is-artist-transitioning\",\n      \"is-artist-exiting-next\",\n      \"is-artist-exiting-prev\",\n      \"is-artist-entering-next\",\n      \"is-artist-entering-prev\"\n    );\n    this.transitionPhase = \"idle\";\n  };\n\n  GicleeArtistExhibition.prototype.setExitPhase = function () {\n    var dir = this.targetDirection;\n    this.transitionPhase = \"exit\";\n    this.root.classList.remove(\"is-artist-entering-next\", \"is-artist-entering-prev\");\n    this.root.classList.add(\"is-artist-transitioning\");\n    this.root.classList.remove(\"is-artist-exiting-next\", \"is-artist-exiting-prev\");\n    this.root.classList.add(\n      dir > 0 ? \"is-artist-exiting-next\" : \"is-artist-exiting-prev\"\n    );\n  };\n\n  GicleeArtistExhibition.prototype.swapAndEnter = function (seq, pushState) {\n    var self = this;\n    var activeIndex = self.getTargetArtistIndex();\n    var artist = self.getArtist(activeIndex);\n    if (!artist) {\n      self.clearExhibitionStates();\n      self.transitioning = false;\n      return;\n    }\n\n    var enterDir = self.targetDirection;\n    self.currentIndex = activeIndex;\n    self.applyArtist(artist);\n    self.updateNavLabels();\n    self.root.setAttribute(\"data-artist-index\", String(activeIndex));\n    self.transitionPhase = \"enter\";\n    self.root.classList.add(\n      enterDir > 0 ? \"is-artist-entering-next\" : \"is-artist-entering-prev\"\n    );\n    self.root.classList.remove(\"is-artist-exiting-next\", \"is-artist-exiting-prev\");\n\n    void self.root.offsetHeight;\n\n    window.requestAnimationFrame(function () {\n      window.requestAnimationFrame(function () {\n        if (seq !== self.transitionSeq) return;\n        self.root.classList.remove(\n          \"is-artist-entering-next\",\n          \"is-artist-entering-prev\",\n          \"is-artist-transitioning\"\n        );\n        self.transitionPhase = \"enter-fade\";\n        self.waitPaneTransition(function () {\n          if (seq !== self.transitionSeq) return;\n          self.finishArtistTransition();\n        });\n      });\n    });\n\n    if (pushState && artist.url) {\n      history.pushState({ gacsArtist: activeIndex }, \"\", artist.url);\n    }\n  };\n\n  GicleeArtistExhibition.prototype.runExitThenEnter = function (seq, pushState) {\n    var self = this;\n    if (self.showcase) self.showcase.pauseAutoplay();\n    self.setExitPhase();\n    self.waitPaneTransition(function () {\n      if (seq !== self.transitionSeq) return;\n      self.swapAndEnter(seq, pushState);\n    });\n  };\n\n  GicleeArtistExhibition.prototype.getArtist = function (index) {\n    return this.artists[index] || null;\n  };\n\n  GicleeArtistExhibition.prototype.getTargetArtistIndex = function () {\n    return this.targetArtistIndex != null ? this.targetArtistIndex : this.currentIndex;\n  };\n\n  GicleeArtistExhibition.prototype.isArtistFetchStale = function (artist) {\n    if (!artist || !artist.handle) return true;\n    var target = this.getArtist(this.getTargetArtistIndex());\n    return !target || target.handle !== artist.handle;\n  };\n\n  GicleeArtistExhibition.prototype.reconcileArtistTarget = function () {\n    var index = this.getTargetArtistIndex();\n    if (index < 0 || index >= this.artists.length) return;\n    if (index === this.currentIndex) return;\n\n    if (!prefersReducedMotion()) {\n      if (!this.transitioning) {\n        this.runArtistTransition(false);\n      }\n      return;\n    }\n\n    this.clearExhibitionStates();\n    this.root.classList.remove(\"is-artist-transitioning\");\n    this.transitioning = false;\n    this.currentIndex = index;\n    this.applyArtist(this.getArtist(index));\n    this.updateNavLabels();\n    this.root.setAttribute(\"data-artist-index\", String(index));\n    if (this.showcase && !this.showcase.paused) {\n      this.showcase.startAutoplay();\n    }\n\n    if (this.getTargetArtistIndex() !== this.currentIndex) {\n      this.reconcileArtistTarget();\n    }\n  };\n\n  GicleeArtistExhibition.prototype.finishArtistTransition = function () {\n    if (this.getTargetArtistIndex() !== this.currentIndex) {\n      this.transitionSeq = (this.transitionSeq || 0) + 1;\n      this.transitioning = true;\n      this.runExitThenEnter(this.transitionSeq, false);\n      return;\n    }\n\n    this.root.classList.remove(\"is-artist-transitioning\");\n    this.transitionPhase = \"idle\";\n    this.transitioning = false;\n    if (this.showcase && !this.showcase.paused) {\n      this.showcase.startAutoplay();\n    }\n  };\n\n  GicleeArtistExhibition.prototype.onActiveAuthorChange = function (evt) {\n    if (!evt || evt.index == null) return;\n    this.updateNavLabels(evt.index);\n    this.animateToArtist(evt.index, evt.direction, false);\n  };\n\n  GicleeArtistExhibition.prototype.updateNavLabels = function (indexOverride) {\n    var idx =\n      indexOverride != null\n        ? indexOverride\n        : this.state\n          ? this.state.index\n          : this.currentIndex;\n    var prev = this.getArtist(idx - 1);\n    var next = this.getArtist(idx + 1);\n\n    this.setNavButton(this.prevNav, prev);\n    this.setNavButton(this.nextNav, next);\n  };\n\n  GicleeArtistExhibition.prototype.setNavButton = function (btn, artist) {\n    if (!btn) return;\n    var nameEl = btn.querySelector(\"[data-gacs-artist-nav-name]\");\n    var previewEl = btn.querySelector(\"[data-gacs-artist-nav-preview]\");\n\n    if (!artist) {\n      btn.hidden = true;\n      btn.disabled = true;\n      return;\n    }\n\n    btn.hidden = false;\n    btn.disabled = false;\n    if (nameEl) nameEl.textContent = artist.artistName || artist.heading || \"\";\n    if (previewEl) {\n      if (artist.previewImage) {\n        previewEl.innerHTML =\n          '<img src=\"' +\n          escapeHtml(artist.previewImage) +\n          '\" alt=\"\" loading=\"lazy\" decoding=\"async\">';\n      } else {\n        previewEl.innerHTML = \"\";\n      }\n    }\n  };\n\n  GicleeArtistExhibition.prototype.bindNav = function () {\n    var self = this;\n    if (this.prevNav) {\n      this.prevNav.addEventListener(\"click\", function () {\n        if (self.state) {\n          self.state.setIndex(self.state.index - 1, {\n            direction: -1,\n            pushState: true,\n            source: \"gallery-nav\",\n          });\n        } else {\n          self.animateToArtist(self.currentIndex - 1, -1, true);\n        }\n      });\n    }\n    if (this.nextNav) {\n      this.nextNav.addEventListener(\"click\", function () {\n        if (self.state) {\n          self.state.setIndex(self.state.index + 1, {\n            direction: 1,\n            pushState: true,\n            source: \"gallery-nav\",\n          });\n        } else {\n          self.animateToArtist(self.currentIndex + 1, 1, true);\n        }\n      });\n    }\n  };\n\n  GicleeArtistExhibition.prototype.refreshArtistProducts = function (artist, callback, opts) {\n    var self = this;\n    opts = opts || {};\n    var limit = parseInt(self.root.getAttribute(\"data-max-products\") || \"50\", 10);\n    if (!artist || !artist.handle) {\n      callback(artist ? artist.products : []);\n      return;\n    }\n\n    if (!opts.force && artist.products && artist.products.length > 0) {\n      GACS_PRODUCT_CACHE[artist.handle] = artist.products;\n      callback(artist.products);\n      return;\n    }\n\n    if (!opts.force && GACS_PRODUCT_CACHE[artist.handle]) {\n      artist.products = GACS_PRODUCT_CACHE[artist.handle];\n      callback(artist.products);\n      return;\n    }\n\n    var url =\n      shopifyUrlRoot() +\n      \"collections/\" +\n      encodeURIComponent(artist.handle) +\n      \"/products.json?limit=\" +\n      limit;\n\n    var fetchSeq = ++self.productFetchSeq;\n\n    fetch(url)\n      .then(function (res) {\n        if (!res.ok) throw new Error(\"products.json\");\n        return res.json();\n      })\n      .then(function (data) {\n        if (fetchSeq !== self.productFetchSeq || self.isArtistFetchStale(artist)) return;\n        var stale = artist.products || [];\n        var products = (data.products || []).map(function (p, index) {\n          var staleMatch =\n            stale.find(function (s) {\n              return s.handle && s.handle === p.handle;\n            }) || stale[index] || {};\n          var variant = p.variants && p.variants[0];\n          var imageSrc =\n            (p.images && p.images[0] && p.images[0].src) || staleMatch.imageSrc || \"\";\n          return {\n            title: p.title,\n            handle: p.handle,\n            url: shopifyUrlRoot() + \"products/\" + p.handle,\n            priceFormatted:\n              staleMatch.priceFormatted || formatStorefrontPrice(variant),\n            imageSrc: imageSrc,\n            imageAlt: p.title,\n          };\n        });\n        artist.products = products;\n        GACS_PRODUCT_CACHE[artist.handle] = products;\n        callback(products);\n      })\n      .catch(function () {\n        if (fetchSeq !== self.productFetchSeq || self.isArtistFetchStale(artist)) return;\n        callback(artist.products || GACS_PRODUCT_CACHE[artist.handle] || []);\n      });\n  };\n\n  GicleeArtistExhibition.prototype.buildTrackHtml = function (products) {\n    if (!products || !products.length) {\n      return (\n        '<article class=\"giclee-artist-showcase__slide is-active\" data-index=\"0\">' +\n        '<div class=\"giclee-artist-showcase__slide-card\">' +\n        '<div class=\"giclee-artist-showcase__slide-meta\">' +\n        '<h3 class=\"giclee-artist-showcase__slide-title\">' + gicleeUi(\"showcase_no_works\", \"Brak dzie\u0142\") + \"</h3>\" +\n        \"</div></div></article>\"\n      );\n    }\n\n    return products\n      .map(function (product, index) {\n        var slideTitle = shortCarouselTitle(product.title);\n        var imgSrc = optimizeImageSrc(product.imageSrc, 900);\n        var media = imgSrc\n          ? '<img src=\"' +\n            escapeHtml(imgSrc) +\n            '\" alt=\"' +\n            escapeHtml(product.imageAlt || slideTitle) +\n            '\" loading=\"' +\n            (index === 0 ? \"eager\" : \"lazy\") +\n            '\" decoding=\"async\"' +\n            (index === 0 ? ' fetchpriority=\"high\"' : \"\") +\n            \">\"\n          : \"\";\n        return (\n          '<article class=\"giclee-artist-showcase__slide' +\n          (index === 0 ? \" is-active\" : \"\") +\n          '\" data-index=\"' +\n          index +\n          '\">' +\n          '<a class=\"giclee-artist-showcase__slide-link\" href=\"' +\n          escapeHtml(productUrl(product)) +\n          '\" aria-label=\"Zobacz: ' +\n          escapeHtml(slideTitle) +\n          '\">' +\n          '<div class=\"giclee-artist-showcase__slide-card\">' +\n          '<div class=\"giclee-artist-showcase__slide-media\">' +\n          media +\n          \"</div>\" +\n          '<div class=\"giclee-artist-showcase__slide-meta\">' +\n          '<h3 class=\"giclee-artist-showcase__slide-title\">' +\n          escapeHtml(slideTitle) +\n          \"</h3>\" +\n          \"</div></div></a></article>\"\n        );\n      })\n      .join(\"\");\n  };\n\n  GicleeArtistExhibition.prototype.updateHeader = function (artist) {\n    var eyebrow = this.root.querySelector('[data-gacs-field=\"eyebrow\"]');\n    var heading = this.root.querySelector('[data-gacs-field=\"heading\"]');\n    var lead = this.root.querySelector('[data-gacs-field=\"lead\"]');\n    var cta = this.root.querySelector('[data-gacs-field=\"cta\"]');\n\n    if (eyebrow) eyebrow.textContent = artist.artistName || artist.eyebrow || \"\";\n    if (heading) heading.textContent = artist.heading || \"\";\n    if (lead) lead.textContent = this.fixedLead || artist.lead || \"\";\n    if (cta) {\n      if (this.showCta && artist.url) {\n        cta.hidden = false;\n        cta.textContent = this.ctaLabel;\n        cta.href = artist.url;\n      } else {\n        cta.hidden = true;\n      }\n    }\n\n    this.root.setAttribute(\"aria-label\", artist.artistName || artist.heading || \"\");\n  };\n\n  GicleeArtistExhibition.prototype.applyArtist = function (artist) {\n    if (!artist) return;\n    var self = this;\n    this.updateHeader(artist);\n\n    function renderProducts(products) {\n      self.track.innerHTML = self.buildTrackHtml(products);\n      if (self.showcase) self.showcase.reinit();\n      if (window.GicleeArtistLayoutSync) {\n        window.GicleeArtistLayoutSync.refreshScrollPanels();\n      }\n    }\n\n    if (artist.products && artist.products.length > 0) {\n      renderProducts(artist.products);\n      return;\n    }\n\n    this.refreshArtistProducts(artist, renderProducts);\n  };\n\n  GicleeArtistExhibition.prototype.runArtistTransition = function (pushState) {\n    var self = this;\n    var targetIndex = this.getTargetArtistIndex();\n    if (targetIndex < 0 || targetIndex >= this.artists.length) return;\n\n    if (prefersReducedMotion()) {\n      this.currentIndex = targetIndex;\n      this.applyArtist(this.getArtist(targetIndex));\n      this.updateNavLabels();\n      this.root.setAttribute(\"data-artist-index\", String(targetIndex));\n      if (this.getTargetArtistIndex() !== this.currentIndex) {\n        this.reconcileArtistTarget();\n        return;\n      }\n      if (pushState) {\n        var reducedArtist = this.getArtist(targetIndex);\n        if (reducedArtist && reducedArtist.url) {\n          history.pushState({ gacsArtist: targetIndex }, \"\", reducedArtist.url);\n        }\n      }\n      return;\n    }\n\n    this.transitionSeq = (this.transitionSeq || 0) + 1;\n    var seq = this.transitionSeq;\n    this.transitioning = true;\n    this.runExitThenEnter(seq, pushState);\n  };\n\n  GicleeArtistExhibition.prototype.animateToArtist = function (index, direction, pushState) {\n    if (index < 0 || index >= this.artists.length) return;\n\n    this.targetArtistIndex = index;\n    this.targetDirection = direction >= 0 ? 1 : -1;\n\n    if (index === this.currentIndex && !this.transitioning) return;\n\n    if (this.transitioning) {\n      if (this.transitionPhase === \"enter\" || this.transitionPhase === \"enter-fade\") {\n        this.transitionSeq = (this.transitionSeq || 0) + 1;\n        this.runExitThenEnter(this.transitionSeq, false);\n      }\n      return;\n    }\n\n    this.runArtistTransition(pushState);\n  };\n\n  GicleeArtistExhibition.prototype.attachShowcase = function (showcase) {\n    this.showcase = showcase;\n    this.root._gacsShowcase = showcase;\n    if (this._pendingBootProducts) {\n      this.track.innerHTML = this.buildTrackHtml(this._pendingBootProducts);\n      showcase.reinit();\n      this._pendingBootProducts = null;\n    }\n  };\n\n  function GicleeArtistScrollPanel(root) {\n    this.root = root;\n    this.sticky = root.querySelector(\".gacs-panel-scroll__sticky\");\n    this.surface = root.querySelector(\".gacs-panel-scroll__surface\");\n    this.sentinel = root.querySelector(\".gacs-panel-scroll__sentinel\");\n    this.sectionEl = root.closest(\".shopify-section\");\n    this.prevSection = this.findPrevOverlapSection();\n    this.gap = 80;\n    this.overlap = 120;\n    this.restSentinelTop = 0;\n    this.ticking = false;\n\n    if (!this.sticky || !this.surface || !this.sentinel) return;\n\n    this.root._gacsScrollPanelInstance = this;\n\n    if (isTouchLikeDevice()) {\n      root.classList.add(\"gacs-panel-scroll--static\");\n      root.setAttribute(\"data-gacs-touch-static\", \"true\");\n      this.clearScrollState();\n      return;\n    }\n\n    if (prefersReducedMotion()) {\n      root.classList.add(\"gacs-panel-scroll--static\");\n      this.clearScrollState();\n      return;\n    }\n\n    this.measure();\n    this.restSentinelTop = this.sentinel.getBoundingClientRect().top;\n    this.bind();\n    this.update();\n  }\n\n  GicleeArtistScrollPanel.prototype.isStatic = function () {\n    return this.root.classList.contains(\"gacs-panel-scroll--static\");\n  };\n\n  GicleeArtistScrollPanel.prototype.clearScrollState = function () {\n    this.root.classList.remove(\"is-pinned-top\", \"is-overlapping\");\n    this.root.style.removeProperty(\"--gacs-progress\");\n    this.root.style.removeProperty(\"--gacs-translate-y\");\n    this.root.style.removeProperty(\"--gacs-layout-trim\");\n    this.root.style.removeProperty(\"--gacs-veil-alpha\");\n    this.root.style.removeProperty(\"--gacs-shadow-alpha\");\n    this.root.style.removeProperty(\"--gacs-shadow-blur\");\n    this.root.style.height = \"\";\n    this.root.style.marginBottom = \"\";\n    this._endPageBleedTrim = 0;\n    this.root.style.overflow = \"\";\n    this.root.style.boxSizing = \"\";\n    if (this.sticky) this.sticky.style.marginBottom = \"\";\n    if (this.surface) {\n      this.surface.style.transform = \"\";\n      this.surface.style.marginBottom = \"\";\n    }\n    if (this.sectionEl) {\n      this.sectionEl.classList.remove(\"gacs-section-over-chrome\");\n      this.sectionEl.style.removeProperty(\"--gacs-layout-trim\");\n    }\n    if (this.prevSection) {\n      this.prevSection.classList.remove(\"gacs-under-panel\");\n      this.prevSection.style.removeProperty(\"--gacs-under-dim\");\n    }\n    if (window.GicleeArtistLayoutSync) {\n      window.GicleeArtistLayoutSync.releaseBioSectionsIfIdle();\n    }\n  };\n\n  GicleeArtistScrollPanel.prototype.findPrevOverlapSection = function () {\n    if (!this.sectionEl) return null;\n\n    var el = this.sectionEl.previousElementSibling;\n    var fallback = null;\n\n    while (el) {\n      if (!el.classList || !el.classList.contains(\"shopify-section\")) {\n        el = el.previousElementSibling;\n        continue;\n      }\n\n      if (el.classList.contains(\"giclee-artist-biography-section\")) {\n        return el;\n      }\n\n      if (el.querySelector('[data-testid^=\"divider-\"], .divider')) {\n        el = el.previousElementSibling;\n        continue;\n      }\n\n      if (!fallback) fallback = el;\n      el = el.previousElementSibling;\n    }\n\n    return fallback;\n  };\n\n  GicleeArtistScrollPanel.prototype.readCssLength = function (varName) {\n    var styles = getComputedStyle(this.root);\n    var parsed = parseFloat(styles.getPropertyValue(varName));\n    if (Number.isFinite(parsed) && parsed > 0) return parsed;\n\n    var prevPaddingBottom = this.root.style.paddingBottom;\n    this.root.style.paddingBottom = \"var(\" + varName + \")\";\n    parsed = parseFloat(getComputedStyle(this.root).paddingBottom);\n    this.root.style.paddingBottom = prevPaddingBottom;\n    return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;\n  };\n\n  GicleeArtistScrollPanel.prototype.measure = function () {\n    this.gap = this.readCssLength(\"--gacs-gap\") || 80;\n    this.overlap = this.readCssLength(\"--gacs-overlap\") || 120;\n  };\n\n  GicleeArtistScrollPanel.prototype.syncPanelHeight = function (progress) {\n    var showcase = this.root.querySelector(\".giclee-artist-showcase\");\n    if (!showcase || progress <= 0.001) {\n      this.root.style.height = \"\";\n      this.root.style.marginBottom = \"\";\n      this.root.style.overflow = \"\";\n      this.root.style.boxSizing = \"\";\n      return;\n    }\n\n    var targetHeight;\n    var pinned = this.sticky && this.sticky.getBoundingClientRect().top <= 1;\n    if (this.root.classList.contains(\"gacs-end-page-wrap\")) {\n      var panelTop = this.root.getBoundingClientRect().top;\n      var inner = showcase.querySelector(\".giclee-artist-showcase__inner\");\n      var dots = showcase.querySelector(\".giclee-artist-showcase__dots\");\n      var viewport = showcase.querySelector(\".giclee-artist-showcase__viewport\");\n      var stage = showcase.querySelector(\".giclee-artist-showcase__stage\");\n      var contentEnd = inner || dots || viewport || stage || showcase;\n      var contentBottom = contentEnd.getBoundingClientRect().bottom;\n      /*\n       * end_page: po przypi\u0119ciu ko\u0144czymy panel na realnej tre\u015Bci (bez +32px fudge \u2014\n       * to by\u0142 \u201Educhowy\u201D scroll na dole). W trakcie overlapu zostawiamy lekki bufor.\n       */\n      if (pinned) {\n        targetHeight = contentBottom - panelTop;\n      } else {\n        targetHeight = contentBottom - panelTop + 32 - this.overlap * progress;\n      }\n    } else if (showcase.classList.contains(\"gacs-fullscreen\")) {\n      targetHeight = this.gap + showcase.offsetHeight - this.overlap * progress;\n    } else {\n      var panelTop = this.root.getBoundingClientRect().top;\n      var showcaseBottom = showcase.getBoundingClientRect().bottom;\n      targetHeight = showcaseBottom - panelTop;\n    }\n\n    if (targetHeight > 0) {\n      this.root.style.height = targetHeight.toFixed(2) + \"px\";\n      this.root.style.overflow = \"visible\";\n      this.root.style.marginBottom = \"\";\n      this.root.style.boxSizing = \"border-box\";\n    }\n  };\n\n  GicleeArtistScrollPanel.prototype.trimEndPageScrollBleed = function (pinned) {\n    if (!this.root.classList.contains(\"gacs-end-page-wrap\")) return;\n\n    if (!pinned) {\n      this._endPageBleedTrim = 0;\n      return;\n    }\n\n    var showcase = this.root.querySelector(\".giclee-artist-showcase\");\n    if (!showcase) return;\n\n    var inner = showcase.querySelector(\".giclee-artist-showcase__inner\") || showcase;\n    var contentBottom = inner.getBoundingClientRect().bottom;\n    var scrollY = window.scrollY || document.documentElement.scrollTop;\n    var docHeight = document.documentElement.scrollHeight;\n    var viewH = window.innerHeight;\n    var scrollRoom = docHeight - scrollY - viewH;\n\n    /*\n     * Przycinaj tylko gdy tre\u015B\u0107 galerii ju\u017C mie\u015Bci si\u0119 w viewport (wida\u0107 pusty pas\n     * pod kropkami), a dokument nadal ma \u201Educhowy\u201D zapas scrollHeight.\n     */\n    if (scrollRoom < 6 || contentBottom > viewH - 12) {\n      if (this._endPageBleedTrim) {\n        this.root.style.marginBottom = \"\";\n        this._endPageBleedTrim = 0;\n      }\n      return;\n    }\n\n    var trim = Math.ceil(scrollRoom);\n    if (trim !== this._endPageBleedTrim) {\n      this.root.style.marginBottom = -trim + \"px\";\n      this._endPageBleedTrim = trim;\n    }\n  };\n\n  GicleeArtistScrollPanel.prototype.update = function () {\n    if (this.isStatic()) {\n      this.clearScrollState();\n      return;\n    }\n\n    var sentinelTop = this.sentinel.getBoundingClientRect().top;\n    var stickyTop = this.sticky.getBoundingClientRect().top;\n    var pinned = stickyTop <= 1;\n\n    if (!pinned && sentinelTop > 0) {\n      this.restSentinelTop = Math.max(this.restSentinelTop, sentinelTop);\n    }\n\n    var travel = this.restSentinelTop || sentinelTop || window.innerHeight;\n    if (travel < 1) travel = window.innerHeight;\n\n    var progress = clamp(1 - sentinelTop / travel, 0, 1);\n    var translateY = -this.overlap * progress;\n    var layoutTrim = this.overlap * progress;\n    var overlapping = progress > 0.001;\n\n    this.root.style.setProperty(\"--gacs-progress\", progress.toFixed(4));\n    this.root.style.setProperty(\"--gacs-translate-y\", translateY.toFixed(2) + \"px\");\n    this.root.style.setProperty(\"--gacs-layout-trim\", layoutTrim.toFixed(2) + \"px\");\n    if (this.sticky) {\n      this.sticky.style.marginBottom = (-layoutTrim).toFixed(2) + \"px\";\n    }\n    if (this.surface) {\n      this.surface.style.transform = \"\";\n      this.surface.style.marginBottom = \"\";\n    }\n    this.root.style.setProperty(\"--gacs-veil-alpha\", (progress * 0.32).toFixed(4));\n    this.root.style.setProperty(\n      \"--gacs-shadow-alpha\",\n      (0.1 + progress * 0.26).toFixed(3)\n    );\n    this.root.style.setProperty(\n      \"--gacs-shadow-blur\",\n      (20 + progress * 44).toFixed(1) + \"px\"\n    );\n\n    if (this.sectionEl) {\n      this.sectionEl.style.setProperty(\"--gacs-layout-trim\", layoutTrim.toFixed(2) + \"px\");\n    }\n\n    this.root.classList.toggle(\"is-overlapping\", overlapping);\n    this.root.classList.toggle(\"is-pinned-top\", pinned);\n    if (this.sectionEl) {\n      this.sectionEl.classList.toggle(\"gacs-section-over-chrome\", overlapping);\n    }\n\n    if (this.prevSection) {\n      this.prevSection.style.setProperty(\"--gacs-under-dim\", progress.toFixed(4));\n      this.prevSection.classList.toggle(\"gacs-under-panel\", overlapping);\n    }\n\n    if (overlapping) {\n      this.syncPanelHeight(progress);\n    } else {\n      this.syncPanelHeight(0);\n      if (window.GicleeArtistLayoutSync) {\n        window.GicleeArtistLayoutSync.releaseBioSectionsIfIdle();\n      }\n    }\n\n    if (this.root.classList.contains(\"gacs-end-page-wrap\")) {\n      this.trimEndPageScrollBleed(pinned);\n    }\n  };\n\n  GicleeArtistScrollPanel.prototype.bind = function () {\n    var self = this;\n\n    function scheduleUpdate() {\n      if (self.ticking) return;\n      self.ticking = true;\n      window.requestAnimationFrame(function () {\n        self.ticking = false;\n        self.update();\n      });\n    }\n\n    window.addEventListener(\"scroll\", scheduleUpdate, { passive: true });\n    window.addEventListener(\"resize\", function () {\n      self.measure();\n      self.restSentinelTop = self.sentinel.getBoundingClientRect().top;\n      scheduleUpdate();\n    }, { passive: true });\n  };\n\n  function bootEndPage() {\n    var endSections = document.querySelectorAll(\".giclee-artist-showcase.gacs-end-page\");\n    if (!endSections.length) return;\n\n    document.body.classList.add(\"gacs-gallery-end-page\");\n    endSections.forEach(function (el) {\n      var section = el.closest(\".shopify-section\");\n      if (section) section.classList.add(\"gacs-section-end-page\");\n    });\n  }\n\n  function boot() {\n    bootEndPage();\n\n    document.querySelectorAll(\"[data-giclee-artist-showcase]\").forEach(function (el) {\n      if (el.dataset.gacsInit === \"1\") return;\n      el.dataset.gacsInit = \"1\";\n      var showcase = new GicleeArtistShowcase(el);\n      el._gacsShowcase = showcase;\n\n      if (el.hasAttribute(\"data-gacs-exhibition\")) {\n        var exhibition = new GicleeArtistExhibition(el);\n        if (exhibition.artists && exhibition.artists.length > 1) {\n          exhibition.attachShowcase(showcase);\n          if (window.GicleeArtistBiographyBoot) {\n            window.GicleeArtistBiographyBoot();\n          }\n        }\n      }\n    });\n\n    document.querySelectorAll(\"[data-gacs-scroll-panel]\").forEach(function (el) {\n      if (el.dataset.gacsScrollInit === \"1\") return;\n      el.dataset.gacsScrollInit = \"1\";\n      new GicleeArtistScrollPanel(el);\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", boot);\n  } else {\n    boot();\n  }\n\n  document.addEventListener(\"shopify:section:load\", boot);\n})();\n"],
  "mappings": "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",
  "names": []
}
