/*! * 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 t(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) } } function n() { return h || "undefined" != typeof window && (h = window.gsap) && h.registerPlugin && h } function r(e, t) { return ~R.indexOf(e) && R[R.indexOf(e) + 1][t] } function i(e) { return !!~T.indexOf(e) } function o(e, t, n, r, i) { return e.addEventListener(t, n, { passive: !r, capture: !!i }) } function s(e, t, n, r) { return e.removeEventListener(t, n, !!r) } function a() { return k && k.isPressed || Y.cache++ } function l(e, t) { function n(r) { if (r || 0 === r) { D && (_.history.scrollRestoration = "manual"); var i = k && k.isPressed; r = n.v = Math.round(r) || (k && k.iOS ? 1 : 0), e(r), n.cacheID = Y.cache, i && z("ss", r) } else (t || Y.cache !== n.cacheID || z("ref")) && (n.cacheID = Y.cache, n.v = e()); return n.v + n.offset } return n.offset = 0, e && n } function c(e) { return h.utils.toArray(e)[0] || ("string" == typeof e && !1 !== h.config().nullTargetWarn ? console.warn("Element not found:", e) : null) } function u(e, t) { var n = t.s, o = t.sc, s = Y.indexOf(e), a = o === H.sc ? 1 : 2; return ~s || (s = Y.push(e) - 1), Y[s + a] || (Y[s + a] = l(r(e, n), !0) || (i(e) ? o : l(function (t) { return arguments.length ? e[n] = t : e[n] }))) } function f(e, t, n) { function r(e, t) { var r = X(); t || l < r - s ? (o = i, i = e, a = s, s = r) : n ? i += e : i = o + (e - o) / (r - a) * (s - a) } var i = e, o = e, s = X(), a = s, l = t || 50, c = Math.max(500, 3 * l); return { update: r, reset: function e() { o = i = n ? 0 : i, a = s = 0 }, getVelocity: function e(t) { var l = a, u = o, f = X(); return (t || 0 === t) && t !== i && r(t), s === a || c < f - a ? 0 : (i + (n ? u : -u)) / ((n ? f : s) - l) * 1e3 } } } function d(e, t) { return t && !e._gsapAllow && e.preventDefault(), e.changedTouches ? e.changedTouches[0] : e } function p(e) { var t = Math.max.apply(Math, e), n = Math.min.apply(Math, e); return Math.abs(t) >= Math.abs(n) ? t : n } function $() { var e, t, n, r; (S = h.core.globals().ScrollTrigger) && S.core && (t = (e = S.core).bridge || {}, n = e._scrollers, r = e._proxies, n.push.apply(n, Y), r.push.apply(r, R), Y = n, R = r, z = function e(n, r) { return t[n](r) }) } function g(e) { return (h = e || n()) && "undefined" != typeof document && document.body && (_ = window, y = (m = document).documentElement, b = m.body, T = [_, m, y, b], h.utils.clamp, w = "onpointerenter" in b ? "pointer" : "mouse", x = L.isTouch = _.matchMedia && _.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _ || 0 < navigator.maxTouchPoints || 0 < navigator.msMaxTouchPoints ? 2 : 0, E = L.eventTypes = ("ontouchstart" in y ? "touchstart,touchmove,touchcancel,touchend" : "onpointerdown" in y ? "pointerdown,pointermove,pointercancel,pointerup" : "mousedown,mousemove,mouseup,mouseup").split(","), setTimeout(function () { return D = 0 }, 500), $(), v = 1), v } var h, v, _, m, y, b, x, w, S, T, k, E, P, C, O, D = 1, A = [], Y = [], R = [], X = Date.now, z = function e(t, n) { return n }, M = "scrollLeft", I = "scrollTop", B = { s: M, p: "left", p2: "Left", os: "right", os2: "Right", d: "width", d2: "Width", a: "x", sc: l(function (e) { return arguments.length ? _.scrollTo(e, H.sc()) : _.pageXOffset || m[M] || y[M] || b[M] || 0 }) }, H = { s: I, p: "top", p2: "Top", os: "bottom", os2: "Bottom", d: "height", d2: "Height", a: "y", op: B, sc: l(function (e) { return arguments.length ? _.scrollTo(B.sc(), e) : _.pageYOffset || m[I] || y[I] || b[I] || 0 }) }; B.op = H, Y.cache = 0; var L = (N.prototype.init = function e(t) { v || g(h) || console.warn("Please gsap.registerPlugin(Observer)"), S || $(); var n = t.tolerance, r = t.dragMinimum, l = t.type, T = t.target, P = t.lineHeight, C = t.debounce, O = t.preventDefault, D = t.onStop, Y = t.onStopDelay, R = t.ignore, z = t.wheelSpeed, M = t.event, I = t.onDragStart, L = t.onDragEnd, N = t.onDrag, W = t.onPress, V = t.onRelease, G = t.onRight, U = t.onLeft, q = t.onUp, F = t.onDown, j = t.onChangeX, K = t.onChangeY, Z = t.onChange, J = t.onToggleX, Q = t.onToggleY, ee = t.onHover, et = t.onHoverEnd, en = t.onMove, er = t.ignoreCheck, ei = t.isNormalizer, eo = t.onGestureStart, es = t.onGestureEnd, ea = t.onWheel, el = t.onEnable, ec = t.onDisable, eu = t.onClick, ef = t.scrollSpeed, ed = t.capture, ep = t.allowClicks, e$ = t.lockAxis, eg = t.onLockAxis; function eh() { return eG = X() } function ev(e, t) { return (e1.event = e) && R && ~R.indexOf(e.target) || t && eL && "touch" !== e.pointerType || er && er(e, t) } function e_() { var e = e1.deltaX = p(eV), t = e1.deltaY = p(e2), r = Math.abs(e) >= n, i = Math.abs(t) >= n; Z && (r || i) && Z(e1, e, t, eV, e2), r && (G && 0 < e1.deltaX && G(e1), U && e1.deltaX < 0 && U(e1), j && j(e1), J && e1.deltaX < 0 != ez < 0 && J(e1), ez = e1.deltaX, eV[0] = eV[1] = eV[2] = 0), i && (F && 0 < e1.deltaY && F(e1), q && e1.deltaY < 0 && q(e1), K && K(e1), Q && e1.deltaY < 0 != eM < 0 && Q(e1), eM = e1.deltaY, e2[0] = e2[1] = e2[2] = 0), (eA || eD) && (en && en(e1), eg && eR && eg(e1), eD && (N(e1), eD = !1), eA = eR = !1), eY && (ea(e1), eY = !1), eC = 0 } function em(e, t, n) { eV[n] += e, e2[n] += t, e1._vx.update(e), e1._vy.update(t), C ? eC = eC || requestAnimationFrame(e_) : e_() } function ey(e, t) { "y" !== eX && (eV[2] += e, e1._vx.update(e, !0)), "x" !== eX && (e2[2] += t, e1._vy.update(t, !0)), e$ && !eX && (e1.axis = eX = Math.abs(e) > Math.abs(t) ? "x" : "y", eR = !0), C ? eC = eC || requestAnimationFrame(e_) : e_() } function eb(e) { if (!ev(e, 1)) { var t = (e = d(e, O)).clientX, n = e.clientY, i = t - e1.x, o = n - e1.y, s = e1.isDragging; e1.x = t, e1.y = n, (s || Math.abs(e1.startX - t) >= r || Math.abs(e1.startY - n) >= r) && (N && (eD = !0), s || (e1.isDragging = !0), ey(i, o), s || I && I(e1)) } } function ex(e) { if (!ev(e, 1)) { s(ei ? T : eW, E[1], eb, !0); var t = e1.isDragging && (3 < Math.abs(e1.x - e1.startX) || 3 < Math.abs(e1.y - e1.startY)), n = d(e); t || (e1._vx.reset(), e1._vy.reset(), O && ep && h.delayedCall(.08, function () { if (300 < X() - eG && !e.defaultPrevented) { if (e.target.click) e.target.click(); else if (eW.createEvent) { var t = eW.createEvent("MouseEvents"); t.initMouseEvent("click", !0, !0, _, 1, n.screenX, n.screenY, n.clientX, n.clientY, !1, !1, !1, !1, 0, null), e.target.dispatchEvent(t) } } })), e1.isDragging = e1.isGesturing = e1.isPressed = !1, D && !ei && eO.restart(!0), L && t && L(e1), V && V(e1, t) } } function ew(e) { return e.touches && 1 < e.touches.length && (e1.isGesturing = !0) && eo(e, e1.isDragging) } function e8() { return e1.isGesturing = !1, es(e1) } function eS(e) { if (!ev(e)) { var t = e3(), n = eI(); em((t - eB) * ef, (n - eH) * ef, 1), eB = t, eH = n, D && eO.restart(!0) } } function eT(e) { if (!ev(e)) { e = d(e, O), ea && (eY = !0); var t = (1 === e.deltaMode ? P : 2 === e.deltaMode ? _.innerHeight : 1) * z; em(e.deltaX * t, e.deltaY * t, 0), D && !ei && eO.restart(!0) } } function e0(e) { if (!ev(e)) { var t = e.clientX, n = e.clientY, r = t - e1.x, i = n - e1.y; e1.x = t, e1.y = n, eA = !0, (r || i) && ey(r, i) } } function ek(e) { e1.event = e, ee(e1) } function eE(e) { e1.event = e, et(e1) } function eP(e) { return ev(e) || d(e, O) && eu(e1) } this.target = T = c(T) || y, this.vars = t, R = R && h.utils.toArray(R), n = n || 0, r = r || 0, z = z || 1, ef = ef || 1, l = l || "wheel,touch,pointer", C = !1 !== C, P = P || parseFloat(_.getComputedStyle(b).lineHeight) || 22; var eC, eO, eD, eA, eY, eR, eX, e1 = this, ez = 0, eM = 0, e3 = u(T, B), eI = u(T, H), eB = e3(), eH = eI(), eL = ~l.indexOf("touch") && !~l.indexOf("pointer") && "pointerdown" === E[0], eN = i(T), eW = T.ownerDocument || m, eV = [0, 0, 0], e2 = [0, 0, 0], eG = 0, eU = e1.onPress = function (e) { ev(e, 1) || (e1.axis = eX = null, eO.pause(), e1.isPressed = !0, e = d(e), ez = eM = 0, e1.startX = e1.x = e.clientX, e1.startY = e1.y = e.clientY, e1._vx.reset(), e1._vy.reset(), o(ei ? T : eW, E[1], eb, O, !0), e1.deltaX = e1.deltaY = 0, W && W(e1)) }; eO = e1._dc = h.delayedCall(Y || .25, function e() { e1._vx.reset(), e1._vy.reset(), eO.pause(), D && D(e1) }).pause(), e1.deltaX = e1.deltaY = 0, e1._vx = f(0, 50, !0), e1._vy = f(0, 50, !0), e1.scrollX = e3, e1.scrollY = eI, e1.isDragging = e1.isGesturing = e1.isPressed = !1, e1.enable = function (e) { return e1.isEnabled || (o(eN ? eW : T, "scroll", a), 0 <= l.indexOf("scroll") && o(eN ? eW : T, "scroll", eS, O, ed), 0 <= l.indexOf("wheel") && o(T, "wheel", eT, O, ed), (0 <= l.indexOf("touch") && x || 0 <= l.indexOf("pointer")) && (o(T, E[0], eU, O, ed), o(eW, E[2], ex), o(eW, E[3], ex), ep && o(T, "click", eh, !1, !0), eu && o(T, "click", eP), eo && o(eW, "gesturestart", ew), es && o(eW, "gestureend", e8), ee && o(T, w + "enter", ek), et && o(T, w + "leave", eE), en && o(T, w + "move", e0)), e1.isEnabled = !0, e && e.type && eU(e), el && el(e1)), e1 }, e1.disable = function () { e1.isEnabled && (A.filter(function (e) { return e !== e1 && i(e.target) }).length || s(eN ? eW : T, "scroll", a), e1.isPressed && (e1._vx.reset(), e1._vy.reset(), s(ei ? T : eW, E[1], eb, !0)), s(eN ? eW : T, "scroll", eS, ed), s(T, "wheel", eT, ed), s(T, E[0], eU, ed), s(eW, E[2], ex), s(eW, E[3], ex), s(T, "click", eh, !0), s(T, "click", eP), s(eW, "gesturestart", ew), s(eW, "gestureend", e8), s(T, w + "enter", ek), s(T, w + "leave", eE), s(T, w + "move", e0), e1.isEnabled = e1.isPressed = e1.isDragging = !1, ec && ec(e1)) }, e1.kill = function () { e1.disable(); var e = A.indexOf(e1); 0 <= e && A.splice(e, 1), k === e1 && (k = 0) }, A.push(e1), ei && i(T) && (k = e1), e1.enable(M) }, P = N, C = [{ key: "velocityX", get: function e() { return this._vx.getVelocity() } }, { key: "velocityY", get: function e() { return this._vy.getVelocity() } }], t(P.prototype, C), O && t(P, O), N); function N(e) { this.init(e) } function W() { return eB = 1 } function V() { return eB = 0 } function G(e) { return e } function U(e) { return Math.round(1e5 * e) / 1e5 || 0 } function q() { return "undefined" != typeof window } function F() { return eP || q() && (eP = window.gsap) && eP.registerPlugin && eP } function j(e) { return !!~eR.indexOf(e) } function K(e) { return r(e, "getBoundingClientRect") || (j(e) ? function () { return tz.width = eO.innerWidth, tz.height = eO.innerHeight, tz } : function () { return th(e) }) } function Z(e, t) { var n = t.s, i = t.d2, o = t.d, s = t.a; return (s = r(e, n = "scroll" + i)) ? s() - K(e)()[o] : j(e) ? (eA[n] || eY[n]) - (eO["inner" + i] || eA["client" + i] || eY["client" + i]) : e[n] - e["offset" + i] } function J(e, t) { for (var n = 0; n < eV.length; n += 3)t && !~t.indexOf(eV[n + 1]) || e(eV[n], eV[n + 1], eV[n + 2]) } function Q(e) { return "string" == typeof e } function ee(e) { return "function" == typeof e } function et(e) { return "number" == typeof e } function en(e) { return "object" == typeof e } function er(e) { return ee(e) && e() } function ei(e, t) { return function () { var n = er(e), r = er(t); return function () { er(n), er(r) } } } function eo(e, t, n) { return e && e.progress(t ? 0 : 1) && n && e.pause() } function es(e, t) { if (e.enabled) { var n = t(e); n && n.totalTime && (e.callbackAnimation = n) } } function ea(e) { return eO.getComputedStyle(e) } function el(e, t) { for (var n in t) n in e || (e[n] = t[n]); return e } function ec(e, t) { var n = t.d2; return e["offset" + n] || e["client" + n] || 0 } function eu(e) { var t, n = [], r = e.labels, i = e.duration(); for (t in r) n.push(r[t] / i); return n } function ef(e) { var t = eP.utils.snap(e), n = Array.isArray(e) && e.slice(0).sort(function (e, t) { return e - t }); return n ? function (e, r, i) { var o; if (void 0 === i && (i = .001), !r) return t(e); if (0 < r) { for (e -= i, o = 0; o < n.length; o++)if (n[o] >= e) return n[o]; return n[o - 1] } for (o = n.length, e += i; o--;)if (n[o] <= e) return n[o]; return n[0] } : function (n, r, i) { void 0 === i && (i = .001); var o = t(n); return !r || Math.abs(o - n) < i || o - n < 0 == r < 0 ? o : t(r < 0 ? n - e : n + e) } } function ed(e, t, n, r) { return n.split(",").forEach(function (n) { return e(t, n, r) }) } function ep(e, t, n, r, i) { return e.addEventListener(t, n, { passive: !r, capture: !!i }) } function e$(e, t, n, r) { return e.removeEventListener(t, n, !!r) } function eg(e, t, n) { return n && n.wheelHandler && e(t, "wheel", n) } function eh(e, t) { if (Q(e)) { var n = e.indexOf("="), r = ~n ? (e.charAt(n - 1) + 1) * parseFloat(e.substr(n + 1)) : 0; ~n && (e.indexOf("%") > n && (r *= t / 100), e = e.substr(0, n - 1)), e = r + (e in tm ? tm[e] * t : ~e.indexOf("%") ? parseFloat(e) * t / 100 : parseFloat(e) || 0) } return e } function ev(e, t, n, i, o, s, a, l) { var c = o.startColor, u = o.endColor, f = o.fontSize, d = o.indent, p = o.fontWeight, $ = eD.createElement("div"), g = j(n) || "fixed" === r(n, "pinType"), h = -1 !== e.indexOf("scroller"), v = g ? eY : n, _ = -1 !== e.indexOf("start"), m = _ ? c : u, y = "border-color:" + m + ";font-size:" + f + ";color:" + m + ";font-weight:" + p + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;"; return y += "position:" + ((h || l) && g ? "fixed;" : "absolute;"), (h || l || !g) && (y += (i === H ? to : ts) + ":" + (s + parseFloat(d)) + "px;"), a && (y += "box-sizing:border-box;text-align:left;width:" + a.offsetWidth + "px;"), $._isStart = _, $.setAttribute("class", "gsap-marker-" + e + (t ? " marker-" + t : "")), $.style.cssText = y, $.innerText = t || 0 === t ? e + "-" + t : e, v.children[0] ? v.insertBefore($, v.children[0]) : v.appendChild($), $._offset = $["offset" + i.op.d2], ty($, 0, i, _), $ } function e_() { return 34 < te() - tn && tA() } function em() { e6 && e6.isPressed && !(e6.startX > eY.clientWidth) || (Y.cache++, eK = eK || requestAnimationFrame(tA), tn || tT("scrollStart"), tn = te()) } function ey() { eF = eO.innerWidth, eq = eO.innerHeight } function eb() { Y.cache++, eI || eU || eD.fullscreenElement || eD.webkitFullscreenElement || e7 && eF === eO.innerWidth && !(Math.abs(eO.innerHeight - eq) > .25 * eO.innerHeight) || eX.restart(!0) } function ex(e) { var t, n = eP.ticker.frame, r = [], i = 0; if (eZ !== n || eQ) { for (tE(); i < tS.length; i += 4)(t = eO.matchMedia(tS[i]).matches) !== tS[i + 3] && ((tS[i + 3] = t) ? r.push(i) : tE(1, tS[i]) || ee(tS[i + 2]) && tS[i + 2]()); for (tk(), i = 0; i < r.length; i++)e5 = tS[t = r[i]], tS[t + 2] = tS[t + 1](e); e5 = 0, eC && tC(0, 1), eZ = n, tT("matchMedia") } } function ew() { return e$(t3, "scrollEnd", ew) || tC(!0) } function e8() { return Y.cache++ && Y.forEach(function (e) { return "function" == typeof e && (e.rec = 0) }) } function eS(e, t, n, r) { if (e.parentNode !== t) { for (var i, o = tY.length, s = t.style, a = e.style; o--;)s[i = tY[o]] = n[i]; s.position = "absolute" === n.position ? "absolute" : "relative", "inline" === n.display && (s.display = "inline-block"), a[ts] = a[to] = s.flexBasis = "auto", s.overflow = "visible", s.boxSizing = "border-box", s[ta] = ec(e, B) + tg, s[tl] = ec(e, H) + tg, s[td] = a[tp] = a.top = a.left = "0", t1(r), a[ta] = a.maxWidth = n[ta], a[tl] = a.maxHeight = n[tl], a[td] = n[td], e.parentNode.insertBefore(t, e), t.appendChild(e) } } function eT(e) { for (var t = tR.length, n = e.style, r = [], i = 0; i < t; i++)r.push(tR[i], n[tR[i]]); return r.t = e, r } function e0(e, t, n, r, i, o, s, a, l, u, f, d, p) { ee(e) && (e = e(a)), Q(e) && "max" === e.substr(0, 3) && (e = d + ("=" === e.charAt(4) ? eh("0" + e.substr(3), n) : 0)); var $, g, h, v = p ? p.time() : 0; if (p && p.seek(0), et(e)) s && ty(s, n, r, !0); else { ee(t) && (t = t(a)); var _, m, y, b, x = e.split(" "); h = c(t) || eY, (_ = th(h) || {}).left || _.top || "none" !== ea(h).display || (b = h.style.display, h.style.display = "block", _ = th(h), b ? h.style.display = b : h.style.removeProperty("display")), m = eh(x[0], _[r.d]), y = eh(x[1] || "0", n), e = _[r.p] - l[r.p] - u + m + i - y, s && ty(s, y, r, n - y < 20 || s._isStart && 20 < y), n -= n - y } if (o) { var w = e + n, S = o._isStart; $ = "scroll" + r.d2, ty(o, w, r, S && 20 < w || !S && (f ? Math.max(eY[$], eA[$]) : o.parentNode[$]) <= w + 1), f && (l = th(s), f && (o.style[r.op.p] = l[r.op.p] - r.op.m - o._offset + tg)) } return p && h && ($ = th(h), p.seek(d), g = th(h), p._caScrollDist = $[r.p] - g[r.p], e = e / p._caScrollDist * d), p && p.seek(v), p ? e : Math.round(e) } function ek(e, t, n, r) { if (e.parentNode !== t) { var i, o, s = e.style; if (t === eY) { for (i in e._stOrig = s.cssText, o = ea(e)) +i || tM.test(i) || !o[i] || "string" != typeof s[i] || "0" === i || (s[i] = o[i]); s.top = n, s.left = r } else s.cssText = e._stOrig; eP.core.getCache(e).uncache = 1, t.appendChild(e) } } function eE(e, t) { function n(t, a, l, c, u) { var f = n.tween, d = a.onComplete; return l = l || o(), u = c && u || 0, c = c || t - l, f && f.kill(), r = Math.round(l), a[s] = t, (a.modifiers = {})[s] = function (e) { return (e = U(o())) !== r && e !== i && 2 < Math.abs(e - r) && 2 < Math.abs(e - i) ? (f.kill(), n.tween = 0) : e = l + c * f.ratio + u * f.ratio * f.ratio, i = r, r = U(e) }, a.onComplete = function () { n.tween = 0, d && d.call(f) }, f = n.tween = eP.to(e, a) } var r, i, o = u(e, t), s = "_scroll" + t.p2; return (e[s] = o).wheelHandler = function () { return n.tween && n.tween.kill() && (n.tween = 0) }, ep(e, "wheel", o.wheelHandler), n } L.version = "3.10.4", L.create = function (e) { return new L(e) }, L.register = g, L.getAll = function () { return A.slice() }, L.getById = function (e) { return A.filter(function (t) { return t.vars.id === e })[0] }, n() && h.registerPlugin(L); var eP, eC, eO, eD, eA, eY, eR, eX, e1, ez, eM, e3, eI, eB, eH, eL, eN, eW, eV, e2, eG, eU, e6, e7, eq, eF, ej, e4, eK, e5, eZ, e9, eJ, eQ = 1, te = Date.now, tt = te(), tn = 0, tr = 0, ti = Math.abs, to = "right", ts = "bottom", ta = "width", tl = "height", tc = "Right", tu = "Left", tf = "Bottom", td = "padding", tp = "margin", t$ = "Width", tg = "px", th = function e(t, n) { var r = n && "matrix(1, 0, 0, 1, 0, 0)" !== ea(t)[eH] && eP.to(t, { x: 0, y: 0, xPercent: 0, yPercent: 0, rotation: 0, rotationX: 0, rotationY: 0, scale: 1, skewX: 0, skewY: 0 }).progress(1), i = t.getBoundingClientRect(); return r && r.progress(0).kill(), i }, tv = { startColor: "green", endColor: "red", indent: 0, fontSize: "16px", fontWeight: "normal" }, t_ = { toggleActions: "play", anticipatePin: 0 }, tm = { top: 0, left: 0, center: .5, bottom: 1, right: 1 }, ty = function e(t, n, r, i) { var o = { display: "block" }, s = r[i ? "os2" : "p2"], a = r[i ? "p2" : "os2"]; t._isFlipped = i, o[r.a + "Percent"] = i ? -100 : 0, o[r.a] = i ? "1px" : 0, o["border" + s + t$] = 1, o["border" + a + t$] = 0, o[r.p] = n + "px", eP.set(t, o) }, tb = [], tx = {}, tw = {}, t8 = [], tS = [], tT = function e(t) { return tw[t] && tw[t].map(function (e) { return e() }) || t8 }, t0 = [], tk = function e(t) { for (var n = 0; n < t0.length; n += 5)t && t0[n + 4] !== t || (t0[n].style.cssText = t0[n + 1], t0[n].getBBox && t0[n].setAttribute("transform", t0[n + 2] || ""), t0[n + 3].uncache = 1) }, tE = function e(t, n) { var r; for (eL = 0; eL < tb.length; eL++)r = tb[eL], n && r.media !== n || (t ? r.kill(1) : r.revert()); n && tk(n), n || tT("revert") }, tP = 0, tC = function e(t, n) { if (!tn || t) { e9 = !0; var r = tT("refreshInit"); e2 && t3.sort(), n || tE(), tb.slice(0).forEach(function (e) { return e.refresh() }), tb.forEach(function (e) { return "max" === e.vars.end && e.setPositions(e.start, Z(e.scroller, e._dir)) }), r.forEach(function (e) { return e && e.render && e.render(-1) }), e8(), eX.pause(), tP++, e9 = !1, tT("refresh") } else ep(t3, "scrollEnd", ew) }, tO = 0, tD = 1, tA = function e() { if (!e9) { t3.isUpdating = !0, eJ && eJ.update(0); var t = tb.length, n = te(), r = 50 <= n - tt, i = t && tb[0].scroll(); if (tD = i < tO ? -1 : 1, tO = i, r && (tn && !eB && 200 < n - tn && (tn = 0, tT("scrollEnd")), eM = tt, tt = n), tD < 0) { for (eL = t; 0 < eL--;)tb[eL] && tb[eL].update(0, r); tD = 1 } else for (eL = 0; eL < t; eL++)tb[eL] && tb[eL].update(0, r); t3.isUpdating = !1 } eK = 0 }, tY = ["left", "top", ts, to, tp + tf, tp + tc, tp + "Top", tp + tu, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"], tR = tY.concat([ta, tl, "boxSizing", "max" + t$, "maxHeight", "position", tp, td, td + "Top", td + tc, td + tf, td + tu]), tX = /([A-Z])/g, t1 = function e(t) { if (t) { var n, r, i = t.t.style, o = t.length, s = 0; for ((t.t._gsap || eP.core.getCache(t.t)).uncache = 1; s < o; s += 2)r = t[s + 1], n = t[s], r ? i[n] = r : i[n] && i.removeProperty(n.replace(tX, "-$1").toLowerCase()) } }, tz = { left: 0, top: 0 }, tM = /(webkit|moz|length|cssText|inset)/i, t3 = (tI.prototype.init = function e(t, n) { if (this.progress = this.start = 0, this.vars && this.kill(!0, !0), tr) { var i, o, s, a, l, f, d, p, $, g, h, v, _, m, y, b, x, w, S, T, k, E, P, C, O, D, A, Y, X, z, M, I, L, N, W, V, q, F, J, er, ei, ed, eg, e_, ey, ex, e8, eC, eR = (t = el(Q(t) || et(t) || t.nodeType ? { trigger: t } : t, t_)).onUpdate, eX = t.toggleClass, e3 = t.id, eH = t.onToggle, eN = t.onRefresh, eW = t.scrub, eV = t.trigger, eU = t.pin, e6 = t.pinSpacing, e7 = t.invalidateOnRefresh, eq = t.anticipatePin, eF = t.onScrubComplete, ej = t.onSnapComplete, eK = t.once, eZ = t.snap, tt = t.pinReparent, to = t.pinSpacer, ts = t.containerAnimation, tm = t.fastScrollEnd, ty = t.preventOverlaps, tw = t.horizontal || t.containerAnimation && !1 !== t.horizontal ? B : H, t8 = !eW && 0 !== eW, tS = c(t.scroller || eO), tT = eP.core.getCache(tS), t0 = j(tS), tk = "fixed" === ("pinType" in t ? t.pinType : r(tS, "pinType") || t0 && "fixed"), tE = [t.onEnter, t.onLeave, t.onEnterBack, t.onLeaveBack], tP = t8 && t.toggleActions.split(" "), tC = "markers" in t ? t.markers : t_.markers, tO = t0 ? 0 : parseFloat(ea(tS)["border" + tw.p2 + t$]) || 0, tA = this, tY = t.onRefreshInit && function () { return t.onRefreshInit(tA) }, tR = (i = tS, o = t0, a = (s = tw).d, l = s.d2, f = s.a, (f = r(i, "getBoundingClientRect")) ? function () { return f()[a] } : function () { return (o ? eO["inner" + l] : i["client" + l]) || 0 }), tX = (d = tS, !(p = t0) || ~R.indexOf(d) ? K(d) : function () { return tz }), tM = 0, t3 = 0, tB = u(tS, tw); if (tA.media = e5, tA._dir = tw, eq *= 45, tA.scroller = tS, tA.scroll = ts ? ts.time.bind(ts) : tB, v = tB(), tA.vars = t, n = n || t.animation, "refreshPriority" in t && (e2 = 1, -9999 === t.refreshPriority && (eJ = tA)), tT.tweenScroll = tT.tweenScroll || { top: eE(tS, H), left: eE(tS, B) }, tA.tweenTo = $ = tT.tweenScroll[tw.p], tA.scrubDuration = function (e) { (J = et(e) && e) ? F ? F.duration(e) : F = eP.to(n, { ease: "expo", totalProgress: "+=0.001", duration: J, paused: !0, onComplete: function e() { return eF && eF(tA) } }) : (F && F.progress(1).kill(), F = 0) }, n && (n.vars.lazy = !1, n._initted || !1 !== n.vars.immediateRender && !1 !== t.immediateRender && n.render(0, !0, !0), tA.animation = n.pause(), (n.scrollTrigger = tA).scrubDuration(eW), V = 0, e3 = e3 || n.vars.id), tb.push(tA), eZ && (en(eZ) && !eZ.push || (eZ = { snapTo: eZ }), "scrollBehavior" in eY.style && eP.set(t0 ? [eY, eA] : tS, { scrollBehavior: "auto" }), h = ee(eZ.snapTo) ? eZ.snapTo : "labels" === eZ.snapTo ? (e8 = n, function (e) { return eP.utils.snap(eu(e8), e) }) : "labelsDirectional" === eZ.snapTo ? (eC = n, function (e, t) { return ef(eu(eC))(e, t.direction) }) : !1 !== eZ.directional ? function (e, t) { return ef(eZ.snapTo)(e, te() - t3 < 500 ? 0 : t.direction) } : eP.utils.snap(eZ.snapTo), er = en(er = eZ.duration || { min: .1, max: 2 }) ? ez(er.min, er.max) : ez(er, er), ei = eP.delayedCall(eZ.delay || J / 2 || .1, function () { var e = tB(), t = te() - t3 < 500, r = $.tween; if (!(t || 10 > Math.abs(tA.getVelocity())) || r || eB || tM === e) tA.isActive && tM !== e && ei.restart(!0); else { var i = (e - m) / k, o = n && !t8 ? n.totalProgress() : i, s = t ? 0 : (o - q) / (te() - eM) * 1e3 || 0, a = eP.utils.clamp(-i, 1 - i, ti(s / 2) * s / .185), l = i + (!1 === eZ.inertia ? 0 : a), c = ez(0, 1, h(l, tA)), u = Math.round(m + c * k), f = eZ.onStart, d = eZ.onInterrupt, p = eZ.onComplete; if (e <= y && m <= e && u !== e) { if (r && !r._initted && r.data <= ti(u - e)) return; !1 === eZ.inertia && (a = c - i), $(u, { duration: er(ti(.185 * Math.max(ti(l - o), ti(c - o)) / s / .05 || 0)), ease: eZ.ease || "power3", data: ti(u - e), onInterrupt: function e() { return ei.restart(!0) && d && d(tA) }, onComplete: function e() { tA.update(), tM = tB(), V = q = n && !t8 ? n.totalProgress() : tA.progress, ej && ej(tA), p && p(tA) } }, e, a * k, u - e - a * k), f && f(tA, $.tween) } } }).pause()), e3 && (tx[e3] = tA), ex = (ex = (eV = tA.trigger = c(eV || eU)) && eV._gsap && eV._gsap.stRevert) && ex(tA), eU = !0 === eU ? eV : c(eU), Q(eX) && (eX = { targets: eV, className: eX }), eU && (!1 === e6 || e6 === tp || (e6 = !(!e6 && "flex" === ea(eU.parentNode).display) && td), tA.pin = eU, !1 !== t.force3D && eP.set(eU, { force3D: !0 }), (g = eP.core.getCache(eU)).spacer ? E = g.pinState : (to && ((to = c(to)) && !to.nodeType && (to = to.current || to.nativeElement), g.spacerIsNative = !!to, to && (g.spacerState = eT(to))), g.spacer = O = to || eD.createElement("div"), O.classList.add("pin-spacer"), e3 && O.classList.add("pin-spacer-" + e3), g.pinState = E = eT(eU)), tA.spacer = O = g.spacer, M = (W = ea(eU))[e6 + tw.os2], A = eP.getProperty(eU), Y = eP.quickSetter(eU, tw.a, tg), eS(eU, O, W), C = eT(eU)), tC) { T = en(tC) ? el(tC, tv) : tv, w = ev("scroller-start", e3, tS, tw, T, 0), S = ev("scroller-end", e3, tS, tw, T, 0, w), D = w["offset" + tw.op.d2]; var tH, tL, tN = c(r(tS, "content") || tS); b = this.markerStart = ev("start", e3, tN, tw, T, D, 0, ts), x = this.markerEnd = ev("end", e3, tN, tw, T, D, 0, ts), ts && (ey = eP.quickSetter([b, x], tw.a, tg)), tk || R.length && !0 === r(tS, "fixedMarkers") || (tH = t0 ? eY : tS, tL = ea(tH).position, tH.style.position = "absolute" === tL || "fixed" === tL ? tL : "relative", eP.set([w, S], { force3D: !0 }), L = eP.quickSetter(w, tw.a, tg), N = eP.quickSetter(S, tw.a, tg)) } if (ts) { var tW = ts.vars.onUpdate, tV = ts.vars.onUpdateParams; ts.eventCallback("onUpdate", function () { tA.update(0, 0, 1), tW && tW.apply(tV || []) }) } tA.previous = function () { return tb[tb.indexOf(tA) - 1] }, tA.next = function () { return tb[tb.indexOf(tA) + 1] }, tA.revert = function (e) { var t = !1 !== e || !tA.enabled, r = eI; t !== tA.isReverted && (t && (!tA.scroll.rec && eI && e9 && (tA.scroll.rec = tB()), eg = Math.max(tB(), tA.scroll.rec || 0), ed = tA.progress, e_ = n && n.progress()), b && [b, x, w, S].forEach(function (e) { return e.style.display = t ? "none" : "block" }), t && (eI = 1), tA.update(t), eI = r, eU && (t ? function e(t, n, r) { t1(r); var i = t._gsap; if (i.spacerIsNative) t1(i.spacerState); else if (t.parentNode === n) { var o = n.parentNode; o && (o.insertBefore(t, n), o.removeChild(n)) } }(eU, O, E) : tt && tA.isActive || eS(eU, O, ea(eU), I)), tA.isReverted = t) }, tA.refresh = function (e, r) { if (!eI && tA.enabled || r) { if (eU && e && tn) ep(tI, "scrollEnd", ew); else { !e9 && tY && tY(tA), eI = 1, t3 = te(), $.tween && ($.tween.kill(), $.tween = 0), F && F.pause(), e7 && n && n.time(-.01, !0).invalidate(), tA.isReverted || tA.revert(); for (var i, o, s, a, l, f, d, p, g, h, T = tR(), D = tX(), Y = ts ? ts.duration() : Z(tS, tw), R = 0, M = 0, L = t.end, N = t.endTrigger || eV, W = t.start || (0 !== t.start && eV ? eU ? "0 0" : "0 100%" : 0), V = tA.pinnedContainer = t.pinnedContainer && c(t.pinnedContainer), G = eV && Math.max(0, tb.indexOf(tA)) || 0, U = G; U--;)(f = tb[U]).end || f.refresh(0, 1) || (eI = 1), (d = f.pin) && (d === eV || d === eU) && !f.isReverted && ((h = h || []).unshift(f), f.revert()), f !== tb[U] && (G--, U--); for (ee(W) && (W = W(tA)), m = e0(W, eV, T, tw, tB(), b, w, tA, D, tO, tk, Y, ts) || (eU ? -.001 : 0), ee(L) && (L = L(tA)), Q(L) && !L.indexOf("+=") && (~L.indexOf(" ") ? L = (Q(W) ? W.split(" ")[0] : "") + L : (R = eh(L.substr(2), T), L = Q(W) ? W : m + R, N = eV)), k = (y = Math.max(m, e0(L || (N ? "100% 0" : Y), N, T, tw, tB() + R, x, S, tA, D, tO, tk, Y, ts)) || -.001) - m || (m -= .01) && .001, R = 0, U = G; U--;)(d = (f = tb[U]).pin) && f.start - f._pinPush < m && !ts && 0 < f.end && (i = f.end - f.start, d !== eV && d !== V || et(W) || (R += i * (1 - f.progress)), d === eU && (M += i)); if (m += R, y += R, tA._pinPush = M, b && R && ((i = {})[tw.a] = "+=" + R, V && (i[tw.p] = "-=" + tB()), eP.set([b, x], i)), eU) i = ea(eU), a = tw === H, s = tB(), X = parseFloat(A(tw.a)) + M, !Y && 1 < y && ((t0 ? eY : tS).style["overflow-" + tw.a] = "scroll"), eS(eU, O, i), C = eT(eU), o = th(eU, !0), p = tk && u(tS, a ? B : H)(), e6 && ((I = [e6 + tw.os2, k + M + tg]).t = O, (U = e6 === td ? ec(eU, tw) + k + M : 0) && I.push(tw.d, U + tg), t1(I), tk && tB(eg)), tk && ((l = { top: o.top + (a ? s - m : p) + tg, left: o.left + (a ? p : s - m) + tg, boxSizing: "border-box", position: "fixed" })[ta] = l.maxWidth = Math.ceil(o.width) + tg, l[tl] = l.maxHeight = Math.ceil(o.height) + tg, l[tp] = l[tp + "Top"] = l[tp + tc] = l[tp + tf] = l[tp + tu] = "0", l[td] = i[td], l[td + "Top"] = i[td + "Top"], l[td + tc] = i[td + tc], l[td + tf] = i[td + tf], l[td + tu] = i[td + tu], P = function e(t, n, r) { for (var i, o = [], s = t.length, a = r ? 8 : 0; a < s; a += 2)i = t[a], o.push(i, i in n ? n[i] : t[a + 1]); return o.t = t.t, o }(E, l, tt)), n ? (g = n._initted, eG(1), n.render(n.duration(), !0, !0), z = A(tw.a) - X + k + M, k !== z && tk && P.splice(P.length - 2, 2), n.render(0, !0, !0), g || n.invalidate(), eG(0)) : z = k; else if (eV && tB() && !ts) for (o = eV.parentNode; o && o !== eY;)o._pinOffset && (m -= o._pinOffset, y -= o._pinOffset), o = o.parentNode; h && h.forEach(function (e) { return e.revert(!1) }), tA.start = m, tA.end = y, v = _ = tB(), ts || (v < eg && tB(eg), tA.scroll.rec = 0), tA.revert(!1), ei && (tM = -1, tA.isActive && tB(m + k * ed), ei.restart(!0)), eI = 0, n && t8 && (n._initted || e_) && n.progress() !== e_ && n.progress(e_, !0).render(n.time(), !0, !0), (ed !== tA.progress || ts) && (n && !t8 && n.totalProgress(ed, !0), tA.progress = ed, tA.update(0, 0, 1)), eU && e6 && (O._pinOffset = Math.round(tA.progress * z)), eN && eN(tA) } } }, tA.getVelocity = function () { return (tB() - _) / (te() - eM) * 1e3 || 0 }, tA.endAnimation = function () { eo(tA.callbackAnimation), n && (F ? F.progress(1) : n.paused() ? t8 || eo(n, tA.direction < 0, 1) : eo(n, n.reversed())) }, tA.labelToScroll = function (e) { return n && n.labels && (m || tA.refresh() || m) + n.labels[e] / n.duration() * k || 0 }, tA.getTrailing = function (e) { var t = tb.indexOf(tA), n = 0 < tA.direction ? tb.slice(0, t).reverse() : tb.slice(t + 1); return (Q(e) ? n.filter(function (t) { return t.vars.preventOverlaps === e }) : n).filter(function (e) { return 0 < tA.direction ? e.end <= m : e.start >= y }) }, tA.update = function (e, t, r) { if (!ts || r || e) { var i, o, s, a, l, c, u, f = tA.scroll(), d = e ? 0 : (f - m) / k, p = d < 0 ? 0 : 1 < d ? 1 : d || 0, g = tA.progress; if (t && (_ = v, v = ts ? tB() : f, eZ && (q = V, V = n && !t8 ? n.totalProgress() : p)), eq && !p && eU && !eI && !eQ && tn && m < f + (f - _) / (te() - eM) * eq && (p = 1e-4), p !== g && tA.enabled) { if (a = (l = (i = tA.isActive = !!p && p < 1) != (!!g && g < 1)) || !!p != !!g, tA.direction = g < p ? 1 : -1, tA.progress = p, a && !eI && (o = p && !g ? 0 : 1 === p ? 1 : 1 === g ? 2 : 3, t8 && (s = !l && "none" !== tP[o + 1] && tP[o + 1] || tP[o], u = n && ("complete" === s || "reset" === s || s in n))), ty && (l || u) && (u || eW || !n) && (ee(ty) ? ty(tA) : tA.getTrailing(ty).forEach(function (e) { return e.endAnimation() })), t8 || (!F || eI || eQ ? n && n.totalProgress(p, !!eI) : ((ts || eJ && eJ !== tA) && F.render(F._dp._time - F._start), F.resetTo ? F.resetTo("totalProgress", p, n._tTime / n._tDur) : (F.vars.totalProgress = p, F.invalidate().restart()))), eU) { if (e && e6 && (O.style[e6 + tw.os2] = M), tk) { if (a) { if (c = !e && g < p && f < y + 1 && f + 1 >= Z(tS, tw), tt) { if (!e && (i || c)) { var h = th(eU, !0), b = f - m; ek(eU, eY, h.top + (tw === H ? b : 0) + tg, h.left + (tw === H ? 0 : b) + tg) } else ek(eU, O) } t1(i || c ? P : C), z !== k && p < 1 && i || Y(X + (1 !== p || c ? 0 : z)) } } else Y(U(X + z * p)) } !eZ || $.tween || eI || eQ || ei.restart(!0), eX && (l || eK && p && (p < 1 || !e4)) && e1(eX.targets).forEach(function (e) { return e.classList[i || eK ? "add" : "remove"](eX.className) }), !eR || t8 || e || eR(tA), a && !eI ? (t8 && (u && ("complete" === s ? n.pause().totalProgress(1) : "reset" === s ? n.restart(!0).pause() : "restart" === s ? n.restart(!0) : n[s]()), eR && eR(tA)), !l && e4 || (eH && l && es(tA, eH), tE[o] && es(tA, tE[o]), eK && (1 === p ? tA.kill(!1, 1) : tE[o] = 0), l || tE[o = 1 === p ? 1 : 3] && es(tA, tE[o])), tm && !i && Math.abs(tA.getVelocity()) > (et(tm) ? tm : 2500) && (eo(tA.callbackAnimation), F ? F.progress(1) : eo(n, !p, 1))) : t8 && eR && !eI && eR(tA) } if (N) { var x = ts ? f / ts.duration() * (ts._caScrollDist || 0) : f; L(x + (w._isFlipped ? 1 : 0)), N(x) } ey && ey(-f / ts.duration() * (ts._caScrollDist || 0)) } }, tA.enable = function (e, t) { tA.enabled || (tA.enabled = !0, ep(tS, "resize", eb), ep(t0 ? eD : tS, "scroll", em), tY && ep(tI, "refreshInit", tY), !1 !== e && (tA.progress = ed = 0, v = _ = tM = tB()), !1 !== t && tA.refresh()) }, tA.getTween = function (e) { return e && $ ? $.tween : F }, tA.setPositions = function (e, t) { eU && (X += e - m, z += t - e - k), tA.start = m = e, tA.end = y = t, k = t - e, tA.update() }, tA.disable = function (e, t) { if (tA.enabled && (!1 !== e && tA.revert(), tA.enabled = tA.isActive = !1, t || F && F.pause(), eg = 0, g && (g.uncache = 1), tY && e$(tI, "refreshInit", tY), ei && (ei.pause(), $.tween && $.tween.kill() && ($.tween = 0)), !t0)) { for (var n = tb.length; n--;)if (tb[n].scroller === tS && tb[n] !== tA) return; e$(tS, "resize", eb), e$(tS, "scroll", em) } }, tA.kill = function (e, r) { tA.disable(e, r), F && !r && F.kill(), e3 && delete tx[e3]; var i = tb.indexOf(tA); 0 <= i && tb.splice(i, 1), i === eL && 0 < tD && eL--, i = 0, tb.forEach(function (e) { return e.scroller === tA.scroller && (i = 1) }), i || (tA.scroll.rec = 0), n && (n.scrollTrigger = null, e && n.render(-1), r || n.kill()), b && [b, x, w, S].forEach(function (e) { return e.parentNode && e.parentNode.removeChild(e) }), eJ === tA && (eJ = 0), eU && (g && (g.uncache = 1), i = 0, tb.forEach(function (e) { return e.pin === eU && i++ }), i || (g.spacer = 0)), t.onKill && t.onKill(tA) }, tA.enable(!1, !1), ex && ex(tA), n && n.add && !k ? eP.delayedCall(.01, function () { return m || y || tA.refresh() }) && (k = .01) && (m = y = 0) : tA.refresh() } else this.update = this.refresh = this.kill = G }, tI.register = function e(t) { return eC || (eP = t || F(), q() && window.document && tI.enable(), eC = tr), eC }, tI.defaults = function e(t) { if (t) for (var n in t) t_[n] = t[n]; return t_ }, tI.disable = function e(t, n) { tr = 0, tb.forEach(function (e) { return e[n ? "kill" : "disable"](t) }), e$(eO, "wheel", em), e$(eD, "scroll", em), clearInterval(e3), e$(eD, "touchcancel", G), e$(eY, "touchstart", G), ed(e$, eD, "pointerdown,touchstart,mousedown", W), ed(e$, eD, "pointerup,touchend,mouseup", V), eX.kill(), J(e$); for (var r = 0; r < Y.length; r += 3)eg(e$, Y[r], Y[r + 1]), eg(e$, Y[r], Y[r + 2]) }, tI.enable = function e() { if (eO = window, eA = (eD = document).documentElement, eY = eD.body, eP && (e1 = eP.utils.toArray, ez = eP.utils.clamp, eG = eP.core.suppressOverwrites || G, eP.core.globals("ScrollTrigger", tI), eY)) { tr = 1, L.register(eP), tI.isTouch = L.isTouch, ej = L.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent), ep(eO, "wheel", em), eR = [eO, eD, eA, eY], tI.matchMedia({ "(orientation: portrait)": function e() { return ey(), ey } }), ep(eD, "scroll", em); var t, n, r = eY.style, i = r.borderTopStyle; for (r.borderTopStyle = "solid", t = th(eY), H.m = Math.round(t.top + H.sc()) || 0, B.m = Math.round(t.left + B.sc()) || 0, i ? r.borderTopStyle = i : r.removeProperty("border-top-style"), e3 = setInterval(e_, 250), eP.delayedCall(.5, function () { return eQ = 0 }), ep(eD, "touchcancel", G), ep(eY, "touchstart", G), ed(ep, eD, "pointerdown,touchstart,mousedown", W), ed(ep, eD, "pointerup,touchend,mouseup", V), eH = eP.utils.checkPrefix("transform"), tR.push(eH), eC = te(), eX = eP.delayedCall(.2, tC).pause(), eV = [eD, "visibilitychange", function () { var e = eO.innerWidth, t = eO.innerHeight; eD.hidden ? (eN = e, eW = t) : eN === e && eW === t || eb() }, eD, "DOMContentLoaded", tC, eO, "load", tC, eO, "resize", eb], J(ep), tb.forEach(function (e) { return e.enable(0, 1) }), n = 0; n < Y.length; n += 3)eg(e$, Y[n], Y[n + 1]), eg(e$, Y[n], Y[n + 2]) } }, tI.config = function e(t) { "limitCallbacks" in t && (e4 = !!t.limitCallbacks); var n = t.syncInterval; n && clearInterval(e3) || (e3 = n) && setInterval(e_, n), "ignoreMobileResize" in t && (e7 = 1 === tI.isTouch && t.ignoreMobileResize), "autoRefreshEvents" in t && (J(e$) || J(ep, t.autoRefreshEvents || "none"), eU = -1 === (t.autoRefreshEvents + "").indexOf("resize")) }, tI.scrollerProxy = function e(t, n) { var r = c(t), i = Y.indexOf(r), o = j(r); ~i && Y.splice(i, o ? 6 : 2), n && (o ? R.unshift(eO, n, eY, n, eA, n) : R.unshift(r, n)) }, tI.matchMedia = function e(t) { var n, r, i, o, s; for (r in t) i = tS.indexOf(r), o = t[r], "all" === (e5 = r) ? o() : (n = eO.matchMedia(r)) && (n.matches && (s = o()), ~i ? (tS[i + 1] = ei(tS[i + 1], o), tS[i + 2] = ei(tS[i + 2], s)) : (i = tS.length, tS.push(r, o, s), n.addListener ? n.addListener(ex) : n.addEventListener("change", ex)), tS[i + 3] = n.matches), e5 = 0; return tS }, tI.clearMatchMedia = function e(t) { t || (tS.length = 0), 0 <= (t = tS.indexOf(t)) && tS.splice(t, 4) }, tI.isInViewport = function e(t, n, r) { var i = (Q(t) ? c(t) : t).getBoundingClientRect(), o = i[r ? ta : tl] * n || 0; return r ? 0 < i.right - o && i.left + o < eO.innerWidth : 0 < i.bottom - o && i.top + o < eO.innerHeight }, tI.positionInViewport = function e(t, n, r) { Q(t) && (t = c(t)); var i = t.getBoundingClientRect(), o = i[r ? ta : tl], s = null == n ? o / 2 : n in tm ? tm[n] * o : ~n.indexOf("%") ? parseFloat(n) * o / 100 : parseFloat(n) || 0; return r ? (i.left + s) / eO.innerWidth : (i.top + s) / eO.innerHeight }, tI); function tI(e, t) { eC || tI.register(eP) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"), this.init(e, t) } function tB(e, t, n, r) { return r < t ? e(r) : t < 0 && e(0), r < n ? (r - t) / (n - t) : n < 0 ? t / (t - n) : 1 } function tH(e, t) { !0 === t ? e.style.removeProperty("touch-action") : e.style.touchAction = !0 === t ? "auto" : t ? "pan-" + t + (L.isTouch ? " pinch-zoom" : "") : "none", e === eA && tH(eY, t) } function tL(e) { var t, n = e.event, r = e.target, i = e.axis, o = (n.changedTouches ? n.changedTouches[0] : n).target, s = o._gsap || eP.core.getCache(o), a = te(); if (!s._isScrollT || 2e3 < a - s._isScrollT) { for (; o && o.scrollHeight <= o.clientHeight;)o = o.parentNode; s._isScroll = o && !j(o) && o !== r && (tV[(t = ea(o)).overflowY] || tV[t.overflowX]), s._isScrollT = a } (s._isScroll || "x" === i) && (n._gsapAllow = !0) } function tN(e, t, n, r) { return L.create({ target: e, capture: !0, debounce: !1, lockAxis: !0, type: t, onWheel: r = r && tL, onPress: r, onDrag: r, onScroll: r, onEnable: function e() { return n && ep(eD, L.eventTypes[0], tG, !1, !0) }, onDisable: function e() { return e$(eD, L.eventTypes[0], tG, !0) } }) } t3.version = "3.10.4", t3.saveStyles = function (e) { return e ? e1(e).forEach(function (e) { if (e && e.style) { var t = t0.indexOf(e); 0 <= t && t0.splice(t, 5), t0.push(e, e.style.cssText, e.getBBox && e.getAttribute("transform"), eP.core.getCache(e), e5) } }) : t0 }, t3.revert = function (e, t) { return tE(!e, t) }, t3.create = function (e, t) { return new t3(e, t) }, t3.refresh = function (e) { return e ? eb() : (eC || t3.register()) && tC(!0) }, t3.update = tA, t3.clearScrollMemory = e8, t3.maxScroll = function (e, t) { return Z(e, t ? B : H) }, t3.getScrollFunc = function (e, t) { return u(c(e), t ? B : H) }, t3.getById = function (e) { return tx[e] }, t3.getAll = function () { return tb.filter(function (e) { return "ScrollSmoother" !== e.vars.id }) }, t3.isScrolling = function () { return !!tn }, t3.snapDirectional = ef, t3.addEventListener = function (e, t) { var n = tw[e] || (tw[e] = []); ~n.indexOf(t) || n.push(t) }, t3.removeEventListener = function (e, t) { var n = tw[e], r = n && n.indexOf(t); 0 <= r && n.splice(r, 1) }, t3.batch = function (e, t) { function n(e, t) { var n = [], r = [], i = eP.delayedCall(s, function () { t(n, r), n = [], r = [] }).pause(); return function (e) { n.length || i.restart(!0), n.push(e.trigger), r.push(e), a <= n.length && i.progress(1) } } var r, i = [], o = {}, s = t.interval || .016, a = t.batchMax || 1e9; for (r in t) o[r] = "on" === r.substr(0, 2) && ee(t[r]) && "onRefreshInit" !== r ? n(0, t[r]) : t[r]; return ee(a) && (a = a(), ep(t3, "refresh", function () { return a = t.batchMax() })), e1(e).forEach(function (e) { var t = {}; for (r in o) t[r] = o[r]; t.trigger = e, i.push(t3.create(t)) }), i }; var tW, tV = { auto: 1, scroll: 1 }, t2 = /(input|label|select|textarea)/i, tG = function e(t) { var n = t2.test(t.target.tagName); (n || tW) && (t._gsapAllow = !0, tW = n) }; t3.sort = function (e) { return tb.sort(e || function (e, t) { return -1e6 * (e.vars.refreshPriority || 0) + e.start - (t.start + -1e6 * (t.vars.refreshPriority || 0)) }) }, t3.observe = function (e) { return new L(e) }, t3.normalizeScroll = function (e) { if (void 0 === e) return e6; if (!0 === e && e6) return e6.enable(); if (!1 === e) return e6 && e6.kill(); var t = e instanceof L ? e : function e(t) { function n() { return a = !1 } function r() { s = Z(_, H), C = ez(ej ? 1 : 0, s), g && (P = ez(0, Z(_, B))), l = tP } function i() { r(), f.isActive() && f.vars.scrollY > s && (b() > s ? f.progress(1) && b(s) : f.resetTo("scrollY", s)) } en(t) || (t = {}), t.preventDefault = t.isNormalizer = t.allowClicks = !0, t.type || (t.type = "wheel,touch"), t.debounce = !!t.debounce, t.id = t.id || "normalizer"; var o, s, a, l, f, d, p, $, g = t.normalizeScrollX, h = t.momentum, v = t.allowNestedScroll, _ = c(t.target) || eA, m = eP.core.globals().ScrollSmoother, y = ej && (t.content && c(t.content) || m && m.get() && m.get().content()), b = u(_, H), x = u(_, B), w = 1, S = (L.isTouch && eO.visualViewport ? eO.visualViewport.scale * eO.visualViewport.width : eO.outerWidth) / eO.innerWidth, T = 0, k = ee(h) ? function () { return h(o) } : function () { return h || 2.8 }, E = tN(_, t.type, !0, v), P = G, C = G; return t.ignoreCheck = function (e) { return ej && "touchmove" === e.type && function e() { if (a) { requestAnimationFrame(n); var t = U(o.deltaY / 2), r = C(b.v - t); return y && r !== b.v + b.offset && (b.offset = r - b.v, y.style.transform = "translateY(" + -b.offset + "px)", y._gsap && (y._gsap.y = -b.offset + "px"), b.cacheID = Y.cache, tA()), !0 } y && (y.style.transform = "translateY(0px)", b.offset = b.cacheID = 0, y._gsap && (y._gsap.y = "0px")), a = !0 }() || 1.05 < w && "touchstart" !== e.type || o.isGesturing || e.touches && 1 < e.touches.length }, t.onPress = function () { var e = w; w = U((eO.visualViewport && eO.visualViewport.scale || 1) / S), f.pause(), e !== w && tH(_, 1.01 < w || !g && "x"), a = !1, d = x(), p = b(), r(), l = tP }, t.onRelease = t.onGestureStart = function (e, t) { if (y && (y.style.transform = "translateY(0px)", b.offset = b.cacheID = 0, y._gsap && (y._gsap.y = "0px")), t) { Y.cache++; var n, r, o = k(); g && (r = (n = x()) + -(.05 * o * e.velocityX) / .227, o *= tB(x, n, r, Z(_, B)), f.vars.scrollX = P(r)), r = (n = b()) + -(.05 * o * e.velocityY) / .227, o *= tB(b, n, r, Z(_, H)), f.vars.scrollY = C(r), f.invalidate().duration(o).play(.01), (ej && f.vars.scrollY >= s || s - 1 <= n) && eP.to({}, { onUpdate: i, duration: o }) } else $.restart(!0) }, t.onWheel = function () { f._ts && f.pause(), 1e3 < te() - T && (l = 0, T = te()) }, t.onChange = function (e, t, n, i, o) { tP !== l && r(), t && g && x(P(i[2] === t ? d + (e.startX - e.x) : x() + t - i[1])), n && b(C(o[2] === n ? p + (e.startY - e.y) : b() + n - o[1])), tA() }, t.onEnable = function () { tH(_, !g && "x"), ep(eO, "resize", i), E.enable() }, t.onDisable = function () { tH(_, !0), e$(eO, "resize", i), E.kill() }, ((o = new L(t)).iOS = ej) && !b() && b(1), $ = o._dc, f = eP.to(o, { ease: "power4", paused: !0, scrollX: g ? "+=0.1" : "+=0", scrollY: "+=0.1", onComplete: $.vars.onComplete }), o }(e); return e6 && e6.target === t.target && e6.kill(), j(t.target) && (e6 = t), t }, t3.core = { _getVelocityProp: f, _inputObserver: tN, _scrollers: Y, _proxies: R, bridge: { ss: function e() { tn || tT("scrollStart"), tn = te() }, ref: function e() { return eI } } }, F() && eP.registerPlugin(t3), e.ScrollTrigger = t3, e.default = t3, "undefined" == typeof window || window !== e ? Object.defineProperty(e, "__esModule", { value: !0 }) : delete e.default });