{"version":3,"names":[],"mappings":"","sources":["libraries/scrollmagic/ScrollMagic.min.js"],"sourcesContent":["/*! ScrollMagic v2.0.8 | (c) 2020 Jan Paepke (@janpaepke) | license & info: http://scrollmagic.io */\n!(function(e, t) {\n  'function' == typeof define && define.amd\n    ? define(t)\n    : 'object' == typeof exports\n      ? (module.exports = t())\n      : (e.ScrollMagic = t());\n})(this, function() {\n  'use strict';\n  function _() {}\n  (_.version = '2.0.8'),\n    'undefined' != typeof window &&\n      window.addEventListener('mousewheel', void 0);\n  var P = 'data-scrollmagic-pin-spacer';\n  _.Controller = function(e) {\n    function t() {\n      var e, t, n;\n      v &&\n        u &&\n        ((e = R.type.Array(u) ? u : f.slice(0)),\n        (u = !1),\n        (t = d),\n        0 != (n = (d = l.scrollPos()) - t) && (h = 0 < n ? 'FORWARD' : i),\n        h === i && e.reverse(),\n        e.forEach(function(e, t) {\n          e.update(!0);\n        }));\n    }\n    function r() {\n      n = R.rAF(t);\n    }\n    var n,\n      o,\n      i = 'REVERSE',\n      s = 'PAUSED',\n      a = z.defaults,\n      l = this,\n      c = R.extend({}, a, e),\n      f = [],\n      u = !1,\n      d = 0,\n      h = s,\n      p = !0,\n      g = 0,\n      v = !0,\n      m = function() {\n        0 < c.refreshInterval && (o = window.setTimeout(E, c.refreshInterval));\n      },\n      w = function() {\n        return c.vertical\n          ? R.get.scrollTop(c.container)\n          : R.get.scrollLeft(c.container);\n      },\n      y = function() {\n        return c.vertical\n          ? R.get.height(c.container)\n          : R.get.width(c.container);\n      },\n      S = (this._setScrollPos = function(e) {\n        c.vertical\n          ? p\n            ? window.scrollTo(R.get.scrollLeft(), e)\n            : (c.container.scrollTop = e)\n          : p\n            ? window.scrollTo(e, R.get.scrollTop())\n            : (c.container.scrollLeft = e);\n      }),\n      b = function(e) {\n        'resize' == e.type && ((g = y()), (h = s)), !0 !== u && ((u = !0), r());\n      },\n      E = function() {\n        if (!p && g != y()) {\n          var t;\n          try {\n            t = new Event('resize', { bubbles: !1, cancelable: !1 });\n          } catch (e) {\n            (t = document.createEvent('Event')).initEvent('resize', !1, !1);\n          }\n          c.container.dispatchEvent(t);\n        }\n        f.forEach(function(e, t) {\n          e.refresh();\n        }),\n          m();\n      };\n    this._options = c;\n    function x(e) {\n      if (e.length <= 1) return e;\n      var t = e.slice(0);\n      return (\n        t.sort(function(e, t) {\n          return e.scrollOffset() > t.scrollOffset() ? 1 : -1;\n        }),\n        t\n      );\n    }\n    return (\n      (this.addScene = function(e) {\n        if (R.type.Array(e))\n          e.forEach(function(e, t) {\n            l.addScene(e);\n          });\n        else if (e instanceof _.Scene)\n          if (e.controller() !== l) e.addTo(l);\n          else if (!~f.indexOf(e))\n            for (var t in (f.push(e),\n            (f = x(f)),\n            e.on('shift.controller_sort', function() {\n              f = x(f);\n            }),\n            c.globalSceneOptions))\n              e[t] && e[t].call(e, c.globalSceneOptions[t]);\n        return l;\n      }),\n      (this.removeScene = function(e) {\n        var t;\n        return (\n          R.type.Array(e)\n            ? e.forEach(function(e, t) {\n                l.removeScene(e);\n              })\n            : -1 < (t = f.indexOf(e)) &&\n              (e.off('shift.controller_sort'), f.splice(t, 1), e.remove()),\n          l\n        );\n      }),\n      (this.updateScene = function(e, n) {\n        return (\n          R.type.Array(e)\n            ? e.forEach(function(e, t) {\n                l.updateScene(e, n);\n              })\n            : n\n              ? e.update(!0)\n              : !0 !== u &&\n                e instanceof _.Scene &&\n                (~(u = u || []).indexOf(e) || u.push(e), (u = x(u)), r()),\n          l\n        );\n      }),\n      (this.update = function(e) {\n        return b({ type: 'resize' }), e && t(), l;\n      }),\n      (this.scrollTo = function(e, t) {\n        if (R.type.Number(e)) S.call(c.container, e, t);\n        else if (e instanceof _.Scene)\n          e.controller() === l && l.scrollTo(e.scrollOffset(), t);\n        else if (R.type.Function(e)) S = e;\n        else {\n          var n = R.get.elements(e)[0];\n          if (n) {\n            for (; n.parentNode.hasAttribute(P); ) n = n.parentNode;\n            var r = c.vertical ? 'top' : 'left',\n              o = R.get.offset(c.container),\n              i = R.get.offset(n);\n            p || (o[r] -= l.scrollPos()), l.scrollTo(i[r] - o[r], t);\n          }\n        }\n        return l;\n      }),\n      (this.scrollPos = function(e) {\n        return arguments.length\n          ? (R.type.Function(e) && (w = e), l)\n          : w.call(l);\n      }),\n      (this.info = function(e) {\n        var t = {\n          size: g,\n          vertical: c.vertical,\n          scrollPos: d,\n          scrollDirection: h,\n          container: c.container,\n          isDocument: p,\n        };\n        return arguments.length ? (void 0 !== t[e] ? t[e] : void 0) : t;\n      }),\n      (this.loglevel = function(e) {\n        return l;\n      }),\n      (this.enabled = function(e) {\n        return arguments.length\n          ? (v != e && ((v = !!e), l.updateScene(f, !0)), l)\n          : v;\n      }),\n      (this.destroy = function(e) {\n        window.clearTimeout(o);\n        for (var t = f.length; t--; ) f[t].destroy(e);\n        return (\n          c.container.removeEventListener('resize', b),\n          c.container.removeEventListener('scroll', b),\n          R.cAF(n),\n          null\n        );\n      }),\n      (function() {\n        for (var e in c) a.hasOwnProperty(e) || delete c[e];\n        if (((c.container = R.get.elements(c.container)[0]), !c.container))\n          throw 'ScrollMagic.Controller init failed.';\n        (p =\n          c.container === window ||\n          c.container === document.body ||\n          !document.body.contains(c.container)) && (c.container = window),\n          (g = y()),\n          c.container.addEventListener('resize', b),\n          c.container.addEventListener('scroll', b);\n        var t = parseInt(c.refreshInterval, 10);\n        (c.refreshInterval = R.type.Number(t) ? t : a.refreshInterval), m();\n      })(),\n      l\n    );\n  };\n  var z = {\n    defaults: {\n      container: window,\n      vertical: !0,\n      globalSceneOptions: {},\n      loglevel: 2,\n      refreshInterval: 100,\n    },\n  };\n  (_.Controller.addOption = function(e, t) {\n    z.defaults[e] = t;\n  }),\n    (_.Controller.extend = function(e) {\n      var t = this;\n      (_.Controller = function() {\n        return (\n          t.apply(this, arguments),\n          (this.$super = R.extend({}, this)),\n          e.apply(this, arguments) || this\n        );\n      }),\n        R.extend(_.Controller, t),\n        (_.Controller.prototype = t.prototype),\n        (_.Controller.prototype.constructor = _.Controller);\n    }),\n    (_.Scene = function(e) {\n      var n,\n        l,\n        c = 'BEFORE',\n        f = 'DURING',\n        u = 'AFTER',\n        r = D.defaults,\n        d = this,\n        h = R.extend({}, r, e),\n        p = c,\n        g = 0,\n        a = { start: 0, end: 0 },\n        v = 0,\n        o = !0,\n        s = {};\n      (this.on = function(e, o) {\n        return (\n          R.type.Function(o) &&\n            (e = e.trim().split(' ')).forEach(function(e) {\n              var t = e.split('.'),\n                n = t[0],\n                r = t[1];\n              '*' != n &&\n                (s[n] || (s[n] = []),\n                s[n].push({ namespace: r || '', callback: o }));\n            }),\n          d\n        );\n      }),\n        (this.off = function(e, i) {\n          return (\n            e &&\n              (e = e.trim().split(' ')).forEach(function(e, t) {\n                var n = e.split('.'),\n                  r = n[0],\n                  o = n[1] || '';\n                ('*' === r ? Object.keys(s) : [r]).forEach(function(e) {\n                  for (var t = s[e] || [], n = t.length; n--; ) {\n                    var r = t[n];\n                    !r ||\n                      (o !== r.namespace && '*' !== o) ||\n                      (i && i != r.callback) ||\n                      t.splice(n, 1);\n                  }\n                  t.length || delete s[e];\n                });\n              }),\n            d\n          );\n        }),\n        (this.trigger = function(e, n) {\n          var t, r, o, i;\n          return (\n            e &&\n              ((t = e.trim().split('.')),\n              (r = t[0]),\n              (o = t[1]),\n              (i = s[r]) &&\n                i.forEach(function(e, t) {\n                  (o && o !== e.namespace) ||\n                    e.callback.call(d, new _.Event(r, e.namespace, d, n));\n                })),\n            d\n          );\n        }),\n        d\n          .on('change.internal', function(e) {\n            'loglevel' !== e.what &&\n              'tweenChanges' !== e.what &&\n              ('triggerElement' === e.what\n                ? y()\n                : 'reverse' === e.what && d.update());\n          })\n          .on('shift.internal', function(e) {\n            t(), d.update();\n          }),\n        (this.addTo = function(e) {\n          return (\n            e instanceof _.Controller &&\n              l != e &&\n              (l && l.removeScene(d),\n              (l = e),\n              E(),\n              i(!0),\n              y(!0),\n              t(),\n              l.info('container').addEventListener('resize', S),\n              e.addScene(d),\n              d.trigger('add', { controller: l }),\n              d.update()),\n            d\n          );\n        }),\n        (this.enabled = function(e) {\n          return arguments.length\n            ? (o != e && ((o = !!e), d.update(!0)), d)\n            : o;\n        }),\n        (this.remove = function() {\n          var e;\n          return (\n            l &&\n              (l.info('container').removeEventListener('resize', S),\n              (e = l),\n              (l = void 0),\n              e.removeScene(d),\n              d.trigger('remove')),\n            d\n          );\n        }),\n        (this.destroy = function(e) {\n          return (\n            d.trigger('destroy', { reset: e }), d.remove(), d.off('*.*'), null\n          );\n        }),\n        (this.update = function(e) {\n          var t, n;\n          return (\n            l &&\n              (e\n                ? l.enabled() && o\n                  ? ((t = l.info('scrollPos')),\n                    (n =\n                      0 < h.duration\n                        ? (t - a.start) / (a.end - a.start)\n                        : t >= a.start ? 1 : 0),\n                    d.trigger('update', {\n                      startPos: a.start,\n                      endPos: a.end,\n                      scrollPos: t,\n                    }),\n                    d.progress(n))\n                  : m && p === f && T(!0)\n                : l.updateScene(d, !1)),\n            d\n          );\n        }),\n        (this.refresh = function() {\n          return i(), y(), d;\n        }),\n        (this.progress = function(e) {\n          if (arguments.length) {\n            var t,\n              n,\n              r,\n              o = !1,\n              i = p,\n              s = l ? l.info('scrollDirection') : 'PAUSED',\n              a = h.reverse || g <= e;\n            return (\n              0 === h.duration\n                ? ((o = g != e), (p = 0 === (g = e < 1 && a ? 0 : 1) ? c : f))\n                : e < 0 && p !== c && a\n                  ? ((p = c), (o = !(g = 0)))\n                  : 0 <= e && e < 1 && a\n                    ? ((g = e), (p = f), (o = !0))\n                    : 1 <= e && p !== u\n                      ? ((g = 1), (p = u), (o = !0))\n                      : p !== f || a || T(),\n              o &&\n                ((t = { progress: g, state: p, scrollDirection: s }),\n                (r = function(e) {\n                  d.trigger(e, t);\n                }),\n                (n = p != i) &&\n                  i !== f &&\n                  (r('enter'), r(i === c ? 'start' : 'end')),\n                r('progress'),\n                n && p !== f && (r(p === c ? 'start' : 'end'), r('leave'))),\n              d\n            );\n          }\n          return g;\n        });\n      var m,\n        w,\n        t = function() {\n          (a = { start: v + h.offset }),\n            l &&\n              h.triggerElement &&\n              (a.start -= l.info('size') * h.triggerHook),\n            (a.end = a.start + h.duration);\n        },\n        i = function(e) {\n          var t;\n          !n ||\n            (x((t = 'duration'), n.call(d)) &&\n              !e &&\n              (d.trigger('change', { what: t, newval: h[t] }),\n              d.trigger('shift', { reason: t })));\n        },\n        y = function(e) {\n          var t = 0,\n            n = h.triggerElement;\n          if (l && (n || 0 < v)) {\n            if (n)\n              if (n.parentNode) {\n                for (\n                  var r = l.info(),\n                    o = R.get.offset(r.container),\n                    i = r.vertical ? 'top' : 'left';\n                  n.parentNode.hasAttribute(P);\n\n                )\n                  n = n.parentNode;\n                var s = R.get.offset(n);\n                r.isDocument || (o[i] -= l.scrollPos()), (t = s[i] - o[i]);\n              } else d.triggerElement(void 0);\n            var a = t != v;\n            (v = t),\n              a &&\n                !e &&\n                d.trigger('shift', { reason: 'triggerElementPosition' });\n          }\n        },\n        S = function(e) {\n          0 < h.triggerHook &&\n            d.trigger('shift', { reason: 'containerResize' });\n        },\n        b = R.extend(D.validate, {\n          duration: function(t) {\n            var e;\n            if (\n              (R.type.String(t) &&\n                t.match(/^(\\.|\\d)*\\d+%$/) &&\n                ((e = parseFloat(t) / 100),\n                (t = function() {\n                  return l ? l.info('size') * e : 0;\n                })),\n              R.type.Function(t))\n            ) {\n              n = t;\n              try {\n                t = parseFloat(n.call(d));\n              } catch (e) {\n                t = -1;\n              }\n            }\n            if (((t = parseFloat(t)), !R.type.Number(t) || t < 0))\n              throw ((n = n && void 0), 0);\n            return t;\n          },\n        }),\n        E = function(e) {\n          (e = arguments.length ? [e] : Object.keys(b)).forEach(function(t, e) {\n            var n;\n            if (b[t])\n              try {\n                n = b[t](h[t]);\n              } catch (e) {\n                n = r[t];\n              } finally {\n                h[t] = n;\n              }\n          });\n        },\n        x = function(e, t) {\n          var n = !1,\n            r = h[e];\n          return h[e] != t && ((h[e] = t), E(e), (n = r != h[e])), n;\n        },\n        z = function(t) {\n          d[t] ||\n            (d[t] = function(e) {\n              return arguments.length\n                ? ('duration' === t && (n = void 0),\n                  x(t, e) &&\n                    (d.trigger('change', { what: t, newval: h[t] }),\n                    ~D.shifts.indexOf(t) && d.trigger('shift', { reason: t })),\n                  d)\n                : h[t];\n            });\n        };\n      (this.controller = function() {\n        return l;\n      }),\n        (this.state = function() {\n          return p;\n        }),\n        (this.scrollOffset = function() {\n          return a.start;\n        }),\n        (this.triggerPosition = function() {\n          var e = h.offset;\n          return (\n            l &&\n              (h.triggerElement\n                ? (e += v)\n                : (e += l.info('size') * d.triggerHook())),\n            e\n          );\n        }),\n        d\n          .on('shift.internal', function(e) {\n            var t = 'duration' === e.reason;\n            ((p === u && t) || (p === f && 0 === h.duration)) && T(), t && A();\n          })\n          .on('progress.internal', function(e) {\n            T();\n          })\n          .on('add.internal', function(e) {\n            A();\n          })\n          .on('destroy.internal', function(e) {\n            d.removePin(e.reset);\n          });\n      function C() {\n        l && m && p === f && !l.info('isDocument') && T();\n      }\n      function F() {\n        l &&\n          m &&\n          p === f &&\n          (((w.relSize.width || w.relSize.autoFullWidth) &&\n            R.get.width(window) != R.get.width(w.spacer.parentNode)) ||\n            (w.relSize.height &&\n              R.get.height(window) != R.get.height(w.spacer.parentNode))) &&\n          A();\n      }\n      function L(e) {\n        l &&\n          m &&\n          p === f &&\n          !l.info('isDocument') &&\n          (e.preventDefault(),\n          l._setScrollPos(\n            l.info('scrollPos') -\n              ((e.wheelDelta ||\n                e[l.info('vertical') ? 'wheelDeltaY' : 'wheelDeltaX']) / 3 ||\n                30 * -e.detail)\n          ));\n      }\n      var T = function(e) {\n          var t, n, r, o, i, s;\n          m &&\n            l &&\n            ((t = l.info()),\n            (n = w.spacer.firstChild),\n            e || p !== f\n              ? ((r = {\n                  position: w.inFlow ? 'relative' : 'absolute',\n                  top: 0,\n                  left: 0,\n                }),\n                (o = R.css(n, 'position') != r.position),\n                w.pushFollowers\n                  ? 0 < h.duration &&\n                    ((p === u &&\n                      0 === parseFloat(R.css(w.spacer, 'padding-top'))) ||\n                      (p === c &&\n                        0 === parseFloat(R.css(w.spacer, 'padding-bottom')))) &&\n                    (o = !0)\n                  : (r[t.vertical ? 'top' : 'left'] = h.duration * g),\n                R.css(n, r),\n                o && A())\n              : ('fixed' != R.css(n, 'position') &&\n                  (R.css(n, { position: 'fixed' }), A()),\n                (i = R.get.offset(w.spacer, !0)),\n                (s =\n                  h.reverse || 0 === h.duration\n                    ? t.scrollPos - a.start\n                    : Math.round(g * h.duration * 10) / 10),\n                (i[t.vertical ? 'top' : 'left'] += s),\n                R.css(w.spacer.firstChild, { top: i.top, left: i.left })));\n        },\n        A = function() {\n          var e, t, n, r, o;\n          m &&\n            l &&\n            w.inFlow &&\n            ((e = p === f),\n            (t = l.info('vertical')),\n            (n = w.spacer.firstChild),\n            (r = R.isMarginCollapseType(R.css(w.spacer, 'display'))),\n            (o = {}),\n            w.relSize.width || w.relSize.autoFullWidth\n              ? e\n                ? R.css(m, { width: R.get.width(w.spacer) })\n                : R.css(m, { width: '100%' })\n              : ((o['min-width'] = R.get.width(t ? m : n, !0, !0)),\n                (o.width = e ? o['min-width'] : 'auto')),\n            w.relSize.height\n              ? e\n                ? R.css(m, {\n                    height:\n                      R.get.height(w.spacer) -\n                      (w.pushFollowers ? h.duration : 0),\n                  })\n                : R.css(m, { height: '100%' })\n              : ((o['min-height'] = R.get.height(t ? n : m, !0, !r)),\n                (o.height = e ? o['min-height'] : 'auto')),\n            w.pushFollowers &&\n              ((o['padding' + (t ? 'Top' : 'Left')] = h.duration * g),\n              (o['padding' + (t ? 'Bottom' : 'Right')] = h.duration * (1 - g))),\n            R.css(w.spacer, o));\n        };\n      (this.setPin = function(e, t) {\n        if (\n          ((t = R.extend(\n            {},\n            { pushFollowers: !0, spacerClass: 'scrollmagic-pin-spacer' },\n            t\n          )),\n          !(e = R.get.elements(e)[0]))\n        )\n          return d;\n        if ('fixed' === R.css(e, 'position')) return d;\n        if (m) {\n          if (m === e) return d;\n          d.removePin();\n        }\n        var n = (m = e).parentNode.style.display,\n          r = [\n            'top',\n            'left',\n            'bottom',\n            'right',\n            'margin',\n            'marginLeft',\n            'marginRight',\n            'marginTop',\n            'marginBottom',\n          ];\n        m.parentNode.style.display = 'none';\n        var o = 'absolute' != R.css(m, 'position'),\n          i = R.css(m, r.concat(['display'])),\n          s = R.css(m, ['width', 'height']);\n        (m.parentNode.style.display = n),\n          !o && t.pushFollowers && (t.pushFollowers = !1);\n        var a,\n          l = m.parentNode.insertBefore(document.createElement('div'), m),\n          c = R.extend(i, {\n            position: o ? 'relative' : 'absolute',\n            boxSizing: 'content-box',\n            mozBoxSizing: 'content-box',\n            webkitBoxSizing: 'content-box',\n          });\n        return (\n          o || R.extend(c, R.css(m, ['width', 'height'])),\n          R.css(l, c),\n          l.setAttribute(P, ''),\n          R.addClass(l, t.spacerClass),\n          (w = {\n            spacer: l,\n            relSize: {\n              width: '%' === s.width.slice(-1),\n              height: '%' === s.height.slice(-1),\n              autoFullWidth:\n                'auto' === s.width && o && R.isMarginCollapseType(i.display),\n            },\n            pushFollowers: t.pushFollowers,\n            inFlow: o,\n          }),\n          m.___origStyle ||\n            ((m.___origStyle = {}),\n            (a = m.style),\n            r\n              .concat([\n                'width',\n                'height',\n                'position',\n                'boxSizing',\n                'mozBoxSizing',\n                'webkitBoxSizing',\n              ])\n              .forEach(function(e) {\n                m.___origStyle[e] = a[e] || '';\n              })),\n          w.relSize.width && R.css(l, { width: s.width }),\n          w.relSize.height && R.css(l, { height: s.height }),\n          l.appendChild(m),\n          R.css(m, {\n            position: o ? 'relative' : 'absolute',\n            margin: 'auto',\n            top: 'auto',\n            left: 'auto',\n            bottom: 'auto',\n            right: 'auto',\n          }),\n          (w.relSize.width || w.relSize.autoFullWidth) &&\n            R.css(m, {\n              boxSizing: 'border-box',\n              mozBoxSizing: 'border-box',\n              webkitBoxSizing: 'border-box',\n            }),\n          window.addEventListener('scroll', C),\n          window.addEventListener('resize', C),\n          window.addEventListener('resize', F),\n          m.addEventListener('mousewheel', L),\n          m.addEventListener('DOMMouseScroll', L),\n          T(),\n          d\n        );\n      }),\n        (this.removePin = function(e) {\n          var t, n, r;\n          return (\n            m &&\n              (p === f && T(!0),\n              (!e && l) ||\n                ((t = w.spacer.firstChild).hasAttribute(P) &&\n                  ((n = w.spacer.style),\n                  (r = {}),\n                  [\n                    'margin',\n                    'marginLeft',\n                    'marginRight',\n                    'marginTop',\n                    'marginBottom',\n                  ].forEach(function(e) {\n                    r[e] = n[e] || '';\n                  }),\n                  R.css(t, r)),\n                w.spacer.parentNode.insertBefore(t, w.spacer),\n                w.spacer.parentNode.removeChild(w.spacer),\n                m.parentNode.hasAttribute(P) ||\n                  (R.css(m, m.___origStyle), delete m.___origStyle)),\n              window.removeEventListener('scroll', C),\n              window.removeEventListener('resize', C),\n              window.removeEventListener('resize', F),\n              m.removeEventListener('mousewheel', L),\n              m.removeEventListener('DOMMouseScroll', L),\n              (m = void 0)),\n            d\n          );\n        });\n      var N,\n        O = [];\n      return (\n        d.on('destroy.internal', function(e) {\n          d.removeClassToggle(e.reset);\n        }),\n        (this.setClassToggle = function(e, t) {\n          var n = R.get.elements(e);\n          return (\n            0 !== n.length &&\n              R.type.String(t) &&\n              (0 < O.length && d.removeClassToggle(),\n              (N = t),\n              (O = n),\n              d.on('enter.internal_class leave.internal_class', function(e) {\n                var n = 'enter' === e.type ? R.addClass : R.removeClass;\n                O.forEach(function(e, t) {\n                  n(e, N);\n                });\n              })),\n            d\n          );\n        }),\n        (this.removeClassToggle = function(e) {\n          return (\n            e &&\n              O.forEach(function(e, t) {\n                R.removeClass(e, N);\n              }),\n            d.off('start.internal_class end.internal_class'),\n            (N = void 0),\n            (O = []),\n            d\n          );\n        }),\n        (function() {\n          for (var e in h) r.hasOwnProperty(e) || delete h[e];\n          for (var t in r) z(t);\n          E();\n        })(),\n        d\n      );\n    });\n  var D = {\n    defaults: {\n      duration: 0,\n      offset: 0,\n      triggerElement: void 0,\n      triggerHook: 0.5,\n      reverse: !0,\n      loglevel: 2,\n    },\n    validate: {\n      offset: function(e) {\n        if (((e = parseFloat(e)), !R.type.Number(e))) throw 0;\n        return e;\n      },\n      triggerElement: function(e) {\n        if ((e = e || void 0)) {\n          var t = R.get.elements(e)[0];\n          if (!t || !t.parentNode) throw 0;\n          e = t;\n        }\n        return e;\n      },\n      triggerHook: function(e) {\n        var t = { onCenter: 0.5, onEnter: 1, onLeave: 0 };\n        if (R.type.Number(e)) e = Math.max(0, Math.min(parseFloat(e), 1));\n        else {\n          if (!(e in t)) throw 0;\n          e = t[e];\n        }\n        return e;\n      },\n      reverse: function(e) {\n        return !!e;\n      },\n    },\n    shifts: ['duration', 'offset', 'triggerHook'],\n  };\n  (_.Scene.addOption = function(e, t, n, r) {\n    e in D.defaults ||\n      ((D.defaults[e] = t), (D.validate[e] = n), r && D.shifts.push(e));\n  }),\n    (_.Scene.extend = function(e) {\n      var t = this;\n      (_.Scene = function() {\n        return (\n          t.apply(this, arguments),\n          (this.$super = R.extend({}, this)),\n          e.apply(this, arguments) || this\n        );\n      }),\n        R.extend(_.Scene, t),\n        (_.Scene.prototype = t.prototype),\n        (_.Scene.prototype.constructor = _.Scene);\n    }),\n    (_.Event = function(e, t, n, r) {\n      for (var o in (r = r || {})) this[o] = r[o];\n      return (\n        (this.type = e),\n        (this.target = this.currentTarget = n),\n        (this.namespace = t || ''),\n        (this.timeStamp = this.timestamp = Date.now()),\n        this\n      );\n    });\n  var R = (_._util = (function(s) {\n    function a(e) {\n      return parseFloat(e) || 0;\n    }\n    function l(e) {\n      return e.currentStyle ? e.currentStyle : s.getComputedStyle(e);\n    }\n    function r(e, t, n, r) {\n      if ((t = t === document ? s : t) === s) r = !1;\n      else if (!u.DomElement(t)) return 0;\n      e = e[0].toUpperCase() + e.substr(1).toLowerCase();\n      var o,\n        i =\n          (n\n            ? t['offset' + e] || t['outer' + e]\n            : t['client' + e] || t['inner' + e]) || 0;\n      return (\n        n &&\n          r &&\n          ((o = l(t)),\n          (i +=\n            'Height' === e\n              ? a(o.marginTop) + a(o.marginBottom)\n              : a(o.marginLeft) + a(o.marginRight))),\n        i\n      );\n    }\n    function c(e) {\n      return e\n        .replace(/^[^a-z]+([a-z])/g, '$1')\n        .replace(/-([a-z])/g, function(e) {\n          return e[1].toUpperCase();\n        });\n    }\n    var e = {};\n    (e.extend = function(e) {\n      for (e = e || {}, f = 1; f < arguments.length; f++)\n        if (arguments[f])\n          for (var t in arguments[f])\n            arguments[f].hasOwnProperty(t) && (e[t] = arguments[f][t]);\n      return e;\n    }),\n      (e.isMarginCollapseType = function(e) {\n        return !!~[\n          'block',\n          'flex',\n          'list-item',\n          'table',\n          '-webkit-box',\n        ].indexOf(e);\n      });\n    for (\n      var o = 0,\n        t = ['ms', 'moz', 'webkit', 'o'],\n        n = s.requestAnimationFrame,\n        i = s.cancelAnimationFrame,\n        f = 0;\n      !n && f < 4;\n      ++f\n    )\n      (n = s[t[f] + 'RequestAnimationFrame']),\n        (i =\n          s[t[f] + 'CancelAnimationFrame'] ||\n          s[t[f] + 'CancelRequestAnimationFrame']);\n    (n =\n      n ||\n      function(e) {\n        var t = new Date().getTime(),\n          n = Math.max(0, 16 - (t - o)),\n          r = s.setTimeout(function() {\n            e(t + n);\n          }, n);\n        return (o = t + n), r;\n      }),\n      (i =\n        i ||\n        function(e) {\n          s.clearTimeout(e);\n        }),\n      (e.rAF = n.bind(s)),\n      (e.cAF = i.bind(s));\n    var u = (e.type = function(e) {\n      return Object.prototype.toString\n        .call(e)\n        .replace(/^\\[object (.+)\\]$/, '$1')\n        .toLowerCase();\n    });\n    (u.String = function(e) {\n      return 'string' === u(e);\n    }),\n      (u.Function = function(e) {\n        return 'function' === u(e);\n      }),\n      (u.Array = function(e) {\n        return Array.isArray(e);\n      }),\n      (u.Number = function(e) {\n        return !u.Array(e) && 0 <= e - parseFloat(e) + 1;\n      }),\n      (u.DomElement = function(e) {\n        return 'object' == typeof HTMLElement ||\n          'function' == typeof HTMLElement\n          ? e instanceof HTMLElement || e instanceof SVGElement\n          : e &&\n              'object' == typeof e &&\n              null !== e &&\n              1 === e.nodeType &&\n              'string' == typeof e.nodeName;\n      });\n    var d = (e.get = {});\n    return (\n      (d.elements = function(e) {\n        var t = [];\n        if (u.String(e))\n          try {\n            e = document.querySelectorAll(e);\n          } catch (e) {\n            return t;\n          }\n        if ('nodelist' === u(e) || u.Array(e) || e instanceof NodeList)\n          for (var n = 0, r = (t.length = e.length); n < r; n++) {\n            var o = e[n];\n            t[n] = u.DomElement(o) ? o : d.elements(o);\n          }\n        else (!u.DomElement(e) && e !== document && e !== s) || (t = [e]);\n        return t;\n      }),\n      (d.scrollTop = function(e) {\n        return e && 'number' == typeof e.scrollTop\n          ? e.scrollTop\n          : s.pageYOffset || 0;\n      }),\n      (d.scrollLeft = function(e) {\n        return e && 'number' == typeof e.scrollLeft\n          ? e.scrollLeft\n          : s.pageXOffset || 0;\n      }),\n      (d.width = function(e, t, n) {\n        return r('width', e, t, n);\n      }),\n      (d.height = function(e, t, n) {\n        return r('height', e, t, n);\n      }),\n      (d.offset = function(e, t) {\n        var n,\n          r = { top: 0, left: 0 };\n        return (\n          e &&\n            e.getBoundingClientRect &&\n            ((n = e.getBoundingClientRect()),\n            (r.top = n.top),\n            (r.left = n.left),\n            t || ((r.top += d.scrollTop()), (r.left += d.scrollLeft()))),\n          r\n        );\n      }),\n      (e.addClass = function(e, t) {\n        t && (e.classList ? e.classList.add(t) : (e.className += ' ' + t));\n      }),\n      (e.removeClass = function(e, t) {\n        t &&\n          (e.classList\n            ? e.classList.remove(t)\n            : (e.className = e.className.replace(\n                RegExp('(^|\\\\b)' + t.split(' ').join('|') + '(\\\\b|$)', 'gi'),\n                ' '\n              )));\n      }),\n      (e.css = function(e, t) {\n        if (u.String(t)) return l(e)[c(t)];\n        if (u.Array(t)) {\n          var n = {},\n            r = l(e);\n          return (\n            t.forEach(function(e, t) {\n              n[e] = r[c(e)];\n            }),\n            n\n          );\n        }\n        for (var o in t) {\n          var i = t[o];\n          i == parseFloat(i) && (i += 'px'), (e.style[c(o)] = i);\n        }\n      }),\n      e\n    );\n  })(window || {}));\n  return _;\n});\n"],"file":"ScrollMagic.min.js"}