svg-scroll-draw 2.10.0 → 2.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +19 -10
  2. package/dist/angular/index.cjs +2 -2
  3. package/dist/angular/index.mjs +2 -2
  4. package/dist/astro/index.cjs +2 -2
  5. package/dist/astro/index.mjs +2 -2
  6. package/dist/cdn/svg-scroll-draw.dev.global.js +55 -29
  7. package/dist/cdn/svg-scroll-draw.global.js +2 -2
  8. package/dist/cinematic/index.cjs +2 -2
  9. package/dist/cinematic/index.mjs +2 -2
  10. package/dist/devtools/index.cjs +1 -1
  11. package/dist/devtools/index.mjs +1 -1
  12. package/dist/group/index.cjs +2 -2
  13. package/dist/group/index.mjs +2 -2
  14. package/dist/horizontal/index.cjs +1 -1
  15. package/dist/horizontal/index.mjs +1 -1
  16. package/dist/index.cjs +3 -3
  17. package/dist/index.mjs +3 -3
  18. package/dist/nuxt/index.cjs +2 -2
  19. package/dist/nuxt/index.mjs +2 -2
  20. package/dist/pin/index.cjs +1 -1
  21. package/dist/pin/index.mjs +1 -1
  22. package/dist/progress/index.cjs +1 -1
  23. package/dist/progress/index.mjs +1 -1
  24. package/dist/react/index.cjs +2 -2
  25. package/dist/react/index.mjs +2 -2
  26. package/dist/reveal/index.cjs +1 -1
  27. package/dist/reveal/index.mjs +1 -1
  28. package/dist/snap/index.cjs +1 -1
  29. package/dist/snap/index.mjs +1 -1
  30. package/dist/solid/index.cjs +2 -2
  31. package/dist/solid/index.mjs +2 -2
  32. package/dist/svelte/index.cjs +2 -2
  33. package/dist/svelte/index.mjs +2 -2
  34. package/dist/text/index.cjs +1 -1
  35. package/dist/text/index.mjs +1 -1
  36. package/dist/timeline/index.cjs +8 -8
  37. package/dist/timeline/index.mjs +8 -8
  38. package/dist/video/index.cjs +1 -1
  39. package/dist/video/index.mjs +1 -1
  40. package/dist/vue/index.cjs +2 -2
  41. package/dist/vue/index.mjs +2 -2
  42. package/dist/web-component/index.cjs +3 -3
  43. package/dist/web-component/index.mjs +3 -3
  44. package/package.json +255 -68
