1var L="1.3.18";function R(t,i,e){return Math.max(t,Math.min(i,e))}function k(t,i,e){return(1-e)*t+e*i}function A(t,i,e,o){return k(t,i,1-Math.exp(-e*o))}function D(t,i){return(t%i+i)%i}var X=class{isRunning=!1;value=0;from=0;to=0;currentTime=0;lerp;duration;easing;onUpdate;advance(t){if(!this.isRunning)return;let i=!1;if(this.duration&&this.easing){this.currentTime+=t;const e=R(0,this.currentTime/this.duration,1);i=e>=1;const o=i?1:this.easing(e);this.value=this.from+(this.to-this.from)*o}else this.lerp?(this.value=A(this.value,this.to,this.lerp*60,t),Math.round(this.value)===this.to&&(this.value=this.to,i=!0)):(this.value=this.to,i=!0);i&&this.stop(),this.onUpdate?.(this.value,i)}stop(){this.isRunning=!1}fromTo(t,i,{lerp:e,duration:o,easing:s,onStart:h,onUpdate:l}){this.from=this.value=t,this.to=i,this.lerp=e,this.duration=o,this.easing=s,this.currentTime=0,this.isRunning=!0,h?.(),this.onUpdate=l}};function Y(t,i){let e;return function(...o){clearTimeout(e),e=setTimeout(()=>{e=void 0,t.apply(this,o)},i)}}var C=class{constructor(t,i,{autoResize:e=!0,debounce:o=250}={}){this.wrapper=t,this.content=i,e&&(this.debouncedResize=Y(this.resize,o),this.wrapper instanceof Window?window.addEventListener("resize",this.debouncedResize):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}width=0;height=0;scrollHeight=0;scrollWidth=0;debouncedResize;wrapperResizeObserver;contentResizeObserver;destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),this.wrapper===window&&this.debouncedResize&&window.removeEventListener("resize",this.debouncedResize)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper instanceof Window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper instanceof Window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}},W=class{events={};emit(t,...i){const e=this.events[t]||[];for(let o=0,s=e.length;o<s;o++)e[o]?.(...i)}on(t,i){return this.events[t]?this.events[t].push(i):this.events[t]=[i],()=>{this.events[t]=this.events[t]?.filter(e=>i!==e)}}off(t,i){this.events[t]=this.events[t]?.filter(e=>i!==e)}destroy(){this.events={}}},I=100/6,w={passive:!1};function N(t,i){return t===1?I:t===2?i:1}var P=class{constructor(t,i={wheelMultiplier:1,touchMultiplier:1}){this.element=t,this.options=i,window.addEventListener("resize",this.onWindowResize),this.onWindowResize(),this.element.addEventListener("wheel",this.onWheel,w),this.element.addEventListener("touchstart",this.onTouchStart,w),this.element.addEventListener("touchmove",this.onTouchMove,w),this.element.addEventListener("touchend",this.onTouchEnd,w)}touchStart={x:0,y:0};lastDelta={x:0,y:0};window={width:0,height:0};emitter=new W;on(t,i){return this.emitter.on(t,i)}destroy(){this.emitter.destroy(),window.removeEventListener("resize",this.onWindowResize),this.element.removeEventListener("wheel",this.onWheel,w),this.element.removeEventListener("touchstart",this.onTouchStart,w),this.element.removeEventListener("touchmove",this.onTouchMove,w),this.element.removeEventListener("touchend",this.onTouchEnd,w)}onTouchStart=t=>{const{clientX:i,clientY:e}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=i,this.touchStart.y=e,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{const{clientX:i,clientY:e}=t.targetTouches?t.targetTouches[0]:t,o=-(i-this.touchStart.x)*this.options.touchMultiplier,s=-(e-this.touchStart.y)*this.options.touchMultiplier;this.touchStart.x=i,this.touchStart.y=e,this.lastDelta={x:o,y:s},this.emitter.emit("scroll",{deltaX:o,deltaY:s,event:t})};onTouchEnd=t=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=t=>{let{deltaX:i,deltaY:e,deltaMode:o}=t;const s=N(o,this.window.width),h=N(o,this.window.height);i*=s,e*=h,i*=this.options.wheelMultiplier,e*=this.options.wheelMultiplier,this.emitter.emit("scroll",{deltaX:i,deltaY:e,event:t})};onWindowResize=()=>{this.window={width:window.innerWidth,height:window.innerHeight}}},O=t=>Math.min(1,1.001-2**(-10*t)),V=class{_isScrolling=!1;_isStopped=!1;_isLocked=!1;_preventNextNativeScrollEvent=!1;_resetVelocityTimeout=null;_rafId=null;isTouching;time=0;userData={};lastVelocity=0;velocity=0;direction=0;options;targetScroll;animatedScroll;animate=new X;emitter=new W;dimensions;virtualScroll;constructor({wrapper:t=window,content:i=document.documentElement,eventsTarget:e=t,smoothWheel:o=!0,syncTouch:s=!1,syncTouchLerp:h=.075,touchInertiaExponent:l=1.7,duration:a,easing:p,lerp:u=.1,infinite:S=!1,orientation:f="vertical",gestureOrientation:r=f==="horizontal"?"both":"vertical",touchMultiplier:c=1,wheelMultiplier:n=1,autoResize:v=!0,prevent:m,virtualScroll:d,overscroll:y=!0,autoRaf:E=!1,anchors:b=!1,autoToggle:T=!1,allowNestedScroll:z=!1,__experimental__naiveDimensions:g=!1,naiveDimensions:_=g,stopInertiaOnNavigate:x=!1}={}){window.lenisVersion=L,window.lenis||(window.lenis={}),window.lenis.version=L,f==="horizontal"&&(window.lenis.horizontal=!0),(!t||t===document.documentElement)&&(t=window),typeof a=="number"&&typeof p!="function"?p=O:typeof p=="function"&&typeof a!="number"&&(a=1),this.options={wrapper:t,content:i,eventsTarget:e,smoothWheel:o,syncTouch:s,syncTouchLerp:h,touchInertiaExponent:l,duration:a,easing:p,lerp:u,infinite:S,gestureOrientation:r,orientation:f,touchMultiplier:c,wheelMultiplier:n,autoResize:v,prevent:m,virtualScroll:d,overscroll:y,autoRaf:E,anchors:b,autoToggle:T,allowNestedScroll:z,naiveDimensions:_,stopInertiaOnNavigate:x},this.dimensions=new C(t,i,{autoResize:v}),this.updateClassName(),this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll),this.options.wrapper.addEventListener("scrollend",this.onScrollEnd,{capture:!0}),(this.options.anchors||this.options.stopInertiaOnNavigate)&&this.options.wrapper.addEventListener("click",this.onClick),this.options.wrapper.addEventListener("pointerdown",this.onPointerDown),this.virtualScroll=ne
1w P(e,{touchMultiplier:c,wheelMultiplier:n}),this.virtualScroll.on("scroll",this.onVirtualScroll),this.options.autoToggle&&(this.checkOverflow(),this.rootElement.addEventListener("transitionend",this.onTransitionEnd)),this.options.autoRaf&&(this._rafId=requestAnimationFrame(this.raf))}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll),this.options.wrapper.removeEventListener("scrollend",this.onScrollEnd,{capture:!0}),this.options.wrapper.removeEventListener("pointerdown",this.onPointerDown),(this.options.anchors||this.options.stopInertiaOnNavigate)&&this.options.wrapper.removeEventListener("click",this.onClick),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName(),this._rafId&&cancelAnimationFrame(this._rafId)}on(t,i){return this.emitter.on(t,i)}off(t,i){return this.emitter.off(t,i)}onScrollEnd=t=>{t instanceof CustomEvent||(this.isScrolling==="smooth"||this.isScrolling===!1)&&t.stopPropagation()};dispatchScrollendEvent=()=>{this.options.wrapper.dispatchEvent(new CustomEvent("scrollend",{bubbles:this.options.wrapper===window,detail:{lenisScrollEnd:!0}}))};get overflow(){const t=this.isHorizontal?"overflow-x":"overflow-y";return getComputedStyle(this.rootElement)[t]}checkOverflow(){["hidden","clip"].includes(this.overflow)?this.internalStop():this.internalStart()}onTransitionEnd=t=>{t.propertyName.includes("overflow")&&this.checkOverflow()};setScroll(t){this.isHorizontal?this.options.wrapper.scrollTo({left:t,behavior:"instant"}):this.options.wrapper.scrollTo({top:t,behavior:"instant"})}onClick=t=>{const e=t.composedPath().filter(o=>o instanceof HTMLAnchorElement&&o.getAttribute("href"));if(this.options.anchors){const o=e.find(s=>s.getAttribute("href")?.includes("#"));if(o){const s=o.getAttribute("href");if(s){const h=typeof this.options.anchors=="object"&&this.options.anchors?this.options.anchors:void 0,l=`#${s.split("#")[1]}`;this.scrollTo(l,h)}}}this.options.stopInertiaOnNavigate&&e.find(s=>s.host===window.location.host)&&this.reset()};onPointerDown=t=>{t.button===1&&this.reset()};onVirtualScroll=t=>{if(typeof this.options.virtualScroll=="function"&&this.options.virtualScroll(t)===!1)return;const{deltaX:i,deltaY:e,event:o}=t;if(this.emitter.emit("virtual-scroll",{deltaX:i,deltaY:e,event:o}),o.ctrlKey||o.lenisStopPropagation)return;const s=o.type.includes("touch"),h=o.type.includes("wheel");this.isTouching=o.type==="touchstart"||o.type==="touchmove";const l=i===0&&e===0;if(this.options.syncTouch&&s&&o.type==="touchstart"&&l&&!this.isStopped&&!this.isLocked){this.reset();return}const p=this.options.gestureOrientation==="vertical"&&e===0||this.options.gestureOrientation==="horizontal"&&i===0;if(l||p)return;let u=o.composedPath();u=u.slice(0,u.indexOf(this.rootElement));const S=this.options.prevent,f=Math.abs(i)>=Math.abs(e)?"horizontal":"vertical";if(u.find(d=>d instanceof HTMLElement&&(typeof S=="function"&&S?.(d)||d.hasAttribute?.("data-lenis-prevent")||f==="vertical"&&d.hasAttribute?.("data-lenis-prevent-vertical")||f==="horizontal"&&d.hasAttribute?.("data-lenis-prevent-horizontal")||s&&d.hasAttribute?.("data-lenis-prevent-touch")||h&&d.hasAttribute?.("data-lenis-prevent-wheel")||this.options.allowNestedScroll&&this.hasNestedScroll(d,{deltaX:i,deltaY:e}))))return;if(this.isStopped||this.isLocked){o.cancelable&&o.preventDefault();return}if(!(this.options.syncTouch&&s||this.options.smoothWheel&&h)){this.isScrolling="native",this.animate.stop(),o.lenisStopPropagation=!0;return}let c=e;this.options.gestureOrientation==="both"?c=Math.abs(e)>Math.abs(i)?e:i:this.options.gestureOrientation==="horizontal"&&(c=i),(!this.options.overscroll||this.options.infinite||this.options.wrapper!==window&&this.limit>0&&(this.animatedScroll>0&&this.animatedScroll<this.limit||this.animatedScroll===0&&e>0||this.animatedScroll===this.limit&&e<0))&&(o.lenisStopPropagation=!0),o.cancelable&&o.preventDefault();const n=s&&this.options.syncTouch,m=s&&o.type==="touchend";m&&(c=Math.sign(this.velocity)*Math.abs(this.velocity)**this.options.touchInertiaExponent),this.scrollTo(this.targetScroll+c,{programmatic:!1,...n?{lerp:m?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}})};resize(){this.dimensions.resize(),this.animatedScroll=this.targetScroll=this.actualScroll,this.emit
1()}emit(){this.emitter.emit("scroll",this)}onNativeScroll=()=>{if(this._resetVelocityTimeout!==null&&(clearTimeout(this._resetVelocityTimeout),this._resetVelocityTimeout=null),this._preventNextNativeScrollEvent){this._preventNextNativeScrollEvent=!1;return}if(this.isScrolling===!1||this.isScrolling==="native"){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isStopped||(this.isScrolling="native"),this.emit(),this.velocity!==0&&(this._resetVelocityTimeout=setTimeout(()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()},400))}};reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){if(this.isStopped){if(this.options.autoToggle){this.rootElement.style.removeProperty("overflow");return}this.internalStart()}}internalStart(){this.isStopped&&(this.reset(),this.isStopped=!1,this.emit())}stop(){if(!this.isStopped){if(this.options.autoToggle){this.rootElement.style.setProperty("overflow","clip");return}this.internalStop()}}internalStop(){this.isStopped||(this.reset(),this.isStopped=!0,this.emit())}raf=t=>{const i=t-(this.time||t);this.time=t,this.animate.advance(i*.001),this.options.autoRaf&&(this._rafId=requestAnimationFrame(this.raf))};scrollTo(t,{offset:i=0,immediate:e=!1,lock:o=!1,programmatic:s=!0,lerp:h=s?this.options.lerp:void 0,duration:l=s?this.options.duration:void 0,easing:a=s?this.options.easing:void 0,onStart:p,onComplete:u,force:S=!1,userData:f}={}){if((this.isStopped||this.isLocked)&&!S)return;let r=t,c=i;if(typeof r=="string"&&["top","left","start","#"].includes(r))r=0;else if(typeof r=="string"&&["bottom","right","end"].includes(r))r=this.limit;else{let n=null;if(typeof r=="string"?(n=document.querySelector(r),n||(r==="#top"?r=0:console.warn("Lenis: Target not found",r))):r instanceof HTMLElement&&r?.nodeType&&(n=r),n){if(this.options.wrapper!==window){const m=this.rootElement.getBoundingClientRect();c-=this.isHorizontal?m.left:m.top}const v=n.getBoundingClientRect();r=(this.isHorizontal?v.left:v.top)+this.animatedScroll}}if(typeof r=="number"){if(r+=c,r=Math.round(r),this.options.infinite){if(s){this.targetScroll=this.animatedScroll=this.scroll;const n=r-this.animatedScroll;n>this.limit/2?r-=this.limit:n<-this.limit/2&&(r+=this.limit)}}else r=R(0,r,this.limit);if(r===this.targetScroll){p?.(this),u?.(this);return}if(this.userData=f??{},e){this.animatedScroll=this.targetScroll=r,this.setScroll(this.scroll),this.reset(),this.preventNextNativeScrollEvent(),this.emit(),u?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()});return}s||(this.targetScroll=r),typeof l=="number"&&typeof a!="function"?a=O:typeof a=="function"&&typeof l!="number"&&(l=1),this.animate.fromTo(this.animatedScroll,r,{duration:l,easing:a,lerp:h,onStart:()=>{o&&(this.isLocked=!0),this.isScrolling="smooth",p?.(this)},onUpdate:(n,v)=>{this.isScrolling="smooth",this.lastVelocity=this.velocity,this.velocity=n-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=n,this.setScroll(this.scroll),s&&(this.targetScroll=n),v||this.emit(),v&&(this.reset(),this.emit(),u?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()}),this.preventNextNativeScrollEvent())}})}}preventNextNativeScrollEvent(){this._preventNextNativeScrollEvent=!0,requestAnimationFrame(()=>{this._preventNextNativeScrollEvent=!1})}hasNestedScroll(t,{deltaX:i,deltaY:e}){const o=Date.now();t._lenis||(t._lenis={});const s=t._lenis;let h,l,a,p,u,S,f,r,c,n;if(o-(s.time??0)>2e3){s.time=Date.now();const g=window.getComputedStyle(t);if(s.computedStyle=g,h=["auto","overlay","scroll"].includes(g.overflowX),l=["auto","overlay","scroll"].includes(g.overflowY),u=["auto"].includes(g.overscrollBehaviorX),S=["auto"].includes(g.overscrollBehaviorY),s.hasOverflowX=h,s.hasOverflowY=l,!(h||l))return!1;f=t.scrollWidth,r=t.scrollHeight,c=t.clientWidth,n=t.clientHeight,a=f>c,p=r>n,s.isScrollableX=a,s.isScrollableY=p,s.scrollWidth=f,s.scrollHeight=r,s.clientWidth=c,s.clientHeight=n,s.hasOverscrollBehaviorX=u,s.hasOverscrollBehaviorY=S}else a=s.isScrollableX,p=s.isScrollableY,h=s.hasOverflowX,l=s.hasOverflowY,f=s.scrollWidth,r=s.scrollHeight,c=s.clientWidth,n=s.clientHeight,u=s.hasOverscrollBehaviorX,S=s.hasOverscrollBehaviorY;if(!(h&&a||l&&p))return!1;const v=Math.abs(i)>=Math.abs(e)?"horizontal":"vertical";let m,d,y,E,b,T;if(v==="horizontal")m=Math.round(t.scrollLeft),d=f-c,y=i,E=h,b=a,T=u;else if(v==="vertical")m=Math.round(t.scrollTop),d=r-n,y=e,E=l,b=p,T=S;else return!1;return!T&&(m>=d||m<=0)?!0:(y>0?m<d:m>0)&&E&&b}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?"x":"y"]}get isHorizontal(){return this.options.orientation==="horizontal"}get actualScroll(){const t=this.options.wrapper;return this.isHorizontal?t.scrollX??t.scrollLeft:t.scrollY??t.scrollTop}get scroll(){return this.options.infinite?D(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return this.limit===0?1:this.scroll/this.limit}get isScrolling(){return this._isScrolling}set isScrolling(t){this._isScrolling!==t&&(this._isScrolling=t,this.updateClassName())}get isStopped(){return this._isStopped}set isStopped(t){this._isStopped!==t&&(this._isStopped=t,this.updateClassName())}get isLocked(){return this._isLocked}set isLocked(t){this._isLocked!==t&&(this._isLocked=t,this.updateClassName())}get isSmooth(){return this.isScrolling==="smooth"}get className(){let t="lenis";return this.options.autoToggle&&(t+=" lenis-autoToggle"),this.isStopped&&(t+=" lenis-stopped"),this.isLocked&&(t+=" lenis-locked"),this.isScrolling&&(t+=" lenis-scrolling"),this.isScrolling==="smooth"&&(t+=" lenis-smooth"),t}updateClassName(){this.cleanUpClassName(),this.rootElement.className=`${this.rootElement.className} ${this.className}`.trim()}cleanUpClassName(){this.rootElement.className=this.rootElement.className.replace(/lenis(-\w+)?/g,"").trim()}};const B=new V({duration:1.2,easing:t=>Math.min(1,1.001-Math.pow(2,-10*t))});function H(t){B.raf(t),requestAnimationFrame(H)}requestAnimationFrame(H);const M=new IntersectionObserver(t=>{t.forEach(i=>
1{i.isIntersecting&&(i.target.classList.add("is-visible"),M.unobserve(i.target))})},{threshold:.05,rootMargin:"0px 0px -20px 0px"});document.documentElement.classList.add("reveal-ready");document.querySelectorAll(".reveal").forEach(t=>M.observe(t));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.