{
  "version": 3,
  "sources": ["framer:toplevel:framer:toplevel/default/0"],
  "sourcesContent": ["\n        import * as React from \"react\"\n        import * as ReactDOM from \"react-dom/client\"\n        import * as Framer from \"framer\"\n\n        window.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\n            return React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\n        }\n\n        // A lot of libraries assume process.env.NODE_ENV is present in runtime/buildtime, so we are polyfilling it\n        window.process = {\n            ...window.process,\n            env: {\n                ...(window.process ? window.process.env: undefined),\n                NODE_ENV: \"production\"\n            }\n        }\n\n        // Fallback support for stack gaps\n        Framer.installFlexboxGapWorkaroundIfNeeded()\n\n        ;(async () => {\n            const routes = {augiA20Il: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/dN9QvUnsiIuGVFK8zwsI/apmcxQ8SWKKCAY1CnN9L/augiA20Il.js\")), path: \"/\"}, uwPgF5Jhr: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/nJTWzPyE0lNS9wL77Hjy/j4nlIJaSuDXbRcDZxxQi/uwPgF5Jhr.js\")), path: \"/page\"}, nHxz1i7b9: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/rY6PyvHPdCC0olXUnO0Z/gcRQUqTQ3wpE5Qu14Qva/nHxz1i7b9.js\")), path: \"/projects\"}, BgZNvJKvI: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/vXxHKOBUjwPFzASFnDl3/TA5aPLovl4sbGZ7Wlca2/BgZNvJKvI.js\")), path: \"/work\"}, fNHOEFTwZ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pwfnoR4lQ4ghf9OrIVVO/YWhJPleMVfNcp7yOdCsM/fNHOEFTwZ.js\")), path: \"/writing\"}, cjaupgL9h: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/2vJNrN15moDvsbOS2BEl/NH54kjgAC53qgHQnIgXN/cjaupgL9h.js\")), path: \"/stack\"}, WftIM9LDY: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/9pDEi1V2oBMbccEjsFSd/Z9u2wYhKzk0ARvgrfBe9/WftIM9LDY.js\")), path: \"/about\"}, nJant3s9M: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/4cSrbCSDB9oWYD9fE9KY/wuaT7B0C8aXtIJaDXiXX/nJant3s9M.js\")), path: \"/contact\"}, DLCYUTAH8: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/9iaGjLWi6DSJ3TEJeLxc/7pe78DrpkvfTQkOdkrZP/DLCYUTAH8.js\")), path: \"/404\"}, PTFtxJMuq: {collectionId: \"wYgQWa5sQ\", elements: {dOnDTVN1b: \"buy\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/9v4L6RI96gfIkFZqffSt/lC9vRMWopHDyRti4eUmU/PTFtxJMuq.js\")), path: \"/products/:Zp4nun4Qc\"}, rfLZp8aP9: {collectionId: \"AVdUf_FiS\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8icAjXmaTiNowWD7IG4p/NAg1NVcjTFZSaRIKwyUd/rfLZp8aP9.js\")), path: \"/writing/:SVI4jjfql\"}, P5UvD0qhU: {collectionId: \"ZhhB6pWIW\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/zOgW00zjuK1PdhK9Cpj4/Y3EbwfdkXX2xka6hRg7I/P5UvD0qhU.js\")), path: \"/projects/:q9mCi4BXS\"}}\n            const collectionUtils = {AVdUf_FiS: async () => (await import(\"https://framerusercontent.com/modules/6eUQFJKhbYy9QbBpk3K4/bxZU0dT38PyccqKYtHuL/AVdUf_FiS.js\"))?.[\"utils\"], wYgQWa5sQ: async () => (await import(\"https://framerusercontent.com/modules/seCwmMwKVvELDzosSwO1/0x8iHKgd1FHwWlq2yH42/wYgQWa5sQ.js\"))?.[\"utils\"], ZhhB6pWIW: async () => (await import(\"https://framerusercontent.com/modules/pkNmZao6cZtED8q9NEJ0/waFkneFpF7aEyI3E9nkG/ZhhB6pWIW.js\"))?.[\"utils\"]}\n            const locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\"}]\n            const notFoundPage = Framer.lazy(() => import(\"https://framerusercontent.com/modules/9iaGjLWi6DSJ3TEJeLxc/7pe78DrpkvfTQkOdkrZP/DLCYUTAH8.js\"))\n            const container = document.getElementById(\"main\")\n\n            let routeId, localeId, pathVariables, shouldHydrate = false\n            if (\"framerHydrateV2\" in container.dataset) {\n                const routeData = JSON.parse(container.dataset.framerHydrateV2)\n                routeId = routeData.routeId\n                localeId = routeData.localeId\n                pathVariables = routeData.pathVariables\n                shouldHydrate = true\n            } else {\n                const routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\n                routeId = routeData.routeId\n                localeId = routeData.localeId\n                pathVariables = routeData.pathVariables\n            }\n\n            const route = routes[routeId]\n            const RootComponent = await route.page.preload()\n            routes[routeId].page = RootComponent\n\n            const content = React.createElement(\n                Framer.PageRoot,\n                {\n                    RootComponent,\n                    isWebsite: true,\n                    routeId,\n                    pathVariables,\n                    routes,\n                    collectionUtils,\n                    notFoundPage,\n                    isReducedMotion: true,\n                    localeId,\n                    locales,\n                }\n            )\n\n            const contentWithFeaturesContext = React.createElement(\n                Framer.LibraryFeaturesProvider,\n                {\n                    children: content,\n                    value: {imgSizesWorkaroundEnabled: false}\n                }\n            )\n\n\n            const page = React.createElement(Framer.PageEffectsProvider, {\n                children: contentWithFeaturesContext,\n                value: {routes: {}}\n            })\n\n            if (shouldHydrate) {\n                React.startTransition(() => {\n                    ReactDOM.hydrateRoot(container, page)\n                })\n            } else {\n                ReactDOM.createRoot(container).render(page)\n            }\n        })().catch(error => {\n            window.__send_framer_event && window.__send_framer_event(\"published_site_load_error\", {\n                message: String(error),\n                stack: error instanceof Error && typeof error.stack === \"string\" ? error.stack : null\n            })\n            throw error\n        })\n\n        \n        ;(async () => {\n            const { default: Badge } = await import(\"__framer-badge\")\n            const ContainerWithStyleAppearEffect = Framer.withStyleAppearEffect(Framer.Container)\n            React.startTransition(() => {\n                ReactDOM.createRoot(document.getElementById(\"__framer-badge-container\"))\n                    .render(React.createElement(ContainerWithStyleAppearEffect, {\n                        className: \"__framer-badge\",\n                        __framer__threshold: 0.5,\n                        __framer__animateOnce: true,\n                        __framer__opacity: 0,\n                        __framer__targetOpacity: 1,\n                        __framer__rotate: 0,\n                        __framer__x: 0,\n                        __framer__y: 10,\n                        __framer__scale: 1,\n                        __framer__transition: {\n                            \"type\": \"spring\",\n                            \"ease\": [0.44, 0, 0.56, 1],\n                            \"duration\": 0.3,\n                            \"delay\": 1,\n                            \"stiffness\": 350,\n                            \"damping\": 40,\n                            \"mass\": 1.5\n                        },\n                        __framer__rotateX: 0,\n                        __framer__rotateY: 0,\n                        __framer__perspective: 1200,\n                    }, React.createElement(Badge)))\n                })\n        })()\n    "],
  "mappings": "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",
  "names": ["window", "packageAndFilename", "exportIdentifier", "B", "ErrorPlaceholder", "installFlexboxGapWorkaroundIfNeeded", "routes", "lazy", "collectionUtils", "locales", "notFoundPage", "container", "routeId", "localeId", "pathVariables", "shouldHydrate", "routeData", "inferInitialRouteFromPath", "RootComponent", "content", "PageRoot", "contentWithFeaturesContext", "LibraryFeaturesProvider", "page", "PageEffectsProvider", "Z", "d", "r", "error", "Badge", "ContainerWithStyleAppearEffect", "withStyleAppearEffect", "Container"]
}