package/README.md CHANGED
@@ -7,10 +7,16 @@
7
7
  [![license](https://img.shields.io/npm/l/svg-scroll-draw)](./LICENSE)
8
8
  [![GitHub stars](https://img.shields.io/github/stars/DhruvilChauahan0210/ink-scroll?style=flat)](https://github.com/DhruvilChauahan0210/ink-scroll/stargazers)
9
9
 
10
- > The scroll animation platform. Animate SVG paths, CSS properties, counters, video, and text — all scroll-driven, all MIT, all under 10 KB. GSAP is overkill.
10
+ > Draw SVG paths on scroll — plus reveal, pin, snap, parallax, counters, video scrub and text splitting. **10.2 KB gzipped for every API, from 1.6 KB if you import one.** Zero dependencies, MIT, and a native CSS fast path that runs with no per-frame JavaScript. Works in React, Next.js, Vue, Svelte, Solid, Angular, Astro, Nuxt and vanilla JS.
11
11
 
12
12
  **[Live Demo](https://svg-scroll-draw.vercel.app)** · [npm](https://www.npmjs.com/package/svg-scroll-draw) · [Docs](https://svg-scroll-draw.vercel.app/docs) · [Examples](https://svg-scroll-draw.vercel.app/examples) · [Report a bug](https://github.com/DhruvilChauahan0210/ink-scroll/issues)
13
13
 
14
+ **Try it in your browser, no install:** [Vanilla JS on StackBlitz](https://stackblitz.com/github/DhruvilChauahan0210/ink-scroll/tree/main/examples/vanilla) · [React on StackBlitz](https://stackblitz.com/github/DhruvilChauahan0210/ink-scroll/tree/main/examples/react)
15
+
16
+ **Using an AI coding agent?** Give it the [svg-scroll-draw skill](https://github.com/DhruvilChauahan0210/ink-scroll/blob/main/skills/svg-scroll-draw/SKILL.md) or point it at [llms.txt](https://svg-scroll-draw.vercel.app/llms.txt).
17
+
18
+ ![svg-scroll-draw demo: SVG paths drawing as the page scrolls](https://raw.githubusercontent.com/DhruvilChauahan0210/ink-scroll/main/demo.gif)
19
+
14
20
  ---
15
21
 
16
22
  ## What's in v2
@@ -22,7 +28,7 @@
22
28
  | `scrollParallax` | `svg-scroll-draw` | Move any element at a different rate than scroll. Speed multiplier, reverse direction. |
23
29
  | `scrollDraw` | `svg-scroll-draw` | The original — scroll-driven SVG path drawing via `stroke-dashoffset`. |
24
30
  | `scrollVideo` | `svg-scroll-draw/video` | Tie `<video>.currentTime` to scroll. The Apple/Stripe product-page pattern. |
25
- | `scrollText` | `svg-scroll-draw/text` | Split text into chars/words/lines and stagger-animate each on scroll. Free GSAP SplitText. |
31
+ | `scrollText` | `svg-scroll-draw/text` | Split text into chars/words/lines and stagger-animate each on scroll. 2.5 KB, nothing else to load. |
26
32
  | `devtools` | `svg-scroll-draw/devtools` | Visual overlay showing every active animation's triggers and progress. Dev-only. |
27
33
 
28
34
  All APIs return the same instance object: `{ destroy, replay, pause, resume, seek, getProgress }`.
@@ -218,7 +224,7 @@ import { ScrollVideo } from 'svg-scroll-draw/react';
218
224
 
219
225
  ## scrollText — text reveal on scroll
220
226
 
221
- Free replacement for GSAP SplitText (which requires a $150+/yr Club GreenSock subscription).
227
+ A 2.5 KB alternative to GSAP SplitText. SplitText is free and 3.6 KB, but it only splits — animating the pieces needs GSAP core (27.7 KB) on top.
222
228
 
223
229
  ```js
224
230
  import { scrollText } from 'svg-scroll-draw/text';
@@ -448,13 +454,16 @@ devtools.highlight('#my-element'); // outline for 2 seconds
448
454
 
449
455
  | Entry | Gzipped |
450
456
  |---|---|
451
- | `svg-scroll-draw` (main) | ~9 KB |
452
- | `svg-scroll-draw/react` | ~3 KB |
453
- | `svg-scroll-draw/video` | ~1.5 KB |
454
- | `svg-scroll-draw/text` | ~2 KB |
455
- | `svg-scroll-draw/devtools` | ~4 KB (dev only) |
457
+ | `svg-scroll-draw` (main, every core API) | 10.2 KB |
458
+ | `svg-scroll-draw/react` (includes the engine) | 11.2 KB |
459
+ | `svg-scroll-draw/reveal` | 4.5 KB |
460
+ | `svg-scroll-draw/text` | 2.5 KB |
461
+ | `svg-scroll-draw/video` | 2.0 KB |
462
+ | `svg-scroll-draw/snap` | 1.7 KB |
463
+ | `svg-scroll-draw/devtools` | 1.7 KB (dev only) |
464
+ | `svg-scroll-draw/pin` | 1.6 KB |
456
465
 
457
- GSAP core + ScrollTrigger = ~40 KB gzipped. **svg-scroll-draw v2 covers 95% of those use cases at ~9 KB.**
466
+ Measured with `npm run size` (minified, gzip level 9). For comparison, GSAP 3.15.0 core + ScrollTrigger is 45.3 KB gzipped, and 47.5 KB with DrawSVG. GSAP does far more than scroll animation; for the scroll effects this library covers, that is the size difference.
458
467
 
459
468
  ---
460
469
 
@@ -491,7 +500,7 @@ Scaffolds a ready-to-use starter file for React, Vue, Svelte, Solid, or Vanilla
491
500
 
492
501
  Chrome 80+, Safari 14+, Firefox 75+, Edge 80+
493
502
 
494
- Native CSS `animation-timeline: view()` fast path: Chrome 115+, Safari 18+, Firefox 110+. Automatically falls back to the JS engine on older browsers.
503
+ Native CSS `animation-timeline: view()` fast path: Chrome and Edge 115+, Safari 26+, Firefox 159+ (on by default since October 2026). Older browsers fall back to the JS engine automatically.
495
504
 
496
505
  ---
497
506
 
@@ -1,3 +1,3 @@
1
- 'use strict';function Vt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),l=Math.sqrt(t),o=0,c=[];for(let d=0;d<n;d++){let x=Math.pow(l,d);c.push(x),o+=x;}let u=[0],m=0;for(let d=0;d<n;d++)m+=c[d]/o,u.push(m);return d=>{if(d<=0)return 0;if(d>=1)return 1;for(let x=0;x<n;x++)if(d<=u[x+1]){let N=(d-u[x])/(u[x+1]-u[x]);if(x===0)return N*(2-N);let L=1-Math.pow(t,x);return L+(1-L)*(2*N-1)*(2*N-1)}return 1}}function qt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),l=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return o=>o<=0?0:o>=1?1:n*Math.pow(2,-10*o)*Math.sin((o-l)*(2*Math.PI)/t)+1}var ee={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:Vt(),elastic:qt()};function pe(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function ft(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function pt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function _e(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function Wt(e,r,n){return Math.min(n,Math.max(r,e))}function Q(e,r,n,t){return n===r?0:Wt((e-r)/(n-r)*t,0,1)}function Qe(e,r,n){let t=e.getBoundingClientRect(),l=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:l,scroll:0}:{top:n==="x"?t.left:t.top,height:l,scroll:n==="x"?window.scrollX:window.scrollY}}function xe(e,r,n,t,l){let o=ft(e.top,e.height,r,t.element)-pt(t.viewport,n),c=ft(e.top,e.height,r,l.element)-pt(l.viewport,n);return {tStart:o,tEnd:c}}function dt(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ve(e,r,n){let t=dt(e),l=dt(r);return !t||!l?e:`rgb(${Math.round(t[0]+(l[0]-t[0])*n)},${Math.round(t[1]+(l[1]-t[1])*n)},${Math.round(t[2]+(l[2]-t[2])*n)})`}var gt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Ze=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function he(e,...r){Ze&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Bt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Gt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",ht=33;function jt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Ut(e){let r=[];for(let n=0;n<ht;n++){let t=n/(ht-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function Je(e){switch(e){case "linear":return "linear";case "ease-in":return Bt;case "ease-out":return Gt;case "ease-in-out":return jt()?Ut(ee["ease-in-out"]):null;default:return null}}var Xt=0;function Yt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Qt(e){let r=e.getAttribute("stroke"),n=e.getAttribute("fill");!r||r==="none"?he("Element has no stroke \u2014 path will not be visible.",e):n&&n!=="none"&&n!=="transparent"&&he("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Zt(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function l(){let o=n==="x"?window.scrollX:window.scrollY,c=e-o,u=r-o,m=n==="x";t.innerHTML=`
1
+ 'use strict';function Bt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),l=Math.sqrt(t),o=0,c=[];for(let p=0;p<n;p++){let T=Math.pow(l,p);c.push(T),o+=T;}let u=[0],m=0;for(let p=0;p<n;p++)m+=c[p]/o,u.push(m);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let T=0;T<n;T++)if(p<=u[T+1]){let z=(p-u[T])/(u[T+1]-u[T]);if(T===0)return z*(2-z);let P=1-Math.pow(t,T);return P+(1-P)*(2*z-1)*(2*z-1)}return 1}}function Gt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),l=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return o=>o<=0?0:o>=1?1:n*Math.pow(2,-10*o)*Math.sin((o-l)*(2*Math.PI)/t)+1}var re={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:Bt(),elastic:Gt()};function de(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function dt(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function gt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function _e(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function jt(e,r,n){return Math.min(n,Math.max(r,e))}function K(e,r,n,t){return n===r?0:jt((e-r)/(n-r)*t,0,1)}function Qe(e,r,n){let t=e.getBoundingClientRect(),l=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:l,scroll:0}:{top:n==="x"?t.left:t.top,height:l,scroll:n==="x"?window.scrollX:window.scrollY}}function xe(e,r,n,t,l){let o=dt(e.top,e.height,r,t.element)-gt(t.viewport,n),c=dt(e.top,e.height,r,l.element)-gt(l.viewport,n);return {tStart:o,tEnd:c}}function ht(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ve(e,r,n){let t=ht(e),l=ht(r);return !t||!l?e:`rgb(${Math.round(t[0]+(l[0]-t[0])*n)},${Math.round(t[1]+(l[1]-t[1])*n)},${Math.round(t[2]+(l[2]-t[2])*n)})`}var yt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Ze=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function we(e,...r){Ze&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Yt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Ut="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",bt=33;function Xt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Qt(e){let r=[];for(let n=0;n<bt;n++){let t=n/(bt-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function Ke(e){switch(e){case "linear":return "linear";case "ease-in":return Yt;case "ease-out":return Ut;case "ease-in-out":return Xt()?Qt(re["ease-in-out"]):null;default:return null}}var wt=Symbol.for("svg-scroll-draw.registry");function vt(){let e=globalThis;return e[wt]||(e[wt]=new Map)}function Le(e,r){vt().set(e,r);}function Pe(e){vt().delete(e);}var Zt=0;function Kt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Jt(e){let r=e.getAttribute("stroke"),n=e.getAttribute("fill");!r||r==="none"?we("Element has no stroke \u2014 path will not be visible.",e):n&&n!=="none"&&n!=="transparent"&&we("Element has a fill \u2014 it may obscure the stroke animation.",e);}function er(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function l(){let o=n==="x"?window.scrollX:window.scrollY,c=e-o,u=r-o,m=n==="x";t.innerHTML=`
2
2
  <div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${c}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
3
- <div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var yt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,bt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Jt(e,r,n){if(!Ze)return;let t=(e.match(bt)??[]).join("").toUpperCase(),l=(r.match(bt)??[]).join("").toUpperCase(),o=(e.match(yt)??[]).length,c=(r.match(yt)??[]).length;if(t!==l){he(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&he(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function nt(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function wt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...gt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:d="linear",trigger:x={},stagger:N=0,direction:L="forward",once:te=false,debug:Me=false,axis:W="y",scrollContainer:Z,autoReverse:X=false,delay:B=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:k=false,threshold:I=0,rootMargin:P="0px",repeat:S=0,repeatDelay:re=0,morphTo:O,clip:ne,autoplay:se=false,duration:J=1e3,native:ue=true,onProgress:h,onStart:T,onComplete:g,onEnter:p,onLeave:D,onEnterBack:de,onLeaveBack:ve}=l,me=ne===true?"left":typeof ne=="string"?ne:false,Ee=typeof d=="function"?d:ee[d]??ee.linear,Le=pe(x.start??"top bottom"),Ne=pe(x.end??"bottom top"),ye=typeof Z=="string"?document.querySelector(Z):Z??null,be=Array.isArray(A)?A[0]:null,oe=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ie=Array.isArray($)?$[0]:null,G=Array.isArray($)?$[1]:typeof $=="number"?$:null,fe=Array.isArray(M)?M[0]:null,Y=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function $e(s){let a=s*100;switch(me){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let z=me?[]:Array.from(e.querySelectorAll(c)),C=[],i=[],f=0,we=0,R=false,_=false,V=0,j=false,ae=-1,Pe=-1,K=false,Se=0,ke=0,Oe,Ke=null;function ot(){Ke?.destroy(),Ke=null;}let Fe=new Set,it=NaN,De=true,Be=-1,at=performance.now(),ze=NaN;function et(){return ye?W==="x"?ye.scrollLeft:ye.scrollTop:W==="x"?window.scrollX:window.scrollY}function lt(){return ye?W==="x"?ye.clientWidth:ye.clientHeight:W==="x"?window.innerWidth:window.innerHeight}function ct(){let s=Qe(e,ye,W),a=xe(s,s.scroll,lt(),Le,Ne);f=a.tStart,we=a.tEnd,Me&&Ze&&(ot(),Ke=Zt(f,we,W));}function Ht(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),me){let v=a==="reverse"?1-s:s;e.style.clipPath=$e(v);return}z.forEach((v,le)=>{v.style.strokeDashoffset=a==="reverse"?`${C[le]*s}`:`${C[le]*(1-s)}`,m&&(v.style.opacity=a==="reverse"?`${1-s}`:`${s}`),be&&oe?v.style.stroke=Ve(be,oe,s):oe&&(v.style.stroke=oe),ie!==null&&G!==null?v.style.strokeWidth=`${ie+(G-ie)*s}`:G!==null&&(v.style.strokeWidth=`${G}`),fe!==null&&Y!==null?v.style.fillOpacity=`${fe+(Y-fe)*s}`:Y!==null&&(v.style.fillOpacity=`${Y}`),O&&v.tagName.toLowerCase()==="path"&&i[le]&&v.setAttribute("d",nt(i[le],O,s));});}function Ge(){if(e.style.setProperty("--scroll-draw-progress","0"),me){e.style.clipPath=$e(0);return}z.forEach((s,a)=>{s.style.strokeDasharray=`${C[a]}`,s.style.strokeDashoffset=L==="reverse"?"0":`${C[a]}`,m?s.style.opacity=L==="reverse"?"1":"0":s.style.opacity="",be&&(s.style.stroke=be),ie!==null&&(s.style.strokeWidth=`${ie}`),fe!==null&&(s.style.fillOpacity=`${fe}`),O&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(z.forEach(s=>{Qt(s);let a=_e(s);C.push(a);let v=s.tagName.toLowerCase()==="path";v?i.push(s.getAttribute("d")??""):i.push(""),O&&(v?Jt(i[i.length-1],O,s):he(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=L==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),oe&&(s.style.stroke=oe),G!==null&&(s.style.strokeWidth=`${G}`),Y!==null&&(s.style.fillOpacity=`${Y}`),O&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",O)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=L==="reverse"?"0":`${a}`,m?s.style.opacity=L==="reverse"?"1":"0":s.style.opacity="",be&&(s.style.stroke=be),ie!==null&&(s.style.strokeWidth=`${ie}`),fe!==null&&(s.style.fillOpacity=`${fe}`));}),me){if(o)return e.style.clipPath=$e(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=$e(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ut=typeof d=="string"?Je(d):null;function Nt(){return !(ue===false||!Yt()||!z.length||!ut||me||W!=="y"||ye||u!==1||N!==0||te||X||k!==false||O||w||S||B>0||h||T||g||p||D||de||ve||A!=null||$!=null||M!=null||(x.start??"top bottom").trim()!=="top bottom"||(x.end??"bottom top").trim()!=="bottom top")}function zt(){let s=++Xt,a=`svg-scroll-draw-${s}`,v=`svg-scroll-draw-host-${s}`,le=`--svg-scroll-draw-${s}`,Ie=L==="reverse"?"0":"var(--ssd-len)",Ce=L==="reverse"?"var(--ssd-len)":"0",Ae=`stroke-dashoffset:${Ie};`,E=`stroke-dashoffset:${Ce};`;m&&(Ae+=`opacity:${L==="reverse"?1:0};`,E+=`opacity:${L==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Ae}}to{${E}}}.${v}{view-timeline-name:${le};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ut};animation-fill-mode:both;animation-timeline:${le};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(v);function ce(y,U){y.style.setProperty("--ssd-len",String(C[U])),y.style.strokeDasharray=`${C[U]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(a);}z.forEach(ce);let b=false,H=-1;function q(){if(H>=0)return H;let y=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:y.top,height:y.height},et(),lt(),Le,Ne);return Ee(Q(et(),U,Te,u))}return {destroy(){e.classList.remove(v),z.forEach(y=>{y.classList.remove(a),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),F.remove();},replay(){b=false,H=-1,z.forEach(ce);},pause(){b=true,z.forEach(y=>{y.style.animationPlayState="paused";});},resume(){b&&(b=false,z.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let U=Math.min(1,Math.max(0,y));H=U,b=true,z.forEach((Te,ge)=>{Te.classList.remove(a),Te.style.strokeDashoffset=L==="reverse"?`${C[ge]*U}`:`${C[ge]*(1-U)}`,m&&(Te.style.opacity=L==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return q()},refresh(){z.forEach((y,U)=>{C[U]=_e(y),y.style.setProperty("--ssd-len",String(C[U])),y.style.strokeDasharray=`${C[U]}`;});}}}if(Nt())return zt();function _t(){let s=Math.max(1,J),a=0,v=0,le=false;function Ie(b){let H=true;if(me){let q=Math.min(1,Math.max(0,b/s)),y=Ee(q);Se=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=$e(L==="reverse"?1-y:y),h?.(y),q<1&&(H=false);}else z.forEach((q,y)=>{let U=y*N*s,Te=Math.min(1,Math.max(0,(b-U)/s)),ge=Ee(Te);q.style.strokeDashoffset=L==="reverse"?`${C[y]*ge}`:`${C[y]*(1-ge)}`,m&&(q.style.opacity=L==="reverse"?`${1-ge}`:`${ge}`),be&&oe?q.style.stroke=Ve(be,oe,ge):oe&&(q.style.stroke=oe),ie!==null&&G!==null?q.style.strokeWidth=`${ie+(G-ie)*ge}`:G!==null&&(q.style.strokeWidth=`${G}`),fe!==null&&Y!==null?q.style.fillOpacity=`${fe+(Y-fe)*ge}`:Y!==null&&(q.style.fillOpacity=`${Y}`),O&&q.tagName.toLowerCase()==="path"&&i[y]&&q.setAttribute("d",nt(i[y],O,ge)),y===0&&(Se=ge,h?.(ge),e.style.setProperty("--scroll-draw-progress",String(ge))),Te<1&&(H=false);});if(w){let q=Math.min(1,Math.max(0,b/s)),y=Ee(q);for(let U in w){let Te=parseFloat(U);y>=Te&&!Fe.has(Te)&&(Fe.add(Te),w[U]?.());}}return H}function Ce(b){if(K)return;let H=b-a;_||(_=true,T?.());let q=Ie(H);if(q&&!R){R=true,Ie(s*(1+Math.max(0,z.length-1)*N)),g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Oe=setTimeout(()=>{a=performance.now(),_=false,R=false,Fe.clear(),Ge(),V=requestAnimationFrame(Ce);},re));return}q||(V=requestAnimationFrame(Ce));}function Ae(){cancelAnimationFrame(V),clearTimeout(Oe),a=performance.now(),v=0,K=false,_=false,R=false,ke=0,le=true,Se=0,Fe.clear(),Ge(),V=requestAnimationFrame(Ce);}let E=new IntersectionObserver(b=>{b.forEach(H=>{H.isIntersecting&&!(te&&R)?Ae():!H.isIntersecting&&!te&&!R&&(cancelAnimationFrame(V),clearTimeout(Oe),le=false);});},{root:ye??null,threshold:I,rootMargin:P}),F;function ce(){clearTimeout(F),F=setTimeout(()=>{z.forEach((b,H)=>{C[H]=_e(b),b.style.strokeDasharray=`${C[H]}`;});},150);}return window.addEventListener("resize",ce),window.addEventListener("orientationchange",ce),B>0?setTimeout(()=>E.observe(e),B):E.observe(e),{destroy(){cancelAnimationFrame(V),clearTimeout(Oe),E.disconnect(),window.removeEventListener("resize",ce),window.removeEventListener("orientationchange",ce),clearTimeout(F);},replay(){ke=0,Ae();},pause(){K||!le||(K=true,v=performance.now()-a,cancelAnimationFrame(V));},resume(){K&&(K=false,le=true,a=performance.now()-v,V=requestAnimationFrame(Ce));},seek(b){let H=Math.min(1,Math.max(0,b));Se=H,K=true,v=H*s,a=performance.now()-v,cancelAnimationFrame(V),Ie(v);},getProgress(){return Se},refresh(){clearTimeout(F),z.forEach((b,H)=>{C[H]=_e(b),b.style.strokeDasharray=`${C[H]}`;});}}}if(se)return _t();ct();function je(){if(!j||K)return;let s=performance.now(),a=et();if(!De&&k===false&&a===it){V=requestAnimationFrame(je);return}De=false,it=a;let v=u;if(k!==false){let E=s-at,F=E>0?Math.abs(a-(Be<0?a:Be))/E:0;v=u*Math.max(.2,1+F*(typeof k=="number"?k:1)*.04);}Be=a,at=s;let le=X?Pe===-1||a>=Pe?"forward":"reverse":L;Pe=a;let Ie=we-f,Ce=true,Ae=Ie===0?0:(a-f)/Ie;if(isNaN(ze)||(ze<=0&&Ae>0?p?.():ze>0&&Ae<=0&&ve?.(),ze<1&&Ae>=1?D?.():ze>=1&&Ae<1&&de?.()),ze=Ae,me){let E=Ee(Q(a,f,we,v));te&&!X&&(ae=Math.max(ae,E),E=ae),Se=E,e.style.setProperty("--scroll-draw-progress",String(E));let F=le==="reverse"?1-E:E;e.style.clipPath=$e(F),h?.(E),!_&&Q(a,f,we,v)>0&&(_=true,T?.()),E>=1&&!R?(R=true,g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Oe=setTimeout(()=>{ae=-1,_=false,R=false,e.style.clipPath=$e(0);},re))):E<1&&!te&&(R=false),V=requestAnimationFrame(je);return}if(z.forEach((E,F)=>{let ce=F*N*Ie,b=Ee(Q(a,f+ce,we+ce,v));te&&!X&&(ae=Math.max(ae,b),b=ae),Se=b,E.style.strokeDashoffset=le==="reverse"?`${C[F]*b}`:`${C[F]*(1-b)}`,m&&(E.style.opacity=le==="reverse"?`${1-b}`:`${b}`),be&&oe?E.style.stroke=Ve(be,oe,b):oe&&(E.style.stroke=oe),ie!==null&&G!==null?E.style.strokeWidth=`${ie+(G-ie)*b}`:G!==null&&(E.style.strokeWidth=`${G}`),fe!==null&&Y!==null?E.style.fillOpacity=`${fe+(Y-fe)*b}`:Y!==null&&(E.style.fillOpacity=`${Y}`),O&&E.tagName.toLowerCase()==="path"&&i[F]&&E.setAttribute("d",nt(i[F],O,b)),F===0&&(h?.(b),e.style.setProperty("--scroll-draw-progress",String(b))),b<1&&(Ce=false);}),w){let E=Ee(Q(a,f,we,v));for(let F in w){let ce=parseFloat(F);E>=ce&&!Fe.has(ce)&&(Fe.add(ce),w[F]?.());}}!_&&Q(a,f,we,v)>0&&(_=true,T?.()),Ce&&!R?(R=true,g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Oe=setTimeout(()=>{ae=-1,_=false,R=false,Fe.clear(),Ge(),De=true;},re))):!Ce&&!te&&(R=false),V=requestAnimationFrame(je);}let tt=false;function Ue(){tt||(tt=true,V=requestAnimationFrame(function(){je();}));}function Xe(){tt=false,cancelAnimationFrame(V);}let rt=new IntersectionObserver(s=>{s.forEach(a=>{j=a.isIntersecting,j&&!K?(De=true,Ue()):Xe();});},{root:ye??null,threshold:I,rootMargin:P});function mt(){z.forEach((s,a)=>{C[a]=_e(s),s.style.strokeDasharray=`${C[a]}`;}),ct(),De=true;}let Ye;function qe(){clearTimeout(Ye),Ye=setTimeout(mt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),B>0?setTimeout(()=>rt.observe(e),B):rt.observe(e),{destroy(){cancelAnimationFrame(V),clearTimeout(Oe),Xe(),rt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Ye),ot();},replay(){ae=-1,Pe=-1,Be=-1,_=false,R=false,ke=0,K=false,Se=0,Fe.clear(),clearTimeout(Oe),Ge(),De=true,j&&Ue();},pause(){K=true,Xe();},resume(){K&&(K=false,De=true,j&&Ue());},seek(s){let a=Math.min(1,Math.max(0,s));Se=a,ae=a,K=true,Xe(),Ht(a,L),De=true;},getProgress(){return Se},refresh(){clearTimeout(Ye),mt(),j&&!K&&Ue();}}}var vt=new Map;function Re(e,r){vt.set(e,r);}function He(e){vt.delete(e);}function Kt(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Et(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function er(e,r,n){let t=Et(e),l=Et(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,d)=>`${m}${o.units[d]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,d)=>`${m}${u.units[d]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,d)=>`${m+(u.nums[d]-m)*n}${o.units[d]}`).join(", ")})`}).join(" ")}function St(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(Kt(t))return Ve(t,l,n);if(t.includes("("))return er(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function tr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var rr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),nr=0,Tt="--scroll-draw-progress";function sr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function xt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:d,native:x=true,velocityScale:N=false,respectReducedMotion:L=true,triggerElement:te,onProgress:Me,onComplete:W,onEnter:Z,onLeave:X,onEnterBack:B,onLeaveBack:A}=r,$=L&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:ee[o]??ee["ease-out"],w=pe(l.start??"top bottom"),k=pe(l.end??"bottom top"),I=te??e,P=typeof d=="string"?document.querySelector(d):d??null,S=Object.entries(t).map(([i,f])=>({prop:tr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function re(){let i=window.getComputedStyle(e);for(let f of S)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function O(){for(let i of S)e.style.setProperty(i.prop,String(i.to));}let ne=new Map;for(let i of [...S.map(f=>f.prop),Tt])ne.set(i,e.style.getPropertyValue(i));function se(){for(let[i,f]of ne)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return O(),W?.(),{...n,destroy:se,getProgress:()=>1};re();let J=typeof o=="string"?Je(o):null;function ue(){if(!x||!sr()||!J||m!=="y"||P||I!==e||u||c!==1||Me||W||Z||X||B||A||N!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of S)if(!rr.has(i.prop))return false;return true}function h(){let i=`ssd-a-${++nr}`,f=S.map(j=>`${j.prop}:${j.from}`).join(";"),we=S.map(j=>`${j.prop}:${j.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${we}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${J};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let _=()=>m==="x"?window.scrollX:window.scrollY,V=()=>m==="x"?window.innerWidth:window.innerHeight;return {destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",se();},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(j){let ae=Math.min(1,Math.max(0,j));e.classList.remove(i);for(let Pe of S)e.style.setProperty(Pe.prop,St(Pe.from,Pe.to,ae));},getProgress(){let j=e.getBoundingClientRect(),ae=_(),Pe=V(),{tStart:K,tEnd:Se}=xe({top:j.top,height:j.height},ae,Pe,w,k);return M(Q(ae,K,Se,c))}}}if(ue())return h();let T=0,g=0,p=0,D=false,de=false,ve=-1,me=0,Ee=false,Le=NaN,Ne=-1,ye=0,be=()=>P?m==="x"?P.scrollLeft:P.scrollTop:m==="x"?window.scrollX:window.scrollY,oe=()=>P?m==="x"?P.clientWidth:P.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ie(){let i=Qe(I,P,m),f=xe(i,i.scroll,oe(),w,k);T=f.tStart,g=f.tEnd;}function G(i){e.style.setProperty(Tt,String(i));for(let f of S)e.style.setProperty(f.prop,St(f.from,f.to,i));Me?.(i);}function fe(i){if(isNaN(Le)){Le=i;return}Le<=0&&i>0?Z?.():Le>0&&i<=0&&A?.(),Le<1&&i>=1?X?.():Le>=1&&i<1&&B?.(),Le=i;}function Y(){if(!D||de)return;let i=performance.now(),f=be(),we=c;if(N!==false){let V=i-ye,j=V>0?Math.abs(f-(Ne<0?f:Ne))/V:0;we=c*Math.max(.2,1+j*(typeof N=="number"?N:1)*.04);}Ne=f,ye=i;let R=g===T?0:(f-T)/(g-T);fe(R);let _=M(Q(f,T,g,we));u&&(ve=Math.max(ve,_),_=ve),me=_,G(_),_>=1&&!Ee?(Ee=true,W?.()):_<1&&!u&&(Ee=false),p=requestAnimationFrame(Y);}ie(),g===T&&he("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(Q(be(),T,g,c));u&&i>0&&(ve=i),me=i,G(i);}let $e=new IntersectionObserver(i=>{i.forEach(f=>{D=f.isIntersecting,D&&!de?p=requestAnimationFrame(Y):cancelAnimationFrame(p);});},{root:P??null}),z;function C(){clearTimeout(z),z=setTimeout(ie,150);}return window.addEventListener("resize",C),window.addEventListener("orientationchange",C),$e.observe(e),Re(e,{type:"animate",getProgress:()=>me,getTrigger:()=>({tStart:T,tEnd:g})}),{destroy(){cancelAnimationFrame(p),$e.disconnect(),window.removeEventListener("resize",C),window.removeEventListener("orientationchange",C),clearTimeout(z),se(),He(e);},replay(){ve=-1,Ee=false,me=0,de=false,G(0);},pause(){de=true,cancelAnimationFrame(p);},resume(){de&&(de=false,D&&(p=requestAnimationFrame(Y)));},seek(i){let f=Math.min(1,Math.max(0,i));me=f,ve=f,de=true,cancelAnimationFrame(p),G(f);},getProgress(){return me}}}var st={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,r){if(typeof window>"u")return st;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return he("scrollCounter: element not found:",e),st;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:d=true,decimals:x,onComplete:N}=r,L=x!==void 0?h=>h.toFixed(x):c??(h=>String(Math.round(h))),te=typeof u=="function"?u:ee[u]??ee["ease-out"],Me=pe(m.start??"top 80%"),W=pe(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=L(o),N?.(),st;let X=0,B=0,A=0,$=false,M=false,w=-1,k=0,I=false,P=()=>window.scrollY,S=()=>window.innerHeight;function re(){let h=t.getBoundingClientRect(),T=xe({top:h.top,height:h.height},P(),S(),Me,W);X=T.tStart,B=T.tEnd;}function O(h){t.textContent=L(l+(o-l)*h),t.style.setProperty("--scroll-draw-progress",String(h));}function ne(){if(!$||M)return;let h=te(Q(P(),X,B,1));d&&(w=Math.max(w,h),h=w),k=h,O(h),h>=1&&!I?(I=true,N?.()):h<1&&!d&&(I=false),A=requestAnimationFrame(ne);}re();{let h=te(Q(P(),X,B,1));d&&h>0&&(w=h),k=h,O(h);}let se=new IntersectionObserver(h=>{h.forEach(T=>{$=T.isIntersecting,$&&!M?A=requestAnimationFrame(ne):cancelAnimationFrame(A);});}),J;function ue(){clearTimeout(J),J=setTimeout(re,150);}return window.addEventListener("resize",ue),window.addEventListener("orientationchange",ue),se.observe(t),Re(t,{type:"counter",getProgress:()=>k,getTrigger:()=>({tStart:X,tEnd:B})}),{destroy(){cancelAnimationFrame(A),se.disconnect(),window.removeEventListener("resize",ue),window.removeEventListener("orientationchange",ue),clearTimeout(J),He(t);},replay(){w=-1,I=false,k=0,M=false,O(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(ne)));},seek(h){let T=Math.min(1,Math.max(0,h));k=T,w=T,M=true,cancelAnimationFrame(A),O(T);},getProgress(){return k}}}var Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,r={}){if(typeof window>"u")return Mt;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return he("scrollVideo: <video> element not found:",e),Mt;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:d,onComplete:x,onProgress:N}=r,L=window.matchMedia("(prefers-reduced-motion: reduce)").matches,te=typeof o=="function"?o:ee[o]??ee.linear,Me=pe(l.start??"top top"),W=pe(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let Z=r.from??0,X=r.to,B=0,A=0,$=0,M=false,w=false,k=-1,I=0,P=false,S=false,re=()=>u==="x"?window.scrollX:window.scrollY,O=()=>u==="x"?window.innerWidth:window.innerHeight;function ne(){let p=t.getBoundingClientRect(),D=u==="x"?p.left:p.top,de=u==="x"?p.width:p.height,ve=xe({top:D,height:de},re(),O(),Me,W);B=ve.tStart,A=ve.tEnd;}function se(p){if(!S)return;let D=X??t.duration??0;t.currentTime=Z+(D-Z)*p,t.style.setProperty("--scroll-draw-progress",String(p)),N?.(p);}function J(){if(!M||w||!S)return;let p=te(Q(re(),B,A,1));c&&(k=Math.max(k,p),p=k),I=p,se(p),p>=1&&!P?(P=true,x?.()):p<1&&!c&&(P=false),$=requestAnimationFrame(J);}function ue(){if(S=true,X===void 0&&(X=t.duration),L){se(1),d?.();return}ne(),d?.(),M&&!w&&($=requestAnimationFrame(J));}t.readyState>=1?ue():t.addEventListener("loadedmetadata",ue,{once:true}),S||ne();let h=new IntersectionObserver(p=>{p.forEach(D=>{M=D.isIntersecting,M&&!w&&S?$=requestAnimationFrame(J):cancelAnimationFrame($);});}),T;function g(){clearTimeout(T),T=setTimeout(ne,150);}return window.addEventListener("resize",g),window.addEventListener("orientationchange",g),h.observe(t),Re(t,{type:"video",getProgress:()=>I,getTrigger:()=>({tStart:B,tEnd:A})}),{destroy(){cancelAnimationFrame($),h.disconnect(),t.removeEventListener("loadedmetadata",ue),window.removeEventListener("resize",g),window.removeEventListener("orientationchange",g),clearTimeout(T),He(t);},replay(){k=-1,P=false,I=0,w=false,se(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&S&&($=requestAnimationFrame(J)));},seek(p){let D=Math.min(1,Math.max(0,p));I=D,k=D,w=true,cancelAnimationFrame($),se(D);},getProgress(){return I}}}function Ct(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function or(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function $t(e){let r=Ct(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,d)=>{let x=m.nextElementSibling;u.appendChild(m),d<c.length-1&&x&&x.style.whiteSpace==="pre"&&u.appendChild(x);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function ir(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function ar(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var Pt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function kt(e,r={}){if(typeof window>"u")return Pt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return he("scrollText: element not found:",e),Pt;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:d=true,onComplete:x}=r,N=window.matchMedia("(prefers-reduced-motion: reduce)").matches,L=typeof c=="function"?c:ee[c]??ee["ease-out"],te=pe(m.start??"top 85%"),Me=pe(m.end??"top 40%"),W=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let Z;l==="chars"?Z=or(t):l==="lines"?Z=$t(t):Z=Ct(t);let X=Z.length;function B(g,p){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*p));let D=ar(p,u);D&&(g.style.transform=D);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),Z.forEach((p,D)=>{let de=L(ir(g,D,X,o));B(p,de);});}if(N)return A(1),x?.(),{destroy(){t.innerHTML=W,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,k=false,I=false,P=-1,S=0,re=false,O=()=>window.scrollY,ne=()=>window.innerHeight;function se(){let g=t.getBoundingClientRect(),p=xe({top:g.top,height:g.height},O(),ne(),te,Me);$=p.tStart,M=p.tEnd;}function J(){if(!k||I)return;let g=Q(O(),$,M,1);d&&(P=Math.max(P,g),g=P),S=g,A(g),g>=1&&!re?(re=true,x?.()):g<1&&!d&&(re=false),w=requestAnimationFrame(J);}se();let ue=new IntersectionObserver(g=>{g.forEach(p=>{k=p.isIntersecting,k&&!I?w=requestAnimationFrame(J):cancelAnimationFrame(w);});}),h;function T(){clearTimeout(h),h=setTimeout(()=>{if(l==="lines"){let g=S;t.innerHTML=W,t.setAttribute("aria-label",t.textContent??""),Z=$t(t),A(g);}se();},150);}return window.addEventListener("resize",T),window.addEventListener("orientationchange",T),ue.observe(t),Re(t,{type:"text",getProgress:()=>S,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ue.disconnect(),window.removeEventListener("resize",T),window.removeEventListener("orientationchange",T),clearTimeout(h),t.innerHTML=W,t.removeAttribute("aria-label"),He(t);},replay(){P=-1,re=false,S=0,I=false,A(0);},pause(){I=true,cancelAnimationFrame(w);},resume(){I&&(I=false,k&&(w=requestAnimationFrame(J)));},seek(g){let p=Math.min(1,Math.max(0,g));S=p,P=p,I=true,cancelAnimationFrame(w),A(p);},getProgress(){return S}}}var It=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=wt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ot=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=xt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ft=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=At(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Dt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Lt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Rt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=kt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};exports.ScrollAnimateRef=Ot;exports.ScrollCounterRef=Ft;exports.ScrollDrawRef=It;exports.ScrollTextRef=Rt;exports.ScrollVideoRef=Dt;
3
+ <div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Et=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,St=/[MmLlHhVvCcSsQqTtAaZz]/g;function tr(e,r,n){if(!Ze)return;let t=(e.match(St)??[]).join("").toUpperCase(),l=(r.match(St)??[]).join("").toUpperCase(),o=(e.match(Et)??[]).length,c=(r.match(Et)??[]).length;if(t!==l){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&we(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function st(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function Tt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...yt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:z=0,direction:P="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:I=false,threshold:O=0,rootMargin:C="0px",repeat:E=0,repeatDelay:se=0,morphTo:D,clip:oe,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:L,onLeave:S,onEnterBack:N,onLeaveBack:fe}=l,Q=oe===true?"left":typeof oe=="string"?oe:false,Se=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),He=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Ee=Array.isArray(A)?A[0]:null,le=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ce=Array.isArray($)?$[0]:null,j=Array.isArray($)?$[1]:typeof $=="number"?$:null,pe=Array.isArray(M)?M[0]:null,Z=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function ke(s){let a=s*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let _=Q?[]:Array.from(e.querySelectorAll(c)),k=[],i=[],f=0,ge=0,R=false,V=false,q=0,Ae=false,he=-1,te=-1,Y=false,ye=0,Oe=0,Fe,Je=null;function it(){Je?.destroy(),Je=null;}let Ne=new Set,at=NaN,Re=true,Be=-1,lt=performance.now(),ze=NaN;function et(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ct(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function ut(){let s=Qe(e,ve,B);return xe(s,s.scroll,ct(),Ce,He)}function mt(){(({tStart:f,tEnd:ge}=ut())),$e&&Ze&&(it(),Je=er(f,ge,B));}function tt(s,a=ut){Le(e,{type:"draw",getProgress:()=>s.getProgress(),getTrigger:a});let b=s.destroy;return s.destroy=()=>{b.call(s),Pe(e);},s}function _t(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),Q){let b=a==="reverse"?1-s:s;e.style.clipPath=ke(b);return}_.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${k[ue]*s}`:`${k[ue]*(1-s)}`,m&&(b.style.opacity=a==="reverse"?`${1-s}`:`${s}`),Ee&&le?b.style.stroke=Ve(Ee,le,s):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*s}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*s}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",st(i[ue],D,s));});}function Ge(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=ke(0);return}_.forEach((s,a)=>{s.style.strokeDasharray=`${k[a]}`,s.style.strokeDashoffset=P==="reverse"?"0":`${k[a]}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`),D&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(_.forEach(s=>{Jt(s);let a=_e(s);k.push(a);let b=s.tagName.toLowerCase()==="path";b?i.push(s.getAttribute("d")??""):i.push(""),D&&(b?tr(i[i.length-1],D,s):we(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),le&&(s.style.stroke=le),j!==null&&(s.style.strokeWidth=`${j}`),Z!==null&&(s.style.fillOpacity=`${Z}`),D&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",D)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?"0":`${a}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`));}),Q){if(o)return e.style.clipPath=ke(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ft=typeof p=="string"?Ke(p):null;function Vt(){return !(ae===false||!Kt()||!_.length||!ft||Q||B!=="y"||ve||u!==1||z!==0||ne||X||I!==false||D||w||E||G>0||d||x||g||L||S||N||fe||A!=null||$!=null||M!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function qt(){let s=++Zt,a=`svg-scroll-draw-${s}`,b=`svg-scroll-draw-host-${s}`,ue=`--svg-scroll-draw-${s}`,De=P==="reverse"?"0":"var(--ssd-len)",Ie=P==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Me+=`opacity:${P==="reverse"?1:0};`,v+=`opacity:${P==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ft};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(h,U){h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`,h.style.strokeDashoffset="",h.style.opacity="",h.style.animationPlayState="",h.classList.add(a);}_.forEach(me);let y=false,H=-1;function W(){if(H>=0)return H;let h=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:h.top,height:h.height},et(),ct(),Ce,He);return Se(K(et(),U,Te,u))}return {destroy(){e.classList.remove(b),_.forEach(h=>{h.classList.remove(a),h.style.removeProperty("--ssd-len"),h.style.animationPlayState="";}),F.remove();},replay(){y=false,H=-1,_.forEach(me);},pause(){y=true,_.forEach(h=>{h.style.animationPlayState="paused";});},resume(){y&&(y=false,_.forEach(h=>{h.style.animationPlayState="running";}));},seek(h){let U=Math.min(1,Math.max(0,h));H=U,y=true,_.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=P==="reverse"?`${k[be]*U}`:`${k[be]*(1-U)}`,m&&(Te.style.opacity=P==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){_.forEach((h,U)=>{k[U]=_e(h),h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`;});}}}if(Vt())return tt(qt());function Wt(){let s=Math.max(1,ee),a=0,b=0,ue=false;function De(y){let H=true;if(Q){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);ye=h,e.style.setProperty("--scroll-draw-progress",String(h)),e.style.clipPath=ke(P==="reverse"?1-h:h),d?.(h),W<1&&(H=false);}else _.forEach((W,h)=>{let U=h*z*s,Te=Math.min(1,Math.max(0,(y-U)/s)),be=Se(Te);W.style.strokeDashoffset=P==="reverse"?`${k[h]*be}`:`${k[h]*(1-be)}`,m&&(W.style.opacity=P==="reverse"?`${1-be}`:`${be}`),Ee&&le?W.style.stroke=Ve(Ee,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[h]&&W.setAttribute("d",st(i[h],D,be)),h===0&&(ye=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);for(let U in w){let Te=parseFloat(U);h>=Te&&!Ne.has(Te)&&(Ne.add(Te),w[U]?.());}}return H}function Ie(y){if(Y)return;let H=y-a;V||(V=true,x?.());let W=De(H);if(W&&!R){R=true,De(s*(1+Math.max(0,_.length-1)*z)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{a=performance.now(),V=false,R=false,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);},se));return}W||(q=requestAnimationFrame(Ie));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,Y=false,V=false,R=false,Oe=0,ue=true,ye=0,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(y=>{y.forEach(H=>{H.isIntersecting&&!(ne&&R)?Me():!H.isIntersecting&&!ne&&!R&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:O,rootMargin:C}),F;function me(){clearTimeout(F),F=setTimeout(()=>{_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){Oe=0,Me();},pause(){Y||!ue||(Y=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){Y&&(Y=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Ie));},seek(y){let H=Math.min(1,Math.max(0,y));ye=H,Y=true,b=H*s,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ye},refresh(){clearTimeout(F),_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});}}}if(ie)return tt(Wt());mt();function je(){if(!Ae||Y)return;let s=performance.now(),a=et();if(!Re&&I===false&&a===at){q=requestAnimationFrame(je);return}Re=false,at=a;let b=u;if(I!==false){let v=s-lt,F=v>0?Math.abs(a-(Be<0?a:Be))/v:0;b=u*Math.max(.2,1+F*(typeof I=="number"?I:1)*.04);}Be=a,lt=s;let ue=X?te===-1||a>=te?"forward":"reverse":P;te=a;let De=ge-f,Ie=true,Me=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Me>0?L?.():ze>0&&Me<=0&&fe?.(),ze<1&&Me>=1?S?.():ze>=1&&Me<1&&N?.()),ze=Me,Q){let v=Se(K(a,f,ge,b));ne&&!X&&(he=Math.max(he,v),v=he),ye=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=ke(F),d?.(v),!V&&K(a,f,ge,b)>0&&(V=true,x?.()),v>=1&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,e.style.clipPath=ke(0);},se))):v<1&&!ne&&(R=false),q=requestAnimationFrame(je);return}if(_.forEach((v,F)=>{let me=F*z*De,y=Se(K(a,f+me,ge+me,b));ne&&!X&&(he=Math.max(he,y),y=he),ye=y,v.style.strokeDashoffset=ue==="reverse"?`${k[F]*y}`:`${k[F]*(1-y)}`,m&&(v.style.opacity=ue==="reverse"?`${1-y}`:`${y}`),Ee&&le?v.style.stroke=Ve(Ee,le,y):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*y}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*y}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",st(i[F],D,y)),F===0&&(d?.(y),e.style.setProperty("--scroll-draw-progress",String(y))),y<1&&(Ie=false);}),w){let v=Se(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Ne.has(me)&&(Ne.add(me),w[F]?.());}}!V&&K(a,f,ge,b)>0&&(V=true,x?.()),Ie&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,Ne.clear(),Ge(),Re=true;},se))):!Ie&&!ne&&(R=false),q=requestAnimationFrame(je);}let rt=false;function Ye(){rt||(rt=true,q=requestAnimationFrame(function(){je();}));}function Ue(){rt=false,cancelAnimationFrame(q);}let nt=new IntersectionObserver(s=>{s.forEach(a=>{Ae=a.isIntersecting,Ae&&!Y?(Re=true,Ye()):Ue();});},{root:ve??null,threshold:O,rootMargin:C});function pt(){_.forEach((s,a)=>{k[a]=_e(s),s.style.strokeDasharray=`${k[a]}`;}),mt(),Re=true;}let Xe;function qe(){clearTimeout(Xe),Xe=setTimeout(pt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>nt.observe(e),G):nt.observe(e),tt({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Ue(),nt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Xe),it();},replay(){he=-1,te=-1,Be=-1,V=false,R=false,Oe=0,Y=false,ye=0,Ne.clear(),clearTimeout(Fe),Ge(),Re=true,Ae&&Ye();},pause(){Y=true,Ue();},resume(){Y&&(Y=false,Re=true,Ae&&Ye());},seek(s){let a=Math.min(1,Math.max(0,s));ye=a,he=a,Y=true,Ue(),_t(a,P),Re=true;},getProgress(){return ye},refresh(){clearTimeout(Xe),pt(),Ae&&!Y&&Ye();}},()=>({tStart:f,tEnd:ge}))}function rr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function xt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function nr(e,r,n){let t=xt(e),l=xt(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,p)=>`${m}${o.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${o.units[p]}`).join(", ")})`}).join(" ")}function At(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(rr(t))return Ve(t,l,n);if(t.includes("("))return nr(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function sr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var or=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),ir=0,Mt="--scroll-draw-progress";function ar(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Lt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:z=false,respectReducedMotion:P=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:A}=r,$=P&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:re[o]??re["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),O=ne??e,C=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:sr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function se(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let oe=new Map;for(let i of [...E.map(f=>f.prop),Mt])oe.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of oe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return D(),B?.(),{...n,destroy:ie,getProgress:()=>1};se();let ee=typeof o=="string"?Ke(o):null;function ae(){if(!T||!ar()||!ee||m!=="y"||C||O!==e||u||c!==1||$e||B||J||X||G||A||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!or.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++ir}`,f=E.map(te=>`${te.prop}:${te.from}`).join(";"),ge=E.map(te=>`${te.prop}:${te.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let V=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},V(),q(),w,I)};Le(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ae});let he={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",ie(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let Y=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let ye of E)e.style.setProperty(ye.prop,At(ye.from,ye.to,Y));},getProgress(){let{tStart:te,tEnd:Y}=Ae();return M(K(V(),te,Y,c))}};return he}if(ae())return d();let x=0,g=0,L=0,S=false,N=false,fe=-1,Q=0,Se=false,Ce=NaN,He=-1,ve=0,Ee=()=>C?m==="x"?C.scrollLeft:C.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>C?m==="x"?C.clientWidth:C.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Qe(O,C,m),f=xe(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Mt,String(i));for(let f of E)e.style.setProperty(f.prop,At(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?J?.():Ce>0&&i<=0&&A?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Z(){if(!S||N)return;let i=performance.now(),f=Ee(),ge=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(He<0?f:He))/q:0;ge=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}He=f,ve=i;let R=g===x?0:(f-x)/(g-x);pe(R);let V=M(K(f,x,g,ge));u&&(fe=Math.max(fe,V),V=fe),Q=V,j(V),V>=1&&!Se?(Se=true,B?.()):V<1&&!u&&(Se=false),L=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(K(Ee(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let ke=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!N?L=requestAnimationFrame(Z):cancelAnimationFrame(L);});},{root:C??null}),_;function k(){clearTimeout(_),_=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),ke.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame(L),ke.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(_),ie(),Pe(e);},replay(){fe=-1,Se=false,Q=0,N=false,j(0);},pause(){N=true,cancelAnimationFrame(L);},resume(){N&&(N=false,S&&(L=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,N=true,cancelAnimationFrame(L),j(f);},getProgress(){return Q}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,r){if(typeof window>"u")return ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollCounter: element not found:",e),ot;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:z}=r,P=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=P(o),z?.(),ot;let X=0,G=0,A=0,$=false,M=false,w=-1,I=0,O=false,C=()=>window.scrollY,E=()=>window.innerHeight;function se(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},C(),E(),$e,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=P(l+(o-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function oe(){if(!$||M)return;let d=ne(K(C(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,D(d),d>=1&&!O?(O=true,z?.()):d<1&&!p&&(O=false),A=requestAnimationFrame(oe);}se();{let d=ne(K(C(),X,G,1));p&&d>0&&(w=d),I=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{$=x.isIntersecting,$&&!M?A=requestAnimationFrame(oe):cancelAnimationFrame(A);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(se,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(A),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),Pe(t);},replay(){w=-1,O=false,I=0,M=false,D(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(oe)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,M=true,cancelAnimationFrame(A),D(x);},getProgress(){return I}}}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r={}){if(typeof window>"u")return $t;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),$t;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:z}=r,P=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof o=="function"?o:re[o]??re.linear,$e=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=r.from??0,X=r.to,G=0,A=0,$=0,M=false,w=false,I=-1,O=0,C=false,E=false,se=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function oe(){let S=t.getBoundingClientRect(),N=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,Q=xe({top:N,height:fe},se(),D(),$e,B);G=Q.tStart,A=Q.tEnd;}let ie=NaN;function ee(S){if(!E)return;let N=X??t.duration??0,fe=J+(N-J)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),z?.(S);}function ae(){if(!M||w||!E)return;let S=ne(K(se(),G,A,1));c&&(I=Math.max(I,S),S=I),O=S,ee(S),S>=1&&!C?(C=true,T?.()):S<1&&!c&&(C=false),$=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),P){ee(1),p?.();return}oe(),p?.(),M&&!w&&($=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||oe();let x=new IntersectionObserver(S=>{S.forEach(N=>{M=N.isIntersecting,M&&!w&&E?$=requestAnimationFrame(ae):cancelAnimationFrame($);});}),g;function L(){clearTimeout(g),g=setTimeout(oe,150);}return window.addEventListener("resize",L),window.addEventListener("orientationchange",L),x.observe(t),Le(t,{type:"video",getProgress:()=>O,getTrigger:()=>({tStart:G,tEnd:A})}),{destroy(){cancelAnimationFrame($),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",L),window.removeEventListener("orientationchange",L),clearTimeout(g),Pe(t);},replay(){I=-1,C=false,O=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&E&&($=requestAnimationFrame(ae)));},seek(S){let N=Math.min(1,Math.max(0,S));O=N,I=N,w=true,cancelAnimationFrame($),ie=NaN,ee(N);},getProgress(){return O}}}function Ot(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function lr(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function kt(e){let r=Ot(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function cr(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function ur(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var It={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Dt(e,r={}){if(typeof window>"u")return It;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollText: element not found:",e),It;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,P=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=lr(t):l==="lines"?J=kt(t):J=Ot(t);let X=J.length;function G(g,L){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*L));let S=ur(L,u);S&&(g.style.transform=S);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach((L,S)=>{let N=P(cr(g,S,X,o));G(L,N);});}if(z)return A(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,I=false,O=false,C=-1,E=0,se=false,D=()=>window.scrollY,oe=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),L=xe({top:g.top,height:g.height},D(),oe(),ne,$e);$=L.tStart,M=L.tEnd;}function ee(){if(!I||O)return;let g=K(D(),$,M,1);p&&(C=Math.max(C,g),g=C),E=g,A(g),g>=1&&!se?(se=true,T?.()):g<1&&!p&&(se=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach(L=>{I=L.isIntersecting,I&&!O?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=kt(t),A(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){C=-1,se=false,E=0,O=false,A(0);},pause(){O=true,cancelAnimationFrame(w);},resume(){O&&(O=false,I&&(w=requestAnimationFrame(ee)));},seek(g){let L=Math.min(1,Math.max(0,g));E=L,C=L,O=true,cancelAnimationFrame(w),A(L);},getProgress(){return E}}}var Ft=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Tt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Nt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Lt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Rt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Pt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ht=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Ct(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},zt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Dt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};exports.ScrollAnimateRef=Nt;exports.ScrollCounterRef=Rt;exports.ScrollDrawRef=Ft;exports.ScrollTextRef=zt;exports.ScrollVideoRef=Ht;
@@ -1,3 +1,3 @@
1
- function Vt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),l=Math.sqrt(t),o=0,c=[];for(let d=0;d<n;d++){let x=Math.pow(l,d);c.push(x),o+=x;}let u=[0],m=0;for(let d=0;d<n;d++)m+=c[d]/o,u.push(m);return d=>{if(d<=0)return 0;if(d>=1)return 1;for(let x=0;x<n;x++)if(d<=u[x+1]){let N=(d-u[x])/(u[x+1]-u[x]);if(x===0)return N*(2-N);let L=1-Math.pow(t,x);return L+(1-L)*(2*N-1)*(2*N-1)}return 1}}function qt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),l=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return o=>o<=0?0:o>=1?1:n*Math.pow(2,-10*o)*Math.sin((o-l)*(2*Math.PI)/t)+1}var ee={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:Vt(),elastic:qt()};function pe(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function ft(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function pt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function _e(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function Wt(e,r,n){return Math.min(n,Math.max(r,e))}function Q(e,r,n,t){return n===r?0:Wt((e-r)/(n-r)*t,0,1)}function Qe(e,r,n){let t=e.getBoundingClientRect(),l=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:l,scroll:0}:{top:n==="x"?t.left:t.top,height:l,scroll:n==="x"?window.scrollX:window.scrollY}}function xe(e,r,n,t,l){let o=ft(e.top,e.height,r,t.element)-pt(t.viewport,n),c=ft(e.top,e.height,r,l.element)-pt(l.viewport,n);return {tStart:o,tEnd:c}}function dt(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ve(e,r,n){let t=dt(e),l=dt(r);return !t||!l?e:`rgb(${Math.round(t[0]+(l[0]-t[0])*n)},${Math.round(t[1]+(l[1]-t[1])*n)},${Math.round(t[2]+(l[2]-t[2])*n)})`}var gt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Ze=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function he(e,...r){Ze&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Bt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Gt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",ht=33;function jt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Ut(e){let r=[];for(let n=0;n<ht;n++){let t=n/(ht-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function Je(e){switch(e){case "linear":return "linear";case "ease-in":return Bt;case "ease-out":return Gt;case "ease-in-out":return jt()?Ut(ee["ease-in-out"]):null;default:return null}}var Xt=0;function Yt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Qt(e){let r=e.getAttribute("stroke"),n=e.getAttribute("fill");!r||r==="none"?he("Element has no stroke \u2014 path will not be visible.",e):n&&n!=="none"&&n!=="transparent"&&he("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Zt(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function l(){let o=n==="x"?window.scrollX:window.scrollY,c=e-o,u=r-o,m=n==="x";t.innerHTML=`
1
+ function Bt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),l=Math.sqrt(t),o=0,c=[];for(let p=0;p<n;p++){let T=Math.pow(l,p);c.push(T),o+=T;}let u=[0],m=0;for(let p=0;p<n;p++)m+=c[p]/o,u.push(m);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let T=0;T<n;T++)if(p<=u[T+1]){let z=(p-u[T])/(u[T+1]-u[T]);if(T===0)return z*(2-z);let P=1-Math.pow(t,T);return P+(1-P)*(2*z-1)*(2*z-1)}return 1}}function Gt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),l=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return o=>o<=0?0:o>=1?1:n*Math.pow(2,-10*o)*Math.sin((o-l)*(2*Math.PI)/t)+1}var re={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:Bt(),elastic:Gt()};function de(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function dt(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function gt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function _e(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function jt(e,r,n){return Math.min(n,Math.max(r,e))}function K(e,r,n,t){return n===r?0:jt((e-r)/(n-r)*t,0,1)}function Qe(e,r,n){let t=e.getBoundingClientRect(),l=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:l,scroll:0}:{top:n==="x"?t.left:t.top,height:l,scroll:n==="x"?window.scrollX:window.scrollY}}function xe(e,r,n,t,l){let o=dt(e.top,e.height,r,t.element)-gt(t.viewport,n),c=dt(e.top,e.height,r,l.element)-gt(l.viewport,n);return {tStart:o,tEnd:c}}function ht(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ve(e,r,n){let t=ht(e),l=ht(r);return !t||!l?e:`rgb(${Math.round(t[0]+(l[0]-t[0])*n)},${Math.round(t[1]+(l[1]-t[1])*n)},${Math.round(t[2]+(l[2]-t[2])*n)})`}var yt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Ze=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function we(e,...r){Ze&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Yt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Ut="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",bt=33;function Xt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Qt(e){let r=[];for(let n=0;n<bt;n++){let t=n/(bt-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function Ke(e){switch(e){case "linear":return "linear";case "ease-in":return Yt;case "ease-out":return Ut;case "ease-in-out":return Xt()?Qt(re["ease-in-out"]):null;default:return null}}var wt=Symbol.for("svg-scroll-draw.registry");function vt(){let e=globalThis;return e[wt]||(e[wt]=new Map)}function Le(e,r){vt().set(e,r);}function Pe(e){vt().delete(e);}var Zt=0;function Kt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Jt(e){let r=e.getAttribute("stroke"),n=e.getAttribute("fill");!r||r==="none"?we("Element has no stroke \u2014 path will not be visible.",e):n&&n!=="none"&&n!=="transparent"&&we("Element has a fill \u2014 it may obscure the stroke animation.",e);}function er(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function l(){let o=n==="x"?window.scrollX:window.scrollY,c=e-o,u=r-o,m=n==="x";t.innerHTML=`
2
2
  <div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${c}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
3
- <div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var yt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,bt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Jt(e,r,n){if(!Ze)return;let t=(e.match(bt)??[]).join("").toUpperCase(),l=(r.match(bt)??[]).join("").toUpperCase(),o=(e.match(yt)??[]).length,c=(r.match(yt)??[]).length;if(t!==l){he(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&he(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function nt(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function wt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...gt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:d="linear",trigger:x={},stagger:N=0,direction:L="forward",once:te=false,debug:Me=false,axis:W="y",scrollContainer:Z,autoReverse:X=false,delay:B=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:k=false,threshold:I=0,rootMargin:P="0px",repeat:S=0,repeatDelay:re=0,morphTo:O,clip:ne,autoplay:se=false,duration:J=1e3,native:ue=true,onProgress:h,onStart:T,onComplete:g,onEnter:p,onLeave:D,onEnterBack:de,onLeaveBack:ve}=l,me=ne===true?"left":typeof ne=="string"?ne:false,Ee=typeof d=="function"?d:ee[d]??ee.linear,Le=pe(x.start??"top bottom"),Ne=pe(x.end??"bottom top"),ye=typeof Z=="string"?document.querySelector(Z):Z??null,be=Array.isArray(A)?A[0]:null,oe=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ie=Array.isArray($)?$[0]:null,G=Array.isArray($)?$[1]:typeof $=="number"?$:null,fe=Array.isArray(M)?M[0]:null,Y=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function $e(s){let a=s*100;switch(me){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let z=me?[]:Array.from(e.querySelectorAll(c)),C=[],i=[],f=0,we=0,R=false,_=false,V=0,j=false,ae=-1,Pe=-1,K=false,Se=0,ke=0,Oe,Ke=null;function ot(){Ke?.destroy(),Ke=null;}let Fe=new Set,it=NaN,De=true,Be=-1,at=performance.now(),ze=NaN;function et(){return ye?W==="x"?ye.scrollLeft:ye.scrollTop:W==="x"?window.scrollX:window.scrollY}function lt(){return ye?W==="x"?ye.clientWidth:ye.clientHeight:W==="x"?window.innerWidth:window.innerHeight}function ct(){let s=Qe(e,ye,W),a=xe(s,s.scroll,lt(),Le,Ne);f=a.tStart,we=a.tEnd,Me&&Ze&&(ot(),Ke=Zt(f,we,W));}function Ht(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),me){let v=a==="reverse"?1-s:s;e.style.clipPath=$e(v);return}z.forEach((v,le)=>{v.style.strokeDashoffset=a==="reverse"?`${C[le]*s}`:`${C[le]*(1-s)}`,m&&(v.style.opacity=a==="reverse"?`${1-s}`:`${s}`),be&&oe?v.style.stroke=Ve(be,oe,s):oe&&(v.style.stroke=oe),ie!==null&&G!==null?v.style.strokeWidth=`${ie+(G-ie)*s}`:G!==null&&(v.style.strokeWidth=`${G}`),fe!==null&&Y!==null?v.style.fillOpacity=`${fe+(Y-fe)*s}`:Y!==null&&(v.style.fillOpacity=`${Y}`),O&&v.tagName.toLowerCase()==="path"&&i[le]&&v.setAttribute("d",nt(i[le],O,s));});}function Ge(){if(e.style.setProperty("--scroll-draw-progress","0"),me){e.style.clipPath=$e(0);return}z.forEach((s,a)=>{s.style.strokeDasharray=`${C[a]}`,s.style.strokeDashoffset=L==="reverse"?"0":`${C[a]}`,m?s.style.opacity=L==="reverse"?"1":"0":s.style.opacity="",be&&(s.style.stroke=be),ie!==null&&(s.style.strokeWidth=`${ie}`),fe!==null&&(s.style.fillOpacity=`${fe}`),O&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(z.forEach(s=>{Qt(s);let a=_e(s);C.push(a);let v=s.tagName.toLowerCase()==="path";v?i.push(s.getAttribute("d")??""):i.push(""),O&&(v?Jt(i[i.length-1],O,s):he(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=L==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),oe&&(s.style.stroke=oe),G!==null&&(s.style.strokeWidth=`${G}`),Y!==null&&(s.style.fillOpacity=`${Y}`),O&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",O)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=L==="reverse"?"0":`${a}`,m?s.style.opacity=L==="reverse"?"1":"0":s.style.opacity="",be&&(s.style.stroke=be),ie!==null&&(s.style.strokeWidth=`${ie}`),fe!==null&&(s.style.fillOpacity=`${fe}`));}),me){if(o)return e.style.clipPath=$e(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=$e(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ut=typeof d=="string"?Je(d):null;function Nt(){return !(ue===false||!Yt()||!z.length||!ut||me||W!=="y"||ye||u!==1||N!==0||te||X||k!==false||O||w||S||B>0||h||T||g||p||D||de||ve||A!=null||$!=null||M!=null||(x.start??"top bottom").trim()!=="top bottom"||(x.end??"bottom top").trim()!=="bottom top")}function zt(){let s=++Xt,a=`svg-scroll-draw-${s}`,v=`svg-scroll-draw-host-${s}`,le=`--svg-scroll-draw-${s}`,Ie=L==="reverse"?"0":"var(--ssd-len)",Ce=L==="reverse"?"var(--ssd-len)":"0",Ae=`stroke-dashoffset:${Ie};`,E=`stroke-dashoffset:${Ce};`;m&&(Ae+=`opacity:${L==="reverse"?1:0};`,E+=`opacity:${L==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Ae}}to{${E}}}.${v}{view-timeline-name:${le};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ut};animation-fill-mode:both;animation-timeline:${le};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(v);function ce(y,U){y.style.setProperty("--ssd-len",String(C[U])),y.style.strokeDasharray=`${C[U]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(a);}z.forEach(ce);let b=false,H=-1;function q(){if(H>=0)return H;let y=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:y.top,height:y.height},et(),lt(),Le,Ne);return Ee(Q(et(),U,Te,u))}return {destroy(){e.classList.remove(v),z.forEach(y=>{y.classList.remove(a),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),F.remove();},replay(){b=false,H=-1,z.forEach(ce);},pause(){b=true,z.forEach(y=>{y.style.animationPlayState="paused";});},resume(){b&&(b=false,z.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let U=Math.min(1,Math.max(0,y));H=U,b=true,z.forEach((Te,ge)=>{Te.classList.remove(a),Te.style.strokeDashoffset=L==="reverse"?`${C[ge]*U}`:`${C[ge]*(1-U)}`,m&&(Te.style.opacity=L==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return q()},refresh(){z.forEach((y,U)=>{C[U]=_e(y),y.style.setProperty("--ssd-len",String(C[U])),y.style.strokeDasharray=`${C[U]}`;});}}}if(Nt())return zt();function _t(){let s=Math.max(1,J),a=0,v=0,le=false;function Ie(b){let H=true;if(me){let q=Math.min(1,Math.max(0,b/s)),y=Ee(q);Se=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=$e(L==="reverse"?1-y:y),h?.(y),q<1&&(H=false);}else z.forEach((q,y)=>{let U=y*N*s,Te=Math.min(1,Math.max(0,(b-U)/s)),ge=Ee(Te);q.style.strokeDashoffset=L==="reverse"?`${C[y]*ge}`:`${C[y]*(1-ge)}`,m&&(q.style.opacity=L==="reverse"?`${1-ge}`:`${ge}`),be&&oe?q.style.stroke=Ve(be,oe,ge):oe&&(q.style.stroke=oe),ie!==null&&G!==null?q.style.strokeWidth=`${ie+(G-ie)*ge}`:G!==null&&(q.style.strokeWidth=`${G}`),fe!==null&&Y!==null?q.style.fillOpacity=`${fe+(Y-fe)*ge}`:Y!==null&&(q.style.fillOpacity=`${Y}`),O&&q.tagName.toLowerCase()==="path"&&i[y]&&q.setAttribute("d",nt(i[y],O,ge)),y===0&&(Se=ge,h?.(ge),e.style.setProperty("--scroll-draw-progress",String(ge))),Te<1&&(H=false);});if(w){let q=Math.min(1,Math.max(0,b/s)),y=Ee(q);for(let U in w){let Te=parseFloat(U);y>=Te&&!Fe.has(Te)&&(Fe.add(Te),w[U]?.());}}return H}function Ce(b){if(K)return;let H=b-a;_||(_=true,T?.());let q=Ie(H);if(q&&!R){R=true,Ie(s*(1+Math.max(0,z.length-1)*N)),g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Oe=setTimeout(()=>{a=performance.now(),_=false,R=false,Fe.clear(),Ge(),V=requestAnimationFrame(Ce);},re));return}q||(V=requestAnimationFrame(Ce));}function Ae(){cancelAnimationFrame(V),clearTimeout(Oe),a=performance.now(),v=0,K=false,_=false,R=false,ke=0,le=true,Se=0,Fe.clear(),Ge(),V=requestAnimationFrame(Ce);}let E=new IntersectionObserver(b=>{b.forEach(H=>{H.isIntersecting&&!(te&&R)?Ae():!H.isIntersecting&&!te&&!R&&(cancelAnimationFrame(V),clearTimeout(Oe),le=false);});},{root:ye??null,threshold:I,rootMargin:P}),F;function ce(){clearTimeout(F),F=setTimeout(()=>{z.forEach((b,H)=>{C[H]=_e(b),b.style.strokeDasharray=`${C[H]}`;});},150);}return window.addEventListener("resize",ce),window.addEventListener("orientationchange",ce),B>0?setTimeout(()=>E.observe(e),B):E.observe(e),{destroy(){cancelAnimationFrame(V),clearTimeout(Oe),E.disconnect(),window.removeEventListener("resize",ce),window.removeEventListener("orientationchange",ce),clearTimeout(F);},replay(){ke=0,Ae();},pause(){K||!le||(K=true,v=performance.now()-a,cancelAnimationFrame(V));},resume(){K&&(K=false,le=true,a=performance.now()-v,V=requestAnimationFrame(Ce));},seek(b){let H=Math.min(1,Math.max(0,b));Se=H,K=true,v=H*s,a=performance.now()-v,cancelAnimationFrame(V),Ie(v);},getProgress(){return Se},refresh(){clearTimeout(F),z.forEach((b,H)=>{C[H]=_e(b),b.style.strokeDasharray=`${C[H]}`;});}}}if(se)return _t();ct();function je(){if(!j||K)return;let s=performance.now(),a=et();if(!De&&k===false&&a===it){V=requestAnimationFrame(je);return}De=false,it=a;let v=u;if(k!==false){let E=s-at,F=E>0?Math.abs(a-(Be<0?a:Be))/E:0;v=u*Math.max(.2,1+F*(typeof k=="number"?k:1)*.04);}Be=a,at=s;let le=X?Pe===-1||a>=Pe?"forward":"reverse":L;Pe=a;let Ie=we-f,Ce=true,Ae=Ie===0?0:(a-f)/Ie;if(isNaN(ze)||(ze<=0&&Ae>0?p?.():ze>0&&Ae<=0&&ve?.(),ze<1&&Ae>=1?D?.():ze>=1&&Ae<1&&de?.()),ze=Ae,me){let E=Ee(Q(a,f,we,v));te&&!X&&(ae=Math.max(ae,E),E=ae),Se=E,e.style.setProperty("--scroll-draw-progress",String(E));let F=le==="reverse"?1-E:E;e.style.clipPath=$e(F),h?.(E),!_&&Q(a,f,we,v)>0&&(_=true,T?.()),E>=1&&!R?(R=true,g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Oe=setTimeout(()=>{ae=-1,_=false,R=false,e.style.clipPath=$e(0);},re))):E<1&&!te&&(R=false),V=requestAnimationFrame(je);return}if(z.forEach((E,F)=>{let ce=F*N*Ie,b=Ee(Q(a,f+ce,we+ce,v));te&&!X&&(ae=Math.max(ae,b),b=ae),Se=b,E.style.strokeDashoffset=le==="reverse"?`${C[F]*b}`:`${C[F]*(1-b)}`,m&&(E.style.opacity=le==="reverse"?`${1-b}`:`${b}`),be&&oe?E.style.stroke=Ve(be,oe,b):oe&&(E.style.stroke=oe),ie!==null&&G!==null?E.style.strokeWidth=`${ie+(G-ie)*b}`:G!==null&&(E.style.strokeWidth=`${G}`),fe!==null&&Y!==null?E.style.fillOpacity=`${fe+(Y-fe)*b}`:Y!==null&&(E.style.fillOpacity=`${Y}`),O&&E.tagName.toLowerCase()==="path"&&i[F]&&E.setAttribute("d",nt(i[F],O,b)),F===0&&(h?.(b),e.style.setProperty("--scroll-draw-progress",String(b))),b<1&&(Ce=false);}),w){let E=Ee(Q(a,f,we,v));for(let F in w){let ce=parseFloat(F);E>=ce&&!Fe.has(ce)&&(Fe.add(ce),w[F]?.());}}!_&&Q(a,f,we,v)>0&&(_=true,T?.()),Ce&&!R?(R=true,g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Oe=setTimeout(()=>{ae=-1,_=false,R=false,Fe.clear(),Ge(),De=true;},re))):!Ce&&!te&&(R=false),V=requestAnimationFrame(je);}let tt=false;function Ue(){tt||(tt=true,V=requestAnimationFrame(function(){je();}));}function Xe(){tt=false,cancelAnimationFrame(V);}let rt=new IntersectionObserver(s=>{s.forEach(a=>{j=a.isIntersecting,j&&!K?(De=true,Ue()):Xe();});},{root:ye??null,threshold:I,rootMargin:P});function mt(){z.forEach((s,a)=>{C[a]=_e(s),s.style.strokeDasharray=`${C[a]}`;}),ct(),De=true;}let Ye;function qe(){clearTimeout(Ye),Ye=setTimeout(mt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),B>0?setTimeout(()=>rt.observe(e),B):rt.observe(e),{destroy(){cancelAnimationFrame(V),clearTimeout(Oe),Xe(),rt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Ye),ot();},replay(){ae=-1,Pe=-1,Be=-1,_=false,R=false,ke=0,K=false,Se=0,Fe.clear(),clearTimeout(Oe),Ge(),De=true,j&&Ue();},pause(){K=true,Xe();},resume(){K&&(K=false,De=true,j&&Ue());},seek(s){let a=Math.min(1,Math.max(0,s));Se=a,ae=a,K=true,Xe(),Ht(a,L),De=true;},getProgress(){return Se},refresh(){clearTimeout(Ye),mt(),j&&!K&&Ue();}}}var vt=new Map;function Re(e,r){vt.set(e,r);}function He(e){vt.delete(e);}function Kt(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Et(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function er(e,r,n){let t=Et(e),l=Et(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,d)=>`${m}${o.units[d]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,d)=>`${m}${u.units[d]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,d)=>`${m+(u.nums[d]-m)*n}${o.units[d]}`).join(", ")})`}).join(" ")}function St(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(Kt(t))return Ve(t,l,n);if(t.includes("("))return er(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function tr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var rr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),nr=0,Tt="--scroll-draw-progress";function sr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function xt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:d,native:x=true,velocityScale:N=false,respectReducedMotion:L=true,triggerElement:te,onProgress:Me,onComplete:W,onEnter:Z,onLeave:X,onEnterBack:B,onLeaveBack:A}=r,$=L&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:ee[o]??ee["ease-out"],w=pe(l.start??"top bottom"),k=pe(l.end??"bottom top"),I=te??e,P=typeof d=="string"?document.querySelector(d):d??null,S=Object.entries(t).map(([i,f])=>({prop:tr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function re(){let i=window.getComputedStyle(e);for(let f of S)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function O(){for(let i of S)e.style.setProperty(i.prop,String(i.to));}let ne=new Map;for(let i of [...S.map(f=>f.prop),Tt])ne.set(i,e.style.getPropertyValue(i));function se(){for(let[i,f]of ne)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return O(),W?.(),{...n,destroy:se,getProgress:()=>1};re();let J=typeof o=="string"?Je(o):null;function ue(){if(!x||!sr()||!J||m!=="y"||P||I!==e||u||c!==1||Me||W||Z||X||B||A||N!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of S)if(!rr.has(i.prop))return false;return true}function h(){let i=`ssd-a-${++nr}`,f=S.map(j=>`${j.prop}:${j.from}`).join(";"),we=S.map(j=>`${j.prop}:${j.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${we}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${J};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let _=()=>m==="x"?window.scrollX:window.scrollY,V=()=>m==="x"?window.innerWidth:window.innerHeight;return {destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",se();},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(j){let ae=Math.min(1,Math.max(0,j));e.classList.remove(i);for(let Pe of S)e.style.setProperty(Pe.prop,St(Pe.from,Pe.to,ae));},getProgress(){let j=e.getBoundingClientRect(),ae=_(),Pe=V(),{tStart:K,tEnd:Se}=xe({top:j.top,height:j.height},ae,Pe,w,k);return M(Q(ae,K,Se,c))}}}if(ue())return h();let T=0,g=0,p=0,D=false,de=false,ve=-1,me=0,Ee=false,Le=NaN,Ne=-1,ye=0,be=()=>P?m==="x"?P.scrollLeft:P.scrollTop:m==="x"?window.scrollX:window.scrollY,oe=()=>P?m==="x"?P.clientWidth:P.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ie(){let i=Qe(I,P,m),f=xe(i,i.scroll,oe(),w,k);T=f.tStart,g=f.tEnd;}function G(i){e.style.setProperty(Tt,String(i));for(let f of S)e.style.setProperty(f.prop,St(f.from,f.to,i));Me?.(i);}function fe(i){if(isNaN(Le)){Le=i;return}Le<=0&&i>0?Z?.():Le>0&&i<=0&&A?.(),Le<1&&i>=1?X?.():Le>=1&&i<1&&B?.(),Le=i;}function Y(){if(!D||de)return;let i=performance.now(),f=be(),we=c;if(N!==false){let V=i-ye,j=V>0?Math.abs(f-(Ne<0?f:Ne))/V:0;we=c*Math.max(.2,1+j*(typeof N=="number"?N:1)*.04);}Ne=f,ye=i;let R=g===T?0:(f-T)/(g-T);fe(R);let _=M(Q(f,T,g,we));u&&(ve=Math.max(ve,_),_=ve),me=_,G(_),_>=1&&!Ee?(Ee=true,W?.()):_<1&&!u&&(Ee=false),p=requestAnimationFrame(Y);}ie(),g===T&&he("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(Q(be(),T,g,c));u&&i>0&&(ve=i),me=i,G(i);}let $e=new IntersectionObserver(i=>{i.forEach(f=>{D=f.isIntersecting,D&&!de?p=requestAnimationFrame(Y):cancelAnimationFrame(p);});},{root:P??null}),z;function C(){clearTimeout(z),z=setTimeout(ie,150);}return window.addEventListener("resize",C),window.addEventListener("orientationchange",C),$e.observe(e),Re(e,{type:"animate",getProgress:()=>me,getTrigger:()=>({tStart:T,tEnd:g})}),{destroy(){cancelAnimationFrame(p),$e.disconnect(),window.removeEventListener("resize",C),window.removeEventListener("orientationchange",C),clearTimeout(z),se(),He(e);},replay(){ve=-1,Ee=false,me=0,de=false,G(0);},pause(){de=true,cancelAnimationFrame(p);},resume(){de&&(de=false,D&&(p=requestAnimationFrame(Y)));},seek(i){let f=Math.min(1,Math.max(0,i));me=f,ve=f,de=true,cancelAnimationFrame(p),G(f);},getProgress(){return me}}}var st={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,r){if(typeof window>"u")return st;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return he("scrollCounter: element not found:",e),st;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:d=true,decimals:x,onComplete:N}=r,L=x!==void 0?h=>h.toFixed(x):c??(h=>String(Math.round(h))),te=typeof u=="function"?u:ee[u]??ee["ease-out"],Me=pe(m.start??"top 80%"),W=pe(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=L(o),N?.(),st;let X=0,B=0,A=0,$=false,M=false,w=-1,k=0,I=false,P=()=>window.scrollY,S=()=>window.innerHeight;function re(){let h=t.getBoundingClientRect(),T=xe({top:h.top,height:h.height},P(),S(),Me,W);X=T.tStart,B=T.tEnd;}function O(h){t.textContent=L(l+(o-l)*h),t.style.setProperty("--scroll-draw-progress",String(h));}function ne(){if(!$||M)return;let h=te(Q(P(),X,B,1));d&&(w=Math.max(w,h),h=w),k=h,O(h),h>=1&&!I?(I=true,N?.()):h<1&&!d&&(I=false),A=requestAnimationFrame(ne);}re();{let h=te(Q(P(),X,B,1));d&&h>0&&(w=h),k=h,O(h);}let se=new IntersectionObserver(h=>{h.forEach(T=>{$=T.isIntersecting,$&&!M?A=requestAnimationFrame(ne):cancelAnimationFrame(A);});}),J;function ue(){clearTimeout(J),J=setTimeout(re,150);}return window.addEventListener("resize",ue),window.addEventListener("orientationchange",ue),se.observe(t),Re(t,{type:"counter",getProgress:()=>k,getTrigger:()=>({tStart:X,tEnd:B})}),{destroy(){cancelAnimationFrame(A),se.disconnect(),window.removeEventListener("resize",ue),window.removeEventListener("orientationchange",ue),clearTimeout(J),He(t);},replay(){w=-1,I=false,k=0,M=false,O(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(ne)));},seek(h){let T=Math.min(1,Math.max(0,h));k=T,w=T,M=true,cancelAnimationFrame(A),O(T);},getProgress(){return k}}}var Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,r={}){if(typeof window>"u")return Mt;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return he("scrollVideo: <video> element not found:",e),Mt;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:d,onComplete:x,onProgress:N}=r,L=window.matchMedia("(prefers-reduced-motion: reduce)").matches,te=typeof o=="function"?o:ee[o]??ee.linear,Me=pe(l.start??"top top"),W=pe(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let Z=r.from??0,X=r.to,B=0,A=0,$=0,M=false,w=false,k=-1,I=0,P=false,S=false,re=()=>u==="x"?window.scrollX:window.scrollY,O=()=>u==="x"?window.innerWidth:window.innerHeight;function ne(){let p=t.getBoundingClientRect(),D=u==="x"?p.left:p.top,de=u==="x"?p.width:p.height,ve=xe({top:D,height:de},re(),O(),Me,W);B=ve.tStart,A=ve.tEnd;}function se(p){if(!S)return;let D=X??t.duration??0;t.currentTime=Z+(D-Z)*p,t.style.setProperty("--scroll-draw-progress",String(p)),N?.(p);}function J(){if(!M||w||!S)return;let p=te(Q(re(),B,A,1));c&&(k=Math.max(k,p),p=k),I=p,se(p),p>=1&&!P?(P=true,x?.()):p<1&&!c&&(P=false),$=requestAnimationFrame(J);}function ue(){if(S=true,X===void 0&&(X=t.duration),L){se(1),d?.();return}ne(),d?.(),M&&!w&&($=requestAnimationFrame(J));}t.readyState>=1?ue():t.addEventListener("loadedmetadata",ue,{once:true}),S||ne();let h=new IntersectionObserver(p=>{p.forEach(D=>{M=D.isIntersecting,M&&!w&&S?$=requestAnimationFrame(J):cancelAnimationFrame($);});}),T;function g(){clearTimeout(T),T=setTimeout(ne,150);}return window.addEventListener("resize",g),window.addEventListener("orientationchange",g),h.observe(t),Re(t,{type:"video",getProgress:()=>I,getTrigger:()=>({tStart:B,tEnd:A})}),{destroy(){cancelAnimationFrame($),h.disconnect(),t.removeEventListener("loadedmetadata",ue),window.removeEventListener("resize",g),window.removeEventListener("orientationchange",g),clearTimeout(T),He(t);},replay(){k=-1,P=false,I=0,w=false,se(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&S&&($=requestAnimationFrame(J)));},seek(p){let D=Math.min(1,Math.max(0,p));I=D,k=D,w=true,cancelAnimationFrame($),se(D);},getProgress(){return I}}}function Ct(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function or(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function $t(e){let r=Ct(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,d)=>{let x=m.nextElementSibling;u.appendChild(m),d<c.length-1&&x&&x.style.whiteSpace==="pre"&&u.appendChild(x);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function ir(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function ar(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var Pt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function kt(e,r={}){if(typeof window>"u")return Pt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return he("scrollText: element not found:",e),Pt;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:d=true,onComplete:x}=r,N=window.matchMedia("(prefers-reduced-motion: reduce)").matches,L=typeof c=="function"?c:ee[c]??ee["ease-out"],te=pe(m.start??"top 85%"),Me=pe(m.end??"top 40%"),W=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let Z;l==="chars"?Z=or(t):l==="lines"?Z=$t(t):Z=Ct(t);let X=Z.length;function B(g,p){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*p));let D=ar(p,u);D&&(g.style.transform=D);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),Z.forEach((p,D)=>{let de=L(ir(g,D,X,o));B(p,de);});}if(N)return A(1),x?.(),{destroy(){t.innerHTML=W,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,k=false,I=false,P=-1,S=0,re=false,O=()=>window.scrollY,ne=()=>window.innerHeight;function se(){let g=t.getBoundingClientRect(),p=xe({top:g.top,height:g.height},O(),ne(),te,Me);$=p.tStart,M=p.tEnd;}function J(){if(!k||I)return;let g=Q(O(),$,M,1);d&&(P=Math.max(P,g),g=P),S=g,A(g),g>=1&&!re?(re=true,x?.()):g<1&&!d&&(re=false),w=requestAnimationFrame(J);}se();let ue=new IntersectionObserver(g=>{g.forEach(p=>{k=p.isIntersecting,k&&!I?w=requestAnimationFrame(J):cancelAnimationFrame(w);});}),h;function T(){clearTimeout(h),h=setTimeout(()=>{if(l==="lines"){let g=S;t.innerHTML=W,t.setAttribute("aria-label",t.textContent??""),Z=$t(t),A(g);}se();},150);}return window.addEventListener("resize",T),window.addEventListener("orientationchange",T),ue.observe(t),Re(t,{type:"text",getProgress:()=>S,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ue.disconnect(),window.removeEventListener("resize",T),window.removeEventListener("orientationchange",T),clearTimeout(h),t.innerHTML=W,t.removeAttribute("aria-label"),He(t);},replay(){P=-1,re=false,S=0,I=false,A(0);},pause(){I=true,cancelAnimationFrame(w);},resume(){I&&(I=false,k&&(w=requestAnimationFrame(J)));},seek(g){let p=Math.min(1,Math.max(0,g));S=p,P=p,I=true,cancelAnimationFrame(w),A(p);},getProgress(){return S}}}var It=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=wt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ot=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=xt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ft=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=At(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Dt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Lt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Rt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=kt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};export{Ot as ScrollAnimateRef,Ft as ScrollCounterRef,It as ScrollDrawRef,Rt as ScrollTextRef,Dt as ScrollVideoRef};
3
+ <div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Et=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,St=/[MmLlHhVvCcSsQqTtAaZz]/g;function tr(e,r,n){if(!Ze)return;let t=(e.match(St)??[]).join("").toUpperCase(),l=(r.match(St)??[]).join("").toUpperCase(),o=(e.match(Et)??[]).length,c=(r.match(Et)??[]).length;if(t!==l){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&we(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function st(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function Tt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...yt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:z=0,direction:P="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:I=false,threshold:O=0,rootMargin:C="0px",repeat:E=0,repeatDelay:se=0,morphTo:D,clip:oe,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:L,onLeave:S,onEnterBack:N,onLeaveBack:fe}=l,Q=oe===true?"left":typeof oe=="string"?oe:false,Se=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),He=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Ee=Array.isArray(A)?A[0]:null,le=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ce=Array.isArray($)?$[0]:null,j=Array.isArray($)?$[1]:typeof $=="number"?$:null,pe=Array.isArray(M)?M[0]:null,Z=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function ke(s){let a=s*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let _=Q?[]:Array.from(e.querySelectorAll(c)),k=[],i=[],f=0,ge=0,R=false,V=false,q=0,Ae=false,he=-1,te=-1,Y=false,ye=0,Oe=0,Fe,Je=null;function it(){Je?.destroy(),Je=null;}let Ne=new Set,at=NaN,Re=true,Be=-1,lt=performance.now(),ze=NaN;function et(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ct(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function ut(){let s=Qe(e,ve,B);return xe(s,s.scroll,ct(),Ce,He)}function mt(){(({tStart:f,tEnd:ge}=ut())),$e&&Ze&&(it(),Je=er(f,ge,B));}function tt(s,a=ut){Le(e,{type:"draw",getProgress:()=>s.getProgress(),getTrigger:a});let b=s.destroy;return s.destroy=()=>{b.call(s),Pe(e);},s}function _t(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),Q){let b=a==="reverse"?1-s:s;e.style.clipPath=ke(b);return}_.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${k[ue]*s}`:`${k[ue]*(1-s)}`,m&&(b.style.opacity=a==="reverse"?`${1-s}`:`${s}`),Ee&&le?b.style.stroke=Ve(Ee,le,s):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*s}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*s}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",st(i[ue],D,s));});}function Ge(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=ke(0);return}_.forEach((s,a)=>{s.style.strokeDasharray=`${k[a]}`,s.style.strokeDashoffset=P==="reverse"?"0":`${k[a]}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`),D&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(_.forEach(s=>{Jt(s);let a=_e(s);k.push(a);let b=s.tagName.toLowerCase()==="path";b?i.push(s.getAttribute("d")??""):i.push(""),D&&(b?tr(i[i.length-1],D,s):we(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),le&&(s.style.stroke=le),j!==null&&(s.style.strokeWidth=`${j}`),Z!==null&&(s.style.fillOpacity=`${Z}`),D&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",D)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?"0":`${a}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`));}),Q){if(o)return e.style.clipPath=ke(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ft=typeof p=="string"?Ke(p):null;function Vt(){return !(ae===false||!Kt()||!_.length||!ft||Q||B!=="y"||ve||u!==1||z!==0||ne||X||I!==false||D||w||E||G>0||d||x||g||L||S||N||fe||A!=null||$!=null||M!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function qt(){let s=++Zt,a=`svg-scroll-draw-${s}`,b=`svg-scroll-draw-host-${s}`,ue=`--svg-scroll-draw-${s}`,De=P==="reverse"?"0":"var(--ssd-len)",Ie=P==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Me+=`opacity:${P==="reverse"?1:0};`,v+=`opacity:${P==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ft};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(h,U){h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`,h.style.strokeDashoffset="",h.style.opacity="",h.style.animationPlayState="",h.classList.add(a);}_.forEach(me);let y=false,H=-1;function W(){if(H>=0)return H;let h=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:h.top,height:h.height},et(),ct(),Ce,He);return Se(K(et(),U,Te,u))}return {destroy(){e.classList.remove(b),_.forEach(h=>{h.classList.remove(a),h.style.removeProperty("--ssd-len"),h.style.animationPlayState="";}),F.remove();},replay(){y=false,H=-1,_.forEach(me);},pause(){y=true,_.forEach(h=>{h.style.animationPlayState="paused";});},resume(){y&&(y=false,_.forEach(h=>{h.style.animationPlayState="running";}));},seek(h){let U=Math.min(1,Math.max(0,h));H=U,y=true,_.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=P==="reverse"?`${k[be]*U}`:`${k[be]*(1-U)}`,m&&(Te.style.opacity=P==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){_.forEach((h,U)=>{k[U]=_e(h),h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`;});}}}if(Vt())return tt(qt());function Wt(){let s=Math.max(1,ee),a=0,b=0,ue=false;function De(y){let H=true;if(Q){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);ye=h,e.style.setProperty("--scroll-draw-progress",String(h)),e.style.clipPath=ke(P==="reverse"?1-h:h),d?.(h),W<1&&(H=false);}else _.forEach((W,h)=>{let U=h*z*s,Te=Math.min(1,Math.max(0,(y-U)/s)),be=Se(Te);W.style.strokeDashoffset=P==="reverse"?`${k[h]*be}`:`${k[h]*(1-be)}`,m&&(W.style.opacity=P==="reverse"?`${1-be}`:`${be}`),Ee&&le?W.style.stroke=Ve(Ee,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[h]&&W.setAttribute("d",st(i[h],D,be)),h===0&&(ye=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);for(let U in w){let Te=parseFloat(U);h>=Te&&!Ne.has(Te)&&(Ne.add(Te),w[U]?.());}}return H}function Ie(y){if(Y)return;let H=y-a;V||(V=true,x?.());let W=De(H);if(W&&!R){R=true,De(s*(1+Math.max(0,_.length-1)*z)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{a=performance.now(),V=false,R=false,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);},se));return}W||(q=requestAnimationFrame(Ie));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,Y=false,V=false,R=false,Oe=0,ue=true,ye=0,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(y=>{y.forEach(H=>{H.isIntersecting&&!(ne&&R)?Me():!H.isIntersecting&&!ne&&!R&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:O,rootMargin:C}),F;function me(){clearTimeout(F),F=setTimeout(()=>{_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){Oe=0,Me();},pause(){Y||!ue||(Y=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){Y&&(Y=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Ie));},seek(y){let H=Math.min(1,Math.max(0,y));ye=H,Y=true,b=H*s,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ye},refresh(){clearTimeout(F),_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});}}}if(ie)return tt(Wt());mt();function je(){if(!Ae||Y)return;let s=performance.now(),a=et();if(!Re&&I===false&&a===at){q=requestAnimationFrame(je);return}Re=false,at=a;let b=u;if(I!==false){let v=s-lt,F=v>0?Math.abs(a-(Be<0?a:Be))/v:0;b=u*Math.max(.2,1+F*(typeof I=="number"?I:1)*.04);}Be=a,lt=s;let ue=X?te===-1||a>=te?"forward":"reverse":P;te=a;let De=ge-f,Ie=true,Me=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Me>0?L?.():ze>0&&Me<=0&&fe?.(),ze<1&&Me>=1?S?.():ze>=1&&Me<1&&N?.()),ze=Me,Q){let v=Se(K(a,f,ge,b));ne&&!X&&(he=Math.max(he,v),v=he),ye=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=ke(F),d?.(v),!V&&K(a,f,ge,b)>0&&(V=true,x?.()),v>=1&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,e.style.clipPath=ke(0);},se))):v<1&&!ne&&(R=false),q=requestAnimationFrame(je);return}if(_.forEach((v,F)=>{let me=F*z*De,y=Se(K(a,f+me,ge+me,b));ne&&!X&&(he=Math.max(he,y),y=he),ye=y,v.style.strokeDashoffset=ue==="reverse"?`${k[F]*y}`:`${k[F]*(1-y)}`,m&&(v.style.opacity=ue==="reverse"?`${1-y}`:`${y}`),Ee&&le?v.style.stroke=Ve(Ee,le,y):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*y}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*y}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",st(i[F],D,y)),F===0&&(d?.(y),e.style.setProperty("--scroll-draw-progress",String(y))),y<1&&(Ie=false);}),w){let v=Se(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Ne.has(me)&&(Ne.add(me),w[F]?.());}}!V&&K(a,f,ge,b)>0&&(V=true,x?.()),Ie&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,Ne.clear(),Ge(),Re=true;},se))):!Ie&&!ne&&(R=false),q=requestAnimationFrame(je);}let rt=false;function Ye(){rt||(rt=true,q=requestAnimationFrame(function(){je();}));}function Ue(){rt=false,cancelAnimationFrame(q);}let nt=new IntersectionObserver(s=>{s.forEach(a=>{Ae=a.isIntersecting,Ae&&!Y?(Re=true,Ye()):Ue();});},{root:ve??null,threshold:O,rootMargin:C});function pt(){_.forEach((s,a)=>{k[a]=_e(s),s.style.strokeDasharray=`${k[a]}`;}),mt(),Re=true;}let Xe;function qe(){clearTimeout(Xe),Xe=setTimeout(pt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>nt.observe(e),G):nt.observe(e),tt({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Ue(),nt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Xe),it();},replay(){he=-1,te=-1,Be=-1,V=false,R=false,Oe=0,Y=false,ye=0,Ne.clear(),clearTimeout(Fe),Ge(),Re=true,Ae&&Ye();},pause(){Y=true,Ue();},resume(){Y&&(Y=false,Re=true,Ae&&Ye());},seek(s){let a=Math.min(1,Math.max(0,s));ye=a,he=a,Y=true,Ue(),_t(a,P),Re=true;},getProgress(){return ye},refresh(){clearTimeout(Xe),pt(),Ae&&!Y&&Ye();}},()=>({tStart:f,tEnd:ge}))}function rr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function xt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function nr(e,r,n){let t=xt(e),l=xt(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,p)=>`${m}${o.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${o.units[p]}`).join(", ")})`}).join(" ")}function At(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(rr(t))return Ve(t,l,n);if(t.includes("("))return nr(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function sr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var or=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),ir=0,Mt="--scroll-draw-progress";function ar(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Lt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:z=false,respectReducedMotion:P=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:A}=r,$=P&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:re[o]??re["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),O=ne??e,C=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:sr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function se(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let oe=new Map;for(let i of [...E.map(f=>f.prop),Mt])oe.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of oe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return D(),B?.(),{...n,destroy:ie,getProgress:()=>1};se();let ee=typeof o=="string"?Ke(o):null;function ae(){if(!T||!ar()||!ee||m!=="y"||C||O!==e||u||c!==1||$e||B||J||X||G||A||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!or.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++ir}`,f=E.map(te=>`${te.prop}:${te.from}`).join(";"),ge=E.map(te=>`${te.prop}:${te.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let V=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},V(),q(),w,I)};Le(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ae});let he={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",ie(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let Y=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let ye of E)e.style.setProperty(ye.prop,At(ye.from,ye.to,Y));},getProgress(){let{tStart:te,tEnd:Y}=Ae();return M(K(V(),te,Y,c))}};return he}if(ae())return d();let x=0,g=0,L=0,S=false,N=false,fe=-1,Q=0,Se=false,Ce=NaN,He=-1,ve=0,Ee=()=>C?m==="x"?C.scrollLeft:C.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>C?m==="x"?C.clientWidth:C.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Qe(O,C,m),f=xe(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Mt,String(i));for(let f of E)e.style.setProperty(f.prop,At(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?J?.():Ce>0&&i<=0&&A?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Z(){if(!S||N)return;let i=performance.now(),f=Ee(),ge=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(He<0?f:He))/q:0;ge=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}He=f,ve=i;let R=g===x?0:(f-x)/(g-x);pe(R);let V=M(K(f,x,g,ge));u&&(fe=Math.max(fe,V),V=fe),Q=V,j(V),V>=1&&!Se?(Se=true,B?.()):V<1&&!u&&(Se=false),L=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(K(Ee(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let ke=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!N?L=requestAnimationFrame(Z):cancelAnimationFrame(L);});},{root:C??null}),_;function k(){clearTimeout(_),_=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),ke.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame(L),ke.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(_),ie(),Pe(e);},replay(){fe=-1,Se=false,Q=0,N=false,j(0);},pause(){N=true,cancelAnimationFrame(L);},resume(){N&&(N=false,S&&(L=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,N=true,cancelAnimationFrame(L),j(f);},getProgress(){return Q}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,r){if(typeof window>"u")return ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollCounter: element not found:",e),ot;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:z}=r,P=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=P(o),z?.(),ot;let X=0,G=0,A=0,$=false,M=false,w=-1,I=0,O=false,C=()=>window.scrollY,E=()=>window.innerHeight;function se(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},C(),E(),$e,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=P(l+(o-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function oe(){if(!$||M)return;let d=ne(K(C(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,D(d),d>=1&&!O?(O=true,z?.()):d<1&&!p&&(O=false),A=requestAnimationFrame(oe);}se();{let d=ne(K(C(),X,G,1));p&&d>0&&(w=d),I=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{$=x.isIntersecting,$&&!M?A=requestAnimationFrame(oe):cancelAnimationFrame(A);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(se,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(A),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),Pe(t);},replay(){w=-1,O=false,I=0,M=false,D(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(oe)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,M=true,cancelAnimationFrame(A),D(x);},getProgress(){return I}}}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r={}){if(typeof window>"u")return $t;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),$t;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:z}=r,P=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof o=="function"?o:re[o]??re.linear,$e=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=r.from??0,X=r.to,G=0,A=0,$=0,M=false,w=false,I=-1,O=0,C=false,E=false,se=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function oe(){let S=t.getBoundingClientRect(),N=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,Q=xe({top:N,height:fe},se(),D(),$e,B);G=Q.tStart,A=Q.tEnd;}let ie=NaN;function ee(S){if(!E)return;let N=X??t.duration??0,fe=J+(N-J)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),z?.(S);}function ae(){if(!M||w||!E)return;let S=ne(K(se(),G,A,1));c&&(I=Math.max(I,S),S=I),O=S,ee(S),S>=1&&!C?(C=true,T?.()):S<1&&!c&&(C=false),$=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),P){ee(1),p?.();return}oe(),p?.(),M&&!w&&($=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||oe();let x=new IntersectionObserver(S=>{S.forEach(N=>{M=N.isIntersecting,M&&!w&&E?$=requestAnimationFrame(ae):cancelAnimationFrame($);});}),g;function L(){clearTimeout(g),g=setTimeout(oe,150);}return window.addEventListener("resize",L),window.addEventListener("orientationchange",L),x.observe(t),Le(t,{type:"video",getProgress:()=>O,getTrigger:()=>({tStart:G,tEnd:A})}),{destroy(){cancelAnimationFrame($),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",L),window.removeEventListener("orientationchange",L),clearTimeout(g),Pe(t);},replay(){I=-1,C=false,O=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&E&&($=requestAnimationFrame(ae)));},seek(S){let N=Math.min(1,Math.max(0,S));O=N,I=N,w=true,cancelAnimationFrame($),ie=NaN,ee(N);},getProgress(){return O}}}function Ot(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function lr(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function kt(e){let r=Ot(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function cr(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function ur(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var It={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Dt(e,r={}){if(typeof window>"u")return It;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollText: element not found:",e),It;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,P=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=lr(t):l==="lines"?J=kt(t):J=Ot(t);let X=J.length;function G(g,L){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*L));let S=ur(L,u);S&&(g.style.transform=S);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach((L,S)=>{let N=P(cr(g,S,X,o));G(L,N);});}if(z)return A(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,I=false,O=false,C=-1,E=0,se=false,D=()=>window.scrollY,oe=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),L=xe({top:g.top,height:g.height},D(),oe(),ne,$e);$=L.tStart,M=L.tEnd;}function ee(){if(!I||O)return;let g=K(D(),$,M,1);p&&(C=Math.max(C,g),g=C),E=g,A(g),g>=1&&!se?(se=true,T?.()):g<1&&!p&&(se=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach(L=>{I=L.isIntersecting,I&&!O?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=kt(t),A(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){C=-1,se=false,E=0,O=false,A(0);},pause(){O=true,cancelAnimationFrame(w);},resume(){O&&(O=false,I&&(w=requestAnimationFrame(ee)));},seek(g){let L=Math.min(1,Math.max(0,g));E=L,C=L,O=true,cancelAnimationFrame(w),A(L);},getProgress(){return E}}}var Ft=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Tt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Nt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Lt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Rt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Pt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ht=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Ct(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},zt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Dt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};export{Nt as ScrollAnimateRef,Rt as ScrollCounterRef,Ft as ScrollDrawRef,zt as ScrollTextRef,Ht as ScrollVideoRef};