{"version":3,"sources":["webpack:///./src/components/SectionSnippet.js","webpack:///./src/components/PublishersTwoColumn.js","webpack:///./src/components/MagWall.js","webpack:///./src/components/sections/HomeDefer.js","webpack:///./src/components/MetricSnippet.js","webpack:///./src/components/HeroMetrics.js","webpack:///./src/components/snippets/DecorationRightLarge.js","webpack:///./node_modules/react-intersection-observer/react-intersection-observer.m.js","webpack:///./src/images/12-yellow-guides.png","webpack:///./src/components/HeroTestimonial.js","webpack:///./src/components/HeroBlueCTA.js","webpack:///./src/images/11-icon-quotes.svg","webpack:///./src/components/MoveInDiv.js"],"names":["Row","styled","span","SectionSnippet","title","subtitle","link","children","MoveInDiv","threshold","triggerOnce","theme","margins","Eyebrows","ArrowButton","attrs","Column","div","mediaMedium","Grid","Container","Line","PublishersTwoColumn","AnimatedLineSvg","static","duration","triggerOffset","DecorationRightLarge","to","Outline","Wrapper","black1","Box","ContainerGrid","Top","Mags","Image","MagsMobile","Bottom","Desktop","Mobile","Trigger","MagWallSection","PureComponent","constructor","props","super","this","state","controllerSM","sceneVRight","sceneVLeft","sceneHTop","sceneHBottom","id","uniqueId","ScrollMagic","TweenLite","defaultOverwrite","ScrollMagicPluginGsap","TimelineMax","initAnimation","componentWillUnmount","destroy","VerticalLeft","translateY","ease","Linear","VerticalRight","HorizontalTop","translateX","HorizontalBottom","Controller","Scene","triggerElement","offset","setTween","addTo","setState","render","images","color","white","OutlinedText","textBlack1","fill","stroke","component","Headline80","PrimaryButton","from","as","Link","fluid","mobileTop","childImageSharp","mobileBottom","desktopLeft","desktopRight","MagWall","data","useStaticQuery","HomeDefer","HeroMetrics","description","number","start","prefix","suffix","HeroTestimonial","media","author","HeroBlueCTA","outline","Div","width","align","active","gray1","Numbers","Headline100","easingFn","t","b","c","d","ts","MetricSnippet","observerRef","createRef","observer","play","componentDidMount","initPositionObserver","disconnect","self","IntersectionObserver","entries","i","length","isIntersecting","intersectionRatio","startAnimation","observe","current","options","startVal","animation","CountUp","error","ref","style","display","dangerouslySetInnerHTML","__html","Background","noBackground","HeroMetricsSection","BackgroundImage","file","height","viewBox","strokeWidth","fillRule","transform","className","points","_extends","Object","assign","target","arguments","source","key","prototype","hasOwnProperty","call","apply","ObserverMap","Map","RootIds","rootId","optionsToId","keys","sort","filter","undefined","map","root","has","set","toString","get","element","callback","_createObserver","instance","thresholds","elements","forEach","entry","_elements$get","inView","some","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","push","splice","indexOf","unobserve","size","isPlainChildren","InView","_React$Component","subClass","superClass","_this","node","_unobserveCb","handleNode","skip","initialInView","observeNode","handleChange","onChange","create","__proto__","_proto","componentDidUpdate","prevProps","rootMargin","delay","_this$props","_this$state","_this$props2","tag","excluded","sourceKeys","_objectWithoutPropertiesLoose","useInView","_temp","_ref","_React$useState","setRef","result","displayName","defaultProps","module","exports","Reverse","sources","mobileTestimonial","desktopTestimonial","alt","src","iconQuotes","logoTestimonial","imageDecoration","brandColor2","linkLabel","translateFrom"],"mappings":"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","file":"components-sections-HomeDefer-4036a4acc3cc2a8d1154.js","sourcesContent":["import React from \"react\";\nimport styled from \"styled-components\";\nimport { Headline40 } from \"./styles/Headings\";\nimport { Eyebrows12 } from \"./styles/Eyebrows\";\nimport { Body20 } from \"./styles/BodyTypes\";\nimport ArrowButton from \"./ArrowButton\";\nimport MoveInDiv from \"./MoveInDiv\";\n\nconst Row = styled.span`\n display: block;\n margin: 11px 0 0;\n`;\n\nconst SectionSnippet = ({ title, subtitle, link, children }) => {\n return (\n \n {title}\n {subtitle && {subtitle}}\n \n {children}\n \n More\n \n \n \n );\n};\n\nexport default SectionSnippet;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport Container from \"./styles/Container\";\nimport SectionSnippet from \"./SectionSnippet\";\nimport { mediaMedium } from \"./styles/variables\";\nimport AnimatedLineSvg from \"./AnimatedLineSvg\";\nimport DecorationRightLarge from \"./snippets/DecorationRightLarge\";\n\nconst Column = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n &:first-child {\n margin-bottom: 86px;\n\n @media (${mediaMedium}) {\n margin-bottom: 0;\n }\n }\n`;\n\nconst Row = styled.div`\n margin: 0 0 26px 0;\n\n @media (${mediaMedium}) {\n margin: 0 0 41px 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n`;\n\nconst Grid = styled(Container)`\n max-width: 480px;\n padding-top: 93px;\n padding-bottom: 86px;\n position: relative;\n overflow: hidden;\n\n @media (${mediaMedium}) {\n max-width: 980px;\n padding-top: 160px;\n padding-bottom: 160px;\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 20%;\n }\n`;\n\nconst Line = styled.span`\n @media (${mediaMedium}) {\n position: absolute;\n z-index: 2;\n width: 30%;\n height: 100%;\n top: 26px;\n left: 26.5%;\n bottom: 0;\n }\n`;\n\nconst PublishersTwoColumn = () => {\n return (\n \n \n \n \n \n \n \n \n \n We build, power, and merchandise your branded Shop and commerce\n articles so you can jumpstart or grow your commerce business\n risk-free.\n \n \n \n \n Not ready for a branded Shop? Earn high-margin affiliate commissions\n with access to our exclusive offers and commerce content driving to\n our marketplaces.\n \n \n \n \n Our performance-based advertising solution is the easiest and most\n streamlined way to scale your revenue from sponsored content,\n newsletters, and native ads.\n \n \n \n \n \n \n Grow your revenue and gain valuable brand exposure by getting listed\n in hundreds of publisher shops in a matter of clicks.\n \n \n \n \n Reach your target audience and drive leads straight to your site\n with performance-based sponsored content at scale.\n \n \n \n \n );\n};\n\nexport default PublishersTwoColumn;\n","import React, { PureComponent } from \"react\";\nimport styled from \"styled-components\";\nimport { Headline80 } from \"./styles/Headings\";\nimport Container from \"./styles/Container\";\nimport { black1, textBlack1, white } from \"./styles/Colors\";\nimport Image from \"./Image\";\nimport PrimaryButton from \"./PrimaryButton\";\nimport OutlinedText from \"./styles/OutlinedText\";\nimport { mediaMedium } from \"./styles/variables\";\nimport { graphql, Link, useStaticQuery } from \"gatsby\";\nimport uniqueId from \"lodash/uniqueId\";\nimport { Linear, TimelineMax, TweenLite } from \"gsap/dist/gsap\";\nimport { ScrollMagicPluginGsap } from \"scrollmagic-plugin-gsap\";\n\nconst Outline = styled.div`\n margin-bottom: 31px;\n`;\n\nconst Wrapper = styled.div`\n background: ${black1};\n padding-bottom: 96px;\n overflow: hidden;\n position: relative;\n\n @media (${mediaMedium}) {\n padding-bottom: 0;\n }\n`;\n\nconst Box = styled.div`\n padding: 92px 0 64px;\n max-width: 334px;\n width: 100%;\n\n @media (${mediaMedium}) {\n padding: 42.6% 0;\n }\n`;\n\nconst ContainerGrid = styled(Container)`\n @media (${mediaMedium}) {\n display: grid;\n grid-template-columns: 50% 50%;\n align-items: center;\n grid-gap: calc(100% * 1 / 12 + 42px);\n }\n\n @media (max-width: 1000px) {\n grid-gap: calc(100% * 1 / 12);\n grid-template-columns: 55% 45%;\n }\n`;\n\nconst Top = styled.div`\n order: 2;\n`;\n\nconst Mags = styled(Image)`\n height: 100%;\n display: none;\n max-height: none !important;\n overflow: visible !important;\n\n &:nth-child(2) {\n transform: translateY(-25%);\n }\n\n @media (${mediaMedium}) {\n display: block;\n }\n`;\n\nconst MagsMobile = styled(Image)`\n display: block;\n left: -30%;\n width: 160% !important;\n max-width: 160% !important;\n max-height: none !important;\n transform: translateX(-10%);\n\n &:nth-child(2) {\n transform: translateX(5%);\n margin-top: 23px;\n }\n\n @media (${mediaMedium}) {\n display: none;\n }\n`;\n\nconst Bottom = styled.div`\n position: relative;\n max-width: 100%;\n\n @media (${mediaMedium}) {\n overflow: hidden;\n align-self: stretch;\n height: 100%;\n }\n`;\n\nconst Desktop = styled.div`\n display: none;\n grid-template-columns: 1fr 1fr;\n height: 100%;\n grid-gap: 35px;\n width: 100%;\n max-height: 1038px;\n\n @media (${mediaMedium}) {\n display: grid;\n }\n\n @media (max-width: 1000px) {\n max-height: 700px;\n }\n`;\n\nconst Mobile = styled.div`\n @media (${mediaMedium}) {\n display: none;\n }\n`;\n\nconst Trigger = styled.div`\n position: absolute;\n top: 15%;\n width: 100%;\n height: 1px;\n`;\n\nclass MagWallSection extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n controllerSM: null,\n sceneVRight: null,\n sceneVLeft: null,\n sceneHTop: null,\n sceneHBottom: null,\n id: uniqueId(\"mag-wall-\")\n };\n }\n\n async componentDidMount() {\n this.ScrollMagic = await import(\"scrollmagic\");\n TweenLite.defaultOverwrite = \"none\";\n\n ScrollMagicPluginGsap(this.ScrollMagic, TweenLite, TimelineMax);\n\n this.initAnimation();\n }\n\n componentWillUnmount() {\n const {\n controllerSM,\n sceneVRight,\n sceneVLeft,\n sceneHTop,\n sceneHBottom\n } = this.state;\n\n if (controllerSM) controllerSM.destroy(true);\n if (sceneVRight) sceneVRight.destroy(true);\n if (sceneVLeft) sceneVLeft.destroy(true);\n if (sceneHTop) sceneHTop.destroy(true);\n if (sceneHBottom) sceneHBottom.destroy(true);\n }\n\n initAnimation() {\n const VerticalLeft = TweenLite.to(\n `#mags-vertical .gatsby-image-wrapper:nth-child(1)`,\n 1,\n {\n translateY: \"-32%\",\n ease: Linear.ease\n }\n );\n\n const VerticalRight = TweenLite.to(\n `#mags-vertical .gatsby-image-wrapper:nth-child(2)`,\n 1,\n {\n translateY: \"15%\",\n ease: Linear.ease\n }\n );\n\n const HorizontalTop = TweenLite.to(\n `#mags-horizontal .gatsby-image-wrapper:nth-child(1)`,\n 1,\n {\n translateX: \"0%\",\n ease: Linear.ease\n }\n );\n\n const HorizontalBottom = TweenLite.to(\n `#mags-horizontal .gatsby-image-wrapper:nth-child(2)`,\n 1,\n {\n translateX: \"-5%\",\n ease: Linear.ease\n }\n );\n\n // init controller\n const controllerSM = new this.ScrollMagic.Controller();\n\n // build scene\n const sceneVLeft = new this.ScrollMagic.Scene({\n triggerElement: `#mag-wall-trigger`,\n duration: 2000,\n offset: -100\n })\n .setTween(VerticalLeft)\n .addTo(controllerSM);\n\n const sceneVRight = new this.ScrollMagic.Scene({\n triggerElement: `#mag-wall-trigger`,\n duration: 2100,\n offset: -100\n })\n .setTween(VerticalRight)\n .addTo(controllerSM);\n\n const sceneHTop = new this.ScrollMagic.Scene({\n triggerElement: `#mag-wall-trigger`,\n duration: 1200,\n offset: 150\n })\n .setTween(HorizontalTop)\n .addTo(controllerSM);\n\n const sceneHBottom = new this.ScrollMagic.Scene({\n triggerElement: `#mag-wall-trigger`,\n duration: 1200,\n offset: 150\n })\n .setTween(HorizontalBottom)\n .addTo(controllerSM);\n\n this.setState({\n sceneVLeft,\n sceneVRight,\n controllerSM,\n sceneHTop,\n sceneHBottom\n });\n }\n\n render() {\n let { images } = this.props;\n return (\n \n \n \n \n \n \n WE WORK
WITH THE\n
\n \n \n BEST\n \n \n \n Get Started\n \n
\n
\n\n \n \n \n \n \n\n \n \n \n \n \n
\n
\n );\n }\n}\n\nconst MagWall = () => {\n const data = useStaticQuery(graphql`\n query {\n desktopLeft: file(relativePath: { eq: \"8-mag-wall-1.png\" }) {\n childImageSharp {\n fluid(quality: 80) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n desktopRight: file(relativePath: { eq: \"8-mag-wall-2.png\" }) {\n childImageSharp {\n fluid(quality: 80) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n mobileTop: file(relativePath: { eq: \"8-mag-wall-mobile-1.png\" }) {\n childImageSharp {\n fluid(quality: 80) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n mobileBottom: file(relativePath: { eq: \"8-mag-wall-mobile-2.png\" }) {\n childImageSharp {\n fluid(quality: 80) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n }\n `);\n return ;\n};\n\nexport default MagWall;\n","import React from \"react\";\nimport PublishersTwoColumn from \"../PublishersTwoColumn\";\nimport HeroMetrics from \"../HeroMetrics\";\nimport HeroTestimonial from \"../HeroTestimonial\";\nimport { Headline32 } from \"../styles/Headings\";\nimport { white } from \"../styles/Colors\";\nimport HeroBlueCTA from \"../HeroBlueCTA\";\nimport { graphql, Link, useStaticQuery } from \"gatsby\";\nimport MagWall from \"../MagWall\";\n\nconst HomeDefer = () => {\n const images = useStaticQuery(graphql`\n query {\n logoTestimonial: file(relativePath: { eq: \"11-entrepeneur-logo.png\" }) {\n childImageSharp {\n fluid(quality: 100) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n desktopTestimonial: file(\n relativePath: { eq: \"11-testimonial-desktop.png\" }\n ) {\n childImageSharp {\n fluid(quality: 100) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n mobileTestimonial: file(\n relativePath: { eq: \"11-testimonial-mobile.png\" }\n ) {\n childImageSharp {\n fluid(quality: 100) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n }\n `);\n\n return (\n <>\n \n\n \n\n \n\n \n \n StackCommerce has been a great partner in helping us launch and grow\n our ecommerce business. We tried running things in-house beforehand\n and had very hit-or-miss results.\n \n \n But since working with StackCommerce, we’ve gotten incredible traction\n and now have a reliable revenue stream we can count on each month.\n \n \n\n \n \n );\n};\n\nexport default HomeDefer;\n","import React, { createRef, PureComponent } from \"react\";\nimport { Headline100 } from \"./styles/Headings\";\nimport { gray1, white } from \"./styles/Colors\";\nimport { Body20 } from \"./styles/BodyTypes\";\nimport styled from \"styled-components\";\nimport { CountUp } from \"countup.js\";\n\nconst Div = styled.div`\n width: ${(props) => props.theme.width ?? \"425px\"};\n max-width: 100%;\n margin: 16px 0 0;\n text-align: ${(props) => (props.align ? \"center\" : \"\")};\n transition: ${(props) => (props.active ? \"1.9s\" : \"0s\")} ease-in color;\n color: ${(props) => (props.active ? white : gray1)};\n`;\n\nconst Numbers = styled(Headline100)`\n transition: ${(props) => (props.active ? \"1.9s\" : \"0s\")} ease-in color;\n color: ${(props) => (props.active ? white : gray1)};\n`;\n\nconst easingFn = function (t, b, c, d) {\n let ts = (t /= d) * t;\n let tc = ts * t;\n return b + c * (tc + -3 * ts + 3 * t);\n};\n\nclass MetricSnippet extends PureComponent {\n constructor(props) {\n super(props);\n\n this.observerRef = createRef();\n\n this.state = {\n observer: null,\n play: false\n };\n }\n\n componentDidMount() {\n this.initPositionObserver();\n }\n\n componentWillUnmount() {\n if (this.state.observer) {\n this.state.observer.disconnect();\n }\n }\n\n initPositionObserver() {\n const self = this;\n const intersectionCallback = (entries) => {\n for (let i = 0; i < entries.length; i++) {\n if (entries[i].isIntersecting && entries[i].intersectionRatio > 0.5) {\n if (!self.state.play) {\n self.startAnimation();\n this.state.observer.disconnect();\n this.setState({ observer: null });\n }\n }\n }\n };\n\n // Create the observer.\n const observer = new IntersectionObserver(intersectionCallback, {\n threshold: 1\n });\n observer.observe(this.observerRef.current);\n this.setState({ observer });\n }\n\n startAnimation() {\n const { number, prefix, suffix, start = 1 } = this.props;\n\n const options = {\n easingFn,\n startVal: start,\n duration: 2,\n prefix: prefix ?? \"\",\n suffix: suffix ?? \"\"\n };\n\n this.setState({ play: true });\n\n const animation = new CountUp(this.observerRef.current, number, options);\n if (!animation.error) {\n animation.start();\n }\n }\n\n render() {\n const { description, number, prefix, suffix, align, theme } = this.props;\n\n return (\n <>\n \n \n {prefix ?? \"\"}\n {number}\n {suffix ?? \"\"}\n \n \n
\n \n
\n \n );\n }\n}\n\nexport default MetricSnippet;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport Container from \"./styles/Container\";\nimport { black1 } from \"./styles/Colors\";\nimport { mediaMedium } from \"./styles/variables\";\nimport MetricSnippet from \"./MetricSnippet\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport BackgroundImage from \"gatsby-background-image\";\n\nconst Wrapper = styled(Container)`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n`;\n\nconst Background = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: ${black1};\n height: ${(props) => (props.noBackground ? \"297px\" : \"297px\")};\n background-size: auto 100%;\n padding: 0 40px;\n\n &:after,\n &:before {\n background-position: bottom center !important;\n background-repeat: no-repeat !important;\n background-size: cover !important;\n }\n\n @media (${mediaMedium}) {\n height: ${(props) => (props.noBackground ? \"480px\" : \"450px\")};\n padding: 0;\n\n &:after,\n &:before {\n background-size: contain !important;\n }\n }\n`;\n\nconst HeroMetricsSection = ({ images, noBackground, theme, ...props }) => {\n return (\n \n \n \n \n \n );\n};\n\nconst HeroMetrics = (props) => {\n const images = useStaticQuery(graphql`\n query {\n file(relativePath: { eq: \"10-metric-2x.png\" }) {\n childImageSharp {\n fluid(quality: 100) {\n ...GatsbyImageSharpFluid_withWebp\n ...GatsbyImageSharpFluidLimitPresentationSize\n }\n }\n }\n }\n `);\n return ;\n};\n\nexport default HeroMetrics;\n","import React from \"react\";\n\nconst DecorationRightLarge = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default DecorationRightLarge;\n","import { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar ObserverMap = new Map();\nvar RootIds = new Map();\nvar rootId = 0;\n/**\r\n * Generate a unique ID for the root element\r\n * @param root\r\n */\n\nfunction getRootId(root) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n/**\r\n * Convert the options to a string Id, based on the values.\r\n * Ensures we can reuse the same observer when observing elements with the same options.\r\n * @param options\r\n */\n\n\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(function (key) {\n return options[key] !== undefined;\n }).map(function (key) {\n return key + \"_\" + (key === 'root' ? getRootId(options.root) : options[key]);\n }).toString();\n}\n\nfunction createObserver(options) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n var id = optionsToId(options);\n var instance = ObserverMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n var elements = new Map();\n var thresholds;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var _elements$get; // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n\n\n var inView = entry.isIntersecting && thresholds.some(function (threshold) {\n return entry.intersectionRatio >= threshold;\n }); // @ts-ignore support IntersectionObserver v2\n\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n (_elements$get = elements.get(entry.target)) == null ? void 0 : _elements$get.forEach(function (callback) {\n callback(inView, entry);\n });\n });\n }, options); // Ensure we have a valid thresholds array. If not, use the threshold from the options\n\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id: id,\n observer: observer,\n elements: elements\n };\n ObserverMap.set(id, instance);\n }\n\n return instance;\n}\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!element) return function () {}; // An observer with the same options can be reused, so lets use this fact\n\n var _createObserver = createObserver(options),\n id = _createObserver.id,\n observer = _createObserver.observer,\n elements = _createObserver.elements; // Register the callback listener for this element\n\n\n var callbacks = elements.get(element) || [];\n\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements[\"delete\"](element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n ObserverMap[\"delete\"](id);\n }\n };\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\r\n * Monitors scroll, and triggers the children function with updated props\r\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.node = null;\n _this._unobserveCb = null;\n\n _this.handleNode = function (node) {\n if (_this.node) {\n // Clear the old observer, before we start observing a new element\n _this.unobserve();\n\n if (!node && !_this.props.triggerOnce && !_this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n _this.setState({\n inView: !!_this.props.initialInView,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n };\n\n _this.handleChange = function (inView, entry) {\n if (inView && _this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n _this.unobserve();\n }\n\n if (!isPlainChildren(_this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n };\n\n _this.state = {\n inView: !!props.initialInView,\n entry: undefined\n };\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unobserve();\n this.node = null;\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node || this.props.skip) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n trackVisibility = _this$props.trackVisibility,\n delay = _this$props.delay;\n this._unobserveCb = observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n };\n\n _proto.unobserve = function unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n\n this._unobserveCb = null;\n }\n };\n\n _proto.render = function render() {\n if (!isPlainChildren(this.props)) {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\", \"skip\", \"trackVisibility\", \"delay\", \"initialInView\"]);\n\n return /*#__PURE__*/createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\nInView.displayName = 'InView';\nInView.defaultProps = {\n threshold: 0,\n triggerOnce: false,\n initialInView: false\n};\n\nfunction useInView(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n threshold = _ref.threshold,\n delay = _ref.delay,\n trackVisibility = _ref.trackVisibility,\n rootMargin = _ref.rootMargin,\n root = _ref.root,\n triggerOnce = _ref.triggerOnce,\n skip = _ref.skip,\n initialInView = _ref.initialInView;\n\n var unobserve = useRef();\n\n var _React$useState = useState({\n inView: !!initialInView\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (unobserve.current !== undefined) {\n unobserve.current();\n unobserve.current = undefined;\n } // Skip creating the observer\n\n\n if (skip) return;\n\n if (node) {\n unobserve.current = observe(node, function (inView, entry) {\n setState({\n inView: inView,\n entry: entry\n });\n\n if (entry.isIntersecting && triggerOnce && unobserve.current) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve.current();\n unobserve.current = undefined;\n }\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold,\n // @ts-ignore\n trackVisibility: trackVisibility,\n // @ts-ignore\n delay: delay\n });\n }\n }, // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [// If the threshold is an array, convert it to a string so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold, root, rootMargin, triggerOnce, skip, trackVisibility, delay]);\n /* eslint-disable-next-line */\n\n useEffect(function () {\n if (!unobserve.current && state.entry && !triggerOnce && !skip) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView\n });\n }\n });\n var result = [setRef, state.inView, state.entry]; // Support object destructuring, by adding the specific values.\n\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport default InView;\nexport { InView, useInView };","module.exports = __webpack_public_path__ + \"static/12-yellow-guides-462802577a7295289fde21045ff0ae23.png\";","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Body20 } from \"./styles/BodyTypes\";\nimport Image from \"./Image\";\nimport Container from \"./styles/Container\";\nimport { white } from \"./styles/Colors\";\nimport { mediaMedium } from \"./styles/variables\";\nimport iconQuotes from \"../images/11-icon-quotes.svg\";\nimport BackgroundImage from \"gatsby-background-image\";\n\nconst Box = styled.div`\n max-width: 590px;\n position: relative;\n z-index: 2;\n`;\n\nconst Reverse = styled(Image)`\n transform: rotate(180deg);\n`;\n\nconst Wrapper = styled(BackgroundImage)`\n padding: 95px 0 89px;\n overflow: hidden;\n position: relative;\n background: #d3d0de;\n\n &:before,\n &:after {\n background-repeat: no-repeat !important;\n background-position: center center !important;\n background-size: cover !important;\n }\n\n @media (${mediaMedium}) {\n padding: 160px 0 153px;\n }\n`;\n\nconst HeroTestimonial = ({ author, media, children }) => {\n const sources = media.mobileTestimonial\n ? [\n media.mobileTestimonial.childImageSharp.fluid,\n {\n ...media.desktopTestimonial.childImageSharp.fluid,\n media: `(${mediaMedium})`\n }\n ]\n : [media.desktopTestimonial.childImageSharp.fluid];\n\n return (\n \n \n \n \n {children}\n \n \n {author}\n \n \n \n \n \n );\n};\n\nexport default HeroTestimonial;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport Container from \"./styles/Container\";\nimport { Headline64 } from \"./styles/Headings\";\nimport { Body20 } from \"./styles/BodyTypes\";\nimport PrimaryButton from \"./PrimaryButton\";\nimport { brandColor2, white } from \"./styles/Colors\";\nimport { mediaMedium } from \"./styles/variables\";\nimport imageDecoration from \"../images/12-yellow-guides.png\";\nimport OutlinedText from \"./styles/OutlinedText\";\n\nconst Box = styled.div`\n max-width: 90%;\n\n @media (${mediaMedium}) {\n max-width: 80%;\n padding-top: 112px;\n }\n`;\n\nconst Grid = styled(Container)`\n padding-top: 92px;\n padding-bottom: 96px;\n\n @media (${mediaMedium}) {\n padding-top: 88px;\n padding-bottom: 88px;\n display: grid;\n grid-template-columns: 50% 50%;\n grid-gap: 16px;\n position: relative;\n\n &:after {\n position: absolute;\n content: \"\";\n width: 100%;\n top: 0;\n height: 100%;\n left: 50%;\n background: url(\"${imageDecoration}\") top left no-repeat;\n background-size: contain;\n pointer-events: none;\n }\n }\n`;\n\nconst Background = styled.div`\n background-color: ${brandColor2};\n overflow: hidden;\n`;\n\nconst HeroBlueCTA = ({ title, outline, description, link, linkLabel, theme }) => {\n return (\n \n \n
\n \n {title}\n
\n \n {outline}\n \n
\n
\n \n \n {link && (\n {linkLabel ?? \"Sign Up\"}\n )}\n \n
\n
\n );\n};\n\nexport default HeroBlueCTA;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NiAzNCI+CiAgPGRlZnMvPgogIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICA8ZyBmaWxsPSIjRkZDOTAwIj4KICAgICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTEyLjE4IDBsNy4xIDUuNzVjLTMuMSAxLjM2LTcuNTkgNS42NS04Ljg2IDkuMzUuNS0uMiAxLjQ3LS4zOSAyLjU0LS4zOSA0LjY3IDAgOC40NyAzLjYgOC40NyA5LjA2QzIxLjQzIDI5LjQyIDE2Ljc2IDM0IDExLjMgMzQgNS4zNiAzNCAwIDI5LjQyIDAgMjEuNDMgMCAxMi44NiA0LjU4IDUuMzYgMTIuMTggMHptMjQuMDYgMGw3LjExIDUuNzVjLTMuMTIgMS4zNi03LjYgNS42NS04Ljg2IDkuMzUuNDgtLjIgMS40Ni0uMzkgMi41My0uMzkgNC42OCAwIDguNDggMy42IDguNDggOS4wNkM0NS41IDI5LjQyIDQwLjgyIDM0IDM1LjM2IDM0Yy01Ljk0IDAtMTEuMy00LjU4LTExLjMtMTIuNTcgMC04LjU3IDQuNTgtMTYuMDcgMTIuMTgtMjEuNDN6Ii8+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=\"","import React from \"react\";\nimport { useInView } from \"react-intersection-observer\";\nimport { MoveInBottom } from \"./styles/animations\";\n\nconst MoveInDiv = ({\n children,\n triggerOnce = true,\n translateFrom,\n threshold = [0.3, 0.5, 0.75]\n}) => {\n const { ref, inView } = useInView({\n threshold: threshold,\n delay: 30,\n triggerOnce\n });\n\n return (\n \n {children}\n \n );\n};\n\nexport default MoveInDiv;\n"],"sourceRoot":""}