/*!
 * ScrollTrigger 3.10.4
 * https://greensock.com
 * 
 * @license Copyright 2022, GreenSock. All rights reserved.
 * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership.
 * @author: Jack Doyle, jack@greensock.com
 */

! function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).window = e.window || {})
}(this, function(e) {
    "use strict";

    function _defineProperties(e, t) {
        for (var r = 0; r < t.length; r++) {
            var n = t[r];
            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
        }
    }

    function q() {
        return we || "undefined" != typeof window && (we = window.gsap) && we.registerPlugin && we
    }

    function y(e, t) {
        return ~Le.indexOf(e) && Le[Le.indexOf(e) + 1][t]
    }

    function z(e) {
        return !!~t.indexOf(e)
    }

    function A(e, t, r, n, i) {
        return e.addEventListener(t, r, {
            passive: !n,
            capture: !!i
        })
    }

    function B(e, t, r, n) {
        return e.removeEventListener(t, r, !!n)
    }

    function E() {
        return De && De.isPressed || T.cache++
    }

    function F(r, n) {
        function Uc(e) {
            if (e || 0 === e) {
                i && (Me.history.scrollRestoration = "manual");
                var t = De && De.isPressed;
                e = Uc.v = Math.round(e) || (De && De.iOS ? 1 : 0), r(e), Uc.cacheID = T.cache, t && o("ss", e)
            } else(n || T.cache !== Uc.cacheID || o("ref")) && (Uc.cacheID = T.cache, Uc.v = r());
            return Uc.v + Uc.offset
        }
        return Uc.offset = 0, r && Uc
    }

    function I(e) {
        return we.utils.toArray(e)[0] || ("string" == typeof e && !1 !== we.config().nullTargetWarn ? console.warn("Element not found:", e) : null)
    }

    function J(t, e) {
        var r = e.s,
            n = e.sc,
            i = T.indexOf(t),
            o = n === Ne.sc ? 1 : 2;
        return ~i || (i = T.push(t) - 1), T[i + o] || (T[i + o] = F(y(t, r), !0) || (z(t) ? n : F(function(e) {
            return arguments.length ? t[r] = e : t[r]
        })))
    }

    function K(e, t, i) {
        function od(e, t) {
            var r = He();
            t || n < r - s ? (a = o, o = e, l = s, s = r) : i ? o += e : o = a + (e - a) / (r - l) * (s - l)
        }
        var o = e,
            a = e,
            s = He(),
            l = s,
            n = t || 50,
            c = Math.max(500, 3 * n);
        return {
            update: od,
            reset: function reset() {
                a = o = i ? 0 : o, l = s = 0
            },
            getVelocity: function getVelocity(e) {
                var t = l,
                    r = a,
                    n = He();
                return !e && 0 !== e || e === o || od(e), s === l || c < n - l ? 0 : (o + (i ? r : -r)) / ((i ? n : s) - t) * 1e3
            }
        }
    }

    function L(e, t) {
        return t && !e._gsapAllow && e.preventDefault(), e.changedTouches ? e.changedTouches[0] : e
    }

    function M(e) {
        var t = Math.max.apply(Math, e),
            r = Math.min.apply(Math, e);
        return Math.abs(t) >= Math.abs(r) ? t : r
    }

    function N() {
        (Be = we.core.globals().ScrollTrigger) && Be.core && function _integrate() {
            var e = Be.core,
                r = e.bridge || {},
                t = e._scrollers,
                n = e._proxies;
            t.push.apply(t, T), n.push.apply(n, Le), T = t, Le = n, o = function _bridge(e, t) {
                return r[e](t)
            }
        }()
    }

    function O(e) {
        return (we = e || q()) && "undefined" != typeof document && document.body && (Me = window, Ce = (Ae = document).documentElement, Oe = Ae.body, t = [Me, Ae, Ce, Oe], we.utils.clamp, Ie = "onpointerenter" in Oe ? "pointer" : "mouse", Ee = k.isTouch = Me.matchMedia && Me.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in Me || 0 < navigator.maxTouchPoints || 0 < navigator.msMaxTouchPoints ? 2 : 0, ze = k.eventTypes = ("ontouchstart" in Ce ? "touchstart,touchmove,touchcancel,touchend" : "onpointerdown" in Ce ? "pointerdown,pointermove,pointercancel,pointerup" : "mousedown,mousemove,mouseup,mouseup").split(","), setTimeout(function() {
            return i = 0
        }, 500), N(), ke = 1), ke
    }
    var we, ke, Me, Ae, Ce, Oe, Ee, Ie, Be, t, De, ze, i = 1,
        Fe = [],
        T = [],
        Le = [],
        He = Date.now,
        o = function _bridge(e, t) {
            return t
        },
        r = "scrollLeft",
        n = "scrollTop",
        Re = {
            s: r,
            p: "left",
            p2: "Left",
            os: "right",
            os2: "Right",
            d: "width",
            d2: "Width",
            a: "x",
            sc: F(function(e) {
                return arguments.length ? Me.scrollTo(e, Ne.sc()) : Me.pageXOffset || Ae[r] || Ce[r] || Oe[r] || 0
            })
        },
        Ne = {
            s: n,
            p: "top",
            p2: "Top",
            os: "bottom",
            os2: "Bottom",
            d: "height",
            d2: "Height",
            a: "y",
            op: Re,
            sc: F(function(e) {
                return arguments.length ? Me.scrollTo(Re.sc(), e) : Me.pageYOffset || Ae[n] || Ce[n] || Oe[n] || 0
            })
        };
    Re.op = Ne, T.cache = 0;
    var k = (Observer.prototype.init = function init(e) {
        ke || O(we) || console.warn("Please gsap.registerPlugin(Observer)"), Be || N();
        var i = e.tolerance,
            a = e.dragMinimum,
            t = e.type,
            n = e.target,
            r = e.lineHeight,
            o = e.debounce,
            s = e.preventDefault,
            l = e.onStop,
            c = e.onStopDelay,
            u = e.ignore,
            f = e.wheelSpeed,
            d = e.event,
            p = e.onDragStart,
            g = e.onDragEnd,
            h = e.onDrag,
            v = e.onPress,
            b = e.onRelease,
            m = e.onRight,
            y = e.onLeft,
            x = e.onUp,
            w = e.onDown,
            S = e.onChangeX,
            _ = e.onChangeY,
            T = e.onChange,
            k = e.onToggleX,
            C = e.onToggleY,
            P = e.onHover,
            D = e.onHoverEnd,
            Y = e.onMove,
            X = e.ignoreCheck,
            F = e.isNormalizer,
            H = e.onGestureStart,
            R = e.onGestureEnd,
            U = e.onWheel,
            V = e.onEnable,
            W = e.onDisable,
            j = e.onClick,
            Q = e.scrollSpeed,
            q = e.capture,
            G = e.allowClicks,
            Z = e.lockAxis,
            $ = e.onLockAxis;

        function Pe() {
            return ye = He()
        }

        function Qe(e, t) {
            return (se.event = e) && u && ~u.indexOf(e.target) || t && ge && "touch" !== e.pointerType || X && X(e, t)
        }

        function Se() {
            var e = se.deltaX = M(be),
                t = se.deltaY = M(me),
                r = Math.abs(e) >= i,
                n = Math.abs(t) >= i;
            T && (r || n) && T(se, e, t, be, me), r && (m && 0 < se.deltaX && m(se), y && se.deltaX < 0 && y(se), S && S(se), k && se.deltaX < 0 != le < 0 && k(se), le = se.deltaX, be[0] = be[1] = be[2] = 0), n && (w && 0 < se.deltaY && w(se), x && se.deltaY < 0 && x(se), _ && _(se), C && se.deltaY < 0 != ce < 0 && C(se), ce = se.deltaY, me[0] = me[1] = me[2] = 0), (ne || re) && (Y && Y(se), $ && oe && $(se), re && (h(se), re = !1), ne = oe = !1), ie && (U(se), ie = !1), ee = 0
        }

        function Te(e, t, r) {
            be[r] += e, me[r] += t, se._vx.update(e), se._vy.update(t), o ? ee = ee || requestAnimationFrame(Se) : Se()
        }

        function Ue(e, t) {
            "y" !== ae && (be[2] += e, se._vx.update(e, !0)), "x" !== ae && (me[2] += t, se._vy.update(t, !0)), Z && !ae && (se.axis = ae = Math.abs(e) > Math.abs(t) ? "x" : "y", oe = !0), o ? ee = ee || requestAnimationFrame(Se) : Se()
        }

        function Ve(e) {
            if (!Qe(e, 1)) {
                var t = (e = L(e, s)).clientX,
                    r = e.clientY,
                    n = t - se.x,
                    i = r - se.y,
                    o = se.isDragging;
                se.x = t, se.y = r, (o || Math.abs(se.startX - t) >= a || Math.abs(se.startY - r) >= a) && (h && (re = !0), o || (se.isDragging = !0), Ue(n, i), o || p && p(se))
            }
        }

        function Xe(t) {
            if (!Qe(t, 1)) {
                B(F ? n : ve, ze[1], Ve, !0);
                var e = se.isDragging && (3 < Math.abs(se.x - se.startX) || 3 < Math.abs(se.y - se.startY)),
                    r = L(t);
                e || (se._vx.reset(), se._vy.reset(), s && G && we.delayedCall(.08, function() {
                    if (300 < He() - ye && !t.defaultPrevented)
                        if (t.target.click) t.target.click();
                        else if (ve.createEvent) {
                        var e = ve.createEvent("MouseEvents");
                        e.initMouseEvent("click", !0, !0, Me, 1, r.screenX, r.screenY, r.clientX, r.clientY, !1, !1, !1, !1, 0, null), t.target.dispatchEvent(e)
                    }
                })), se.isDragging = se.isGesturing = se.isPressed = !1, l && !F && te.restart(!0), g && e && g(se), b && b(se, e)
            }
        }

        function Ye(e) {
            return e.touches && 1 < e.touches.length && (se.isGesturing = !0) && H(e, se.isDragging)
        }

        function Ze() {
            return (se.isGesturing = !1) || R(se)
        }

        function $e(e) {
            if (!Qe(e)) {
                var t = ue(),
                    r = fe();
                Te((t - de) * Q, (r - pe) * Q, 1), de = t, pe = r, l && te.restart(!0)
            }
        }

        function _e(e) {
            if (!Qe(e)) {
                e = L(e, s), U && (ie = !0);
                var t = (1 === e.deltaMode ? r : 2 === e.deltaMode ? Me.innerHeight : 1) * f;
                Te(e.deltaX * t, e.deltaY * t, 0), l && !F && te.restart(!0)
            }
        }

        function af(e) {
            if (!Qe(e)) {
                var t = e.clientX,
                    r = e.clientY,
                    n = t - se.x,
                    i = r - se.y;
                se.x = t, se.y = r, ne = !0, (n || i) && Ue(n, i)
            }
        }

        function bf(e) {
            se.event = e, P(se)
        }

        function cf(e) {
            se.event = e, D(se)
        }

        function df(e) {
            return Qe(e) || L(e, s) && j(se)
        }
        this.target = n = I(n) || Ce, this.vars = e, u = u && we.utils.toArray(u), i = i || 0, a = a || 0, f = f || 1, Q = Q || 1, t = t || "wheel,touch,pointer", o = !1 !== o, r = r || parseFloat(Me.getComputedStyle(Oe).lineHeight) || 22;
        var ee, te, re, ne, ie, oe, ae, se = this,
            le = 0,
            ce = 0,
            ue = J(n, Re),
            fe = J(n, Ne),
            de = ue(),
            pe = fe(),
            ge = ~t.indexOf("touch") && !~t.indexOf("pointer") && "pointerdown" === ze[0],
            he = z(n),
            ve = n.ownerDocument || Ae,
            be = [0, 0, 0],
            me = [0, 0, 0],
            ye = 0,
            xe = se.onPress = function(e) {
                Qe(e, 1) || (se.axis = ae = null, te.pause(), se.isPressed = !0, e = L(e), le = ce = 0, se.startX = se.x = e.clientX, se.startY = se.y = e.clientY, se._vx.reset(), se._vy.reset(), A(F ? n : ve, ze[1], Ve, s, !0), se.deltaX = se.deltaY = 0, v && v(se))
            };
        te = se._dc = we.delayedCall(c || .25, function onStopFunc() {
            se._vx.reset(), se._vy.reset(), te.pause(), l && l(se)
        }).pause(), se.deltaX = se.deltaY = 0, se._vx = K(0, 50, !0), se._vy = K(0, 50, !0), se.scrollX = ue, se.scrollY = fe, se.isDragging = se.isGesturing = se.isPressed = !1, se.enable = function(e) {
            return se.isEnabled || (A(he ? ve : n, "scroll", E), 0 <= t.indexOf("scroll") && A(he ? ve : n, "scroll", $e, s, q), 0 <= t.indexOf("wheel") && A(n, "wheel", _e, s, q), (0 <= t.indexOf("touch") && Ee || 0 <= t.indexOf("pointer")) && (A(n, ze[0], xe, s, q), A(ve, ze[2], Xe), A(ve, ze[3], Xe), G && A(n, "click", Pe, !1, !0), j && A(n, "click", df), H && A(ve, "gesturestart", Ye), R && A(ve, "gestureend", Ze), P && A(n, Ie + "enter", bf), D && A(n, Ie + "leave", cf), Y && A(n, Ie + "move", af)), se.isEnabled = !0, e && e.type && xe(e), V && V(se)), se
        }, se.disable = function() {
            se.isEnabled && (Fe.filter(function(e) {
                return e !== se && z(e.target)
            }).length || B(he ? ve : n, "scroll", E), se.isPressed && (se._vx.reset(), se._vy.reset(), B(F ? n : ve, ze[1], Ve, !0)), B(he ? ve : n, "scroll", $e, q), B(n, "wheel", _e, q), B(n, ze[0], xe, q), B(ve, ze[2], Xe), B(ve, ze[3], Xe), B(n, "click", Pe, !0), B(n, "click", df), B(ve, "gesturestart", Ye), B(ve, "gestureend", Ze), B(n, Ie + "enter", bf), B(n, Ie + "leave", cf), B(n, Ie + "move", af), se.isEnabled = se.isPressed = se.isDragging = !1, W && W(se))
        }, se.kill = function() {
            se.disable();
            var e = Fe.indexOf(se);
            0 <= e && Fe.splice(e, 1), De === se && (De = 0)
        }, Fe.push(se), F && z(n) && (De = se), se.enable(d)
    }, function _createClass(e, t, r) {
        return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), e
    }(Observer, [{
        key: "velocityX",
        get: function get() {
            return this._vx.getVelocity()
        }
    }, {
        key: "velocityY",
        get: function get() {
            return this._vy.getVelocity()
        }
    }]), Observer);

    function Observer(e) {
        this.init(e)
    }
    k.version = "3.10.4", k.create = function(e) {
        return new k(e)
    }, k.register = O, k.getAll = function() {
        return Fe.slice()
    }, k.getById = function(t) {
        return Fe.filter(function(e) {
            return e.vars.id === t
        })[0]
    }, q() && we.registerPlugin(k);

    function va() {
        return nt = 1
    }

    function wa() {
        return nt = 0
    }

    function xa(e) {
        return e
    }

    function ya(e) {
        return Math.round(1e5 * e) / 1e5 || 0
    }

    function za() {
        return "undefined" != typeof window
    }

    function Aa() {
        return We || za() && (We = window.gsap) && We.registerPlugin && We
    }

    function Ba(e) {
        return !!~s.indexOf(e)
    }

    function Ca(e) {
        return y(e, "getBoundingClientRect") || (Ba(e) ? function() {
            return Bt.width = je.innerWidth, Bt.height = je.innerHeight, Bt
        } : function() {
            return Mt(e)
        })
    }

    function Fa(e, t) {
        var r = t.s,
            n = t.d2,
            i = t.d,
            o = t.a;
        return (r = "scroll" + n) && (o = y(e, r)) ? o() - Ca(e)()[i] : Ba(e) ? (qe[r] || Ge[r]) - (je["inner" + n] || qe["client" + n] || Ge["client" + n]) : e[r] - e["offset" + n]
    }

    function Ga(e, t) {
        for (var r = 0; r < p.length; r += 3) t && !~t.indexOf(p[r + 1]) || e(p[r], p[r + 1], p[r + 2])
    }

    function Ha(e) {
        return "string" == typeof e
    }

    function Ia(e) {
        return "function" == typeof e
    }

    function Ja(e) {
        return "number" == typeof e
    }

    function Ka(e) {
        return "object" == typeof e
    }

    function La(e) {
        return Ia(e) && e()
    }

    function Ma(r, n) {
        return function() {
            var e = La(r),
                t = La(n);
            return function() {
                La(e), La(t)
            }
        }
    }

    function Na(e, t, r) {
        return e && e.progress(t ? 0 : 1) && r && e.pause()
    }

    function Oa(e, t) {
        if (e.enabled) {
            var r = t(e);
            r && r.totalTime && (e.callbackAnimation = r)
        }
    }

    function db(e) {
        return je.getComputedStyle(e)
    }

    function fb(e, t) {
        for (var r in t) r in e || (e[r] = t[r]);
        return e
    }

    function hb(e, t) {
        var r = t.d2;
        return e["offset" + r] || e["client" + r] || 0
    }

    function ib(e) {
        var t, r = [],
            n = e.labels,
            i = e.duration();
        for (t in n) r.push(n[t] / i);
        return r
    }

    function kb(i) {
        var o = We.utils.snap(i),
            a = Array.isArray(i) && i.slice(0).sort(function(e, t) {
                return e - t
            });
        return a ? function(e, t, r) {
            var n;
            if (void 0 === r && (r = .001), !t) return o(e);
            if (0 < t) {
                for (e -= r, n = 0; n < a.length; n++)
                    if (a[n] >= e) return a[n];
                return a[n - 1]
            }
            for (n = a.length, e += r; n--;)
                if (a[n] <= e) return a[n];
            return a[0]
        } : function(e, t, r) {
            void 0 === r && (r = .001);
            var n = o(e);
            return !t || Math.abs(n - e) < r || n - e < 0 == t < 0 ? n : o(t < 0 ? e - i : e + i)
        }
    }

    function mb(t, r, e, n) {
        return e.split(",").forEach(function(e) {
            return t(r, e, n)
        })
    }

    function nb(e, t, r, n, i) {
        return e.addEventListener(t, r, {
            passive: !n,
            capture: !!i
        })
    }

    function ob(e, t, r, n) {
        return e.removeEventListener(t, r, !!n)
    }

    function pb(e, t, r) {
        return r && r.wheelHandler && e(t, "wheel", r)
    }

    function tb(e, t) {
        if (Ha(e)) {
            var r = e.indexOf("="),
                n = ~r ? (e.charAt(r - 1) + 1) * parseFloat(e.substr(r + 1)) : 0;
            ~r && (e.indexOf("%") > r && (n *= t / 100), e = e.substr(0, r - 1)), e = n + (e in Y ? Y[e] * t : ~e.indexOf("%") ? parseFloat(e) * t / 100 : parseFloat(e) || 0)
        }
        return e
    }

    function ub(e, t, r, n, i, o, a, s) {
        var l = i.startColor,
            c = i.endColor,
            u = i.fontSize,
            f = i.indent,
            d = i.fontWeight,
            p = Je.createElement("div"),
            g = Ba(r) || "fixed" === y(r, "pinType"),
            h = -1 !== e.indexOf("scroller"),
            v = g ? Ge : r,
            b = -1 !== e.indexOf("start"),
            m = b ? l : c,
            x = "border-color:" + m + ";font-size:" + u + ";color:" + m + ";font-weight:" + d + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;";
        return x += "position:" + ((h || s) && g ? "fixed;" : "absolute;"), !h && !s && g || (x += (n === Ne ? _ : P) + ":" + (o + parseFloat(f)) + "px;"), a && (x += "box-sizing:border-box;text-align:left;width:" + a.offsetWidth + "px;"), p._isStart = b, p.setAttribute("class", "gsap-marker-" + e + (t ? " marker-" + t : "")), p.style.cssText = x, p.innerText = t || 0 === t ? e + "-" + t : e, v.children[0] ? v.insertBefore(p, v.children[0]) : v.appendChild(p), p._offset = p["offset" + n.op.d2], X(p, 0, n, b), p
    }

    function zb() {
        return 34 < dt() - pt && ee()
    }

    function Ab() {
        h && h.isPressed && !(h.startX > Ge.clientWidth) || (T.cache++, x = x || requestAnimationFrame(ee), pt || V("scrollStart"), pt = dt())
    }

    function Bb() {
        m = je.innerWidth, b = je.innerHeight
    }

    function Cb() {
        T.cache++, rt || g || Je.fullscreenElement || Je.webkitFullscreenElement || v && m === je.innerWidth && !(Math.abs(je.innerHeight - b) > .25 * je.innerHeight) || l.restart(!0)
    }

    function Ib(e) {
        var t, r = We.ticker.frame,
            n = [],
            i = 0;
        if (w !== r || ft) {
            for (Q(); i < U.length; i += 4)(t = je.matchMedia(U[i]).matches) !== U[i + 3] && ((U[i + 3] = t) ? n.push(i) : Q(1, U[i]) || Ia(U[i + 2]) && U[i + 2]());
            for (j(), i = 0; i < n.length; i++) t = n[i], lt = U[t], U[t + 2] = U[t + 1](e);
            lt = 0, a && Z(0, 1), w = r, V("matchMedia")
        }
    }

    function Jb() {
        return ob(oe, "scrollEnd", Jb) || Z(!0)
    }

    function Ob() {
        return T.cache++ && T.forEach(function(e) {
            return "function" == typeof e && (e.rec = 0)
        })
    }

    function Zb(e, t, r, n) {
        if (e.parentNode !== t) {
            for (var i, o = te.length, a = t.style, s = e.style; o--;) a[i = te[o]] = r[i];
            a.position = "absolute" === r.position ? "absolute" : "relative", "inline" === r.display && (a.display = "inline-block"), s[P] = s[_] = a.flexBasis = "auto", a.overflow = "visible", a.boxSizing = "border-box", a[vt] = hb(e, Re) + kt, a[bt] = hb(e, Ne) + kt, a[St] = s[_t] = s.top = s.left = "0", It(n), s[vt] = s.maxWidth = r[vt], s[bt] = s.maxHeight = r[bt], s[St] = r[St], e.parentNode.insertBefore(t, e), t.appendChild(e)
        }
    }

    function ac(e) {
        for (var t = re.length, r = e.style, n = [], i = 0; i < t; i++) n.push(re[i], r[re[i]]);
        return n.t = e, n
    }

    function dc(e, t, r, n, i, o, a, s, l, c, u, f, d) {
        Ia(e) && (e = e(s)), Ha(e) && "max" === e.substr(0, 3) && (e = f + ("=" === e.charAt(4) ? tb("0" + e.substr(3), r) : 0));
        var p, g, h, v = d ? d.time() : 0;
        if (d && d.seek(0), Ja(e)) a && X(a, r, n, !0);
        else {
            Ia(t) && (t = t(s));
            var b, m, y, x, w = e.split(" ");
            h = I(t) || Ge, (b = Mt(h) || {}) && (b.left || b.top) || "none" !== db(h).display || (x = h.style.display, h.style.display = "block", b = Mt(h), x ? h.style.display = x : h.style.removeProperty("display")), m = tb(w[0], b[n.d]), y = tb(w[1] || "0", r), e = b[n.p] - l[n.p] - c + m + i - y, a && X(a, y, n, r - y < 20 || a._isStart && 20 < y), r -= r - y
        }
        if (o) {
            var S = e + r,
                _ = o._isStart;
            p = "scroll" + n.d2, X(o, S, n, _ && 20 < S || !_ && (u ? Math.max(Ge[p], qe[p]) : o.parentNode[p]) <= S + 1), u && (l = Mt(a), u && (o.style[n.op.p] = l[n.op.p] - n.op.m - o._offset + kt))
        }
        return d && h && (p = Mt(h), d.seek(f), g = Mt(h), d._caScrollDist = p[n.p] - g[n.p], e = e / d._caScrollDist * f), d && d.seek(v), d ? e : Math.round(e)
    }

    function fc(e, t, r, n) {
        if (e.parentNode !== t) {
            var i, o, a = e.style;
            if (t === Ge) {
                for (i in e._stOrig = a.cssText, o = db(e)) + i || ie.test(i) || !o[i] || "string" != typeof a[i] || "0" === i || (a[i] = o[i]);
                a.top = r, a.left = n
            } else a.cssText = e._stOrig;
            We.core.getCache(e).uncache = 1, t.appendChild(e)
        }
    }

    function gc(l, e) {
        function Qj(e, t, r, n, i) {
            var o = Qj.tween,
                a = t.onComplete,
                s = {};
            return r = r || f(), i = n && i || 0, n = n || e - r, o && o.kill(), c = Math.round(r), t[d] = e, (t.modifiers = s)[d] = function(e) {
                return (e = ya(f())) !== c && e !== u && 2 < Math.abs(e - c) && 2 < Math.abs(e - u) ? (o.kill(), Qj.tween = 0) : e = r + n * o.ratio + i * o.ratio * o.ratio, u = c, c = ya(e)
            }, t.onComplete = function() {
                Qj.tween = 0, a && a.call(o)
            }, o = Qj.tween = We.to(l, t)
        }
        var c, u, f = J(l, e),
            d = "_scroll" + e.p2;
        return (l[d] = f).wheelHandler = function() {
            return Qj.tween && Qj.tween.kill() && (Qj.tween = 0)
        }, nb(l, "wheel", f.wheelHandler), Qj
    }
    var We, a, je, Je, qe, Ge, s, l, Ke, et, tt, c, rt, nt, u, it, f, d, p, ot, at, g, h, v, b, m, C, st, x, lt, w, ct, ut, ft = 1,
        dt = Date.now,
        S = dt(),
        pt = 0,
        gt = 0,
        ht = Math.abs,
        _ = "right",
        P = "bottom",
        vt = "width",
        bt = "height",
        mt = "Right",
        yt = "Left",
        xt = "Top",
        wt = "Bottom",
        St = "padding",
        _t = "margin",
        Tt = "Width",
        D = "Height",
        kt = "px",
        Mt = function _getBounds(e, t) {
            var r = t && "matrix(1, 0, 0, 1, 0, 0)" !== db(e)[u] && We.to(e, {
                    x: 0,
                    y: 0,
                    xPercent: 0,
                    yPercent: 0,
                    rotation: 0,
                    rotationX: 0,
                    rotationY: 0,
                    scale: 1,
                    skewX: 0,
                    skewY: 0
                }).progress(1),
                n = e.getBoundingClientRect();
            return r && r.progress(0).kill(), n
        },
        At = {
            startColor: "green",
            endColor: "red",
            indent: 0,
            fontSize: "16px",
            fontWeight: "normal"
        },
        Ct = {
            toggleActions: "play",
            anticipatePin: 0
        },
        Y = {
            top: 0,
            left: 0,
            center: .5,
            bottom: 1,
            right: 1
        },
        X = function _positionMarker(e, t, r, n) {
            var i = {
                    display: "block"
                },
                o = r[n ? "os2" : "p2"],
                a = r[n ? "p2" : "os2"];
            e._isFlipped = n, i[r.a + "Percent"] = n ? -100 : 0, i[r.a] = n ? "1px" : 0, i["border" + o + Tt] = 1, i["border" + a + Tt] = 0, i[r.p] = t + "px", We.set(e, i)
        },
        Ot = [],
        Pt = {},
        H = {},
        R = [],
        U = [],
        V = function _dispatch(e) {
            return H[e] && H[e].map(function(e) {
                return e()
            }) || R
        },
        W = [],
        j = function _revertRecorded(e) {
            for (var t = 0; t < W.length; t += 5) e && W[t + 4] !== e || (W[t].style.cssText = W[t + 1], W[t].getBBox && W[t].setAttribute("transform", W[t + 2] || ""), W[t + 3].uncache = 1)
        },
        Q = function _revertAll(e, t) {
            var r;
            for (it = 0; it < Ot.length; it++) r = Ot[it], t && r.media !== t || (e ? r.kill(1) : r.revert());
            t && j(t), t || V("revert")
        },
        G = 0,
        Z = function _refreshAll(e, t) {
            if (!pt || e) {
                ct = !0;
                var r = V("refreshInit");
                ot && oe.sort(), t || Q(), Ot.slice(0).forEach(function(e) {
                    return e.refresh()
                }), Ot.forEach(function(e) {
                    return "max" === e.vars.end && e.setPositions(e.start, Fa(e.scroller, e._dir))
                }), r.forEach(function(e) {
                    return e && e.render && e.render(-1)
                }), Ob(), l.pause(), G++, ct = !1, V("refresh")
            } else nb(oe, "scrollEnd", Jb)
        },
        $ = 0,
        Et = 1,
        ee = function _updateAll() {
            if (!ct) {
                oe.isUpdating = !0, ut && ut.update(0);
                var e = Ot.length,
                    t = dt(),
                    r = 50 <= t - S,
                    n = e && Ot[0].scroll();
                if (Et = n < $ ? -1 : 1, $ = n, r && (pt && !nt && 200 < t - pt && (pt = 0, V("scrollEnd")), tt = S, S = t), Et < 0) {
                    for (it = e; 0 < it--;) Ot[it] && Ot[it].update(0, r);
                    Et = 1
                } else
                    for (it = 0; it < e; it++) Ot[it] && Ot[it].update(0, r);
                oe.isUpdating = !1
            }
            x = 0
        },
        te = ["left", "top", P, _, _t + wt, _t + mt, _t + xt, _t + yt, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"],
        re = te.concat([vt, bt, "boxSizing", "max" + Tt, "max" + D, "position", _t, St, St + xt, St + mt, St + wt, St + yt]),
        ne = /([A-Z])/g,
        It = function _setState(e) {
            if (e) {
                var t, r, n = e.t.style,
                    i = e.length,
                    o = 0;
                for ((e.t._gsap || We.core.getCache(e.t)).uncache = 1; o < i; o += 2) r = e[o + 1], t = e[o], r ? n[t] = r : n[t] && n.removeProperty(t.replace(ne, "-$1").toLowerCase())
            }
        },
        Bt = {
            left: 0,
            top: 0
        },
        ie = /(webkit|moz|length|cssText|inset)/i,
        oe = (ScrollTrigger.prototype.init = function init(_, T) {
            if (this.progress = this.start = 0, this.vars && this.kill(!0, !0), gt) {
                var k, n, p, M, A, C, O, P, E, B, D, e, z, Y, X, F, L, t, H, b, R, N, m, U, x, w, r, S, V, W, i, g, j, Q, q, G, K, o, Z = (_ = fb(Ha(_) || Ja(_) || _.nodeType ? {
                        trigger: _
                    } : _, Ct)).onUpdate,
                    $ = _.toggleClass,
                    a = _.id,
                    ee = _.onToggle,
                    te = _.onRefresh,
                    re = _.scrub,
                    ne = _.trigger,
                    ie = _.pin,
                    oe = _.pinSpacing,
                    ae = _.invalidateOnRefresh,
                    se = _.anticipatePin,
                    s = _.onScrubComplete,
                    h = _.onSnapComplete,
                    le = _.once,
                    ce = _.snap,
                    ue = _.pinReparent,
                    l = _.pinSpacer,
                    fe = _.containerAnimation,
                    de = _.fastScrollEnd,
                    pe = _.preventOverlaps,
                    ge = _.horizontal || _.containerAnimation && !1 !== _.horizontal ? Re : Ne,
                    he = !re && 0 !== re,
                    ve = I(_.scroller || je),
                    c = We.core.getCache(ve),
                    be = Ba(ve),
                    me = "fixed" === ("pinType" in _ ? _.pinType : y(ve, "pinType") || be && "fixed"),
                    ye = [_.onEnter, _.onLeave, _.onEnterBack, _.onLeaveBack],
                    xe = he && _.toggleActions.split(" "),
                    u = "markers" in _ ? _.markers : Ct.markers,
                    we = be ? 0 : parseFloat(db(ve)["border" + ge.p2 + Tt]) || 0,
                    Se = this,
                    _e = _.onRefreshInit && function() {
                        return _.onRefreshInit(Se)
                    },
                    Te = function _getSizeFunc(e, t, r) {
                        var n = r.d,
                            i = r.d2,
                            o = r.a;
                        return (o = y(e, "getBoundingClientRect")) ? function() {
                            return o()[n]
                        } : function() {
                            return (t ? je["inner" + i] : e["client" + i]) || 0
                        }
                    }(ve, be, ge),
                    ke = function _getOffsetsFunc(e, t) {
                        return !t || ~Le.indexOf(e) ? Ca(e) : function() {
                            return Bt
                        }
                    }(ve, be),
                    Me = 0,
                    Ae = 0,
                    Ce = J(ve, ge);
                if (Se.media = lt, Se._dir = ge, se *= 45, Se.scroller = ve, Se.scroll = fe ? fe.time.bind(fe) : Ce, M = Ce(), Se.vars = _, T = T || _.animation, "refreshPriority" in _ && (ot = 1, -9999 === _.refreshPriority && (ut = Se)), c.tweenScroll = c.tweenScroll || {
                        top: gc(ve, Ne),
                        left: gc(ve, Re)
                    }, Se.tweenTo = k = c.tweenScroll[ge.p], Se.scrubDuration = function(e) {
                        (i = Ja(e) && e) ? W ? W.duration(e) : W = We.to(T, {
                            ease: "expo",
                            totalProgress: "+=0.001",
                            duration: i,
                            paused: !0,
                            onComplete: function onComplete() {
                                return s && s(Se)
                            }
                        }): (W && W.progress(1).kill(), W = 0)
                    }, T && (T.vars.lazy = !1, T._initted || !1 !== T.vars.immediateRender && !1 !== _.immediateRender && T.render(0, !0, !0), Se.animation = T.pause(), (T.scrollTrigger = Se).scrubDuration(re), S = 0, a = a || T.vars.id), Ot.push(Se), ce && (Ka(ce) && !ce.push || (ce = {
                        snapTo: ce
                    }), "scrollBehavior" in Ge.style && We.set(be ? [Ge, qe] : ve, {
                        scrollBehavior: "auto"
                    }), p = Ia(ce.snapTo) ? ce.snapTo : "labels" === ce.snapTo ? function _getClosestLabel(t) {
                        return function(e) {
                            return We.utils.snap(ib(t), e)
                        }
                    }(T) : "labelsDirectional" === ce.snapTo ? function _getLabelAtDirection(r) {
                        return function(e, t) {
                            return kb(ib(r))(e, t.direction)
                        }
                    }(T) : !1 !== ce.directional ? function(e, t) {
                        return kb(ce.snapTo)(e, dt() - Ae < 500 ? 0 : t.direction)
                    } : We.utils.snap(ce.snapTo), g = ce.duration || {
                        min: .1,
                        max: 2
                    }, g = Ka(g) ? et(g.min, g.max) : et(g, g), j = We.delayedCall(ce.delay || i / 2 || .1, function() {
                        var e = Ce(),
                            t = dt() - Ae < 500,
                            r = k.tween;
                        if (!(t || Math.abs(Se.getVelocity()) < 10) || r || nt || Me === e) Se.isActive && Me !== e && j.restart(!0);
                        else {
                            var n = (e - C) / z,
                                i = T && !he ? T.totalProgress() : n,
                                o = t ? 0 : (i - V) / (dt() - tt) * 1e3 || 0,
                                a = We.utils.clamp(-n, 1 - n, ht(o / 2) * o / .185),
                                s = n + (!1 === ce.inertia ? 0 : a),
                                l = et(0, 1, p(s, Se)),
                                c = Math.round(C + l * z),
                                u = ce.onStart,
                                f = ce.onInterrupt,
                                d = ce.onComplete;
                            if (e <= O && C <= e && c !== e) {
                                if (r && !r._initted && r.data <= ht(c - e)) return;
                                !1 === ce.inertia && (a = l - n), k(c, {
                                    duration: g(ht(.185 * Math.max(ht(s - i), ht(l - i)) / o / .05 || 0)),
                                    ease: ce.ease || "power3",
                                    data: ht(c - e),
                                    onInterrupt: function onInterrupt() {
                                        return j.restart(!0) && f && f(Se)
                                    },
                                    onComplete: function onComplete() {
                                        Se.update(), Me = Ce(), S = V = T && !he ? T.totalProgress() : Se.progress, h && h(Se), d && d(Se)
                                    }
                                }, e, a * z, c - e - a * z), u && u(Se, k.tween)
                            }
                        }
                    }).pause()), a && (Pt[a] = Se), o = (o = (ne = Se.trigger = I(ne || ie)) && ne._gsap && ne._gsap.stRevert) && o(Se), ie = !0 === ie ? ne : I(ie), Ha($) && ($ = {
                        targets: ne,
                        className: $
                    }), ie && (!1 === oe || oe === _t || (oe = !(!oe && "flex" === db(ie.parentNode).display) && St), Se.pin = ie, !1 !== _.force3D && We.set(ie, {
                        force3D: !0
                    }), (n = We.core.getCache(ie)).spacer ? Y = n.pinState : (l && ((l = I(l)) && !l.nodeType && (l = l.current || l.nativeElement), n.spacerIsNative = !!l, l && (n.spacerState = ac(l))), n.spacer = L = l || Je.createElement("div"), L.classList.add("pin-spacer"), a && L.classList.add("pin-spacer-" + a), n.pinState = Y = ac(ie)), Se.spacer = L = n.spacer, r = db(ie), m = r[oe + ge.os2], H = We.getProperty(ie), b = We.quickSetter(ie, ge.a, kt), Zb(ie, L, r), F = ac(ie)), u) {
                    e = Ka(u) ? fb(u, At) : At, B = ub("scroller-start", a, ve, ge, e, 0), D = ub("scroller-end", a, ve, ge, e, 0, B), t = B["offset" + ge.op.d2];
                    var f = I(y(ve, "content") || ve);
                    P = this.markerStart = ub("start", a, f, ge, e, t, 0, fe), E = this.markerEnd = ub("end", a, f, ge, e, t, 0, fe), fe && (K = We.quickSetter([P, E], ge.a, kt)), me || Le.length && !0 === y(ve, "fixedMarkers") || (function _makePositionable(e) {
                        var t = db(e).position;
                        e.style.position = "absolute" === t || "fixed" === t ? t : "relative"
                    }(be ? Ge : ve), We.set([B, D], {
                        force3D: !0
                    }), x = We.quickSetter(B, ge.a, kt), w = We.quickSetter(D, ge.a, kt))
                }
                if (fe) {
                    var d = fe.vars.onUpdate,
                        v = fe.vars.onUpdateParams;
                    fe.eventCallback("onUpdate", function() {
                        Se.update(0, 0, 1), d && d.apply(v || [])
                    })
                }
                Se.previous = function() {
                    return Ot[Ot.indexOf(Se) - 1]
                }, Se.next = function() {
                    return Ot[Ot.indexOf(Se) + 1]
                }, Se.revert = function(e) {
                    var t = !1 !== e || !Se.enabled,
                        r = rt;
                    t !== Se.isReverted && (t && (!Se.scroll.rec && rt && ct && (Se.scroll.rec = Ce()), q = Math.max(Ce(), Se.scroll.rec || 0), Q = Se.progress, G = T && T.progress()), P && [P, E, B, D].forEach(function(e) {
                        return e.style.display = t ? "none" : "block"
                    }), t && (rt = 1), Se.update(t), rt = r, ie && (t ? function _swapPinOut(e, t, r) {
                        It(r);
                        var n = e._gsap;
                        if (n.spacerIsNative) It(n.spacerState);
                        else if (e.parentNode === t) {
                            var i = t.parentNode;
                            i && (i.insertBefore(e, t), i.removeChild(t))
                        }
                    }(ie, L, Y) : ue && Se.isActive || Zb(ie, L, db(ie), U)), Se.isReverted = t)
                }, Se.refresh = function(e, t) {
                    if (!rt && Se.enabled || t)
                        if (ie && e && pt) nb(ScrollTrigger, "scrollEnd", Jb);
                        else {
                            !ct && _e && _e(Se), rt = 1, Ae = dt(), k.tween && (k.tween.kill(), k.tween = 0), W && W.pause(), ae && T && T.time(-.01, !0).invalidate(), Se.isReverted || Se.revert();
                            for (var r, n, i, o, a, s, l, c, u, f, d = Te(), p = ke(), g = fe ? fe.duration() : Fa(ve, ge), h = 0, v = 0, b = _.end, m = _.endTrigger || ne, y = _.start || (0 !== _.start && ne ? ie ? "0 0" : "0 100%" : 0), x = Se.pinnedContainer = _.pinnedContainer && I(_.pinnedContainer), w = ne && Math.max(0, Ot.indexOf(Se)) || 0, S = w; S--;)(s = Ot[S]).end || s.refresh(0, 1) || (rt = 1), !(l = s.pin) || l !== ne && l !== ie || s.isReverted || ((f = f || []).unshift(s), s.revert()), s !== Ot[S] && (w--, S--);
                            for (Ia(y) && (y = y(Se)), C = dc(y, ne, d, ge, Ce(), P, B, Se, p, we, me, g, fe) || (ie ? -.001 : 0), Ia(b) && (b = b(Se)), Ha(b) && !b.indexOf("+=") && (~b.indexOf(" ") ? b = (Ha(y) ? y.split(" ")[0] : "") + b : (h = tb(b.substr(2), d), b = Ha(y) ? y : C + h, m = ne)), O = Math.max(C, dc(b || (m ? "100% 0" : g), m, d, ge, Ce() + h, E, D, Se, p, we, me, g, fe)) || -.001, z = O - C || (C -= .01) && .001, h = 0, S = w; S--;)(l = (s = Ot[S]).pin) && s.start - s._pinPush < C && !fe && 0 < s.end && (r = s.end - s.start, l !== ne && l !== x || Ja(y) || (h += r * (1 - s.progress)), l === ie && (v += r));
                            if (C += h, O += h, Se._pinPush = v, P && h && ((r = {})[ge.a] = "+=" + h, x && (r[ge.p] = "-=" + Ce()), We.set([P, E], r)), ie) r = db(ie), o = ge === Ne, i = Ce(), R = parseFloat(H(ge.a)) + v, !g && 1 < O && ((be ? Ge : ve).style["overflow-" + ge.a] = "scroll"), Zb(ie, L, r), F = ac(ie), n = Mt(ie, !0), c = me && J(ve, o ? Re : Ne)(), oe && ((U = [oe + ge.os2, z + v + kt]).t = L, (S = oe === St ? hb(ie, ge) + z + v : 0) && U.push(ge.d, S + kt), It(U), me && Ce(q)), me && ((a = {
                                top: n.top + (o ? i - C : c) + kt,
                                left: n.left + (o ? c : i - C) + kt,
                                boxSizing: "border-box",
                                position: "fixed"
                            })[vt] = a.maxWidth = Math.ceil(n.width) + kt, a[bt] = a.maxHeight = Math.ceil(n.height) + kt, a[_t] = a[_t + xt] = a[_t + mt] = a[_t + wt] = a[_t + yt] = "0", a[St] = r[St], a[St + xt] = r[St + xt], a[St + mt] = r[St + mt], a[St + wt] = r[St + wt], a[St + yt] = r[St + yt], X = function _copyState(e, t, r) {
                                for (var n, i = [], o = e.length, a = r ? 8 : 0; a < o; a += 2) n = e[a], i.push(n, n in t ? t[n] : e[a + 1]);
                                return i.t = e.t, i
                            }(Y, a, ue)), T ? (u = T._initted, at(1), T.render(T.duration(), !0, !0), N = H(ge.a) - R + z + v, z !== N && me && X.splice(X.length - 2, 2), T.render(0, !0, !0), u || T.invalidate(), at(0)) : N = z;
                            else if (ne && Ce() && !fe)
                                for (n = ne.parentNode; n && n !== Ge;) n._pinOffset && (C -= n._pinOffset, O -= n._pinOffset), n = n.parentNode;
                            f && f.forEach(function(e) {
                                return e.revert(!1)
                            }), Se.start = C, Se.end = O, M = A = Ce(), fe || (M < q && Ce(q), Se.scroll.rec = 0), Se.revert(!1), j && (Me = -1, Se.isActive && Ce(C + z * Q), j.restart(!0)), rt = 0, T && he && (T._initted || G) && T.progress() !== G && T.progress(G, !0).render(T.time(), !0, !0), Q === Se.progress && !fe || (T && !he && T.totalProgress(Q, !0), Se.progress = Q, Se.update(0, 0, 1)), ie && oe && (L._pinOffset = Math.round(Se.progress * N)), te && te(Se)
                        }
                }, Se.getVelocity = function() {
                    return (Ce() - A) / (dt() - tt) * 1e3 || 0
                }, Se.endAnimation = function() {
                    Na(Se.callbackAnimation), T && (W ? W.progress(1) : T.paused() ? he || Na(T, Se.direction < 0, 1) : Na(T, T.reversed()))
                }, Se.labelToScroll = function(e) {
                    return T && T.labels && (C || Se.refresh() || C) + T.labels[e] / T.duration() * z || 0
                }, Se.getTrailing = function(t) {
                    var e = Ot.indexOf(Se),
                        r = 0 < Se.direction ? Ot.slice(0, e).reverse() : Ot.slice(e + 1);
                    return (Ha(t) ? r.filter(function(e) {
                        return e.vars.preventOverlaps === t
                    }) : r).filter(function(e) {
                        return 0 < Se.direction ? e.end <= C : e.start >= O
                    })
                }, Se.update = function(e, t, r) {
                    if (!fe || r || e) {
                        var n, i, o, a, s, l, c, u = Se.scroll(),
                            f = e ? 0 : (u - C) / z,
                            d = f < 0 ? 0 : 1 < f ? 1 : f || 0,
                            p = Se.progress;
                        if (t && (A = M, M = fe ? Ce() : u, ce && (V = S, S = T && !he ? T.totalProgress() : d)), se && !d && ie && !rt && !ft && pt && C < u + (u - A) / (dt() - tt) * se && (d = 1e-4), d !== p && Se.enabled) {
                            if (a = (s = (n = Se.isActive = !!d && d < 1) != (!!p && p < 1)) || !!d != !!p, Se.direction = p < d ? 1 : -1, Se.progress = d, a && !rt && (i = d && !p ? 0 : 1 === d ? 1 : 1 === p ? 2 : 3, he && (o = !s && "none" !== xe[i + 1] && xe[i + 1] || xe[i], c = T && ("complete" === o || "reset" === o || o in T))), pe && (s || c) && (c || re || !T) && (Ia(pe) ? pe(Se) : Se.getTrailing(pe).forEach(function(e) {
                                    return e.endAnimation()
                                })), he || (!W || rt || ft ? T && T.totalProgress(d, !!rt) : ((fe || ut && ut !== Se) && W.render(W._dp._time - W._start), W.resetTo ? W.resetTo("totalProgress", d, T._tTime / T._tDur) : (W.vars.totalProgress = d, W.invalidate().restart()))), ie)
                                if (e && oe && (L.style[oe + ge.os2] = m), me) {
                                    if (a) {
                                        if (l = !e && p < d && u < O + 1 && u + 1 >= Fa(ve, ge), ue)
                                            if (e || !n && !l) fc(ie, L);
                                            else {
                                                var g = Mt(ie, !0),
                                                    h = u - C;
                                                fc(ie, Ge, g.top + (ge === Ne ? h : 0) + kt, g.left + (ge === Ne ? 0 : h) + kt)
                                            }
                                        It(n || l ? X : F), N !== z && d < 1 && n || b(R + (1 !== d || l ? 0 : N))
                                    }
                                } else b(ya(R + N * d));
                            !ce || k.tween || rt || ft || j.restart(!0), $ && (s || le && d && (d < 1 || !st)) && Ke($.targets).forEach(function(e) {
                                return e.classList[n || le ? "add" : "remove"]($.className)
                            }), !Z || he || e || Z(Se), a && !rt ? (he && (c && ("complete" === o ? T.pause().totalProgress(1) : "reset" === o ? T.restart(!0).pause() : "restart" === o ? T.restart(!0) : T[o]()), Z && Z(Se)), !s && st || (ee && s && Oa(Se, ee), ye[i] && Oa(Se, ye[i]), le && (1 === d ? Se.kill(!1, 1) : ye[i] = 0), s || ye[i = 1 === d ? 1 : 3] && Oa(Se, ye[i])), de && !n && Math.abs(Se.getVelocity()) > (Ja(de) ? de : 2500) && (Na(Se.callbackAnimation), W ? W.progress(1) : Na(T, !d, 1))) : he && Z && !rt && Z(Se)
                        }
                        if (w) {
                            var v = fe ? u / fe.duration() * (fe._caScrollDist || 0) : u;
                            x(v + (B._isFlipped ? 1 : 0)), w(v)
                        }
                        K && K(-u / fe.duration() * (fe._caScrollDist || 0))
                    }
                }, Se.enable = function(e, t) {
                    Se.enabled || (Se.enabled = !0, nb(ve, "resize", Cb), nb(be ? Je : ve, "scroll", Ab), _e && nb(ScrollTrigger, "refreshInit", _e), !1 !== e && (Se.progress = Q = 0, M = A = Me = Ce()), !1 !== t && Se.refresh())
                }, Se.getTween = function(e) {
                    return e && k ? k.tween : W
                }, Se.setPositions = function(e, t) {
                    ie && (R += e - C, N += t - e - z), Se.start = C = e, Se.end = O = t, z = t - e, Se.update()
                }, Se.disable = function(e, t) {
                    if (Se.enabled && (!1 !== e && Se.revert(), Se.enabled = Se.isActive = !1, t || W && W.pause(), q = 0, n && (n.uncache = 1), _e && ob(ScrollTrigger, "refreshInit", _e), j && (j.pause(), k.tween && k.tween.kill() && (k.tween = 0)), !be)) {
                        for (var r = Ot.length; r--;)
                            if (Ot[r].scroller === ve && Ot[r] !== Se) return;
                        ob(ve, "resize", Cb), ob(ve, "scroll", Ab)
                    }
                }, Se.kill = function(e, t) {
                    Se.disable(e, t), W && !t && W.kill(), a && delete Pt[a];
                    var r = Ot.indexOf(Se);
                    0 <= r && Ot.splice(r, 1), r === it && 0 < Et && it--, r = 0, Ot.forEach(function(e) {
                        return e.scroller === Se.scroller && (r = 1)
                    }), r || (Se.scroll.rec = 0), T && (T.scrollTrigger = null, e && T.render(-1), t || T.kill()), P && [P, E, B, D].forEach(function(e) {
                        return e.parentNode && e.parentNode.removeChild(e)
                    }), ut === Se && (ut = 0), ie && (n && (n.uncache = 1), r = 0, Ot.forEach(function(e) {
                        return e.pin === ie && r++
                    }), r || (n.spacer = 0)), _.onKill && _.onKill(Se)
                }, Se.enable(!1, !1), o && o(Se), T && T.add && !z ? We.delayedCall(.01, function() {
                    return C || O || Se.refresh()
                }) && (z = .01) && (C = O = 0) : Se.refresh()
            } else this.update = this.refresh = this.kill = xa
        }, ScrollTrigger.register = function register(e) {
            return a || (We = e || Aa(), za() && window.document && ScrollTrigger.enable(), a = gt), a
        }, ScrollTrigger.defaults = function defaults(e) {
            if (e)
                for (var t in e) Ct[t] = e[t];
            return Ct
        }, ScrollTrigger.disable = function disable(t, r) {
            gt = 0, Ot.forEach(function(e) {
                return e[r ? "kill" : "disable"](t)
            }), ob(je, "wheel", Ab), ob(Je, "scroll", Ab), clearInterval(c), ob(Je, "touchcancel", xa), ob(Ge, "touchstart", xa), mb(ob, Je, "pointerdown,touchstart,mousedown", va), mb(ob, Je, "pointerup,touchend,mouseup", wa), l.kill(), Ga(ob);
            for (var e = 0; e < T.length; e += 3) pb(ob, T[e], T[e + 1]), pb(ob, T[e], T[e + 2])
        }, ScrollTrigger.enable = function enable() {
            if (je = window, Je = document, qe = Je.documentElement, Ge = Je.body, We && (Ke = We.utils.toArray, et = We.utils.clamp, at = We.core.suppressOverwrites || xa, We.core.globals("ScrollTrigger", ScrollTrigger), Ge)) {
                gt = 1, k.register(We), ScrollTrigger.isTouch = k.isTouch, C = k.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent), nb(je, "wheel", Ab), s = [je, Je, qe, Ge], ScrollTrigger.matchMedia({
                    "(orientation: portrait)": function orientationPortrait() {
                        return Bb(), Bb
                    }
                }), nb(Je, "scroll", Ab);
                var e, t, r = Ge.style,
                    n = r.borderTopStyle;
                for (r.borderTopStyle = "solid", e = Mt(Ge), Ne.m = Math.round(e.top + Ne.sc()) || 0, Re.m = Math.round(e.left + Re.sc()) || 0, n ? r.borderTopStyle = n : r.removeProperty("border-top-style"), c = setInterval(zb, 250), We.delayedCall(.5, function() {
                        return ft = 0
                    }), nb(Je, "touchcancel", xa), nb(Ge, "touchstart", xa), mb(nb, Je, "pointerdown,touchstart,mousedown", va), mb(nb, Je, "pointerup,touchend,mouseup", wa), u = We.utils.checkPrefix("transform"), re.push(u), a = dt(), l = We.delayedCall(.2, Z).pause(), p = [Je, "visibilitychange", function() {
                        var e = je.innerWidth,
                            t = je.innerHeight;
                        Je.hidden ? (f = e, d = t) : f === e && d === t || Cb()
                    }, Je, "DOMContentLoaded", Z, je, "load", Z, je, "resize", Cb], Ga(nb), Ot.forEach(function(e) {
                        return e.enable(0, 1)
                    }), t = 0; t < T.length; t += 3) pb(ob, T[t], T[t + 1]), pb(ob, T[t], T[t + 2])
            }
        }, ScrollTrigger.config = function config(e) {
            "limitCallbacks" in e && (st = !!e.limitCallbacks);
            var t = e.syncInterval;
            t && clearInterval(c) || (c = t) && setInterval(zb, t), "ignoreMobileResize" in e && (v = 1 === ScrollTrigger.isTouch && e.ignoreMobileResize), "autoRefreshEvents" in e && (Ga(ob) || Ga(nb, e.autoRefreshEvents || "none"), g = -1 === (e.autoRefreshEvents + "").indexOf("resize"))
        }, ScrollTrigger.scrollerProxy = function scrollerProxy(e, t) {
            var r = I(e),
                n = T.indexOf(r),
                i = Ba(r);
            ~n && T.splice(n, i ? 6 : 2), t && (i ? Le.unshift(je, t, Ge, t, qe, t) : Le.unshift(r, t))
        }, ScrollTrigger.matchMedia = function matchMedia(e) {
            var t, r, n, i, o;
            for (r in e) n = U.indexOf(r), i = e[r], "all" === (lt = r) ? i() : (t = je.matchMedia(r)) && (t.matches && (o = i()), ~n ? (U[n + 1] = Ma(U[n + 1], i), U[n + 2] = Ma(U[n + 2], o)) : (n = U.length, U.push(r, i, o), t.addListener ? t.addListener(Ib) : t.addEventListener("change", Ib)), U[n + 3] = t.matches), lt = 0;
            return U
        }, ScrollTrigger.clearMatchMedia = function clearMatchMedia(e) {
            e || (U.length = 0), 0 <= (e = U.indexOf(e)) && U.splice(e, 4)
        }, ScrollTrigger.isInViewport = function isInViewport(e, t, r) {
            var n = (Ha(e) ? I(e) : e).getBoundingClientRect(),
                i = n[r ? vt : bt] * t || 0;
            return r ? 0 < n.right - i && n.left + i < je.innerWidth : 0 < n.bottom - i && n.top + i < je.innerHeight
        }, ScrollTrigger.positionInViewport = function positionInViewport(e, t, r) {
            Ha(e) && (e = I(e));
            var n = e.getBoundingClientRect(),
                i = n[r ? vt : bt],
                o = null == t ? i / 2 : t in Y ? Y[t] * i : ~t.indexOf("%") ? parseFloat(t) * i / 100 : parseFloat(t) || 0;
            return r ? (n.left + o) / je.innerWidth : (n.top + o) / je.innerHeight
        }, ScrollTrigger);

    function ScrollTrigger(e, t) {
        a || ScrollTrigger.register(We) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"), this.init(e, t)
    }
    oe.version = "3.10.4", oe.saveStyles = function(e) {
        return e ? Ke(e).forEach(function(e) {
            if (e && e.style) {
                var t = W.indexOf(e);
                0 <= t && W.splice(t, 5), W.push(e, e.style.cssText, e.getBBox && e.getAttribute("transform"), We.core.getCache(e), lt)
            }
        }) : W
    }, oe.revert = function(e, t) {
        return Q(!e, t)
    }, oe.create = function(e, t) {
        return new oe(e, t)
    }, oe.refresh = function(e) {
        return e ? Cb() : (a || oe.register()) && Z(!0)
    }, oe.update = ee, oe.clearScrollMemory = Ob, oe.maxScroll = function(e, t) {
        return Fa(e, t ? Re : Ne)
    }, oe.getScrollFunc = function(e, t) {
        return J(I(e), t ? Re : Ne)
    }, oe.getById = function(e) {
        return Pt[e]
    }, oe.getAll = function() {
        return Ot.filter(function(e) {
            return "ScrollSmoother" !== e.vars.id
        })
    }, oe.isScrolling = function() {
        return !!pt
    }, oe.snapDirectional = kb, oe.addEventListener = function(e, t) {
        var r = H[e] || (H[e] = []);
        ~r.indexOf(t) || r.push(t)
    }, oe.removeEventListener = function(e, t) {
        var r = H[e],
            n = r && r.indexOf(t);
        0 <= n && r.splice(n, 1)
    }, oe.batch = function(e, t) {
        function to(e, t) {
            var r = [],
                n = [],
                i = We.delayedCall(o, function() {
                    t(r, n), r = [], n = []
                }).pause();
            return function(e) {
                r.length || i.restart(!0), r.push(e.trigger), n.push(e), a <= r.length && i.progress(1)
            }
        }
        var r, n = [],
            i = {},
            o = t.interval || .016,
            a = t.batchMax || 1e9;
        for (r in t) i[r] = "on" === r.substr(0, 2) && Ia(t[r]) && "onRefreshInit" !== r ? to(0, t[r]) : t[r];
        return Ia(a) && (a = a(), nb(oe, "refresh", function() {
            return a = t.batchMax()
        })), Ke(e).forEach(function(e) {
            var t = {};
            for (r in i) t[r] = i[r];
            t.trigger = e, n.push(oe.create(t))
        }), n
    };

    function ic(e, t, r, n) {
        return n < t ? e(n) : t < 0 && e(0), n < r ? (n - t) / (r - t) : r < 0 ? t / (t - r) : 1
    }

    function jc(e, t) {
        !0 === t ? e.style.removeProperty("touch-action") : e.style.touchAction = !0 === t ? "auto" : t ? "pan-" + t + (k.isTouch ? " pinch-zoom" : "") : "none", e === qe && jc(Ge, t)
    }

    function lc(e) {
        var t, r = e.event,
            n = e.target,
            i = e.axis,
            o = (r.changedTouches ? r.changedTouches[0] : r).target,
            a = o._gsap || We.core.getCache(o),
            s = dt();
        if (!a._isScrollT || 2e3 < s - a._isScrollT) {
            for (; o && o.scrollHeight <= o.clientHeight;) o = o.parentNode;
            a._isScroll = o && !Ba(o) && o !== n && (se[(t = db(o)).overflowY] || se[t.overflowX]), a._isScrollT = s
        }!a._isScroll && "x" !== i || (r._gsapAllow = !0)
    }

    function mc(e, t, r, n) {
        return k.create({
            target: e,
            capture: !0,
            debounce: !1,
            lockAxis: !0,
            type: t,
            onWheel: n = n && lc,
            onPress: n,
            onDrag: n,
            onScroll: n,
            onEnable: function onEnable() {
                return r && nb(Je, k.eventTypes[0], ce, !1, !0)
            },
            onDisable: function onDisable() {
                return ob(Je, k.eventTypes[0], ce, !0)
            }
        })
    }

    function qc(e) {
        function op() {
            return n = !1
        }

        function rp() {
            o = Fa(d, Ne), _ = et(C ? 1 : 0, o), f && (S = et(0, Fa(d, Re))), a = G
        }

        function xp() {
            rp(), s.isActive() && s.vars.scrollY > o && (h() > o ? s.progress(1) && h(o) : s.resetTo("scrollY", o))
        }
        Ka(e) || (e = {}), e.preventDefault = e.isNormalizer = e.allowClicks = !0, e.type || (e.type = "wheel,touch"), e.debounce = !!e.debounce, e.id = e.id || "normalizer";
        var r, o, n, a, s, l, c, u, f = e.normalizeScrollX,
            t = e.momentum,
            i = e.allowNestedScroll,
            d = I(e.target) || qe,
            p = We.core.globals().ScrollSmoother,
            g = C && (e.content && I(e.content) || p && p.get() && p.get().content()),
            h = J(d, Ne),
            v = J(d, Re),
            b = 1,
            m = (k.isTouch && je.visualViewport ? je.visualViewport.scale * je.visualViewport.width : je.outerWidth) / je.innerWidth,
            y = 0,
            x = Ia(t) ? function() {
                return t(r)
            } : function() {
                return t || 2.8
            },
            w = mc(d, e.type, !0, i),
            S = xa,
            _ = xa;
        return e.ignoreCheck = function(e) {
            return C && "touchmove" === e.type && function ignoreDrag() {
                if (n) {
                    requestAnimationFrame(op);
                    var e = ya(r.deltaY / 2),
                        t = _(h.v - e);
                    return g && t !== h.v + h.offset && (h.offset = t - h.v, g.style.transform = "translateY(" + -h.offset + "px)", g._gsap && (g._gsap.y = -h.offset + "px"), h.cacheID = T.cache, ee()), !0
                }
                g && (g.style.transform = "translateY(0px)", h.offset = h.cacheID = 0, g._gsap && (g._gsap.y = "0px")), n = !0
            }() || 1.05 < b && "touchstart" !== e.type || r.isGesturing || e.touches && 1 < e.touches.length
        }, e.onPress = function() {
            var e = b;
            b = ya((je.visualViewport && je.visualViewport.scale || 1) / m), s.pause(), e !== b && jc(d, 1.01 < b || !f && "x"), n = !1, l = v(), c = h(), rp(), a = G
        }, e.onRelease = e.onGestureStart = function(e, t) {
            if (g && (g.style.transform = "translateY(0px)", h.offset = h.cacheID = 0, g._gsap && (g._gsap.y = "0px")), t) {
                T.cache++;
                var r, n, i = x();
                f && (n = (r = v()) + .05 * i * -e.velocityX / .227, i *= ic(v, r, n, Fa(d, Re)), s.vars.scrollX = S(n)), n = (r = h()) + .05 * i * -e.velocityY / .227, i *= ic(h, r, n, Fa(d, Ne)), s.vars.scrollY = _(n), s.invalidate().duration(i).play(.01), (C && s.vars.scrollY >= o || o - 1 <= r) && We.to({}, {
                    onUpdate: xp,
                    duration: i
                })
            } else u.restart(!0)
        }, e.onWheel = function() {
            s._ts && s.pause(), 1e3 < dt() - y && (a = 0, y = dt())
        }, e.onChange = function(e, t, r, n, i) {
            G !== a && rp(), t && f && v(S(n[2] === t ? l + (e.startX - e.x) : v() + t - n[1])), r && h(_(i[2] === r ? c + (e.startY - e.y) : h() + r - i[1])), ee()
        }, e.onEnable = function() {
            jc(d, !f && "x"), nb(je, "resize", xp), w.enable()
        }, e.onDisable = function() {
            jc(d, !0), ob(je, "resize", xp), w.kill()
        }, ((r = new k(e)).iOS = C) && !h() && h(1), u = r._dc, s = We.to(r, {
            ease: "power4",
            paused: !0,
            scrollX: f ? "+=0.1" : "+=0",
            scrollY: "+=0.1",
            onComplete: u.vars.onComplete
        }), r
    }
    var ae, se = {
            auto: 1,
            scroll: 1
        },
        le = /(input|label|select|textarea)/i,
        ce = function _captureInputs(e) {
            var t = le.test(e.target.tagName);
            (t || ae) && (e._gsapAllow = !0, ae = t)
        };
    oe.sort = function(e) {
        return Ot.sort(e || function(e, t) {
            return -1e6 * (e.vars.refreshPriority || 0) + e.start - (t.start + -1e6 * (t.vars.refreshPriority || 0))
        })
    }, oe.observe = function(e) {
        return new k(e)
    }, oe.normalizeScroll = function(e) {
        if (void 0 === e) return h;
        if (!0 === e && h) return h.enable();
        if (!1 === e) return h && h.kill();
        var t = e instanceof k ? e : qc(e);
        return h && h.target === t.target && h.kill(), Ba(t.target) && (h = t), t
    }, oe.core = {
        _getVelocityProp: K,
        _inputObserver: mc,
        _scrollers: T,
        _proxies: Le,
        bridge: {
            ss: function ss() {
                pt || V("scrollStart"), pt = dt()
            },
            ref: function ref() {
                return rt
            }
        }
    }, Aa() && We.registerPlugin(oe), e.ScrollTrigger = oe, e.default = oe;
    if (typeof(window) === "undefined" || window !== e) {
        Object.defineProperty(e, "__esModule", {
            value: !0
        })
    } else {
        delete e.default
    }
});