{
  "version": 3,
  "sources": ["/cdn/shop/t/63/assets/smilefusion-init.js?theme_rev=20260421-home-showcase-replace-1"],
  "sourcesContent": ["injectCartMarkup();\nrenderCountryOptions();\nconst shopifyActiveCountry = (window.smilefusionLocalization?.activeCountry || \"\").toLowerCase();\nconst shopifyActiveLanguage = String(window.smilefusionLocalization?.activeLanguage || \"\")\n  .toLowerCase()\n  .split(\"-\")[0];\nconst savedCountry = (window.localStorage.getItem(\"smilefusion-country\") || \"\").toLowerCase();\nconst initialCountry = shopifyActiveCountry || savedCountry || \"nl\";\nconst initialLanguage = translations[shopifyActiveLanguage]\n  ? shopifyActiveLanguage\n  : localeConfig[initialCountry]?.language || \"en\";\n\napplyLocale(initialCountry, {\n  syncShopify: false,\n  applyLanguage: false\n});\napplyTranslations(initialLanguage);\nrenderCart();\ninitializeProductGallery();\ninitializeCartEvents();\ninitializeSupportForm();\ninitializeAboutSnapScroll();\ninitializeFaqAccordionAnimation();\ninitializeActiveNavigationState();\ninitializeScrollEffects();\n\nif (!savedCountry) {\n  window.requestAnimationFrame(() => {\n    openCountryModal();\n  });\n}\n\nfunction initializeScrollEffects() {\n  const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  const revealGroups = [\n    { selector: \".home-hero-aside__card, .home-hero-aside__metrics\", staggerChildren: false },\n    { selector: \".home-story-band article\", staggerChildren: true },\n    { selector: \".home-bestsellers-head\", staggerChildren: false },\n    { selector: \".product-card--feature\", staggerChildren: false },\n    { selector: \".shop-product\", staggerChildren: false },\n    { selector: \".shop-product-details__copy, .shop-product-details__media\", staggerChildren: true },\n    { selector: \".editorial-hero__copy, .editorial-hero__media\", staggerChildren: true },\n    { selector: \".editorial-card-grid\", staggerChildren: true, childSelector: \".editorial-card\" },\n    { selector: \".faq-simple-wrap\", staggerChildren: false },\n    { selector: \".support-contact-shell\", staggerChildren: false }\n  ];\n\n  const parallaxSelector = [\n    \".editorial-hero__media\",\n    \".shop-product-details__media\",\n    \".home-hero-image-shell\"\n  ].join(\", \");\n\n  function markRevealTargets() {\n    revealGroups.forEach((group) => {\n      document.querySelectorAll(group.selector).forEach((element) => {\n        if (group.staggerChildren) {\n          const children = Array.from(element.querySelectorAll(group.childSelector || \":scope > *\"));\n\n          if (children.length) {\n            children.forEach((child, index) => {\n              child.classList.add(\"reveal-on-scroll\");\n              child.style.setProperty(\"--reveal-delay\", `${index * 90}ms`);\n            });\n            return;\n          }\n        }\n\n        element.classList.add(\"reveal-on-scroll\");\n        element.style.setProperty(\"--reveal-delay\", \"0ms\");\n      });\n    });\n\n    document.querySelectorAll(parallaxSelector).forEach((element) => {\n      element.classList.add(\"parallax-panel\");\n    });\n  }\n\n  function revealImmediately() {\n    document.body.classList.add(\"reveal-ready\");\n    markRevealTargets();\n    document.querySelectorAll(\".reveal-on-scroll\").forEach((element) => {\n      element.classList.add(\"is-visible\");\n    });\n  }\n\n  if (reduceMotion || !(\"IntersectionObserver\" in window)) {\n    revealImmediately();\n    window.refreshScrollEffects = revealImmediately;\n    return;\n  }\n\n  const revealObserver = new IntersectionObserver(\n    (entries) => {\n      entries.forEach((entry) => {\n        if (!entry.isIntersecting) {\n          return;\n        }\n\n        entry.target.classList.add(\"is-visible\");\n        revealObserver.unobserve(entry.target);\n      });\n    },\n    {\n      threshold: 0.14,\n      rootMargin: \"0px 0px -10% 0px\"\n    }\n  );\n\n  const parallaxPanels = new Set();\n  let ticking = false;\n\n  function updateParallax() {\n    ticking = false;\n\n    parallaxPanels.forEach((panel) => {\n      const rect = panel.getBoundingClientRect();\n      const viewportHeight = window.innerHeight || 1;\n      const progress = (rect.top + rect.height * 0.5 - viewportHeight * 0.5) / viewportHeight;\n      const bounded = Math.max(-1, Math.min(1, progress));\n      panel.style.setProperty(\"--panel-parallax-y\", `${bounded * -14}px`);\n    });\n  }\n\n  function requestParallaxUpdate() {\n    if (ticking) {\n      return;\n    }\n\n    ticking = true;\n    window.requestAnimationFrame(updateParallax);\n  }\n\n  function refreshScrollEffects() {\n    document.body.classList.add(\"reveal-ready\");\n    markRevealTargets();\n\n    document.querySelectorAll(\".reveal-on-scroll:not([data-reveal-bound])\").forEach((element) => {\n      element.setAttribute(\"data-reveal-bound\", \"true\");\n      revealObserver.observe(element);\n    });\n\n    document.querySelectorAll(\".parallax-panel\").forEach((panel) => {\n      parallaxPanels.add(panel);\n    });\n\n    requestParallaxUpdate();\n  }\n\n  window.addEventListener(\"scroll\", requestParallaxUpdate, { passive: true });\n  window.addEventListener(\"resize\", requestParallaxUpdate);\n  window.addEventListener(\"load\", requestParallaxUpdate);\n  window.refreshScrollEffects = refreshScrollEffects;\n  refreshScrollEffects();\n}\n\r\n"],
  "mappings": "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",
  "names": []
}
