{"version":3,"file":"component---src-pages-index-js-10e57234fc8dbc7a6962.js","mappings":"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","sources":["webpack://SlatePages/./src/assets/svgs/features/icon6.svg","webpack://SlatePages/./src/utils/helpers.js","webpack://SlatePages/./node_modules/@material-ui/icons/NavigateBefore.js","webpack://SlatePages/./node_modules/react-material-ui-carousel/dist/components/Carousel.js","webpack://SlatePages/./src/assets/svgs/features/icon8.svg","webpack://SlatePages/./node_modules/@material-ui/core/esm/styles/createMuiStrictModeTheme.js","webpack://SlatePages/./node_modules/@material-ui/core/esm/styles/createStyles.js","webpack://SlatePages/./node_modules/@material-ui/core/esm/styles/withTheme.js","webpack://SlatePages/./src/assets/svgs/features/icon7.svg","webpack://SlatePages/./src/assets/svgs/benefits/Icon3.svg","webpack://SlatePages/./src/assets/svgs/benefits/Icon2.svg","webpack://SlatePages/./src/assets/svgs/features/icon5.svg","webpack://SlatePages/./node_modules/react-material-ui-carousel/dist/index.js","webpack://SlatePages/./src/assets/svgs/features/icon4.svg","webpack://SlatePages/./src/assets/svgs/benefits/Icon1.svg","webpack://SlatePages/./node_modules/@material-ui/icons/NavigateNext.js","webpack://SlatePages/./node_modules/react-swipeable/dist/react-swipeable.umd.js","webpack://SlatePages/./node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js","webpack://SlatePages/./src/assets/svgs/features/icon2.svg","webpack://SlatePages/./node_modules/auto-bind/index.js","webpack://SlatePages/./node_modules/gsap/Observer.js","webpack://SlatePages/./node_modules/gsap/ScrollTrigger.js","webpack://SlatePages/./src/components/home/home-hero-section.js","webpack://SlatePages/./node_modules/@material-ui/core/esm/Card/Card.js","webpack://SlatePages/./node_modules/@material-ui/core/esm/CardContent/CardContent.js","webpack://SlatePages/./src/components/home/benefit-card.js","webpack://SlatePages/./src/assets/images/benefits/Slate_iPhone.png","webpack://SlatePages/./src/utils/durations.js","webpack://SlatePages/./src/components/home/home-benefits-section.js","webpack://SlatePages/./node_modules/@material-ui/core/esm/CardMedia/CardMedia.js","webpack://SlatePages/./src/components/home/industry-card.js","webpack://SlatePages/./src/components/home/home-industries-section.js","webpack://SlatePages/./src/components/home/feature-card.js","webpack://SlatePages/./src/assets/images/feature/checkerboard/QR_left.svg","webpack://SlatePages/./src/assets/images/feature/checkerboard/QR_right.svg","webpack://SlatePages/./src/components/home/features-items.js","webpack://SlatePages/./src/components/home/features-items-mobile.js","webpack://SlatePages/./src/components/home/home-features-section.js","webpack://SlatePages/./src/components/home/home-pricing-section.js","webpack://SlatePages/./src/assets/images/pricing/Pricing icon 1.svg","webpack://SlatePages/./src/assets/images/pricing/Pricing icon 2.svg","webpack://SlatePages/./src/assets/images/pricing/Pricing icon 3.svg","webpack://SlatePages/./src/assets/images/testimonials-section/steven-tyc-assistant-fire-chief-middlefield-vol-fire-company.jpeg","webpack://SlatePages/./src/components/home/testimonials-section.js","webpack://SlatePages/./src/assets/images/testimonials-section/amy-grewe-arbor-aesthetics.jpeg","webpack://SlatePages/./src/assets/images/testimonials-section/kevin-moreira-IPC-lydon.png","webpack://SlatePages/./src/pages/index.js","webpack://SlatePages/./src/assets/svgs/features/icon3.svg","webpack://SlatePages/./node_modules/@material-ui/icons/FiberManualRecord.js","webpack://SlatePages/./src/assets/svgs/features/icon1.svg"],"sourcesContent":["var React = require('react');\n\nfunction Icon6 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"6\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-962.000000, -3885.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"Item-Copy-3---Active\",\"transform\":\"translate(942.000000, 964.000000)\"},React.createElement(\"path\",{\"d\":\"M34.5,22 C29.2426695,22 24.9714286,26.295786 24.9714286,31.5833299 L24.9714286,36.1666741 L22.9,36.1666741 C21.3148977,36.1666741 20,37.489132 20,39.0833397 L20,54.0833344 C20,55.6775421 21.3148977,57 22.9,57 L46.1,57 C47.6851027,57 49,55.6775421 49,54.0833344 L49,39.0833397 C49,37.489132 47.6851027,36.1666741 46.1,36.1666741 L44.0285714,36.1666741 L44.0285714,31.5833299 C44.0285714,26.295786 39.7573313,22 34.5,22 Z M34.5,24.4999991 C38.4232401,24.4999991 41.5428571,27.6375438 41.5428571,31.5833299 L41.5428571,36.1666741 L27.4571429,36.1666741 L27.4571429,31.5833299 C27.4571429,27.6375438 30.576759,24.4999991 34.5,24.4999991 Z M22.9,38.6666732 L46.1,38.6666732 C46.3510116,38.6666732 46.5142857,38.8308815 46.5142857,39.0833397 L46.5142857,54.0833344 C46.5142857,54.3357926 46.3510116,54.5000009 46.1,54.5000009 L22.9,54.5000009 C22.6489872,54.5000009 22.4857143,54.3357926 22.4857143,54.0833344 L22.4857143,39.0833397 C22.4857143,38.8308815 22.6489872,38.6666732 22.9,38.6666732 Z M34.5,41.1666723 C32.455488,41.1666723 30.7714286,42.8604217 30.7714286,44.916671 C30.7714286,45.769129 31.1183112,46.5103787 31.6,47.1432119 L31.6,49.0833362 C31.6,50.6775439 32.9148981,52.0000018 34.5,52.0000018 C36.0851027,52.0000018 37.4,50.6775439 37.4,49.0833362 L37.4,47.1432119 C37.88169,46.5103787 38.2285714,45.769129 38.2285714,44.916671 C38.2285714,42.8604217 36.5445124,41.1666723 34.5,41.1666723 Z M34.5,43.6666714 C35.201133,43.6666714 35.7428571,44.2115046 35.7428571,44.916671 C35.7428571,45.2939208 35.5851096,45.6100457 35.3285714,45.841129 C35.0634697,46.0796205 34.9126533,46.4209073 34.9142857,46.7786287 L34.9142857,49.0833362 C34.9142857,49.3357944 34.7510124,49.5000027 34.5,49.5000027 C34.2489876,49.5000027 34.0857143,49.3357944 34.0857143,49.0833362 L34.0857143,46.7786287 C34.0873467,46.4209073 33.9365303,46.0796205 33.6714286,45.841129 C33.41489,45.6100457 33.2571429,45.2939208 33.2571429,44.916671 C33.2571429,44.2115046 33.7988666,43.6666714 34.5,43.6666714 L34.5,43.6666714 Z\",\"id\":\"6\"})))))]);\n}\n\nIcon6.defaultProps = {\"width\":\"29px\",\"height\":\"35px\",\"viewBox\":\"0 0 29 35\",\"version\":\"1.1\"};\n\nmodule.exports = Icon6;\n\nIcon6.default = Icon6;\n","export const changeClickScrollHeight = node => {\n  const windowScrollY = window.pageYOffset || document.documentElement.scrollTop;\n  const currentItemScrollY = node && node.getBoundingClientRect().top;\n  return windowScrollY + currentItemScrollY\n}\n\nexport const copyToTheClipboard = (val) => {\n  const replacedResult = val.replaceAll('test', '')\n  let dummy = document.createElement(\"textarea\");\n  document.body.appendChild(dummy);\n  dummy.value = replacedResult;\n  dummy.select();\n  document.execCommand(\"copy\");\n  document.body.removeChild(dummy);\n}\n\nexport const  canUseWebP = () => {\n  let elem = document.createElement('canvas');\n  if (!!(elem.getContext && elem.getContext('2d'))) {\n    return elem.toDataURL('image/webp') && elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;\n  }\n  return false;\n}\n\nfunction capitalizeFirstLetter(str) {\n  return str\n    .toLowerCase()\n    .replace(/\\w/, firstLetter => firstLetter.toUpperCase());\n}\n\nexport function updateSnakeCaseToCapitalisedText(str) {\n  return str.split(\"_\").map(word => capitalizeFirstLetter(word)).join(\" \");\n}\n\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _default = (0, _createSvgIcon.default)(/*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'NavigateBefore');\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n  return target;\n};\nvar _react = require('react');\nvar _react2 = _interopRequireDefault(_react);\nvar _Fade = require('@material-ui/core/Fade');\nvar _Fade2 = _interopRequireDefault(_Fade);\nvar _Slide = require('@material-ui/core/Slide');\nvar _Slide2 = _interopRequireDefault(_Slide);\nvar _IconButton = require('@material-ui/core/IconButton');\nvar _IconButton2 = _interopRequireDefault(_IconButton);\nvar _styles = require('@material-ui/core/styles');\nvar _autoBind = require('auto-bind');\nvar _autoBind2 = _interopRequireDefault(_autoBind);\nvar _FiberManualRecord = require('@material-ui/icons/FiberManualRecord');\nvar _FiberManualRecord2 = _interopRequireDefault(_FiberManualRecord);\nvar _NavigateBefore = require('@material-ui/icons/NavigateBefore');\nvar _NavigateBefore2 = _interopRequireDefault(_NavigateBefore);\nvar _NavigateNext = require('@material-ui/icons/NavigateNext');\nvar _NavigateNext2 = _interopRequireDefault(_NavigateNext);\nvar _reactSwipeable = require('react-swipeable');\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _toConsumableArray(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n    return arr2;\n  } else {\n    return Array.from(arr);\n  }\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nfunction _objectWithoutProperties(obj, keys) {\n  var target = {};\n  for (var i in obj) {\n    if (keys.indexOf(i) >= 0) continue;\n    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n    target[i] = obj[i];\n  }\n  return target;\n}\nvar styles = {\n  root: {\n    position: \"relative\",\n    overflow: \"hidden\"\n  },\n  indicators: {\n    width: \"100%\",\n    marginTop: \"10px\",\n    textAlign: \"center\"\n  },\n  indicator: {\n    cursor: \"pointer\",\n    transition: \"200ms\",\n    padding: 0,\n    color: \"#afafaf\",\n    '&:hover': {\n      color: \"#1f1f1f\"\n    },\n    '&:active': {\n      color: \"#1f1f1f\"\n    }\n  },\n  indicatorIcon: {\n    fontSize: \"15px\"\n  },\n  active: {\n    color: \"#494949\"\n  },\n  buttonWrapper: {\n    position: \"absolute\",\n    height: \"100px\",\n    backgroundColor: \"transparent\",\n    top: \"calc(50% - 70px)\",\n    '&:hover': {\n      '& $button': {\n        backgroundColor: \"black\",\n        filter: \"brightness(120%)\",\n        opacity: \"0.4\"\n      }\n    }\n  },\n  fullHeightHoverWrapper: {\n    height: \"100%\",\n    // This is 100% - indicator height - indicator margin\n    top: \"0\"\n  },\n  fullHeightHoverButton: {},\n  buttonVisible: {\n    opacity: \"1\"\n  },\n  buttonHidden: {\n    opacity: \"0\"\n  },\n  button: {\n    margin: \"0 10px\",\n    position: \"relative\",\n    backgroundColor: \"#494949\",\n    top: \"calc(50% - 20px) !important\",\n    color: \"white\",\n    fontSize: \"30px\",\n    transition: \"200ms\",\n    cursor: \"pointer\",\n    '&:hover': {\n      opacity: \"0.6 !important\"\n    }\n  },\n  next: {\n    right: 0\n  },\n  prev: {\n    left: 0\n  }\n};\nvar sanitizeNavProps = function sanitizeNavProps(props) {\n  var _ref = props || {},\n    className = _ref.className,\n    style = _ref.style,\n    rest = _objectWithoutProperties(_ref, ['className', 'style']);\n  return props !== undefined ? _extends({\n    style: props.style !== undefined ? props.style : {},\n    className: props.className !== undefined ? props.className : \"\"\n  }, rest) : _extends({\n    style: {},\n    className: \"\"\n  }, rest);\n};\nvar sanitizeProps = function sanitizeProps(props) {\n  var animation = props.animation !== undefined ? props.animation : \"fade\";\n  var timeout = props.timeout !== undefined ? props.timeout : animation === \"fade\" ? 500 : 200;\n  return {\n    className: props.className !== undefined ? props.className : \"\",\n    children: props.children ? props.children : [],\n    index: props.index !== undefined ? props.index : 0,\n    strictIndexing: props.strictIndexing !== undefined ? props.strictIndexing : true,\n    autoPlay: props.autoPlay !== undefined ? props.autoPlay : true,\n    stopAutoPlayOnHover: props.stopAutoPlayOnHover !== undefined ? props.stopAutoPlayOnHover : true,\n    interval: props.interval !== undefined ? props.interval : 4000,\n    animation: animation,\n    reverseEdgeAnimationDirection: props.reverseEdgeAnimationDirection !== undefined ? props.reverseEdgeAnimationDirection : true,\n    timeout: timeout,\n    swipe: props.swipe !== undefined ? props.swipe : true,\n    navButtonsAlwaysInvisible: props.navButtonsAlwaysInvisible !== undefined ? props.navButtonsAlwaysInvisible : false,\n    navButtonsAlwaysVisible: props.navButtonsAlwaysVisible !== undefined ? props.navButtonsAlwaysVisible : false,\n    cycleNavigation: props.cycleNavigation !== undefined ? props.cycleNavigation : true,\n    fullHeightHover: props.fullHeightHover !== undefined ? props.fullHeightHover : true,\n    navButtonsWrapperProps: sanitizeNavProps(props.navButtonsWrapperProps),\n    navButtonsProps: sanitizeNavProps(props.navButtonsProps),\n    NavButton: props.NavButton,\n    NextIcon: props.NextIcon !== undefined ? props.NextIcon : _react2.default.createElement(_NavigateNext2.default, null),\n    PrevIcon: props.PrevIcon !== undefined ? props.PrevIcon : _react2.default.createElement(_NavigateBefore2.default, null),\n    indicators: props.indicators !== undefined ? props.indicators : true,\n    indicatorContainerProps: sanitizeNavProps(props.indicatorContainerProps),\n    indicatorIconButtonProps: sanitizeNavProps(props.indicatorIconButtonProps),\n    activeIndicatorIconButtonProps: sanitizeNavProps(props.activeIndicatorIconButtonProps),\n    IndicatorIcon: props.IndicatorIcon,\n    onChange: props.onChange !== undefined ? props.onChange : function () {},\n    changeOnFirstRender: props.changeOnFirstRender !== undefined ? props.changeOnFirstRender : false,\n    next: props.next !== undefined ? props.next : function () {},\n    prev: props.prev !== undefined ? props.prev : function () {}\n  };\n};\nvar Carousel = function (_Component) {\n  _inherits(Carousel, _Component);\n  function Carousel(props) {\n    _classCallCheck(this, Carousel);\n    var _this = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, props));\n    (0, _autoBind2.default)(_this);\n    _this.state = {\n      active: 0,\n      prevActive: 0,\n      displayed: 0\n    };\n    _this.timer = null;\n    return _this;\n  }\n  _createClass(Carousel, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _sanitizeProps = sanitizeProps(this.props),\n        index = _sanitizeProps.index,\n        changeOnFirstRender = _sanitizeProps.changeOnFirstRender;\n      this.setActive(index, undefined, changeOnFirstRender);\n      this.start();\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      this.stop();\n    }\n  }, {\n    key: 'componentDidUpdate',\n    value: function componentDidUpdate(prevProps, prevState) {\n      prevProps = sanitizeProps(prevProps);\n      var _sanitizeProps2 = sanitizeProps(this.props),\n        autoPlay = _sanitizeProps2.autoPlay,\n        interval = _sanitizeProps2.interval,\n        children = _sanitizeProps2.children,\n        index = _sanitizeProps2.index;\n      if (autoPlay !== prevProps.autoPlay || interval !== prevProps.interval) {\n        this.reset();\n      }\n      if (children.length !== prevProps.children.length) {\n        this.setActive(index);\n      }\n      if (prevProps.index !== index) {\n        this.setActive(index);\n      }\n    }\n  }, {\n    key: 'stop',\n    value: function stop() {\n      if (this.timer) {\n        clearInterval(this.timer);\n        this.timer = null;\n      }\n    }\n  }, {\n    key: 'start',\n    value: function start() {\n      var _sanitizeProps3 = sanitizeProps(this.props),\n        autoPlay = _sanitizeProps3.autoPlay,\n        interval = _sanitizeProps3.interval;\n      if (autoPlay) {\n        this.timer = setInterval(this.next, interval);\n      }\n    }\n  }, {\n    key: 'reset',\n    value: function reset() {\n      var _sanitizeProps4 = sanitizeProps(this.props),\n        autoPlay = _sanitizeProps4.autoPlay;\n      this.stop();\n      if (autoPlay) {\n        this.start();\n      }\n    }\n  }, {\n    key: 'setActive',\n    value: function setActive(index) {\n      var _this2 = this;\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n      var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      var _sanitizeProps5 = sanitizeProps(this.props),\n        onChange = _sanitizeProps5.onChange,\n        timeout = _sanitizeProps5.timeout,\n        children = _sanitizeProps5.children,\n        strictIndexing = _sanitizeProps5.strictIndexing;\n\n      // if index is bigger than the children length, set it to be the last child (if strictIndexing)\n\n      if (Array.isArray(children)) {\n        if (strictIndexing && index > children.length - 1) index = children.length - 1;\n        if (strictIndexing && index < 0) index = 0;\n      } else {\n        index = 0;\n      }\n      var prevActive = this.state.active;\n      this.setState({\n        active: index,\n        prevActive: prevActive,\n        displayed: prevActive\n      }, this.reset);\n      setTimeout(function () {\n        _this2.setState({\n          displayed: index\n        }, function () {\n          if (runCallbacks) {\n            // Call user defined callbacks\n            callback(index, prevActive);\n            onChange(index, prevActive);\n          }\n        });\n      }, timeout.exit ? timeout.exit : timeout);\n    }\n  }, {\n    key: 'next',\n    value: function next(event) {\n      var _sanitizeProps6 = sanitizeProps(this.props),\n        children = _sanitizeProps6.children,\n        next = _sanitizeProps6.next,\n        cycleNavigation = _sanitizeProps6.cycleNavigation;\n      var nextActive = this.state.active + 1 > children.length - 1 ? cycleNavigation ? 0 : this.state.active : this.state.active + 1;\n      this.setActive(nextActive, next);\n      if (event) event.stopPropagation();\n    }\n  }, {\n    key: 'prev',\n    value: function prev(event) {\n      var _sanitizeProps7 = sanitizeProps(this.props),\n        children = _sanitizeProps7.children,\n        prev = _sanitizeProps7.prev,\n        cycleNavigation = _sanitizeProps7.cycleNavigation;\n      var nextActive = this.state.active - 1 < 0 ? cycleNavigation ? children.length - 1 : this.state.active : this.state.active - 1;\n      this.setActive(nextActive, prev);\n      if (event) event.stopPropagation();\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _this3 = this;\n      var _sanitizeProps8 = sanitizeProps(this.props),\n        children = _sanitizeProps8.children,\n        className = _sanitizeProps8.className,\n        stopAutoPlayOnHover = _sanitizeProps8.stopAutoPlayOnHover,\n        animation = _sanitizeProps8.animation,\n        reverseEdgeAnimationDirection = _sanitizeProps8.reverseEdgeAnimationDirection,\n        timeout = _sanitizeProps8.timeout,\n        swipe = _sanitizeProps8.swipe,\n        navButtonsAlwaysInvisible = _sanitizeProps8.navButtonsAlwaysInvisible,\n        navButtonsAlwaysVisible = _sanitizeProps8.navButtonsAlwaysVisible,\n        cycleNavigation = _sanitizeProps8.cycleNavigation,\n        fullHeightHover = _sanitizeProps8.fullHeightHover,\n        navButtonsProps = _sanitizeProps8.navButtonsProps,\n        navButtonsWrapperProps = _sanitizeProps8.navButtonsWrapperProps,\n        NavButton = _sanitizeProps8.NavButton,\n        NextIcon = _sanitizeProps8.NextIcon,\n        PrevIcon = _sanitizeProps8.PrevIcon,\n        indicators = _sanitizeProps8.indicators,\n        indicatorContainerProps = _sanitizeProps8.indicatorContainerProps,\n        indicatorIconButtonProps = _sanitizeProps8.indicatorIconButtonProps,\n        activeIndicatorIconButtonProps = _sanitizeProps8.activeIndicatorIconButtonProps,\n        IndicatorIcon = _sanitizeProps8.IndicatorIcon;\n      var classes = this.props.classes;\n      var buttonsClass = navButtonsProps.className,\n        buttonsStyle = navButtonsProps.style,\n        buttonsProps = _objectWithoutProperties(navButtonsProps, ['className', 'style']);\n      var buttonsWrapperClass = navButtonsWrapperProps.className,\n        buttonsWrapperStyle = navButtonsWrapperProps.style,\n        buttonsWrapperProps = _objectWithoutProperties(navButtonsWrapperProps, ['className', 'style']);\n      var buttonVisibilityClassValue = '' + (navButtonsAlwaysVisible ? classes.buttonVisible : classes.buttonHidden);\n      var buttonCssClassValue = classes.button + ' ' + buttonVisibilityClassValue + ' ' + (fullHeightHover ? classes.fullHeightHoverButton : \"\") + ' ' + buttonsClass;\n      var buttonWrapperCssClassValue = classes.buttonWrapper + ' ' + (fullHeightHover ? classes.fullHeightHoverWrapper : \"\") + ' ' + buttonsWrapperClass;\n      var compareActiveDisplayed = function compareActiveDisplayed() {\n        if (_this3.state.active === 0 && _this3.state.prevActive === children.length - 1) {\n          return reverseEdgeAnimationDirection; // ? false : true;\n        }\n        if (_this3.state.active === children.length - 1 && _this3.state.prevActive === 0) {\n          return reverseEdgeAnimationDirection; // ? true : false;\n        }\n        if (_this3.state.active > _this3.state.prevActive) {\n          return true;\n        }\n        return false;\n      };\n      var showButton = function showButton() {\n        var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n        if (cycleNavigation) return true;\n        if (next && _this3.state.active + 1 > children.length - 1) return false;\n        if (!next && _this3.state.active - 1 < 0) return false;\n        return true;\n      };\n      return _react2.default.createElement('div', {\n        className: classes.root + ' ' + (className ? className : \"\"),\n        onMouseOver: function onMouseOver() {\n          stopAutoPlayOnHover && _this3.stop();\n        },\n        onMouseOut: function onMouseOut() {\n          stopAutoPlayOnHover && _this3.reset();\n        },\n        onFocus: function onFocus() {\n          stopAutoPlayOnHover && _this3.stop();\n        },\n        onBlur: function onBlur() {\n          stopAutoPlayOnHover && _this3.reset();\n        }\n      }, Array.isArray(children) ? children.map(function (child, index) {\n        return _react2.default.createElement(CarouselItem, {\n          key: 'carousel-item' + index,\n          display: index === _this3.state.displayed // ? true : false\n          ,\n          active: index === _this3.state.active // ? true : false\n          ,\n          isNext: compareActiveDisplayed(),\n          child: child,\n          animation: animation,\n          timeout: timeout,\n          swipe: swipe,\n          next: _this3.next,\n          prev: _this3.prev\n        });\n      }) : _react2.default.createElement(CarouselItem, {\n        key: 'carousel-item0',\n        display: true,\n        active: true,\n        child: children,\n        animation: animation,\n        timeout: timeout\n      }), !navButtonsAlwaysInvisible && showButton(true) && _react2.default.createElement('div', _extends({\n        className: buttonWrapperCssClassValue + ' ' + classes.next,\n        style: buttonsWrapperStyle\n      }, buttonsWrapperProps), NavButton !== undefined ? NavButton(_extends({\n        onClick: this.next,\n        className: buttonCssClassValue,\n        style: buttonsStyle,\n        next: true,\n        prev: false\n      }, buttonsProps)) : _react2.default.createElement(_IconButton2.default, _extends({\n        className: '' + buttonCssClassValue,\n        onClick: this.next,\n        'aria-label': 'Next',\n        style: buttonsStyle\n      }, buttonsProps), NextIcon)), !navButtonsAlwaysInvisible && showButton(false) && _react2.default.createElement('div', _extends({\n        className: buttonWrapperCssClassValue + ' ' + classes.prev,\n        style: buttonsWrapperStyle\n      }, buttonsWrapperProps), NavButton !== undefined ? NavButton.apply(undefined, [{\n        onClick: this.prev,\n        className: buttonCssClassValue,\n        style: navButtonsProps.style,\n        next: false,\n        prev: true\n      }].concat(_toConsumableArray(buttonsProps))) : _react2.default.createElement(_IconButton2.default, _extends({\n        className: '' + buttonCssClassValue,\n        onClick: this.prev,\n        'aria-label': 'Previous',\n        style: navButtonsProps.style\n      }, buttonsProps), PrevIcon)), indicators ? _react2.default.createElement(Indicators, {\n        classes: classes,\n        length: children.length,\n        active: this.state.active,\n        press: this.setActive,\n        indicatorContainerProps: indicatorContainerProps,\n        indicatorIconButtonProps: indicatorIconButtonProps,\n        activeIndicatorIconButtonProps: activeIndicatorIconButtonProps,\n        IndicatorIcon: IndicatorIcon\n      }) : null);\n    }\n  }]);\n  return Carousel;\n}(_react.Component);\nfunction CarouselItem(props) {\n  var swipeHandlers = (0, _reactSwipeable.useSwipeable)({\n    onSwipedLeft: function onSwipedLeft() {\n      return props.next();\n    },\n    onSwipedRight: function onSwipedRight() {\n      return props.prev();\n    }\n  });\n  swipeHandlers = props.swipe ? swipeHandlers : {};\n  return props.display ? _react2.default.createElement('div', _extends({}, swipeHandlers, {\n    className: 'CarouselItem'\n  }), props.animation === \"slide\" ? _react2.default.createElement(_Slide2.default, {\n    direction: props.active ? props.isNext ? \"left\" : \"right\" : props.isNext ? \"right\" : \"left\",\n    'in': props.active,\n    timeout: props.timeout\n  }, _react2.default.createElement('div', null, props.child)) : _react2.default.createElement(_Fade2.default, {\n    'in': props.active,\n    timeout: props.timeout\n  }, _react2.default.createElement('div', null, props.child))) : null;\n}\nfunction Indicators(props) {\n  var classes = props.classes;\n  var IndicatorIcon = props.IndicatorIcon !== undefined ? props.IndicatorIcon : _react2.default.createElement(_FiberManualRecord2.default, {\n    size: 'small',\n    className: classes.indicatorIcon\n  });\n  var _props$indicatorIconB = props.indicatorIconButtonProps,\n    indicatorIconButtonClass = _props$indicatorIconB.className,\n    indicatorIconButtonStyle = _props$indicatorIconB.style,\n    indicatorIconButtonProps = _objectWithoutProperties(_props$indicatorIconB, ['className', 'style']);\n  var _props$activeIndicato = props.activeIndicatorIconButtonProps,\n    activeIndicatorIconButtonClass = _props$activeIndicato.className,\n    activeIndicatorIconButtonStyle = _props$activeIndicato.style,\n    activeIndicatorIconButtonProps = _objectWithoutProperties(_props$activeIndicato, ['className', 'style']);\n  var indicators = [];\n  var _loop = function _loop(i) {\n    var className = i === props.active ? classes.indicator + ' ' + indicatorIconButtonClass + ' ' + classes.active + ' ' + activeIndicatorIconButtonClass : classes.indicator + ' ' + indicatorIconButtonClass;\n    var style = i === props.active ? Object.assign({}, indicatorIconButtonStyle, activeIndicatorIconButtonStyle) : indicatorIconButtonStyle;\n    var restProps = i === props.active ? Object.assign({}, indicatorIconButtonProps, activeIndicatorIconButtonProps) : indicatorIconButtonProps;\n    if (restProps['aria-label'] === undefined) restProps['aria-label'] = 'carousel indicator';\n    var item = _react2.default.createElement(_IconButton2.default, _extends({\n      key: i,\n      className: className,\n      style: style,\n      onClick: function onClick() {\n        props.press(i);\n      },\n      size: 'small'\n    }, restProps, {\n      // Always add the index to any given aria label\n      'aria-label': restProps['aria-label'] + ' ' + (i + 1)\n    }), IndicatorIcon);\n    indicators.push(item);\n  };\n  for (var i = 0; i < props.length; i++) {\n    _loop(i);\n  }\n  var _props$indicatorConta = props.indicatorContainerProps,\n    indicatorContainerClass = _props$indicatorConta.className,\n    indicatorContainerStyle = _props$indicatorConta.style,\n    indicatorContainerProps = _objectWithoutProperties(_props$indicatorConta, ['className', 'style']);\n  return _react2.default.createElement('div', _extends({\n    className: classes.indicators + ' ' + indicatorContainerClass,\n    style: indicatorContainerStyle\n  }, indicatorContainerProps), indicators);\n}\nexports.default = (0, _styles.withStyles)(styles)(Carousel);","var React = require('react');\n\nfunction Icon8 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"8\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-962.000000, -4105.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"8\",\"transform\":\"translate(962.000000, 1206.000000)\"},[React.createElement(\"path\",{\"d\":\"M23.151875,11.2500001 C24.5064759,11.2502528 25.7278346,10.4344554 26.2463931,9.18303994 C26.7649516,7.93162444 26.4785797,6.49105733 25.5208216,5.53312045 C24.5630635,4.57518357 23.1225498,4.28854277 21.8710376,4.8068677 C20.6195253,5.32519262 19.8035,6.54639907 19.8035,7.901 C19.8057034,9.74944425 21.3034312,11.2474516 23.151875,11.2500001 Z M23.151875,7.05199977 C23.4953202,7.05174717 23.8050882,7.258439 23.9366942,7.57566846 C24.0683002,7.89289793 23.9958177,8.25817043 23.7530547,8.50111233 C23.5102916,8.74405424 23.1450726,8.8168057 22.8277463,8.68543334 C22.51042,8.55406098 22.3035,8.2444453 22.3035,7.901 C22.3040502,7.43258225 22.6834578,7.05289518 23.151875,7.05199977 L23.151875,7.05199977 Z\",\"id\":\"Shape\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M31.25,5 L30.62975,5 C30.5865,4.896375 30.556625,4.789375 30.509,4.6875 C29.3024812,2.00636394 26.7132455,0.211337473 23.77925,0.022 C23.3614523,-0.00675013309 22.9421727,-0.00675013309 22.524375,0.022 C19.5908176,0.211109838 17.0018415,2.00564208 15.79525,4.68625 C15.7475,4.789125 15.7175,4.8965 15.674,5.000625 L3.75,5.000625 C1.68011826,5.00289771 0.0026177232,6.68011867 0,8.75 L0,31.25 C0.00227338892,33.3201254 1.67987459,34.9977266 3.75,35 L31.25,35 C33.3201254,34.9977266 34.9977266,33.3201254 35,31.25 L35,8.75 C34.9977266,6.67987459 33.3201254,5.00227339 31.25,5 Z M22.692875,2.51525 C22.8455,2.504875 22.998,2.5 23.151875,2.5 C23.30575,2.5 23.45825,2.504875 23.610875,2.51525 C25.6328851,2.64993654 27.4148858,3.89109898 28.24225,5.741 C29.1568325,7.69234911 28.9364818,9.98687 27.66725,11.7285 L23.151875,17.886375 L18.6365,11.7285 C17.3673425,9.98680096 17.147225,7.69221353 18.062125,5.741 C18.8895414,3.8914171 20.6711623,2.65035175 22.692875,2.51525 Z M16.619875,13.20675 L22.1435,20.739125 C22.3789436,21.0604637 22.7534505,21.2503382 23.1518125,21.2503382 C23.5501745,21.2503382 23.9246814,21.0604637 24.160125,20.739125 L29.683875,13.20675 C30.8837001,11.5588853 31.4398823,9.52931601 31.24775,7.5 L31.25,7.5 C31.9400989,7.50062025 32.4993797,8.05990114 32.5,8.75 L32.5,23.75 L11.25,23.75 L11.25,7.5 L15.056,7.5 C14.8639729,9.52930688 15.420145,11.5588396 16.619875,13.20675 L16.619875,13.20675 Z M3.75,7.5 L8.75,7.5 L8.75,23.75 L2.5,23.75 L2.5,8.75 C2.50089524,8.06001522 3.06001522,7.50089524 3.75,7.5 Z M2.5,31.25 L2.5,26.25 L8.75,26.25 L8.75,32.5 L3.75,32.5 C3.06001522,32.4991048 2.50089524,31.9399848 2.5,31.25 Z M31.25,32.5 L11.25,32.5 L11.25,26.25 L32.5,26.25 L32.5,31.25 C32.4993797,31.9400989 31.9400989,32.4993797 31.25,32.5 L31.25,32.5 Z\",\"id\":\"Shape\",\"key\":1})]))))]);\n}\n\nIcon8.defaultProps = {\"width\":\"35px\",\"height\":\"35px\",\"viewBox\":\"0 0 35 35\",\"version\":\"1.1\"};\n\nmodule.exports = Icon8;\n\nIcon8.default = Icon8;\n","import { deepmerge } from '@material-ui/utils';\nimport createTheme from './createTheme';\nexport default function createMuiStrictModeTheme(options) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n  return createTheme.apply(void 0, [deepmerge({\n    unstable_strictMode: true\n  }, options)].concat(args));\n}","import { createStyles as createStylesOriginal } from '@material-ui/styles'; // let warnOnce = false;\n// To remove in v5\n\nexport default function createStyles(styles) {\n  // warning(\n  //   warnOnce,\n  //   [\n  //     'Material-UI: createStyles from @material-ui/core/styles is deprecated.',\n  //     'Please use @material-ui/styles/createStyles',\n  //   ].join('\\n'),\n  // );\n  // warnOnce = true;\n  return createStylesOriginal(styles);\n}","import { withThemeCreator } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\nvar withTheme = withThemeCreator({\n  defaultTheme: defaultTheme\n});\nexport default withTheme;","var React = require('react');\n\nfunction Icon7 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"7\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-714.000000, -4107.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"Item-Copy-8\",\"transform\":\"translate(714.000000, 1208.000000)\"},React.createElement(\"path\",{\"d\":\"M38,0 L2,0 C0.8954305,0 0,0.8954305 0,2 L0,30 C0,31.1045695 0.8954305,32 2,32 L38,32 C39.1045695,32 40,31.1045695 40,30 L40,2 C40,0.8954305 39.1045695,0 38,0 Z M38,2 L38,6 L2,6 L2,2 L38,2 Z M2,30 L2,8 L38,8 L38,30 L2,30 Z M4,4 C4,3.44771525 4.44771525,3 5,3 C5.55228475,3 6,3.44771525 6,4 C6,4.55228475 5.55228475,5 5,5 C4.44771525,5 4,4.55228475 4,4 Z M13,12 C9.13400675,12 6,15.1340068 6,19 C6,22.8659932 9.13400675,26 13,26 C16.8659932,26 20,22.8659932 20,19 C19.9955914,15.1358343 16.8641657,12.0044086 13,12 L13,12 Z M17.9,18 L14,18 L14,14.1 C15.9621984,14.504488 17.495512,16.0378016 17.9,18 Z M13,24.0000026 C10.4312345,24.0025816 8.2784468,22.0582577 8.02028906,19.5024961 C7.76213132,16.9467344 9.48260723,14.6111718 12,14.1 L12,20 L17.9,20 C17.4215673,22.3264168 15.3751008,23.9970017 13,24.0000026 Z M24,20 L26,20 L26,26 L24,26 L24,20 Z M28,16 L30,16 L30,26 L28,26 L28,16 Z M32,12 L34,12 L34,26 L32,26 L32,12 Z\",\"id\":\"7\"})))))]);\n}\n\nIcon7.defaultProps = {\"width\":\"40px\",\"height\":\"32px\",\"viewBox\":\"0 0 40 32\",\"version\":\"1.1\"};\n\nmodule.exports = Icon7;\n\nIcon7.default = Icon7;\n","var React = require('react');\n\nfunction Icon3 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"Icon3\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-712.000000, -1834.000000)\",\"fill\":\"#F15A29\",\"fillRule\":\"nonzero\",\"stroke\":\"#F15A29\",\"strokeWidth\":\"0.5\"},React.createElement(\"g\",{\"id\":\"Benefits\",\"transform\":\"translate(173.000000, 1109.000000)\"},React.createElement(\"g\",{\"id\":\"3\",\"transform\":\"translate(540.000000, 712.000000)\"},React.createElement(\"g\",{\"id\":\"Icon3\",\"transform\":\"translate(0.000000, 14.000000)\"},[React.createElement(\"path\",{\"d\":\"M36.6153846,24 L10.1538462,24 C9.81397862,24 9.53846154,23.7244829 9.53846154,23.3846154 C9.53846154,21.0055426 11.4670811,19.0769231 13.8461538,19.0769231 L18.5046154,19.0769231 C18.1854757,15.5805903 15.2462223,12.9085419 11.7353846,12.9230769 L10.4615385,12.9230769 C10.1216709,12.9230769 9.84615385,12.6475598 9.84615385,12.3076923 L9.84615385,11.0769231 L9.23076923,11.0769231 C4.13275616,11.0769231 0,6.94416692 0,1.84615385 C0,1.50628631 0.275517077,1.23076923 0.615384615,1.23076923 L9.84615385,1.23076923 L9.84615385,0.615384615 C9.84615385,0.275517077 10.1216709,0 10.4615385,0 L39.3846154,0 C39.7244829,0 40,0.275517077 40,0.615384615 L40,11.0769231 C40,11.4167906 39.7244829,11.6923077 39.3846154,11.6923077 L36.6153846,11.6923077 C32.426682,11.6798981 28.9375755,14.9006118 28.6153846,19.0769231 L32.9230769,19.0769231 C35.3021497,19.0769231 37.2307692,21.0055426 37.2307692,23.3846154 C37.2307692,23.5478255 37.1659343,23.704351 37.0505272,23.819758 C36.9351202,23.935165 36.7785948,24 36.6153846,24 Z M10.8307692,22.7692308 L35.9384615,22.7692308 C35.6459886,21.3364115 34.3854419,20.3073938 32.9230769,20.3076923 L28,20.3076923 C27.6601325,20.3076923 27.3846154,20.0321752 27.3846154,19.6923077 C27.3846154,14.5942946 31.5173715,10.4615385 36.6153846,10.4615385 L38.7692308,10.4615385 L38.7692308,1.23076923 L11.0769231,1.23076923 L11.0769231,1.84615385 C11.0769231,2.18602138 10.801406,2.46153846 10.4615385,2.46153846 L1.23076923,2.46153846 C1.55296015,6.63784978 5.04206666,9.85856348 9.23076923,9.84615385 L10.4615385,9.84615385 C10.801406,9.84615385 11.0769231,10.1216709 11.0769231,10.4615385 L11.0769231,11.6923077 L11.7661538,11.6923077 C16.1844318,11.6923077 19.7661538,15.2740297 19.7661538,19.6923077 C19.7661538,20.0321752 19.4906368,20.3076923 19.1507692,20.3076923 L13.8461538,20.3076923 C12.3837889,20.3073938 11.1232422,21.3364115 10.8307692,22.7692308 Z\",\"id\":\"Shape\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M10.4615385,12.9230769 C10.1216709,12.9230769 9.84615385,12.6475598 9.84615385,12.3076923 L9.84615385,6.15384615 C9.84615385,5.81397862 10.1216709,5.53846154 10.4615385,5.53846154 C10.801406,5.53846154 11.0769231,5.81397862 11.0769231,6.15384615 L11.0769231,12.3076923 C11.0769231,12.6475598 10.801406,12.9230769 10.4615385,12.9230769 Z\",\"id\":\"Path\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M10.4615385,4.30769231 C10.1216709,4.30769231 9.84615385,4.03217523 9.84615385,3.69230769 L9.84615385,0.615384615 C9.84615385,0.275517077 10.1216709,0 10.4615385,0 C10.801406,0 11.0769231,0.275517077 11.0769231,0.615384615 L11.0769231,3.69230769 C11.0769231,4.03217523 10.801406,4.30769231 10.4615385,4.30769231 Z\",\"id\":\"Path\",\"key\":2})])))))]);\n}\n\nIcon3.defaultProps = {\"width\":\"42px\",\"height\":\"26px\",\"viewBox\":\"0 0 42 26\",\"version\":\"1.1\"};\n\nmodule.exports = Icon3;\n\nIcon3.default = Icon3;\n","var React = require('react');\n\nfunction Icon2 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"Icon2\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-720.000000, -1556.000000)\",\"fill\":\"#F15A29\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Benefits\",\"transform\":\"translate(173.000000, 1109.000000)\"},React.createElement(\"g\",{\"id\":\"2---Active\",\"transform\":\"translate(526.000000, 405.000000)\"},React.createElement(\"g\",{\"id\":\"Icon2\",\"transform\":\"translate(21.000000, 42.000000)\"},[React.createElement(\"path\",{\"d\":\"M23.4711669,17.5774648 C22.8514486,17.5774648 22.2880683,17.7464789 21.8373641,18.028169 C21.3303218,16.9577465 20.2598993,16.2253521 19.0204627,16.2253521 C18.4007444,16.2253521 17.8373641,16.3943662 17.3866599,16.6760563 C16.8796176,15.6056338 15.8091951,14.8732394 14.5697585,14.8732394 C14.1190542,14.8732394 13.612012,14.9859155 13.2176458,15.1549296 L13.2176458,6.70422535 C13.2176458,4.95774648 11.8091951,3.6056338 10.1190542,3.6056338 C8.4289134,3.6056338 7.02046269,5.01408451 7.02046269,6.70422535 L7.02046269,20.8450704 L6.06271622,18.8732394 C5.61201199,17.6901408 4.4289134,16.8450704 3.13313875,16.8450704 C2.79511058,16.8450704 2.40074438,16.9014085 2.06271622,17.0140845 C0.428913398,17.5774648 -0.416157024,19.3802817 0.203561286,21.0140845 C0.203561286,21.0140845 0.203561286,21.0704225 0.259899314,21.0704225 L6.73877255,34.8169014 C6.73877255,34.8732394 6.79511058,34.8732394 6.79511058,34.9295775 C7.47116692,35.943662 8.25989931,36.8450704 9.21764579,37.6338028 C9.27398382,37.6901408 9.33032185,37.6901408 9.38665988,37.7464789 L9.38665988,37.7464789 C9.44299791,37.8028169 9.44299791,37.8028169 9.49933593,37.8591549 C11.3584909,39.2112676 13.555674,39.943662 15.8655331,39.943662 C21.612012,39.943662 26.3444064,35.4366197 26.5697585,29.7464789 C26.5697585,29.7464789 26.5697585,29.6901408 26.5697585,29.6338028 C26.5697585,29.4647887 26.5697585,29.2957746 26.5697585,29.1267606 C26.5697585,29.0704225 26.5697585,29.0704225 26.5697585,29.0140845 L26.5697585,28.9014085 C26.5697585,28.7887324 26.5697585,28.7323944 26.5697585,28.6197183 L26.5697585,20.6760563 C26.6260965,18.9859155 25.2176458,17.5774648 23.4711669,17.5774648 Z M15.8655331,38.1971831 C13.9500402,38.1971831 12.1472233,37.6338028 10.6260965,36.5070423 L10.5134204,36.3943662 C10.4007444,36.2816901 10.2880683,36.2253521 10.1753923,36.1690141 C9.44299791,35.5492958 8.8232796,34.8732394 8.31623734,34.084507 L1.89370213,20.3943662 C1.78102607,20.056338 1.78102607,19.7183099 1.95004016,19.3802817 C2.11905424,19.0422535 2.34440636,18.8169014 2.68243453,18.7042254 C3.35849086,18.4788732 4.14722326,18.8169014 4.37257537,19.4929577 C4.37257537,19.4929577 4.37257537,19.5492958 4.4289134,19.5492958 L7.07680072,25.1830986 C7.24581481,25.5774648 7.69651903,25.7464789 8.09088523,25.6901408 C8.48525143,25.5774648 8.76694157,25.2394366 8.76694157,24.8450704 L8.76694157,6.70422535 C8.76694157,5.97183099 9.38665988,5.35211268 10.1190542,5.35211268 C10.8514486,5.35211268 11.4711669,5.97183099 11.4711669,6.70422535 L11.4711669,17.971831 C11.4711669,18.4788732 11.8655331,18.8732394 12.3725754,18.8732394 C12.8796176,18.8732394 13.2739838,18.4788732 13.2739838,17.971831 C13.2739838,17.2394366 13.8937021,16.6197183 14.6260965,16.6197183 C15.3584909,16.6197183 15.9782092,17.2394366 15.9782092,17.971831 L15.9782092,19.3239437 C15.9782092,19.8309859 16.3725754,20.2253521 16.8796176,20.2253521 C17.3866599,20.2253521 17.7810261,19.8309859 17.7810261,19.3239437 C17.7810261,18.5915493 18.4007444,17.971831 19.1331388,17.971831 C19.8655331,17.971831 20.4852514,18.5915493 20.4852514,19.3239437 L20.4852514,20.6760563 C20.4852514,21.1830986 20.8796176,21.5774648 21.3866599,21.5774648 C21.8937021,21.5774648 22.2880683,21.1830986 22.2880683,20.6760563 C22.2880683,19.943662 22.9077866,19.3239437 23.640181,19.3239437 C24.3725754,19.3239437 24.9922937,19.943662 24.9922937,20.6760563 L24.9922937,28.7323944 L24.9922937,28.9577465 C24.9922937,29.0704225 24.9922937,29.1267606 24.9922937,29.2394366 C24.9922937,29.4084507 24.9922937,29.5211268 24.9922937,29.6901408 C24.5415895,34.4225352 20.6542655,38.1971831 15.8655331,38.1971831 Z\",\"id\":\"Shape\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M3.97820917,3.77464789 C3.75285706,4.22535211 3.92187114,4.73239437 4.37257537,4.95774648 C4.8232796,5.18309859 5.33032185,5.01408451 5.55567396,4.56338028 C6.40074438,2.87323944 8.09088523,1.8028169 9.95004016,1.8028169 C11.8655331,1.8028169 13.555674,2.87323944 14.3444064,4.56338028 C14.5134204,4.90140845 14.7951106,5.07042254 15.1331388,5.07042254 C15.2458148,5.07042254 15.4148289,5.01408451 15.5275049,4.95774648 C15.9782092,4.73239437 16.1472233,4.22535211 15.9218711,3.77464789 C14.7951106,1.46478873 12.4289134,0 9.89370213,0 C7.47116692,0 5.10496974,1.46478873 3.97820917,3.77464789 Z\",\"id\":\"Path\",\"key\":1})])))))]);\n}\n\nIcon2.defaultProps = {\"width\":\"27px\",\"height\":\"40px\",\"viewBox\":\"0 0 27 40\",\"version\":\"1.1\"};\n\nmodule.exports = Icon2;\n\nIcon2.default = Icon2;\n","var React = require('react');\n\nfunction Icon5 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"5\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-714.000000, -3886.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"Item-Copy-4\",\"transform\":\"translate(714.000000, 987.000000)\"},React.createElement(\"path\",{\"d\":\"M1.25000016,18.75 C-0.416666719,18.75 -0.416666719,16.25 1.25000016,16.25 C2.63071203,16.25 3.75000016,15.1307119 3.75000016,13.75 L3.75000016,4.375 C3.75000016,1.95875437 5.70875453,0 8.12500016,0 L8.75000016,0 C9.44035578,0 10,0.559644375 10,1.25 C10,1.94035563 9.44035578,2.5 8.75000016,2.5 L8.12500016,2.5 C7.08946641,2.5 6.25000016,3.33946625 6.25000016,4.375 L6.25000016,13.75 C6.25000016,15.2433656 5.59530641,16.5838194 4.55728078,17.5 C5.59530641,18.4161806 6.25000016,19.7566344 6.25000016,21.25 L6.25000016,30.625 C6.25000016,31.6605338 7.08946641,32.5 8.12500016,32.5 L8.75000016,32.5 C9.44035578,32.5 10,33.0596444 10,33.75 C10,34.4403556 9.44035578,35 8.75000016,35 L8.12500016,35 C5.70875453,35 3.75000016,33.0412456 3.75000016,30.625 L3.75000016,21.25 C3.75000016,19.8692881 2.63071203,18.75 1.25000016,18.75 Z M41.2500002,18.75 C39.8692883,18.75 38.7500002,19.8692881 38.7500002,21.25 L38.7500002,30.625 C38.7500002,33.0412456 36.7912458,35 34.3750002,35 L33.7500002,35 C33.0596445,35 32.5000002,34.4403556 32.5000002,33.75 C32.5000002,33.0596444 33.0596445,32.5 33.7500002,32.5 L34.3750002,32.5 C35.4105339,32.5 36.2500002,31.6605338 36.2500002,30.625 L36.2500002,21.25 C36.2500002,19.7566344 36.9046939,18.4161806 37.9427195,17.5 C36.9046939,16.5838194 36.2500002,15.2433656 36.2500002,13.75 L36.2500002,4.375 C36.2500002,3.33946625 35.4105339,2.5 34.3750002,2.5 L33.7500002,2.5 C33.0596445,2.5 32.5000002,1.94035563 32.5000002,1.25 C32.5000002,0.559644375 33.0596445,0 33.7500002,0 L34.3750002,0 C36.7912458,0 38.7500002,1.95875437 38.7500002,4.375 L38.7500002,13.75 C38.7500002,15.1307119 39.8692883,16.25 41.2500002,16.25 C42.916667,16.25 42.916667,18.75 41.2500002,18.75 Z M11.2500002,8.75 C10.5596445,8.75 10.0000002,8.19035563 10.0000002,7.5 C10.0000002,6.80964437 10.5596445,6.25 11.2500002,6.25 L20.0000002,6.25 C20.6903558,6.25 21.2500002,6.80964437 21.2500002,7.5 C21.2500002,8.19035563 20.6903558,8.75 20.0000002,8.75 L11.2500002,8.75 Z M11.2500002,28.75 C10.5596445,28.75 10.0000002,28.1903556 10.0000002,27.5 C10.0000002,26.8096444 10.5596445,26.25 11.2500002,26.25 L20.0000002,26.25 C20.6903558,26.25 21.2500002,26.8096444 21.2500002,27.5 C21.2500002,28.1903556 20.6903558,28.75 20.0000002,28.75 L11.2500002,28.75 Z M20.0000002,15.625 C19.3096445,15.625 18.7500002,15.0653556 18.7500002,14.375 C18.7500002,13.6846444 19.3096445,13.125 20.0000002,13.125 L31.2500002,13.125 C31.9403558,13.125 32.5000002,13.6846444 32.5000002,14.375 C32.5000002,15.0653556 31.9403558,15.625 31.2500002,15.625 L20.0000002,15.625 Z M20.0000002,21.875 C19.3096445,21.875 18.7500002,21.3153556 18.7500002,20.625 C18.7500002,19.9346444 19.3096445,19.375 20.0000002,19.375 L31.2500002,19.375 C31.9403558,19.375 32.5000002,19.9346444 32.5000002,20.625 C32.5000002,21.3153556 31.9403558,21.875 31.2500002,21.875 L20.0000002,21.875 Z\",\"id\":\"5\"})))))]);\n}\n\nIcon5.defaultProps = {\"width\":\"43px\",\"height\":\"35px\",\"viewBox\":\"0 0 43 35\",\"version\":\"1.1\"};\n\nmodule.exports = Icon5;\n\nIcon5.default = Icon5;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar _Carousel = require('./components/Carousel');\nvar _Carousel2 = _interopRequireDefault(_Carousel);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports.default = _Carousel2.default;","var React = require('react');\n\nfunction Icon4 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"4\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-468.000000, -3454.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"4\",\"transform\":\"translate(468.000000, 555.000000)\"},[React.createElement(\"path\",{\"d\":\"M23.1155556,32.6200109 C22.9055556,32.6200109 22.6994444,32.6200109 22.4972222,32.5966776 L22.4972222,33.0555665 L1.94444444,33.0555665 L1.94444444,1.94445535 L15.4272222,1.94445535 L15.4272222,7.54445535 C15.4272222,8.35631393 16.0853636,9.01445535 16.8972222,9.01445535 L22.4972222,9.01445535 L22.4972222,13.6344554 C22.6994444,13.6188998 22.9055556,13.611122 23.1155556,13.611122 C23.5591792,13.612629 24.0022053,13.6438097 24.4416667,13.7044554 L24.4416667,8.16667757 C24.44027,7.83891877 24.3104228,7.52477226 24.08,7.29167757 L17.1616667,0.361677573 C16.9314543,0.129318156 16.6176453,-0.000968614157 16.2905556,5.42245873e-06 L1.47,5.42245873e-06 C0.658141418,5.42245873e-06 0,0.658152324 0,1.47001091 L0,33.5300109 C0,34.3418695 0.658141418,35.0000054 1.47,35.0000054 L22.9716667,35.0000054 C23.7835252,35.0000054 24.4416667,34.3418695 24.4416667,33.5300109 L24.4416667,32.5227887 C24.0025032,32.5866823 23.5593418,32.6191721 23.1155556,32.6200109 Z M17.3716667,3.32112202 L21.1205556,7.07001091 L17.3716667,7.07001091 L17.3716667,3.32112202 Z\",\"id\":\"Shape\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M34.6577778,33.0088998 L29.2133333,27.5644554 C31.5535135,24.36288 31.0349949,19.899466 28.0231839,17.319636 C25.0113729,14.739806 20.5212801,14.9129886 17.7171289,17.7171398 C14.9129777,20.521291 14.7397951,25.0113838 17.3196251,28.0231948 C19.8994551,31.0350058 24.362869,31.5535244 27.5644444,29.2133442 L33.0088889,34.6577887 C33.4643829,35.1127162 34.2022838,35.1127162 34.6577778,34.6577887 C35.1127053,34.2022947 35.1127053,33.4643938 34.6577778,33.0088998 Z M17.5,23.1155665 C17.5,20.0141808 20.0141699,17.5000109 23.1155556,17.5000109 C26.2169413,17.5000109 28.7311111,20.0141808 28.7311111,23.1155665 C28.7311111,26.2169522 26.2169413,28.731122 23.1155556,28.731122 C20.0159462,28.7268378 17.5042842,26.2151759 17.5,23.1155665 L17.5,23.1155665 Z\",\"id\":\"Shape\",\"key\":1}),React.createElement(\"rect\",{\"id\":\"Rectangle\",\"stroke\":\"#FFFFFF\",\"strokeWidth\":\"0.5\",\"x\":\"5.82944444\",\"y\":\"11.3283442\",\"width\":\"11\",\"height\":\"1.55555556\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M12.8294444,19.3005665 L5.82944444,19.3005665 L5.82944444,20.856122 L12.3978941,20.856122 C12.5048674,20.32332 12.649256,19.8028605 12.8294444,19.3005665 L12.8294444,19.3005665 Z\",\"id\":\"Path\",\"stroke\":\"#FFFFFF\",\"strokeWidth\":\"0.5\",\"key\":3}),React.createElement(\"path\",{\"d\":\"M13.0429276,27.2727887 L5.82944444,27.2727887 L5.82944444,28.8283442 L13.8294444,28.8283442 C13.5272427,28.341132 13.2638899,27.8202787 13.0429276,27.2727887 L13.0429276,27.2727887 Z\",\"id\":\"Path\",\"stroke\":\"#FFFFFF\",\"strokeWidth\":\"0.5\",\"key\":4})]))))]);\n}\n\nIcon4.defaultProps = {\"width\":\"35px\",\"height\":\"35px\",\"viewBox\":\"0 0 35 35\",\"version\":\"1.1\"};\n\nmodule.exports = Icon4;\n\nIcon4.default = Icon4;\n","var React = require('react');\n\nfunction Icon1 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"Icon1\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-715.000000, -1433.000000)\",\"fill\":\"#F15A29\",\"fillRule\":\"nonzero\",\"stroke\":\"#F15A29\"},React.createElement(\"g\",{\"id\":\"Benefits\",\"transform\":\"translate(173.000000, 1109.000000)\"},React.createElement(\"g\",{\"id\":\"Icon1\",\"transform\":\"translate(543.000000, 325.000000)\"},[React.createElement(\"path\",{\"d\":\"M19.9930833,36.0929167 C19.87825,36.0929167 19.7665,36.0335 19.7046667,35.9271667 C19.3015833,35.2344167 18.5555833,34.8040833 17.7575833,34.8040833 C16.9595,34.8040833 16.2135,35.2344167 15.8105833,35.9271667 C15.7180833,36.0859167 15.5145,36.1399167 15.3555833,36.0480833 L10.2106667,33.0729167 L5.04608333,30.098 C4.88741667,30.0065833 4.83216667,29.8044167 4.92241667,29.645 C5.12083333,29.29425 5.2215,28.9175833 5.2215,28.5255 C5.2215,27.2923333 4.221,26.2855833 2.99125,26.2811667 C2.80758333,26.2805 2.65908333,26.1314167 2.65908333,25.9478333 L2.65908333,14.0521667 C2.65908333,13.8685 2.80758333,13.7195 2.99125,13.7188333 C4.221,13.7144167 5.2215,12.70775 5.2215,11.4746667 C5.2215,11.0835 5.11841667,10.6969167 4.92333333,10.3568333 C4.83191667,10.1974167 4.88675,9.99408333 5.04591667,9.90225 L10.211,6.922 L15.3558333,3.95183333 C15.5150833,3.86008333 15.7183333,3.91425 15.8106667,4.07291667 C16.2135833,4.76566667 16.9596667,5.19591667 17.7576667,5.19591667 C18.5556667,5.19583333 19.30175,4.7655 19.7046667,4.07275 C19.7970833,3.91416667 20.0004167,3.85991667 20.1593333,3.95158333 L25.30925,6.92175 L30.4545833,9.89716667 C30.6135,9.98908333 30.6681667,10.1923333 30.5768333,10.3515833 C30.3818333,10.6916667 30.27875,11.08 30.27875,11.4745 C30.27875,12.712 31.2855,13.7186667 32.523,13.7186667 C32.7070833,13.7186667 32.8563333,13.8679167 32.8563333,14.052 L32.8563333,25.9476667 C32.8563333,26.13175 32.7070833,26.281 32.523,26.281 C31.2855,26.281 30.27875,27.28775 30.27875,28.52525 C30.27875,28.9196667 30.3818333,29.308 30.5769167,29.64825 C30.66825,29.8075833 30.6134167,30.0109167 30.4543333,30.1026667 L25.3094167,33.0729167 L20.1595833,36.0480833 C20.107,36.0784167 20.0496667,36.0929167 19.9930833,36.0929167 Z M17.7575833,34.1374167 C18.6806667,34.1374167 19.55,34.5811667 20.09725,35.3141667 L24.9759167,32.4956667 L29.8496667,29.682 C29.6935,29.3184167 29.6119167,28.9241667 29.6119167,28.5253333 C29.6119167,27.0329167 30.74075,25.79925 32.1895,25.6334167 L32.1895,14.3665 C30.74075,14.2006667 29.6119167,12.967 29.6119167,11.4745833 C29.6119167,11.0755833 29.6935,10.6813333 29.84975,10.31775 L24.9758333,7.49916667 L20.0974167,4.68558333 C19.5501667,5.41866667 18.6808333,5.86258333 17.7575833,5.86266667 C16.8343333,5.86266667 15.9650833,5.41883333 15.41775,4.68558333 L10.5440833,7.49941667 L5.65033333,10.3230833 C5.8065,10.686 5.888,11.0784167 5.888,11.4746667 C5.888,12.9614167 4.76583333,14.1945 3.32558333,14.3653333 L3.32558333,25.63475 C4.76575,25.8055 5.888,27.0386667 5.888,28.5255 C5.888,28.9246667 5.80816667,29.3105 5.65008333,29.6765833 L10.5438333,32.4954167 L15.4179167,35.3141667 C15.96525,34.5811667 16.8345,34.1374167 17.7575833,34.1374167 Z\",\"id\":\"Shape\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M32.52275,14.3854167 C30.9176667,14.3854167 29.6118333,13.0796667 29.6118333,11.4745833 C29.6118333,9.86958333 30.9176667,8.56375 32.52275,8.56375 C34.1278333,8.56375 35.4335833,9.8695 35.4335833,11.4745833 C35.4335833,13.0796667 34.1278333,14.3854167 32.52275,14.3854167 Z M32.52275,9.23041667 C31.28525,9.23041667 30.2785,10.2371667 30.2785,11.4745833 C30.2785,12.712 31.28525,13.71875 32.52275,13.71875 C33.7601667,13.71875 34.7669167,12.712 34.7669167,11.4745833 C34.7669167,10.2371667 33.7601667,9.23041667 32.52275,9.23041667 Z\",\"id\":\"Shape\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M32.52275,31.4361667 C30.91775,31.4361667 29.6119167,30.1304167 29.6118333,28.5253333 C29.6118333,26.9201667 30.9176667,25.6143333 32.52275,25.6143333 C34.1278333,25.6143333 35.4335833,26.9201667 35.4335833,28.5253333 C35.4335833,30.1304167 34.1278333,31.4361667 32.52275,31.4361667 Z M32.52275,26.2810833 C31.28525,26.2810833 30.2785,27.2878333 30.2785,28.5254167 C30.2785833,29.7628333 31.2853333,30.7695833 32.52275,30.7695833 C33.7601667,30.7695833 34.7669167,29.7628333 34.7669167,28.5254167 C34.7669167,27.2878333 33.7601667,26.2810833 32.52275,26.2810833 Z\",\"id\":\"Shape\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M2.97725,14.3854167 C1.37216667,14.3854167 0.0664166667,13.0796667 0.0664166667,11.4745833 C0.0664166667,9.86958333 1.37216667,8.56375 2.97725,8.56375 C4.58233333,8.56375 5.88808333,9.8695 5.88808333,11.4745833 C5.88808333,13.0796667 4.58233333,14.3854167 2.97725,14.3854167 Z M2.97725,9.23041667 C1.73983333,9.23041667 0.733083333,10.2371667 0.733083333,11.4745833 C0.733083333,12.712 1.73983333,13.71875 2.97725,13.71875 C4.21466667,13.71875 5.22141667,12.712 5.22141667,11.4745833 C5.22141667,10.2371667 4.21466667,9.23041667 2.97725,9.23041667 Z\",\"id\":\"Shape\",\"key\":3}),React.createElement(\"path\",{\"d\":\"M2.97725,31.4361667 C1.37216667,31.4361667 0.0664166667,30.1304167 0.0664166667,28.5253333 C0.0664166667,26.9201667 1.37216667,25.6143333 2.97725,25.6143333 C4.58233333,25.6143333 5.88808333,26.9201667 5.88808333,28.5253333 C5.88808333,30.1304167 4.58233333,31.4361667 2.97725,31.4361667 Z M2.97725,26.2810833 C1.73983333,26.2810833 0.733083333,27.2878333 0.733083333,28.5254167 C0.733083333,29.7628333 1.73983333,30.7695833 2.97725,30.7695833 C4.21466667,30.7695833 5.22141667,29.7628333 5.22141667,28.5254167 C5.22141667,27.2878333 4.21466667,26.2810833 2.97725,26.2810833 Z\",\"id\":\"Shape\",\"key\":4}),React.createElement(\"path\",{\"d\":\"M17.7575833,39.9590833 C16.1525833,39.9590833 14.84675,38.6533333 14.84675,37.04825 C14.84675,35.4431667 16.1525,34.1373333 17.7575833,34.1373333 C19.3626667,34.1373333 20.6685,35.4431667 20.6685,37.04825 C20.6685,38.6533333 19.3626667,39.9590833 17.7575833,39.9590833 Z M17.7575833,34.804 C16.5201667,34.804 15.5134167,35.81075 15.5134167,37.04825 C15.5134167,38.2856667 16.5201667,39.2924167 17.7575833,39.2924167 C18.9950833,39.2924167 20.0018333,38.2856667 20.0018333,37.04825 C20.00175,35.81075 18.995,34.804 17.7575833,34.804 Z\",\"id\":\"Shape\",\"key\":5}),React.createElement(\"path\",{\"d\":\"M17.7575833,5.86258333 C16.1525833,5.86258333 14.84675,4.55683333 14.84675,2.95175 C14.84675,1.34675 16.1525,0.0409166667 17.7575833,0.0409166667 C19.3626667,0.0409166667 20.6685,1.34666667 20.6685,2.95175 C20.6684167,4.55683333 19.3626667,5.86258333 17.7575833,5.86258333 Z M17.7575833,0.707583333 C16.5201667,0.707583333 15.5134167,1.71433333 15.5134167,2.95175 C15.5134167,4.18916667 16.5201667,5.19591667 17.7575833,5.19591667 C18.9950833,5.19591667 20.0018333,4.18916667 20.0018333,2.95175 C20.0018333,1.71433333 18.995,0.707583333 17.7575833,0.707583333 Z\",\"id\":\"Shape\",\"key\":6}),React.createElement(\"path\",{\"d\":\"M19.3384167,35.3729167 C19.2646667,35.3729167 19.1923333,35.3485 19.1331667,35.30225 C18.73725,34.9928333 18.2599167,34.8293333 17.7526667,34.8293333 C17.2453333,34.8293333 16.7679167,34.9928333 16.3720833,35.3021667 C16.2938333,35.3634167 16.1920833,35.3864167 16.095,35.3650833 C15.9979167,35.3436667 15.9154167,35.28 15.8700833,35.1915 L10.73025,25.1534167 L4.66408333,13.3130833 C4.60316667,13.1941667 4.61908333,13.0503333 4.70466667,12.94775 C4.975,12.6233333 5.14958333,12.2315833 5.20975,11.81475 C5.23341667,11.65075 5.374,11.529 5.53966667,11.529 L29.9805,11.529 C30.1473333,11.529 30.2884167,11.65225 30.3108333,11.8175833 C30.3658333,12.22375 30.537,12.6094167 30.8056667,12.9329167 C30.8909167,13.0355 30.9068333,13.1790833 30.846,13.2978333 L24.7748333,25.1533333 L19.635,35.1914167 C19.5896667,35.2799167 19.50725,35.3435833 19.4101667,35.365 C19.3864167,35.37025 19.3623333,35.3729167 19.3384167,35.3729167 Z M17.7525833,34.1626667 C18.2746667,34.1626667 18.7725833,34.2965 19.213,34.553 L24.1814167,24.8495833 L30.1565,13.18175 C29.9434167,12.882 29.7903333,12.5475833 29.7045833,12.19575 L5.81375,12.19575 C5.72491667,12.5551667 5.56891667,12.89475 5.35366667,13.1970833 L11.3235833,24.8495833 L16.2920833,34.553 C16.7325,34.2965833 17.2305,34.1626667 17.7525833,34.1626667 Z\",\"id\":\"Shape\",\"key\":7}),React.createElement(\"path\",{\"d\":\"M17.7575833,22.9133333 C16.1525833,22.9133333 14.84675,21.6053333 14.84675,19.9975 C14.84675,18.3925 16.1525,17.0866667 17.7575833,17.0866667 C19.3626667,17.0866667 20.6685,18.3924167 20.6685,19.9975 C20.6684167,21.6053333 19.3626667,22.9133333 17.7575833,22.9133333 Z M17.7575833,17.7533333 C16.5201667,17.7533333 15.5134167,18.7600833 15.5134167,19.9975 C15.5134167,21.23775 16.5201667,22.2466667 17.7575833,22.2466667 C18.9950833,22.2466667 20.0018333,21.23775 20.0018333,19.9975 C20.00175,18.7600833 18.995,17.7533333 17.7575833,17.7533333 Z\",\"id\":\"Shape\",\"key\":8}),React.createElement(\"path\",{\"d\":\"M17.7575833,17.7533333 C17.5735,17.7533333 17.42425,17.6040833 17.42425,17.42 L17.42425,5.52925 C17.42425,5.34516667 17.5735,5.19591667 17.7575833,5.19591667 C17.9416667,5.19591667 18.0909167,5.34516667 18.0909167,5.52925 L18.0909167,17.42 C18.0909167,17.6040833 17.9416667,17.7533333 17.7575833,17.7533333 Z\",\"id\":\"Path\",\"key\":9}),React.createElement(\"path\",{\"d\":\"M20.0333333,19.1176667 C19.9144167,19.1176667 19.7993333,19.0538333 19.73925,18.94175 C19.65225,18.7795 19.71325,18.5774167 19.8755833,18.4904167 L30.3919167,12.8520833 C30.5541667,12.7651667 30.7561667,12.8261667 30.8431667,12.9883333 C30.9301667,13.1505833 30.8691667,13.3526667 30.7068333,13.4396667 L20.1905,19.078 C20.1404167,19.1049167 20.0865,19.1176667 20.0333333,19.1176667 Z\",\"id\":\"Path\",\"key\":10}),React.createElement(\"path\",{\"d\":\"M4.80491667,27.0414167 C4.68433333,27.0414167 4.56791667,26.97575 4.50866667,26.8613333 C4.424,26.6978333 4.48783333,26.4966667 4.65133333,26.412 L15.3136667,20.8895 C15.4773333,20.8048333 15.67825,20.8688333 15.763,21.0321667 C15.8476667,21.1956667 15.7838333,21.3968333 15.6203333,21.4815 L4.958,27.004 C4.90891667,27.0294167 4.8565,27.0414167 4.80491667,27.0414167 Z\",\"id\":\"Path\",\"key\":11}),React.createElement(\"path\",{\"d\":\"M15.6126667,18.90625 C15.5491667,18.90625 15.485,18.8881667 15.4281667,18.8503333 L5.35483333,12.13975 C5.20166667,12.0376667 5.16016667,11.83075 5.26225,11.6775 C5.36433333,11.5243333 5.57125,11.48275 5.7245,11.5849167 L15.7978333,18.2955 C15.951,18.3975833 15.9925,18.6045 15.8904167,18.75775 C15.8261667,18.8540833 15.7205,18.90625 15.6126667,18.90625 Z\",\"id\":\"Path\",\"key\":12}),React.createElement(\"path\",{\"d\":\"M17.7525,34.82925 C17.7525,34.82925 17.7524167,34.82925 17.7523333,34.82925 C17.56825,34.82925 17.4190833,34.6798333 17.4191666,34.49575 L17.42425,22.5798333 C17.4243333,22.3958333 17.5735833,22.2466667 17.7575833,22.2466667 C17.7575833,22.2466667 17.7576667,22.2466667 17.7576667,22.2466667 C17.94175,22.2466667 18.091,22.3960833 18.0909167,22.5801667 L18.0858333,34.4960833 C18.08575,34.6800833 17.9365,34.82925 17.7525,34.82925 Z\",\"id\":\"Path\",\"key\":13}),React.createElement(\"path\",{\"d\":\"M30.4080833,27.3836667 C30.3531667,27.3836667 30.2975,27.3700833 30.2461667,27.3414167 L19.8505833,21.5471667 C19.68975,21.4575 19.6320833,21.2545 19.7216667,21.09375 C19.8114167,20.9329167 20.0144167,20.87525 20.1750833,20.9648333 L30.5706667,26.7590833 C30.7315,26.84875 30.7891667,27.05175 30.6995833,27.2125 C30.6385833,27.322 30.5251667,27.3836667 30.4080833,27.3836667 Z\",\"id\":\"Path\",\"key\":14})]))))]);\n}\n\nIcon1.defaultProps = {\"width\":\"37px\",\"height\":\"42px\",\"viewBox\":\"0 0 37 42\",\"version\":\"1.1\"};\n\nmodule.exports = Icon1;\n\nIcon1.default = Icon1;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _default = (0, _createSvgIcon.default)(/*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');\nexports.default = _default;","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (global = global || self, factory(global.swipeable = {}, global.react));\n})(this, function (exports, React) {\n  function _interopNamespace(e) {\n    if (e && e.__esModule) return e;\n    var n = Object.create(null);\n    if (e) {\n      Object.keys(e).forEach(function (k) {\n        if (k !== 'default') {\n          var d = Object.getOwnPropertyDescriptor(e, k);\n          Object.defineProperty(n, k, d.get ? d : {\n            enumerable: true,\n            get: function () {\n              return e[k];\n            }\n          });\n        }\n      });\n    }\n    n['default'] = e;\n    return n;\n  }\n  var React__namespace = /*#__PURE__*/_interopNamespace(React);\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n      return target;\n    };\n    return _extends.apply(this, arguments);\n  }\n  var LEFT = \"Left\";\n  var RIGHT = \"Right\";\n  var UP = \"Up\";\n  var DOWN = \"Down\";\n  var defaultProps = {\n    delta: 10,\n    preventDefaultTouchmoveEvent: false,\n    rotationAngle: 0,\n    trackMouse: false,\n    trackTouch: true\n  };\n  var initialState = {\n    first: true,\n    initial: [0, 0],\n    start: 0,\n    swiping: false,\n    xy: [0, 0]\n  };\n  var mouseMove = \"mousemove\";\n  var mouseUp = \"mouseup\";\n  var touchEnd = \"touchend\";\n  var touchMove = \"touchmove\";\n  var touchStart = \"touchstart\";\n  function getDirection(absX, absY, deltaX, deltaY) {\n    if (absX > absY) {\n      if (deltaX > 0) {\n        return RIGHT;\n      }\n      return LEFT;\n    } else if (deltaY > 0) {\n      return DOWN;\n    }\n    return UP;\n  }\n  function rotateXYByAngle(pos, angle) {\n    if (angle === 0) return pos;\n    var angleInRadians = Math.PI / 180 * angle;\n    var x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n    var y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n    return [x, y];\n  }\n  function getHandlers(set, handlerProps) {\n    var onStart = function onStart(event) {\n      if (event && \"touches\" in event && event.touches.length > 1) return;\n      set(function (state, props) {\n        if (props.trackMouse) {\n          document.addEventListener(mouseMove, onMove);\n          document.addEventListener(mouseUp, onUp);\n        }\n        var _ref = \"touches\" in event ? event.touches[0] : event,\n          clientX = _ref.clientX,\n          clientY = _ref.clientY;\n        var xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n        return _extends({}, state, initialState, {\n          initial: [].concat(xy),\n          xy: xy,\n          start: event.timeStamp || 0\n        });\n      });\n    };\n    var onMove = function onMove(event) {\n      set(function (state, props) {\n        if (\"touches\" in event && event.touches.length > 1) {\n          return state;\n        }\n        var _ref2 = \"touches\" in event ? event.touches[0] : event,\n          clientX = _ref2.clientX,\n          clientY = _ref2.clientY;\n        var _rotateXYByAngle = rotateXYByAngle([clientX, clientY], props.rotationAngle),\n          x = _rotateXYByAngle[0],\n          y = _rotateXYByAngle[1];\n        var deltaX = x - state.xy[0];\n        var deltaY = y - state.xy[1];\n        var absX = Math.abs(deltaX);\n        var absY = Math.abs(deltaY);\n        var time = (event.timeStamp || 0) - state.start;\n        var velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1);\n        var vxvy = [deltaX / (time || 1), deltaY / (time || 1)];\n        var dir = getDirection(absX, absY, deltaX, deltaY);\n        var delta = typeof props.delta === \"number\" ? props.delta : props.delta[dir.toLowerCase()] || defaultProps.delta;\n        if (absX < delta && absY < delta && !state.swiping) return state;\n        var eventData = {\n          absX: absX,\n          absY: absY,\n          deltaX: deltaX,\n          deltaY: deltaY,\n          dir: dir,\n          event: event,\n          first: state.first,\n          initial: state.initial,\n          velocity: velocity,\n          vxvy: vxvy\n        };\n        eventData.first && props.onSwipeStart && props.onSwipeStart(eventData);\n        props.onSwiping && props.onSwiping(eventData);\n        var cancelablePageSwipe = false;\n        if (props.onSwiping || props.onSwiped || \"onSwiped\" + dir in props) {\n          cancelablePageSwipe = true;\n        }\n        if (cancelablePageSwipe && props.preventDefaultTouchmoveEvent && props.trackTouch && event.cancelable) event.preventDefault();\n        return _extends({}, state, {\n          first: false,\n          eventData: eventData,\n          swiping: true\n        });\n      });\n    };\n    var onEnd = function onEnd(event) {\n      set(function (state, props) {\n        var eventData;\n        if (state.swiping && state.eventData) {\n          eventData = _extends({}, state.eventData, {\n            event: event\n          });\n          props.onSwiped && props.onSwiped(eventData);\n          var onSwipedDir = props[\"onSwiped\" + eventData.dir];\n          onSwipedDir && onSwipedDir(eventData);\n        } else {\n          props.onTap && props.onTap({\n            event: event\n          });\n        }\n        return _extends({}, state, initialState, {\n          eventData: eventData\n        });\n      });\n    };\n    var cleanUpMouse = function cleanUpMouse() {\n      document.removeEventListener(mouseMove, onMove);\n      document.removeEventListener(mouseUp, onUp);\n    };\n    var onUp = function onUp(e) {\n      cleanUpMouse();\n      onEnd(e);\n    };\n    var attachTouch = function attachTouch(el, passive) {\n      var cleanup = function cleanup() {};\n      if (el && el.addEventListener) {\n        var tls = [[touchStart, onStart], [touchMove, onMove], [touchEnd, onEnd]];\n        tls.forEach(function (_ref3) {\n          var e = _ref3[0],\n            h = _ref3[1];\n          return el.addEventListener(e, h, {\n            passive: passive\n          });\n        });\n        cleanup = function cleanup() {\n          return tls.forEach(function (_ref4) {\n            var e = _ref4[0],\n              h = _ref4[1];\n            return el.removeEventListener(e, h);\n          });\n        };\n      }\n      return cleanup;\n    };\n    var onRef = function onRef(el) {\n      if (el === null) return;\n      set(function (state, props) {\n        if (state.el === el) return state;\n        var addState = {};\n        if (state.el && state.el !== el && state.cleanUpTouch) {\n          state.cleanUpTouch();\n          addState.cleanUpTouch = void 0;\n        }\n        if (props.trackTouch && el) {\n          addState.cleanUpTouch = attachTouch(el, !props.preventDefaultTouchmoveEvent);\n        }\n        return _extends({}, state, {\n          el: el\n        }, addState);\n      });\n    };\n    var output = {\n      ref: onRef\n    };\n    if (handlerProps.trackMouse) {\n      output.onMouseDown = onStart;\n    }\n    return [output, attachTouch];\n  }\n  function updateTransientState(state, props, attachTouch) {\n    var addState = {};\n    if (!props.trackTouch && state.cleanUpTouch) {\n      state.cleanUpTouch();\n      addState.cleanUpTouch = void 0;\n    } else if (props.trackTouch && !state.cleanUpTouch) {\n      if (state.el) {\n        addState.cleanUpTouch = attachTouch(state.el, !props.preventDefaultTouchmoveEvent);\n      }\n    }\n    return _extends({}, state, addState);\n  }\n  function useSwipeable(options) {\n    var trackMouse = options.trackMouse;\n    var transientState = React__namespace.useRef(_extends({}, initialState));\n    var transientProps = React__namespace.useRef(_extends({}, defaultProps));\n    transientProps.current = _extends({}, defaultProps, options, {\n      delta: options.delta === void 0 ? defaultProps.delta : options.delta,\n      rotationAngle: options.rotationAngle === void 0 ? defaultProps.rotationAngle : options.rotationAngle,\n      trackTouch: options.trackTouch === void 0 ? defaultProps.trackTouch : options.trackTouch\n    });\n    var _React$useMemo = React__namespace.useMemo(function () {\n        return getHandlers(function (stateSetter) {\n          return transientState.current = stateSetter(transientState.current, transientProps.current);\n        }, {\n          trackMouse: trackMouse\n        });\n      }, [trackMouse]),\n      handlers = _React$useMemo[0],\n      attachTouch = _React$useMemo[1];\n    transientState.current = updateTransientState(transientState.current, transientProps.current, attachTouch);\n    return handlers;\n  }\n  exports.DOWN = DOWN;\n  exports.LEFT = LEFT;\n  exports.RIGHT = RIGHT;\n  exports.UP = UP;\n  exports.useSwipeable = useSwipeable;\n});","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport { elementAcceptingRef, exactProp } from '@material-ui/utils';\nfunction mapEventPropToEvent(eventProp) {\n  return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event) {\n  return document.documentElement.clientWidth < event.clientX || document.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n */\n\nfunction ClickAwayListener(props) {\n  var children = props.children,\n    _props$disableReactTr = props.disableReactTree,\n    disableReactTree = _props$disableReactTr === void 0 ? false : _props$disableReactTr,\n    _props$mouseEvent = props.mouseEvent,\n    mouseEvent = _props$mouseEvent === void 0 ? 'onClick' : _props$mouseEvent,\n    onClickAway = props.onClickAway,\n    _props$touchEvent = props.touchEvent,\n    touchEvent = _props$touchEvent === void 0 ? 'onTouchEnd' : _props$touchEvent;\n  var movedRef = React.useRef(false);\n  var nodeRef = React.useRef(null);\n  var activatedRef = React.useRef(false);\n  var syntheticEventRef = React.useRef(false);\n  React.useEffect(function () {\n    // Ensure that this component is not \"activated\" synchronously.\n    // https://github.com/facebook/react/issues/20074\n    setTimeout(function () {\n      activatedRef.current = true;\n    }, 0);\n    return function () {\n      activatedRef.current = false;\n    };\n  }, []); // can be removed once we drop support for non ref forwarding class components\n\n  var handleOwnRef = React.useCallback(function (instance) {\n    // #StrictMode ready\n    nodeRef.current = ReactDOM.findDOMNode(instance);\n  }, []);\n  var handleRef = useForkRef(children.ref, handleOwnRef); // The handler doesn't take event.defaultPrevented into account:\n  //\n  // event.preventDefault() is meant to stop default behaviours like\n  // clicking a checkbox to check it, hitting a button to submit a form,\n  // and hitting left arrow to move the cursor in a text input etc.\n  // Only special HTML elements have these default behaviors.\n\n  var handleClickAway = useEventCallback(function (event) {\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    var insideReactTree = syntheticEventRef.current;\n    syntheticEventRef.current = false; // 1. IE 11 support, which trigger the handleClickAway even after the unbind\n    // 2. The child might render null.\n    // 3. Behave like a blur listener.\n\n    if (!activatedRef.current || !nodeRef.current || clickedRootScrollbar(event)) {\n      return;\n    } // Do not act if user performed touchmove\n\n    if (movedRef.current) {\n      movedRef.current = false;\n      return;\n    }\n    var insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n    if (event.composedPath) {\n      insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n    } else {\n      // TODO v6 remove dead logic https://caniuse.com/#search=composedPath.\n      var doc = ownerDocument(nodeRef.current);\n      insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n    }\n    if (!insideDOM && (disableReactTree || !insideReactTree)) {\n      onClickAway(event);\n    }\n  }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n  var createHandleSynthetic = function createHandleSynthetic(handlerName) {\n    return function (event) {\n      syntheticEventRef.current = true;\n      var childrenPropsHandler = children.props[handlerName];\n      if (childrenPropsHandler) {\n        childrenPropsHandler(event);\n      }\n    };\n  };\n  var childrenProps = {\n    ref: handleRef\n  };\n  if (touchEvent !== false) {\n    childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n  }\n  React.useEffect(function () {\n    if (touchEvent !== false) {\n      var mappedTouchEvent = mapEventPropToEvent(touchEvent);\n      var doc = ownerDocument(nodeRef.current);\n      var handleTouchMove = function handleTouchMove() {\n        movedRef.current = true;\n      };\n      doc.addEventListener(mappedTouchEvent, handleClickAway);\n      doc.addEventListener('touchmove', handleTouchMove);\n      return function () {\n        doc.removeEventListener(mappedTouchEvent, handleClickAway);\n        doc.removeEventListener('touchmove', handleTouchMove);\n      };\n    }\n    return undefined;\n  }, [handleClickAway, touchEvent]);\n  if (mouseEvent !== false) {\n    childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n  }\n  React.useEffect(function () {\n    if (mouseEvent !== false) {\n      var mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n      var doc = ownerDocument(nodeRef.current);\n      doc.addEventListener(mappedMouseEvent, handleClickAway);\n      return function () {\n        doc.removeEventListener(mappedMouseEvent, handleClickAway);\n      };\n    }\n    return undefined;\n  }, [handleClickAway, mouseEvent]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(children, childrenProps));\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n  // eslint-disable-next-line\n  ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport default ClickAwayListener;","var React = require('react');\n\nfunction Icon2 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"2\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-468.000000, -3231.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"2\",\"transform\":\"translate(468.000000, 332.000000)\"},[React.createElement(\"path\",{\"d\":\"M27.8238368,27.8040649 C29.5178055,27.8040649 31.1407023,27.2857212 32.5161835,26.3051431 C32.9442179,26.0000149 33.044146,25.4052556 32.7395523,24.9777556 C32.4338898,24.5497212 31.8396648,24.4492587 31.4121648,24.7543868 C30.3599804,25.5035806 29.1191617,25.8995524 27.8238368,25.8995524 C26.6006524,25.8995524 25.4180806,25.5441931 24.4038369,24.8708806 C23.9656494,24.580715 23.3756994,24.6998806 23.084465,25.1380681 C22.7942994,25.5757212 22.913465,26.1667399 23.3516525,26.4574399 C24.6785056,27.3380899 26.2249868,27.8040649 27.8238368,27.8040649 Z\",\"id\":\"Path\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M39.0029615,25.5046493 C38.6315709,25.1332587 38.0282615,25.1332587 37.6563365,25.5046493 C37.2844115,25.8760399 37.2849459,26.4788149 37.6563365,26.8512743 L40.8000645,29.9955367 L38.1169677,32.6791679 L34.9732397,29.5349055 C34.6611647,29.2228305 34.1748835,29.1661867 33.7992179,29.3981055 C32.761996,30.0382867 31.6366023,30.5047961 30.4540304,30.7848086 C30.0249273,30.8863398 29.7214023,31.2694867 29.7214023,31.7108804 L29.7214023,36.1563459 L25.9252024,36.1563459 L25.9252024,31.7108804 C25.9252024,31.2694867 25.6227462,30.8863398 25.1925743,30.7848086 C24.0100025,30.5053304 22.8851431,30.0388211 21.8473869,29.3981055 C21.4717213,29.1656524 20.9865088,29.2228305 20.6744338,29.5349055 L17.5307058,32.6791679 L14.8454715,29.9955367 L17.9902683,26.8512743 C18.3616589,26.4793493 18.3616589,25.8765743 17.9902683,25.5046493 C17.6188777,25.1327243 17.016637,25.1332587 16.6436433,25.5046493 L12.8266028,29.3222242 C12.4552122,29.6941492 12.4552122,30.2969242 12.8266028,30.6688492 L16.8563246,34.6991053 C17.2287839,35.0704959 17.8310245,35.0704959 18.2029495,34.6991053 L21.5032494,31.3988054 C22.3058807,31.8332523 23.1480556,32.1821991 24.0217587,32.4424398 L24.0217587,37.1086021 C24.0217587,37.6344271 24.4476556,38.0608584 24.9734806,38.0608584 L30.6731242,38.0608584 C31.1989492,38.0608584 31.624846,37.6344271 31.624846,37.1086021 L31.624846,32.4419054 C32.4974804,32.1816648 33.3407241,31.8321835 34.1433553,31.398271 L37.4436553,34.698571 C37.8150459,35.0699616 38.4183552,35.0699616 38.7902802,34.698571 L42.8210707,30.6683148 C43.1924614,30.2969242 43.1924614,29.6941492 42.8210707,29.3216898 L39.0029615,25.5046493 Z\",\"id\":\"Path\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M27.8238368,10.6709341 C26.1287993,10.6709341 24.5059025,11.1887435 23.1304213,12.1687872 C22.7023869,12.4739153 22.6024588,13.0681403 22.9070525,13.4961746 C23.093015,13.7569496 23.3858525,13.8964215 23.6834994,13.8964215 C23.8742712,13.8964215 24.067715,13.8392434 24.2355087,13.7195434 C25.2866243,12.970884 26.527443,12.5743778 27.8238368,12.5743778 C29.0459524,12.5743778 30.2285242,12.9302715 31.2427679,13.6030496 C31.6809554,13.894284 32.2719741,13.774584 32.5621398,13.3363965 C32.8533741,12.8987434 32.7331398,12.3071903 32.296021,12.0164903 C30.9686336,11.1358403 29.4221523,10.6709341 27.8238368,10.6709341 Z\",\"id\":\"Path\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M37.6568709,12.9698153 C38.0282615,13.3412059 38.6315709,13.3412059 39.0034958,12.9698153 L42.8216051,9.15224038 C43.1929957,8.78031539 43.1929957,8.17754041 42.8216051,7.80508104 L38.7908146,3.7748249 C38.419424,3.40343428 37.8161146,3.40343428 37.4441896,3.7748249 L34.1438897,7.07565919 C33.3412585,6.64121232 32.4980148,6.29173108 31.6253804,6.03149047 L31.6253804,1.36586246 C31.6253804,0.840037478 31.1994835,0.414140614 30.6736586,0.414140614 L24.9734806,0.414140614 C24.4476556,0.414140614 24.0217587,0.840037478 24.0217587,1.36586246 L24.0217587,6.03149047 C23.1480556,6.29173108 22.3058807,6.64121232 21.5032494,7.07565919 L18.2029495,3.7748249 C17.8315589,3.40343428 17.2293183,3.40343428 16.8563246,3.7748249 L12.8266028,7.80508104 C12.4552122,8.17700603 12.4552122,8.77978102 12.8266028,9.15224038 L16.6436433,12.9698153 C16.8306746,13.1557778 17.0738152,13.2482246 17.3169558,13.2482246 C17.5611652,13.2482246 17.8043058,13.1552434 17.9902683,12.9698153 C18.3616589,12.5978903 18.3616589,11.9951153 17.9902683,11.6231903 L14.8454715,8.4789279 L17.5307058,5.79476235 L20.6744338,8.93955914 C20.9865088,9.25163413 21.4717213,9.3077435 21.8473869,9.07582476 C22.8846088,8.43564353 24.0100025,7.96913416 25.1925743,7.68965605 C25.6227462,7.5881248 25.9252024,7.20444356 25.9252024,6.76304982 L25.9252024,2.31811869 L29.7214023,2.31811869 L29.7214023,6.76304982 C29.7214023,7.20444356 30.0249273,7.5881248 30.4540304,7.68965605 C31.6366023,7.96859979 32.7614616,8.43564353 33.7992179,9.07582476 C34.1748835,9.30827788 34.6611647,9.25163413 34.9732397,8.93955914 L38.1169677,5.79476235 L40.8000645,8.4789279 L37.6563365,11.6231903 C37.2849459,11.9951153 37.2849459,12.5978903 37.6568709,12.9698153 Z\",\"id\":\"Path\",\"key\":3}),React.createElement(\"path\",{\"d\":\"M50.2387299,14.7610402 L42.1290551,14.7610402 L11.4286778,14.7610402 C11.4089059,14.7610402 11.3902028,14.7631777 11.3704309,14.7642465 C11.3597434,14.7647809 11.3495903,14.7647809 11.3389028,14.7658496 C11.2667622,14.7727965 11.1956903,14.787759 11.1288935,14.8102027 C11.126756,14.8112715 11.1235497,14.8112715 11.1214122,14.8123402 L0.75346873,18.3344058 C0.368184365,18.465862 0.108478122,18.8287026 0.108478122,19.2358964 C0.108478122,19.6436245 0.368184365,20.0059307 0.75346873,20.1379213 L11.1214122,23.6594525 C11.1246185,23.6605212 11.1278247,23.66159 11.1299622,23.6621244 C11.1443903,23.6674681 11.1582841,23.6712087 11.1716435,23.674415 C11.1860716,23.67869 11.2021028,23.6824306 11.216531,23.6856369 C11.2288216,23.6883087 11.2416466,23.6909806 11.2539372,23.6941869 C11.2715716,23.6973931 11.2902747,23.700065 11.3084435,23.7022025 C11.319131,23.7038056 11.3292841,23.7054087 11.3399716,23.7059431 C11.3693622,23.708615 11.3982184,23.7107525 11.4276091,23.7107525 L11.4276091,23.7107525 L11.4276091,23.7107525 L42.1290551,23.7107525 L50.2387299,23.7107525 C50.7656237,23.7107525 51.1915205,23.2843213 51.1915205,22.7590306 L51.1915205,15.7127621 C51.1915205,15.4605371 51.091058,15.2184652 50.9131112,15.0394496 C50.7340955,14.8615027 50.4920237,14.7610402 50.2387299,14.7610402 Z M41.1773333,21.80624 L12.3803997,21.80624 L12.3803997,19.235362 L12.3803997,16.6655527 L41.1773333,16.6655527 L41.1773333,21.80624 Z M10.4764216,17.042287 L10.4764216,19.235362 L10.4753528,21.4284369 L4.02010302,19.235362 L10.4764216,17.042287 Z M49.2864737,21.80624 L43.080777,21.80624 L43.080777,16.6660871 L49.2864737,16.6655527 L49.2864737,21.80624 Z\",\"id\":\"Shape\",\"key\":4})]))))]);\n}\n\nIcon2.defaultProps = {\"width\":\"52px\",\"height\":\"39px\",\"viewBox\":\"0 0 52 39\",\"version\":\"1.1\"};\n\nmodule.exports = Icon2;\n\nIcon2.default = Icon2;\n","'use strict';\n\n// Gets all non-builtin properties up the prototype chain\nconst getAllProperties = object => {\n  const props = new Set();\n  do {\n    for (const key of Reflect.ownKeys(object)) {\n      props.add([object, key]);\n    }\n  } while ((object = Reflect.getPrototypeOf(object)) && object !== Object.prototype);\n  return props;\n};\nmodule.exports = (self, options) => {\n  options = Object.assign({}, options);\n  const filter = key => {\n    const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);\n    if (options.include) {\n      return options.include.some(match);\n    }\n    if (options.exclude) {\n      return !options.exclude.some(match);\n    }\n    return true;\n  };\n  for (const [object, key] of getAllProperties(self.constructor.prototype)) {\n    if (key === 'constructor' || !filter(key)) {\n      continue;\n    }\n    const descriptor = Reflect.getOwnPropertyDescriptor(object, key);\n    if (descriptor && typeof descriptor.value === 'function') {\n      self[key] = self[key].bind(self);\n    }\n  }\n  return self;\n};\nconst excludedReactMethods = ['componentWillMount', 'UNSAFE_componentWillMount', 'render', 'getSnapshotBeforeUpdate', 'componentDidMount', 'componentWillReceiveProps', 'UNSAFE_componentWillReceiveProps', 'shouldComponentUpdate', 'componentWillUpdate', 'UNSAFE_componentWillUpdate', 'componentDidUpdate', 'componentWillUnmount', 'componentDidCatch', 'setState', 'forceUpdate'];\nmodule.exports.react = (self, options) => {\n  options = Object.assign({}, options);\n  options.exclude = (options.exclude || []).concat(excludedReactMethods);\n  return module.exports(self, options);\n};","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/*!\n * Observer 3.12.7\n * https://gsap.com\n *\n * @license Copyright 2008-2025, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nvar gsap,\n  _coreInitted,\n  _clamp,\n  _win,\n  _doc,\n  _docEl,\n  _body,\n  _isTouch,\n  _pointerType,\n  ScrollTrigger,\n  _root,\n  _normalizer,\n  _eventTypes,\n  _context,\n  _getGSAP = function _getGSAP() {\n    return gsap || typeof window !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n  },\n  _startup = 1,\n  _observers = [],\n  _scrollers = [],\n  _proxies = [],\n  _getTime = Date.now,\n  _bridge = function _bridge(name, value) {\n    return value;\n  },\n  _integrate = function _integrate() {\n    var core = ScrollTrigger.core,\n      data = core.bridge || {},\n      scrollers = core._scrollers,\n      proxies = core._proxies;\n    scrollers.push.apply(scrollers, _scrollers);\n    proxies.push.apply(proxies, _proxies);\n    _scrollers = scrollers;\n    _proxies = proxies;\n    _bridge = function _bridge(name, value) {\n      return data[name](value);\n    };\n  },\n  _getProxyProp = function _getProxyProp(element, property) {\n    return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];\n  },\n  _isViewport = function _isViewport(el) {\n    return !!~_root.indexOf(el);\n  },\n  _addListener = function _addListener(element, type, func, passive, capture) {\n    return element.addEventListener(type, func, {\n      passive: passive !== false,\n      capture: !!capture\n    });\n  },\n  _removeListener = function _removeListener(element, type, func, capture) {\n    return element.removeEventListener(type, func, !!capture);\n  },\n  _scrollLeft = \"scrollLeft\",\n  _scrollTop = \"scrollTop\",\n  _onScroll = function _onScroll() {\n    return _normalizer && _normalizer.isPressed || _scrollers.cache++;\n  },\n  _scrollCacheFunc = function _scrollCacheFunc(f, doNotCache) {\n    var cachingFunc = function cachingFunc(value) {\n      // since reading the scrollTop/scrollLeft/pageOffsetY/pageOffsetX can trigger a layout, this function allows us to cache the value so it only gets read fresh after a \"scroll\" event fires (or while we're refreshing because that can lengthen the page and alter the scroll position). when \"soft\" is true, that means don't actually set the scroll, but cache the new value instead (useful in ScrollSmoother)\n      if (value || value === 0) {\n        _startup && (_win.history.scrollRestoration = \"manual\"); // otherwise the new position will get overwritten by the browser onload.\n\n        var isNormalizing = _normalizer && _normalizer.isPressed;\n        value = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); //TODO: iOS Bug: if you allow it to go to 0, Safari can start to report super strange (wildly inaccurate) touch positions!\n\n        f(value);\n        cachingFunc.cacheID = _scrollers.cache;\n        isNormalizing && _bridge(\"ss\", value); // set scroll (notify ScrollTrigger so it can dispatch a \"scrollStart\" event if necessary\n      } else if (doNotCache || _scrollers.cache !== cachingFunc.cacheID || _bridge(\"ref\")) {\n        cachingFunc.cacheID = _scrollers.cache;\n        cachingFunc.v = f();\n      }\n      return cachingFunc.v + cachingFunc.offset;\n    };\n    cachingFunc.offset = 0;\n    return f && cachingFunc;\n  },\n  _horizontal = {\n    s: _scrollLeft,\n    p: \"left\",\n    p2: \"Left\",\n    os: \"right\",\n    os2: \"Right\",\n    d: \"width\",\n    d2: \"Width\",\n    a: \"x\",\n    sc: _scrollCacheFunc(function (value) {\n      return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;\n    })\n  },\n  _vertical = {\n    s: _scrollTop,\n    p: \"top\",\n    p2: \"Top\",\n    os: \"bottom\",\n    os2: \"Bottom\",\n    d: \"height\",\n    d2: \"Height\",\n    a: \"y\",\n    op: _horizontal,\n    sc: _scrollCacheFunc(function (value) {\n      return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;\n    })\n  },\n  _getTarget = function _getTarget(t, self) {\n    return (self && self._ctx && self._ctx.selector || gsap.utils.toArray)(t)[0] || (typeof t === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t) : null);\n  },\n  _getScrollFunc = function _getScrollFunc(element, _ref) {\n    var s = _ref.s,\n      sc = _ref.sc;\n    // we store the scroller functions in an alternating sequenced Array like [element, verticalScrollFunc, horizontalScrollFunc, ...] so that we can minimize memory, maximize performance, and we also record the last position as a \".rec\" property in order to revert to that after refreshing to ensure things don't shift around.\n    _isViewport(element) && (element = _doc.scrollingElement || _docEl);\n    var i = _scrollers.indexOf(element),\n      offset = sc === _vertical.sc ? 1 : 2;\n    !~i && (i = _scrollers.push(element) - 1);\n    _scrollers[i + offset] || _addListener(element, \"scroll\", _onScroll); // clear the cache when a scroll occurs\n\n    var prev = _scrollers[i + offset],\n      func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function (value) {\n        return arguments.length ? element[s] = value : element[s];\n      })));\n    func.target = element;\n    prev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\"); // only set it the first time (don't reset every time a scrollFunc is requested because perhaps it happens during a refresh() when it's disabled in ScrollTrigger.\n\n    return func;\n  },\n  _getVelocityProp = function _getVelocityProp(value, minTimeRefresh, useDelta) {\n    var v1 = value,\n      v2 = value,\n      t1 = _getTime(),\n      t2 = t1,\n      min = minTimeRefresh || 50,\n      dropToZeroTime = Math.max(500, min * 3),\n      update = function update(value, force) {\n        var t = _getTime();\n        if (force || t - t1 > min) {\n          v2 = v1;\n          v1 = value;\n          t2 = t1;\n          t1 = t;\n        } else if (useDelta) {\n          v1 += value;\n        } else {\n          // not totally necessary, but makes it a bit more accurate by adjusting the v1 value according to the new slope. This way we're not just ignoring the incoming data. Removing for now because it doesn't seem to make much practical difference and it's probably not worth the kb.\n          v1 = v2 + (value - v2) / (t - t2) * (t1 - t2);\n        }\n      },\n      reset = function reset() {\n        v2 = v1 = useDelta ? 0 : v1;\n        t2 = t1 = 0;\n      },\n      getVelocity = function getVelocity(latestValue) {\n        var tOld = t2,\n          vOld = v2,\n          t = _getTime();\n        (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n        return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000;\n      };\n    return {\n      update: update,\n      reset: reset,\n      getVelocity: getVelocity\n    };\n  },\n  _getEvent = function _getEvent(e, preventDefault) {\n    preventDefault && !e._gsapAllow && e.preventDefault();\n    return e.changedTouches ? e.changedTouches[0] : e;\n  },\n  _getAbsoluteMax = function _getAbsoluteMax(a) {\n    var max = Math.max.apply(Math, a),\n      min = Math.min.apply(Math, a);\n    return Math.abs(max) >= Math.abs(min) ? max : min;\n  },\n  _setScrollTrigger = function _setScrollTrigger() {\n    ScrollTrigger = gsap.core.globals().ScrollTrigger;\n    ScrollTrigger && ScrollTrigger.core && _integrate();\n  },\n  _initCore = function _initCore(core) {\n    gsap = core || _getGSAP();\n    if (!_coreInitted && gsap && typeof document !== \"undefined\" && document.body) {\n      _win = window;\n      _doc = document;\n      _docEl = _doc.documentElement;\n      _body = _doc.body;\n      _root = [_win, _doc, _docEl, _body];\n      _clamp = gsap.utils.clamp;\n      _context = gsap.core.context || function () {};\n      _pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\"; // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n      _isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : \"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;\n      _eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n      setTimeout(function () {\n        return _startup = 0;\n      }, 500);\n      _setScrollTrigger();\n      _coreInitted = 1;\n    }\n    return _coreInitted;\n  };\n_horizontal.op = _vertical;\n_scrollers.cache = 0;\nexport var Observer = /*#__PURE__*/function () {\n  function Observer(vars) {\n    this.init(vars);\n  }\n  var _proto = Observer.prototype;\n  _proto.init = function init(vars) {\n    _coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n    ScrollTrigger || _setScrollTrigger();\n    var tolerance = vars.tolerance,\n      dragMinimum = vars.dragMinimum,\n      type = vars.type,\n      target = vars.target,\n      lineHeight = vars.lineHeight,\n      debounce = vars.debounce,\n      preventDefault = vars.preventDefault,\n      onStop = vars.onStop,\n      onStopDelay = vars.onStopDelay,\n      ignore = vars.ignore,\n      wheelSpeed = vars.wheelSpeed,\n      event = vars.event,\n      onDragStart = vars.onDragStart,\n      onDragEnd = vars.onDragEnd,\n      onDrag = vars.onDrag,\n      onPress = vars.onPress,\n      onRelease = vars.onRelease,\n      onRight = vars.onRight,\n      onLeft = vars.onLeft,\n      onUp = vars.onUp,\n      onDown = vars.onDown,\n      onChangeX = vars.onChangeX,\n      onChangeY = vars.onChangeY,\n      onChange = vars.onChange,\n      onToggleX = vars.onToggleX,\n      onToggleY = vars.onToggleY,\n      onHover = vars.onHover,\n      onHoverEnd = vars.onHoverEnd,\n      onMove = vars.onMove,\n      ignoreCheck = vars.ignoreCheck,\n      isNormalizer = vars.isNormalizer,\n      onGestureStart = vars.onGestureStart,\n      onGestureEnd = vars.onGestureEnd,\n      onWheel = vars.onWheel,\n      onEnable = vars.onEnable,\n      onDisable = vars.onDisable,\n      onClick = vars.onClick,\n      scrollSpeed = vars.scrollSpeed,\n      capture = vars.capture,\n      allowClicks = vars.allowClicks,\n      lockAxis = vars.lockAxis,\n      onLockAxis = vars.onLockAxis;\n    this.target = target = _getTarget(target) || _docEl;\n    this.vars = vars;\n    ignore && (ignore = gsap.utils.toArray(ignore));\n    tolerance = tolerance || 1e-9;\n    dragMinimum = dragMinimum || 0;\n    wheelSpeed = wheelSpeed || 1;\n    scrollSpeed = scrollSpeed || 1;\n    type = type || \"wheel,touch,pointer\";\n    debounce = debounce !== false;\n    lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report \"normal\", so default to 22.\n\n    var id,\n      onStopDelayedCall,\n      dragged,\n      moved,\n      wheeled,\n      locked,\n      axis,\n      self = this,\n      prevDeltaX = 0,\n      prevDeltaY = 0,\n      passive = vars.passive || !preventDefault && vars.passive !== false,\n      scrollFuncX = _getScrollFunc(target, _horizontal),\n      scrollFuncY = _getScrollFunc(target, _vertical),\n      scrollX = scrollFuncX(),\n      scrollY = scrollFuncY(),\n      limitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\",\n      // for devices that accommodate mouse events and touch events, we need to distinguish.\n      isViewport = _isViewport(target),\n      ownerDoc = target.ownerDocument || _doc,\n      deltaX = [0, 0, 0],\n      // wheel, scroll, pointer/touch\n      deltaY = [0, 0, 0],\n      onClickTime = 0,\n      clickCapture = function clickCapture() {\n        return onClickTime = _getTime();\n      },\n      _ignoreCheck = function _ignoreCheck(e, isPointerOrTouch) {\n        return (self.event = e) && ignore && ~ignore.indexOf(e.target) || isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\" || ignoreCheck && ignoreCheck(e, isPointerOrTouch);\n      },\n      onStopFunc = function onStopFunc() {\n        self._vx.reset();\n        self._vy.reset();\n        onStopDelayedCall.pause();\n        onStop && onStop(self);\n      },\n      update = function update() {\n        var dx = self.deltaX = _getAbsoluteMax(deltaX),\n          dy = self.deltaY = _getAbsoluteMax(deltaY),\n          changedX = Math.abs(dx) >= tolerance,\n          changedY = Math.abs(dy) >= tolerance;\n        onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out.\n\n        if (changedX) {\n          onRight && self.deltaX > 0 && onRight(self);\n          onLeft && self.deltaX < 0 && onLeft(self);\n          onChangeX && onChangeX(self);\n          onToggleX && self.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self);\n          prevDeltaX = self.deltaX;\n          deltaX[0] = deltaX[1] = deltaX[2] = 0;\n        }\n        if (changedY) {\n          onDown && self.deltaY > 0 && onDown(self);\n          onUp && self.deltaY < 0 && onUp(self);\n          onChangeY && onChangeY(self);\n          onToggleY && self.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self);\n          prevDeltaY = self.deltaY;\n          deltaY[0] = deltaY[1] = deltaY[2] = 0;\n        }\n        if (moved || dragged) {\n          onMove && onMove(self);\n          if (dragged) {\n            onDragStart && dragged === 1 && onDragStart(self);\n            onDrag && onDrag(self);\n            dragged = 0;\n          }\n          moved = false;\n        }\n        locked && !(locked = false) && onLockAxis && onLockAxis(self);\n        if (wheeled) {\n          onWheel(self);\n          wheeled = false;\n        }\n        id = 0;\n      },\n      onDelta = function onDelta(x, y, index) {\n        deltaX[index] += x;\n        deltaY[index] += y;\n        self._vx.update(x);\n        self._vy.update(y);\n        debounce ? id || (id = requestAnimationFrame(update)) : update();\n      },\n      onTouchOrPointerDelta = function onTouchOrPointerDelta(x, y) {\n        if (lockAxis && !axis) {\n          self.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n          locked = true;\n        }\n        if (axis !== \"y\") {\n          deltaX[2] += x;\n          self._vx.update(x, true); // update the velocity as frequently as possible instead of in the debounced function so that very quick touch-scrolls (flicks) feel natural. If it's the mouse/touch/pointer, force it so that we get snappy/accurate momentum scroll.\n        }\n        if (axis !== \"x\") {\n          deltaY[2] += y;\n          self._vy.update(y, true);\n        }\n        debounce ? id || (id = requestAnimationFrame(update)) : update();\n      },\n      _onDrag = function _onDrag(e) {\n        if (_ignoreCheck(e, 1)) {\n          return;\n        }\n        e = _getEvent(e, preventDefault);\n        var x = e.clientX,\n          y = e.clientY,\n          dx = x - self.x,\n          dy = y - self.y,\n          isDragging = self.isDragging;\n        self.x = x;\n        self.y = y;\n        if (isDragging || (dx || dy) && (Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum)) {\n          dragged = isDragging ? 2 : 1; // dragged: 0 = not dragging, 1 = first drag, 2 = normal drag\n\n          isDragging || (self.isDragging = true);\n          onTouchOrPointerDelta(dx, dy);\n        }\n      },\n      _onPress = self.onPress = function (e) {\n        if (_ignoreCheck(e, 1) || e && e.button) {\n          return;\n        }\n        self.axis = axis = null;\n        onStopDelayedCall.pause();\n        self.isPressed = true;\n        e = _getEvent(e); // note: may need to preventDefault(?) Won't side-scroll on iOS Safari if we do, though.\n\n        prevDeltaX = prevDeltaY = 0;\n        self.startX = self.x = e.clientX;\n        self.startY = self.y = e.clientY;\n        self._vx.reset(); // otherwise the t2 may be stale if the user touches and flicks super fast and releases in less than 2 requestAnimationFrame ticks, causing velocity to be 0.\n\n        self._vy.reset();\n        _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);\n        self.deltaX = self.deltaY = 0;\n        onPress && onPress(self);\n      },\n      _onRelease = self.onRelease = function (e) {\n        if (_ignoreCheck(e, 1)) {\n          return;\n        }\n        _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n        var isTrackingDrag = !isNaN(self.y - self.startY),\n          wasDragging = self.isDragging,\n          isDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3),\n          // some touch devices need some wiggle room in terms of sensing clicks - the finger may move a few pixels.\n          eventData = _getEvent(e);\n        if (!isDragNotClick && isTrackingDrag) {\n          self._vx.reset();\n          self._vy.reset(); //if (preventDefault && allowClicks && self.isPressed) { // check isPressed because in a rare edge case, the inputObserver in ScrollTrigger may stopPropagation() on the press/drag, so the onRelease may get fired without the onPress/onDrag ever getting called, thus it could trigger a click to occur on a link after scroll-dragging it.\n\n          if (preventDefault && allowClicks) {\n            gsap.delayedCall(0.08, function () {\n              // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular \"click\" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the \"real\"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the \"real\" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched.\n              if (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n                if (e.target.click) {\n                  //some browsers (like mobile Safari) don't properly trigger the click event\n                  e.target.click();\n                } else if (ownerDoc.createEvent) {\n                  var syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n                  syntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n                  e.target.dispatchEvent(syntheticEvent);\n                }\n              }\n            });\n          }\n        }\n        self.isDragging = self.isGesturing = self.isPressed = false;\n        onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);\n        dragged && update(); // in case debouncing, we don't want onDrag to fire AFTER onDragEnd().\n\n        onDragEnd && wasDragging && onDragEnd(self);\n        onRelease && onRelease(self, isDragNotClick);\n      },\n      _onGestureStart = function _onGestureStart(e) {\n        return e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging);\n      },\n      _onGestureEnd = function _onGestureEnd() {\n        return (self.isGesturing = false) || onGestureEnd(self);\n      },\n      onScroll = function onScroll(e) {\n        if (_ignoreCheck(e)) {\n          return;\n        }\n        var x = scrollFuncX(),\n          y = scrollFuncY();\n        onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n        scrollX = x;\n        scrollY = y;\n        onStop && onStopDelayedCall.restart(true);\n      },\n      _onWheel = function _onWheel(e) {\n        if (_ignoreCheck(e)) {\n          return;\n        }\n        e = _getEvent(e, preventDefault);\n        onWheel && (wheeled = true);\n        var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n        onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n        onStop && !isNormalizer && onStopDelayedCall.restart(true);\n      },\n      _onMove = function _onMove(e) {\n        if (_ignoreCheck(e)) {\n          return;\n        }\n        var x = e.clientX,\n          y = e.clientY,\n          dx = x - self.x,\n          dy = y - self.y;\n        self.x = x;\n        self.y = y;\n        moved = true;\n        onStop && onStopDelayedCall.restart(true);\n        (dx || dy) && onTouchOrPointerDelta(dx, dy);\n      },\n      _onHover = function _onHover(e) {\n        self.event = e;\n        onHover(self);\n      },\n      _onHoverEnd = function _onHoverEnd(e) {\n        self.event = e;\n        onHoverEnd(self);\n      },\n      _onClick = function _onClick(e) {\n        return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self);\n      };\n    onStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n    self.deltaX = self.deltaY = 0;\n    self._vx = _getVelocityProp(0, 50, true);\n    self._vy = _getVelocityProp(0, 50, true);\n    self.scrollX = scrollFuncX;\n    self.scrollY = scrollFuncY;\n    self.isDragging = self.isGesturing = self.isPressed = false;\n    _context(this);\n    self.enable = function (e) {\n      if (!self.isEnabled) {\n        _addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n        type.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, passive, capture);\n        type.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, passive, capture);\n        if (type.indexOf(\"touch\") >= 0 && _isTouch || type.indexOf(\"pointer\") >= 0) {\n          _addListener(target, _eventTypes[0], _onPress, passive, capture);\n          _addListener(ownerDoc, _eventTypes[2], _onRelease);\n          _addListener(ownerDoc, _eventTypes[3], _onRelease);\n          allowClicks && _addListener(target, \"click\", clickCapture, true, true);\n          onClick && _addListener(target, \"click\", _onClick);\n          onGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n          onGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n          onHover && _addListener(target, _pointerType + \"enter\", _onHover);\n          onHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n          onMove && _addListener(target, _pointerType + \"move\", _onMove);\n        }\n        self.isEnabled = true;\n        self.isDragging = self.isGesturing = self.isPressed = moved = dragged = false;\n        self._vx.reset();\n        self._vy.reset();\n        scrollX = scrollFuncX();\n        scrollY = scrollFuncY();\n        e && e.type && _onPress(e);\n        onEnable && onEnable(self);\n      }\n      return self;\n    };\n    self.disable = function () {\n      if (self.isEnabled) {\n        // only remove the _onScroll listener if there aren't any others that rely on the functionality.\n        _observers.filter(function (o) {\n          return o !== self && _isViewport(o.target);\n        }).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n        if (self.isPressed) {\n          self._vx.reset();\n          self._vy.reset();\n          _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n        }\n        _removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n        _removeListener(target, \"wheel\", _onWheel, capture);\n        _removeListener(target, _eventTypes[0], _onPress, capture);\n        _removeListener(ownerDoc, _eventTypes[2], _onRelease);\n        _removeListener(ownerDoc, _eventTypes[3], _onRelease);\n        _removeListener(target, \"click\", clickCapture, true);\n        _removeListener(target, \"click\", _onClick);\n        _removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n        _removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n        _removeListener(target, _pointerType + \"enter\", _onHover);\n        _removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n        _removeListener(target, _pointerType + \"move\", _onMove);\n        self.isEnabled = self.isPressed = self.isDragging = false;\n        onDisable && onDisable(self);\n      }\n    };\n    self.kill = self.revert = function () {\n      self.disable();\n      var i = _observers.indexOf(self);\n      i >= 0 && _observers.splice(i, 1);\n      _normalizer === self && (_normalizer = 0);\n    };\n    _observers.push(self);\n    isNormalizer && _isViewport(target) && (_normalizer = self);\n    self.enable(event);\n  };\n  _createClass(Observer, [{\n    key: \"velocityX\",\n    get: function get() {\n      return this._vx.getVelocity();\n    }\n  }, {\n    key: \"velocityY\",\n    get: function get() {\n      return this._vy.getVelocity();\n    }\n  }]);\n  return Observer;\n}();\nObserver.version = \"3.12.7\";\nObserver.create = function (vars) {\n  return new Observer(vars);\n};\nObserver.register = _initCore;\nObserver.getAll = function () {\n  return _observers.slice();\n};\nObserver.getById = function (id) {\n  return _observers.filter(function (o) {\n    return o.vars.id === id;\n  })[0];\n};\n_getGSAP() && gsap.registerPlugin(Observer);\nexport { Observer as default, _isViewport, _scrollers, _getScrollFunc, _getProxyProp, _proxies, _getVelocityProp, _vertical, _horizontal, _getTarget };","/*!\n * ScrollTrigger 3.12.7\n * https://gsap.com\n *\n * @license Copyright 2008-2025, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n\n/* eslint-disable */\nimport { Observer, _getTarget, _vertical, _horizontal, _scrollers, _proxies, _getScrollFunc, _getProxyProp, _getVelocityProp } from \"./Observer.js\";\nvar gsap,\n  _coreInitted,\n  _win,\n  _doc,\n  _docEl,\n  _body,\n  _root,\n  _resizeDelay,\n  _toArray,\n  _clamp,\n  _time2,\n  _syncInterval,\n  _refreshing,\n  _pointerIsDown,\n  _transformProp,\n  _i,\n  _prevWidth,\n  _prevHeight,\n  _autoRefresh,\n  _sort,\n  _suppressOverwrites,\n  _ignoreResize,\n  _normalizer,\n  _ignoreMobileResize,\n  _baseScreenHeight,\n  _baseScreenWidth,\n  _fixIOSBug,\n  _context,\n  _scrollRestoration,\n  _div100vh,\n  _100vh,\n  _isReverted,\n  _clampingMax,\n  _limitCallbacks,\n  // if true, we'll only trigger callbacks if the active state toggles, so if you scroll immediately past both the start and end positions of a ScrollTrigger (thus inactive to inactive), neither its onEnter nor onLeave will be called. This is useful during startup.\n  _startup = 1,\n  _getTime = Date.now,\n  _time1 = _getTime(),\n  _lastScrollTime = 0,\n  _enabled = 0,\n  _parseClamp = function _parseClamp(value, type, self) {\n    var clamp = _isString(value) && (value.substr(0, 6) === \"clamp(\" || value.indexOf(\"max\") > -1);\n    self[\"_\" + type + \"Clamp\"] = clamp;\n    return clamp ? value.substr(6, value.length - 7) : value;\n  },\n  _keepClamp = function _keepClamp(value, clamp) {\n    return clamp && (!_isString(value) || value.substr(0, 6) !== \"clamp(\") ? \"clamp(\" + value + \")\" : value;\n  },\n  _rafBugFix = function _rafBugFix() {\n    return _enabled && requestAnimationFrame(_rafBugFix);\n  },\n  // in some browsers (like Firefox), screen repaints weren't consistent unless we had SOMETHING queued up in requestAnimationFrame()! So this just creates a super simple loop to keep it alive and smooth out repaints.\n  _pointerDownHandler = function _pointerDownHandler() {\n    return _pointerIsDown = 1;\n  },\n  _pointerUpHandler = function _pointerUpHandler() {\n    return _pointerIsDown = 0;\n  },\n  _passThrough = function _passThrough(v) {\n    return v;\n  },\n  _round = function _round(value) {\n    return Math.round(value * 100000) / 100000 || 0;\n  },\n  _windowExists = function _windowExists() {\n    return typeof window !== \"undefined\";\n  },\n  _getGSAP = function _getGSAP() {\n    return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n  },\n  _isViewport = function _isViewport(e) {\n    return !!~_root.indexOf(e);\n  },\n  _getViewportDimension = function _getViewportDimension(dimensionProperty) {\n    return (dimensionProperty === \"Height\" ? _100vh : _win[\"inner\" + dimensionProperty]) || _docEl[\"client\" + dimensionProperty] || _body[\"client\" + dimensionProperty];\n  },\n  _getBoundsFunc = function _getBoundsFunc(element) {\n    return _getProxyProp(element, \"getBoundingClientRect\") || (_isViewport(element) ? function () {\n      _winOffsets.width = _win.innerWidth;\n      _winOffsets.height = _100vh;\n      return _winOffsets;\n    } : function () {\n      return _getBounds(element);\n    });\n  },\n  _getSizeFunc = function _getSizeFunc(scroller, isViewport, _ref) {\n    var d = _ref.d,\n      d2 = _ref.d2,\n      a = _ref.a;\n    return (a = _getProxyProp(scroller, \"getBoundingClientRect\")) ? function () {\n      return a()[d];\n    } : function () {\n      return (isViewport ? _getViewportDimension(d2) : scroller[\"client\" + d2]) || 0;\n    };\n  },\n  _getOffsetsFunc = function _getOffsetsFunc(element, isViewport) {\n    return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function () {\n      return _winOffsets;\n    };\n  },\n  _maxScroll = function _maxScroll(element, _ref2) {\n    var s = _ref2.s,\n      d2 = _ref2.d2,\n      d = _ref2.d,\n      a = _ref2.a;\n    return Math.max(0, (s = \"scroll\" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport(element) ? (_docEl[s] || _body[s]) - _getViewportDimension(d2) : element[s] - element[\"offset\" + d2]);\n  },\n  _iterateAutoRefresh = function _iterateAutoRefresh(func, events) {\n    for (var i = 0; i < _autoRefresh.length; i += 3) {\n      (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]);\n    }\n  },\n  _isString = function _isString(value) {\n    return typeof value === \"string\";\n  },\n  _isFunction = function _isFunction(value) {\n    return typeof value === \"function\";\n  },\n  _isNumber = function _isNumber(value) {\n    return typeof value === \"number\";\n  },\n  _isObject = function _isObject(value) {\n    return typeof value === \"object\";\n  },\n  _endAnimation = function _endAnimation(animation, reversed, pause) {\n    return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();\n  },\n  _callback = function _callback(self, func) {\n    if (self.enabled) {\n      var result = self._ctx ? self._ctx.add(function () {\n        return func(self);\n      }) : func(self);\n      result && result.totalTime && (self.callbackAnimation = result);\n    }\n  },\n  _abs = Math.abs,\n  _left = \"left\",\n  _top = \"top\",\n  _right = \"right\",\n  _bottom = \"bottom\",\n  _width = \"width\",\n  _height = \"height\",\n  _Right = \"Right\",\n  _Left = \"Left\",\n  _Top = \"Top\",\n  _Bottom = \"Bottom\",\n  _padding = \"padding\",\n  _margin = \"margin\",\n  _Width = \"Width\",\n  _Height = \"Height\",\n  _px = \"px\",\n  _getComputedStyle = function _getComputedStyle(element) {\n    return _win.getComputedStyle(element);\n  },\n  _makePositionable = function _makePositionable(element) {\n    // if the element already has position: absolute or fixed, leave that, otherwise make it position: relative\n    var position = _getComputedStyle(element).position;\n    element.style.position = position === \"absolute\" || position === \"fixed\" ? position : \"relative\";\n  },\n  _setDefaults = function _setDefaults(obj, defaults) {\n    for (var p in defaults) {\n      p in obj || (obj[p] = defaults[p]);\n    }\n    return obj;\n  },\n  _getBounds = function _getBounds(element, withoutTransforms) {\n    var tween = withoutTransforms && _getComputedStyle(element)[_transformProp] !== \"matrix(1, 0, 0, 1, 0, 0)\" && gsap.to(element, {\n        x: 0,\n        y: 0,\n        xPercent: 0,\n        yPercent: 0,\n        rotation: 0,\n        rotationX: 0,\n        rotationY: 0,\n        scale: 1,\n        skewX: 0,\n        skewY: 0\n      }).progress(1),\n      bounds = element.getBoundingClientRect();\n    tween && tween.progress(0).kill();\n    return bounds;\n  },\n  _getSize = function _getSize(element, _ref3) {\n    var d2 = _ref3.d2;\n    return element[\"offset\" + d2] || element[\"client\" + d2] || 0;\n  },\n  _getLabelRatioArray = function _getLabelRatioArray(timeline) {\n    var a = [],\n      labels = timeline.labels,\n      duration = timeline.duration(),\n      p;\n    for (p in labels) {\n      a.push(labels[p] / duration);\n    }\n    return a;\n  },\n  _getClosestLabel = function _getClosestLabel(animation) {\n    return function (value) {\n      return gsap.utils.snap(_getLabelRatioArray(animation), value);\n    };\n  },\n  _snapDirectional = function _snapDirectional(snapIncrementOrArray) {\n    var snap = gsap.utils.snap(snapIncrementOrArray),\n      a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function (a, b) {\n        return a - b;\n      });\n    return a ? function (value, direction, threshold) {\n      if (threshold === void 0) {\n        threshold = 1e-3;\n      }\n      var i;\n      if (!direction) {\n        return snap(value);\n      }\n      if (direction > 0) {\n        value -= threshold; // to avoid rounding errors. If we're too strict, it might snap forward, then immediately again, and again.\n\n        for (i = 0; i < a.length; i++) {\n          if (a[i] >= value) {\n            return a[i];\n          }\n        }\n        return a[i - 1];\n      } else {\n        i = a.length;\n        value += threshold;\n        while (i--) {\n          if (a[i] <= value) {\n            return a[i];\n          }\n        }\n      }\n      return a[0];\n    } : function (value, direction, threshold) {\n      if (threshold === void 0) {\n        threshold = 1e-3;\n      }\n      var snapped = snap(value);\n      return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);\n    };\n  },\n  _getLabelAtDirection = function _getLabelAtDirection(timeline) {\n    return function (value, st) {\n      return _snapDirectional(_getLabelRatioArray(timeline))(value, st.direction);\n    };\n  },\n  _multiListener = function _multiListener(func, element, types, callback) {\n    return types.split(\",\").forEach(function (type) {\n      return func(element, type, callback);\n    });\n  },\n  _addListener = function _addListener(element, type, func, nonPassive, capture) {\n    return element.addEventListener(type, func, {\n      passive: !nonPassive,\n      capture: !!capture\n    });\n  },\n  _removeListener = function _removeListener(element, type, func, capture) {\n    return element.removeEventListener(type, func, !!capture);\n  },\n  _wheelListener = function _wheelListener(func, el, scrollFunc) {\n    scrollFunc = scrollFunc && scrollFunc.wheelHandler;\n    if (scrollFunc) {\n      func(el, \"wheel\", scrollFunc);\n      func(el, \"touchmove\", scrollFunc);\n    }\n  },\n  _markerDefaults = {\n    startColor: \"green\",\n    endColor: \"red\",\n    indent: 0,\n    fontSize: \"16px\",\n    fontWeight: \"normal\"\n  },\n  _defaults = {\n    toggleActions: \"play\",\n    anticipatePin: 0\n  },\n  _keywords = {\n    top: 0,\n    left: 0,\n    center: 0.5,\n    bottom: 1,\n    right: 1\n  },\n  _offsetToPx = function _offsetToPx(value, size) {\n    if (_isString(value)) {\n      var eqIndex = value.indexOf(\"=\"),\n        relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;\n      if (~eqIndex) {\n        value.indexOf(\"%\") > eqIndex && (relative *= size / 100);\n        value = value.substr(0, eqIndex - 1);\n      }\n      value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf(\"%\") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);\n    }\n    return value;\n  },\n  _createMarker = function _createMarker(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {\n    var startColor = _ref4.startColor,\n      endColor = _ref4.endColor,\n      fontSize = _ref4.fontSize,\n      indent = _ref4.indent,\n      fontWeight = _ref4.fontWeight;\n    var e = _doc.createElement(\"div\"),\n      useFixedPosition = _isViewport(container) || _getProxyProp(container, \"pinType\") === \"fixed\",\n      isScroller = type.indexOf(\"scroller\") !== -1,\n      parent = useFixedPosition ? _body : container,\n      isStart = type.indexOf(\"start\") !== -1,\n      color = isStart ? startColor : endColor,\n      css = \"border-color:\" + color + \";font-size:\" + fontSize + \";color:\" + color + \";font-weight:\" + fontWeight + \";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;\";\n    css += \"position:\" + ((isScroller || containerAnimation) && useFixedPosition ? \"fixed;\" : \"absolute;\");\n    (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + \":\" + (offset + parseFloat(indent)) + \"px;\");\n    matchWidthEl && (css += \"box-sizing:border-box;text-align:left;width:\" + matchWidthEl.offsetWidth + \"px;\");\n    e._isStart = isStart;\n    e.setAttribute(\"class\", \"gsap-marker-\" + type + (name ? \" marker-\" + name : \"\"));\n    e.style.cssText = css;\n    e.innerText = name || name === 0 ? type + \"-\" + name : type;\n    parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e);\n    e._offset = e[\"offset\" + direction.op.d2];\n    _positionMarker(e, 0, direction, isStart);\n    return e;\n  },\n  _positionMarker = function _positionMarker(marker, start, direction, flipped) {\n    var vars = {\n        display: \"block\"\n      },\n      side = direction[flipped ? \"os2\" : \"p2\"],\n      oppositeSide = direction[flipped ? \"p2\" : \"os2\"];\n    marker._isFlipped = flipped;\n    vars[direction.a + \"Percent\"] = flipped ? -100 : 0;\n    vars[direction.a] = flipped ? \"1px\" : 0;\n    vars[\"border\" + side + _Width] = 1;\n    vars[\"border\" + oppositeSide + _Width] = 0;\n    vars[direction.p] = start + \"px\";\n    gsap.set(marker, vars);\n  },\n  _triggers = [],\n  _ids = {},\n  _rafID,\n  _sync = function _sync() {\n    return _getTime() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));\n  },\n  _onScroll = function _onScroll() {\n    // previously, we tried to optimize performance by batching/deferring to the next requestAnimationFrame(), but discovered that Safari has a few bugs that make this unworkable (especially on iOS). See https://codepen.io/GreenSock/pen/16c435b12ef09c38125204818e7b45fc?editors=0010 and https://codepen.io/GreenSock/pen/JjOxYpQ/3dd65ccec5a60f1d862c355d84d14562?editors=0010 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503?editors=0010\n    if (!_normalizer || !_normalizer.isPressed || _normalizer.startX > _body.clientWidth) {\n      // if the user is dragging the scrollbar, allow it.\n      _scrollers.cache++;\n      if (_normalizer) {\n        _rafID || (_rafID = requestAnimationFrame(_updateAll));\n      } else {\n        _updateAll(); // Safari in particular (on desktop) NEEDS the immediate update rather than waiting for a requestAnimationFrame() whereas iOS seems to benefit from waiting for the requestAnimationFrame() tick, at least when normalizing. See https://codepen.io/GreenSock/pen/qBYozqO?editors=0110\n      }\n      _lastScrollTime || _dispatch(\"scrollStart\");\n      _lastScrollTime = _getTime();\n    }\n  },\n  _setBaseDimensions = function _setBaseDimensions() {\n    _baseScreenWidth = _win.innerWidth;\n    _baseScreenHeight = _win.innerHeight;\n  },\n  _onResize = function _onResize(force) {\n    _scrollers.cache++;\n    (force === true || !_refreshing && !_ignoreResize && !_doc.fullscreenElement && !_doc.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win.innerWidth || Math.abs(_win.innerHeight - _baseScreenHeight) > _win.innerHeight * 0.25)) && _resizeDelay.restart(true);\n  },\n  // ignore resizes triggered by refresh()\n  _listeners = {},\n  _emptyArray = [],\n  _softRefresh = function _softRefresh() {\n    return _removeListener(ScrollTrigger, \"scrollEnd\", _softRefresh) || _refreshAll(true);\n  },\n  _dispatch = function _dispatch(type) {\n    return _listeners[type] && _listeners[type].map(function (f) {\n      return f();\n    }) || _emptyArray;\n  },\n  _savedStyles = [],\n  // when ScrollTrigger.saveStyles() is called, the inline styles are recorded in this Array in a sequential format like [element, cssText, gsCache, media]. This keeps it very memory-efficient and fast to iterate through.\n  _revertRecorded = function _revertRecorded(media) {\n    for (var i = 0; i < _savedStyles.length; i += 5) {\n      if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) {\n        _savedStyles[i].style.cssText = _savedStyles[i + 1];\n        _savedStyles[i].getBBox && _savedStyles[i].setAttribute(\"transform\", _savedStyles[i + 2] || \"\");\n        _savedStyles[i + 3].uncache = 1;\n      }\n    }\n  },\n  _revertAll = function _revertAll(kill, media) {\n    var trigger;\n    for (_i = 0; _i < _triggers.length; _i++) {\n      trigger = _triggers[_i];\n      if (trigger && (!media || trigger._ctx === media)) {\n        if (kill) {\n          trigger.kill(1);\n        } else {\n          trigger.revert(true, true);\n        }\n      }\n    }\n    _isReverted = true;\n    media && _revertRecorded(media);\n    media || _dispatch(\"revert\");\n  },\n  _clearScrollMemory = function _clearScrollMemory(scrollRestoration, force) {\n    // zero-out all the recorded scroll positions. Don't use _triggers because if, for example, .matchMedia() is used to create some ScrollTriggers and then the user resizes and it removes ALL ScrollTriggers, and then go back to a size where there are ScrollTriggers, it would have kept the position(s) saved from the initial state.\n    _scrollers.cache++;\n    (force || !_refreshingAll) && _scrollers.forEach(function (obj) {\n      return _isFunction(obj) && obj.cacheID++ && (obj.rec = 0);\n    });\n    _isString(scrollRestoration) && (_win.history.scrollRestoration = _scrollRestoration = scrollRestoration);\n  },\n  _refreshingAll,\n  _refreshID = 0,\n  _queueRefreshID,\n  _queueRefreshAll = function _queueRefreshAll() {\n    // we don't want to call _refreshAll() every time we create a new ScrollTrigger (for performance reasons) - it's better to batch them. Some frameworks dynamically load content and we can't rely on the window's \"load\" or \"DOMContentLoaded\" events to trigger it.\n    if (_queueRefreshID !== _refreshID) {\n      var id = _queueRefreshID = _refreshID;\n      requestAnimationFrame(function () {\n        return id === _refreshID && _refreshAll(true);\n      });\n    }\n  },\n  _refresh100vh = function _refresh100vh() {\n    _body.appendChild(_div100vh);\n    _100vh = !_normalizer && _div100vh.offsetHeight || _win.innerHeight;\n    _body.removeChild(_div100vh);\n  },\n  _hideAllMarkers = function _hideAllMarkers(hide) {\n    return _toArray(\".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end\").forEach(function (el) {\n      return el.style.display = hide ? \"none\" : \"block\";\n    });\n  },\n  _refreshAll = function _refreshAll(force, skipRevert) {\n    _docEl = _doc.documentElement; // some frameworks like Astro may cache the <body> and replace it during routing, so we'll just re-record the _docEl and _body for safety (otherwise, the markers may not get added properly).\n\n    _body = _doc.body;\n    _root = [_win, _doc, _docEl, _body];\n    if (_lastScrollTime && !force && !_isReverted) {\n      _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n      return;\n    }\n    _refresh100vh();\n    _refreshingAll = ScrollTrigger.isRefreshing = true;\n    _scrollers.forEach(function (obj) {\n      return _isFunction(obj) && ++obj.cacheID && (obj.rec = obj());\n    }); // force the clearing of the cache because some browsers take a little while to dispatch the \"scroll\" event and the user may have changed the scroll position and then called ScrollTrigger.refresh() right away\n\n    var refreshInits = _dispatch(\"refreshInit\");\n    _sort && ScrollTrigger.sort();\n    skipRevert || _revertAll();\n    _scrollers.forEach(function (obj) {\n      if (_isFunction(obj)) {\n        obj.smooth && (obj.target.style.scrollBehavior = \"auto\"); // smooth scrolling interferes\n\n        obj(0);\n      }\n    });\n    _triggers.slice(0).forEach(function (t) {\n      return t.refresh();\n    }); // don't loop with _i because during a refresh() someone could call ScrollTrigger.update() which would iterate through _i resulting in a skip.\n\n    _isReverted = false;\n    _triggers.forEach(function (t) {\n      // nested pins (pinnedContainer) with pinSpacing may expand the container, so we must accommodate that here.\n      if (t._subPinOffset && t.pin) {\n        var prop = t.vars.horizontal ? \"offsetWidth\" : \"offsetHeight\",\n          original = t.pin[prop];\n        t.revert(true, 1);\n        t.adjustPinSpacing(t.pin[prop] - original);\n        t.refresh();\n      }\n    });\n    _clampingMax = 1; // pinSpacing might be propping a page open, thus when we .setPositions() to clamp a ScrollTrigger's end we should leave the pinSpacing alone. That's what this flag is for.\n\n    _hideAllMarkers(true);\n    _triggers.forEach(function (t) {\n      // the scroller's max scroll position may change after all the ScrollTriggers refreshed (like pinning could push it down), so we need to loop back and correct any with end: \"max\". Same for anything with a clamped end\n      var max = _maxScroll(t.scroller, t._dir),\n        endClamp = t.vars.end === \"max\" || t._endClamp && t.end > max,\n        startClamp = t._startClamp && t.start >= max;\n      (endClamp || startClamp) && t.setPositions(startClamp ? max - 1 : t.start, endClamp ? Math.max(startClamp ? max : t.start + 1, max) : t.end, true);\n    });\n    _hideAllMarkers(false);\n    _clampingMax = 0;\n    refreshInits.forEach(function (result) {\n      return result && result.render && result.render(-1);\n    }); // if the onRefreshInit() returns an animation (typically a gsap.set()), revert it. This makes it easy to put things in a certain spot before refreshing for measurement purposes, and then put things back.\n\n    _scrollers.forEach(function (obj) {\n      if (_isFunction(obj)) {\n        obj.smooth && requestAnimationFrame(function () {\n          return obj.target.style.scrollBehavior = \"smooth\";\n        });\n        obj.rec && obj(obj.rec);\n      }\n    });\n    _clearScrollMemory(_scrollRestoration, 1);\n    _resizeDelay.pause();\n    _refreshID++;\n    _refreshingAll = 2;\n    _updateAll(2);\n    _triggers.forEach(function (t) {\n      return _isFunction(t.vars.onRefresh) && t.vars.onRefresh(t);\n    });\n    _refreshingAll = ScrollTrigger.isRefreshing = false;\n    _dispatch(\"refresh\");\n  },\n  _lastScroll = 0,\n  _direction = 1,\n  _primary,\n  _updateAll = function _updateAll(force) {\n    if (force === 2 || !_refreshingAll && !_isReverted) {\n      // _isReverted could be true if, for example, a matchMedia() is in the process of executing. We don't want to update during the time everything is reverted.\n      ScrollTrigger.isUpdating = true;\n      _primary && _primary.update(0); // ScrollSmoother uses refreshPriority -9999 to become the primary that gets updated before all others because it affects the scroll position.\n\n      var l = _triggers.length,\n        time = _getTime(),\n        recordVelocity = time - _time1 >= 50,\n        scroll = l && _triggers[0].scroll();\n      _direction = _lastScroll > scroll ? -1 : 1;\n      _refreshingAll || (_lastScroll = scroll);\n      if (recordVelocity) {\n        if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {\n          _lastScrollTime = 0;\n          _dispatch(\"scrollEnd\");\n        }\n        _time2 = _time1;\n        _time1 = time;\n      }\n      if (_direction < 0) {\n        _i = l;\n        while (_i-- > 0) {\n          _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n        }\n        _direction = 1;\n      } else {\n        for (_i = 0; _i < l; _i++) {\n          _triggers[_i] && _triggers[_i].update(0, recordVelocity);\n        }\n      }\n      ScrollTrigger.isUpdating = false;\n    }\n    _rafID = 0;\n  },\n  _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, \"display\", \"flexShrink\", \"float\", \"zIndex\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"gridArea\", \"justifySelf\", \"alignSelf\", \"placeSelf\", \"order\"],\n  _stateProps = _propNamesToCopy.concat([_width, _height, \"boxSizing\", \"max\" + _Width, \"max\" + _Height, \"position\", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]),\n  _swapPinOut = function _swapPinOut(pin, spacer, state) {\n    _setState(state);\n    var cache = pin._gsap;\n    if (cache.spacerIsNative) {\n      _setState(cache.spacerState);\n    } else if (pin._gsap.swappedIn) {\n      var parent = spacer.parentNode;\n      if (parent) {\n        parent.insertBefore(pin, spacer);\n        parent.removeChild(spacer);\n      }\n    }\n    pin._gsap.swappedIn = false;\n  },\n  _swapPinIn = function _swapPinIn(pin, spacer, cs, spacerState) {\n    if (!pin._gsap.swappedIn) {\n      var i = _propNamesToCopy.length,\n        spacerStyle = spacer.style,\n        pinStyle = pin.style,\n        p;\n      while (i--) {\n        p = _propNamesToCopy[i];\n        spacerStyle[p] = cs[p];\n      }\n      spacerStyle.position = cs.position === \"absolute\" ? \"absolute\" : \"relative\";\n      cs.display === \"inline\" && (spacerStyle.display = \"inline-block\");\n      pinStyle[_bottom] = pinStyle[_right] = \"auto\";\n      spacerStyle.flexBasis = cs.flexBasis || \"auto\";\n      spacerStyle.overflow = \"visible\";\n      spacerStyle.boxSizing = \"border-box\";\n      spacerStyle[_width] = _getSize(pin, _horizontal) + _px;\n      spacerStyle[_height] = _getSize(pin, _vertical) + _px;\n      spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = \"0\";\n      _setState(spacerState);\n      pinStyle[_width] = pinStyle[\"max\" + _Width] = cs[_width];\n      pinStyle[_height] = pinStyle[\"max\" + _Height] = cs[_height];\n      pinStyle[_padding] = cs[_padding];\n      if (pin.parentNode !== spacer) {\n        pin.parentNode.insertBefore(spacer, pin);\n        spacer.appendChild(pin);\n      }\n      pin._gsap.swappedIn = true;\n    }\n  },\n  _capsExp = /([A-Z])/g,\n  _setState = function _setState(state) {\n    if (state) {\n      var style = state.t.style,\n        l = state.length,\n        i = 0,\n        p,\n        value;\n      (state.t._gsap || gsap.core.getCache(state.t)).uncache = 1; // otherwise transforms may be off\n\n      for (; i < l; i += 2) {\n        value = state[i + 1];\n        p = state[i];\n        if (value) {\n          style[p] = value;\n        } else if (style[p]) {\n          style.removeProperty(p.replace(_capsExp, \"-$1\").toLowerCase());\n        }\n      }\n    }\n  },\n  _getState = function _getState(element) {\n    // returns an Array with alternating values like [property, value, property, value] and a \"t\" property pointing to the target (element). Makes it fast and cheap.\n    var l = _stateProps.length,\n      style = element.style,\n      state = [],\n      i = 0;\n    for (; i < l; i++) {\n      state.push(_stateProps[i], style[_stateProps[i]]);\n    }\n    state.t = element;\n    return state;\n  },\n  _copyState = function _copyState(state, override, omitOffsets) {\n    var result = [],\n      l = state.length,\n      i = omitOffsets ? 8 : 0,\n      // skip top, left, right, bottom if omitOffsets is true\n      p;\n    for (; i < l; i += 2) {\n      p = state[i];\n      result.push(p, p in override ? override[p] : state[i + 1]);\n    }\n    result.t = state.t;\n    return result;\n  },\n  _winOffsets = {\n    left: 0,\n    top: 0\n  },\n  // // potential future feature (?) Allow users to calculate where a trigger hits (scroll position) like getScrollPosition(\"#id\", \"top bottom\")\n  // _getScrollPosition = (trigger, position, {scroller, containerAnimation, horizontal}) => {\n  // \tscroller = _getTarget(scroller || _win);\n  // \tlet direction = horizontal ? _horizontal : _vertical,\n  // \t\tisViewport = _isViewport(scroller);\n  // \t_getSizeFunc(scroller, isViewport, direction);\n  // \treturn _parsePosition(position, _getTarget(trigger), _getSizeFunc(scroller, isViewport, direction)(), direction, _getScrollFunc(scroller, direction)(), 0, 0, 0, _getOffsetsFunc(scroller, isViewport)(), isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0, 0, containerAnimation ? containerAnimation.duration() : _maxScroll(scroller), containerAnimation);\n  // },\n  _parsePosition = function _parsePosition(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) {\n    _isFunction(value) && (value = value(self));\n    if (_isString(value) && value.substr(0, 3) === \"max\") {\n      value = scrollerMax + (value.charAt(4) === \"=\" ? _offsetToPx(\"0\" + value.substr(3), scrollerSize) : 0);\n    }\n    var time = containerAnimation ? containerAnimation.time() : 0,\n      p1,\n      p2,\n      element;\n    containerAnimation && containerAnimation.seek(0);\n    isNaN(value) || (value = +value); // convert a string number like \"45\" to an actual number\n\n    if (!_isNumber(value)) {\n      _isFunction(trigger) && (trigger = trigger(self));\n      var offsets = (value || \"0\").split(\" \"),\n        bounds,\n        localOffset,\n        globalOffset,\n        display;\n      element = _getTarget(trigger, self) || _body;\n      bounds = _getBounds(element) || {};\n      if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === \"none\") {\n        // if display is \"none\", it won't report getBoundingClientRect() properly\n        display = element.style.display;\n        element.style.display = \"block\";\n        bounds = _getBounds(element);\n        display ? element.style.display = display : element.style.removeProperty(\"display\");\n      }\n      localOffset = _offsetToPx(offsets[0], bounds[direction.d]);\n      globalOffset = _offsetToPx(offsets[1] || \"0\", scrollerSize);\n      value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;\n      markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);\n      scrollerSize -= scrollerSize - globalOffset; // adjust for the marker\n    } else {\n      containerAnimation && (value = gsap.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));\n      markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);\n    }\n    if (clampZeroProp) {\n      self[clampZeroProp] = value || -0.001;\n      value < 0 && (value = 0);\n    }\n    if (marker) {\n      var position = value + scrollerSize,\n        isStart = marker._isStart;\n      p1 = \"scroll\" + direction.d2;\n      _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body[p1], _docEl[p1]) : marker.parentNode[p1]) <= position + 1);\n      if (useFixedPosition) {\n        scrollerBounds = _getBounds(markerScroller);\n        useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);\n      }\n    }\n    if (containerAnimation && element) {\n      p1 = _getBounds(element);\n      containerAnimation.seek(scrollerMax);\n      p2 = _getBounds(element);\n      containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];\n      value = value / containerAnimation._caScrollDist * scrollerMax;\n    }\n    containerAnimation && containerAnimation.seek(time);\n    return containerAnimation ? value : Math.round(value);\n  },\n  _prefixExp = /(webkit|moz|length|cssText|inset)/i,\n  _reparent = function _reparent(element, parent, top, left) {\n    if (element.parentNode !== parent) {\n      var style = element.style,\n        p,\n        cs;\n      if (parent === _body) {\n        element._stOrig = style.cssText; // record original inline styles so we can revert them later\n\n        cs = _getComputedStyle(element);\n        for (p in cs) {\n          // must copy all relevant styles to ensure that nothing changes visually when we reparent to the <body>. Skip the vendor prefixed ones.\n          if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n            style[p] = cs[p];\n          }\n        }\n        style.top = top;\n        style.left = left;\n      } else {\n        style.cssText = element._stOrig;\n      }\n      gsap.core.getCache(element).uncache = 1;\n      parent.appendChild(element);\n    }\n  },\n  _interruptionTracker = function _interruptionTracker(getValueFunc, initialValue, onInterrupt) {\n    var last1 = initialValue,\n      last2 = last1;\n    return function (value) {\n      var current = Math.round(getValueFunc()); // round because in some [very uncommon] Windows environments, scroll can get reported with decimals even though it was set without.\n\n      if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {\n        // if the user scrolls, kill the tween. iOS Safari intermittently misreports the scroll position, it may be the most recently-set one or the one before that! When Safari is zoomed (CMD-+), it often misreports as 1 pixel off too! So if we set the scroll position to 125, for example, it'll actually report it as 124.\n        value = current;\n        onInterrupt && onInterrupt();\n      }\n      last2 = last1;\n      last1 = Math.round(value);\n      return last1;\n    };\n  },\n  _shiftMarker = function _shiftMarker(marker, direction, value) {\n    var vars = {};\n    vars[direction.p] = \"+=\" + value;\n    gsap.set(marker, vars);\n  },\n  // _mergeAnimations = animations => {\n  // \tlet tl = gsap.timeline({smoothChildTiming: true}).startTime(Math.min(...animations.map(a => a.globalTime(0))));\n  // \tanimations.forEach(a => {let time = a.totalTime(); tl.add(a); a.totalTime(time); });\n  // \ttl.smoothChildTiming = false;\n  // \treturn tl;\n  // },\n  // returns a function that can be used to tween the scroll position in the direction provided, and when doing so it'll add a .tween property to the FUNCTION itself, and remove it when the tween completes or gets killed. This gives us a way to have multiple ScrollTriggers use a central function for any given scroller and see if there's a scroll tween running (which would affect if/how things get updated)\n  _getTweenCreator = function _getTweenCreator(scroller, direction) {\n    var getScroll = _getScrollFunc(scroller, direction),\n      prop = \"_scroll\" + direction.p2,\n      // add a tweenable property to the scroller that's a getter/setter function, like _scrollTop or _scrollLeft. This way, if someone does gsap.killTweensOf(scroller) it'll kill the scroll tween.\n      getTween = function getTween(scrollTo, vars, initialValue, change1, change2) {\n        var tween = getTween.tween,\n          onComplete = vars.onComplete,\n          modifiers = {};\n        initialValue = initialValue || getScroll();\n        var checkForInterruption = _interruptionTracker(getScroll, initialValue, function () {\n          tween.kill();\n          getTween.tween = 0;\n        });\n        change2 = change1 && change2 || 0; // if change1 is 0, we set that to the difference and ignore change2. Otherwise, there would be a compound effect.\n\n        change1 = change1 || scrollTo - initialValue;\n        tween && tween.kill();\n        vars[prop] = scrollTo;\n        vars.inherit = false;\n        vars.modifiers = modifiers;\n        modifiers[prop] = function () {\n          return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);\n        };\n        vars.onUpdate = function () {\n          _scrollers.cache++;\n          getTween.tween && _updateAll(); // if it was interrupted/killed, like in a context.revert(), don't force an updateAll()\n        };\n        vars.onComplete = function () {\n          getTween.tween = 0;\n          onComplete && onComplete.call(tween);\n        };\n        tween = getTween.tween = gsap.to(scroller, vars);\n        return tween;\n      };\n    scroller[prop] = getScroll;\n    getScroll.wheelHandler = function () {\n      return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n    };\n    _addListener(scroller, \"wheel\", getScroll.wheelHandler); // Windows machines handle mousewheel scrolling in chunks (like \"3 lines per scroll\") meaning the typical strategy for cancelling the scroll isn't as sensitive. It's much more likely to match one of the previous 2 scroll event positions. So we kill any snapping as soon as there's a wheel event.\n\n    ScrollTrigger.isTouch && _addListener(scroller, \"touchmove\", getScroll.wheelHandler);\n    return getTween;\n  };\nexport var ScrollTrigger = /*#__PURE__*/function () {\n  function ScrollTrigger(vars, animation) {\n    _coreInitted || ScrollTrigger.register(gsap) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n    _context(this);\n    this.init(vars, animation);\n  }\n  var _proto = ScrollTrigger.prototype;\n  _proto.init = function init(vars, animation) {\n    this.progress = this.start = 0;\n    this.vars && this.kill(true, true); // in case it's being initted again\n\n    if (!_enabled) {\n      this.update = this.refresh = this.kill = _passThrough;\n      return;\n    }\n    vars = _setDefaults(_isString(vars) || _isNumber(vars) || vars.nodeType ? {\n      trigger: vars\n    } : vars, _defaults);\n    var _vars = vars,\n      onUpdate = _vars.onUpdate,\n      toggleClass = _vars.toggleClass,\n      id = _vars.id,\n      onToggle = _vars.onToggle,\n      onRefresh = _vars.onRefresh,\n      scrub = _vars.scrub,\n      trigger = _vars.trigger,\n      pin = _vars.pin,\n      pinSpacing = _vars.pinSpacing,\n      invalidateOnRefresh = _vars.invalidateOnRefresh,\n      anticipatePin = _vars.anticipatePin,\n      onScrubComplete = _vars.onScrubComplete,\n      onSnapComplete = _vars.onSnapComplete,\n      once = _vars.once,\n      snap = _vars.snap,\n      pinReparent = _vars.pinReparent,\n      pinSpacer = _vars.pinSpacer,\n      containerAnimation = _vars.containerAnimation,\n      fastScrollEnd = _vars.fastScrollEnd,\n      preventOverlaps = _vars.preventOverlaps,\n      direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical,\n      isToggle = !scrub && scrub !== 0,\n      scroller = _getTarget(vars.scroller || _win),\n      scrollerCache = gsap.core.getCache(scroller),\n      isViewport = _isViewport(scroller),\n      useFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || isViewport && \"fixed\") === \"fixed\",\n      callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack],\n      toggleActions = isToggle && vars.toggleActions.split(\" \"),\n      markers = \"markers\" in vars ? vars.markers : _defaults.markers,\n      borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0,\n      self = this,\n      onRefreshInit = vars.onRefreshInit && function () {\n        return vars.onRefreshInit(self);\n      },\n      getScrollerSize = _getSizeFunc(scroller, isViewport, direction),\n      getScrollerOffsets = _getOffsetsFunc(scroller, isViewport),\n      lastSnap = 0,\n      lastRefresh = 0,\n      prevProgress = 0,\n      scrollFunc = _getScrollFunc(scroller, direction),\n      tweenTo,\n      pinCache,\n      snapFunc,\n      scroll1,\n      scroll2,\n      start,\n      end,\n      markerStart,\n      markerEnd,\n      markerStartTrigger,\n      markerEndTrigger,\n      markerVars,\n      executingOnRefresh,\n      change,\n      pinOriginalState,\n      pinActiveState,\n      pinState,\n      spacer,\n      offset,\n      pinGetter,\n      pinSetter,\n      pinStart,\n      pinChange,\n      spacingStart,\n      spacerState,\n      markerStartSetter,\n      pinMoves,\n      markerEndSetter,\n      cs,\n      snap1,\n      snap2,\n      scrubTween,\n      scrubSmooth,\n      snapDurClamp,\n      snapDelayedCall,\n      prevScroll,\n      prevAnimProgress,\n      caMarkerSetter,\n      customRevertReturn; // for the sake of efficiency, _startClamp/_endClamp serve like a truthy value indicating that clamping was enabled on the start/end, and ALSO store the actual pre-clamped numeric value. We tap into that in ScrollSmoother for speed effects. So for example, if start=\"clamp(top bottom)\" results in a start of -100 naturally, it would get clamped to 0 but -100 would be stored in _startClamp.\n\n    self._startClamp = self._endClamp = false;\n    self._dir = direction;\n    anticipatePin *= 45;\n    self.scroller = scroller;\n    self.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n    scroll1 = scrollFunc();\n    self.vars = vars;\n    animation = animation || vars.animation;\n    if (\"refreshPriority\" in vars) {\n      _sort = 1;\n      vars.refreshPriority === -9999 && (_primary = self); // used by ScrollSmoother\n    }\n    scrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n      top: _getTweenCreator(scroller, _vertical),\n      left: _getTweenCreator(scroller, _horizontal)\n    };\n    self.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n    self.scrubDuration = function (value) {\n      scrubSmooth = _isNumber(value) && value;\n      if (!scrubSmooth) {\n        scrubTween && scrubTween.progress(1).kill();\n        scrubTween = 0;\n      } else {\n        scrubTween ? scrubTween.duration(value) : scrubTween = gsap.to(animation, {\n          ease: \"expo\",\n          totalProgress: \"+=0\",\n          inherit: false,\n          duration: scrubSmooth,\n          paused: true,\n          onComplete: function onComplete() {\n            return onScrubComplete && onScrubComplete(self);\n          }\n        });\n      }\n    };\n    if (animation) {\n      animation.vars.lazy = false;\n      animation._initted && !self.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true); // special case: if this ScrollTrigger gets re-initted, a from() tween with a stagger could get initted initially and then reverted on the re-init which means it'll need to get rendered again here to properly display things. Otherwise, See https://gsap.com/forums/topic/36777-scrollsmoother-splittext-nextjs/ and https://codepen.io/GreenSock/pen/eYPyPpd?editors=0010\n\n      self.animation = animation.pause();\n      animation.scrollTrigger = self;\n      self.scrubDuration(scrub);\n      snap1 = 0;\n      id || (id = animation.vars.id);\n    }\n    if (snap) {\n      // TODO: potential idea: use legitimate CSS scroll snapping by pushing invisible elements into the DOM that serve as snap positions, and toggle the document.scrollingElement.style.scrollSnapType onToggle. See https://codepen.io/GreenSock/pen/JjLrgWM for a quick proof of concept.\n      if (!_isObject(snap) || snap.push) {\n        snap = {\n          snapTo: snap\n        };\n      }\n      \"scrollBehavior\" in _body.style && gsap.set(isViewport ? [_body, _docEl] : scroller, {\n        scrollBehavior: \"auto\"\n      }); // smooth scrolling doesn't work with snap.\n\n      _scrollers.forEach(function (o) {\n        return _isFunction(o) && o.target === (isViewport ? _doc.scrollingElement || _docEl : scroller) && (o.smooth = false);\n      }); // note: set smooth to false on both the vertical and horizontal scroll getters/setters\n\n      snapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? function (value, st) {\n        return _snapDirectional(snap.snapTo)(value, _getTime() - lastRefresh < 500 ? 0 : st.direction);\n      } : gsap.utils.snap(snap.snapTo);\n      snapDurClamp = snap.duration || {\n        min: 0.1,\n        max: 2\n      };\n      snapDurClamp = _isObject(snapDurClamp) ? _clamp(snapDurClamp.min, snapDurClamp.max) : _clamp(snapDurClamp, snapDurClamp);\n      snapDelayedCall = gsap.delayedCall(snap.delay || scrubSmooth / 2 || 0.1, function () {\n        var scroll = scrollFunc(),\n          refreshedRecently = _getTime() - lastRefresh < 500,\n          tween = tweenTo.tween;\n        if ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n          var progress = (scroll - start) / change,\n            totalProgress = animation && !isToggle ? animation.totalProgress() : progress,\n            velocity = refreshedRecently ? 0 : (totalProgress - snap2) / (_getTime() - _time2) * 1000 || 0,\n            change1 = gsap.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185),\n            naturalEnd = progress + (snap.inertia === false ? 0 : change1),\n            endValue,\n            endScroll,\n            _snap = snap,\n            onStart = _snap.onStart,\n            _onInterrupt = _snap.onInterrupt,\n            _onComplete = _snap.onComplete;\n          endValue = snapFunc(naturalEnd, self);\n          _isNumber(endValue) || (endValue = naturalEnd); // in case the function didn't return a number, fall back to using the naturalEnd\n\n          endScroll = Math.max(0, Math.round(start + endValue * change));\n          if (scroll <= end && scroll >= start && endScroll !== scroll) {\n            if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {\n              // there's an overlapping snap! So we must figure out which one is closer and let that tween live.\n              return;\n            }\n            if (snap.inertia === false) {\n              change1 = endValue - progress;\n            }\n            tweenTo(endScroll, {\n              duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),\n              ease: snap.ease || \"power3\",\n              data: _abs(endScroll - scroll),\n              // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.\n              onInterrupt: function onInterrupt() {\n                return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self);\n              },\n              onComplete: function onComplete() {\n                self.update();\n                lastSnap = scrollFunc();\n                if (animation && !isToggle) {\n                  // the resolution of the scrollbar is limited, so we should correct the scrubbed animation's playhead at the end to match EXACTLY where it was supposed to snap\n                  scrubTween ? scrubTween.resetTo(\"totalProgress\", endValue, animation._tTime / animation._tDur) : animation.progress(endValue);\n                }\n                snap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress;\n                onSnapComplete && onSnapComplete(self);\n                _onComplete && _onComplete(self);\n              }\n            }, scroll, change1 * change, endScroll - scroll - change1 * change);\n            onStart && onStart(self, tweenTo.tween);\n          }\n        } else if (self.isActive && lastSnap !== scroll) {\n          snapDelayedCall.restart(true);\n        }\n      }).pause();\n    }\n    id && (_ids[id] = self);\n    trigger = self.trigger = _getTarget(trigger || pin !== true && pin); // if a trigger has some kind of scroll-related effect applied that could contaminate the \"y\" or \"x\" position (like a ScrollSmoother effect), we needed a way to temporarily revert it, so we use the stRevert property of the gsCache. It can return another function that we'll call at the end so it can return to its normal state.\n\n    customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n    customRevertReturn && (customRevertReturn = customRevertReturn(self));\n    pin = pin === true ? trigger : _getTarget(pin);\n    _isString(toggleClass) && (toggleClass = {\n      targets: trigger,\n      className: toggleClass\n    });\n    if (pin) {\n      pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding); // if the parent is display: flex, don't apply pinSpacing by default. We should check that pin.parentNode is an element (not shadow dom window)\n\n      self.pin = pin;\n      pinCache = gsap.core.getCache(pin);\n      if (!pinCache.spacer) {\n        // record the spacer and pinOriginalState on the cache in case someone tries pinning the same element with MULTIPLE ScrollTriggers - we don't want to have multiple spacers or record the \"original\" pin state after it has already been affected by another ScrollTrigger.\n        if (pinSpacer) {\n          pinSpacer = _getTarget(pinSpacer);\n          pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); // for React & Angular\n\n          pinCache.spacerIsNative = !!pinSpacer;\n          pinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n        }\n        pinCache.spacer = spacer = pinSpacer || _doc.createElement(\"div\");\n        spacer.classList.add(\"pin-spacer\");\n        id && spacer.classList.add(\"pin-spacer-\" + id);\n        pinCache.pinState = pinOriginalState = _getState(pin);\n      } else {\n        pinOriginalState = pinCache.pinState;\n      }\n      vars.force3D !== false && gsap.set(pin, {\n        force3D: true\n      });\n      self.spacer = spacer = pinCache.spacer;\n      cs = _getComputedStyle(pin);\n      spacingStart = cs[pinSpacing + direction.os2];\n      pinGetter = gsap.getProperty(pin);\n      pinSetter = gsap.quickSetter(pin, direction.a, _px); // pin.firstChild && !_maxScroll(pin, direction) && (pin.style.overflow = \"hidden\"); // protects from collapsing margins, but can have unintended consequences as demonstrated here: https://codepen.io/GreenSock/pen/1e42c7a73bfa409d2cf1e184e7a4248d so it was removed in favor of just telling people to set up their CSS to avoid the collapsing margins (overflow: hidden | auto is just one option. Another is border-top: 1px solid transparent).\n\n      _swapPinIn(pin, spacer, cs);\n      pinState = _getState(pin);\n    }\n    if (markers) {\n      markerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n      markerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n      markerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n      offset = markerStartTrigger[\"offset\" + direction.op.d2];\n      var content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n      markerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n      markerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n      containerAnimation && (caMarkerSetter = gsap.quickSetter([markerStart, markerEnd], direction.a, _px));\n      if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true)) {\n        _makePositionable(isViewport ? _body : scroller);\n        gsap.set([markerStartTrigger, markerEndTrigger], {\n          force3D: true\n        });\n        markerStartSetter = gsap.quickSetter(markerStartTrigger, direction.a, _px);\n        markerEndSetter = gsap.quickSetter(markerEndTrigger, direction.a, _px);\n      }\n    }\n    if (containerAnimation) {\n      var oldOnUpdate = containerAnimation.vars.onUpdate,\n        oldParams = containerAnimation.vars.onUpdateParams;\n      containerAnimation.eventCallback(\"onUpdate\", function () {\n        self.update(0, 0, 1);\n        oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);\n      });\n    }\n    self.previous = function () {\n      return _triggers[_triggers.indexOf(self) - 1];\n    };\n    self.next = function () {\n      return _triggers[_triggers.indexOf(self) + 1];\n    };\n    self.revert = function (revert, temp) {\n      if (!temp) {\n        return self.kill(true);\n      } // for compatibility with gsap.context() and gsap.matchMedia() which call revert()\n\n      var r = revert !== false || !self.enabled,\n        prevRefreshing = _refreshing;\n      if (r !== self.isReverted) {\n        if (r) {\n          prevScroll = Math.max(scrollFunc(), self.scroll.rec || 0); // record the scroll so we can revert later (repositioning/pinning things can affect scroll position). In the static refresh() method, we first record all the scroll positions as a reference.\n\n          prevProgress = self.progress;\n          prevAnimProgress = animation && animation.progress();\n        }\n        markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n          return m.style.display = r ? \"none\" : \"block\";\n        });\n        if (r) {\n          _refreshing = self;\n          self.update(r); // make sure the pin is back in its original position so that all the measurements are correct. do this BEFORE swapping the pin out\n        }\n        if (pin && (!pinReparent || !self.isActive)) {\n          if (r) {\n            _swapPinOut(pin, spacer, pinOriginalState);\n          } else {\n            _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);\n          }\n        }\n        r || self.update(r); // when we're restoring, the update should run AFTER swapping the pin into its pin-spacer.\n\n        _refreshing = prevRefreshing; // restore. We set it to true during the update() so that things fire properly in there.\n\n        self.isReverted = r;\n      }\n    };\n    self.refresh = function (soft, force, position, pinOffset) {\n      // position is typically only defined if it's coming from setPositions() - it's a way to skip the normal parsing. pinOffset is also only from setPositions() and is mostly related to fancy stuff we need to do in ScrollSmoother with effects\n      if ((_refreshing || !self.enabled) && !force) {\n        return;\n      }\n      if (pin && soft && _lastScrollTime) {\n        _addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n        return;\n      }\n      !_refreshingAll && onRefreshInit && onRefreshInit(self);\n      _refreshing = self;\n      if (tweenTo.tween && !position) {\n        // we skip this if a position is passed in because typically that's from .setPositions() and it's best to allow in-progress snapping to continue.\n        tweenTo.tween.kill();\n        tweenTo.tween = 0;\n      }\n      scrubTween && scrubTween.pause();\n      invalidateOnRefresh && animation && animation.revert({\n        kill: false\n      }).invalidate();\n      self.isReverted || self.revert(true, true);\n      self._subPinOffset = false; // we'll set this to true in the sub-pins if we find any\n\n      var size = getScrollerSize(),\n        scrollerBounds = getScrollerOffsets(),\n        max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction),\n        isFirstRefresh = change <= 0.01,\n        offset = 0,\n        otherPinOffset = pinOffset || 0,\n        parsedEnd = _isObject(position) ? position.end : vars.end,\n        parsedEndTrigger = vars.endTrigger || trigger,\n        parsedStart = _isObject(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? \"0 0\" : \"0 100%\"),\n        pinnedContainer = self.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self),\n        triggerIndex = trigger && Math.max(0, _triggers.indexOf(self)) || 0,\n        i = triggerIndex,\n        cs,\n        bounds,\n        scroll,\n        isVertical,\n        override,\n        curTrigger,\n        curPin,\n        oppositeScroll,\n        initted,\n        revertedPins,\n        forcedOverflow,\n        markerStartOffset,\n        markerEndOffset;\n      if (markers && _isObject(position)) {\n        // if we alter the start/end positions with .setPositions(), it generally feeds in absolute NUMBERS which don't convey information about where to line up the markers, so to keep it intuitive, we record how far the trigger positions shift after applying the new numbers and then offset by that much in the opposite direction. We do the same to the associated trigger markers too of course.\n        markerStartOffset = gsap.getProperty(markerStartTrigger, direction.p);\n        markerEndOffset = gsap.getProperty(markerEndTrigger, direction.p);\n      }\n      while (i-- > 0) {\n        // user might try to pin the same element more than once, so we must find any prior triggers with the same pin, revert them, and determine how long they're pinning so that we can offset things appropriately. Make sure we revert from last to first so that things \"rewind\" properly.\n        curTrigger = _triggers[i];\n        curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self); // if it's a timeline-based trigger that hasn't been fully initialized yet because it's waiting for 1 tick, just force the refresh() here, otherwise if it contains a pin that's supposed to affect other ScrollTriggers further down the page, they won't be adjusted properly.\n\n        curPin = curTrigger.pin;\n        if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {\n          revertedPins || (revertedPins = []);\n          revertedPins.unshift(curTrigger); // we'll revert from first to last to make sure things reach their end state properly\n\n          curTrigger.revert(true, true);\n        }\n        if (curTrigger !== _triggers[i]) {\n          // in case it got removed.\n          triggerIndex--;\n          i--;\n        }\n      }\n      _isFunction(parsedStart) && (parsedStart = parsedStart(self));\n      parsedStart = _parseClamp(parsedStart, \"start\", self);\n      start = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._startClamp && \"_startClamp\") || (pin ? -0.001 : 0);\n      _isFunction(parsedEnd) && (parsedEnd = parsedEnd(self));\n      if (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n        if (~parsedEnd.indexOf(\" \")) {\n          parsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n        } else {\n          offset = _offsetToPx(parsedEnd.substr(2), size);\n          parsedEnd = _isString(parsedStart) ? parsedStart : (containerAnimation ? gsap.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset; // _parsePosition won't factor in the offset if the start is a number, so do it here.\n\n          parsedEndTrigger = trigger;\n        }\n      }\n      parsedEnd = _parseClamp(parsedEnd, \"end\", self);\n      end = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self._endClamp && \"_endClamp\")) || -0.001;\n      offset = 0;\n      i = triggerIndex;\n      while (i--) {\n        curTrigger = _triggers[i];\n        curPin = curTrigger.pin;\n        if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {\n          cs = curTrigger.end - (self._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start);\n          if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) {\n            // numeric start values shouldn't be offset at all - treat them as absolute\n            offset += cs * (1 - curTrigger.progress);\n          }\n          curPin === pin && (otherPinOffset += cs);\n        }\n      }\n      start += offset;\n      end += offset;\n      self._startClamp && (self._startClamp += offset);\n      if (self._endClamp && !_refreshingAll) {\n        self._endClamp = end || -0.001;\n        end = Math.min(end, _maxScroll(scroller, direction));\n      }\n      change = end - start || (start -= 0.01) && 0.001;\n      if (isFirstRefresh) {\n        // on the very first refresh(), the prevProgress couldn't have been accurate yet because the start/end were never calculated, so we set it here. Before 3.11.5, it could lead to an inaccurate scroll position restoration with snapping.\n        prevProgress = gsap.utils.clamp(0, 1, gsap.utils.normalize(start, end, prevScroll));\n      }\n      self._pinPush = otherPinOffset;\n      if (markerStart && offset) {\n        // offset the markers if necessary\n        cs = {};\n        cs[direction.a] = \"+=\" + offset;\n        pinnedContainer && (cs[direction.p] = \"-=\" + scrollFunc());\n        gsap.set([markerStart, markerEnd], cs);\n      }\n      if (pin && !(_clampingMax && self.end >= _maxScroll(scroller, direction))) {\n        cs = _getComputedStyle(pin);\n        isVertical = direction === _vertical;\n        scroll = scrollFunc(); // recalculate because the triggers can affect the scroll\n\n        pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n        if (!max && end > 1) {\n          // makes sure the scroller has a scrollbar, otherwise if something has width: 100%, for example, it would be too big (exclude the scrollbar). See https://gsap.com/forums/topic/25182-scrolltrigger-width-of-page-increase-where-markers-are-set-to-false/\n          forcedOverflow = (isViewport ? _doc.scrollingElement || _docEl : scroller).style;\n          forcedOverflow = {\n            style: forcedOverflow,\n            value: forcedOverflow[\"overflow\" + direction.a.toUpperCase()]\n          };\n          if (isViewport && _getComputedStyle(_body)[\"overflow\" + direction.a.toUpperCase()] !== \"scroll\") {\n            // avoid an extra scrollbar if BOTH <html> and <body> have overflow set to \"scroll\"\n            forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = \"scroll\";\n          }\n        }\n        _swapPinIn(pin, spacer, cs);\n        pinState = _getState(pin); // transforms will interfere with the top/left/right/bottom placement, so remove them temporarily. getBoundingClientRect() factors in transforms.\n\n        bounds = _getBounds(pin, true);\n        oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n        if (pinSpacing) {\n          spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n          spacerState.t = spacer;\n          i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;\n          if (i) {\n            spacerState.push(direction.d, i + _px); // for box-sizing: border-box (must include padding).\n\n            spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n          }\n          _setState(spacerState);\n          if (pinnedContainer) {\n            // in ScrollTrigger.refresh(), we need to re-evaluate the pinContainer's size because this pinSpacing may stretch it out, but we can't just add the exact distance because depending on layout, it may not push things down or it may only do so partially.\n            _triggers.forEach(function (t) {\n              if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) {\n                t._subPinOffset = true;\n              }\n            });\n          }\n          useFixedPosition && scrollFunc(prevScroll);\n        } else {\n          i = _getSize(pin, direction);\n          i && spacer.style.flexBasis !== \"auto\" && (spacer.style.flexBasis = i + _px);\n        }\n        if (useFixedPosition) {\n          override = {\n            top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,\n            left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,\n            boxSizing: \"border-box\",\n            position: \"fixed\"\n          };\n          override[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n          override[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n          override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n          override[_padding] = cs[_padding];\n          override[_padding + _Top] = cs[_padding + _Top];\n          override[_padding + _Right] = cs[_padding + _Right];\n          override[_padding + _Bottom] = cs[_padding + _Bottom];\n          override[_padding + _Left] = cs[_padding + _Left];\n          pinActiveState = _copyState(pinOriginalState, override, pinReparent);\n          _refreshingAll && scrollFunc(0);\n        }\n        if (animation) {\n          // the animation might be affecting the transform, so we must jump to the end, check the value, and compensate accordingly. Otherwise, when it becomes unpinned, the pinSetter() will get set to a value that doesn't include whatever the animation did.\n          initted = animation._initted; // if not, we must invalidate() after this step, otherwise it could lock in starting values prematurely.\n\n          _suppressOverwrites(1);\n          animation.render(animation.duration(), true, true);\n          pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n          pinMoves = Math.abs(change - pinChange) > 1;\n          useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); // transform is the last property/value set in the state Array. Since the animation is controlling that, we should omit it.\n\n          animation.render(0, true, true);\n          initted || animation.invalidate(true);\n          animation.parent || animation.totalTime(animation.totalTime()); // if, for example, a toggleAction called play() and then refresh() happens and when we render(1) above, it would cause the animation to complete and get removed from its parent, so this makes sure it gets put back in.\n\n          _suppressOverwrites(0);\n        } else {\n          pinChange = change;\n        }\n        forcedOverflow && (forcedOverflow.value ? forcedOverflow.style[\"overflow\" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty(\"overflow-\" + direction.a));\n      } else if (trigger && scrollFunc() && !containerAnimation) {\n        // it may be INSIDE a pinned element, so walk up the tree and look for any elements with _pinOffset to compensate because anything with pinSpacing that's already scrolled would throw off the measurements in getBoundingClientRect()\n        bounds = trigger.parentNode;\n        while (bounds && bounds !== _body) {\n          if (bounds._pinOffset) {\n            start -= bounds._pinOffset;\n            end -= bounds._pinOffset;\n          }\n          bounds = bounds.parentNode;\n        }\n      }\n      revertedPins && revertedPins.forEach(function (t) {\n        return t.revert(false, true);\n      });\n      self.start = start;\n      self.end = end;\n      scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); // reset velocity\n\n      if (!containerAnimation && !_refreshingAll) {\n        scroll1 < prevScroll && scrollFunc(prevScroll);\n        self.scroll.rec = 0;\n      }\n      self.revert(false, true);\n      lastRefresh = _getTime();\n      if (snapDelayedCall) {\n        lastSnap = -1; // just so snapping gets re-enabled, clear out any recorded last value\n        // self.isActive && scrollFunc(start + change * prevProgress); // previously this line was here to ensure that when snapping kicks in, it's from the previous progress but in some cases that's not desirable, like an all-page ScrollTrigger when new content gets added to the page, that'd totally change the progress.\n\n        snapDelayedCall.restart(true);\n      }\n      _refreshing = 0;\n      animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true); // must force a re-render because if saveStyles() was used on the target(s), the styles could have been wiped out during the refresh().\n\n      if (isFirstRefresh || prevProgress !== self.progress || containerAnimation || invalidateOnRefresh || animation && !animation._initted) {\n        // ensures that the direction is set properly (when refreshing, progress is set back to 0 initially, then back again to wherever it needs to be) and that callbacks are triggered.\n        animation && !isToggle && animation.totalProgress(containerAnimation && start < -0.001 && !prevProgress ? gsap.utils.normalize(start, end, 0) : prevProgress, true); // to avoid issues where animation callbacks like onStart aren't triggered.\n\n        self.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n      }\n      pin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange));\n      scrubTween && scrubTween.invalidate();\n      if (!isNaN(markerStartOffset)) {\n        // numbers were passed in for the position which are absolute, so instead of just putting the markers at the very bottom of the viewport, we figure out how far they shifted down (it's safe to assume they were originally positioned in closer relation to the trigger element with values like \"top\", \"center\", a percentage or whatever, so we offset that much in the opposite direction to basically revert them to the relative position thy were at previously.\n        markerStartOffset -= gsap.getProperty(markerStartTrigger, direction.p);\n        markerEndOffset -= gsap.getProperty(markerEndTrigger, direction.p);\n        _shiftMarker(markerStartTrigger, direction, markerStartOffset);\n        _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0));\n        _shiftMarker(markerEndTrigger, direction, markerEndOffset);\n        _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0));\n      }\n      isFirstRefresh && !_refreshingAll && self.update(); // edge case - when you reload a page when it's already scrolled down, some browsers fire a \"scroll\" event before DOMContentLoaded, triggering an updateAll(). If we don't update the self.progress as part of refresh(), then when it happens next, it may record prevProgress as 0 when it really shouldn't, potentially causing a callback in an animation to fire again.\n\n      if (onRefresh && !_refreshingAll && !executingOnRefresh) {\n        // when refreshing all, we do extra work to correct pinnedContainer sizes and ensure things don't exceed the maxScroll, so we should do all the refreshes at the end after all that work so that the start/end values are corrected.\n        executingOnRefresh = true;\n        onRefresh(self);\n        executingOnRefresh = false;\n      }\n    };\n    self.getVelocity = function () {\n      return (scrollFunc() - scroll2) / (_getTime() - _time2) * 1000 || 0;\n    };\n    self.endAnimation = function () {\n      _endAnimation(self.callbackAnimation);\n      if (animation) {\n        scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1);\n      }\n    };\n    self.labelToScroll = function (label) {\n      return animation && animation.labels && (start || self.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;\n    };\n    self.getTrailing = function (name) {\n      var i = _triggers.indexOf(self),\n        a = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1);\n      return (_isString(name) ? a.filter(function (t) {\n        return t.vars.preventOverlaps === name;\n      }) : a).filter(function (t) {\n        return self.direction > 0 ? t.end <= start : t.start >= end;\n      });\n    };\n    self.update = function (reset, recordVelocity, forceFake) {\n      if (containerAnimation && !forceFake && !reset) {\n        return;\n      }\n      var scroll = _refreshingAll === true ? prevScroll : self.scroll(),\n        p = reset ? 0 : (scroll - start) / change,\n        clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0,\n        prevProgress = self.progress,\n        isActive,\n        wasActive,\n        toggleState,\n        action,\n        stateChanged,\n        toggled,\n        isAtMax,\n        isTakingAction;\n      if (recordVelocity) {\n        scroll2 = scroll1;\n        scroll1 = containerAnimation ? scrollFunc() : scroll;\n        if (snap) {\n          snap2 = snap1;\n          snap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n        }\n      } // anticipate the pinning a few ticks ahead of time based on velocity to avoid a visual glitch due to the fact that most browsers do scrolling on a separate thread (not synced with requestAnimationFrame).\n\n      if (anticipatePin && pin && !_refreshing && !_startup && _lastScrollTime) {\n        if (!clipped && start < scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin) {\n          clipped = 0.0001;\n        } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime() - _time2) * anticipatePin) {\n          clipped = 0.9999;\n        }\n      }\n      if (clipped !== prevProgress && self.enabled) {\n        isActive = self.isActive = !!clipped && clipped < 1;\n        wasActive = !!prevProgress && prevProgress < 1;\n        toggled = isActive !== wasActive;\n        stateChanged = toggled || !!clipped !== !!prevProgress; // could go from start all the way to end, thus it didn't toggle but it did change state in a sense (may need to fire a callback)\n\n        self.direction = clipped > prevProgress ? 1 : -1;\n        self.progress = clipped;\n        if (stateChanged && !_refreshing) {\n          toggleState = clipped && !prevProgress ? 0 : clipped === 1 ? 1 : prevProgress === 1 ? 2 : 3; // 0 = enter, 1 = leave, 2 = enterBack, 3 = leaveBack (we prioritize the FIRST encounter, thus if you scroll really fast past the onEnter and onLeave in one tick, it'd prioritize onEnter.\n\n          if (isToggle) {\n            action = !toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1] || toggleActions[toggleState]; // if it didn't toggle, that means it shot right past and since we prioritize the \"enter\" action, we should switch to the \"leave\" in this case (but only if one is defined)\n\n            isTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n          }\n        }\n        preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(function (t) {\n          return t.endAnimation();\n        }));\n        if (!isToggle) {\n          if (scrubTween && !_refreshing && !_startup) {\n            scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); // if there's a scrub on both the container animation and this one (or a ScrollSmoother), the update order would cause this one not to have rendered yet, so it wouldn't make any progress before we .restart() it heading toward the new progress so it'd appear stuck thus we force a render here.\n\n            if (scrubTween.resetTo) {\n              scrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n            } else {\n              // legacy support (courtesy), before 3.10.0\n              scrubTween.vars.totalProgress = clipped;\n              scrubTween.invalidate().restart();\n            }\n          } else if (animation) {\n            animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset)));\n          }\n        }\n        if (pin) {\n          reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n          if (!useFixedPosition) {\n            pinSetter(_round(pinStart + pinChange * clipped));\n          } else if (stateChanged) {\n            isAtMax = !reset && clipped > prevProgress && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); // if it's at the VERY end of the page, don't switch away from position: fixed because it's pointless and it could cause a brief flash when the user scrolls back up (when it gets pinned again)\n\n            if (pinReparent) {\n              if (!reset && (isActive || isAtMax)) {\n                var bounds = _getBounds(pin, true),\n                  _offset = scroll - start;\n                _reparent(pin, _body, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);\n              } else {\n                _reparent(pin, spacer);\n              }\n            }\n            _setState(isActive || isAtMax ? pinActiveState : pinState);\n            pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n          }\n        }\n        snap && !tweenTo.tween && !_refreshing && !_startup && snapDelayedCall.restart(true);\n        toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function (el) {\n          return el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className);\n        }); // classes could affect positioning, so do it even if reset or refreshing is true.\n\n        onUpdate && !isToggle && !reset && onUpdate(self);\n        if (stateChanged && !_refreshing) {\n          if (isToggle) {\n            if (isTakingAction) {\n              if (action === \"complete\") {\n                animation.pause().totalProgress(1);\n              } else if (action === \"reset\") {\n                animation.restart(true).pause();\n              } else if (action === \"restart\") {\n                animation.restart(true);\n              } else {\n                animation[action]();\n              }\n            }\n            onUpdate && onUpdate(self);\n          }\n          if (toggled || !_limitCallbacks) {\n            // on startup, the page could be scrolled and we don't want to fire callbacks that didn't toggle. For example onEnter shouldn't fire if the ScrollTrigger isn't actually entered.\n            onToggle && toggled && _callback(self, onToggle);\n            callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n            once && (clipped === 1 ? self.kill(false, 1) : callbacks[toggleState] = 0); // a callback shouldn't be called again if once is true.\n\n            if (!toggled) {\n              // it's possible to go completely past, like from before the start to after the end (or vice-versa) in which case BOTH callbacks should be fired in that order\n              toggleState = clipped === 1 ? 1 : 3;\n              callbacks[toggleState] && _callback(self, callbacks[toggleState]);\n            }\n          }\n          if (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n            _endAnimation(self.callbackAnimation);\n            scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n          }\n        } else if (isToggle && onUpdate && !_refreshing) {\n          onUpdate(self);\n        }\n      } // update absolutely-positioned markers (only if the scroller isn't the viewport)\n\n      if (markerEndSetter) {\n        var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n        markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0));\n        markerEndSetter(n);\n      }\n      caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n    };\n    self.enable = function (reset, refresh) {\n      if (!self.enabled) {\n        self.enabled = true;\n        _addListener(scroller, \"resize\", _onResize);\n        isViewport || _addListener(scroller, \"scroll\", _onScroll);\n        onRefreshInit && _addListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n        if (reset !== false) {\n          self.progress = prevProgress = 0;\n          scroll1 = scroll2 = lastSnap = scrollFunc();\n        }\n        refresh !== false && self.refresh();\n      }\n    };\n    self.getTween = function (snap) {\n      return snap && tweenTo ? tweenTo.tween : scrubTween;\n    };\n    self.setPositions = function (newStart, newEnd, keepClamp, pinOffset) {\n      // doesn't persist after refresh()! Intended to be a way to override values that were set during refresh(), like you could set it in onRefresh()\n      if (containerAnimation) {\n        // convert ratios into scroll positions. Remember, start/end values on ScrollTriggers that have a containerAnimation refer to the time (in seconds), NOT scroll positions.\n        var st = containerAnimation.scrollTrigger,\n          duration = containerAnimation.duration(),\n          _change = st.end - st.start;\n        newStart = st.start + _change * newStart / duration;\n        newEnd = st.start + _change * newEnd / duration;\n      }\n      self.refresh(false, false, {\n        start: _keepClamp(newStart, keepClamp && !!self._startClamp),\n        end: _keepClamp(newEnd, keepClamp && !!self._endClamp)\n      }, pinOffset);\n      self.update();\n    };\n    self.adjustPinSpacing = function (amount) {\n      if (spacerState && amount) {\n        var i = spacerState.indexOf(direction.d) + 1;\n        spacerState[i] = parseFloat(spacerState[i]) + amount + _px;\n        spacerState[1] = parseFloat(spacerState[1]) + amount + _px;\n        _setState(spacerState);\n      }\n    };\n    self.disable = function (reset, allowAnimation) {\n      if (self.enabled) {\n        reset !== false && self.revert(true, true);\n        self.enabled = self.isActive = false;\n        allowAnimation || scrubTween && scrubTween.pause();\n        prevScroll = 0;\n        pinCache && (pinCache.uncache = 1);\n        onRefreshInit && _removeListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n        if (snapDelayedCall) {\n          snapDelayedCall.pause();\n          tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n        }\n        if (!isViewport) {\n          var i = _triggers.length;\n          while (i--) {\n            if (_triggers[i].scroller === scroller && _triggers[i] !== self) {\n              return; //don't remove the listeners if there are still other triggers referencing it.\n            }\n          }\n          _removeListener(scroller, \"resize\", _onResize);\n          isViewport || _removeListener(scroller, \"scroll\", _onScroll);\n        }\n      }\n    };\n    self.kill = function (revert, allowAnimation) {\n      self.disable(revert, allowAnimation);\n      scrubTween && !allowAnimation && scrubTween.kill();\n      id && delete _ids[id];\n      var i = _triggers.indexOf(self);\n      i >= 0 && _triggers.splice(i, 1);\n      i === _i && _direction > 0 && _i--; // if we're in the middle of a refresh() or update(), splicing would cause skips in the index, so adjust...\n      // if no other ScrollTrigger instances of the same scroller are found, wipe out any recorded scroll position. Otherwise, in a single page application, for example, it could maintain scroll position when it really shouldn't.\n\n      i = 0;\n      _triggers.forEach(function (t) {\n        return t.scroller === self.scroller && (i = 1);\n      });\n      i || _refreshingAll || (self.scroll.rec = 0);\n      if (animation) {\n        animation.scrollTrigger = null;\n        revert && animation.revert({\n          kill: false\n        });\n        allowAnimation || animation.kill();\n      }\n      markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function (m) {\n        return m.parentNode && m.parentNode.removeChild(m);\n      });\n      _primary === self && (_primary = 0);\n      if (pin) {\n        pinCache && (pinCache.uncache = 1);\n        i = 0;\n        _triggers.forEach(function (t) {\n          return t.pin === pin && i++;\n        });\n        i || (pinCache.spacer = 0); // if there aren't any more ScrollTriggers with the same pin, remove the spacer, otherwise it could be contaminated with old/stale values if the user re-creates a ScrollTrigger for the same element.\n      }\n      vars.onKill && vars.onKill(self);\n    };\n    _triggers.push(self);\n    self.enable(false, false);\n    customRevertReturn && customRevertReturn(self);\n    if (animation && animation.add && !change) {\n      // if the animation is a timeline, it may not have been populated yet, so it wouldn't render at the proper place on the first refresh(), thus we should schedule one for the next tick. If \"change\" is defined, we know it must be re-enabling, thus we can refresh() right away.\n      var updateFunc = self.update; // some browsers may fire a scroll event BEFORE a tick elapses and/or the DOMContentLoaded fires. So there's a chance update() will be called BEFORE a refresh() has happened on a Timeline-attached ScrollTrigger which means the start/end won't be calculated yet. We don't want to add conditional logic inside the update() method (like check to see if end is defined and if not, force a refresh()) because that's a function that gets hit a LOT (performance). So we swap out the real update() method for this one that'll re-attach it the first time it gets called and of course forces a refresh().\n\n      self.update = function () {\n        self.update = updateFunc;\n        _scrollers.cache++; // otherwise a cached scroll position may get used in the refresh() in a very rare scenario, like if ScrollTriggers are created inside a DOMContentLoaded event and the queued requestAnimationFrame() fires beforehand. See https://gsap.com/community/forums/topic/41267-scrolltrigger-breaks-on-refresh-when-using-domcontentloaded/\n\n        start || end || self.refresh();\n      };\n      gsap.delayedCall(0.01, self.update);\n      change = 0.01;\n      start = end = 0;\n    } else {\n      self.refresh();\n    }\n    pin && _queueRefreshAll(); // pinning could affect the positions of other things, so make sure we queue a full refresh()\n  };\n  ScrollTrigger.register = function register(core) {\n    if (!_coreInitted) {\n      gsap = core || _getGSAP();\n      _windowExists() && window.document && ScrollTrigger.enable();\n      _coreInitted = _enabled;\n    }\n    return _coreInitted;\n  };\n  ScrollTrigger.defaults = function defaults(config) {\n    if (config) {\n      for (var p in config) {\n        _defaults[p] = config[p];\n      }\n    }\n    return _defaults;\n  };\n  ScrollTrigger.disable = function disable(reset, kill) {\n    _enabled = 0;\n    _triggers.forEach(function (trigger) {\n      return trigger[kill ? \"kill\" : \"disable\"](reset);\n    });\n    _removeListener(_win, \"wheel\", _onScroll);\n    _removeListener(_doc, \"scroll\", _onScroll);\n    clearInterval(_syncInterval);\n    _removeListener(_doc, \"touchcancel\", _passThrough);\n    _removeListener(_body, \"touchstart\", _passThrough);\n    _multiListener(_removeListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n    _multiListener(_removeListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n    _resizeDelay.kill();\n    _iterateAutoRefresh(_removeListener);\n    for (var i = 0; i < _scrollers.length; i += 3) {\n      _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n      _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n    }\n  };\n  ScrollTrigger.enable = function enable() {\n    _win = window;\n    _doc = document;\n    _docEl = _doc.documentElement;\n    _body = _doc.body;\n    if (gsap) {\n      _toArray = gsap.utils.toArray;\n      _clamp = gsap.utils.clamp;\n      _context = gsap.core.context || _passThrough;\n      _suppressOverwrites = gsap.core.suppressOverwrites || _passThrough;\n      _scrollRestoration = _win.history.scrollRestoration || \"auto\";\n      _lastScroll = _win.pageYOffset || 0;\n      gsap.core.globals(\"ScrollTrigger\", ScrollTrigger); // must register the global manually because in Internet Explorer, functions (classes) don't have a \"name\" property.\n\n      if (_body) {\n        _enabled = 1;\n        _div100vh = document.createElement(\"div\"); // to solve mobile browser address bar show/hide resizing, we shouldn't rely on window.innerHeight. Instead, use a <div> with its height set to 100vh and measure that since that's what the scrolling is based on anyway and it's not affected by address bar showing/hiding.\n\n        _div100vh.style.height = \"100vh\";\n        _div100vh.style.position = \"absolute\";\n        _refresh100vh();\n        _rafBugFix();\n        Observer.register(gsap); // isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\n        ScrollTrigger.isTouch = Observer.isTouch;\n        _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); // since 2017, iOS has had a bug that causes event.clientX/Y to be inaccurate when a scroll occurs, thus we must alternate ignoring every other touchmove event to work around it. See https://bugs.webkit.org/show_bug.cgi?id=181954 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503\n\n        _ignoreMobileResize = Observer.isTouch === 1;\n        _addListener(_win, \"wheel\", _onScroll); // mostly for 3rd party smooth scrolling libraries.\n\n        _root = [_win, _doc, _docEl, _body];\n        if (gsap.matchMedia) {\n          ScrollTrigger.matchMedia = function (vars) {\n            var mm = gsap.matchMedia(),\n              p;\n            for (p in vars) {\n              mm.add(p, vars[p]);\n            }\n            return mm;\n          };\n          gsap.addEventListener(\"matchMediaInit\", function () {\n            return _revertAll();\n          });\n          gsap.addEventListener(\"matchMediaRevert\", function () {\n            return _revertRecorded();\n          });\n          gsap.addEventListener(\"matchMedia\", function () {\n            _refreshAll(0, 1);\n            _dispatch(\"matchMedia\");\n          });\n          gsap.matchMedia().add(\"(orientation: portrait)\", function () {\n            // when orientation changes, we should take new base measurements for the ignoreMobileResize feature.\n            _setBaseDimensions();\n            return _setBaseDimensions;\n          });\n        } else {\n          console.warn(\"Requires GSAP 3.11.0 or later\");\n        }\n        _setBaseDimensions();\n        _addListener(_doc, \"scroll\", _onScroll); // some browsers (like Chrome), the window stops dispatching scroll events on the window if you scroll really fast, but it's consistent on the document!\n\n        var bodyHasStyle = _body.hasAttribute(\"style\"),\n          bodyStyle = _body.style,\n          border = bodyStyle.borderTopStyle,\n          AnimationProto = gsap.core.Animation.prototype,\n          bounds,\n          i;\n        AnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", {\n          value: function value() {\n            return this.time(-0.01, true);\n          }\n        }); // only for backwards compatibility (Animation.revert() was added after 3.10.4)\n\n        bodyStyle.borderTopStyle = \"solid\"; // works around an issue where a margin of a child element could throw off the bounds of the _body, making it seem like there's a margin when there actually isn't. The border ensures that the bounds are accurate.\n\n        bounds = _getBounds(_body);\n        _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; // accommodate the offset of the <body> caused by margins and/or padding\n\n        _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n        border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty(\"border-top-style\");\n        if (!bodyHasStyle) {\n          // SSR frameworks like Next.js complain if this attribute gets added.\n          _body.setAttribute(\"style\", \"\"); // it's not enough to just removeAttribute() - we must first set it to empty, otherwise Next.js complains.\n\n          _body.removeAttribute(\"style\");\n        } // TODO: (?) maybe move to leveraging the velocity mechanism in Observer and skip intervals.\n\n        _syncInterval = setInterval(_sync, 250);\n        gsap.delayedCall(0.5, function () {\n          return _startup = 0;\n        });\n        _addListener(_doc, \"touchcancel\", _passThrough); // some older Android devices intermittently stop dispatching \"touchmove\" events if we don't listen for \"touchcancel\" on the document.\n\n        _addListener(_body, \"touchstart\", _passThrough); //works around Safari bug: https://gsap.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\n        _multiListener(_addListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n        _multiListener(_addListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n        _transformProp = gsap.utils.checkPrefix(\"transform\");\n        _stateProps.push(_transformProp);\n        _coreInitted = _getTime();\n        _resizeDelay = gsap.delayedCall(0.2, _refreshAll).pause();\n        _autoRefresh = [_doc, \"visibilitychange\", function () {\n          var w = _win.innerWidth,\n            h = _win.innerHeight;\n          if (_doc.hidden) {\n            _prevWidth = w;\n            _prevHeight = h;\n          } else if (_prevWidth !== w || _prevHeight !== h) {\n            _onResize();\n          }\n        }, _doc, \"DOMContentLoaded\", _refreshAll, _win, \"load\", _refreshAll, _win, \"resize\", _onResize];\n        _iterateAutoRefresh(_addListener);\n        _triggers.forEach(function (trigger) {\n          return trigger.enable(0, 1);\n        });\n        for (i = 0; i < _scrollers.length; i += 3) {\n          _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 1]);\n          _wheelListener(_removeListener, _scrollers[i], _scrollers[i + 2]);\n        }\n      }\n    }\n  };\n  ScrollTrigger.config = function config(vars) {\n    \"limitCallbacks\" in vars && (_limitCallbacks = !!vars.limitCallbacks);\n    var ms = vars.syncInterval;\n    ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);\n    \"ignoreMobileResize\" in vars && (_ignoreMobileResize = ScrollTrigger.isTouch === 1 && vars.ignoreMobileResize);\n    if (\"autoRefreshEvents\" in vars) {\n      _iterateAutoRefresh(_removeListener) || _iterateAutoRefresh(_addListener, vars.autoRefreshEvents || \"none\");\n      _ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n    }\n  };\n  ScrollTrigger.scrollerProxy = function scrollerProxy(target, vars) {\n    var t = _getTarget(target),\n      i = _scrollers.indexOf(t),\n      isViewport = _isViewport(t);\n    if (~i) {\n      _scrollers.splice(i, isViewport ? 6 : 2);\n    }\n    if (vars) {\n      isViewport ? _proxies.unshift(_win, vars, _body, vars, _docEl, vars) : _proxies.unshift(t, vars);\n    }\n  };\n  ScrollTrigger.clearMatchMedia = function clearMatchMedia(query) {\n    _triggers.forEach(function (t) {\n      return t._ctx && t._ctx.query === query && t._ctx.kill(true, true);\n    });\n  };\n  ScrollTrigger.isInViewport = function isInViewport(element, ratio, horizontal) {\n    var bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(),\n      offset = bounds[horizontal ? _width : _height] * ratio || 0;\n    return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win.innerHeight;\n  };\n  ScrollTrigger.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {\n    _isString(element) && (element = _getTarget(element));\n    var bounds = element.getBoundingClientRect(),\n      size = bounds[horizontal ? _width : _height],\n      offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;\n    return horizontal ? (bounds.left + offset) / _win.innerWidth : (bounds.top + offset) / _win.innerHeight;\n  };\n  ScrollTrigger.killAll = function killAll(allowListeners) {\n    _triggers.slice(0).forEach(function (t) {\n      return t.vars.id !== \"ScrollSmoother\" && t.kill();\n    });\n    if (allowListeners !== true) {\n      var listeners = _listeners.killAll || [];\n      _listeners = {};\n      listeners.forEach(function (f) {\n        return f();\n      });\n    }\n  };\n  return ScrollTrigger;\n}();\nScrollTrigger.version = \"3.12.7\";\nScrollTrigger.saveStyles = function (targets) {\n  return targets ? _toArray(targets).forEach(function (target) {\n    // saved styles are recorded in a consecutive alternating Array, like [element, cssText, transform attribute, cache, matchMedia, ...]\n    if (target && target.style) {\n      var i = _savedStyles.indexOf(target);\n      i >= 0 && _savedStyles.splice(i, 5);\n      _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap.core.getCache(target), _context());\n    }\n  }) : _savedStyles;\n};\nScrollTrigger.revert = function (soft, media) {\n  return _revertAll(!soft, media);\n};\nScrollTrigger.create = function (vars, animation) {\n  return new ScrollTrigger(vars, animation);\n};\nScrollTrigger.refresh = function (safe) {\n  return safe ? _onResize(true) : (_coreInitted || ScrollTrigger.register()) && _refreshAll(true);\n};\nScrollTrigger.update = function (force) {\n  return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);\n};\nScrollTrigger.clearScrollMemory = _clearScrollMemory;\nScrollTrigger.maxScroll = function (element, horizontal) {\n  return _maxScroll(element, horizontal ? _horizontal : _vertical);\n};\nScrollTrigger.getScrollFunc = function (element, horizontal) {\n  return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\n};\nScrollTrigger.getById = function (id) {\n  return _ids[id];\n};\nScrollTrigger.getAll = function () {\n  return _triggers.filter(function (t) {\n    return t.vars.id !== \"ScrollSmoother\";\n  });\n}; // it's common for people to ScrollTrigger.getAll(t => t.kill()) on page routes, for example, and we don't want it to ruin smooth scrolling by killing the main ScrollSmoother one.\n\nScrollTrigger.isScrolling = function () {\n  return !!_lastScrollTime;\n};\nScrollTrigger.snapDirectional = _snapDirectional;\nScrollTrigger.addEventListener = function (type, callback) {\n  var a = _listeners[type] || (_listeners[type] = []);\n  ~a.indexOf(callback) || a.push(callback);\n};\nScrollTrigger.removeEventListener = function (type, callback) {\n  var a = _listeners[type],\n    i = a && a.indexOf(callback);\n  i >= 0 && a.splice(i, 1);\n};\nScrollTrigger.batch = function (targets, vars) {\n  var result = [],\n    varsCopy = {},\n    interval = vars.interval || 0.016,\n    batchMax = vars.batchMax || 1e9,\n    proxyCallback = function proxyCallback(type, callback) {\n      var elements = [],\n        triggers = [],\n        delay = gsap.delayedCall(interval, function () {\n          callback(elements, triggers);\n          elements = [];\n          triggers = [];\n        }).pause();\n      return function (self) {\n        elements.length || delay.restart(true);\n        elements.push(self.trigger);\n        triggers.push(self);\n        batchMax <= elements.length && delay.progress(1);\n      };\n    },\n    p;\n  for (p in vars) {\n    varsCopy[p] = p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\" ? proxyCallback(p, vars[p]) : vars[p];\n  }\n  if (_isFunction(batchMax)) {\n    batchMax = batchMax();\n    _addListener(ScrollTrigger, \"refresh\", function () {\n      return batchMax = vars.batchMax();\n    });\n  }\n  _toArray(targets).forEach(function (target) {\n    var config = {};\n    for (p in varsCopy) {\n      config[p] = varsCopy[p];\n    }\n    config.trigger = target;\n    result.push(ScrollTrigger.create(config));\n  });\n  return result;\n}; // to reduce file size. clamps the scroll and also returns a duration multiplier so that if the scroll gets chopped shorter, the duration gets curtailed as well (otherwise if you're very close to the top of the page, for example, and swipe up really fast, it'll suddenly slow down and take a long time to reach the top).\n\nvar _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier(scrollFunc, current, end, max) {\n    current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n    return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n  },\n  _allowNativePanning = function _allowNativePanning(target, direction) {\n    if (direction === true) {\n      target.style.removeProperty(\"touch-action\");\n    } else {\n      target.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\"; // note: Firefox doesn't support it pinch-zoom properly, at least in addition to a pan-x or pan-y.\n    }\n    target === _docEl && _allowNativePanning(_body, direction);\n  },\n  _overflow = {\n    auto: 1,\n    scroll: 1\n  },\n  _nestedScroll = function _nestedScroll(_ref5) {\n    var event = _ref5.event,\n      target = _ref5.target,\n      axis = _ref5.axis;\n    var node = (event.changedTouches ? event.changedTouches[0] : event).target,\n      cache = node._gsap || gsap.core.getCache(node),\n      time = _getTime(),\n      cs;\n    if (!cache._isScrollT || time - cache._isScrollT > 2000) {\n      // cache for 2 seconds to improve performance.\n      while (node && node !== _body && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {\n        node = node.parentNode;\n      }\n      cache._isScroll = node && node !== target && !_isViewport(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n      cache._isScrollT = time;\n    }\n    if (cache._isScroll || axis === \"x\") {\n      event.stopPropagation();\n      event._gsapAllow = true;\n    }\n  },\n  // capture events on scrollable elements INSIDE the <body> and allow those by calling stopPropagation() when we find a scrollable ancestor\n  _inputObserver = function _inputObserver(target, type, inputs, nested) {\n    return Observer.create({\n      target: target,\n      capture: true,\n      debounce: false,\n      lockAxis: true,\n      type: type,\n      onWheel: nested = nested && _nestedScroll,\n      onPress: nested,\n      onDrag: nested,\n      onScroll: nested,\n      onEnable: function onEnable() {\n        return inputs && _addListener(_doc, Observer.eventTypes[0], _captureInputs, false, true);\n      },\n      onDisable: function onDisable() {\n        return _removeListener(_doc, Observer.eventTypes[0], _captureInputs, true);\n      }\n    });\n  },\n  _inputExp = /(input|label|select|textarea)/i,\n  _inputIsFocused,\n  _captureInputs = function _captureInputs(e) {\n    var isInput = _inputExp.test(e.target.tagName);\n    if (isInput || _inputIsFocused) {\n      e._gsapAllow = true;\n      _inputIsFocused = isInput;\n    }\n  },\n  _getScrollNormalizer = function _getScrollNormalizer(vars) {\n    _isObject(vars) || (vars = {});\n    vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n    vars.type || (vars.type = \"wheel,touch\");\n    vars.debounce = !!vars.debounce;\n    vars.id = vars.id || \"normalizer\";\n    var _vars2 = vars,\n      normalizeScrollX = _vars2.normalizeScrollX,\n      momentum = _vars2.momentum,\n      allowNestedScroll = _vars2.allowNestedScroll,\n      onRelease = _vars2.onRelease,\n      self,\n      maxY,\n      target = _getTarget(vars.target) || _docEl,\n      smoother = gsap.core.globals().ScrollSmoother,\n      smootherInstance = smoother && smoother.get(),\n      content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()),\n      scrollFuncY = _getScrollFunc(target, _vertical),\n      scrollFuncX = _getScrollFunc(target, _horizontal),\n      scale = 1,\n      initialScale = (Observer.isTouch && _win.visualViewport ? _win.visualViewport.scale * _win.visualViewport.width : _win.outerWidth) / _win.innerWidth,\n      wheelRefresh = 0,\n      resolveMomentumDuration = _isFunction(momentum) ? function () {\n        return momentum(self);\n      } : function () {\n        return momentum || 2.8;\n      },\n      lastRefreshID,\n      skipTouchMove,\n      inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll),\n      resumeTouchMove = function resumeTouchMove() {\n        return skipTouchMove = false;\n      },\n      scrollClampX = _passThrough,\n      scrollClampY = _passThrough,\n      updateClamps = function updateClamps() {\n        maxY = _maxScroll(target, _vertical);\n        scrollClampY = _clamp(_fixIOSBug ? 1 : 0, maxY);\n        normalizeScrollX && (scrollClampX = _clamp(0, _maxScroll(target, _horizontal)));\n        lastRefreshID = _refreshID;\n      },\n      removeContentOffset = function removeContentOffset() {\n        content._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n        content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n        scrollFuncY.offset = scrollFuncY.cacheID = 0;\n      },\n      ignoreDrag = function ignoreDrag() {\n        if (skipTouchMove) {\n          requestAnimationFrame(resumeTouchMove);\n          var offset = _round(self.deltaY / 2),\n            scroll = scrollClampY(scrollFuncY.v - offset);\n          if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n            scrollFuncY.offset = scroll - scrollFuncY.v;\n            var y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n            content.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n            content._gsap.y = y + \"px\";\n            scrollFuncY.cacheID = _scrollers.cache;\n            _updateAll();\n          }\n          return true;\n        }\n        scrollFuncY.offset && removeContentOffset();\n        skipTouchMove = true;\n      },\n      tween,\n      startScrollX,\n      startScrollY,\n      onStopDelayedCall,\n      onResize = function onResize() {\n        // if the window resizes, like on an iPhone which Apple FORCES the address bar to show/hide even if we event.preventDefault(), it may be scrolling too far now that the address bar is showing, so we must dynamically adjust the momentum tween.\n        updateClamps();\n        if (tween.isActive() && tween.vars.scrollY > maxY) {\n          scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n        }\n      };\n    content && gsap.set(content, {\n      y: \"+=0\"\n    }); // to ensure there's a cache (element._gsap)\n\n    vars.ignoreCheck = function (e) {\n      return _fixIOSBug && e.type === \"touchmove\" && ignoreDrag(e) || scale > 1.05 && e.type !== \"touchstart\" || self.isGesturing || e.touches && e.touches.length > 1;\n    };\n    vars.onPress = function () {\n      skipTouchMove = false;\n      var prevScale = scale;\n      scale = _round((_win.visualViewport && _win.visualViewport.scale || 1) / initialScale);\n      tween.pause();\n      prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n      startScrollX = scrollFuncX();\n      startScrollY = scrollFuncY();\n      updateClamps();\n      lastRefreshID = _refreshID;\n    };\n    vars.onRelease = vars.onGestureStart = function (self, wasDragging) {\n      scrollFuncY.offset && removeContentOffset();\n      if (!wasDragging) {\n        onStopDelayedCall.restart(true);\n      } else {\n        _scrollers.cache++; // make sure we're pulling the non-cached value\n        // alternate algorithm: durX = Math.min(6, Math.abs(self.velocityX / 800)),\tdur = Math.max(durX, Math.min(6, Math.abs(self.velocityY / 800))); dur = dur * (0.4 + (1 - _power4In(dur / 6)) * 0.6)) * (momentumSpeed || 1)\n\n        var dur = resolveMomentumDuration(),\n          currentScroll,\n          endScroll;\n        if (normalizeScrollX) {\n          currentScroll = scrollFuncX();\n          endScroll = currentScroll + dur * 0.05 * -self.velocityX / 0.227; // the constant .227 is from power4(0.05). velocity is inverted because scrolling goes in the opposite direction.\n\n          dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n          tween.vars.scrollX = scrollClampX(endScroll);\n        }\n        currentScroll = scrollFuncY();\n        endScroll = currentScroll + dur * 0.05 * -self.velocityY / 0.227; // the constant .227 is from power4(0.05)\n\n        dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n        tween.vars.scrollY = scrollClampY(endScroll);\n        tween.invalidate().duration(dur).play(0.01);\n        if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {\n          // iOS bug: it'll show the address bar but NOT fire the window \"resize\" event until the animation is done but we must protect against overshoot so we leverage an onUpdate to do so.\n          gsap.to({}, {\n            onUpdate: onResize,\n            duration: dur\n          });\n        }\n      }\n      onRelease && onRelease(self);\n    };\n    vars.onWheel = function () {\n      tween._ts && tween.pause();\n      if (_getTime() - wheelRefresh > 1000) {\n        // after 1 second, refresh the clamps otherwise that'll only happen when ScrollTrigger.refresh() is called or for touch-scrolling.\n        lastRefreshID = 0;\n        wheelRefresh = _getTime();\n      }\n    };\n    vars.onChange = function (self, dx, dy, xArray, yArray) {\n      _refreshID !== lastRefreshID && updateClamps();\n      dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self.startX - self.x) : scrollFuncX() + dx - xArray[1])); // for more precision, we track pointer/touch movement from the start, otherwise it'll drift.\n\n      if (dy) {\n        scrollFuncY.offset && removeContentOffset();\n        var isTouch = yArray[2] === dy,\n          y = isTouch ? startScrollY + self.startY - self.y : scrollFuncY() + dy - yArray[1],\n          yClamped = scrollClampY(y);\n        isTouch && y !== yClamped && (startScrollY += yClamped - y);\n        scrollFuncY(yClamped);\n      }\n      (dy || dx) && _updateAll();\n    };\n    vars.onEnable = function () {\n      _allowNativePanning(target, normalizeScrollX ? false : \"x\");\n      ScrollTrigger.addEventListener(\"refresh\", onResize);\n      _addListener(_win, \"resize\", onResize);\n      if (scrollFuncY.smooth) {\n        scrollFuncY.target.style.scrollBehavior = \"auto\";\n        scrollFuncY.smooth = scrollFuncX.smooth = false;\n      }\n      inputObserver.enable();\n    };\n    vars.onDisable = function () {\n      _allowNativePanning(target, true);\n      _removeListener(_win, \"resize\", onResize);\n      ScrollTrigger.removeEventListener(\"refresh\", onResize);\n      inputObserver.kill();\n    };\n    vars.lockAxis = vars.lockAxis !== false;\n    self = new Observer(vars);\n    self.iOS = _fixIOSBug; // used in the Observer getCachedScroll() function to work around an iOS bug that wreaks havoc with TouchEvent.clientY if we allow scroll to go all the way back to 0.\n\n    _fixIOSBug && !scrollFuncY() && scrollFuncY(1); // iOS bug causes event.clientY values to freak out (wildly inaccurate) if the scroll position is exactly 0.\n\n    _fixIOSBug && gsap.ticker.add(_passThrough); // prevent the ticker from sleeping\n\n    onStopDelayedCall = self._dc;\n    tween = gsap.to(self, {\n      ease: \"power4\",\n      paused: true,\n      inherit: false,\n      scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\",\n      scrollY: \"+=0.1\",\n      modifiers: {\n        scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function () {\n          return tween.pause();\n        })\n      },\n      onUpdate: _updateAll,\n      onComplete: onStopDelayedCall.vars.onComplete\n    }); // we need the modifier to sense if the scroll position is altered outside of the momentum tween (like with a scrollTo tween) so we can pause() it to prevent conflicts.\n\n    return self;\n  };\nScrollTrigger.sort = function (func) {\n  if (_isFunction(func)) {\n    return _triggers.sort(func);\n  }\n  var scroll = _win.pageYOffset || 0;\n  ScrollTrigger.getAll().forEach(function (t) {\n    return t._sortY = t.trigger ? scroll + t.trigger.getBoundingClientRect().top : t.start + _win.innerHeight;\n  });\n  return _triggers.sort(func || function (a, b) {\n    return (a.vars.refreshPriority || 0) * -1e6 + (a.vars.containerAnimation ? 1e6 : a._sortY) - ((b.vars.containerAnimation ? 1e6 : b._sortY) + (b.vars.refreshPriority || 0) * -1e6);\n  }); // anything with a containerAnimation should refresh last.\n};\nScrollTrigger.observe = function (vars) {\n  return new Observer(vars);\n};\nScrollTrigger.normalizeScroll = function (vars) {\n  if (typeof vars === \"undefined\") {\n    return _normalizer;\n  }\n  if (vars === true && _normalizer) {\n    return _normalizer.enable();\n  }\n  if (vars === false) {\n    _normalizer && _normalizer.kill();\n    _normalizer = vars;\n    return;\n  }\n  var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n  _normalizer && _normalizer.target === normalizer.target && _normalizer.kill();\n  _isViewport(normalizer.target) && (_normalizer = normalizer);\n  return normalizer;\n};\nScrollTrigger.core = {\n  // smaller file size way to leverage in ScrollSmoother and Observer\n  _getVelocityProp: _getVelocityProp,\n  _inputObserver: _inputObserver,\n  _scrollers: _scrollers,\n  _proxies: _proxies,\n  bridge: {\n    // when normalizeScroll sets the scroll position (ss = setScroll)\n    ss: function ss() {\n      _lastScrollTime || _dispatch(\"scrollStart\");\n      _lastScrollTime = _getTime();\n    },\n    // a way to get the _refreshing value in Observer\n    ref: function ref() {\n      return _refreshing;\n    }\n  }\n};\n_getGSAP() && gsap.registerPlugin(ScrollTrigger);\nexport { ScrollTrigger as default };","import React, { useRef, useCallback, useState, useEffect } from \"react\";\nimport { gsap } from \"gsap\";\nimport Typed from \"react-typed\";\nimport { Link } from \"gatsby\";\nimport {\n  Typography as MuiTypography,\n  Grid as MuiGrid,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport cx from \"classnames\";\nimport ResponsiveImg from \"../shared/responsive-img\";\nimport Section from \"../shared/section\";\nimport Subtitle from \"../shared/subtitle\";\nimport { LINKS } from \"../../constants/links\";\nimport { IMAGES } from \"../../constants/images\";\n\nconst Typography = styled(MuiTypography)(spacing);\nconst Grid = styled(MuiGrid)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  section:{\n    paddingTop: 50,\n    paddingBottom: 40,\n    [theme.breakpoints.down(510)]: {\n      paddingTop: 20,\n    },\n  },\n  shadowContainer: {\n    boxShadow: '-2px 20px 44px -10px rgba(122,122,122,0.62)',\n    backgroundColor: 'rgb(0 0 0 / 15%)',\n  },\n  imageWrapper: {\n    position: \"relative\",\n    width: \"100%\",\n    maxWidth: 798,\n    margin: \"0 auto\",\n  },\n  image: {\n    position: \"absolute\",\n    backgroundColor: `${theme.colors.greyShadow}`,\n    left: 0,\n    top: 0,\n    display:'block',\n    maxHeight: '426.462px',\n    height: '51vw',\n  },\n  imageRoot:{\n    position: \"relative\",\n  },\n  phoneWrapper: {\n    width: '41%',\n    position: \"absolute\",\n    maxWidth: 320,\n    height: \"140%\",\n    top: \"-20%\",\n    right: 0,\n    overflow: \"hidden\",\n    perspective: \"34px\",\n  },\n  iPhoneImage: {\n    height: \"100%\",\n    maxWidth: \"90%\",\n  },\n  slateImgWrapper: {\n    position: \"absolute\",\n    top: \"-0.5%\",\n    left: \"20.5%\",\n    width: \"69%\",\n    height: \"99%\",\n    transform: \"rotateY(1deg) translateZ(-3px)\",\n    borderRadius: \"5%\",\n    overflow: \"hidden\",\n    zIndex: -1,\n\n    [theme.breakpoints.down(750)]: {\n      transform: \"rotateY(1.1deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(680)]: {\n      transform: \"rotateY(1.3deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(600)]: {\n      transform: \"rotateY(1.5deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(560)]: {\n      transform: \"rotateY(1.6deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(510)]: {\n      transform: \"rotateY(1.7deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(480)]: {\n      transform: \"rotateY(1.85deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(450)]: {\n      transform: \"rotateY(2deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(420)]: {\n      transform: \"rotateY(2.2deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(400)]: {\n      transform: \"rotateY(2.35deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(380)]: {\n      transform: \"rotateY(2.6deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(365)]: {\n      transform: \"rotateY(2.85deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(330)]: {\n      transform: \"rotateY(3deg) translateZ(-3px)\",\n    },\n    [theme.breakpoints.down(300)]: {\n      transform: \"rotateY(3.3deg) translateZ(-3px)\",\n    },\n  },\n  qrImage: {\n    position: \"absolute\",\n    left: 0,\n    height: \"100%\",\n    imageRendering: \"-webkit-optimize-contrast\",\n    // imageRendering: \"crisp-edges\",\n  },\n  slateImage: {\n    top: \"100%\",\n  },\n  scannerLine: {\n    position: \"absolute\",\n    height: 1,\n    backgroundColor: theme.palette.common.white,\n    width: '56%',\n    top: '36.7%',\n    left: '22%',\n    opacity: 0,\n  },\n  typingContainer: {\n    [theme.breakpoints.down('xs')]: {\n      marginTop: 80,\n      marginBottom: 40,\n    },\n  },\n  typedContainer: {\n    display: 'flex',\n  },\n  typedWrapper: {\n    fontSize: \"3.12rem\",\n    fontFamily: `'Permanent Marker', cursive`,\n    color: theme.colors.orange,\n    position: \"relative\",\n    bottom: 7,\n    lineHeight: 1,\n    borderBottom: `1px solid rgb(194 194 194)`,\n    width: 380,\n\n    [theme.breakpoints.down(679)]: {\n      display: 'flex',\n      justifyContent: 'center',\n    },\n\n    [theme.breakpoints.down('xs')]: {\n      fontSize: \"2.5rem\",\n      width: 315,\n    },\n  },\n  contactLink: {\n    color: theme.colors.orange,\n    textDecoration: 'none',\n    fontSize: '1rem',\n    \"&:hover\": {\n      textDecoration: 'underline',\n    },\n  },\n  title: {\n    marginBottom: 10,\n\n    [theme.breakpoints.down('xs')]: {\n      fontSize: \"2.5rem\",\n    },\n  },\n}));\n\nlet timeLine;\nconst DELAY = 10;\nconst TYPED = [\"Maintenance\", \"Inspections\", \"Manufacturing\", \"Health Checks\"];\nconst TYPE_SPEED = 80;\nconst BACK_SPEED = 40;\n\nconst HomeHeroSection = ({imagesFormat}) => {\n  const [typedPos, setTypedPos] = useState(null);\n  const classes = useStyles();\n  const sectionRef = useRef(null);\n  const typedRef = useRef(null);\n  const imagesRefs = useRef([]);\n  const qrImagesRefs = useRef([]);\n  const scannerLineRef = useRef(null);\n  const qrScannerImageRef = useRef(null);\n  const slateImageRef = useRef([]);\n  const imageMain = IMAGES.home.hero.main[imagesFormat];\n  const imagePhone = IMAGES.home.hero.phone[imagesFormat];\n  const imageQr = IMAGES.home.hero.qrImage[imagesFormat];\n  const imageSlateView = IMAGES.home.hero.slateView[imagesFormat];\n  const imageSlate = IMAGES.home.hero.slate[imagesFormat];\n  const [timer, setTimer] = useState(0);\n  const [finishedTypeAnimation, setFinishedTypeAnimation] = useState(false);\n\n  useEffect(() => {\n    let _timer = 0;\n    setInterval(() => {\n      setTimer(_timer + 1);\n      _timer += 1;\n    }, 1000);\n\n    window.addEventListener('scroll', () => {\n      _timer = 0;\n      handleScroll();\n    });\n    return window.removeEventListener('scroll', () => {\n      clearInterval();\n      handleScroll();\n    });\n  }, []);\n\n  useEffect(() => {\n    const paused = timeLine && timeLine.paused();\n    if(timer === 0 && paused) {\n      timeLine.play();\n      typedRef.current.start();\n      setFinishedTypeAnimation(!finishedTypeAnimation);\n    }\n  }, [timer]);\n\n  const handleScroll = () => {\n    setTimer(0);\n  }\n\n  const onStringTyped = (arrayPos, self) => {\n    if(timer > 15 && finishedTypeAnimation) {\n      timeLine.pause()\n      typedRef.current.stop();\n    }\n\n    if (arrayPos !== typedPos) {\n      self.stop();\n      setTypedPos(arrayPos);\n    }\n    setFinishedTypeAnimation(!finishedTypeAnimation);\n  }\n\n  const setSectionRef = useCallback((node) => {\n    const MOBILE_SCREEN_HEIGHT = '-100%';\n\n    sectionRef.current = node;\n    if (node) {\n      if(timeLine){\n        timeLine.restart();\n      }\n      gsap.to(node, {\n        scrollTrigger: {\n          trigger: node,\n          start: \"50% top\",\n          end: \"bottom top\",\n          scrub: 0.5,\n        },\n        autoAlpha: 0,\n      });\n\n      setTimeout(() => {\n        timeLine = gsap\n          .timeline({\n            repeat: -1,\n            // repeatDelay: DELAY,\n            // delay: DELAY,\n          })\n          .add(\"start\")\n          // --- image 1 ---\n          .to(scannerLineRef.current, { opacity: 1, duration: 0.5 }, \"start+=0.5\")\n          .to(scannerLineRef.current, {\n            y: () => qrScannerImageRef.current && qrScannerImageRef.current.height * 0.266,\n            duration: 2 })\n          .to(scannerLineRef.current, { opacity: 0, duration: 0.5 })\n          .to(scannerLineRef.current, { y: 0, duration: 0 })\n          .to(slateImageRef.current[0], { duration: .8, ease: \"expo.out\", y: MOBILE_SCREEN_HEIGHT })\n          .to(slateImageRef.current[0], {\n            y: 0,\n            duration: 1,\n            delay: 3.5,\n            onComplete: () => {\n              setTypedPos(0);\n              typedRef.current.start();\n            },\n          })\n          .to(imagesRefs.current[0],{autoAlpha: 0},`start+=${DELAY}`)\n          .to(qrImagesRefs.current[0], { autoAlpha: 0 }, `start+=${DELAY}`)\n          // --- image 2 ---\n          .to(\n            scannerLineRef.current,\n            { opacity: 1, duration: 0.5 },\n            `start+=${DELAY + 0.5}`,\n          )\n          .to(scannerLineRef.current, {\n            y: () => qrScannerImageRef.current && qrScannerImageRef.current.height * 0.266,\n            duration: 2 })\n          .to(scannerLineRef.current, { opacity: 0, duration: 0.5 })\n          .to(scannerLineRef.current, { y: 0, duration: 0 })\n          .to(slateImageRef.current[1], { duration: .8, ease: \"expo.out\", y: MOBILE_SCREEN_HEIGHT })\n          .to(slateImageRef.current[1], {\n            y: 0,\n            duration: 1,\n            delay: 3.5,\n            onComplete: () => {\n              setTypedPos(1);\n              typedRef.current.start();\n            },\n          })\n          .to(imagesRefs.current[1],{autoAlpha: 0},`start+=${DELAY * 2}`)\n          .to(qrImagesRefs.current[1], { autoAlpha: 0 }, `start+=${DELAY * 2}`)\n          // --- image 3 ---\n          .to(\n            scannerLineRef.current,\n            { opacity: 1, duration: 0.5 },\n            `start+=${DELAY * 2 + 0.5}`,\n          )\n          .to(scannerLineRef.current, {\n            y: () => qrScannerImageRef.current && qrScannerImageRef.current.height * 0.266,\n            duration: 2 })\n          .to(scannerLineRef.current, { opacity: 0, duration: 0.5 })\n          .to(scannerLineRef.current, { y: 0, duration: 0 })\n          .to(slateImageRef.current[2], { duration: .8, ease: \"expo.out\", y: MOBILE_SCREEN_HEIGHT })\n          .to(slateImageRef.current[2], {\n            y: 0,\n            duration: 1,\n            delay: 3.5,\n            onComplete: () => {\n              setTypedPos(2);\n              typedRef.current.start();\n            },\n          })\n          .to(imagesRefs.current[2],{autoAlpha: 0},`start+=${DELAY * 3}`)\n          .to(qrImagesRefs.current[2], { autoAlpha: 0 }, `start+=${DELAY * 3}`)\n          // --- image 4 ---\n          .to(\n            scannerLineRef.current,\n            { opacity: 1, duration: 0.5 },\n            `start+=${DELAY * 3 + 0.5}`,\n          )\n          .to(scannerLineRef.current, {\n            y: () => qrScannerImageRef.current && qrScannerImageRef.current.height * 0.266,\n            duration: 2 })\n          .to(scannerLineRef.current, { opacity: 0, duration: 0.5 })\n          .to(scannerLineRef.current, { y: 0, duration: 0 })\n          .to(slateImageRef.current[3], { duration: .8, ease: \"expo.out\", y: MOBILE_SCREEN_HEIGHT })\n          .to(slateImageRef.current[3], {\n            y: 0,\n            duration: 1,\n            delay: 3.5,\n            onComplete: () => {\n              setTypedPos(3);\n              typedRef.current.start();\n            },\n          })\n          .to(imagesRefs.current[0],{autoAlpha: 1},`start+=${DELAY * 4}`)\n          .to(qrImagesRefs.current[0], { autoAlpha: 1 }, `start+=${DELAY * 4}`);\n      }, 2200)\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  return (\n    <Section\n      ref={setSectionRef}\n      container\n      direction=\"column\"\n      alignItems=\"center\"\n      pt={10}\n      pb={15}\n      innerClassName={classes.section}\n    >\n      <div className={classes.imageWrapper}>\n        <div className={classes.shadowContainer}>\n          <ResponsiveImg\n            src={imageMain.clipboard.src}\n            srcSet={`${imageMain.clipboard.srcSet} 2x`}\n            alt={TYPED[3]}\n            className={cx(classes.image, classes.imageRoot)}\n            ref={(node) => {\n              imagesRefs.current[3] = node;\n            }}\n          />\n          <ResponsiveImg\n            src={imageMain.manufacturing.src}\n            srcSet={`${imageMain.manufacturing.srcSet} 2x`}\n            alt={TYPED[2]}\n            className={classes.image}\n            ref={(node) => {\n              imagesRefs.current[2] = node;\n            }}\n          />\n          <ResponsiveImg\n            src={imageMain.SCBA.src}\n            srcSet={`${imageMain.SCBA.srcSet} 2x`}\n            alt={TYPED[1]}\n            className={classes.image}\n            ref={(node) => {\n              imagesRefs.current[1] = node;\n            }}\n          />\n          <ResponsiveImg\n            src={imageMain.backhoe.src}\n            srcSet={`${imageMain.backhoe.srcSet} 2x`}\n            alt={TYPED[0]}\n            className={classes.image}\n            ref={(node) => {\n              imagesRefs.current[0] = node;\n            }}\n          />\n        </div>\n        <div className={classes.phoneWrapper}>\n          <ResponsiveImg\n            src={imagePhone.src}\n            alt=\"iPhone\"\n            className={classes.iPhoneImage}\n          />\n          <div className={classes.slateImgWrapper}>\n            <ResponsiveImg\n              ref={(node) => {\n                qrImagesRefs.current[3] = node;\n              }}\n              src={imageQr.clipboard.src}\n              alt=\"QR code\"\n              className={classes.qrImage}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                qrImagesRefs.current[2] = node;\n              }}\n              src={imageQr.manufacturing.src}\n              alt=\"QR code\"\n              className={classes.qrImage}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                qrImagesRefs.current[1] = node;\n              }}\n              src={imageQr.SCBA.src}\n              alt=\"QR code\"\n              className={classes.qrImage}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                qrImagesRefs.current[0] = node;\n              }}\n              src={imageQr.backhoe.src}\n              alt=\"QR code\"\n              className={classes.qrImage}\n            />\n            <ResponsiveImg\n              ref={qrScannerImageRef}\n              src={imageSlateView.src}\n              srcSet={`${imageSlateView.srcSet} 2x`}\n              alt=\"Slate Scanner\"\n              className={classes.qrImage}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                slateImageRef.current[3] = node;\n              }}\n              src={imageSlate.clipboard.src}\n              srcSet={`${imageSlate.clipboard.srcSet} 2x`}\n              alt=\"Slate Content Clipboard\"\n              className={cx(classes.qrImage, classes.slateImage)}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                slateImageRef.current[2] = node;\n              }}\n              src={imageSlate.manufacturing.src}\n              srcSet={`${imageSlate.manufacturing.srcSet} 2x`}\n              alt=\"Slate Content Manufacturing\"\n              className={cx(classes.qrImage, classes.slateImage)}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                slateImageRef.current[1] = node;\n              }}\n              src={imageSlate.SCBA.src}\n              srcSet={`${imageSlate.SCBA.srcSet} 2x`}\n              alt=\"Slate Content SCBA\"\n              className={cx(classes.qrImage, classes.slateImage)}\n            />\n            <ResponsiveImg\n              ref={(node) => {\n                slateImageRef.current[0] = node;\n              }}\n              src={imageSlate.backhoe.src}\n              srcSet={`${imageSlate.backhoe.srcSet} 2x`}\n              alt=\"Slate Content Backhoe\"\n              className={cx(classes.qrImage, classes.slateImage)}\n            />\n            <div ref={scannerLineRef} className={classes.scannerLine} />\n          </div>\n        </div>\n      </div>\n      <Grid container mt={15} mb={2}\n            alignItems=\"center\"\n            justify=\"center\"\n            classes={{\n              root: classes.typingContainer,\n            }}>\n        <Typography variant=\"h2\" mr={1} classes={{\n          root: classes.title,\n        }}>\n          Slate your\n        </Typography>\n        <div className={classes.typedContainer}>\n          <div className={classes.typedWrapper}>\n            <Typed\n              typedRef={(typed) => {\n                typedRef.current = typed;\n              }}\n              strings={TYPED}\n              typeSpeed={TYPE_SPEED}\n              backSpeed={BACK_SPEED}\n              // backDelay={BACK_DELAY}\n              smartBackspace={true}\n              // stopped\n              loop\n              onStringTyped={onStringTyped}\n            />\n          </div>\n          <Typography variant=\"h2\" ml={0.5}>\n            .\n          </Typography>\n        </div>\n      </Grid>\n      <Subtitle mb={4} className={classes.subtitle}>\n        Start tracking your assets from your smartphone with the easy-to-use\n        Slate Pages app! Our mobile asset tracking system uses QR tags (we call\n        them Slates) to access the information linked to your asset.\n      </Subtitle>\n      <Grid container direction=\"column\" justify=\"center\" alignItems=\"center\">\n        <Link to={LINKS.contact} className={classes.contactLink}>\n          Questions? Contact us.\n        </Link>\n      </Grid>\n    </Section>\n  );\n};\n\nexport default HomeHeroSection;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Paper from '../Paper';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n  /* Styles applied to the root element. */\n  root: {\n    overflow: 'hidden'\n  }\n};\nvar Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {\n  var classes = props.classes,\n    className = props.className,\n    _props$raised = props.raised,\n    raised = _props$raised === void 0 ? false : _props$raised,\n    other = _objectWithoutProperties(props, [\"classes\", \"className\", \"raised\"]);\n  return /*#__PURE__*/React.createElement(Paper, _extends({\n    className: clsx(classes.root, className),\n    elevation: raised ? 8 : 1,\n    ref: ref\n  }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n  name: 'MuiCard'\n})(Card);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n  /* Styles applied to the root element. */\n  root: {\n    padding: 16,\n    '&:last-child': {\n      paddingBottom: 24\n    }\n  }\n};\nvar CardContent = /*#__PURE__*/React.forwardRef(function CardContent(props, ref) {\n  var classes = props.classes,\n    className = props.className,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\"]);\n  return /*#__PURE__*/React.createElement(Component, _extends({\n    className: clsx(classes.root, className),\n    ref: ref\n  }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n  name: 'MuiCardContent'\n})(CardContent);","import React, {forwardRef} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n  Card,\n  CardContent,\n  Typography as MuiTypography,\n  Grid as MuiGrid,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport Subtitle from \"../shared/subtitle\";\nimport cx from \"classnames\";\n\nconst Typography = styled(MuiTypography)(spacing);\nconst Grid = styled(MuiGrid)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  card: {\n    maxHeight: 80,\n    overflow: \"hidden\",\n    opacity: 0.5,\n    cursor: \"pointer\",\n    boxShadow:\n      \"0px 0px 0px 0px rgba(0,0,0,0.2), 0px 0px 0px 0px rgba(0,0,0,0.14), 0px 0px 0px 0px rgba(0,0,0,0.12)\",\n\n    \"&:hover\": {\n      autoAlpha: 1,\n      boxShadow:\n        '0px 0px 42px -10px rgba(122,122,122,0.65) !important',\n      opacity: '1 !important',\n    },\n\n    [theme.breakpoints.down('xs')]: {\n      maxHeight: 85,\n    },\n  },\n  openCard: {\n    autoAlpha: 1,\n    boxShadow:\n        '0px 0px 42px -10px rgba(122,122,122,0.65) !important',\n    opacity: '1 !important',\n    maxHeight: 320,\n  },\n  openCardMobile: {\n    opacity: '1 !important',\n  },\n  content: {\n    height: \"100%\",\n    display: \"flex\",\n  },\n  icon: {\n    color: theme.colors.orange,\n    width: theme.spacing(5),\n    height: theme.spacing(5),\n    flexShrink: 0,\n  },\n  title: {\n    fontWeight: 600,\n    fontSize: '1.2rem',\n    lineHeight: 1.3,\n\n    [theme.breakpoints.down('sm')]: {\n      fontSize: '1.1rem',\n    },\n  },\n  titleContainer: {\n    [theme.breakpoints.down('xs')]: {\n      marginBottom: 25,\n    },\n  },\n  subtitle: {\n    marginBottom: 0,\n    marginLeft: 56,\n    [theme.breakpoints.down('sm')]: {\n      fontSize: '0.9rem',\n    },\n  }\n}));\n\nconst BenefitCard = forwardRef(({ open, onClick, title, icon: Icon, description, isMobile }, ref) => {\n  const classes = useStyles();\n\n  return (\n      <Card ref={ref} elevation={5}\n            className={cx(classes.card,\n              {\n                [classes.openCard]: open,\n                [classes.openCardMobile]: isMobile,\n              })}\n            onClick={onClick}\n      >\n      <CardContent className={classes.content}>\n        <div className={classes.descriptionWrapper}>\n          <Grid container alignItems=\"center\" mb={2.5} wrap=\"nowrap\" className={classes.titleContainer}>\n            <Icon className={classes.icon} />\n            <Typography variant={'h6'} className={classes.title} ml={2}>\n              {title}\n            </Typography>\n          </Grid>\n          <Subtitle align=\"left\" mb={4} ml={2} className={classes.subtitle}>\n            {description}\n          </Subtitle>\n        </div>\n      </CardContent>\n    </Card>\n  );\n});\n\nBenefitCard.propTypes = {\n  title: PropTypes.string.isRequired,\n  // icon: PropTypes.node.isRequired,\n  description: PropTypes.string.isRequired,\n};\n\nexport default BenefitCard;\n","export default __webpack_public_path__ + \"static/Slate_iPhone-e2c1062fa31ddc849c31fbc391fc4d04.png\";","export const BENEFITS_DURATION = 1500;\nexport const FEATURES_DURATION = 3500;\n","import React, { useRef, useCallback, useState, useEffect } from \"react\";\nimport { gsap } from \"gsap\";\nimport {\n  Typography as MuiTypography,\n  Grid as MuiGrid, useMediaQuery,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport Section from \"../shared/section\";\nimport Subtitle from \"../shared/subtitle\";\nimport ResponsiveImg from \"../shared/responsive-img\";\nimport BenefitCard from \"./benefit-card\";\nimport IPhoneImg from \"../../assets/images/benefits/Slate_iPhone.png\";\nimport { BENEFITS_DURATION } from \"../../utils/durations\";\nimport Icon1 from \"../../assets/svgs/benefits/Icon1.svg\";\nimport Icon2 from \"../../assets/svgs/benefits/Icon2.svg\";\nimport Icon3 from \"../../assets/svgs/benefits/Icon3.svg\";\nimport cx from \"classnames\";\nimport theme from \"../../utils/theme\";\nimport { changeClickScrollHeight } from \"../../utils/helpers\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport { IMAGES } from \"../../constants/images\";\n\nconst Typography = styled(MuiTypography)(spacing);\nconst Grid = styled(MuiGrid)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  imagesWrapper: {\n    position: \"relative\",\n    height: 720,\n    width: 390,\n    maxWidth: 390,\n\n    [theme.breakpoints.down('sm')]: {\n      height: 554.4,\n      width: 300,\n      display: 'none',\n    },\n  },\n  slateImgWrapper: {\n    position: \"absolute\",\n    zIndex: -1,\n    top: \"5.8%\",\n    left: \"15%\",\n    width: \"74%\",\n    height: \"86%\",\n    overflow: \"hidden\",\n    backgroundColor: 'black'\n  },\n  phoneImage: {\n    height: \"100%\",\n    width: \"100%\",\n  },\n  contentWrapper: {\n    [theme.breakpoints.down(400)]: {\n      paddingTop: 20,\n    },\n    [theme.breakpoints.down(380)]: {\n      paddingTop: 0,\n    },\n  },\n  mainContainer: {\n    paddingTop: 30,\n    margin: '0 auto',\n    maxWidth: 960,\n\n    [theme.breakpoints.down('sm')]: {\n      display: 'none',\n      paddingTop: 0,\n    },\n  },\n  mainContainerMobile: {\n    paddingTop: 100,\n    margin: '0 auto',\n    maxWidth: 960,\n  },\n  title: {\n    [theme.breakpoints.down('sm')]: {\n      fontSize: '1.9rem',\n    },\n  },\n  titleMobile: {\n    textAlign: 'center',\n    marginLeft: 0,\n\n    [theme.breakpoints.down('sm')]: {\n      fontSize: '1.9rem',\n    },\n  },\n  subtitle: {\n    marginBottom: '3vh'\n  },\n  subtitleMobile: {\n    marginBottom: '3vh',\n    maxWidth: '100%',\n    marginRight: 16,\n    textAlign: 'center',\n  },\n  imageLogo: {\n    position: \"absolute\",\n    top: 65,\n    left: -160,\n    opacity: 0,\n  },\n  imageAvatar: {\n    position: \"absolute\",\n    top: 30,\n    right: -110,\n    opacity: 0,\n  },\n  imageFav: {\n    position: \"absolute\",\n    top: 0,\n    left: -165,\n    opacity: 0,\n  },\n  imageStack: {\n    position: \"absolute\",\n    top: 200,\n    left: -65,\n    opacity: 0,\n  },\n  imageStackFirst: {\n    top: 180,\n  },\n  mainBarImage: {\n    position: \"absolute\",\n    top: 296,\n    left: 8,\n    opacity: 0,\n  },\n  slateImage: {\n    position: \"absolute\",\n    left: 8,\n    opacity: 0,\n  },\n  FABImage: {\n    position: \"absolute\",\n    left: 210,\n    top: 590,\n    opacity: 0,\n    width: '35%',\n  },\n}));\n\nconst CARD_ITEMS = [\n  {\n    icon: Icon1,\n    title: \"Is your data hard to locate?\",\n    description:\n      \"Slate Pages solves the problem of disorganization, different formats, and data not being accessible when you need it. By using our cloud-based platform, your asset information is instantly available and organized.\",\n  },\n  {\n    icon: Icon2,\n    title: \"Are you still tracking with forms, files, and spreadsheets?\",\n    description:\n      \"Outdated techniques are slow, unstructured, and inefficient. Slate pages has an easy to use interface, customizable templates for data capture, and a powerful search engine, giving you the tools you need to stay on top of asset management.\",\n  },\n  {\n    icon: Icon3,\n    title: \"Do you want to extend the lifespan of your equipment?\",\n    description:\n      \"Effective maintenance and inspections will extend the longevity of your assets. By managing and tracking in Slate Pages, you will know what was inspected, by whom, and when.\",\n  },\n];\n\nconst initialShowCards = [false, false, false]\n\nconst HomeBenefitsSection = ({imagesFormat}) => {\n  const sectionRef = useRef(null);\n  const phoneRef = useRef(null);\n  const imagesRefs = useRef([]);\n  const itemsRefs = useRef([]);\n  const classes = useStyles();\n  const imageMain = IMAGES.home.benefits.animation[imagesFormat];\n\n  const imagesForAnimation = [\n    {\n      src: imageMain.logo.src,\n      srcSet: imageMain.logo.srcSet,\n      alt:'Logo',\n      className: classes.imageLogo\n    },\n    {\n      src: imageMain.avatar.src,\n      srcSet: imageMain.avatar.srcSet,\n      alt:'Avatar',\n      className: classes.imageAvatar\n    },\n    {\n      src: imageMain.fav1.src,\n      srcSet: imageMain.fav1.srcSet,\n      alt:'Fav 1',\n      className: classes.imageFav\n    },\n    {\n      src: imageMain.fav2.src,\n      srcSet: imageMain.fav2.srcSet,\n      alt:'Fav 2',\n      className: classes.imageFav\n    },\n    {\n      src: imageMain.stack1.src,\n      srcSet: imageMain.stack1.srcSet,\n      alt:'Stack 1',\n      className: cx(classes.imageStack, classes.imageStackFirst)\n    },\n    {\n      src: imageMain.stack2.src,\n      srcSet: imageMain.stack2.srcSet,\n      alt:'Stack 2',\n      className: classes.imageStack\n    },\n    {\n      src: imageMain.stack3.src,\n      srcSet: imageMain.stack3.srcSet,\n      alt:'Stack 3',\n      className: classes.imageStack\n    },\n    {\n      src: imageMain.allStacks.src,\n      srcSet: imageMain.allStacks.srcSet,\n      alt:'All Stacks',\n      className: classes.imageStack\n    },\n    {\n      src: imageMain.mainBar.src,\n      srcSet: imageMain.mainBar.srcSet,\n      alt:'Main Bar',\n      className: classes.mainBarImage\n    },\n    {\n      src: imageMain.slate1.src,\n      srcSet: imageMain.slate1.srcSet,\n      alt:'Slate 1',\n      className: classes.slateImage\n    },\n    {\n      src: imageMain.slate2.src,\n      srcSet: imageMain.slate2.srcSet,\n      alt:'Slate 2',\n      className: classes.slateImage\n    },\n    {\n      src: imageMain.slate3.src,\n      srcSet: imageMain.slate3.srcSet,\n      alt:'Slate 3',\n      className: classes.slateImage\n    },\n    {\n      src: imageMain.slate4.src,\n      srcSet: imageMain.slate4.srcSet,\n      alt:'Slate 4',\n      className: classes.slateImage\n    },\n    {\n      src: imageMain.FAB.src,\n      srcSet: imageMain.FAB.srcSet,\n      alt:'FAB',\n      className: classes.FABImage\n    },\n  ]\n  const isSmScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n  const [open, setOpen] = useState(initialShowCards);\n\n  const openCard = (index) => {\n    const newOpen = [...initialShowCards]\n    newOpen[index] = true\n    isSmScreen && setOpen(newOpen)\n  }\n\n  const closeCard = () => {\n    setOpen(initialShowCards)\n  }\n\n  const [sectionPositionY, setSectionPositionY] = useState(0);\n\n  const setSectionRef = useCallback((node) => {\n\n    setSectionPositionY(changeClickScrollHeight(document.getElementById('container')));\n\n    sectionRef.current = node;\n    if (node) {\n      const expand = {\n        autoAlpha: 1,\n        maxHeight: 320,\n        boxShadow:\n          '0px 0px 42px -10px rgba(122,122,122,0.65)'\n      };\n      const collapse = {\n        autoAlpha: 0.5,\n        maxHeight: 80,\n        boxShadow:\n          \"0px 0px 0px 0px rgba(0,0,0,0.2), 0px 0px 0px 0px rgba(0,0,0,0.14), 0px 0px 0px 0px rgba(0,0,0,0.12)\",\n        delay: 2,\n      };\n\n      gsap\n        .timeline({\n          defaults: { duration: 2 },\n          scrollTrigger: {\n            trigger: node,\n            pin: true,\n            scrub: 0.3,\n            start: \"345px 50%\",\n            end: `+=${BENEFITS_DURATION}`,\n          },\n        })\n        // --- item 1 ---\n        .add(\"start\")\n        .to(itemsRefs.current[0], expand)\n        .to(itemsRefs.current[0], collapse)\n        // --- item 2 ---\n        .to(itemsRefs.current[1], expand)\n        .to(itemsRefs.current[1], collapse)\n        // --- item 3 ---\n        .to(itemsRefs.current[2], expand)\n        .to(itemsRefs.current[2], collapse);\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setItemsRef = useCallback((node, index) => {\n    itemsRefs.current[index] = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setImagesRefs = useCallback((node, index) => {\n    imagesRefs.current[index] = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setPhoneRef = useCallback(node => {\n    phoneRef.current = node;\n    gsap\n      .timeline({\n        defaults: { duration: 2 },\n        scrollTrigger: {\n          trigger: node,\n          scrub: 0.3,\n          start: \"20% bottom\",\n          end: \"bottom 70%\",\n        },\n      })\n      // --- item 1 ---\n      .add(\"start\")\n      // --- Logo ---\n      .to(imagesRefs.current[0], { autoAlpha: 0, scale: 1, left: -160}, \"start\")\n      .to(imagesRefs.current[0], { autoAlpha: 1, duration: 5, scale: .4, left: -45 }, \"start\")\n      // --- Avatar ---\n      .to(imagesRefs.current[1], { autoAlpha: 0, scale: .6, right: -110 }, \"start\")\n      .to(imagesRefs.current[1], { autoAlpha: 1, duration: 5, scale: .25, right: 10 }, \"start\")\n\n      // --- Favorite 1 ---\n      .to(imagesRefs.current[2], { autoAlpha: 0, scale: .6, left: -265 }, \"start+=2\")\n      .to(imagesRefs.current[2], { autoAlpha: 1, duration: 5, scale: .3, left: -65 }, \"start+=3\")\n      // --- Favorite 2 ---\n      .to(imagesRefs.current[3], { autoAlpha: 0, scale: .6, left: 65 }, \"start+=3\")\n      .to(imagesRefs.current[3], { autoAlpha: 1, duration: 5, scale: .3, left: 65 }, \"start+=4\")\n\n      // --- Stack 1 ---\n      .to(imagesRefs.current[4], { autoAlpha: 0, scale: .6, left: -111, top: 230, }, \"start+=5\")\n      .to(imagesRefs.current[4], { autoAlpha: 1, duration: 5, scale: .22, left: -11, top: 180, }, \"start+=6\")\n      // --- Stack 2 ---\n      .to(imagesRefs.current[5], { autoAlpha: 0, scale: .6, left: 5, top: 250, }, \"start+=6\")\n      .to(imagesRefs.current[5], { autoAlpha: 1, duration: 5, scale: .22, left: 67, top: 200, }, \"start+=7\")\n      // --- Stack 3 ---\n      .to(imagesRefs.current[6], { autoAlpha: 0, scale: .6, left: 125, top: 250, }, \"start+=7\")\n      .to(imagesRefs.current[6], { autoAlpha: 1, duration: 5, scale: .22, left: 125, top: 200, }, \"start+=8\")\n      // --- Stack 4 ---\n      .to(imagesRefs.current[7], { autoAlpha: 0, scale: .6, left: 335, top: 250, }, \"start+=8\")\n      .to(imagesRefs.current[7], { autoAlpha: 1, duration: 5, scale: .22, left: 235, top: 200, }, \"start+=9\")\n\n      // --- Main Bar ---\n      .to(imagesRefs.current[8], { autoAlpha: 0, scale: .755 }, \"start+=11\")\n      .to(imagesRefs.current[8], { autoAlpha: 1, duration: 5, scale: .755, }, \"start+=14\")\n\n      // --- Slate 1 ---\n      .to(imagesRefs.current[9], { autoAlpha: 0, scale: 1.75, top: 450, }, \"start+=13\")\n      .to(imagesRefs.current[9], { autoAlpha: 1, duration: 5, scale: .65, top: 385, }, \"start+=16\")\n      // --- Slate 2 ---\n      .to(imagesRefs.current[10], { autoAlpha: 0, scale: 1.75, top: 500, }, \"start+=15\")\n      .to(imagesRefs.current[10], { autoAlpha: 1, duration: 5, scale: .65, top: 445, }, \"start+=18\")\n      // --- Slate 3 ---\n      .to(imagesRefs.current[11], { autoAlpha: 0, scale: 1.75, top: 550, }, \"start+=17\")\n      .to(imagesRefs.current[11], { autoAlpha: 1, duration: 5, scale: .65, top: 505, }, \"start+=20\")\n      // --- Slate 4 ---\n      .to(imagesRefs.current[12], { autoAlpha: 0, scale: 1.75, top: 600, }, \"start+=19\")\n      .to(imagesRefs.current[12], { autoAlpha: 1, duration: 5, scale: .65, top: 565, }, \"start+=22\")\n      // --- item 3 ---\n      .to(imagesRefs.current[13], { autoAlpha: 0 }, \"start+=25\")\n      .to(imagesRefs.current[13], { autoAlpha: 1, duration: 5 }, \"start+=28\")\n\n  }, []);\n\n  const onScroll = (index) => {\n    const multiplier = BENEFITS_DURATION / CARD_ITEMS.length;\n    const openOneItem = (BENEFITS_DURATION / CARD_ITEMS.length) / 2;\n    const windowHeight = document.documentElement.clientHeight;\n    // ------ sectionRef.current height (820px) + margin-top (100px)--------\n    const containerHeight = 920\n\n    const top = sectionPositionY - windowHeight / 2 + containerHeight / 2 + (index) * multiplier + openOneItem\n\n    window && window.scrollTo(\n      {\n        top,\n        behavior: \"smooth\",\n      },\n    )\n  };\n\n\n  useEffect(() => {\n    const changeScrollHeight = () => {\n      setSectionPositionY(changeClickScrollHeight(document.getElementById('container')))\n    }\n    window.addEventListener('resize', () => changeScrollHeight())\n    return window.removeEventListener('resize', () => changeScrollHeight())\n  }, []);\n\n  const TitleRender = () => <>\n      <Typography variant=\"h4\" ml={2} className={isSmScreen ? classes.titleMobile : classes.title}>\n        Slate Pages makes\n      </Typography>\n      <Typography variant=\"h4\" mb={1} ml={2} className={isSmScreen ? classes.titleMobile : classes.title}>\n        asset tracking easy.\n      </Typography>\n      <Subtitle align=\"left\" mb={4} ml={2} className={isSmScreen ? classes.subtitleMobile : classes.subtitle}>\n        Ditch the clipboard & delete the spreadsheet! The Slate Pages asset\n        tracking app is the only solution you’ll need to record, organize,\n        and store your asset’s information.\n      </Subtitle>\n    </>\n\n  return (\n    <>\n      <div className={classes.mainContainer} id={'container'}>\n        <Section\n          container\n          alignItems=\"flex-start\"\n          justify=\"space-between\"\n          ref={setSectionRef}\n          className={classes.mainContainer}\n        >\n          <Grid item xs={12} sm={6} className={classes.imagesWrapper}>\n            {imagesForAnimation.map(({src, srcSet, alt, className}, index) => (\n              <ResponsiveImg\n                key={alt}\n                src={src}\n                srcSet={`${srcSet} 2x`}\n                alt={alt}\n                className={className}\n                ref={(node) => {\n                  setImagesRefs(node, index);\n                }}\n              />\n            ))}\n            <ResponsiveImg\n              src={IPhoneImg}\n              alt=\"Slate Pages\"\n              className={classes.phoneImage}\n              ref={setPhoneRef}\n            />\n          </Grid>\n          <Grid item sm={12} md={6}>\n            <div className={classes.contentWrapper}>\n              <TitleRender/>\n              {CARD_ITEMS.map(({ title,  ...rest }, index) => (\n                <Grid key={title} mb={2.5}>\n                  <BenefitCard\n                    onClick={() => onScroll(index)}\n                    title={title}\n                    {...rest}\n                    ref={(node) => {\n                      setItemsRef(node, index);\n                    }}\n                  />\n                </Grid>\n              ))}\n            </div>\n          </Grid>\n        </Section>\n      </div>\n\n      {\n        isSmScreen && <div>\n          <Section\n            container\n            alignItems=\"flex-start\"\n            justify=\"space-between\"\n            className={classes.mainContainerMobile}\n          >\n            <Grid item sm={12} md={6}>\n              <div className={classes.contentWrapper}>\n                <TitleRender/>\n                <ClickAwayListener onClickAway={closeCard}>\n                  <div>\n                    {CARD_ITEMS.map(({ title, ...rest }, index) => (\n                      <Grid key={title} mb={2.5}>\n                        <BenefitCard\n                            onClick={() => openCard(index)}\n                            open={open[index]}\n                            isMobile={true}\n                            title={title}\n                            {...rest}\n                        />\n                      </Grid>\n                    ))}\n                  </div>\n                </ClickAwayListener>\n              </div>\n            </Grid>\n          </Section>\n        </div>\n      }\n\n      </>\n  );\n};\n\nexport default HomeBenefitsSection;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport { chainPropTypes } from '@material-ui/utils';\nexport var styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'block',\n    backgroundSize: 'cover',\n    backgroundRepeat: 'no-repeat',\n    backgroundPosition: 'center'\n  },\n  /* Styles applied to the root element if `component=\"video, audio, picture, iframe, or img\"`. */\n  media: {\n    width: '100%'\n  },\n  /* Styles applied to the root element if `component=\"picture or img\"`. */\n  img: {\n    // ⚠️ object-fit is not supported by IE 11.\n    objectFit: 'cover'\n  }\n};\nvar MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];\nvar CardMedia = /*#__PURE__*/React.forwardRef(function CardMedia(props, ref) {\n  var children = props.children,\n    classes = props.classes,\n    className = props.className,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    image = props.image,\n    src = props.src,\n    style = props.style,\n    other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"image\", \"src\", \"style\"]);\n  var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1;\n  var composedStyle = !isMediaComponent && image ? _extends({\n    backgroundImage: \"url(\\\"\".concat(image, \"\\\")\")\n  }, style) : style;\n  return /*#__PURE__*/React.createElement(Component, _extends({\n    className: clsx(classes.root, className, isMediaComponent && classes.media, \"picture img\".indexOf(Component) !== -1 && classes.img),\n    ref: ref,\n    style: composedStyle,\n    src: isMediaComponent ? image || src : undefined\n  }, other), children);\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n  name: 'MuiCardMedia'\n})(CardMedia);","import React, { useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { gsap } from \"gsap\";\nimport {\n  Card,\n  CardMedia,\n  CardContent,\n  Typography as MuiTypography, Link as MuiLink,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport CustomButton from \"../shared/custom-button\";\nimport { Link } from \"gatsby\";\n\nconst Typography = styled(MuiTypography)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  cardMedia: {\n    position: \"relative\",\n    height: 300,\n\n    [theme.breakpoints.down('xs')]: {\n      height: 200,\n    },\n  },\n  cardGradient: {\n    position: \"absolute\",\n    top: 0,\n    bottom: 0,\n    left: 0,\n    right: 0,\n    background: `linear-gradient(to bottom, transparent, rgba(0,0,0,0.5))`,\n  },\n  cardContent: {\n    height: \"100%\",\n    display: \"flex\",\n    alignItems: \"flex-end\",\n  },\n  cardContentBg: {\n    position: \"absolute\",\n    top: 0,\n    left: 0,\n    width: \"100%\",\n    height: \"100%\",\n    backgroundColor: theme.palette.primary.main,\n    opacity: 0,\n  },\n  descriptionWrapper: {\n    position: \"absolute\",\n    width: \"100%\",\n    height: \"100%\",\n    left: 0,\n    top: \"70%\",\n    display: \"flex\",\n    flexDirection: \"column\",\n    justifyContent: \"space-between\",\n    alignItems: \"center\",\n    padding: theme.spacing(3),\n  },\n  title: {\n    fontWeight: 600,\n    letterSpacing: 1.5,\n    margin: 0,\n  },\n  description: {\n    fontSize: 14,\n  },\n}));\n\nconst DURATION = 0.5;\n\nconst IndustryCard = ({ title, image, description, href }) => {\n  const cardRef = useRef(null);\n  const contentBgRef = useRef(null);\n  const descriptionRef = useRef(null);\n  const classes = useStyles();\n\n  const animateIn = () => {\n    gsap.to(cardRef.current, { duration: DURATION, y: -20 });\n    gsap.to(contentBgRef.current, { duration: DURATION, opacity: 0.8 });\n    gsap.to(descriptionRef.current, { duration: DURATION, top: \"0%\" });\n  };\n\n  const animateOut = () => {\n    gsap.to(cardRef.current, { duration: DURATION, y: 0 });\n    gsap.to(contentBgRef.current, { duration: DURATION, opacity: 0 });\n    gsap.to(descriptionRef.current, { duration: DURATION, top: \"70%\" });\n  };\n\n  return (\n    <Card\n      ref={cardRef}\n      elevation={5}\n      onMouseEnter={animateIn}\n      onMouseLeave={animateOut}\n    >\n      <CardMedia className={classes.cardMedia} image={image}>\n        <div className={classes.cardGradient} />\n        <CardContent className={classes.cardContent}>\n          <div ref={contentBgRef} className={classes.cardContentBg} />\n          <div ref={descriptionRef} className={classes.descriptionWrapper}>\n            <Typography\n              align=\"center\"\n              color=\"secondary\"\n              className={classes.title}\n              mx={2}\n            >\n              {title}\n            </Typography>\n            <Typography\n              align=\"center\"\n              color=\"secondary\"\n              className={classes.description}\n            >\n              {description}\n            </Typography>\n            <MuiLink\n              component={Link}\n              className={classes.buttonDemo}\n              color=\"secondary\"\n              underline=\"none\"\n              to={href}\n            >\n              <CustomButton variant=\"contained\" color=\"secondary\">\n                Learn More\n              </CustomButton>\n            </MuiLink>\n          </div>\n        </CardContent>\n      </CardMedia>\n    </Card>\n  );\n};\n\nIndustryCard.propTypes = {\n  title: PropTypes.string.isRequired,\n  image: PropTypes.string.isRequired,\n  description: PropTypes.string.isRequired,\n};\n\nexport default IndustryCard;\n","import React, { useRef, useCallback } from \"react\";\nimport { gsap } from \"gsap\";\nimport {\n  Typography as MuiTypography,\n  Grid as MuiGrid, Link as MuiLink,\n} from \"@material-ui/core\";\nimport { makeStyles, styled } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport Section from \"../shared/section\";\nimport Subtitle from \"../shared/subtitle\";\nimport IndustryCard from \"./industry-card\";\nimport CustomButton from \"../shared/custom-button\";\nimport { BENEFITS_DURATION } from \"../../utils/durations\";\nimport { LINKS } from \"../../constants/links\";\nimport { Link } from \"gatsby\";\nimport { IMAGES } from \"../../constants/images\";\n\nconst Typography = styled(MuiTypography)(spacing);\nconst Grid = styled(MuiGrid)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  title: {\n    [theme.breakpoints.down('sm')]: {\n      fontSize: '1.9rem',\n    },\n  },\n  cardsContainer:{\n    height: 'auto'\n  },\n  innerClassName: {\n    borderBottom: '1px solid #8080804d',\n  },\n}));\n\n\nconst HomeIndustriesSection = ({imagesFormat}) => {\n  const sectionRef = useRef(null);\n  const cardsRefs = useRef([]);\n  const classes = useStyles();\n  const imageMain = IMAGES.home.industries[imagesFormat];\n  const CARD_ITEMS = [\n    {\n      image: imageMain.image_1.src,\n      title: \"Maintenance Tracking\",\n      description:\n        \"Increase the life expectancy of your equipment with effective maintenance tracking\",\n      href: LINKS.equipmentMaintenance,\n    },\n    {\n      image: imageMain.image_2.src,\n      title: \"Asset Inventory Monitoring\",\n      description:\n        \"Access the condition, location, & lifespan of your assets in an instant\",\n      href: LINKS.inventoryManagement,\n    },\n    {\n      image: imageMain.image_3.src,\n      title: \"Routine Inspections\",\n      description:\n        \"Effectively track equipment inspections & routine maintenance\",\n      href: LINKS.routineInspections,\n    },\n    {\n      image: imageMain.image_4.src,\n      title: \"OEM Product Information\",\n      description:\n        \"Access & view asset details, manuals, warranty information & more\",\n      href: LINKS.manufacturingOem,\n    },\n  ];\n\n  const setSectionRef = useCallback((node) => {\n    sectionRef.current = node;\n    if (node) {\n      gsap.to(node, {\n        scrollTrigger: {\n          trigger: node,\n          start: `50%+=${BENEFITS_DURATION} top`,\n          end: `90%+=${BENEFITS_DURATION} top`,\n          scrub: 0.5,\n          // markers: true,\n          id: \"industry-container\",\n        },\n        autoAlpha: 0,\n      });\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setCardsRef = useCallback((node, index) => {\n    cardsRefs.current[index] = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  return (\n    <Section\n      ref={setSectionRef}\n      pt={8}\n      pb={15}\n      sectionClassName={classes.section}\n      innerClassName={classes.innerClassName}\n    >\n      <Typography variant=\"h4\" align=\"center\" className={classes.title}>\n        Making a difference\n      </Typography>\n      <Typography variant=\"h4\" align=\"center\" mb={1} className={classes.title}>\n        in your industry\n      </Typography>\n      <Subtitle mb={8}>\n        The Slate Pages asset tracking system is flexible, improving your\n        tracking procedures no matter the industry. Trusted by firefighters,\n        mechanical, electrical and plumbing engineers, and more.\n      </Subtitle>\n\n      <Grid container spacing={4} mb={8}\n            className={classes.cardsContainer}\n            justify={'center'}\n      >\n        {CARD_ITEMS.map(({ title, ...rest }, index) => (\n          <Grid\n            item\n            xs={12}\n            sm={6}\n            md={4}\n            lg={3}\n            key={title}\n            ref={(node) => {\n              setCardsRef(node, index);\n            }}\n          >\n            <IndustryCard title={title} {...rest} />\n          </Grid>\n        ))}\n      </Grid>\n\n      <Grid container justify=\"center\">\n        <MuiLink\n          component={Link}\n          color=\"secondary\"\n          underline=\"none\"\n          to={LINKS.solutions}\n        >\n          <CustomButton variant=\"contained\" color=\"primary\">\n            Discover your solution\n          </CustomButton>\n        </MuiLink>\n      </Grid>\n    </Section>\n  );\n};\n\nexport default HomeIndustriesSection;\n","import React, { forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n  Card as MuiCard,\n  CardContent,\n  Typography as MuiTypography,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\n\nconst Typography = styled(MuiTypography)(spacing);\nconst Card = styled(MuiCard)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  card: {\n    position: \"relative\",\n    height: \"100%\",\n    minHeight: 197,\n    backgroundColor: \"transparent\",\n    borderRadius: theme.shape.borderRadius,\n    cursor: \"pointer\",\n  },\n  bg: {\n    position: \"absolute\",\n    top: 0,\n    left: 0,\n    width: \"100%\",\n    height: \"100%\",\n    background: `linear-gradient(to bottom, ${theme.colors.orange}, ${theme.colors.orangeGradientDark})`,\n    opacity: 0,\n  },\n  cardContent: {\n    position: \"absolute\",\n    opacity: theme.constants.opacity,\n  },\n  icon: {\n    width: theme.spacing(5),\n    height: theme.spacing(5),\n  },\n  title: {\n    fontWeight: 500,\n    fontSize: '1rem',\n    fontFamily: \"'Montserrat', sans-serif\",\n\n    [theme.breakpoints.down('sm')]: {\n      fontSize: \"1rem\",\n    },\n  },\n  description: {\n    fontSize: '.85rem',\n    fontWeight: 300,\n    letterSpacing: 0.5,\n\n    [theme.breakpoints.down('sm')]: {\n      fontSize: \"0.875rem\",\n    },\n  },\n}));\n\nconst FeatureCard = forwardRef(\n  ({ onClick, title, description, icon: Icon, isFirst }, [setBgRef, setContentRef]) => {\n    const classes = useStyles();\n    return (\n      <Card elevation={0} className={classes.card} onClick={onClick}>\n        <div\n          ref={setBgRef}\n          className={classes.bg}\n        />\n        <CardContent\n          ref={setContentRef}\n          className={classes.cardContent}\n        >\n          <Icon className={classes.icon} color=\"secondary\" />\n          <Typography color=\"secondary\" className={classes.title} mb={1}>\n            {title}\n          </Typography>\n          <Typography color=\"secondary\" className={classes.description}>\n            {description}\n          </Typography>\n        </CardContent>\n      </Card>\n    );\n  },\n);\n\nFeatureCard.propTypes = {\n  title: PropTypes.string.isRequired,\n  description: PropTypes.string.isRequired,\n  icon: PropTypes.func.isRequired,\n  isFirst: PropTypes.bool,\n};\n\nFeatureCard.displayName = \"ScrollCard\";\n\nexport default FeatureCard;\n","export default __webpack_public_path__ + \"static/QR_left-107513c420438dca277172525359fa5f.svg\";","export default __webpack_public_path__ + \"static/QR_right-676e114ee97957fe9428ba4ab87d2364.svg\";","import React, { useRef, useCallback, useState } from \"react\";\nimport { gsap } from \"gsap\";\nimport {\n  Grid as MuiGrid,\n  useMediaQuery,\n} from \"@material-ui/core\";\nimport { styled, makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport ResponsiveImg from \"../shared/responsive-img\";\nimport FeatureCard from \"./feature-card\";\nimport { FEATURES_DURATION } from \"../../utils/durations\";\nimport cx from \"classnames\";\nimport QR_left from \"../../assets/images/feature/checkerboard/QR_left.svg\";\nimport QR_right from \"../../assets/images/feature/checkerboard/QR_right.svg\";\nimport { IMAGES } from \"../../constants/images\";\nimport './styles.css';\nconst Grid = styled(MuiGrid)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  itemsWrapper: {\n    minHeight: 416,\n    height: \"100%\",\n    margin: \"0 8px\",\n  },\n  cardWrapper: {\n    width: 976,\n    zIndex: 1,\n    display: \"flex\",\n  },\n  imageWrapper: {\n    position: \"relative\",\n    minHeight: 416,\n    margin: \"0 8px\",\n    backgroundColor: theme.colors.black,\n    borderRadius: 15,\n\n    [theme.breakpoints.down(\"xs\")]: {\n      padding: 0,\n      overflow: \"hidden\",\n      minHeight: 210,\n      maxWidth: `calc(100% - 8px)`,\n    },\n  },\n  image: {\n    position: \"absolute\",\n    transform: \"translateY(-50%)\",\n    top: \"50%\",\n    width: \"100%\",\n    height: \"100%\",\n    opacity: 0,\n    visibility: \"hidden\",\n\n    [theme.breakpoints.down(\"xs\")]: {\n      width: \"100%\",\n    },\n  },\n  firstImage: {\n    opacity: 1,\n    visibility: \"inherit\",\n  },\n  showImage: {\n    display: \"inherit\",\n  },\n  opacity: {\n    opacity: theme.constants.opacity,\n    marginBottom: \"calc( 10px + 5vh)\",\n    zIndex: 1,\n  },\n  container: {\n    position: \"relative\",\n    paddingTop: \"100px !important\",\n    display: \"flex\",\n    flexDirection: \"column\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    width: \"100%\",\n    height: \"100vh\",\n    background: `linear-gradient(${theme.colors.blueGradientDark} 30%, ${theme.colors.blueGradientMedium} 100%)`,\n  },\n  hidden: {\n    display: \"none\",\n  },\n  squaresContainer: {\n    position: \"absolute\",\n    height: \"calc(100vh + 665px)\",\n    width: \"100vw\",\n    top: 0,\n    display: \"flex\",\n    justifyContent: \"space-between\",\n  },\n  hideContent: {\n    position: \"absolute\",\n    height: \"100%\",\n    opacity: 0,\n  },\n  showContent: {\n    opacity: 1,\n  },\n  rightSquares: {\n    height: \"fit-content\",\n    webkitMaskImage: \"-webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)))\",\n    maskImage: \"linear-gradient(to left, #0000001a, rgba(0,0,0,0))\",\n  },\n  leftSquares: {\n    height: \"fit-content\",\n    webkitMaskImage: \"-webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)))\",\n    maskImage: \"linear-gradient(to right, #0000001a, rgba(0,0,0,0))\",\n  },\n}));\n\nconst imagesSquaresList = [\n  QR_left,\n  QR_right,\n];\n\nconst FeaturesItems = ({ sectionPositionY, title, CARD_ITEMS, imagesFormat }) => {\n  const [step, setStep] = useState(\"step1\");\n  const cardsBgRefs = useRef([]);\n  const cardsContentRefs = useRef([]);\n  const imagesSquaresRefs = useRef([]);\n  const containerRef = useRef(null);\n  const itemsContainerRef = useRef(null);\n  const imageContainerRef = useRef(null);\n  const imagesRefs = useRef([]);\n  const classes = useStyles();\n  const theme = useTheme();\n  const isSmScreen = useMediaQuery(theme.breakpoints.down(\"xs\"));\n  const isLgScreen = useMediaQuery(theme.breakpoints.up(\"lg\"));\n  const imageMain = IMAGES.home.features[imagesFormat];\n\n  const setCardsBgRef = useCallback((node, index) => {\n    cardsBgRefs.current[index] = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setCardsContentRef = useCallback((node, index) => {\n    cardsContentRefs.current[index] = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setImagesSquaresRef = useCallback((node) => {\n    imagesSquaresRefs.current = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const setContainerRef = useCallback((node) => {\n    containerRef.current = node;\n    if (!node) {\n      return;\n    }\n\n    // ----- animation can't be removed => hidden container -------\n    if (isLgScreen) {\n      node.classList.remove(classes.hidden);\n    } else {\n      node.classList.add(classes.hidden);\n    }\n\n    const xOffset = !isSmScreen ? 488 : 0;\n\n\n    //----- animation center context---------\n    gsap\n      .timeline({\n        defaults: { duration: 1 },\n        scrollTrigger: {\n          trigger: containerRef.current,\n          pin: true,\n          scrub: 0.5,\n          start: \"center center\",\n          end: `+=${FEATURES_DURATION}`,\n          onLeave: (data) => {\n            containerRef.current.classList.remove('transform');\n            containerRef.current.classList.add('removeTransform');\n          },\n          onEnter: (data) => {\n            containerRef.current.classList.add('transform');\n            containerRef.current.classList.remove('removeTransform');\n          },\n          onLeaveBack: (data) => {\n            containerRef.current.classList.remove('transform');\n          },\n          onEnterBack: (data) => {\n            containerRef.current.classList.add('transform');\n            containerRef.current.classList.remove('removeTransform');\n          },\n        },\n      })\n      .add(\"step1\")\n      // --- item 1 ---\n      .to(cardsBgRefs.current[0], { autoAlpha: 1 }, \"step1\")\n      .to(cardsContentRefs.current[0], { autoAlpha: 1 }, \"step1\")\n      .to(cardsBgRefs.current[0], { autoAlpha: 0 }, \"step1+=2\")\n      .to(cardsContentRefs.current[0], { autoAlpha: 0.5 }, \"step1+=2\")\n      .to(imagesRefs.current[1], { autoAlpha: 0 }, \"step1+=1\")\n      .to(imagesRefs.current[2], { autoAlpha: 0 }, \"step1+=1\")\n      .to(imagesRefs.current[3], { autoAlpha: 0 }, \"step1+=1\")\n      .to(imagesRefs.current[4], { autoAlpha: 0 }, \"step1+=1\")\n      .to(imagesRefs.current[5], { autoAlpha: 0 }, \"step1+=1\")\n      .to(imagesRefs.current[6], { autoAlpha: 0 }, \"step1+=1\")\n      .to(imagesRefs.current[7], { autoAlpha: 0 }, \"step1+=1\")\n      // --- item 2 ---\n      .to(cardsBgRefs.current[1], { autoAlpha: 1 }, \"step1+=2\")\n      .to(cardsContentRefs.current[1], { autoAlpha: 1 }, \"step1+=2\")\n      .to(imagesRefs.current[0], { autoAlpha: 0 }, \"step1+=2\")\n      .to(imagesRefs.current[1], { autoAlpha: 1 }, \"step1+=2\")\n      .to(cardsBgRefs.current[1], { autoAlpha: 0 }, \"step1+=4\")\n      .to(cardsContentRefs.current[1], { autoAlpha: 0.5 }, \"step1+=4\")\n      // --- item 3 ---\n      .to(cardsBgRefs.current[2], { autoAlpha: 1 }, \"step1+=4\")\n      .to(cardsContentRefs.current[2], { autoAlpha: 1 }, \"step1+=4\")\n      .to(imagesRefs.current[1], { autoAlpha: 0 }, \"step1+=4\")\n      .to(imagesRefs.current[2], { autoAlpha: 1 }, \"step1+=4\")\n      .to(cardsBgRefs.current[2], { autoAlpha: 0 }, \"step1+=6\")\n      .to(cardsContentRefs.current[2], { autoAlpha: 0.5 }, \"step1+=6\")\n      // --- item 4 ---\n      .to(cardsBgRefs.current[3], { autoAlpha: 1 }, \"step1+=6\")\n      .to(cardsContentRefs.current[3], { autoAlpha: 1 }, \"step1+=6\")\n      .to(imagesRefs.current[2], { autoAlpha: 0 }, \"step1+=6\")\n      .to(imagesRefs.current[3], { autoAlpha: 1 }, \"step1+=6\")\n      // .to(itemBgRefs.current[3], { autoAlpha: 0 }, \"step1+=8\")\n\n      // --- transition ---\n      .add(\"transition\")\n      .to(itemsContainerRef.current, { x: !isSmScreen ? xOffset : 0, duration: 2 }, \"transition+=1\")\n      .to(imageContainerRef.current, { x: !isSmScreen ? -xOffset : 0, duration: 2 }, \"transition+=1\")\n      .to(imagesRefs.current[3], { autoAlpha: 0, duration: 2 }, \"transition+=1\")\n      .to(imagesRefs.current[4], { autoAlpha: 1, duration: 2 }, \"transition+=1\")\n      .to(cardsBgRefs.current[3], { autoAlpha: 0, duration: 0 }, \"transition+=2\")\n      .to(cardsContentRefs.current[3], { autoAlpha: 0.5, duration: 0 }, \"transition+=2\")\n      .to(cardsBgRefs.current[0], {\n        autoAlpha: 1, duration: 0,\n        onStart: () => {\n          setStep(\"step2\");\n        },\n        onReverseComplete: () => {\n          setStep(\"step1\");\n        },\n      }, \"transition+=2\")\n      .to(cardsContentRefs.current[0], { autoAlpha: 1, duration: 0 }, \"transition+=2\")\n\n      .add(\"step2\")\n      // --- item 1 ---\n      .to(cardsBgRefs.current[0], { autoAlpha: 1 }, \"step2\")\n      .to(cardsContentRefs.current[0], { autoAlpha: 1 }, \"step2\")\n      .to(cardsBgRefs.current[0], { autoAlpha: 0 }, \"step2+=2\")\n      .to(cardsContentRefs.current[0], { autoAlpha: 0.5 }, \"step2+=2\")\n      // --- item 2 ---\n      .to(cardsBgRefs.current[1], { autoAlpha: 1 }, \"step2+=2\")\n      .to(cardsContentRefs.current[1], { autoAlpha: 1 }, \"step2+=2\")\n      .to(imagesRefs.current[4], { autoAlpha: 0 }, \"step2+=2\")\n      .to(imagesRefs.current[5], { autoAlpha: 1 }, \"step2+=2\")\n      .to(cardsBgRefs.current[1], { autoAlpha: 0 }, \"step2+=4\")\n      .to(cardsContentRefs.current[1], { autoAlpha: 0.5 }, \"step2+=4\")\n      // --- item 3 ---\n      .to(cardsBgRefs.current[2], { autoAlpha: 1 }, \"step2+=4\")\n      .to(cardsContentRefs.current[2], { autoAlpha: 1 }, \"step2+=4\")\n      .to(imagesRefs.current[5], { autoAlpha: 0 }, \"step2+=4\")\n      .to(imagesRefs.current[6], { autoAlpha: 1 }, \"step2+=4\")\n      .to(cardsBgRefs.current[2], { autoAlpha: 0 }, \"step2+=6\")\n      .to(cardsContentRefs.current[2], { autoAlpha: 0.5 }, \"step2+=6\")\n      // --- item 4 ---\n      .to(cardsBgRefs.current[3], { autoAlpha: 1 }, \"step2+=6\")\n      .to(cardsContentRefs.current[3], { autoAlpha: 1 }, \"step2+=6\")\n      .to(imagesRefs.current[6], { autoAlpha: 0 }, \"step2+=6\")\n      .to(imagesRefs.current[7], { autoAlpha: 1 }, \"step2+=6\")\n      .to(cardsBgRefs.current[3], { autoAlpha: 0 }, \"step2+=8\")\n      .to(cardsContentRefs.current[3], { autoAlpha: 0.5 }, \"step2+=8\");\n\n    //----- animation Squares images---------\n    gsap\n      .timeline({\n        defaults: { duration: 2 },\n        scrollTrigger: {\n          trigger: node,\n          scrub: 1,\n          start: `top top`,\n          end: `+=${FEATURES_DURATION}`,\n        },\n      })\n      // --- item 1 ---\n      .to(imagesSquaresRefs.current, { top: \"-300px\", duration: 1 });\n\n\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isSmScreen, isLgScreen]);\n\n  const onScroll = (step, index) => {\n    // ---- 370px - height one item ----\n    const top = step.slice(-1) < 2 ? (index + 1) * 370 + sectionPositionY :\n      (index + 6) * 370 + sectionPositionY;\n\n    window && window.scrollTo(\n      {\n        top,\n        behavior: \"smooth\",\n      },\n    );\n  };\n\n  return (\n    <div ref={setContainerRef} className={classes.container}\n    >\n      {title}\n      <div className={classes.cardWrapper}>\n        <Grid\n          ref={itemsContainerRef}\n          item\n          xs={12}\n          sm={6}\n          container\n          className={classes.itemsWrapper}\n        >\n          {CARD_ITEMS.map((cardItem, index) => {\n            const { title, description, icon } = cardItem[step];\n            return (\n              <Grid key={index} item xs={6}>\n                <FeatureCard\n                  title={title}\n                  description={description}\n                  icon={icon}\n                  ref={[\n                    (node) => {\n                      setCardsBgRef(node, index);\n                    },\n                    (node) => {\n                      setCardsContentRef(node, index);\n                    },\n                  ]}\n                  onClick={() => onScroll(step, index)}\n                />\n              </Grid>\n            );\n          })}\n        </Grid>\n        <Grid\n          ref={imageContainerRef}\n          item\n          xs={12}\n          sm={6}\n          className={classes.imageWrapper}\n        >\n          {/* Can't use map due to unexpected render order */}\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[7] = node;\n            }}\n            src={imageMain.map.src}\n            srcSet={`${imageMain.map.srcSet} 2x`}\n            alt=\"Map\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[6] = node;\n            }}\n            src={imageMain.dashboard.src}\n            srcSet={`${imageMain.dashboard.srcSet} 2x`}\n            alt=\"Dashboard\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[5] = node;\n            }}\n            src={imageMain.privacy.src}\n            srcSet={`${imageMain.privacy.srcSet} 2x`}\n            alt=\"Privacy\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[4] = node;\n            }}\n            src={imageMain.search.src}\n            srcSet={`${imageMain.search.srcSet} 2x`}\n            alt=\"Search\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[3] = node;\n            }}\n            src={imageMain.changeTracking.src}\n            srcSet={`${imageMain.changeTracking.srcSet} 2x`}\n\n            alt=\"5_Search\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[2] = node;\n            }}\n            src={imageMain.assetTags.src}\n            srcSet={`${imageMain.assetTags.srcSet} 2x`}\n            alt=\"Asset Tags\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[1] = node;\n            }}\n            src={imageMain.mobileTablet.src}\n            srcSet={`${imageMain.mobileTablet.srcSet} 2x`}\n            alt=\"Mobile Tablet\"\n            className={classes.image}\n          />\n          <ResponsiveImg\n            ref={(node) => {\n              imagesRefs.current[0] = node;\n            }}\n            src={imageMain.customizableFields.src}\n            srcSet={`${imageMain.customizableFields.srcSet} 2x`}\n            alt=\"Customizable Fields\"\n            className={cx(classes.image, classes.firstImage)}\n          />\n        </Grid>\n      </div>\n      <div className={cx(classes.squaresContainer)} ref={setImagesSquaresRef}>\n        {imagesSquaresList.map(((item, index) => (\n          <img\n            key={index}\n            src={item}\n            alt=\"Checkerboard\"\n            className={cx({\n              [classes.leftSquares]: index === 0,\n              [classes.rightSquares]: index === 1,\n            })}\n          />\n        )))}\n      </div>\n    </div>\n  );\n};\n\nexport default FeaturesItems;\n","import React, { useRef } from \"react\";\nimport {\n  Card as MuiCard,\n  CardContent,\n  Grid as MuiGrid,\n  Typography as MuiTypography,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\n\nconst Grid = styled(MuiGrid)(spacing);\nconst Typography = styled(MuiTypography)(spacing);\nconst Card = styled(MuiCard)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  itemsWrapper: {\n    minHeight: 400,\n    padding: '8px 14px !important'\n  },\n  cardWrapper: {\n    zIndex: 1,\n    justifyContent: 'center',\n    width: '100%',\n    marginBottom: 0,\n  },\n  container: {\n    paddingTop: '100px !important',\n    display: \"flex\",\n    flexDirection: \"column\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    width: '100%',\n  },\n  card: {\n    position: \"relative\",\n    height: \"100%\",\n    minHeight: 224,\n    backgroundColor: \"transparent\",\n    borderRadius: theme.shape.borderRadius,\n  },\n  bg: {\n    position: \"absolute\",\n    top: 0,\n    left: 0,\n    width: \"100%\",\n    height: \"100%\",\n    background: `linear-gradient(to bottom, ${theme.colors.orange}, ${theme.colors.orangeGradientDark})`,\n    opacity: 0,\n  },\n  cardContent: {\n    position: \"absolute\",\n    opacity: theme.constants.opacity,\n  },\n  icon: {\n    width: theme.spacing(5),\n    height: theme.spacing(5),\n  },\n  title: {\n    fontWeight: 500,\n    fontSize: 18,\n\n    [theme.breakpoints.down('sm')]: {\n      fontSize: \"1rem\",\n    },\n  },\n  description: {\n    fontSize: 14,\n    fontWeight: 300,\n    letterSpacing: 0.5,\n\n    [theme.breakpoints.down('sm')]: {\n      fontSize: \"0.875rem\",\n    },\n  },\n}));\n\n\nconst FeaturesItemsMobile = ({title, GRID_SPACING, CARD_ITEMS}) => {\n  const itemsContainerRef = useRef(null);\n  const classes = useStyles();\n\n  return (\n    <div className={classes.container}>\n      {title}\n      <Grid container className={classes.cardWrapper} spacing={GRID_SPACING} alignItems=\"center\" mb={8}>\n        <Grid\n          ref={itemsContainerRef}\n          item\n          container\n          className={classes.itemsWrapper}\n        >\n          {CARD_ITEMS.map((cardItem, index) => {\n            const { title, description, icon: Icon } = cardItem;\n            return (\n              <Grid key={index} item xs={6}>\n                <Card elevation={0} className={classes.card}>\n                  <div\n                    className={classes.bg}\n                  />\n                  <CardContent\n                    className={classes.cardContent}\n                  >\n                    <Icon className={classes.icon} color=\"secondary\" />\n                    <Typography color=\"secondary\" className={classes.title} mb={1}>\n                      {title}\n                    </Typography>\n                    <Typography color=\"secondary\" className={classes.description}>\n                      {description}\n                    </Typography>\n                  </CardContent>\n                </Card>\n              </Grid>\n            );\n          })}\n        </Grid>\n      </Grid>\n    </div>\n  );\n};\n\nexport default FeaturesItemsMobile;\n","import React, { useRef, useCallback, useState, useEffect } from \"react\";\nimport { gsap } from \"gsap\";\nimport { Grid as MuiGrid, Link as MuiLink, Typography as MuiTypography, useMediaQuery } from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport Section from \"../shared/section\";\nimport Subtitle from \"../shared/subtitle\";\nimport CustomButton from \"../shared/custom-button\";\nimport FeaturesItems from \"./features-items\";\nimport FeaturesItemsMobile from \"./features-items-mobile\";\nimport theme from \"../../utils/theme\";\nimport Icon1 from \"../../assets/svgs/features/icon1.svg\";\nimport Icon5 from \"../../assets/svgs/features/icon5.svg\";\nimport Icon2 from \"../../assets/svgs/features/icon2.svg\";\nimport Icon6 from \"../../assets/svgs/features/icon6.svg\";\nimport Icon3 from \"../../assets/svgs/features/icon3.svg\";\nimport Icon7 from \"../../assets/svgs/features/icon7.svg\";\nimport Icon4 from \"../../assets/svgs/features/icon4.svg\";\nimport Icon8 from \"../../assets/svgs/features/icon8.svg\";\nimport cx from \"classnames\";\nimport { changeClickScrollHeight } from \"../../utils/helpers\";\nimport { BENEFITS_DURATION } from \"../../utils/durations\";\nimport { LINKS } from \"../../constants/links\";\nimport { Link } from \"gatsby\";\n\nconst Grid = styled(MuiGrid)(spacing);\nconst Typography = styled(MuiTypography)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  section: {\n    padding: 0,\n    background: `linear-gradient(${theme.colors.blueGradientDark} -0%, #011935 100%)`\n  },\n  sectionNode: {\n    width: '100%',\n    maxWidth: '100%',\n    flexDirection: 'column',\n    alignItems: 'center',\n    paddingTop: 0,\n    overflow: 'hidden',\n  },\n  opacity: {\n    opacity: theme.constants.opacity,\n  },\n  opacityTitle: {\n    opacity: theme.constants.opacity,\n    marginBottom: 'calc( 10px + 5vh)',\n    zIndex: 1,\n    margin: '0 30px',\n    width: 'calc(100% - 60px)',\n  },\n  mainTitle: {\n    margin: '0 50px 12px'\n  },\n  footerContainer: {\n    margin: '80px 30px 0',\n    width: 'calc(100% - 60px)',\n    height: 190,\n  }\n}));\n\n\nconst CARD_ITEMS = [\n  {\n    icon: Icon1,\n    title: \"Customizable data fields\",\n    description: \"Format your slate to meet your needs\",\n  },\n  {\n    icon: Icon5,\n    title: \"Powerful search engine\",\n    description:\n      \"All your slate data indexed for quick access, from the app or dashboard\",\n  },\n  {\n    icon: Icon2,\n    title: \"iOS & Android supported\",\n    description:\n      \"Use The Slate Pages cloud-based asset tracking platform on your own mobile or tablet device\",\n  },\n  {\n    icon: Icon6,\n    title: \"Multi-level privacy settings\",\n    description: \"Control who can see and edit your data, field by field\",\n  },\n\n  {\n    icon: Icon3,\n    title: \"Asset tags with QR codes\",\n    description:\n      \"Slates (QR tags) are customizable for your interior or exterior applications\",\n  },\n  {\n    icon: Icon7,\n    title: \"Desktop access with Dashboard\",\n    description:\n      \"Create advanced views of your data for easy filtering and sorting\",\n  },\n  {\n    icon: Icon4,\n    title: \"Change-tracking built right in\",\n    description:\n      \"View historical changes to your slates with user and timestamp detail\",\n  },\n  {\n    icon: Icon8,\n    title: \"Interactive Mapping\",\n    description:\n      \"View locations, get directions, and see all your assets on customizable map views\",\n  },\n];\nconst CARD_ITEMS_WITH_STEPS = [\n  {\n    step1: CARD_ITEMS[0],\n    step2: CARD_ITEMS[1],\n  },\n  {\n    step1: CARD_ITEMS[2],\n    step2: CARD_ITEMS[3],\n  },\n  {\n    step1: CARD_ITEMS[4],\n    step2: CARD_ITEMS[5],\n  },\n  {\n    step1: CARD_ITEMS[6],\n    step2: CARD_ITEMS[7],\n  },\n];\nconst GRID_SPACING = 2;\n\n\nconst HomeFeaturesSection = ({imagesFormat}) => {\n  const sectionRef = useRef(null);\n  const classes = useStyles();\n  const [sectionPositionY, setSectionPositionY] = useState(0);\n  const isLgScreen = useMediaQuery(theme.breakpoints.up(\"lg\"));\n\n  const setSectionRef = useCallback((node) => {\n    if (!node) {\n      return;\n    }\n\n    node && setSectionPositionY(changeClickScrollHeight(node) + BENEFITS_DURATION);\n    sectionRef.current = node;\n    if (node) {\n      gsap.timeline({\n        scrollTrigger: {\n          trigger: node,\n          end: () => `+=${node.offsetHeight}`,\n          scrub: 0.5,\n          id: \"features-container\",\n        },\n        autoAlpha: 0,\n      });\n    }\n  }, []);\n\n  useEffect(() => {\n    const changeScrollHeight = () => {\n      setSectionPositionY(changeClickScrollHeight(sectionRef.current))\n    }\n    window.addEventListener('resize', () => changeScrollHeight())\n    return window.removeEventListener('resize', () => changeScrollHeight())\n  }, []);\n\n  const TitleRender = () => {\n    return <>\n      <Typography variant=\"h4\" align=\"center\"\n                  color=\"secondary\" mb={1}\n                  className={cx(classes.title, {\n                    [classes.mainTitle]: !isLgScreen,\n                  })}\n      >\n        Game-Changing Features\n      </Typography>\n      <Subtitle mb={15} className={classes.opacityTitle} color=\"secondary\">\n        Software built with innovative ways to track & manage your assets.\n      </Subtitle>\n    </>;\n  }\n\n  const FooterRenderer = () => <Grid container alignItems=\"center\"\n                                     direction=\"column\" mt={12}\n                                     className={classes.footerContainer}\n  >\n    <Subtitle color=\"secondary\" className={classes.opacity} mb={4}>\n      Slate Pages has many features that can be tailored to solve specific\n      challenges you face day to day. Let us show you how!\n    </Subtitle>\n    <MuiLink\n      component={Link}\n      className={classes.buttonDemo}\n      color=\"secondary\"\n      underline=\"none\"\n      to={LINKS.contact + '?reason=request_a_demo&subject=Request+a+Slate+Pages+Demo'}\n    >\n      <CustomButton variant=\"contained\" color=\"primary\">\n        Request a Demo\n      </CustomButton>\n    </MuiLink>\n  </Grid>\n\n  return (\n    <Section\n      pt={12}\n      pb={15}\n      sectionClassName={classes.section}\n      innerClassName={classes.sectionNode}\n      ref={setSectionRef}\n      id={'container-feature'}\n    >\n      <FeaturesItems\n        sectionPositionY={sectionPositionY}\n        title={<TitleRender/>}\n        GRID_SPACING={GRID_SPACING}\n        CARD_ITEMS={CARD_ITEMS_WITH_STEPS}\n        imagesFormat={imagesFormat}\n      />\n      {\n        !isLgScreen &&\n        <FeaturesItemsMobile\n          title={<TitleRender/>}\n          GRID_SPACING={GRID_SPACING}\n          CARD_ITEMS={CARD_ITEMS}\n        />\n      }\n      <FooterRenderer/>\n    </Section>\n  );\n};\n\nexport default HomeFeaturesSection;\n","import React, { useCallback, useRef } from \"react\";\nimport {\n  Typography as MuiTypography,\n  Grid as MuiGrid,\n  Card as MuiCard,\n} from \"@material-ui/core\";\nimport { styled, makeStyles } from \"@material-ui/core/styles\";\nimport { spacing } from \"@material-ui/system\";\nimport Icon1 from \"../../assets/images/pricing/Pricing icon 1.svg\"\nimport Icon2 from \"../../assets/images/pricing/Pricing icon 2.svg\"\nimport Icon3 from \"../../assets/images/pricing/Pricing icon 3.svg\"\nimport Section from \"../shared/section\";\nimport Subtitle from \"../shared/subtitle\";\nimport ResponsiveImg from \"../shared/responsive-img\";\nimport Icon from \"@material-ui/core/Icon\";\nimport cx from \"classnames\";\nimport { IMAGES } from \"../../constants/images\";\nconst Typography = styled(MuiTypography)(spacing);\nconst Grid = styled(MuiGrid)(spacing);\nconst Card = styled(MuiCard)(spacing);\n\nconst useStyles = makeStyles((theme) => ({\n  mainImg: {\n    position: \"relative\",\n    bottom: theme.spacing(5),\n    marginLeft: '7%',\n    width: '93%',\n  },\n  moveToTop: {\n    marginTop: -35,\n  },\n  title: {\n    [theme.breakpoints.down('sm')]: {\n      fontSize: '1.9rem',\n    },\n  },\n  subtitle: {\n    maxWidth: 700,\n  },\n  card: {\n    display: \"flex\",\n    flexDirection: \"column\",\n    alignItems: \"center\",\n    height: \"100%\",\n    maxWidth: 355,\n    minWidth: 260,\n    margin: 'auto',\n  },\n  cardIcon: {\n    width: theme.spacing(6),\n    height: theme.spacing(6),\n    marginBottom: 6,\n  },\n  cardIconImg: {\n    height: '100%',\n    maxWidth: '100%',\n  },\n  cardTitle: {\n    color: theme.colors.orange,\n    fontSize: 20,\n    fontWeight: 600,\n  },\n}));\n\nconst items = [\n  {\n    icon: Icon1,\n    line1: \"Starter packs for as\",\n    line2: \"low as $34.99\",\n  },\n  {\n    icon: Icon2,\n    line1: \"All features included\",\n    line2: \"no hidden fees\",\n  },\n  {\n    icon: Icon3,\n    line1: \"Add slates as you\",\n    line2: \"need them\",\n  },\n];\n\nconst HomePricingSection = ({imagesFormat}) => {\n  const cardsRefs = useRef([]);\n  const classes = useStyles();\n  const imageMain = IMAGES.home.pricing[imagesFormat];\n\n\n  const setCardsRef = useCallback((node, index) => {\n    cardsRefs.current[index] = node;\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  return (\n    <Section>\n      <ResponsiveImg\n        src={imageMain.src}\n        srcSet={`${imageMain.srcSet} 2x`}\n        alt=\"Slate Pages\"\n        className={classes.mainImg}\n      />\n      <Typography variant=\"h4\" align=\"center\" className={cx(classes.title, classes.moveToTop)}>\n        Scalable pricing to\n      </Typography>\n      <Typography variant=\"h4\" align=\"center\" mb={1} className={classes.title}>\n        fit your solution.\n      </Typography>\n      <Subtitle mb={8} className={classes.subtitle}>\n        Slate Pages is the most customizable & user-friendly asset tracking solution available,\n        no matter how many assets you have to manage.\n      </Subtitle>\n\n      <Grid container spacing={4} mb={5} justify={'center'}>\n        {items.map(({ line1, line2, icon }, index) => (\n          <Grid\n            key={`${line1}${line2}`}\n            item\n            xs={12}\n            sm={6}\n            md={4}\n            ref={(node) => {\n              setCardsRef(node, index);\n            }}\n          >\n            <Card elevation={0} className={classes.card} p={3}>\n              <Icon classes={{\n                root: classes.cardIcon,\n              }}>\n                <img alt=\"edit\" src={icon} className={classes.cardIconImg}/>\n              </Icon>\n              <Typography\n                align=\"center\"\n                className={classes.cardTitle}\n                mt=\"auto\"\n              >\n                {line1}\n              </Typography>\n              <Typography align=\"center\" className={classes.cardTitle}>\n                {line2}\n              </Typography>\n            </Card>\n          </Grid>\n        ))}\n      </Grid>\n    </Section>\n  );\n};\n\nexport default HomePricingSection;\n","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDBweCIgaGVpZ2h0PSI1MnB4IiB2aWV3Qm94PSIwIDAgNDAgNTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+UHJpY2luZyAxQDN4PC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJIb21lcGFnZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTM1MC4wMDAwMDAsIC01NDU1LjAwMDAwMCkiIGZpbGw9IiMwMDAwMDAiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgIDxnIGlkPSJQcmljaW5nLTEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMC4wMDAwMDAsIDU0MzQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTMzLjM4Mzc2NSwyMS41Mjk3NzUgQzEzNS4wNDQ0MTQsMjAuNjUyNzUzIDEzNy4xNDc5MDMsMjAuODcyMDA4NSAxMzkuMjUxMzkyLDIyLjEzMjcyNzUgQzE0MS4wMjI3NTEsMjMuMjI5MDA1IDE0Mi42ODM0LDI1LjA5MjY3NjYgMTQzLjg0NTg1NSwyNy4yODUyMzE0IEMxNDQuNTEwMTE1LDI4LjQ5MTEzNjYgMTQ1LjAwODMwOSwyOS44MDY2Njk1IDE0NS4yODUwODQsMzEuMTIyMjAyNCBMMTQ1LjI4NTA4NCwzMS4xMjIyMDI0IEwxNTMuOTc1ODE1LDMxLjk0NDQxMDUgQzE1NS41MjU3NTQsMzIuMTA4ODUyMSAxNTYuOTA5NjI5LDMyLjk4NTg3NCAxNTcuNjI5MjQzLDM0LjM1NjIyMDggTDE1Ny42MjkyNDMsMzQuMzU2MjIwOCBMMTY5LjQ3NTIwOCw1Ni4zOTEzOTcgQzE3MC42Mzc2NjIsNTguNTgzOTUxOSAxNjkuODA3MzM4LDYxLjMyNDY0NTQgMTY3LjU5MzEzOSw2Mi40NzU3MzY3IEwxNjcuNTkzMTM5LDYyLjQ3NTczNjcgTDE0OC42MDYzODMsNzIuNDUxODYxMyBDMTQ3Ljg4Njc2OCw3Mi44MzU1NTg0IDE0Ny4xNjcxNTMsNzMgMTQ2LjQ0NzUzOSw3MyBDMTQ0Ljc4Njg4OSw3MyAxNDMuMTgxNTk1LDcyLjEyMjk3ODEgMTQyLjM1MTI3MSw3MC41ODgxODk3IEwxNDIuMzUxMjcxLDcwLjU4ODE4OTcgTDEzMC41NjA2NjEsNDguNjA3ODI3MyBDMTI5Ljc4NTY5Miw0Ny4yMzc0ODA1IDEyOS44NDEwNDcsNDUuNjQ3ODc4MyAxMzAuNTYwNjYxLDQ0LjI3NzUzMTUgTDEzMC41NjA2NjEsNDQuMjc3NTMxNSBMMTM0Ljc2NzYzOSwzNi43MTMyMTczIEMxMzMuODI2NjA1LDM1Ljc4MTM4MTUgMTMyLjk5NjI4LDM0LjYzMDI5MDIgMTMyLjMzMjAyLDMzLjM2OTU3MTEgQzEzMS4xNjk1NjYsMzEuMTIyMjAyNCAxMzAuNTYwNjYxLDI4Ljc2NTIwNTkgMTMwLjYxNjAxNiwyNi42ODIyNzg4IEMxMzAuNzI2NzI2LDI0LjI3MDQ2ODUgMTMxLjY2Nzc2MSwyMi40MDY3OTY5IDEzMy4zODM3NjUsMjEuNTI5Nzc1IFogTTE0MC44NTY2ODYsMzQuMjQ2NTkzMSBMMTQwLjc0NTk3NiwzNC4yNDY1OTMxIEMxNDAuMzAzMTM3LDM0LjI0NjU5MzEgMTM5Ljk3MTAwNywzNC40NjU4NDg2IDEzOS43NDk1ODcsMzQuODQ5NTQ1NiBMMTM5Ljc0OTU4NywzNC44NDk1NDU2IEwxMzkuMTk2MDM3LDM1Ljg5MTAwOTIgQzEzOS44MDQ5NDIsMzYuMjE5ODkyNCAxNDAuNDEzODQ2LDM2LjMyOTUyMDIgMTQwLjg1NjY4NiwzNi4yNzQ3MDYzIEMxNDEuNzk3NzIxLDM2LjA1NTQ1MDggMTQyLjY4MzQsMzYuNzEzMjE3MyAxNDIuODQ5NDY1LDM3LjY0NTA1MzEgQzE0My4wMTU1MywzOC41NzY4ODg5IDE0Mi40MDY2MjYsMzkuNDUzOTEwOCAxNDEuNDY1NTkxLDM5LjYxODM1MjQgQzE0MS4xODg4MTYsMzkuNjczMTY2MyAxNDAuOTEyMDQxLDM5LjY3MzE2NjMgMTQwLjYzNTI2NiwzOS42NzMxNjYzIEMxMzkuNjM4ODc3LDM5LjY3MzE2NjMgMTM4LjU4NzEzMiwzOS4zOTkwOTcgMTM3LjUzNTM4OCwzOC44NTA5NTgyIEwxMzcuNTM1Mzg4LDM4Ljg1MDk1ODIgTDEzMy42MDUxODUsNDUuOTc2NzYxNSBDMTMzLjQzOTEyLDQ2LjMwNTY0NDcgMTMzLjQzOTEyLDQ2LjY4OTM0MTggMTMzLjYwNTE4NSw0Ny4wMTgyMjUxIEwxMzMuNjA1MTg1LDQ3LjAxODIyNTEgTDE0NS40NTExNDksNjkuMDUzNDAxMyBDMTQ1LjcyNzkyNCw2OS41NDY3MjYxIDE0Ni4zOTIxODQsNjkuNzY1OTgxNiAxNDYuOTQ1NzMzLDY5LjQ5MTkxMjIgTDE0Ni45NDU3MzMsNjkuNDkxOTEyMiBMMTY1LjkzMjQ4OSw1OS41MTU3ODc3IEwxNjYuMDQ1MTU2LDU5LjQ0MDQzODYgQzE2Ni41MDc1MDMsNTkuMDkzNDk3MSAxNjYuNjMyMzM0LDU4LjQ4OTk4NTIgMTY2LjM3NTMyOSw1Ny45ODA5OTkzIEwxNjYuMzc1MzI5LDU3Ljk4MDk5OTMgTDE1NC41MjkzNjUsMzYuMDAwNjM2OSBDMTU0LjM2MzMsMzUuNjcxNzUzNyAxNTQuMDMxMTcsMzUuNDUyNDk4MiAxNTMuNjQzNjg1LDM1LjM5NzY4NDQgTDE1My42NDM2ODUsMzUuMzk3Njg0NCBMMTQwLjg1NjY4NiwzNC4yNDY1OTMxIEwxNDAuODU2Njg2LDM0LjI0NjU5MzEgWiBNMTQ1LjIyOTcyOSw0MS40MjcyMTAyIEMxNDUuMzk1Nzk0LDQxLjMxNzU4MjUgMTQ1LjY3MjU2OSw0MS4zNzIzOTYzIDE0NS43ODMyNzksNDEuNTkxNjUxOCBMMTQ1Ljc4MzI3OSw0MS41OTE2NTE4IEwxNDYuNzc5NjY4LDQzLjQ1NTMyMzQgQzE0OC43NzI0NDgsNDIuNTc4MzAxNSAxNTEuMDk3MzU2LDQzLjIzNjA2NzkgMTUyLjI1OTgxMSw0NC45OTAxMTE4IEMxNTIuMzcwNTIxLDQ1LjIwOTM2NzMgMTUyLjMxNTE2Niw0NS40ODM0MzY3IDE1Mi4wOTM3NDYsNDUuNTkzMDY0NCBMMTUyLjA5Mzc0Niw0NS41OTMwNjQ0IEwxNTAuMjExNjc3LDQ2LjU3OTcxNDEgQzE1MC4wNDU2MTIsNDYuNjM0NTI4IDE0OS44MjQxOTIsNDYuNjM0NTI4IDE0OS43MTM0ODIsNDYuNDcwMDg2MyBDMTQ5LjI3MDY0Miw0NS45NzY3NjE1IDE0OC40OTU2NzMsNDUuODEyMzE5OSAxNDcuODg2NzY4LDQ2LjE0MTIwMzEgTDE0Ny44ODY3NjgsNDYuMTQxMjAzMSBMMTQ2LjIyNjExOSw0Ny4wMTgyMjUxIEMxNDUuMjg1MDg0LDQ3LjUxMTU0OTkgMTQ0Ljc4Njg4OSw0OC43MTc0NTUxIDE0NS4xNzQzNzQsNDkuNzA0MTA0NyBDMTQ1LjY3MjU2OSw1MC44NTUxOTYgMTQ3LjAwMTA4OCw1MS4yOTM3MDcgMTQ4LjEwODE4OCw1MC43NDU1NjgzIEwxNDguMTA4MTg4LDUwLjc0NTU2ODMgTDE0OS41NDc0MTcsNDkuOTc4MTc0MSBDMTUyLjE0OTEwMSw0OC42MDc4MjczIDE1NS40MTUwNDQsNDkuNzU4OTE4NiAxNTYuNTc3NDk5LDUyLjQ5OTYxMjIgQzE1Ny40NjMxNzgsNTQuNjM3MzUzMiAxNTYuNjMyODU0LDU3LjA0OTE2MzUgMTU0LjgwNjE0LDU4LjQxOTUxMDMgTDE1NC44MDYxNCw1OC40MTk1MTAzIEwxNTUuODAyNTI5LDYwLjMzNzk5NTggQzE1NS45MTMyMzksNjAuNTAyNDM3NCAxNTUuODU3ODg0LDYwLjc3NjUwNjcgMTU1LjYzNjQ2NCw2MC44ODYxMzQ1IEwxNTUuNjM2NDY0LDYwLjg4NjEzNDUgTDE1My43NTQzOTUsNjEuODcyNzg0MSBDMTUzLjU4ODMzLDYxLjk4MjQxMTkgMTUzLjMxMTU1NSw2MS45Mjc1OTggMTUzLjIwMDg0NSw2MS43MDgzNDI1IEwxNTMuMjAwODQ1LDYxLjcwODM0MjUgTDE1Mi4yMDQ0NTYsNTkuODQ0NjcwOSBDMTUwLjIxMTY3Nyw2MC43MjE2OTI5IDE0Ny44ODY3NjgsNjAuMDYzOTI2NCAxNDYuNzI0MzEzLDU4LjMwOTg4MjUgQzE0Ni42MTM2MDQsNTguMDkwNjI3IDE0Ni42Njg5NTksNTcuODE2NTU3NyAxNDYuODkwMzc4LDU3LjcwNjkyOTkgTDE0Ni44OTAzNzgsNTcuNzA2OTI5OSBMMTQ4Ljc3MjQ0OCw1Ni43MjAyODAzIEMxNDguOTM4NTEyLDU2LjY2NTQ2NjQgMTQ5LjE1OTkzMiw1Ni42NjU0NjY0IDE0OS4yNzA2NDIsNTYuODI5OTA4IEMxNDkuNzEzNDgyLDU3LjMyMzIzMjggMTUwLjQ4ODQ1Miw1Ny40ODc2NzQ1IDE1MS4wOTczNTYsNTcuMTU4NzkxMiBMMTUxLjA5NzM1Niw1Ny4xNTg3OTEyIEwxNTIuNzU4MDA2LDU2LjI4MTc2OTMgQzE1My42OTkwNCw1NS43ODg0NDQ0IDE1NC4xOTcyMzUsNTQuNTgyNTM5MyAxNTMuODA5NzUsNTMuNTk1ODg5NiBDMTUzLjMxMTU1NSw1Mi40NDQ3OTgzIDE1MS45ODMwMzYsNTIuMDA2Mjg3MyAxNTAuODc1OTM3LDUyLjU1NDQyNiBMMTUwLjg3NTkzNyw1Mi41NTQ0MjYgTDE0OS42NTgxMjcsNTMuMjEyMTkyNSBDMTQ3LjMzMzIxOCw1NC40MTgwOTc3IDE0NC4zNDQwNSw1My44Njk5NTkgMTQyLjkwNDgyLDUxLjY3NzQwNDEgQzE0MS4zNTQ4ODEsNDkuMzc1MjIxNSAxNDIuMDE5MTQxLDQ2LjM2MDQ1ODYgMTQ0LjE3Nzk4NSw0NC44MjU2NzAyIEwxNDQuMTc3OTg1LDQ0LjgyNTY3MDIgTDE0My4xODE1OTUsNDIuOTYxOTk4NiBDMTQzLjA3MDg4NSw0Mi43OTc1NTcgMTQzLjEyNjI0LDQyLjUyMzQ4NzYgMTQzLjM0NzY2LDQyLjQxMzg1OTkgTDE0My4zNDc2Niw0Mi40MTM4NTk5IFogTTEzNy4zNjkzMjMsMjUuMDM3ODYyNyBDMTM2LjQyODI4OCwyNC40MzQ5MTAxIDEzNS41NDI2MDksMjQuMjcwNDY4NSAxMzQuOTg5MDU5LDI0LjU0NDUzNzkgQzEzNC40MzU1MDksMjQuODE4NjA3MiAxMzQuMTAzMzc5LDI1LjY5NTYyOTIgMTM0LjA0ODAyNSwyNi43OTE5MDY2IEMxMzQuMDQ4MDI1LDI4LjI3MTg4MTEgMTM0LjQ5MDg2NCwzMC4wODA3Mzg5IDEzNS4zNzY1NDQsMzEuNjcwMzQxMSBDMTM1Ljc2NDAyOSwzMi4zMjgxMDc2IDEzNi4xNTE1MTQsMzIuOTMxMDYwMiAxMzYuNTM4OTk4LDMzLjQyNDM4NSBMMTM2LjUzODk5OCwzMy40MjQzODUgTDEzNi43MDUwNjMsMzMuMDk1NTAxOCBDMTM3LjU5MDc0MywzMS41MDU4OTk1IDEzOS4zNjIxMDIsMzAuNTc0MDYzNyAxNDEuMTg4ODE2LDMwLjczODUwNTMgTDE0MS4xODg4MTYsMzAuNzM4NTA1MyBMMTQxLjU3NjMwMSwzMC43OTMzMTkyIEMxNDEuMzU0ODgxLDMwLjEzNTU1MjcgMTQxLjA3ODEwNiwyOS40Nzc3ODYzIDE0MC43NDU5NzYsMjguODc0ODMzNyBDMTM5Ljg2MDI5NywyNy4yMzA0MTc2IDEzOC42NDI0ODcsMjUuODA1MjU2OSAxMzcuMzY5MzIzLDI1LjAzNzg2MjcgWiI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0N3B4IiB2aWV3Qm94PSIwIDAgNDcgNDciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+UHJpY2luZyAyQDN4PC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJIb21lcGFnZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY3Ny4wMDAwMDAsIC01NDU3LjAwMDAwMCkiIGZpbGw9IiMwMDAwMDAiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgIDxnIGlkPSJQcmljaW5nLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU1MC4wMDAwMDAsIDU0MzQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQ2LjA5Mjc3MSwyMyBDMTM1LjU2NjcyOSwyMyAxMjcsMzEuNTY2NzI5MiAxMjcsNDIuMDkyNzcwOCBDMTI3LDUyLjYxODgxMjUgMTM1LjU2NjcyOSw2MS4xODU1NDE3IDE0Ni4wOTI3NzEsNjEuMTg1NTQxNyBDMTUwLjc3MzY3Nyw2MS4xODU1NDE3IDE1NS4wNDg3MTksNTkuNDY4MDgzMyAxNTguMzczOTY5LDU2LjY2MDgxMjUgTDE3MS43MTI2NjcsNzAgTDE3NCw2Ny43MTI2NjY3IEwxNjAuNjYwODEzLDU0LjM3MzQ3OTIgQzE2My40NjgwODMsNTEuMDQ4NzE4NyAxNjUuMTg1NTQyLDQ2Ljc3MzE4NzUgMTY1LjE4NTU0Miw0Mi4wOTIyODEyIEMxNjUuMTg1NTQyLDMxLjU2NjcyOTIgMTU2LjYxODMyMywyMyAxNDYuMDkyNzcxLDIzIFogTTE0Ni4wOTI3NzEsMjYuMTgyMjkxNyBDMTQ5LjkyMDMzMywyNi4xODIyOTE3IDE1My40NDQ4NDQsMjcuNTIxMzAyMSAxNTYuMTg2MDIxLDI5Ljc2MjEyNSBMMTUyLjQ1Njg2NSwzMy40OTEyODEzIEwxNTEuODEwNjE1LDM0LjEzNzUzMTIgTDEzMy43NjIxMjUsNTIuMTg2MDIwOCBDMTMxLjUyMTMwMiw0OS40NDQ4NDM3IDEzMC4xODIyOTIsNDUuOTIwMzMzMyAxMzAuMTgyMjkyLDQyLjA5Mjc3MDggQzEzMC4xODIyOTIsMzMuMjg2NjM1NCAxMzcuMjg2NjM1LDI2LjE4MjI5MTcgMTQ2LjA5Mjc3MSwyNi4xODIyOTE3IFogTTE0NC41MDE2MjUsMjcuNzcyOTQ3OSBMMTQ0LjUwMTYyNSwzMC45NTUyMzk2IEMxNDAuOTkxODAyLDMwLjk1NTIzOTYgMTM4LjEzNzUzMSwzMy44MDk1MTA0IDEzOC4xMzc1MzEsMzcuMzE5MzMzMyBDMTM4LjEzNzUzMSwzOS41NTE4MzMzIDEzOS4yNzkyNCw0MS41MDMzMTI1IDE0MS4wMjExNzcsNDIuNjM5NjM1NCBMMTQzLjQwNzg5Niw0MC4zMDI4NTQyIEMxNDIuMjAwMDk0LDM5Ljg1MDk2ODcgMTQxLjMxOTgyMywzOC42ODMzMTI1IDE0MS4zMTk4MjMsMzcuMzE5ODIyOSBDMTQxLjMxOTgyMywzNS41NjQ2NjY3IDE0Mi43NDY5NTgsMzQuMTM3NTMxMyAxNDQuNTAyMTE1LDM0LjEzNzUzMTMgTDE0OS41NzM3MDgsMzQuMTM3NTMxMyBMMTUyLjQ1NzM1NCwzMS4yNTM4ODU0IEwxNTIuNDU3MzU0LDMwLjk1NTcyOTIgTDE0Ny42ODQ0MDYsMzAuOTU1NzI5MiBMMTQ3LjY4NDQwNiwyNy43NzM0Mzc1IEwxNDQuNTAxNjI1LDI3Ljc3MzQzNzUgTDE0NC41MDE2MjUsMjcuNzcyOTQ3OSBaIE0xNTguNDIzNDE3LDMxLjk5OTUyMDggQzE2MC42NjQyNCwzNC43NDA2OTc5IDE2Mi4wMDMyNSwzOC4yNjUyMDgzIDE2Mi4wMDMyNSw0Mi4wOTI3NzA4IEMxNjIuMDAzMjUsNTAuODk4OTA2MiAxNTQuODk4OTA2LDU4LjAwMzI1IDE0Ni4wOTI3NzEsNTguMDAzMjUgQzE0Mi4yNjUyMDgsNTguMDAzMjUgMTM4Ljc0MDY5OCw1Ni42NjQyMzk2IDEzNS45OTk1MjEsNTQuNDIzNDE2NyBMMTM5LjcyODY3Nyw1MC42OTQyNjA0IEwxNDAuMzc0OTI3LDUwLjA0ODAxMDQgTDE1OC40MjM0MTcsMzEuOTk5NTIwOCBaIE0xNTEuMTY0MzY1LDQxLjU0NTkwNjIgTDE0OC43Nzc2NDYsNDMuODgyNjg3NSBDMTQ5Ljk4NTQ0OCw0NC4zMzQ1NzI5IDE1MC44NjU3MTksNDUuNTAyMjI5MiAxNTAuODY1NzE5LDQ2Ljg2NTcxODcgQzE1MC44NjU3MTksNDguNjIwODc1IDE0OS40Mzg1ODMsNTAuMDQ4MDEwNCAxNDcuNjgzNDI3LDUwLjA0ODAxMDQgTDE0Mi42MTIzMjMsNTAuMDQ4MDEwNCBMMTM5LjcyODY3Nyw1Mi45MzE2NTYyIEwxMzkuNzI4Njc3LDUzLjIyOTgxMjUgTDE0NC41MDE2MjUsNTMuMjI5ODEyNSBMMTQ0LjUwMTYyNSw1Ni40MTIxMDQyIEwxNDcuNjgzOTE3LDU2LjQxMjEwNDIgTDE0Ny42ODM5MTcsNTMuMjI5ODEyNSBDMTUxLjE5Mzc0LDUzLjIyOTgxMjUgMTU0LjA0ODAxLDUwLjM3NTU0MTcgMTU0LjA0ODAxLDQ2Ljg2NTcxODcgQzE1NC4wNDgwMSw0NC42MzM3MDgzIDE1Mi45MDYzMDIsNDIuNjgxNzM5NiAxNTEuMTY0MzY1LDQxLjU0NTkwNjIgWiI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNTBweCIgaGVpZ2h0PSI0NHB4IiB2aWV3Qm94PSIwIDAgNTAgNDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+UHJpY2luZyAzQDN4PC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJIb21lcGFnZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMDUuMDAwMDAwLCAtNTQ1OS4wMDAwMDApIiBmaWxsPSIjMDAwMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8ZyBpZD0iUHJpY2luZy0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4ODAuMDAwMDAwLCA1NDM0LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0OS45MzIwODQsMjUuMDAyMjkxNSBDMTQ5LjcwODgyLDI1LjAwODQyMDQgMTQ5LjQ4OTIxMiwyNS4wNTk3OTg2IDE0OS4yODY4ODcsMjUuMTUzMjM4MiBMMTI1LjkyMzk1NCwzNi40MjIzMjUxIEMxMjUuMzU5ODM0LDM2LjY5MDY4MSAxMjUuMDAxMTk0LDM3LjI1NDQ0OTggMTI1LjAwMTE5NCwzNy44NzI4NzEyIEMxMjUuMDAxMTk0LDM4LjQ5MTI5MjYgMTI1LjM1OTgzNCwzOS4wNTUwNjE0IDEyNS45MjM5NTQsMzkuMzIzNDE3MyBMMTMyLjAzNjM0OSw0Mi4yNzQ4NDQ4IEwxMjUuODU2MDM4LDQ1LjU3ODQ1ODEgQzEyNS4zMTY5MTcsNDUuODY1OTg4MSAxMjQuOTg2NTY3LDQ2LjQyNzgxMDIgMTI1LjAwMDQyMSw0Ny4wMzI3ODkzIEMxMjUuMDE1MjI0LDQ3LjYzNzc2ODQgMTI1LjM3MTgxLDQ4LjE4MzcyMDEgMTI1LjkyMzk1NCw0OC40NDYwMzgyIEwxMzIuMDM2MzQ5LDUxLjM5NzUxOTQgTDEyNS44NTYwMzgsNTQuNzAxMDc5IEMxMjUuMzE2OTAyLDU0Ljk4ODYwNDIgMTI0Ljk4NjU0LDU1LjU1MDQzNDQgMTI1LjAwMDQyMSw1Ni4xNTU0MjQxIEMxMjUuMDE1MTk3LDU2Ljc2MDQxMzggMTI1LjM3MTc5NSw1Ny4zMDYzNzMxIDEyNS45MjM5NTQsNTcuNTY4Njg2IEwxNDkuMjg2ODg3LDY4LjgzNzc3MjggQzE0OS43MzcwNzQsNjkuMDU0MDc1NyAxNTAuMjYyOTI2LDY5LjA1NDA3NTcgMTUwLjcxMzExMyw2OC44Mzc3NzI4IEwxNzQuMDc2MDQ2LDU3LjU2ODY4NiBDMTc0LjYyODIwNSw1Ny4zMDYzNzMxIDE3NC45ODQ4MDMsNTYuNzYwNDEzOCAxNzQuOTk5NTc5LDU2LjE1NTQyNDEgQzE3NS4wMTM0Niw1NS41NTA0MzQ0IDE3NC42ODMwOTgsNTQuOTg4NjA0MiAxNzQuMTQzOTYyLDU0LjcwMTA3OSBMMTY3Ljk2MzY1MSw1MS4zOTc1MTk0IEwxNzQuMDc2MDQ2LDQ4LjQ0NjAzODIgQzE3NC42MjgxOSw0OC4xODM3MjAxIDE3NC45ODQ3NzYsNDcuNjM3NzY4NCAxNzQuOTk5NTc5LDQ3LjAzMjc4OTMgQzE3NS4wMTM0MzMsNDYuNDI3ODEwMiAxNzQuNjgzMDgzLDQ1Ljg2NTk4ODEgMTc0LjE0Mzk2Miw0NS41Nzg0NTgxIEwxNjcuOTYzNjUxLDQyLjI3NDg0NDggTDE3NC4wNzYwNDYsMzkuMzIzNDE3MyBDMTc0LjY0MDE2NiwzOS4wNTUwNjE0IDE3NC45OTg4MDYsMzguNDkxMjkyNiAxNzQuOTk4ODA2LDM3Ljg3Mjg3MTIgQzE3NC45OTg4MDYsMzcuMjU0NDQ5OCAxNzQuNjQwMTY2LDM2LjY5MDY4MSAxNzQuMDc2MDQ2LDM2LjQyMjMyNTEgTDE1MC43MTMxMTMsMjUuMTUzMjM4MiBDMTUwLjQ2OTM5NSwyNS4wMzk5NjQ4IDE1MC4yMDEwNTYsMjQuOTg4MTAzOCAxNDkuOTMyMDg0LDI1LjAwMjI5MTUgWiBNMTUwLDI4LjQwNjUxNjMgTDE2OS42NDQ1MzMsMzcuODgxMjQyNSBMMTUwLDQ3LjMzOTI1MjkgTDEzMC4zNTU0NjcsMzcuODgxMjQyNSBMMTUwLDI4LjQwNjUxNjMgWiBNMTM1LjYzNTg3MSw0NC4wMDIxMjc1IEwxNDkuMjg2ODg3LDUwLjU5MjU4NDYgQzE0OS43MzcwNzQsNTAuODA4ODg3NSAxNTAuMjYyOTI2LDUwLjgwODg4NzUgMTUwLjcxMzExMyw1MC41OTI1ODQ2IEwxNjQuMzY0MTI5LDQ0LjAwMjEyNzUgTDE2OS43OTczNyw0Ni45MjAwNDI5IEwxNTAsNTYuNDYxOTAwNyBMMTMwLjIwMjYzLDQ2LjkyMDA0MjkgTDEzNS42MzU4NzEsNDQuMDAyMTI3NSBMMTM1LjYzNTg3MSw0NC4wMDIxMjc1IFogTTEzNS42MzU4NzEsNTMuMTI0NzQ4NCBMMTQ5LjI4Njg4Nyw1OS43MTUxNzg3IEMxNDkuNzM3MDc0LDU5LjkzMTQ4MTYgMTUwLjI2MjkyNiw1OS45MzE0ODE2IDE1MC43MTMxMTMsNTkuNzE1MTc4NyBMMTY0LjM2NDEyOSw1My4xMjQ3NDg0IEwxNjkuNzk3MzcsNTYuMDQyNjM3IEwxNTAsNjUuNTg0NDk0OCBMMTMwLjIwMjYzLDU2LjA0MjYzNyBMMTM1LjYzNTg3MSw1My4xMjQ3NDg0IFoiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","export default __webpack_public_path__ + \"static/steven-tyc-assistant-fire-chief-middlefield-vol-fire-company-2b95f86251825aeaf55e45e4f6d142b9.jpeg\";","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Section from \"../shared/section\";\nimport Carousel from \"react-material-ui-carousel\";\nimport AmyGreweArborAesthetics from \"../../assets/images/testimonials-section/amy-grewe-arbor-aesthetics.jpeg\";\nimport StevenTycAssistantFireChiefMiddlefieldVolFireCompany\n  from \"../../assets/images/testimonials-section/steven-tyc-assistant-fire-chief-middlefield-vol-fire-company.jpeg\";\nimport KevinMoreiraIPCLydon from \"../../assets/images/testimonials-section/kevin-moreira-IPC-lydon.png\";\nimport Subtitle from \"../shared/subtitle\";\nimport Icon from \"@material-ui/core/Icon\";\n\nconst DefaultSettingsT = {\n  autoPlay: true,\n  animation: \"fade\",\n  indicators: true,\n  duration: 500,\n  navButtonsAlwaysVisible: true,\n  navButtonsAlwaysInvisible: false,\n  cycleNavigation: true,\n  fullHeightHover: true,\n  swipe: true\n}\n\nconst useStyles = makeStyles((theme) => ({\n  card: {\n    display: \"flex\",\n    flexDirection: \"column\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    height: \"100%\",\n    marginLeft: 70,\n    marginRight: 70,\n  },\n  cardIcon: {\n    height: 100,\n    width: 'auto',\n  },\n  cardIconImg: {\n    height: '100%',\n    maxWidth: '100%',\n  },\n  cardTitle: {\n    fontSize: \"1rem\",\n    maxWidth: 700,\n    marginBottom: 20,\n    fontWeight: \"bold\",\n  },\n  cardText: {\n    fontSize: \"1rem\",\n    maxWidth: 700,\n    marginBottom: 20,\n  },\n}));\n\nconst TestimonialsSection = () => {\n  const classes = useStyles();\n\n  return (\n    <Section\n      sectionClassName={classes.section}\n    >\n      <Carousel\n        className=\"Example\"\n        {...DefaultSettingsT}\n        navButtonsProps={{ style: { backgroundColor: \"transparent\", color: \"#f15a29\" }, borderRadius: 0 }}\n      >\n        {\n          items.map(({ text, icon, title }) => {\n            return <div className={classes.card} key={`${title}`}>\n              <Subtitle mb={8} className={classes.cardText}>\n                \"{text}\"\n              </Subtitle>\n              <Subtitle mb={8} className={classes.cardTitle}>\n                {title}\n              </Subtitle>\n              <Icon classes={{\n                root: classes.cardIcon,\n              }}>\n                <img alt=\"edit\" src={icon} className={classes.cardIconImg} />\n              </Icon>\n            </div>;\n          })\n        }\n      </Carousel>\n    </Section>\n  );\n};\n\nexport default TestimonialsSection;\n\nconst items = [\n  {\n    title: \"Amy Grewe, Arbor Aesthetics\",\n    text: \"Slate Pages has been integral in the TCIA Accreditation process for our company. Daily DOT inspections were completely new to us and the paper DOT inspection logs felt overwhelming. I wanted to avoid giving our crew \\\"one more piece of paperwork.\\\" Each crew member is able to down the app on their own device and see who last inspected a vehicle or piece of equipment. It really is as easy as checking boxes on an app and that helped to establish a routine for our crews. As we continue to scale our business, I am sure there are many other ways we can utilize and customize the platform to work for us. Support and training have been easily available to me which is important for a growing and ever-changing business.\",\n    icon: AmyGreweArborAesthetics,\n  },\n  {\n    title: \"Steven Tyc, Assistant Fire Chief Middlefield Vol. Fire Company\",\n    text: \"Between all the different requirements fire departments have today, a huge part of what we do is documentation. This was a huge help for us by finding a simple, fast, and reliable way for our members to complete the necessary inspections. Other systems we looked at had recurring costs and were subscription based. Slate Pages will save you money, no doubt, as it is a one time cost. As a smaller volunteer department, we value the time our members sacrifice every day and finding a system that gets them back to their families quicker is priceless!\",\n    icon: StevenTycAssistantFireChiefMiddlefieldVolFireCompany,\n  },\n  {\n    title: \"Kevin Moreira, IPC Lydon\",\n    text: \"The Slate Pages QR tags were just what I was looking for to bridge the gap and lead the company to a more technology driven approach in regards to safety…I was intrigued with the level of detail that could be added to each item and how they could be customized to our specific needs. Other products I had been looking into were very cookie cutter and generic for the different types of safety equipment we had in our inventory. Slates Pages works great for our needs and we are looking forward to start applying Slate Pages QR tags to more safety equipment soon.\",\n    icon: KevinMoreiraIPCLydon,\n  },\n];\n","export default \"data:image/jpeg;base64,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/RevXMHF7dZX5lQP2RPF2qfwzQJN+6c8QKY2b6hWVt68u4PMbagACALQnXt0PqWRa+8fuHyb0BFUg1DD9N4zKaNz3NFk0OWJM8+P3DVW84j6k9a/9JTWw4Pbf4PMEObBXrq4F15wxAGhV/P6gFUFB6JZTNp8VdP79tnOmvtCsv1/08k/H/gepbh+M+2081nKOfTFt0y9MckPTgZx8zJrdfrPw5u3cA98wSirmBZaWNCMWdo6539v9qfDLGAdhiQCXx+kWQ7AgHAcMaVG/oSZk2vGDKo7/wBNG9P5jX5GIVwjeIAEqL3hoKF15lTTGmsrhPUoP5GWEF8THiyi+YNLVV6U0OGtSgvmJRVyLDdo20jcgbsYQ0QGwu9ruDQFLbprCDi07l0ZiVGVev2JY5tK8y4wqteZTQ4ayweBnRAYgFCO/qKGKavZxMLAo6zXcVX8kE0MFHmAQBWU1WBUcFN7hZI72l8xebpDSK5umFgBjEVFTAeLgc3buwi9Klo9wm4qsAe498zsmbQa7clUOHQqFCorr3HGQi5TD7J0RTXKJOUlE9SQgHUVUwmmSxEMDxbD4r3d2YNQ8L8zO6YrY3swOQOlerUqqo29JlBrDbbR5GGjTEZ0msHmAlHAvEBwLY1Kd/gwPMt2LeoRyawQPv6C9i9HhmPf5RAFdmGd8saoANUdwqwOgS6Y3ajuJaeWdeEyK0L21md1iXtrAohasCC/QCD+IVKNwTZxXwEvELSXxFALUWQlV+EgKoGrgviI3XwAsfmaYBn+h//aAAwDAQACAAMAAAAQ888888fFs888888888888fL0j288888888888R8YeV88888888888StLRj88888840w888884w800848J3gNm8R3OoVVLkt88888888888888888/8QAHxEBAAIBBAMBAAAAAAAAAAAAAQARMCAhMUAQQWGB/9oACAEDAQE/ENc+kvaecvCi2sQCXLVRLWnNHa/rxtpyLcLXqKuftBL1xxOg6X//xAAhEQEAAgIABgMAAAAAAAAAAAABABEhMRAwQGGhsSBBUf/aAAgBAgEBPxD5VQC11Bc+sdI0OaDAWv1AnV7yi3HDberrmAJdnA0DVPMCiiAKt3zMg59xwwEczueIOCo/BmjqzrP/xAAmEAEAAgICAgEFAAMBAAAAAAABABEhMUFRYXGREECBobEgMFDw/9oACAEBAAE/EP8AaE27VQEb43sC/Of1AHahfqhKA1h0TpNn3a0XxGtowMhpby8SvkaP5UNUEgxDcJq/mH9Tqhh47H+fcuIZvLFSlXLx2euwAy+oUQpza7HrNQ3+9GoaxxzcPpWlWfb1N7bW3oO2U51VTQ+Gsr9QAdyA+KZlBKHCd6CEmBh0Hh4iocA74g8sp5uB/IcvLKYV1BPipnzEQ6+FPJKiCsvbs7Hj7ZfEULyr/S5XO/Kdr5X6JcKkgIapU/xiiqCnCsvwgzTAaA+hMAjwyvtTT4IehD7VUNof7n9MAgiJZX1/Ql+//WH16hMez+2JaC3NX16dShFMa0P/ADcCpfASVD3RaD5cERSiXyln7X9IXSUQAW+mHluoV8xM8EKt+10/iATQeCFavL9uJY0KML+eolqzhT5xM5bh0etJqUgBvI5v1HkVGrTk3EiNFvyd/mLXA6WPzOB1mGnwaPj7G/tQDYa6/wAy4h1bL6NxSRF8fanMqei1t1D3K6XGHOomORzR7COS3CvURC21ogzVAbt6vc05G5tcTSVxZqvOvomMti17VdQl3o2RMXbpRs7AK7ergMitwBDFRaZEPzEneJvotC4ChKByuYcpDJ+C7iEcAL9TIpMKWnzVRQHQctHzHKbKOjVVCm5oXQ2R8Y7No9hFBg3bXsnekFeL7rUypCA4T6OCJmCeVKgL1qE+MCgEzXrEYi2icAXBBUIAxTEEmBRPKVhU0g1B0a7KgbUAWCLfaGT4wgrsZdNI7NWX7glBoCqJ5sAIVXMAIZQt7WFOp0pHVO7lZYr3BlHfUQoHQNrsbxGsFwU9ge5ScCqo5PUva8cU3PhEEGOB8XmWSK4CrBYnUBAWyCAoHmEDCVUVL4TLjnC+My+5gDHqIwdjAC44XTOCnaxsQRFVA9DcblolHwKgCKo6h4+jM11jxzY66YT27wqWwNrqIEdf0eT1KUFALXDULtwmJ3jT4lc1F1304IGhjhTicx8I6G2+VZbKhBe1X0cOxvpGx+YWFxW/OE16lXhFmlWDg1N/hgI0DmOz1Qvb5ViEZQFwaHJDSsXO2Ad1DuFg1yc69wqBKVyYdsDG1TUpgX2rayurgUj4WOfDqLM0MY0dvbKM+uktVmNwwGEzhgVphcpc416g0gwlfFOCJFk0H8Q2Bqulbr8XX/B//9k=\"","export default \"data:image/png;base64,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\"","import React, { useEffect, useState } from \"react\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\nimport Layout from \"../components/layout/layout\";\nimport HomeHeroSection from \"../components/home/home-hero-section\";\nimport HomeBenefitsSection from \"../components/home/home-benefits-section\";\nimport HomeIndustriesSection from \"../components/home/home-industries-section\";\nimport HomeFeaturesSection from \"../components/home/home-features-section\";\nimport HomePricingSection from \"../components/home/home-pricing-section\";\nimport { canUseWebP } from \"../utils/helpers\";\nimport TestimonialsSection from \"../components/home/testimonials-section\";\n\ngsap.registerPlugin(ScrollTrigger);\ngsap.defaults({\n  ease: \"power1.inOut\",\n});\n\nconst Home = ({ path }) => {\n  const [imagesFormat, setImagesFormat] = useState();\n\n  useEffect(() => {\n    setImagesFormat(canUseWebP() ? 'webp' : 'png')\n  }, []);\n\n  return (\n    <>\n      {\n        imagesFormat &&\n        <Layout SeoProps={{\n          hasPostfix: false,\n          title: `Slate Pages | Easy Asset Tracking & Management App`,\n          description: 'Track your assets, conduct routine inspections and more with ' +\n            'the Slate Pages app, a fully customizable, easy to use, and secure ' +\n            'solution. Get started today!',\n        }}\n                HeaderProps={{ path }}\n        >\n          <HomeHeroSection imagesFormat={imagesFormat}/>\n          <HomeBenefitsSection imagesFormat={imagesFormat}/>\n          <HomeIndustriesSection imagesFormat={imagesFormat}/>\n          <TestimonialsSection/>\n          <HomeFeaturesSection imagesFormat={imagesFormat}/>\n          <HomePricingSection imagesFormat={imagesFormat}/>\n        </Layout>\n      }\n    </>\n  );\n};\n\nexport default Home;\n","var React = require('react');\n\nfunction Icon3 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"3\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-219.000000, -3453.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\",\"stroke\":\"#FFFFFF\",\"strokeWidth\":\"0.5\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"3\",\"transform\":\"translate(220.000000, 555.000000)\"},[React.createElement(\"path\",{\"d\":\"M33.1542969,34.825 L1.84570316,34.825 C0.82783204,34.825 0,33.997168 0,32.9792969 L0,7.175 C0,6.78808592 0.31342773,6.475 0.7,6.475 L34.3,6.475 C34.6865723,6.475 35,6.78808592 35,7.175 L35,32.9792969 C35,33.997168 34.172168,34.825 33.1542969,34.825 Z M1.4,7.875 L1.4,32.9792969 C1.4,33.2253907 1.59995115,33.425 1.84570316,33.425 L33.1542969,33.425 C33.4000489,33.425 33.6,33.2253907 33.6,32.9792969 L33.6,7.875 L1.4,7.875 Z\",\"id\":\"Shape\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M34.3,7.875 L0.7,7.875 C0.31342773,7.875 0,7.56191408 0,7.175 L0,2.02070309 C0,1.00283204 0.82783204,0.175 1.84570316,0.175 L33.1542969,0.175 C34.172168,0.175 35,1.00283204 35,2.02070316 L35,7.175 C35,7.56191408 34.6865723,7.875 34.3,7.875 Z M1.4,6.475 L33.6,6.475 L33.6,2.02070309 C33.6,1.77460941 33.4000489,1.575 33.1542969,1.575 L1.84570316,1.575 C1.59995115,1.575 1.4,1.77460941 1.4,2.02070316 L1.4,6.475 Z\",\"id\":\"Shape\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M5.99716796,4.72568362 C5.90625,4.72568362 5.81533204,4.70449224 5.73125,4.66962895 C5.64033204,4.63476566 5.56308592,4.58554691 5.50019533,4.52265632 C5.43730467,4.45224619 5.38125,4.37568369 5.34604497,4.29160165 C5.31118168,4.20751961 5.29716803,4.11660165 5.29716803,4.02568369 C5.29716803,3.93476573 5.31118168,3.84384777 5.34604497,3.75976573 C5.38808599,3.66884777 5.43730474,3.59160165 5.50019533,3.52871106 C5.56308592,3.46582047 5.64033204,3.41660165 5.73125,3.37421889 C5.98315431,3.26962902 6.29111329,3.33251968 6.48730467,3.52871106 C6.55703125,3.59160172 6.60625,3.66884777 6.64111329,3.75976573 C6.67631839,3.84384777 6.69716796,3.93476573 6.69716796,4.02568369 C6.69716796,4.20751961 6.62026365,4.3893556 6.48730467,4.52265632 C6.42407227,4.58554698 6.34716796,4.63476573 6.26308592,4.66962895 C6.17900388,4.70449217 6.08808592,4.72568362 5.99716796,4.72568362 Z\",\"id\":\"Path\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M9.65131839,4.72568362 C9.5532227,4.72568362 9.46230474,4.70449224 9.3782227,4.66962895 C9.29414066,4.63476566 9.21723635,4.58554691 9.15400395,4.52265632 C9.02104497,4.38935553 8.95131839,4.20751961 8.95131839,4.02568369 C8.95131839,3.93476573 8.96533204,3.84384777 9.00019533,3.75976573 C9.03505862,3.66884777 9.09111329,3.59160165 9.15400395,3.52871106 C9.41308599,3.26962902 9.88203132,3.26962902 10.1411134,3.52871106 C10.2111817,3.59160172 10.2600587,3.66884777 10.2952637,3.75976573 C10.330127,3.84384777 10.3513184,3.93476573 10.3513184,4.02568369 C10.3513184,4.11660165 10.330127,4.20751961 10.2952637,4.29160165 C10.2600586,4.37568369 10.2111817,4.45224619 10.1411134,4.52265632 C10.0081543,4.65527342 9.83315431,4.72568362 9.65131839,4.72568362 Z\",\"id\":\"Path\",\"key\":3}),React.createElement(\"path\",{\"d\":\"M13.298291,4.72568362 C13.2070312,4.72568362 13.1161133,4.70449224 13.0320312,4.66962895 C12.948291,4.63476566 12.8710449,4.58554691 12.8081543,4.52265632 C12.6751953,4.38935553 12.598291,4.20751961 12.598291,4.02568369 C12.598291,3.93476573 12.6191407,3.84384777 12.6540039,3.75976573 C12.689209,3.66884777 12.7380859,3.59160165 12.8081542,3.52871106 C12.8361816,3.49384777 12.8710449,3.4658204 12.9130859,3.44462902 C12.948291,3.41660165 12.990332,3.39541027 13.0320312,3.37421889 C13.0740722,3.36054698 13.1161132,3.34687514 13.165332,3.3393556 C13.3892089,3.29082047 13.6342773,3.36738297 13.7952636,3.52871106 C13.8581542,3.59160172 13.9142089,3.66884777 13.9490722,3.75976573 C13.9842773,3.84384777 13.998291,3.93476573 13.998291,4.02568369 C13.998291,4.20751961 13.9282226,4.3893556 13.7952636,4.52265632 C13.6623047,4.65527342 13.4873047,4.72568362 13.298291,4.72568362 Z\",\"id\":\"Path\",\"key\":4}),React.createElement(\"path\",{\"d\":\"M17.496582,26.8030274 C11.3158692,26.8030274 6.42475589,21.3458985 6.21967773,21.1134766 C5.98588865,20.8489258 5.98588865,20.4510742 6.21967773,20.1865234 C6.42475589,19.9541015 11.3158691,14.4969726 17.496582,14.4969726 C23.6841309,14.4969726 28.5749024,19.9541015 28.7799805,20.1865234 C29.0137695,20.4510742 29.0137695,20.8489258 28.7799805,21.1134766 C28.5749024,21.3458984 23.6841309,26.8030274 17.496582,26.8030274 Z M7.71640625,20.6493164 C9.0101074,21.9269531 12.9496582,25.4030273 17.496582,25.4030273 C22.048291,25.4030273 25.9881836,21.9276366 27.2825684,20.6499999 C25.9881836,19.3723632 22.048291,15.8969726 17.496582,15.8969726 C12.9394043,15.8969726 9.00805661,19.3716797 7.71640625,20.6493164 Z\",\"id\":\"Shape\",\"key\":5}),React.createElement(\"path\",{\"d\":\"M17.5,24.0994141 C15.5979004,24.0994141 14.0505859,22.5517578 14.0505859,20.65 C14.0505859,18.7482422 15.5979004,17.2012695 17.5,17.2012695 C19.4017578,17.2012695 20.9490723,18.7482422 20.9490723,20.65 C20.9490723,22.5517578 19.4017578,24.0994141 17.5,24.0994141 Z M17.5,18.6012695 C16.3700195,18.6012695 15.4505859,19.5200195 15.4505859,20.65 C15.4505859,21.7799805 16.3700195,22.6994141 17.5,22.6994141 C18.6299805,22.6994141 19.5490723,21.7799805 19.5490723,20.65 C19.5490723,19.5200195 18.6299805,18.6012695 17.5,18.6012695 Z\",\"id\":\"Shape\",\"key\":6})]))))]);\n}\n\nIcon3.defaultProps = {\"width\":\"37px\",\"height\":\"37px\",\"viewBox\":\"0 0 37 37\",\"version\":\"1.1\"};\n\nmodule.exports = Icon3;\n\nIcon3.default = Icon3;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _default = (0, _createSvgIcon.default)(/*#__PURE__*/React.createElement(\"circle\", {\n  cx: \"12\",\n  cy: \"12\",\n  r: \"8\"\n}), 'FiberManualRecord');\nexports.default = _default;","var React = require('react');\n\nfunction Icon1 (props) {\n    return React.createElement(\"svg\",props,[React.createElement(\"title\",{\"key\":0},\"1\"),React.createElement(\"g\",{\"id\":\"UI\",\"stroke\":\"none\",\"strokeWidth\":\"1\",\"fill\":\"none\",\"fillRule\":\"evenodd\",\"key\":1},React.createElement(\"g\",{\"id\":\"Homepage\",\"transform\":\"translate(-220.000000, -3232.000000)\",\"fill\":\"#FFFFFF\",\"fillRule\":\"nonzero\",\"stroke\":\"#FFFFFF\",\"strokeWidth\":\"0.25\"},React.createElement(\"g\",{\"id\":\"Features\",\"transform\":\"translate(0.000000, 2899.000000)\"},React.createElement(\"g\",{\"id\":\"Item---Active\",\"transform\":\"translate(198.000000, 312.000000)\"},React.createElement(\"path\",{\"d\":\"M65.890625,39.5 L60.265625,39.5 L60.265625,24.1 C60.265625,22.940202 59.3212256,22 58.15625,22 L32.84375,22 C31.6787744,22 30.734375,22.940202 30.734375,24.1 L30.734375,30.4 L26.515625,30.4 C24.5739989,30.4 23,31.9670034 23,33.9 L23,53.5 C23,54.4282577 23.3703951,55.3184964 24.0297027,55.9748737 C24.6890103,56.6312511 25.5832233,57 26.515625,57 L37.765625,57 C39.4364912,57 40.8767643,55.8298319 41.2109375,54.2 L55.34375,54.2 L55.34375,53.5 C55.34375,51.5670034 53.7697511,50 51.828125,50 L51.125,50 L51.125,47.2 L56.75,47.2 L56.75,54.9 C56.75,56.059798 57.6943994,57 58.859375,57 L65.890625,57 C67.0556006,57 68,56.059798 68,54.9 L68,41.6 C68,40.440202 67.0556006,39.5 65.890625,39.5 Z M66.59375,41.6 L66.59375,42.244 L58.15625,42.244 L58.15625,41.6 C58.15625,41.2134007 58.4710498,40.9 58.859375,40.9 L65.890625,40.9 C66.2789502,40.9 66.59375,41.2134007 66.59375,41.6 Z M58.15625,43.644 L66.59375,43.644 L66.59375,52.856 L58.15625,52.856 L58.15625,43.644 Z M32.140625,24.1 C32.140625,23.7134007 32.4554248,23.4 32.84375,23.4 L58.15625,23.4 C58.5445752,23.4 58.859375,23.7134007 58.859375,24.1 L58.859375,39.5 C57.6943994,39.5 56.75,40.440202 56.75,41.6 L41.28125,41.6 L41.28125,33.9 C41.28125,31.9670034 39.7072511,30.4 37.765625,30.4 L32.140625,30.4 L32.140625,24.1 Z M39.875,52.1 L24.40625,52.1 L24.40625,35.3 L39.875,35.3 L39.875,52.1 Z M26.515625,31.8 L37.765625,31.8 C38.9306006,31.8 39.875,32.740202 39.875,33.9 L24.40625,33.9 C24.40625,32.740202 25.3506494,31.8 26.515625,31.8 L26.515625,31.8 Z M37.765625,55.6 L26.515625,55.6 C25.3506494,55.6 24.40625,54.659798 24.40625,53.5 L39.875,53.5 C39.875,54.659798 38.9306006,55.6 37.765625,55.6 L37.765625,55.6 Z M53.8179687,52.8 L41.28125,52.8 L41.28125,51.3999997 L51.828125,51.3999997 C52.7224481,51.3995332 53.5198611,51.9605714 53.8179687,52.8 Z M49.71875,50 L41.28125,50 L41.28125,47.2 L49.71875,47.2 L49.71875,50 Z M41.28125,45.8 L41.28125,43 L56.75,43 L56.75,45.8 L41.28125,45.8 Z M65.890625,55.6 L58.859375,55.6 C58.4710498,55.6 58.15625,55.2865993 58.15625,54.9 L58.15625,54.256 L66.59375,54.256 L66.59375,54.9 C66.59375,55.2865993 66.2789502,55.6 65.890625,55.6 Z\",\"id\":\"1\"})))))]);\n}\n\nIcon1.defaultProps = {\"width\":\"47px\",\"height\":\"37px\",\"viewBox\":\"0 0 47 37\",\"version\":\"1.1\"};\n\nmodule.exports = Icon1;\n\nIcon1.default = Icon1;\n"],"names":["React","Icon6","props","createElement","defaultProps","module","exports","default","changeClickScrollHeight","node","window","pageYOffset","document","documentElement","scrollTop","getBoundingClientRect","top","copyToTheClipboard","val","replacedResult","replaceAll","dummy","body","appendChild","value","select","execCommand","removeChild","canUseWebP","elem","getContext","toDataURL","indexOf","updateSnakeCaseToCapitalisedText","str","split","map","word","toLowerCase","replace","firstLetter","toUpperCase","capitalizeFirstLetter","join","_interopRequireDefault","_interopRequireWildcard","Object","defineProperty","_default","d","_createClass","defineProperties","target","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","_react","_react2","_Fade2","_Slide2","_IconButton2","_styles","_autoBind2","_FiberManualRecord2","_NavigateBefore2","_NavigateNext2","_reactSwipeable","obj","__esModule","_objectWithoutProperties","keys","sanitizeNavProps","_ref","rest","className","style","undefined","sanitizeProps","animation","timeout","children","index","strictIndexing","autoPlay","stopAutoPlayOnHover","interval","reverseEdgeAnimationDirection","swipe","navButtonsAlwaysInvisible","navButtonsAlwaysVisible","cycleNavigation","fullHeightHover","navButtonsWrapperProps","navButtonsProps","NavButton","NextIcon","PrevIcon","indicators","indicatorContainerProps","indicatorIconButtonProps","activeIndicatorIconButtonProps","IndicatorIcon","onChange","changeOnFirstRender","next","prev","Carousel","_Component","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","state","active","prevActive","displayed","timer","subClass","superClass","create","constructor","setPrototypeOf","_inherits","_sanitizeProps","setActive","start","stop","prevProps","prevState","_sanitizeProps2","reset","clearInterval","_sanitizeProps3","setInterval","_this2","callback","runCallbacks","_sanitizeProps5","Array","isArray","setState","setTimeout","exit","event","_sanitizeProps6","nextActive","stopPropagation","_sanitizeProps7","_this3","_sanitizeProps8","classes","buttonsClass","buttonsStyle","buttonsProps","buttonsWrapperClass","buttonsWrapperStyle","buttonsWrapperProps","buttonVisibilityClassValue","buttonVisible","buttonHidden","buttonCssClassValue","button","fullHeightHoverButton","buttonWrapperCssClassValue","buttonWrapper","fullHeightHoverWrapper","showButton","root","onMouseOver","onMouseOut","onFocus","onBlur","child","CarouselItem","display","isNext","onClick","apply","concat","arr","arr2","from","_toConsumableArray","Indicators","press","Component","swipeHandlers","useSwipeable","onSwipedLeft","onSwipedRight","direction","size","indicatorIcon","_props$indicatorIconB","indicatorIconButtonClass","indicatorIconButtonStyle","_props$activeIndicato","activeIndicatorIconButtonClass","activeIndicatorIconButtonStyle","_loop","indicator","restProps","item","push","_props$indicatorConta","indicatorContainerClass","indicatorContainerStyle","withStyles","position","overflow","width","marginTop","textAlign","cursor","transition","padding","color","fontSize","height","backgroundColor","filter","opacity","margin","right","left","Icon8","createMuiStrictModeTheme","options","_len","args","_key","createTheme","deepmerge","unstable_strictMode","styles","createStyles","withTheme","defaultTheme","Icon7","Icon3","Icon2","Icon5","_Carousel","_Carousel2","Icon4","Icon1","_interopNamespace","e","n","forEach","k","getOwnPropertyDescriptor","get","React__namespace","LEFT","RIGHT","UP","DOWN","delta","preventDefaultTouchmoveEvent","rotationAngle","trackMouse","trackTouch","initialState","first","initial","swiping","xy","mouseMove","mouseUp","touchEnd","touchMove","touchStart","getDirection","absX","absY","deltaX","deltaY","rotateXYByAngle","pos","angle","angleInRadians","Math","PI","cos","sin","getHandlers","set","handlerProps","onStart","touches","addEventListener","onMove","onUp","clientX","clientY","timeStamp","_ref2","_rotateXYByAngle","x","y","abs","time","velocity","sqrt","vxvy","dir","eventData","onSwipeStart","onSwiping","cancelablePageSwipe","onSwiped","cancelable","preventDefault","onEnd","onSwipedDir","onTap","cleanUpMouse","removeEventListener","attachTouch","el","passive","cleanup","tls","_ref3","h","_ref4","output","ref","addState","cleanUpTouch","onMouseDown","updateTransientState","transientState","useRef","transientProps","current","_React$useMemo","useMemo","stateSetter","handlers","factory","mapEventPropToEvent","eventProp","substring","_props$disableReactTr","disableReactTree","_props$mouseEvent","mouseEvent","onClickAway","_props$touchEvent","touchEvent","movedRef","nodeRef","activatedRef","syntheticEventRef","handleOwnRef","handleRef","handleClickAway","insideReactTree","clientWidth","clientHeight","clickedRootScrollbar","insideDOM","composedPath","contains","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","doc","handleTouchMove","mappedMouseEvent","match","pattern","test","include","some","exclude","object","Set","Reflect","ownKeys","add","getAllProperties","bind","excludedReactMethods","react","_defineProperties","_coreInitted","_win","_doc","_docEl","_body","_isTouch","_pointerType","ScrollTrigger","_root","_normalizer","_eventTypes","_context","_getGSAP","gsap","registerPlugin","_startup","_observers","_scrollers","_proxies","_getTime","Date","now","_bridge","name","_getProxyProp","element","property","_isViewport","_addListener","type","func","capture","_removeListener","_scrollLeft","_scrollTop","_onScroll","isPressed","cache","_scrollCacheFunc","f","doNotCache","cachingFunc","history","scrollRestoration","isNormalizing","v","round","iOS","cacheID","offset","_horizontal","s","p","p2","os","os2","d2","a","sc","scrollTo","_vertical","pageXOffset","op","_getTarget","t","_ctx","selector","utils","toArray","config","nullTargetWarn","console","warn","_getScrollFunc","scrollingElement","smooth","getProperty","_getVelocityProp","minTimeRefresh","useDelta","v1","v2","t1","t2","min","dropToZeroTime","max","update","force","getVelocity","latestValue","tOld","vOld","_getEvent","_gsapAllow","changedTouches","_getAbsoluteMax","_setScrollTrigger","core","data","scrollers","proxies","globals","bridge","_initCore","clamp","context","Observer","isTouch","matchMedia","matches","navigator","maxTouchPoints","msMaxTouchPoints","eventTypes","vars","init","tolerance","dragMinimum","lineHeight","debounce","onStop","onStopDelay","ignore","wheelSpeed","onDragStart","onDragEnd","onDrag","onPress","onRelease","onRight","onLeft","onDown","onChangeX","onChangeY","onToggleX","onToggleY","onHover","onHoverEnd","ignoreCheck","isNormalizer","onGestureStart","onGestureEnd","onWheel","onEnable","onDisable","scrollSpeed","allowClicks","lockAxis","onLockAxis","parseFloat","getComputedStyle","id","onStopDelayedCall","dragged","moved","wheeled","locked","axis","prevDeltaX","prevDeltaY","scrollFuncX","scrollFuncY","scrollX","scrollY","limitToTouch","isViewport","ownerDoc","ownerDocument","onClickTime","clickCapture","_ignoreCheck","isPointerOrTouch","pointerType","dx","dy","changedX","changedY","onDelta","_vx","_vy","requestAnimationFrame","onTouchOrPointerDelta","_onDrag","isDragging","startX","startY","_onPress","pause","_onRelease","isTrackingDrag","isNaN","wasDragging","isDragNotClick","delayedCall","defaultPrevented","click","createEvent","syntheticEvent","initMouseEvent","screenX","screenY","dispatchEvent","isGesturing","restart","_onGestureStart","_onGestureEnd","onScroll","_onWheel","multiplier","deltaMode","innerHeight","_onMove","_onHover","_onHoverEnd","_onClick","_dc","enable","isEnabled","disable","o","kill","revert","splice","version","register","getAll","slice","getById","_resizeDelay","_toArray","_time2","_syncInterval","_refreshing","_pointerIsDown","_transformProp","_i","_prevWidth","_prevHeight","_autoRefresh","_sort","_suppressOverwrites","_ignoreResize","_ignoreMobileResize","_baseScreenHeight","_baseScreenWidth","_fixIOSBug","_scrollRestoration","_div100vh","_100vh","_isReverted","_clampingMax","_limitCallbacks","_rafID","_refreshingAll","_queueRefreshID","_primary","_time1","_lastScrollTime","_enabled","_parseClamp","_isString","substr","_keepClamp","_rafBugFix","_pointerDownHandler","_pointerUpHandler","_passThrough","_round","_windowExists","_getViewportDimension","dimensionProperty","_getBoundsFunc","_winOffsets","innerWidth","_getBounds","_maxScroll","_iterateAutoRefresh","events","_isFunction","_isNumber","_isObject","_endAnimation","reversed","progress","_callback","enabled","result","totalTime","callbackAnimation","_abs","_left","_right","_bottom","_width","_height","_Right","_Left","_Top","_Bottom","_padding","_margin","_Width","_Height","_px","_getComputedStyle","_setDefaults","defaults","withoutTransforms","tween","to","xPercent","yPercent","rotation","rotationX","rotationY","scale","skewX","skewY","bounds","_getSize","_getLabelRatioArray","timeline","labels","duration","_snapDirectional","snapIncrementOrArray","snap","sort","b","threshold","snapped","_multiListener","types","nonPassive","_wheelListener","scrollFunc","wheelHandler","_markerDefaults","startColor","endColor","indent","fontWeight","_defaults","toggleActions","anticipatePin","_keywords","center","bottom","_offsetToPx","eqIndex","relative","charAt","_createMarker","container","matchWidthEl","containerAnimation","useFixedPosition","isScroller","parent","isStart","css","offsetWidth","_isStart","setAttribute","cssText","innerText","insertBefore","_offset","_positionMarker","marker","flipped","side","oppositeSide","_isFlipped","_triggers","_ids","_sync","_updateAll","_dispatch","_setBaseDimensions","_onResize","fullscreenElement","webkitFullscreenElement","_listeners","_emptyArray","_softRefresh","_refreshAll","_savedStyles","_revertRecorded","media","query","getBBox","uncache","_revertAll","trigger","_clearScrollMemory","rec","_refreshID","_refresh100vh","offsetHeight","_hideAllMarkers","hide","skipRevert","isRefreshing","refreshInits","scrollBehavior","refresh","_subPinOffset","pin","prop","horizontal","original","adjustPinSpacing","scroller","_dir","endClamp","end","_endClamp","startClamp","_startClamp","setPositions","render","onRefresh","_lastScroll","_direction","isUpdating","l","recordVelocity","scroll","_propNamesToCopy","_stateProps","_swapPinIn","spacer","cs","spacerState","_gsap","swappedIn","spacerStyle","pinStyle","flexBasis","boxSizing","_setState","parentNode","_capsExp","getCache","removeProperty","_getState","_parsePosition","scrollerSize","markerScroller","scrollerBounds","borderWidth","scrollerMax","clampZeroProp","p1","seek","mapRange","scrollTrigger","localOffset","globalOffset","offsets","m","_caScrollDist","_prefixExp","_reparent","_stOrig","_interruptionTracker","getValueFunc","initialValue","onInterrupt","last1","last2","_shiftMarker","_getTweenCreator","getScroll","getTween","change1","change2","onComplete","modifiers","checkForInterruption","inherit","ratio","onUpdate","tweenTo","pinCache","snapFunc","scroll1","scroll2","markerStart","markerEnd","markerStartTrigger","markerEndTrigger","markerVars","executingOnRefresh","change","pinOriginalState","pinActiveState","pinState","pinGetter","pinSetter","pinStart","pinChange","spacingStart","markerStartSetter","pinMoves","markerEndSetter","snap1","snap2","scrubTween","scrubSmooth","snapDurClamp","snapDelayedCall","prevScroll","prevAnimProgress","caMarkerSetter","customRevertReturn","_vars","nodeType","toggleClass","onToggle","scrub","pinSpacing","invalidateOnRefresh","onScrubComplete","onSnapComplete","once","pinReparent","pinSpacer","fastScrollEnd","preventOverlaps","isToggle","scrollerCache","pinType","callbacks","onEnter","onLeave","onEnterBack","onLeaveBack","markers","onRefreshInit","getScrollerSize","_getSizeFunc","getScrollerOffsets","_getOffsetsFunc","lastSnap","lastRefresh","prevProgress","refreshPriority","tweenScroll","scrubDuration","ease","totalProgress","paused","lazy","_initted","isReverted","immediateRender","snapTo","_getClosestLabel","st","directional","delay","refreshedRecently","isActive","endValue","endScroll","naturalEnd","inertia","_snap","_onInterrupt","_onComplete","resetTo","_tTime","_tDur","stRevert","targets","nativeElement","spacerIsNative","classList","force3D","quickSetter","content","oldOnUpdate","oldParams","onUpdateParams","eventCallback","previous","temp","r","prevRefreshing","_swapPinOut","soft","pinOffset","invalidate","isVertical","override","curTrigger","curPin","oppositeScroll","initted","revertedPins","forcedOverflow","markerStartOffset","markerEndOffset","isFirstRefresh","otherPinOffset","parsedEnd","parsedEndTrigger","endTrigger","parsedStart","pinnedContainer","triggerIndex","unshift","_pinPush","normalize","_pinOffset","ceil","omitOffsets","_copyState","endAnimation","labelToScroll","label","getTrailing","reverse","forceFake","toggleState","action","stateChanged","toggled","isAtMax","isTakingAction","clipped","_dp","_time","_start","newStart","newEnd","keepClamp","_change","amount","allowAnimation","onKill","updateFunc","_queueRefreshAll","suppressOverwrites","userAgent","mm","bodyHasStyle","hasAttribute","bodyStyle","border","borderTopStyle","AnimationProto","Animation","removeAttribute","checkPrefix","w","hidden","limitCallbacks","ms","syncInterval","ignoreMobileResize","autoRefreshEvents","scrollerProxy","clearMatchMedia","isInViewport","positionInViewport","referencePoint","killAll","allowListeners","listeners","saveStyles","getAttribute","safe","clearScrollMemory","maxScroll","getScrollFunc","isScrolling","snapDirectional","batch","varsCopy","batchMax","proxyCallback","elements","triggers","_inputIsFocused","_clampScrollAndGetDurationMultiplier","_allowNativePanning","touchAction","_overflow","auto","_nestedScroll","_ref5","_isScrollT","scrollHeight","scrollWidth","overflowY","overflowX","_isScroll","_inputObserver","inputs","nested","_captureInputs","_inputExp","isInput","tagName","_getScrollNormalizer","maxY","lastRefreshID","skipTouchMove","startScrollX","startScrollY","_vars2","normalizeScrollX","momentum","allowNestedScroll","smoother","ScrollSmoother","smootherInstance","initialScale","visualViewport","outerWidth","wheelRefresh","resolveMomentumDuration","inputObserver","resumeTouchMove","scrollClampX","scrollClampY","updateClamps","removeContentOffset","transform","onResize","ignoreDrag","prevScale","currentScroll","dur","velocityX","velocityY","play","_ts","xArray","yArray","yClamped","ticker","_sortY","observe","normalizeScroll","normalizer","ss","Typography","styled","MuiTypography","spacing","Grid","MuiGrid","useStyles","makeStyles","theme","section","paddingTop","paddingBottom","breakpoints","down","shadowContainer","boxShadow","imageWrapper","maxWidth","image","colors","greyShadow","maxHeight","imageRoot","phoneWrapper","perspective","iPhoneImage","slateImgWrapper","borderRadius","zIndex","qrImage","imageRendering","slateImage","scannerLine","palette","common","white","typingContainer","marginBottom","typedContainer","typedWrapper","fontFamily","orange","borderBottom","justifyContent","contactLink","textDecoration","title","timeLine","TYPED","imagesFormat","typedPos","setTypedPos","useState","sectionRef","typedRef","imagesRefs","qrImagesRefs","scannerLineRef","qrScannerImageRef","slateImageRef","imageMain","IMAGES","home","hero","main","imagePhone","phone","imageQr","imageSlateView","slateView","imageSlate","slate","setTimer","finishedTypeAnimation","setFinishedTypeAnimation","useEffect","_timer","handleScroll","setSectionRef","useCallback","MOBILE_SCREEN_HEIGHT","autoAlpha","repeat","Section","alignItems","pt","pb","innerClassName","ResponsiveImg","src","clipboard","srcSet","alt","cx","manufacturing","SCBA","backhoe","mt","mb","justify","variant","mr","Typed","typed","strings","typeSpeed","backSpeed","smartBackspace","loop","onStringTyped","arrayPos","ml","Subtitle","subtitle","Link","LINKS","contact","Card","_props$raised","raised","other","Paper","elevation","CardContent","_props$component","component","card","openCard","openCardMobile","icon","flexShrink","titleContainer","marginLeft","BenefitCard","forwardRef","open","Icon","description","isMobile","descriptionWrapper","wrap","align","BENEFITS_DURATION","imagesWrapper","phoneImage","contentWrapper","mainContainer","mainContainerMobile","titleMobile","subtitleMobile","marginRight","imageLogo","imageAvatar","imageFav","imageStack","imageStackFirst","mainBarImage","FABImage","CARD_ITEMS","initialShowCards","phoneRef","itemsRefs","benefits","imagesForAnimation","logo","avatar","fav1","fav2","stack1","stack2","stack3","allStacks","mainBar","slate1","slate2","slate3","slate4","FAB","isSmScreen","useMediaQuery","setOpen","sectionPositionY","setSectionPositionY","getElementById","expand","collapse","setItemsRef","setImagesRefs","setPhoneRef","changeScrollHeight","TitleRender","xs","sm","IPhoneImg","md","openOneItem","windowHeight","containerHeight","behavior","ClickAwayListener","closeCard","newOpen","MEDIA_COMPONENTS","CardMedia","isMediaComponent","composedStyle","backgroundImage","img","backgroundSize","backgroundRepeat","backgroundPosition","objectFit","cardMedia","cardGradient","background","cardContent","cardContentBg","primary","flexDirection","letterSpacing","DURATION","href","cardRef","contentBgRef","descriptionRef","onMouseEnter","animateIn","onMouseLeave","animateOut","mx","MuiLink","buttonDemo","underline","CustomButton","cardsContainer","cardsRefs","industries","image_1","equipmentMaintenance","image_2","inventoryManagement","image_3","routineInspections","image_4","manufacturingOem","setCardsRef","sectionClassName","lg","IndustryCard","solutions","MuiCard","minHeight","shape","bg","orangeGradientDark","constants","FeatureCard","isFirst","setBgRef","setContentRef","displayName","itemsWrapper","cardWrapper","black","visibility","firstImage","showImage","blueGradientDark","blueGradientMedium","squaresContainer","hideContent","showContent","rightSquares","webkitMaskImage","maskImage","leftSquares","imagesSquaresList","QR_left","QR_right","step","setStep","cardsBgRefs","cardsContentRefs","imagesSquaresRefs","containerRef","itemsContainerRef","imageContainerRef","useTheme","isLgScreen","up","features","setCardsBgRef","setCardsContentRef","setImagesSquaresRef","setContainerRef","remove","xOffset","onReverseComplete","cardItem","dashboard","privacy","search","changeTracking","assetTags","mobileTablet","customizableFields","GRID_SPACING","sectionNode","opacityTitle","mainTitle","footerContainer","CARD_ITEMS_WITH_STEPS","step1","step2","FooterRenderer","FeaturesItems","FeaturesItemsMobile","mainImg","moveToTop","minWidth","cardIcon","cardIconImg","cardTitle","items","line1","line2","pricing","DefaultSettingsT","cardText","TestimonialsSection","text","StevenTycAssistantFireChiefMiddlefieldVolFireCompany","path","setImagesFormat","Layout","SeoProps","hasPostfix","HeaderProps","HomeHeroSection","HomeBenefitsSection","HomeIndustriesSection","HomeFeaturesSection","HomePricingSection","cy"],"sourceRoot":""}