svg-scroll-draw 2.19.0 → 2.20.0

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 (74) hide show
  1. package/README.md +6 -6
  2. package/dist/angular/index.cjs +2 -2
  3. package/dist/angular/index.d.mts +3 -3
  4. package/dist/angular/index.d.ts +3 -3
  5. package/dist/angular/index.mjs +1 -1
  6. package/dist/astro/index.cjs +2 -2
  7. package/dist/astro/index.d.mts +3 -3
  8. package/dist/astro/index.d.ts +3 -3
  9. package/dist/astro/index.mjs +1 -1
  10. package/dist/cdn/svg-scroll-draw.dev.global.js +28 -6
  11. package/dist/cdn/svg-scroll-draw.global.js +2 -2
  12. package/dist/{chunk-JPK2NJWO.mjs → chunk-6SSA5V7J.mjs} +1 -1
  13. package/dist/chunk-LQBXJRFY.mjs +3 -0
  14. package/dist/{chunk-PKHX3HSS.mjs → chunk-VVFGB4RT.mjs} +1 -1
  15. package/dist/{engine-C9LKls__.d.ts → engine-DQyBzZDl.d.ts} +1 -1
  16. package/dist/{engine-CvzRSkuk.d.mts → engine-P8u6OK4m.d.mts} +1 -1
  17. package/dist/group/index.cjs +3 -3
  18. package/dist/group/index.d.mts +3 -3
  19. package/dist/group/index.d.ts +3 -3
  20. package/dist/group/index.mjs +1 -1
  21. package/dist/horizontal/index.d.mts +1 -1
  22. package/dist/horizontal/index.d.ts +1 -1
  23. package/dist/{index-Zxa5HIes.d.mts → index-CMqK0GCT.d.mts} +2 -2
  24. package/dist/{index-BlIjovDN.d.mts → index-CdaBYn3A.d.mts} +1 -1
  25. package/dist/{index-DZjvLJcU.d.ts → index-D3o4vT3e.d.ts} +1 -1
  26. package/dist/{index-G3VfLIN8.d.ts → index-DPqPEnO-.d.ts} +2 -2
  27. package/dist/index.cjs +4 -4
  28. package/dist/index.d.mts +6 -6
  29. package/dist/index.d.ts +6 -6
  30. package/dist/index.mjs +1 -1
  31. package/dist/nuxt/index.cjs +2 -2
  32. package/dist/nuxt/index.d.mts +3 -3
  33. package/dist/nuxt/index.d.ts +3 -3
  34. package/dist/nuxt/index.mjs +1 -1
  35. package/dist/pin/index.cjs +1 -1
  36. package/dist/pin/index.d.mts +8 -2
  37. package/dist/pin/index.d.ts +8 -2
  38. package/dist/pin/index.mjs +1 -1
  39. package/dist/progress/index.d.mts +1 -1
  40. package/dist/progress/index.d.ts +1 -1
  41. package/dist/react/index.cjs +2 -2
  42. package/dist/react/index.d.mts +7 -8
  43. package/dist/react/index.d.ts +7 -8
  44. package/dist/react/index.mjs +1 -1
  45. package/dist/reveal/index.d.mts +1 -1
  46. package/dist/reveal/index.d.ts +1 -1
  47. package/dist/{scroll-draw-B4CadBz0.d.mts → scroll-draw-Dej-GIRP.d.mts} +1 -1
  48. package/dist/{scroll-draw-Cs6Z5ype.d.ts → scroll-draw-DsBMkwrX.d.ts} +1 -1
  49. package/dist/snap/index.d.mts +1 -1
  50. package/dist/snap/index.d.ts +1 -1
  51. package/dist/solid/index.cjs +3 -3
  52. package/dist/solid/index.d.mts +3 -3
  53. package/dist/solid/index.d.ts +3 -3
  54. package/dist/solid/index.mjs +1 -1
  55. package/dist/svelte/index.cjs +2 -2
  56. package/dist/svelte/index.d.mts +3 -3
  57. package/dist/svelte/index.d.ts +3 -3
  58. package/dist/svelte/index.mjs +1 -1
  59. package/dist/text/index.d.mts +1 -1
  60. package/dist/text/index.d.ts +1 -1
  61. package/dist/timeline/index.d.mts +1 -1
  62. package/dist/timeline/index.d.ts +1 -1
  63. package/dist/{types-B0YM4nQP.d.mts → types-MswK0erX.d.mts} +6 -0
  64. package/dist/{types-B0YM4nQP.d.ts → types-MswK0erX.d.ts} +6 -0
  65. package/dist/video/index.d.mts +1 -1
  66. package/dist/video/index.d.ts +1 -1
  67. package/dist/vue/index.cjs +2 -2
  68. package/dist/vue/index.d.mts +3 -3
  69. package/dist/vue/index.d.ts +3 -3
  70. package/dist/vue/index.mjs +1 -1
  71. package/dist/web-component/index.cjs +3 -3
  72. package/dist/web-component/index.mjs +1 -1
  73. package/package.json +3 -3
  74. package/dist/chunk-WHFRS7IP.mjs +0 -3
package/README.md CHANGED
@@ -7,7 +7,7 @@
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
- > Draw SVG paths on scroll — plus reveal, pin, snap, parallax, counters, video scrub and text splitting. **11.2 KB gzipped for every API, from 1.4 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.
10
+ > Draw SVG paths on scroll — plus reveal, pin, snap, parallax, counters, video scrub and text splitting. **11.4 KB gzipped for every API, from 1.4 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
 
@@ -339,7 +339,7 @@ import { ScrollDraw } from 'svg-scroll-draw/vue';
339
339
  | `speed` | `number` | `1` | Scale factor relative to scroll distance |
340
340
  | `fade` | `boolean` | `false` | Animate `opacity 0 → 1` simultaneously |
341
341
  | `easing` | `string \| fn` | `"linear"` | `linear`, `ease-in`, `ease-out`, `ease-in-out`, `spring`, `bounce`, `elastic`, or `(t) => t` |
342
- | `stagger` | `number` | `0` | Offset between each path starting (fraction of scroll range) |
342
+ | `stagger` | `number` | `0` | Offset between each path starting (fraction of scroll range). The last path ends that much after `trigger.end`; where the page ends first, the stagger tightens so it finishes at the bottom |
343
343
  | `direction` | `"forward" \| "reverse"` | `"forward"` | `reverse` erases the path as you scroll |
344
344
  | `trigger.start` | `string` | `"top bottom"` | When animation begins |
345
345
  | `trigger.end` | `string` | `"bottom top"` | When animation ends |
@@ -629,9 +629,9 @@ devtools.highlight('#my-element'); // outline for 2 seconds
629
629
  <!-- size-table:start -->
630
630
  | Entry | Gzipped |
631
631
  |---|---|
632
- | `svg-scroll-draw` (main, every core API) | 11.2 KB |
633
- | `svg-scroll-draw/react` (includes the engine) | 12.7 KB |
634
- | `svg-scroll-draw` + `svg-scroll-draw/react` (together; the engine ships once) | 14.2 KB |
632
+ | `svg-scroll-draw` (main, every core API) | 11.4 KB |
633
+ | `svg-scroll-draw/react` (includes the engine) | 12.8 KB |
634
+ | `svg-scroll-draw` + `svg-scroll-draw/react` (together; the engine ships once) | 14.3 KB |
635
635
  | `svg-scroll-draw/reveal` | 5.5 KB |
636
636
  | `svg-scroll-draw/text` | 3.1 KB |
637
637
  | `svg-scroll-draw/video` | 2.7 KB |
@@ -640,7 +640,7 @@ devtools.highlight('#my-element'); // outline for 2 seconds
640
640
  | `svg-scroll-draw/aos` (styles included) | 3.1 KB |
641
641
  | `svg-scroll-draw/snap` | 1.9 KB |
642
642
  | `svg-scroll-draw/devtools` | 1.8 KB (dev only) |
643
- | `svg-scroll-draw/pin` | 1.4 KB |
643
+ | `svg-scroll-draw/pin` | 1.6 KB |
644
644
  <!-- size-table:end -->
645
645
 
646
646
  Measured with `npm run size`: each entry plus the shared chunks it imports, minified, gzip level 9. Entries share their code through those chunks, so importing several costs less than the sum. 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.
@@ -1,3 +1,3 @@
1
- 'use strict';function or({bounces:e=3,decay:n=.5}={}){let r=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,n)),s=Math.sqrt(t),i=0,l=[];for(let g=0;g<r;g++){let T=Math.pow(s,g);l.push(T),i+=T;}let u=[0],m=0;for(let g=0;g<r;g++)m+=l[g]/i,u.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let T=0;T<r;T++)if(g<=u[T+1]){let q=(g-u[T])/(u[T+1]-u[T]);if(T===0)return q*(2-q);let A=1-Math.pow(t,T);return A+(1-A)*(2*q-1)*(2*q-1)}return 1}}function sr({amplitude:e=1,period:n=.4}={}){let r=Math.max(1,e),t=Math.max(.1,n),s=r<=1?t/4:t/(2*Math.PI)*Math.asin(1/r);return i=>i<=0?0:i>=1?1:r*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var ie={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:or(),elastic:sr()};function Et(e,n,r){return Math.min(r,Math.max(n,e))}function he(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[r="top",t="bottom"]=n.split(/\s+/).filter(Boolean);return {element:r,viewport:t}}function St(e,n,r,t){switch(t){case "top":return e+r;case "center":return e+r+n/2;case "bottom":return e+r+n;default:return e+r}}function Tt(e,n){if(/^\d+(\.\d+)?%$/.test(e))return n*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return n/2;case "bottom":return n;default:return n}}function Z(e,n,r,t){return r===n?0:Et((e-n)/(r-n)*t,0,1)}function Le(e,n,r,t,s){let i=St(e.top,e.height,n,t.element)-Tt(t.viewport,r),l=St(e.top,e.height,n,s.element)-Tt(s.viewport,r);return {tStart:i,tEnd:l}}function tt(e,n,r){let t=e.getBoundingClientRect(),s=r==="x"?t.width:t.height;return n?{top:r==="x"?t.left-n.getBoundingClientRect().left+n.scrollLeft:t.top-n.getBoundingClientRect().top+n.scrollTop,height:s,scroll:0}:{top:r==="x"?t.left:t.top,height:s,scroll:r==="x"?window.scrollX:window.scrollY}}function We(e){let n=e.tagName.toLowerCase();if(n==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(r+t)}if(n==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function xt(e){let n=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(n)return [parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16)];let r=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(r)return [parseInt(r[1],16),parseInt(r[2],16),parseInt(r[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 Be(e,n,r){let t=xt(e),s=xt(n);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*r)},${Math.round(t[1]+(s[1]-t[1])*r)},${Math.round(t[2]+(s[2]-t[2])*r)})`}var Mt={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 je=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function be(e,...n){je&&console.warn(`[svg-scroll-draw] ${e}`,...n);}var ir="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",ar="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",At=33;function lr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function cr(e){let n=[];for(let r=0;r<At;r++){let t=r/(At-1);n.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${n.join(",")})`}function rt(e){switch(e){case "linear":return "linear";case "ease-in":return ir;case "ease-out":return ar;case "ease-in-out":return lr()?cr(ie["ease-in-out"]):null;default:return null}}var Lt=Symbol.for("svg-scroll-draw.registry");function $t(){let e=globalThis;return e[Lt]||(e[Lt]=new Map)}function Oe(e,n){$t().set(e,n);}function Ie(e){$t().delete(e);}var Ue,nt=new Set,ot=new WeakMap,Ye=new Map,Pt=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function ur(e){let n=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let t=r;t;t=t.previousElementSibling)n.add(t);return n}function De(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>n();Ue??(Ue=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)ot.get(l)!==Pt(l)&&(i=true),ot.set(l,"");i&&nt.forEach(l=>l());})),nt.add(r);let t=ur(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{ot.has(s)||ot.set(s,Pt(s)),Ye.set(s,(Ye.get(s)??0)+1),Ue.observe(s);}),()=>{nt.delete(r)&&(t.forEach(s=>{let i=(Ye.get(s)??1)-1;if(i)return void Ye.set(s,i);Ye.delete(s),Ue?.unobserve(s);}),nt.size||(Ue?.disconnect(),Ue=void 0));}}var mr=0;function fr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ct(e,n){let r="";try{r=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return r||(e.getAttribute(n)??"").trim()}var kt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function pr(e){if(!je)return;let n=Ct(e,"stroke");if(!n||n==="none"){be("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!kt.has(r)&&!kt.has(Ct(e,"fill"))&&be("Element has a fill \u2014 it may obscure the stroke animation.",e);}function dr(e,n,r){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 s(){let i=r==="x"?window.scrollX:window.scrollY,l=e-i,u=n-i,m=r==="x";t.innerHTML=`
1
+ 'use strict';function cr({bounces:e=3,decay:n=.5}={}){let r=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,n)),s=Math.sqrt(t),i=0,l=[];for(let d=0;d<r;d++){let T=Math.pow(s,d);l.push(T),i+=T;}let u=[0],m=0;for(let d=0;d<r;d++)m+=l[d]/i,u.push(m);return d=>{if(d<=0)return 0;if(d>=1)return 1;for(let T=0;T<r;T++)if(d<=u[T+1]){let H=(d-u[T])/(u[T+1]-u[T]);if(T===0)return H*(2-H);let A=1-Math.pow(t,T);return A+(1-A)*(2*H-1)*(2*H-1)}return 1}}function ur({amplitude:e=1,period:n=.4}={}){let r=Math.max(1,e),t=Math.max(.1,n),s=r<=1?t/4:t/(2*Math.PI)*Math.asin(1/r);return i=>i<=0?0:i>=1?1:r*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var ce={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:cr(),elastic:ur()};function Mt(e,n,r){return Math.min(r,Math.max(n,e))}function be(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[r="top",t="bottom"]=n.split(/\s+/).filter(Boolean);return {element:r,viewport:t}}function At(e,n,r,t){switch(t){case "top":return e+r;case "center":return e+r+n/2;case "bottom":return e+r+n;default:return e+r}}function Lt(e,n){if(/^\d+(\.\d+)?%$/.test(e))return n*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return n/2;case "bottom":return n;default:return n}}function te(e,n,r,t){return r===n?0:Mt((e-n)/(r-n)*t,0,1)}function Pe(e,n,r,t,s){let i=At(e.top,e.height,n,t.element)-Lt(t.viewport,r),l=At(e.top,e.height,n,s.element)-Lt(s.viewport,r);return {tStart:i,tEnd:l}}function ot(e,n,r){let t=e.getBoundingClientRect(),s=r==="x"?t.width:t.height;return n?{top:r==="x"?t.left-n.getBoundingClientRect().left+n.scrollLeft:t.top-n.getBoundingClientRect().top+n.scrollTop,height:s,scroll:0}:{top:r==="x"?t.left:t.top,height:s,scroll:r==="x"?window.scrollX:window.scrollY}}function je(e){let n=e.tagName.toLowerCase();if(n==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(r+t)}if(n==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function $t(e){let n=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(n)return [parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16)];let r=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(r)return [parseInt(r[1],16),parseInt(r[2],16),parseInt(r[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 Ue(e,n,r){let t=$t(e),s=$t(n);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*r)},${Math.round(t[1]+(s[1]-t[1])*r)},${Math.round(t[2]+(s[2]-t[2])*r)})`}var Pt={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 Xe=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,...n){Xe&&console.warn(`[svg-scroll-draw] ${e}`,...n);}var mr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",fr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Ct=33;function pr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function dr(e){let n=[];for(let r=0;r<Ct;r++){let t=r/(Ct-1);n.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${n.join(",")})`}function st(e){switch(e){case "linear":return "linear";case "ease-in":return mr;case "ease-out":return fr;case "ease-in-out":return pr()?dr(ce["ease-in-out"]):null;default:return null}}var kt=Symbol.for("svg-scroll-draw.registry");function Ot(){let e=globalThis;return e[kt]||(e[kt]=new Map)}function Oe(e,n){Ot().set(e,n);}function Ie(e){Ot().delete(e);}var Ke,it=new Set,at=new WeakMap,Qe=new Map,It=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function gr(e){let n=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let t=r;t;t=t.previousElementSibling)n.add(t);return n}function De(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>n();Ke??(Ke=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)at.get(l)!==It(l)&&(i=true),at.set(l,"");i&&it.forEach(l=>l());})),it.add(r);let t=gr(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{at.has(s)||at.set(s,It(s)),Qe.set(s,(Qe.get(s)??0)+1),Ke.observe(s);}),()=>{it.delete(r)&&(t.forEach(s=>{let i=(Qe.get(s)??1)-1;if(i)return void Qe.set(s,i);Qe.delete(s),Ke?.unobserve(s);}),it.size||(Ke?.disconnect(),Ke=void 0));}}var yr=0;function hr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ft(e,n){let r="";try{r=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return r||(e.getAttribute(n)??"").trim()}var Dt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function br(e){if(!Xe)return;let n=Ft(e,"stroke");if(!n||n==="none"){we("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!Dt.has(r)&&!Dt.has(Ft(e,"fill"))&&we("Element has a fill \u2014 it may obscure the stroke animation.",e);}function wr(e,n,r){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 s(){let i=r==="x"?window.scrollX:window.scrollY,l=e-i,u=n-i,m=r==="x";t.innerHTML=`
2
2
  <div style="position:absolute;${m?`left:${l}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${l}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",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var Ot=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,It=/[MmLlHhVvCcSsQqTtAaZz]/g;function gr(e,n,r){if(!je)return;let t=(e.match(It)??[]).join("").toUpperCase(),s=(n.match(It)??[]).join("").toUpperCase(),i=(e.match(Ot)??[]).length,l=(n.match(Ot)??[]).length;if(t!==s){be(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}i!==l&&be(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function ut(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),u=t[s++]??l;return String(+(l+(u-l)*r).toFixed(4))})}function Ft(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,s=r?{...Mt[r],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:g="linear",trigger:T={},stagger:q=0,direction:A="forward",once:J=false,debug:$e=false,axis:j="y",scrollContainer:ae,autoReverse:ee=false,delay:U=0,strokeColor:D,strokeWidth:P,fillOpacity:k,waypoints:b,velocityScale:C=false,threshold:x=0,rootMargin:M="0px",repeat:E=0,repeatDelay:te=0,morphTo:L,clip:re,autoplay:we=false,duration:ge=1e3,native:ye=true,onProgress:R,onStart:$,onComplete:f,onEnter:p,onLeave:O,onEnterBack:W,onLeaveBack:Ee}=s,w=re===true?"left":typeof re=="string"?re:false,z=typeof g=="function"?g:ie[g]??ie.linear,le=he(T.start??"top bottom"),He=he(T.end??"bottom top"),Se=typeof ae=="string"?document.querySelector(ae):ae??null,Te=Array.isArray(D)?D[0]:null,ce=Array.isArray(D)?D[1]:typeof D=="string"?D:null,Y=Array.isArray(P)?P[0]:null,ne=Array.isArray(P)?P[1]:typeof P=="number"?P:null,oe=Array.isArray(k)?k[0]:null,X=Array.isArray(k)?k[1]:typeof k=="number"?k:null;function Ne(o){let c=o*100;switch(w){case "right":return `inset(0 0 0 ${100-c}%)`;case "top":return `inset(0 0 ${100-c}% 0)`;case "bottom":return `inset(${100-c}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-c}% 0 0)`}}let B=w?[]:Array.from(e.querySelectorAll(l)),I=[],ue=[],me=0,Pe=0,a=false,d=false,V=0,fe=false,H=-1,se=[],Ce=-1,K=false,N=0,xe=0,Me,st=null;function pt(){st?.destroy(),st=null;}let ze=new Set,dt=NaN,Ve=true,Xe=-1,gt=performance.now(),qe=NaN;function it(){return Se?j==="x"?Se.scrollLeft:Se.scrollTop:j==="x"?window.scrollX:window.scrollY}function yt(){return Se?j==="x"?Se.clientWidth:Se.clientHeight:j==="x"?window.innerWidth:window.innerHeight}function ht(){let o=tt(e,Se,j);return Le(o,o.scroll,yt(),le,He)}function bt(){(({tStart:me,tEnd:Pe}=ht())),$e&&je&&(pt(),st=dr(me,Pe,j));}function at(o,c=ht){Oe(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:c});let v=o.destroy;return o.destroy=()=>{v.call(o),Ie(e);},o}function Jt(o,c){if(e.style.setProperty("--scroll-draw-progress",String(o)),w){let v=c==="reverse"?1-o:o;e.style.clipPath=Ne(v);return}B.forEach((v,pe)=>{v.style.strokeDashoffset=c==="reverse"?`${I[pe]*o}`:`${I[pe]*(1-o)}`,m&&(v.style.opacity=c==="reverse"?`${1-o}`:`${o}`),Te&&ce?v.style.stroke=Be(Te,ce,o):ce&&(v.style.stroke=ce),Y!==null&&ne!==null?v.style.strokeWidth=`${Y+(ne-Y)*o}`:ne!==null&&(v.style.strokeWidth=`${ne}`),oe!==null&&X!==null?v.style.fillOpacity=`${oe+(X-oe)*o}`:X!==null&&(v.style.fillOpacity=`${X}`),L&&v.tagName.toLowerCase()==="path"&&ue[pe]&&v.setAttribute("d",ut(ue[pe],L,o));});}function Ke(){if(e.style.setProperty("--scroll-draw-progress","0"),w){e.style.clipPath=Ne(0);return}B.forEach((o,c)=>{o.style.strokeDasharray=`${I[c]}`,o.style.strokeDashoffset=A==="reverse"?"0":`${I[c]}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Te&&(o.style.stroke=Te),Y!==null&&(o.style.strokeWidth=`${Y}`),oe!==null&&(o.style.fillOpacity=`${oe}`),L&&o.tagName.toLowerCase()==="path"&&ue[c]&&o.setAttribute("d",ue[c]);});}if(B.forEach(o=>{pr(o);let c=We(o);I.push(c);let v=o.tagName.toLowerCase()==="path";v?ue.push(o.getAttribute("d")??""):ue.push(""),L&&(v?gr(ue[ue.length-1],L,o):be(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${c}`,o.style.strokeDashoffset=A==="reverse"?`${c}`:"0",m&&(o.style.opacity="1"),ce&&(o.style.stroke=ce),ne!==null&&(o.style.strokeWidth=`${ne}`),X!==null&&(o.style.fillOpacity=`${X}`),L&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",L)):(o.style.strokeDasharray=`${c}`,o.style.strokeDashoffset=A==="reverse"?"0":`${c}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Te&&(o.style.stroke=Te),Y!==null&&(o.style.strokeWidth=`${Y}`),oe!==null&&(o.style.fillOpacity=`${oe}`));}),w){if(i)return e.style.clipPath=Ne(1),f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ne(0);}else if(i)return f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let wt=typeof g=="string"?rt(g):null;function er(){return !(ye===false||!fr()||!B.length||!wt||w||j!=="y"||Se||u!==1||q!==0||J||ee||C!==false||L||b||E||U>0||R||$||f||p||O||W||Ee||D!=null||P!=null||k!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function tr(){let o=++mr,c=`svg-scroll-draw-${o}`,v=`svg-scroll-draw-host-${o}`,pe=`--svg-scroll-draw-${o}`,Re=A==="reverse"?"0":"var(--ssd-len)",Fe=A==="reverse"?"var(--ssd-len)":"0",ke=`stroke-dashoffset:${Re};`,S=`stroke-dashoffset:${Fe};`;m&&(ke+=`opacity:${A==="reverse"?1:0};`,S+=`opacity:${A==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${c}{from{${ke}}to{${S}}}.${v}{view-timeline-name:${pe};view-timeline-axis:block;}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${wt};animation-fill-mode:both;animation-timeline:${pe};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(v);function de(y,Q){y.style.setProperty("--ssd-len",String(I[Q])),y.style.strokeDasharray=`${I[Q]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(c);}B.forEach(de);let h=false,_=-1;function G(){if(_>=0)return _;let y=e.getBoundingClientRect(),{tStart:Q,tEnd:Ae}=Le({top:y.top,height:y.height},it(),yt(),le,He);return z(Z(it(),Q,Ae,u))}return {destroy(){e.classList.remove(v),B.forEach(y=>{y.classList.remove(c),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),F.remove();},replay(){h=false,_=-1,B.forEach(de);},pause(){h=true,B.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,B.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let Q=Math.min(1,Math.max(0,y));_=Q,h=true,B.forEach((Ae,ve)=>{Ae.classList.remove(c),Ae.style.strokeDashoffset=A==="reverse"?`${I[ve]*Q}`:`${I[ve]*(1-Q)}`,m&&(Ae.style.opacity=A==="reverse"?`${1-Q}`:`${Q}`);});},getProgress(){return G()},refresh(){B.forEach((y,Q)=>{I[Q]=We(y),y.style.setProperty("--ssd-len",String(I[Q])),y.style.strokeDasharray=`${I[Q]}`;});}}}if(er())return at(tr());function rr(){let o=Math.max(1,ge),c=0,v=0,pe=false;function Re(h){let _=true;if(w){let G=Math.min(1,Math.max(0,h/o)),y=z(G);N=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Ne(A==="reverse"?1-y:y),R?.(y),G<1&&(_=false);}else B.forEach((G,y)=>{let Q=y*q*o,Ae=Math.min(1,Math.max(0,(h-Q)/o)),ve=z(Ae);G.style.strokeDashoffset=A==="reverse"?`${I[y]*ve}`:`${I[y]*(1-ve)}`,m&&(G.style.opacity=A==="reverse"?`${1-ve}`:`${ve}`),Te&&ce?G.style.stroke=Be(Te,ce,ve):ce&&(G.style.stroke=ce),Y!==null&&ne!==null?G.style.strokeWidth=`${Y+(ne-Y)*ve}`:ne!==null&&(G.style.strokeWidth=`${ne}`),oe!==null&&X!==null?G.style.fillOpacity=`${oe+(X-oe)*ve}`:X!==null&&(G.style.fillOpacity=`${X}`),L&&G.tagName.toLowerCase()==="path"&&ue[y]&&G.setAttribute("d",ut(ue[y],L,ve)),y===0&&(N=ve,R?.(ve),e.style.setProperty("--scroll-draw-progress",String(ve))),Ae<1&&(_=false);});if(b){let G=Math.min(1,Math.max(0,h/o)),y=z(G);for(let Q in b){let Ae=parseFloat(Q);y>=Ae&&!ze.has(Ae)&&(ze.add(Ae),b[Q]?.());}}return _}function Fe(h){if(K)return;let _=h-c;d||(d=true,$?.());let G=Re(_);if(G&&!a){a=true,Re(o*(1+Math.max(0,B.length-1)*q)),f?.(),xe<(E==="infinite"?1/0:E??0)&&(xe++,Me=setTimeout(()=>{c=performance.now(),d=false,a=false,ze.clear(),Ke(),V=requestAnimationFrame(Fe);},te));return}G||(V=requestAnimationFrame(Fe));}function ke(){cancelAnimationFrame(V),clearTimeout(Me),c=performance.now(),v=0,K=false,d=false,a=false,xe=0,pe=true,N=0,ze.clear(),Ke(),V=requestAnimationFrame(Fe);}let S=new IntersectionObserver(h=>{h.forEach(_=>{_.isIntersecting&&!(J&&a)?ke():!_.isIntersecting&&!J&&!a&&(cancelAnimationFrame(V),clearTimeout(Me),pe=false);});},{root:Se??null,threshold:x,rootMargin:M}),F;function de(){clearTimeout(F),F=setTimeout(()=>{B.forEach((h,_)=>{I[_]=We(h),h.style.strokeDasharray=`${I[_]}`;});},150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),U>0?setTimeout(()=>S.observe(e),U):S.observe(e),{destroy(){cancelAnimationFrame(V),clearTimeout(Me),S.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(F);},replay(){xe=0,ke();},pause(){K||!pe||(K=true,v=performance.now()-c,cancelAnimationFrame(V));},resume(){K&&(K=false,pe=true,c=performance.now()-v,V=requestAnimationFrame(Fe));},seek(h){let _=Math.min(1,Math.max(0,h));N=_,K=true,v=_*o,c=performance.now()-v,cancelAnimationFrame(V),Re(v);},getProgress(){return N},refresh(){clearTimeout(F),B.forEach((h,_)=>{I[_]=We(h),h.style.strokeDasharray=`${I[_]}`;});}}}if(we)return at(rr());bt();function Qe(){if(!fe||K)return;let o=performance.now(),c=it();if(!Ve&&C===false&&c===dt){V=requestAnimationFrame(Qe);return}Ve=false,dt=c;let v=u;if(C!==false){let S=o-gt,F=S>0?Math.abs(c-(Xe<0?c:Xe))/S:0;v=u*Math.max(.2,1+F*(typeof C=="number"?C:1)*.04);}Xe=c,gt=o;let pe=ee?Ce===-1||c>=Ce?"forward":"reverse":A;Ce=c;let Re=Pe-me,Fe=true,ke=Re===0?0:(c-me)/Re;if(isNaN(qe)||(qe<=0&&ke>0?p?.():qe>0&&ke<=0&&Ee?.(),qe<1&&ke>=1?O?.():qe>=1&&ke<1&&W?.()),qe=ke,w){let S=z(Z(c,me,Pe,v));J&&!ee&&(H=Math.max(H,S),S=H),N=S,e.style.setProperty("--scroll-draw-progress",String(S));let F=pe==="reverse"?1-S:S;e.style.clipPath=Ne(F),R?.(S),!d&&Z(c,me,Pe,v)>0&&(d=true,$?.()),S>=1&&!a?(a=true,f?.(),xe<(E==="infinite"?1/0:E??0)&&(xe++,Me=setTimeout(()=>{H=-1,d=false,a=false,e.style.clipPath=Ne(0);},te))):S<1&&!J&&(a=false),V=requestAnimationFrame(Qe);return}if(B.forEach((S,F)=>{let de=F*q*Re,h=z(Z(c,me+de,Pe+de,v));J&&!ee&&(h=se[F]=Math.max(se[F]??H,h)),S.style.strokeDashoffset=pe==="reverse"?`${I[F]*h}`:`${I[F]*(1-h)}`,m&&(S.style.opacity=pe==="reverse"?`${1-h}`:`${h}`),Te&&ce?S.style.stroke=Be(Te,ce,h):ce&&(S.style.stroke=ce),Y!==null&&ne!==null?S.style.strokeWidth=`${Y+(ne-Y)*h}`:ne!==null&&(S.style.strokeWidth=`${ne}`),oe!==null&&X!==null?S.style.fillOpacity=`${oe+(X-oe)*h}`:X!==null&&(S.style.fillOpacity=`${X}`),L&&S.tagName.toLowerCase()==="path"&&ue[F]&&S.setAttribute("d",ut(ue[F],L,h)),F===0&&(N=h,R?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Fe=false);}),b){let S=z(Z(c,me,Pe,v));for(let F in b){let de=parseFloat(F);S>=de&&!ze.has(de)&&(ze.add(de),b[F]?.());}}!d&&Z(c,me,Pe,v)>0&&(d=true,$?.()),Fe&&!a?(a=true,f?.(),xe<(E==="infinite"?1/0:E??0)&&(xe++,Me=setTimeout(()=>{H=-1,se=[],d=false,a=false,ze.clear(),Ke(),Ve=true;},te))):!Fe&&!J&&(a=false),V=requestAnimationFrame(Qe);}let lt=false;function Ze(){lt||(lt=true,V=requestAnimationFrame(function(){Qe();}));}function Je(){lt=false,cancelAnimationFrame(V);}let ct=new IntersectionObserver(o=>{o.forEach(c=>{fe=c.isIntersecting,fe&&!K?(Ve=true,Ze()):Je();});},{root:Se??null,threshold:x,rootMargin:M});function vt(){B.forEach((o,c)=>{I[c]=We(o),o.style.strokeDasharray=`${I[c]}`;}),bt(),Ve=true;}let et;function Ge(){clearTimeout(et),et=setTimeout(vt,150);}window.addEventListener("resize",Ge),window.addEventListener("orientationchange",Ge);let nr=De([e],Ge);return U>0?setTimeout(()=>ct.observe(e),U):ct.observe(e),at({destroy(){cancelAnimationFrame(V),clearTimeout(Me),Je(),ct.disconnect(),nr(),window.removeEventListener("resize",Ge),window.removeEventListener("orientationchange",Ge),clearTimeout(et),pt();},replay(){H=-1,se=[],Ce=-1,Xe=-1,d=false,a=false,xe=0,K=false,N=0,ze.clear(),clearTimeout(Me),Ke(),Ve=true,fe&&Ze();},pause(){K=true,Je();},resume(){K&&(K=false,Ve=true,fe&&Ze());},seek(o){let c=Math.min(1,Math.max(0,o));N=c,H=c,se=[],K=true,Je(),Jt(c,A),Ve=true;},getProgress(){return N},refresh(){clearTimeout(et),vt(),fe&&!K&&Ze();}},()=>({tStart:me,tEnd:Pe}))}var Dt=new WeakMap,yr=0;function mt(e){return JSON.stringify(e,(n,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let t=Dt.get(r);return t===void 0&&Dt.set(r,t=++yr),`el#${t}`}return r})}function Ht(e,n){let r={...e};for(let t of Object.keys(r))typeof r[t]=="function"&&(r[t]=(...s)=>n()[t]?.(...s));return r}function hr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Nt(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let u of l.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(m?parseFloat(m[1]):0),i.push(m?m[2]:"");}n.push({fn:t[1],nums:s,units:i});}return n}function br(e,n,r){let t=Nt(e),s=Nt(n);return t.length===0||t.length!==s.length?r<1?e:n:t.map((i,l)=>{let u=s[l];return i.fn!==u.fn||i.nums.length!==u.nums.length?r<1?`${i.fn}(${i.nums.map((m,g)=>`${m}${i.units[g]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,g)=>`${m}${u.units[g]}`).join(", ")})`:`${i.fn}(${i.nums.map((m,g)=>`${m+(u.nums[g]-m)*r}${i.units[g]}`).join(", ")})`}).join(" ")}function Rt(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),s=String(n);if(hr(t))return Be(t,s,r);if(t.includes("("))return br(t,s,r);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let u=parseFloat(i[1]),m=parseFloat(l[1]);return `${u+(m-u)*r}${i[2]||l[2]}`}return r<1?t:s}function wr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var vr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Er=0,zt="--scroll-draw-progress";function Sr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Vt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:u=false,axis:m="y",scrollContainer:g,native:T=true,velocityScale:q=false,respectReducedMotion:A=true,triggerElement:J,onProgress:$e,onComplete:j,onEnter:ae,onLeave:ee,onEnterBack:U,onLeaveBack:D}=n,P=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,k=typeof i=="function"?i:ie[i]??ie["ease-out"],b=he(s.start??"top bottom"),C=he(s.end??"bottom top"),x=J??e,M=typeof g=="string"?document.querySelector(g):g??null,E=Object.entries(t).map(([a,d])=>({prop:wr(a),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function te(){let a=window.getComputedStyle(e);for(let d of E)d.from===""&&(d.from=a.getPropertyValue(d.prop).trim()||"0");}function L(){for(let a of E)e.style.setProperty(a.prop,String(a.to));}let re=new Map;for(let a of [...E.map(d=>d.prop),zt])re.set(a,e.style.getPropertyValue(a));function we(){for(let[a,d]of re)d?e.style.setProperty(a,d):e.style.removeProperty(a);}if(P)return L(),j?.(),{...r,destroy:we,getProgress:()=>1};te();let ge=typeof i=="string"?rt(i):null;function ye(){if(!T||!Sr()||!ge||m!=="y"||M||x!==e||u||l!==1||$e||j||ae||ee||U||D||q!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let a of E)if(!vr.has(a.prop))return false;return true}function R(){let a=`ssd-a-${++Er}`,d=E.map(N=>`${N.prop}:${N.from}`).join(";"),V=E.map(N=>`${N.prop}:${N.to}`).join(";"),fe=document.createElement("style");fe.setAttribute("data-ssd-animate",""),fe.textContent=`@keyframes ${a}{from{${d}}to{${V}}}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ge};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(fe),e.classList.add(a);let H=()=>m==="x"?window.scrollX:window.scrollY,se=()=>m==="x"?window.innerWidth:window.innerHeight,Ce=()=>{let N=e.getBoundingClientRect();return Le({top:N.top,height:N.height},H(),se(),b,C)};Oe(e,{type:"animate",getProgress:()=>K.getProgress(),getTrigger:Ce});let K={refresh(){},destroy(){e.classList.remove(a),fe.remove(),e.style.animationPlayState="",we(),Ie(e);},replay(){e.classList.remove(a),e.offsetWidth,e.classList.add(a);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(N){let xe=Math.min(1,Math.max(0,N));e.classList.remove(a);for(let Me of E)e.style.setProperty(Me.prop,Rt(Me.from,Me.to,xe));},getProgress(){let{tStart:N,tEnd:xe}=Ce();return k(Z(H(),N,xe,l))}};return K}if(ye())return R();let $=0,f=0,p=0,O=false,W=false,Ee=-1,w=0,z=false,le=NaN,He=-1,Se=0,Te=()=>M?m==="x"?M.scrollLeft:M.scrollTop:m==="x"?window.scrollX:window.scrollY,ce=()=>M?m==="x"?M.clientWidth:M.clientHeight:m==="x"?window.innerWidth:window.innerHeight,Y=x===e?E:[],ne=false;function oe(){let a=e.style,d=Y.map(se=>a.getPropertyValue(se.prop)),V=a.transition;Y.length&&(a.transition="none"),Y.forEach(se=>a.setProperty(se.prop,re.get(se.prop)??""));let fe=tt(x,M,m);Y.forEach((se,Ce)=>a.setProperty(se.prop,d[Ce])),Y.length&&(e.offsetWidth,a.transition=V);let H=Le(fe,fe.scroll,ce(),b,C);ne&&Math.abs(H.tStart-$)<1&&Math.abs(H.tEnd-f)<1||(ne=true,$=H.tStart,f=H.tEnd);}function X(a){e.style.setProperty(zt,String(a));for(let d of E)e.style.setProperty(d.prop,Rt(d.from,d.to,a));$e?.(a);}function Ne(a){if(isNaN(le)){le=a;return}le<=0&&a>0?ae?.():le>0&&a<=0&&D?.(),le<1&&a>=1?ee?.():le>=1&&a<1&&U?.(),le=a;}function B(){if(!O||W)return;let a=performance.now(),d=Te(),V=l;if(q!==false){let se=a-Se,Ce=se>0?Math.abs(d-(He<0?d:He))/se:0;V=l*Math.max(.2,1+Ce*(typeof q=="number"?q:1)*.04);}He=d,Se=a;let fe=f===$?0:(d-$)/(f-$);Ne(fe);let H=k(Z(d,$,f,V));u&&(Ee=Math.max(Ee,H),H=Ee),w=H,X(H),H>=1&&!z?(z=true,j?.()):H<1&&!u&&(z=false),p=requestAnimationFrame(B);}oe(),f===$&&be("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 a=k(Z(Te(),$,f,l));u&&a>0&&(Ee=a),w=a,X(a);}let I=new IntersectionObserver(a=>{a.forEach(d=>{O=d.isIntersecting,O&&!W?p=requestAnimationFrame(B):cancelAnimationFrame(p);});},{root:M??null}),ue;function me(){clearTimeout(ue),ue=setTimeout(oe,150);}window.addEventListener("resize",me),window.addEventListener("orientationchange",me);let Pe=De([x],me);return I.observe(e),Oe(e,{type:"animate",getProgress:()=>w,getTrigger:()=>({tStart:$,tEnd:f})}),{destroy(){cancelAnimationFrame(p),I.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),Pe(),clearTimeout(ue),we(),Ie(e);},replay(){Ee=-1,z=false,w=0,W=false,X(0);},pause(){W=true,cancelAnimationFrame(p);},resume(){W&&(W=false,O&&(p=requestAnimationFrame(B)));},seek(a){let d=Math.min(1,Math.max(0,a));w=d,Ee=d,W=true,cancelAnimationFrame(p),X(d);},getProgress(){return w},refresh(){oe();}}}var ft={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function _t(e,n){if(typeof window>"u")return ft;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return be("scrollCounter: element not found:",e),ft;let t=r,{from:s=0,to:i,format:l,easing:u="ease-out",trigger:m={},once:g=true,decimals:T,onComplete:q}=n,A=T!==void 0?f=>f.toFixed(T):l??(f=>String(Math.round(f))),J=typeof u=="function"?u:ie[u]??ie["ease-out"],$e=he(m.start??"top 80%"),j=he(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(i),q?.(),ft;let ee=0,U=0,D=false,P=0,k=false,b=false,C=-1,x=0,M=false,E=()=>window.scrollY,te=()=>window.innerHeight;function L(){let f=t.getBoundingClientRect(),p=Le({top:f.top,height:f.height},E(),te(),$e,j);D&&Math.abs(p.tStart-ee)<1&&Math.abs(p.tEnd-U)<1||(D=true,ee=p.tStart,U=p.tEnd);}function re(f){t.textContent=A(s+(i-s)*f),t.style.setProperty("--scroll-draw-progress",String(f));}function we(){if(!k||b)return;let f=J(Z(E(),ee,U,1));g&&(C=Math.max(C,f),f=C),x=f,re(f),f>=1&&!M?(M=true,q?.()):f<1&&!g&&(M=false),P=requestAnimationFrame(we);}L();{let f=J(Z(E(),ee,U,1));g&&f>0&&(C=f),x=f,re(f);}let ge=new IntersectionObserver(f=>{f.forEach(p=>{k=p.isIntersecting,k&&!b?P=requestAnimationFrame(we):cancelAnimationFrame(P);});}),ye;function R(){clearTimeout(ye),ye=setTimeout(L,150);}window.addEventListener("resize",R),window.addEventListener("orientationchange",R);let $=De([t],R);return ge.observe(t),Oe(t,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:ee,tEnd:U})}),{destroy(){cancelAnimationFrame(P),ge.disconnect(),window.removeEventListener("resize",R),window.removeEventListener("orientationchange",R),$(),clearTimeout(ye),Ie(t);},replay(){C=-1,M=false,x=0,b=false,re(0);},pause(){b=true,cancelAnimationFrame(P);},resume(){b&&(b=false,k&&(P=requestAnimationFrame(we)));},seek(f){let p=Math.min(1,Math.max(0,f));x=p,C=p,b=true,cancelAnimationFrame(P),re(p);},getProgress(){return x}}}var qt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Wt(e,n={}){if(typeof window>"u")return qt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return be("scrollVideo: <video> element not found:",e),qt;let t=r,{trigger:s={},easing:i="linear",once:l=false,axis:u="y",preload:m="auto",triggerElement:g,onReady:T,onComplete:q,onProgress:A}=n,J=g??t,$e=window.matchMedia("(prefers-reduced-motion: reduce)").matches,j=typeof i=="function"?i:ie[i]??ie.linear,ae=he(s.start??"top top"),ee=he(s.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let U=n.from??0,D=n.to,P=0,k=0,b=0,C=false,x=false,M=-1,E=0,te=false,L=false,re=()=>u==="x"?window.scrollX:window.scrollY,we=()=>u==="x"?window.innerWidth:window.innerHeight;function ge(){let w=J.getBoundingClientRect(),z=u==="x"?w.left:w.top,le=u==="x"?w.width:w.height,He=Le({top:z,height:le},re(),we(),ae,ee);P=He.tStart,k=He.tEnd,L&&k===P&&be("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let ye=NaN;function R(w){if(!L)return;let z=D??t.duration??0,le=U+(z-U)*w;le!==ye&&(ye=le,t.currentTime=le),t.style.setProperty("--scroll-draw-progress",String(w)),A?.(w);}function $(){if(!C||x||!L||$e)return;let w=j(Z(re(),P,k,1));l&&(M=Math.max(M,w),w=M),E=w,R(w),w>=1&&!te?(te=true,q?.()):w<1&&!l&&(te=false),b=requestAnimationFrame($);}function f(){if(L=true,D===void 0&&(D=t.duration),$e){R(1),T?.();return}ge(),T?.(),C&&!x&&(b=requestAnimationFrame($));}t.readyState>=1?f():t.addEventListener("loadedmetadata",f,{once:true}),L||ge();let p=new IntersectionObserver(w=>{w.forEach(z=>{C=z.isIntersecting,C&&!x&&L?b=requestAnimationFrame($):cancelAnimationFrame(b);});}),O;function W(){clearTimeout(O),O=setTimeout(ge,150);}window.addEventListener("resize",W),window.addEventListener("orientationchange",W);let Ee=De([J],W);return p.observe(t),Oe(t,{type:"video",getProgress:()=>E,getTrigger:()=>({tStart:P,tEnd:k})}),{destroy(){cancelAnimationFrame(b),p.disconnect(),t.removeEventListener("loadedmetadata",f),window.removeEventListener("resize",W),window.removeEventListener("orientationchange",W),Ee(),clearTimeout(O),Ie(t);},replay(){M=-1,te=false,E=0,x=false,ye=NaN,R(0);},pause(){x=true,cancelAnimationFrame(b);},resume(){x&&(x=false,C&&L&&(b=requestAnimationFrame($)));},seek(w){let z=Math.min(1,Math.max(0,w));E=z,M=z,x=true,cancelAnimationFrame(b),ye=NaN,R(z);},getProgress(){return E}}}function jt(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function Tr(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function Bt(e){let n=jt(e),r=new Map;for(let i of n){let l=i.offsetTop;r.has(l)||r.set(l,[]),r.get(l).push(i);}let t=[],s=Array.from(r.keys()).sort((i,l)=>i-l);for(let i of s){let l=r.get(i),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",l.forEach((m,g)=>{let T=m.nextElementSibling;u.appendChild(m),g<l.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function xr(e,n,r,t){if(r<=1||t===0)return e;let s=(r-1)*t,i=n*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function Mr(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var Gt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ut(e,n={}){if(typeof window>"u")return Gt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return be("scrollText: element not found:",e),Gt;let t=r,{split:s="words",stagger:i=.04,easing:l="ease-out",from:u={opacity:0,y:24},trigger:m={},once:g=true,onComplete:T}=n,q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof l=="function"?l:ie[l]??ie["ease-out"],J=he(m.start??"top 85%"),$e=he(m.end??"top 40%"),j=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ae;s==="chars"?ae=Tr(t):s==="lines"?ae=Bt(t):ae=jt(t);let ee=ae.length;function U(p,O){u?.opacity!==void 0&&(p.style.opacity=String(u.opacity+(1-u.opacity)*O));let W=Mr(O,u);W&&(p.style.transform=W);}function D(p){t.style.setProperty("--scroll-draw-progress",String(p)),ae.forEach((O,W)=>{let Ee=A(xr(p,W,ee,i));U(O,Ee);});}if(q)return D(1),T?.(),{destroy(){t.innerHTML=j,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};D(0);let P=0,k=0,b=0,C=false,x=false,M=-1,E=0,te=false,L=()=>window.scrollY,re=()=>window.innerHeight;function we(){let p=t.getBoundingClientRect(),O=Le({top:p.top,height:p.height},L(),re(),J,$e);P=O.tStart,k=O.tEnd;}function ge(){if(!C||x)return;let p=Z(L(),P,k,1);g&&(M=Math.max(M,p),p=M),E=p,D(p),p>=1&&!te?(te=true,T?.()):p<1&&!g&&(te=false),b=requestAnimationFrame(ge);}we();let ye=new IntersectionObserver(p=>{p.forEach(O=>{C=O.isIntersecting,C&&!x?b=requestAnimationFrame(ge):cancelAnimationFrame(b);});}),R;function $(){clearTimeout(R),R=setTimeout(()=>{if(s==="lines"){let p=E;t.innerHTML=j,t.setAttribute("aria-label",t.textContent??""),ae=Bt(t),D(p);}we();},150);}window.addEventListener("resize",$),window.addEventListener("orientationchange",$);let f=De([t],$);return ye.observe(t),Oe(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:P,tEnd:k})}),{destroy(){cancelAnimationFrame(b),ye.disconnect(),window.removeEventListener("resize",$),window.removeEventListener("orientationchange",$),f(),clearTimeout(R),t.innerHTML=j,t.removeAttribute("aria-label"),Ie(t);},replay(){M=-1,te=false,E=0,x=false,D(0);},pause(){x=true,cancelAnimationFrame(b);},resume(){x&&(x=false,C&&(b=requestAnimationFrame(ge)));},seek(p){let O=Math.min(1,Math.max(0,p));E=O,M=O,x=true,cancelAnimationFrame(b),D(O);},getProgress(){return E}}}var _e=class{constructor(n){this.create=n;this.instance=null;this.el=null;this.key="";}init(n,r){return this.destroy(),this.el=n,this.latest=r,this.key=mt(r),this.instance=this.create(n,Ht(r,()=>this.latest)),this}update(n){return this.el?mt(n)!==this.key?this.init(this.el,n):(this.latest=n,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(n){return this.instance?.seek(n),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},Yt=class extends _e{constructor(){super(Ft);}init(n,r={}){return super.init(n,r)}},Xt=class extends _e{constructor(){super(Vt);}},Kt=class extends _e{constructor(){super(_t);}},Qt=class extends _e{constructor(){super(Wt);}init(n,r={}){return super.init(n,r)}},Zt=class extends _e{constructor(){super(Ut);}init(n,r={}){return super.init(n,r)}};exports.EngineRef=_e;exports.ScrollAnimateRef=Xt;exports.ScrollCounterRef=Kt;exports.ScrollDrawRef=Yt;exports.ScrollTextRef=Zt;exports.ScrollVideoRef=Qt;
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",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var Ht=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Nt=/[MmLlHhVvCcSsQqTtAaZz]/g;function vr(e,n,r){if(!Xe)return;let t=(e.match(Nt)??[]).join("").toUpperCase(),s=(n.match(Nt)??[]).join("").toUpperCase(),i=(e.match(Ht)??[]).length,l=(n.match(Ht)??[]).length;if(t!==s){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}i!==l&&we(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function ft(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),u=t[s++]??l;return String(+(l+(u-l)*r).toFixed(4))})}function Rt(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,s=r?{...Pt[r],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:d="linear",trigger:T={},stagger:H=0,direction:A="forward",once:re=false,debug:Ce=false,axis:G="y",scrollContainer:ue,autoReverse:ne=false,delay:Y=0,strokeColor:N,strokeWidth:C,fillOpacity:O,waypoints:w,velocityScale:k=false,threshold:x=0,rootMargin:M="0px",repeat:E=0,repeatDelay:oe=0,morphTo:L,clip:se,autoplay:ve=false,duration:ge=1e3,native:ye=true,onProgress:R,onStart:P,onComplete:f,onEnter:p,onLeave:I,onEnterBack:q,onLeaveBack:Me}=s,v=se===true?"left":typeof se=="string"?se:false,z=typeof d=="function"?d:ce[d]??ce.linear,me=be(T.start??"top bottom"),He=be(T.end??"bottom top"),Ee=typeof ue=="string"?document.querySelector(ue):ue??null,Ae=Array.isArray(N)?N[0]:null,fe=Array.isArray(N)?N[1]:typeof N=="string"?N:null,X=Array.isArray(C)?C[0]:null,ie=Array.isArray(C)?C[1]:typeof C=="number"?C:null,ae=Array.isArray(O)?O[0]:null,K=Array.isArray(O)?O[1]:typeof O=="number"?O:null;function Ne(o){let a=o*100;switch(v){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(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let V=v?[]:Array.from(e.querySelectorAll(l)),F=[],pe=[],J=0,Se=0,c=H,h=0,_=false,B=false,$=0,ee=false,he=-1,Re=[],le=-1,j=false,Te=0,ze=0,Ve,lt=null;function gt(){lt?.destroy(),lt=null;}let _e=new Set,yt=NaN,We=true,Ze=-1,ht=performance.now(),Be=NaN;function Je(){return Ee?G==="x"?Ee.scrollLeft:Ee.scrollTop:G==="x"?window.scrollX:window.scrollY}function bt(){return Ee?G==="x"?Ee.clientWidth:Ee.clientHeight:G==="x"?window.innerWidth:window.innerHeight}function wt(){let o=ot(e,Ee,G);return Pe(o,o.scroll,bt(),me,He)}function nr(){let o=Se-J,a=V.length-1,y=Ee??document.documentElement,Q=G==="x"?"Width":"Height";if(c=H,H>0&&a>0&&o>0){let Le=y[`scroll${Q}`]-y[`client${Q}`]-1-J-o/u;Le>=0&&(c=Math.min(H,Le/(a*o)));}h=Se+a*c*o;}function vt(){(({tStart:J,tEnd:Se}=wt())),nr(),Ce&&Xe&&(gt(),lt=wr(J,Se,G));}function ct(o,a=wt){Oe(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:a});let y=o.destroy;return o.destroy=()=>{y.call(o),Ie(e);},o}function or(o,a){if(e.style.setProperty("--scroll-draw-progress",String(o)),v){let y=a==="reverse"?1-o:o;e.style.clipPath=Ne(y);return}V.forEach((y,Q)=>{y.style.strokeDashoffset=a==="reverse"?`${F[Q]*o}`:`${F[Q]*(1-o)}`,m&&(y.style.opacity=a==="reverse"?`${1-o}`:`${o}`),Ae&&fe?y.style.stroke=Ue(Ae,fe,o):fe&&(y.style.stroke=fe),X!==null&&ie!==null?y.style.strokeWidth=`${X+(ie-X)*o}`:ie!==null&&(y.style.strokeWidth=`${ie}`),ae!==null&&K!==null?y.style.fillOpacity=`${ae+(K-ae)*o}`:K!==null&&(y.style.fillOpacity=`${K}`),L&&y.tagName.toLowerCase()==="path"&&pe[Q]&&y.setAttribute("d",ft(pe[Q],L,o));});}function et(){if(e.style.setProperty("--scroll-draw-progress","0"),v){e.style.clipPath=Ne(0);return}V.forEach((o,a)=>{o.style.strokeDasharray=`${F[a]}`,o.style.strokeDashoffset=A==="reverse"?"0":`${F[a]}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Ae&&(o.style.stroke=Ae),X!==null&&(o.style.strokeWidth=`${X}`),ae!==null&&(o.style.fillOpacity=`${ae}`),L&&o.tagName.toLowerCase()==="path"&&pe[a]&&o.setAttribute("d",pe[a]);});}if(V.forEach(o=>{br(o);let a=je(o);F.push(a);let y=o.tagName.toLowerCase()==="path";y?pe.push(o.getAttribute("d")??""):pe.push(""),L&&(y?vr(pe[pe.length-1],L,o):we(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=A==="reverse"?`${a}`:"0",m&&(o.style.opacity="1"),fe&&(o.style.stroke=fe),ie!==null&&(o.style.strokeWidth=`${ie}`),K!==null&&(o.style.fillOpacity=`${K}`),L&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",L)):(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=A==="reverse"?"0":`${a}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Ae&&(o.style.stroke=Ae),X!==null&&(o.style.strokeWidth=`${X}`),ae!==null&&(o.style.fillOpacity=`${ae}`));}),v){if(i)return e.style.clipPath=Ne(1),f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ne(0);}else if(i)return f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let Et=typeof d=="string"?st(d):null;function sr(){return !(ye===false||!hr()||!V.length||!Et||v||G!=="y"||Ee||u!==1||H!==0||re||ne||k!==false||L||w||E||Y>0||R||P||f||p||I||q||Me||N!=null||C!=null||O!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function ir(){let o=++yr,a=`svg-scroll-draw-${o}`,y=`svg-scroll-draw-host-${o}`,Q=`--svg-scroll-draw-${o}`,Le=A==="reverse"?"0":"var(--ssd-len)",Fe=A==="reverse"?"var(--ssd-len)":"0",ke=`stroke-dashoffset:${Le};`,S=`stroke-dashoffset:${Fe};`;m&&(ke+=`opacity:${A==="reverse"?1:0};`,S+=`opacity:${A==="reverse"?0:1};`);let D=document.createElement("style");D.setAttribute("data-svg-scroll-draw",""),D.textContent=`@keyframes ${a}{from{${ke}}to{${S}}}.${y}{view-timeline-name:${Q};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${Et};animation-fill-mode:both;animation-timeline:${Q};animation-range:cover 0% cover 100%;}`,document.head.appendChild(D),e.classList.add(y);function de(g,Z){g.style.setProperty("--ssd-len",String(F[Z])),g.style.strokeDasharray=`${F[Z]}`,g.style.strokeDashoffset="",g.style.opacity="",g.style.animationPlayState="",g.classList.add(a);}V.forEach(de);let b=false,W=-1;function U(){if(W>=0)return W;let g=e.getBoundingClientRect(),{tStart:Z,tEnd:$e}=Pe({top:g.top,height:g.height},Je(),bt(),me,He);return z(te(Je(),Z,$e,u))}return {destroy(){e.classList.remove(y),V.forEach(g=>{g.classList.remove(a),g.style.removeProperty("--ssd-len"),g.style.animationPlayState="";}),D.remove();},replay(){b=false,W=-1,V.forEach(de);},pause(){b=true,V.forEach(g=>{g.style.animationPlayState="paused";});},resume(){b&&(b=false,V.forEach(g=>{g.style.animationPlayState="running";}));},seek(g){let Z=Math.min(1,Math.max(0,g));W=Z,b=true,V.forEach(($e,xe)=>{$e.classList.remove(a),$e.style.strokeDashoffset=A==="reverse"?`${F[xe]*Z}`:`${F[xe]*(1-Z)}`,m&&($e.style.opacity=A==="reverse"?`${1-Z}`:`${Z}`);});},getProgress(){return U()},refresh(){V.forEach((g,Z)=>{F[Z]=je(g),g.style.setProperty("--ssd-len",String(F[Z])),g.style.strokeDasharray=`${F[Z]}`;});}}}if(sr())return ct(ir());function ar(){let o=Math.max(1,ge),a=0,y=0,Q=false;function Le(b){let W=true;if(v){let U=Math.min(1,Math.max(0,b/o)),g=z(U);Te=g,e.style.setProperty("--scroll-draw-progress",String(g)),e.style.clipPath=Ne(A==="reverse"?1-g:g),R?.(g),U<1&&(W=false);}else V.forEach((U,g)=>{let Z=g*H*o,$e=Math.min(1,Math.max(0,(b-Z)/o)),xe=z($e);U.style.strokeDashoffset=A==="reverse"?`${F[g]*xe}`:`${F[g]*(1-xe)}`,m&&(U.style.opacity=A==="reverse"?`${1-xe}`:`${xe}`),Ae&&fe?U.style.stroke=Ue(Ae,fe,xe):fe&&(U.style.stroke=fe),X!==null&&ie!==null?U.style.strokeWidth=`${X+(ie-X)*xe}`:ie!==null&&(U.style.strokeWidth=`${ie}`),ae!==null&&K!==null?U.style.fillOpacity=`${ae+(K-ae)*xe}`:K!==null&&(U.style.fillOpacity=`${K}`),L&&U.tagName.toLowerCase()==="path"&&pe[g]&&U.setAttribute("d",ft(pe[g],L,xe)),g===0&&(Te=xe,R?.(xe),e.style.setProperty("--scroll-draw-progress",String(xe))),$e<1&&(W=false);});if(w){let U=Math.min(1,Math.max(0,b/o)),g=z(U);for(let Z in w){let $e=parseFloat(Z);g>=$e&&!_e.has($e)&&(_e.add($e),w[Z]?.());}}return W}function Fe(b){if(j)return;let W=b-a;B||(B=true,P?.());let U=Le(W);if(U&&!_){_=true,Le(o*(1+Math.max(0,V.length-1)*H)),f?.(),ze<(E==="infinite"?1/0:E??0)&&(ze++,Ve=setTimeout(()=>{a=performance.now(),B=false,_=false,_e.clear(),et(),$=requestAnimationFrame(Fe);},oe));return}U||($=requestAnimationFrame(Fe));}function ke(){cancelAnimationFrame($),clearTimeout(Ve),a=performance.now(),y=0,j=false,B=false,_=false,ze=0,Q=true,Te=0,_e.clear(),et(),$=requestAnimationFrame(Fe);}let S=new IntersectionObserver(b=>{b.forEach(W=>{W.isIntersecting&&!(re&&_)?ke():!W.isIntersecting&&!re&&!_&&(cancelAnimationFrame($),clearTimeout(Ve),Q=false);});},{root:Ee??null,threshold:x,rootMargin:M}),D;function de(){clearTimeout(D),D=setTimeout(()=>{V.forEach((b,W)=>{F[W]=je(b),b.style.strokeDasharray=`${F[W]}`;});},150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),Y>0?setTimeout(()=>S.observe(e),Y):S.observe(e),{destroy(){cancelAnimationFrame($),clearTimeout(Ve),S.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(D);},replay(){ze=0,ke();},pause(){j||!Q||(j=true,y=performance.now()-a,cancelAnimationFrame($));},resume(){j&&(j=false,Q=true,a=performance.now()-y,$=requestAnimationFrame(Fe));},seek(b){let W=Math.min(1,Math.max(0,b));Te=W,j=true,y=W*o,a=performance.now()-y,cancelAnimationFrame($),Le(y);},getProgress(){return Te},refresh(){clearTimeout(D),V.forEach((b,W)=>{F[W]=je(b),b.style.strokeDasharray=`${F[W]}`;});}}}if(ve)return ct(ar());vt();function St(){if(j||!Ge)return;let o=performance.now(),a=Je();if(!We&&k===false&&a===yt){ut(a);return}We=false,yt=a;let y=u;if(k!==false){let S=o-ht,D=S>0?Math.abs(a-(Ze<0?a:Ze))/S:0;y=u*Math.max(.2,1+D*(typeof k=="number"?k:1)*.04);}Ze=a,ht=o;let Q=ne?le===-1||a>=le?"forward":"reverse":A;le=a;let Le=Se-J,Fe=true,ke=Le===0?0:(a-J)/Le;if(isNaN(Be)||(Be<=0&&ke>0?p?.():Be>0&&ke<=0&&Me?.(),Be<1&&ke>=1?I?.():Be>=1&&ke<1&&q?.()),Be=ke,v){let S=z(te(a,J,Se,y));re&&!ne&&(he=Math.max(he,S),S=he),Te=S,e.style.setProperty("--scroll-draw-progress",String(S));let D=Q==="reverse"?1-S:S;e.style.clipPath=Ne(D),R?.(S),!B&&te(a,J,Se,y)>0&&(B=true,P?.()),S>=1&&!_?(_=true,f?.(),ze<(E==="infinite"?1/0:E??0)&&(ze++,Ve=setTimeout(()=>{he=-1,B=false,_=false,e.style.clipPath=Ne(0);},oe))):S<1&&!re&&(_=false),ut(a);return}if(V.forEach((S,D)=>{let de=D*c*Le,b=z(te(a,J+de,Se+de,y));re&&!ne&&(b=Re[D]=Math.max(Re[D]??he,b)),S.style.strokeDashoffset=Q==="reverse"?`${F[D]*b}`:`${F[D]*(1-b)}`,m&&(S.style.opacity=Q==="reverse"?`${1-b}`:`${b}`),Ae&&fe?S.style.stroke=Ue(Ae,fe,b):fe&&(S.style.stroke=fe),X!==null&&ie!==null?S.style.strokeWidth=`${X+(ie-X)*b}`:ie!==null&&(S.style.strokeWidth=`${ie}`),ae!==null&&K!==null?S.style.fillOpacity=`${ae+(K-ae)*b}`:K!==null&&(S.style.fillOpacity=`${K}`),L&&S.tagName.toLowerCase()==="path"&&pe[D]&&S.setAttribute("d",ft(pe[D],L,b)),D===0&&(Te=b,R?.(b),e.style.setProperty("--scroll-draw-progress",String(b))),b<1&&(Fe=false);}),w){let S=z(te(a,J,Se,y));for(let D in w){let de=parseFloat(D);S>=de&&!_e.has(de)&&(_e.add(de),w[D]?.());}}!B&&te(a,J,Se,y)>0&&(B=true,P?.()),Fe&&!_?(_=true,f?.(),ze<(E==="infinite"?1/0:E??0)&&(ze++,Ve=setTimeout(()=>{he=-1,Re=[],B=false,_=false,_e.clear(),et(),We=true;},oe))):!Fe&&!re&&(_=false),ut(a);}function Tt(o){return o>=Se&&o<h}function ut(o){ee||Tt(o)?$=requestAnimationFrame(St):Ge=false;}let Ge=false;function tt(){Ge||(Ge=true,$=requestAnimationFrame(function(){St();}));}function rt(){Ge=false,cancelAnimationFrame($);}let mt=new IntersectionObserver(o=>{o.forEach(a=>{ee=a.isIntersecting,ee&&!j?(We=true,tt()):Ge&&!j&&Tt(Je())||rt();});},{root:Ee??null,threshold:x,rootMargin:M});function xt(){V.forEach((o,a)=>{F[a]=je(o),o.style.strokeDasharray=`${F[a]}`;}),vt(),We=true;}let nt;function Ye(){clearTimeout(nt),nt=setTimeout(xt,150);}window.addEventListener("resize",Ye),window.addEventListener("orientationchange",Ye);let lr=De([e],Ye);return Y>0?setTimeout(()=>mt.observe(e),Y):mt.observe(e),ct({destroy(){cancelAnimationFrame($),clearTimeout(Ve),rt(),mt.disconnect(),lr(),window.removeEventListener("resize",Ye),window.removeEventListener("orientationchange",Ye),clearTimeout(nt),gt();},replay(){he=-1,Re=[],le=-1,Ze=-1,B=false,_=false,ze=0,j=false,Te=0,_e.clear(),clearTimeout(Ve),et(),We=true,ee&&tt();},pause(){j=true,rt();},resume(){j&&(j=false,We=true,ee&&tt());},seek(o){let a=Math.min(1,Math.max(0,o));Te=a,he=a,Re=[],j=true,rt(),or(a,A),We=true;},getProgress(){return Te},refresh(){clearTimeout(nt),xt(),ee&&!j&&tt();}},()=>({tStart:J,tEnd:Se}))}var zt=new WeakMap,Er=0;function pt(e){return JSON.stringify(e,(n,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let t=zt.get(r);return t===void 0&&zt.set(r,t=++Er),`el#${t}`}return r})}function Vt(e,n){let r={...e};for(let t of Object.keys(r))typeof r[t]=="function"&&(r[t]=(...s)=>n()[t]?.(...s));return r}function Sr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function _t(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let u of l.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(m?parseFloat(m[1]):0),i.push(m?m[2]:"");}n.push({fn:t[1],nums:s,units:i});}return n}function Tr(e,n,r){let t=_t(e),s=_t(n);return t.length===0||t.length!==s.length?r<1?e:n:t.map((i,l)=>{let u=s[l];return i.fn!==u.fn||i.nums.length!==u.nums.length?r<1?`${i.fn}(${i.nums.map((m,d)=>`${m}${i.units[d]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,d)=>`${m}${u.units[d]}`).join(", ")})`:`${i.fn}(${i.nums.map((m,d)=>`${m+(u.nums[d]-m)*r}${i.units[d]}`).join(", ")})`}).join(" ")}function Wt(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),s=String(n);if(Sr(t))return Ue(t,s,r);if(t.includes("("))return Tr(t,s,r);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let u=parseFloat(i[1]),m=parseFloat(l[1]);return `${u+(m-u)*r}${i[2]||l[2]}`}return r<1?t:s}function xr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Mr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Ar=0,qt="--scroll-draw-progress";function Lr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Bt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:u=false,axis:m="y",scrollContainer:d,native:T=true,velocityScale:H=false,respectReducedMotion:A=true,triggerElement:re,onProgress:Ce,onComplete:G,onEnter:ue,onLeave:ne,onEnterBack:Y,onLeaveBack:N}=n,C=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,O=typeof i=="function"?i:ce[i]??ce["ease-out"],w=be(s.start??"top bottom"),k=be(s.end??"bottom top"),x=re??e,M=typeof d=="string"?document.querySelector(d):d??null,E=Object.entries(t).map(([c,h])=>({prop:xr(c),from:Array.isArray(h)?h[0]:"",to:Array.isArray(h)?h[1]:h}));function oe(){let c=window.getComputedStyle(e);for(let h of E)h.from===""&&(h.from=c.getPropertyValue(h.prop).trim()||"0");}function L(){for(let c of E)e.style.setProperty(c.prop,String(c.to));}let se=new Map;for(let c of [...E.map(h=>h.prop),qt])se.set(c,e.style.getPropertyValue(c));function ve(){for(let[c,h]of se)h?e.style.setProperty(c,h):e.style.removeProperty(c);}if(C)return L(),G?.(),{...r,destroy:ve,getProgress:()=>1};oe();let ge=typeof i=="string"?st(i):null;function ye(){if(!T||!Lr()||!ge||m!=="y"||M||x!==e||u||l!==1||Ce||G||ue||ne||Y||N||H!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let c of E)if(!Mr.has(c.prop))return false;return true}function R(){let c=`ssd-a-${++Ar}`,h=E.map(le=>`${le.prop}:${le.from}`).join(";"),_=E.map(le=>`${le.prop}:${le.to}`).join(";"),B=document.createElement("style");B.setAttribute("data-ssd-animate",""),B.textContent=`@keyframes ${c}{from{${h}}to{${_}}}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${ge};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(B),e.classList.add(c);let $=()=>m==="x"?window.scrollX:window.scrollY,ee=()=>m==="x"?window.innerWidth:window.innerHeight,he=()=>{let le=e.getBoundingClientRect();return Pe({top:le.top,height:le.height},$(),ee(),w,k)};Oe(e,{type:"animate",getProgress:()=>Re.getProgress(),getTrigger:he});let Re={refresh(){},destroy(){e.classList.remove(c),B.remove(),e.style.animationPlayState="",ve(),Ie(e);},replay(){e.classList.remove(c),e.offsetWidth,e.classList.add(c);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(le){let j=Math.min(1,Math.max(0,le));e.classList.remove(c);for(let Te of E)e.style.setProperty(Te.prop,Wt(Te.from,Te.to,j));},getProgress(){let{tStart:le,tEnd:j}=he();return O(te($(),le,j,l))}};return Re}if(ye())return R();let P=0,f=0,p=0,I=false,q=false,Me=-1,v=0,z=false,me=NaN,He=-1,Ee=0,Ae=()=>M?m==="x"?M.scrollLeft:M.scrollTop:m==="x"?window.scrollX:window.scrollY,fe=()=>M?m==="x"?M.clientWidth:M.clientHeight:m==="x"?window.innerWidth:window.innerHeight,X=x===e?E:[],ie=false;function ae(){let c=e.style,h=X.map(ee=>c.getPropertyValue(ee.prop)),_=c.transition;X.length&&(c.transition="none"),X.forEach(ee=>c.setProperty(ee.prop,se.get(ee.prop)??""));let B=ot(x,M,m);X.forEach((ee,he)=>c.setProperty(ee.prop,h[he])),X.length&&(e.offsetWidth,c.transition=_);let $=Pe(B,B.scroll,fe(),w,k);ie&&Math.abs($.tStart-P)<1&&Math.abs($.tEnd-f)<1||(ie=true,P=$.tStart,f=$.tEnd);}function K(c){e.style.setProperty(qt,String(c));for(let h of E)e.style.setProperty(h.prop,Wt(h.from,h.to,c));Ce?.(c);}function Ne(c){if(isNaN(me)){me=c;return}me<=0&&c>0?ue?.():me>0&&c<=0&&N?.(),me<1&&c>=1?ne?.():me>=1&&c<1&&Y?.(),me=c;}function V(){if(!I||q)return;let c=performance.now(),h=Ae(),_=l;if(H!==false){let ee=c-Ee,he=ee>0?Math.abs(h-(He<0?h:He))/ee:0;_=l*Math.max(.2,1+he*(typeof H=="number"?H:1)*.04);}He=h,Ee=c;let B=f===P?0:(h-P)/(f-P);Ne(B);let $=O(te(h,P,f,_));u&&(Me=Math.max(Me,$),$=Me),v=$,K($),$>=1&&!z?(z=true,G?.()):$<1&&!u&&(z=false),p=requestAnimationFrame(V);}ae(),f===P&&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 c=O(te(Ae(),P,f,l));u&&c>0&&(Me=c),v=c,K(c);}let F=new IntersectionObserver(c=>{c.forEach(h=>{I=h.isIntersecting,I&&!q?p=requestAnimationFrame(V):cancelAnimationFrame(p);});},{root:M??null}),pe;function J(){clearTimeout(pe),pe=setTimeout(ae,150);}window.addEventListener("resize",J),window.addEventListener("orientationchange",J);let Se=De([x],J);return F.observe(e),Oe(e,{type:"animate",getProgress:()=>v,getTrigger:()=>({tStart:P,tEnd:f})}),{destroy(){cancelAnimationFrame(p),F.disconnect(),window.removeEventListener("resize",J),window.removeEventListener("orientationchange",J),Se(),clearTimeout(pe),ve(),Ie(e);},replay(){Me=-1,z=false,v=0,q=false,K(0);},pause(){q=true,cancelAnimationFrame(p);},resume(){q&&(q=false,I&&(p=requestAnimationFrame(V)));},seek(c){let h=Math.min(1,Math.max(0,c));v=h,Me=h,q=true,cancelAnimationFrame(p),K(h);},getProgress(){return v},refresh(){ae();}}}var dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Gt(e,n){if(typeof window>"u")return dt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return we("scrollCounter: element not found:",e),dt;let t=r,{from:s=0,to:i,format:l,easing:u="ease-out",trigger:m={},once:d=true,decimals:T,onComplete:H}=n,A=T!==void 0?f=>f.toFixed(T):l??(f=>String(Math.round(f))),re=typeof u=="function"?u:ce[u]??ce["ease-out"],Ce=be(m.start??"top 80%"),G=be(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(i),H?.(),dt;let ne=0,Y=0,N=false,C=0,O=false,w=false,k=-1,x=0,M=false,E=()=>window.scrollY,oe=()=>window.innerHeight;function L(){let f=t.getBoundingClientRect(),p=Pe({top:f.top,height:f.height},E(),oe(),Ce,G);N&&Math.abs(p.tStart-ne)<1&&Math.abs(p.tEnd-Y)<1||(N=true,ne=p.tStart,Y=p.tEnd);}function se(f){t.textContent=A(s+(i-s)*f),t.style.setProperty("--scroll-draw-progress",String(f));}function ve(){if(!O||w)return;let f=re(te(E(),ne,Y,1));d&&(k=Math.max(k,f),f=k),x=f,se(f),f>=1&&!M?(M=true,H?.()):f<1&&!d&&(M=false),C=requestAnimationFrame(ve);}L();{let f=re(te(E(),ne,Y,1));d&&f>0&&(k=f),x=f,se(f);}let ge=new IntersectionObserver(f=>{f.forEach(p=>{O=p.isIntersecting,O&&!w?C=requestAnimationFrame(ve):cancelAnimationFrame(C);});}),ye;function R(){clearTimeout(ye),ye=setTimeout(L,150);}window.addEventListener("resize",R),window.addEventListener("orientationchange",R);let P=De([t],R);return ge.observe(t),Oe(t,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:ne,tEnd:Y})}),{destroy(){cancelAnimationFrame(C),ge.disconnect(),window.removeEventListener("resize",R),window.removeEventListener("orientationchange",R),P(),clearTimeout(ye),Ie(t);},replay(){k=-1,M=false,x=0,w=false,se(0);},pause(){w=true,cancelAnimationFrame(C);},resume(){w&&(w=false,O&&(C=requestAnimationFrame(ve)));},seek(f){let p=Math.min(1,Math.max(0,f));x=p,k=p,w=true,cancelAnimationFrame(C),se(p);},getProgress(){return x}}}var jt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ut(e,n={}){if(typeof window>"u")return jt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),jt;let t=r,{trigger:s={},easing:i="linear",once:l=false,axis:u="y",preload:m="auto",triggerElement:d,onReady:T,onComplete:H,onProgress:A}=n,re=d??t,Ce=window.matchMedia("(prefers-reduced-motion: reduce)").matches,G=typeof i=="function"?i:ce[i]??ce.linear,ue=be(s.start??"top top"),ne=be(s.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let Y=n.from??0,N=n.to,C=0,O=0,w=0,k=false,x=false,M=-1,E=0,oe=false,L=false,se=()=>u==="x"?window.scrollX:window.scrollY,ve=()=>u==="x"?window.innerWidth:window.innerHeight;function ge(){let v=re.getBoundingClientRect(),z=u==="x"?v.left:v.top,me=u==="x"?v.width:v.height,He=Pe({top:z,height:me},se(),ve(),ue,ne);C=He.tStart,O=He.tEnd,L&&O===C&&we("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let ye=NaN;function R(v){if(!L)return;let z=N??t.duration??0,me=Y+(z-Y)*v;me!==ye&&(ye=me,t.currentTime=me),t.style.setProperty("--scroll-draw-progress",String(v)),A?.(v);}function P(){if(!k||x||!L||Ce)return;let v=G(te(se(),C,O,1));l&&(M=Math.max(M,v),v=M),E=v,R(v),v>=1&&!oe?(oe=true,H?.()):v<1&&!l&&(oe=false),w=requestAnimationFrame(P);}function f(){if(L=true,N===void 0&&(N=t.duration),Ce){R(1),T?.();return}ge(),T?.(),k&&!x&&(w=requestAnimationFrame(P));}t.readyState>=1?f():t.addEventListener("loadedmetadata",f,{once:true}),L||ge();let p=new IntersectionObserver(v=>{v.forEach(z=>{k=z.isIntersecting,k&&!x&&L?w=requestAnimationFrame(P):cancelAnimationFrame(w);});}),I;function q(){clearTimeout(I),I=setTimeout(ge,150);}window.addEventListener("resize",q),window.addEventListener("orientationchange",q);let Me=De([re],q);return p.observe(t),Oe(t,{type:"video",getProgress:()=>E,getTrigger:()=>({tStart:C,tEnd:O})}),{destroy(){cancelAnimationFrame(w),p.disconnect(),t.removeEventListener("loadedmetadata",f),window.removeEventListener("resize",q),window.removeEventListener("orientationchange",q),Me(),clearTimeout(I),Ie(t);},replay(){M=-1,oe=false,E=0,x=false,ye=NaN,R(0);},pause(){x=true,cancelAnimationFrame(w);},resume(){x&&(x=false,k&&L&&(w=requestAnimationFrame(P)));},seek(v){let z=Math.min(1,Math.max(0,v));E=z,M=z,x=true,cancelAnimationFrame(w),ye=NaN,R(z);},getProgress(){return E}}}function Kt(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function $r(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function Yt(e){let n=Kt(e),r=new Map;for(let i of n){let l=i.offsetTop;r.has(l)||r.set(l,[]),r.get(l).push(i);}let t=[],s=Array.from(r.keys()).sort((i,l)=>i-l);for(let i of s){let l=r.get(i),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",l.forEach((m,d)=>{let T=m.nextElementSibling;u.appendChild(m),d<l.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function Pr(e,n,r,t){if(r<=1||t===0)return e;let s=(r-1)*t,i=n*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function Cr(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var Xt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Qt(e,n={}){if(typeof window>"u")return Xt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return we("scrollText: element not found:",e),Xt;let t=r,{split:s="words",stagger:i=.04,easing:l="ease-out",from:u={opacity:0,y:24},trigger:m={},once:d=true,onComplete:T}=n,H=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof l=="function"?l:ce[l]??ce["ease-out"],re=be(m.start??"top 85%"),Ce=be(m.end??"top 40%"),G=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ue;s==="chars"?ue=$r(t):s==="lines"?ue=Yt(t):ue=Kt(t);let ne=ue.length;function Y(p,I){u?.opacity!==void 0&&(p.style.opacity=String(u.opacity+(1-u.opacity)*I));let q=Cr(I,u);q&&(p.style.transform=q);}function N(p){t.style.setProperty("--scroll-draw-progress",String(p)),ue.forEach((I,q)=>{let Me=A(Pr(p,q,ne,i));Y(I,Me);});}if(H)return N(1),T?.(),{destroy(){t.innerHTML=G,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};N(0);let C=0,O=0,w=0,k=false,x=false,M=-1,E=0,oe=false,L=()=>window.scrollY,se=()=>window.innerHeight;function ve(){let p=t.getBoundingClientRect(),I=Pe({top:p.top,height:p.height},L(),se(),re,Ce);C=I.tStart,O=I.tEnd;}function ge(){if(!k||x)return;let p=te(L(),C,O,1);d&&(M=Math.max(M,p),p=M),E=p,N(p),p>=1&&!oe?(oe=true,T?.()):p<1&&!d&&(oe=false),w=requestAnimationFrame(ge);}ve();let ye=new IntersectionObserver(p=>{p.forEach(I=>{k=I.isIntersecting,k&&!x?w=requestAnimationFrame(ge):cancelAnimationFrame(w);});}),R;function P(){clearTimeout(R),R=setTimeout(()=>{if(s==="lines"){let p=E;t.innerHTML=G,t.setAttribute("aria-label",t.textContent??""),ue=Yt(t),N(p);}ve();},150);}window.addEventListener("resize",P),window.addEventListener("orientationchange",P);let f=De([t],P);return ye.observe(t),Oe(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:C,tEnd:O})}),{destroy(){cancelAnimationFrame(w),ye.disconnect(),window.removeEventListener("resize",P),window.removeEventListener("orientationchange",P),f(),clearTimeout(R),t.innerHTML=G,t.removeAttribute("aria-label"),Ie(t);},replay(){M=-1,oe=false,E=0,x=false,N(0);},pause(){x=true,cancelAnimationFrame(w);},resume(){x&&(x=false,k&&(w=requestAnimationFrame(ge)));},seek(p){let I=Math.min(1,Math.max(0,p));E=I,M=I,x=true,cancelAnimationFrame(w),N(I);},getProgress(){return E}}}var qe=class{constructor(n){this.create=n;this.instance=null;this.el=null;this.key="";}init(n,r){return this.destroy(),this.el=n,this.latest=r,this.key=pt(r),this.instance=this.create(n,Vt(r,()=>this.latest)),this}update(n){return this.el?pt(n)!==this.key?this.init(this.el,n):(this.latest=n,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(n){return this.instance?.seek(n),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},Zt=class extends qe{constructor(){super(Rt);}init(n,r={}){return super.init(n,r)}},Jt=class extends qe{constructor(){super(Bt);}},er=class extends qe{constructor(){super(Gt);}},tr=class extends qe{constructor(){super(Ut);}init(n,r={}){return super.init(n,r)}},rr=class extends qe{constructor(){super(Qt);}init(n,r={}){return super.init(n,r)}};exports.EngineRef=qe;exports.ScrollAnimateRef=Jt;exports.ScrollCounterRef=er;exports.ScrollDrawRef=Zt;exports.ScrollTextRef=rr;exports.ScrollVideoRef=tr;
@@ -1,6 +1,6 @@
1
- import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-B0YM4nQP.mjs';
2
- import { S as ScrollAnimateOptions } from '../engine-CvzRSkuk.mjs';
3
- import { S as ScrollCounterOptions } from '../index-BlIjovDN.mjs';
1
+ import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-MswK0erX.mjs';
2
+ import { S as ScrollAnimateOptions } from '../engine-P8u6OK4m.mjs';
3
+ import { S as ScrollCounterOptions } from '../index-CdaBYn3A.mjs';
4
4
  import { ScrollVideoOptions } from '../video/index.mjs';
5
5
  import { ScrollTextOptions } from '../text/index.mjs';
6
6
 
@@ -1,6 +1,6 @@
1
- import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-B0YM4nQP.js';
2
- import { S as ScrollAnimateOptions } from '../engine-C9LKls__.js';
3
- import { S as ScrollCounterOptions } from '../index-DZjvLJcU.js';
1
+ import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-MswK0erX.js';
2
+ import { S as ScrollAnimateOptions } from '../engine-DQyBzZDl.js';
3
+ import { S as ScrollCounterOptions } from '../index-D3o4vT3e.js';
4
4
  import { ScrollVideoOptions } from '../video/index.js';
5
5
  import { ScrollTextOptions } from '../text/index.js';
6
6
 
@@ -1 +1 @@
1
- import {a,b}from'../chunk-XSVTHCLO.mjs';import {a as a$3}from'../chunk-7SBTYJGH.mjs';import {a as a$4}from'../chunk-I45LCJUP.mjs';import {a as a$2}from'../chunk-KHQ7OGQK.mjs';import {a as a$1}from'../chunk-BFX2CSQ3.mjs';import {b as b$1}from'../chunk-WHFRS7IP.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';var r=class{constructor(t){this.create=t;this.instance=null;this.el=null;this.key="";}init(t,e){return this.destroy(),this.el=t,this.latest=e,this.key=a(e),this.instance=this.create(t,b(e,()=>this.latest)),this}update(t){return this.el?a(t)!==this.key?this.init(this.el,t):(this.latest=t,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(t){return this.instance?.seek(t),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},u=class extends r{constructor(){super(b$1);}init(t,e={}){return super.init(t,e)}},h=class extends r{constructor(){super(a$1);}},m=class extends r{constructor(){super(a$2);}},O=class extends r{constructor(){super(a$3);}init(t,e={}){return super.init(t,e)}},d=class extends r{constructor(){super(a$4);}init(t,e={}){return super.init(t,e)}};export{r as EngineRef,h as ScrollAnimateRef,m as ScrollCounterRef,u as ScrollDrawRef,d as ScrollTextRef,O as ScrollVideoRef};
1
+ import {a,b}from'../chunk-XSVTHCLO.mjs';import {a as a$3}from'../chunk-7SBTYJGH.mjs';import {a as a$4}from'../chunk-I45LCJUP.mjs';import {a as a$2}from'../chunk-KHQ7OGQK.mjs';import {a as a$1}from'../chunk-BFX2CSQ3.mjs';import {b as b$1}from'../chunk-LQBXJRFY.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';var r=class{constructor(t){this.create=t;this.instance=null;this.el=null;this.key="";}init(t,e){return this.destroy(),this.el=t,this.latest=e,this.key=a(e),this.instance=this.create(t,b(e,()=>this.latest)),this}update(t){return this.el?a(t)!==this.key?this.init(this.el,t):(this.latest=t,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(t){return this.instance?.seek(t),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},u=class extends r{constructor(){super(b$1);}init(t,e={}){return super.init(t,e)}},h=class extends r{constructor(){super(a$1);}},m=class extends r{constructor(){super(a$2);}},O=class extends r{constructor(){super(a$3);}init(t,e={}){return super.init(t,e)}},d=class extends r{constructor(){super(a$4);}init(t,e={}){return super.init(t,e)}};export{r as EngineRef,h as ScrollAnimateRef,m as ScrollCounterRef,u as ScrollDrawRef,d as ScrollTextRef,O as ScrollVideoRef};
@@ -1,3 +1,3 @@
1
- 'use strict';function Zt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),s=Math.sqrt(t),i=0,l=[];for(let p=0;p<n;p++){let v=Math.pow(s,p);l.push(v),i+=v;}let m=[0],c=0;for(let p=0;p<n;p++)c+=l[p]/i,m.push(c);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let v=0;v<n;v++)if(p<=m[v+1]){let V=(p-m[v])/(m[v+1]-m[v]);if(v===0)return V*(2-V);let S=1-Math.pow(t,v);return S+(1-S)*(2*V-1)*(2*V-1)}return 1}}function Kt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),s=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return i=>i<=0?0:i>=1?1:n*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var pe={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:Zt(),elastic:Kt()};function xt(e,r,n){return Math.min(n,Math.max(r,e))}function Se(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 Mt(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 At(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 se(e,r,n,t){return n===r?0:xt((e-r)/(n-r)*t,0,1)}function De(e,r,n,t,s){let i=Mt(e.top,e.height,r,t.element)-At(t.viewport,n),l=Mt(e.top,e.height,r,s.element)-At(s.viewport,n);return {tStart:i,tEnd:l}}function tt(e,r,n){let t=e.getBoundingClientRect(),s=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:s,scroll:0}:{top:n==="x"?t.left:t.top,height:s,scroll:n==="x"?window.scrollX:window.scrollY}}function qe(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 Lt(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 We(e,r,n){let t=Lt(e),s=Lt(r);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*n)},${Math.round(t[1]+(s[1]-t[1])*n)},${Math.round(t[2]+(s[2]-t[2])*n)})`}var $t={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 Ge=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function Q(e,...r){Ge&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var er="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",tr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Ct=33;function rr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function nr(e){let r=[];for(let n=0;n<Ct;n++){let t=n/(Ct-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function rt(e){switch(e){case "linear":return "linear";case "ease-in":return er;case "ease-out":return tr;case "ease-in-out":return rr()?nr(pe["ease-in-out"]):null;default:return null}}var Pt=Symbol.for("svg-scroll-draw.registry");function Dt(){let e=globalThis;return e[Pt]||(e[Pt]=new Map)}function Oe(e,r){Dt().set(e,r);}function Re(e){Dt().delete(e);}var je,nt=new Set,ot=new WeakMap,Ue=new Map,kt=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function or(e){let r=new Set;for(let n of e)for(;n&&n!==document.body;n=n.parentElement)for(let t=n;t;t=t.previousElementSibling)r.add(t);return r}function _e(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let n=()=>r();je??(je=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)ot.get(l)!==kt(l)&&(i=true),ot.set(l,"");i&&nt.forEach(l=>l());})),nt.add(n);let t=or(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{ot.has(s)||ot.set(s,kt(s)),Ue.set(s,(Ue.get(s)??0)+1),je.observe(s);}),()=>{nt.delete(n)&&(t.forEach(s=>{let i=(Ue.get(s)??1)-1;if(i)return void Ue.set(s,i);Ue.delete(s),je?.unobserve(s);}),nt.size||(je?.disconnect(),je=void 0));}}var sr=0;function ir(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function It(e,r){let n="";try{n=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return n||(e.getAttribute(r)??"").trim()}var Ot=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function ar(e){if(!Ge)return;let r=It(e,"stroke");if(!r||r==="none"){Q("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!Ot.has(n)&&!Ot.has(It(e,"fill"))&&Q("Element has a fill \u2014 it may obscure the stroke animation.",e);}function lr(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 s(){let i=n==="x"?window.scrollX:window.scrollY,l=e-i,m=r-i,c=n==="x";t.innerHTML=`
1
+ 'use strict';function nr({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),s=Math.sqrt(t),i=0,l=[];for(let f=0;f<n;f++){let v=Math.pow(s,f);l.push(v),i+=v;}let m=[0],c=0;for(let f=0;f<n;f++)c+=l[f]/i,m.push(c);return f=>{if(f<=0)return 0;if(f>=1)return 1;for(let v=0;v<n;v++)if(f<=m[v+1]){let $=(f-m[v])/(m[v+1]-m[v]);if(v===0)return $*(2-$);let T=1-Math.pow(t,v);return T+(1-T)*(2*$-1)*(2*$-1)}return 1}}function or({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),s=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return i=>i<=0?0:i>=1?1:n*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var he={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:nr(),elastic:or()};function $t(e,r,n){return Math.min(n,Math.max(r,e))}function xe(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 Ct(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 se(e,r,n,t){return n===r?0:$t((e-r)/(n-r)*t,0,1)}function De(e,r,n,t,s){let i=Ct(e.top,e.height,r,t.element)-Pt(t.viewport,n),l=Ct(e.top,e.height,r,s.element)-Pt(s.viewport,n);return {tStart:i,tEnd:l}}function ot(e,r,n){let t=e.getBoundingClientRect(),s=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:s,scroll:0}:{top:n==="x"?t.left:t.top,height:s,scroll:n==="x"?window.scrollX:window.scrollY}}function Ge(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 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 je(e,r,n){let t=Dt(e),s=Dt(r);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*n)},${Math.round(t[1]+(s[1]-t[1])*n)},${Math.round(t[2]+(s[2]-t[2])*n)})`}var kt={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 Ye=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function ee(e,...r){Ye&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var sr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",ir="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",It=33;function ar(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function lr(e){let r=[];for(let n=0;n<It;n++){let t=n/(It-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function st(e){switch(e){case "linear":return "linear";case "ease-in":return sr;case "ease-out":return ir;case "ease-in-out":return ar()?lr(he["ease-in-out"]):null;default:return null}}var Ot=Symbol.for("svg-scroll-draw.registry");function Rt(){let e=globalThis;return e[Ot]||(e[Ot]=new Map)}function Re(e,r){Rt().set(e,r);}function Fe(e){Rt().delete(e);}var Xe,it=new Set,at=new WeakMap,Je=new Map,Ft=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function cr(e){let r=new Set;for(let n of e)for(;n&&n!==document.body;n=n.parentElement)for(let t=n;t;t=t.previousElementSibling)r.add(t);return r}function Ve(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let n=()=>r();Xe??(Xe=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)at.get(l)!==Ft(l)&&(i=true),at.set(l,"");i&&it.forEach(l=>l());})),it.add(n);let t=cr(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{at.has(s)||at.set(s,Ft(s)),Je.set(s,(Je.get(s)??0)+1),Xe.observe(s);}),()=>{it.delete(n)&&(t.forEach(s=>{let i=(Je.get(s)??1)-1;if(i)return void Je.set(s,i);Je.delete(s),Xe?.unobserve(s);}),it.size||(Xe?.disconnect(),Xe=void 0));}}var ur=0;function mr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ht(e,r){let n="";try{n=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return n||(e.getAttribute(r)??"").trim()}var Nt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function fr(e){if(!Ye)return;let r=Ht(e,"stroke");if(!r||r==="none"){ee("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!Nt.has(n)&&!Nt.has(Ht(e,"fill"))&&ee("Element has a fill \u2014 it may obscure the stroke animation.",e);}function pr(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 s(){let i=n==="x"?window.scrollX:window.scrollY,l=e-i,m=r-i,c=n==="x";t.innerHTML=`
2
2
  <div style="position:absolute;${c?`left:${l}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${l}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;${c?`left:${m}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${m}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",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var Rt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Ft=/[MmLlHhVvCcSsQqTtAaZz]/g;function cr(e,r,n){if(!Ge)return;let t=(e.match(Ft)??[]).join("").toUpperCase(),s=(r.match(Ft)??[]).join("").toUpperCase(),i=(e.match(Rt)??[]).length,l=(r.match(Rt)??[]).length;if(t!==s){Q(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}i!==l&&Q(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function pt(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),m=t[s++]??l;return String(+(l+(m-l)*n).toFixed(4))})}function st(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,s=n?{...$t[n],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:m=1,fade:c=false,easing:p="linear",trigger:v={},stagger:V=0,direction:S="forward",once:ce=false,debug:Fe=false,axis:j="y",scrollContainer:ue,autoReverse:ie=false,delay:Z=0,strokeColor:F,strokeWidth:I,fillOpacity:H,waypoints:T,velocityScale:N=false,threshold:C=0,rootMargin:A="0px",repeat:E=0,repeatDelay:he=0,morphTo:_,clip:me,autoplay:be=false,duration:Te=1e3,native:$e=true,onProgress:U,onStart:P,onComplete:d,onEnter:g,onLeave:O,onEnterBack:ae,onLeaveBack:xe}=s,le=me===true?"left":typeof me=="string"?me:false,we=typeof p=="function"?p:pe[p]??pe.linear,Ce=Se(v.start??"top bottom"),ze=Se(v.end??"bottom top"),de=typeof ue=="string"?document.querySelector(ue):ue??null,ge=Array.isArray(F)?F[0]:null,K=Array.isArray(F)?F[1]:typeof F=="string"?F:null,q=Array.isArray(I)?I[0]:null,Y=Array.isArray(I)?I[1]:typeof I=="number"?I:null,X=Array.isArray(H)?H[0]:null,W=Array.isArray(H)?H[1]:typeof H=="number"?H:null;function ke(o){let u=o*100;switch(le){case "right":return `inset(0 0 0 ${100-u}%)`;case "top":return `inset(0 0 ${100-u}% 0)`;case "bottom":return `inset(${100-u}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-u}% 0 0)`}}let R=le?[]:Array.from(e.querySelectorAll(l)),x=[],ee=[],te=0,Me=0,a=false,f=false,D=0,re=false,L=-1,J=[],Ae=-1,B=false,$=0,ye=0,ve,lt=null;function yt(){lt?.destroy(),lt=null;}let He=new Set,ht=NaN,Ne=true,Xe=-1,bt=performance.now(),Ve=NaN;function ct(){return de?j==="x"?de.scrollLeft:de.scrollTop:j==="x"?window.scrollX:window.scrollY}function wt(){return de?j==="x"?de.clientWidth:de.clientHeight:j==="x"?window.innerWidth:window.innerHeight}function vt(){let o=tt(e,de,j);return De(o,o.scroll,wt(),Ce,ze)}function Et(){(({tStart:te,tEnd:Me}=vt())),Fe&&Ge&&(yt(),lt=lr(te,Me,j));}function ut(o,u=vt){Oe(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:u});let b=o.destroy;return o.destroy=()=>{b.call(o),Re(e);},o}function Ut(o,u){if(e.style.setProperty("--scroll-draw-progress",String(o)),le){let b=u==="reverse"?1-o:o;e.style.clipPath=ke(b);return}R.forEach((b,ne)=>{b.style.strokeDashoffset=u==="reverse"?`${x[ne]*o}`:`${x[ne]*(1-o)}`,c&&(b.style.opacity=u==="reverse"?`${1-o}`:`${o}`),ge&&K?b.style.stroke=We(ge,K,o):K&&(b.style.stroke=K),q!==null&&Y!==null?b.style.strokeWidth=`${q+(Y-q)*o}`:Y!==null&&(b.style.strokeWidth=`${Y}`),X!==null&&W!==null?b.style.fillOpacity=`${X+(W-X)*o}`:W!==null&&(b.style.fillOpacity=`${W}`),_&&b.tagName.toLowerCase()==="path"&&ee[ne]&&b.setAttribute("d",pt(ee[ne],_,o));});}function Je(){if(e.style.setProperty("--scroll-draw-progress","0"),le){e.style.clipPath=ke(0);return}R.forEach((o,u)=>{o.style.strokeDasharray=`${x[u]}`,o.style.strokeDashoffset=S==="reverse"?"0":`${x[u]}`,c?o.style.opacity=S==="reverse"?"1":"0":o.style.opacity="",ge&&(o.style.stroke=ge),q!==null&&(o.style.strokeWidth=`${q}`),X!==null&&(o.style.fillOpacity=`${X}`),_&&o.tagName.toLowerCase()==="path"&&ee[u]&&o.setAttribute("d",ee[u]);});}if(R.forEach(o=>{ar(o);let u=qe(o);x.push(u);let b=o.tagName.toLowerCase()==="path";b?ee.push(o.getAttribute("d")??""):ee.push(""),_&&(b?cr(ee[ee.length-1],_,o):Q(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${u}`,o.style.strokeDashoffset=S==="reverse"?`${u}`:"0",c&&(o.style.opacity="1"),K&&(o.style.stroke=K),Y!==null&&(o.style.strokeWidth=`${Y}`),W!==null&&(o.style.fillOpacity=`${W}`),_&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",_)):(o.style.strokeDasharray=`${u}`,o.style.strokeDashoffset=S==="reverse"?"0":`${u}`,c?o.style.opacity=S==="reverse"?"1":"0":o.style.opacity="",ge&&(o.style.stroke=ge),q!==null&&(o.style.strokeWidth=`${q}`),X!==null&&(o.style.fillOpacity=`${X}`));}),le){if(i)return e.style.clipPath=ke(1),d?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(i)return d?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let St=typeof p=="string"?rt(p):null;function Yt(){return !($e===false||!ir()||!R.length||!St||le||j!=="y"||de||m!==1||V!==0||ce||ie||N!==false||_||T||E||Z>0||U||P||d||g||O||ae||xe||F!=null||I!=null||H!=null||(v.start??"top bottom").trim()!=="top bottom"||(v.end??"bottom top").trim()!=="bottom top")}function Xt(){let o=++sr,u=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,ne=`--svg-scroll-draw-${o}`,Ie=S==="reverse"?"0":"var(--ssd-len)",Pe=S==="reverse"?"var(--ssd-len)":"0",Le=`stroke-dashoffset:${Ie};`,w=`stroke-dashoffset:${Pe};`;c&&(Le+=`opacity:${S==="reverse"?1:0};`,w+=`opacity:${S==="reverse"?0:1};`);let M=document.createElement("style");M.setAttribute("data-svg-scroll-draw",""),M.textContent=`@keyframes ${u}{from{${Le}}to{${w}}}.${b}{view-timeline-name:${ne};view-timeline-axis:block;}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${St};animation-fill-mode:both;animation-timeline:${ne};animation-range:cover 0% cover 100%;}`,document.head.appendChild(M),e.classList.add(b);function oe(y,G){y.style.setProperty("--ssd-len",String(x[G])),y.style.strokeDasharray=`${x[G]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(u);}R.forEach(oe);let h=false,k=-1;function z(){if(k>=0)return k;let y=e.getBoundingClientRect(),{tStart:G,tEnd:Ee}=De({top:y.top,height:y.height},ct(),wt(),Ce,ze);return we(se(ct(),G,Ee,m))}return {destroy(){e.classList.remove(b),R.forEach(y=>{y.classList.remove(u),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),M.remove();},replay(){h=false,k=-1,R.forEach(oe);},pause(){h=true,R.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,R.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let G=Math.min(1,Math.max(0,y));k=G,h=true,R.forEach((Ee,fe)=>{Ee.classList.remove(u),Ee.style.strokeDashoffset=S==="reverse"?`${x[fe]*G}`:`${x[fe]*(1-G)}`,c&&(Ee.style.opacity=S==="reverse"?`${1-G}`:`${G}`);});},getProgress(){return z()},refresh(){R.forEach((y,G)=>{x[G]=qe(y),y.style.setProperty("--ssd-len",String(x[G])),y.style.strokeDasharray=`${x[G]}`;});}}}if(Yt())return ut(Xt());function Jt(){let o=Math.max(1,Te),u=0,b=0,ne=false;function Ie(h){let k=true;if(le){let z=Math.min(1,Math.max(0,h/o)),y=we(z);$=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=ke(S==="reverse"?1-y:y),U?.(y),z<1&&(k=false);}else R.forEach((z,y)=>{let G=y*V*o,Ee=Math.min(1,Math.max(0,(h-G)/o)),fe=we(Ee);z.style.strokeDashoffset=S==="reverse"?`${x[y]*fe}`:`${x[y]*(1-fe)}`,c&&(z.style.opacity=S==="reverse"?`${1-fe}`:`${fe}`),ge&&K?z.style.stroke=We(ge,K,fe):K&&(z.style.stroke=K),q!==null&&Y!==null?z.style.strokeWidth=`${q+(Y-q)*fe}`:Y!==null&&(z.style.strokeWidth=`${Y}`),X!==null&&W!==null?z.style.fillOpacity=`${X+(W-X)*fe}`:W!==null&&(z.style.fillOpacity=`${W}`),_&&z.tagName.toLowerCase()==="path"&&ee[y]&&z.setAttribute("d",pt(ee[y],_,fe)),y===0&&($=fe,U?.(fe),e.style.setProperty("--scroll-draw-progress",String(fe))),Ee<1&&(k=false);});if(T){let z=Math.min(1,Math.max(0,h/o)),y=we(z);for(let G in T){let Ee=parseFloat(G);y>=Ee&&!He.has(Ee)&&(He.add(Ee),T[G]?.());}}return k}function Pe(h){if(B)return;let k=h-u;f||(f=true,P?.());let z=Ie(k);if(z&&!a){a=true,Ie(o*(1+Math.max(0,R.length-1)*V)),d?.(),ye<(E==="infinite"?1/0:E??0)&&(ye++,ve=setTimeout(()=>{u=performance.now(),f=false,a=false,He.clear(),Je(),D=requestAnimationFrame(Pe);},he));return}z||(D=requestAnimationFrame(Pe));}function Le(){cancelAnimationFrame(D),clearTimeout(ve),u=performance.now(),b=0,B=false,f=false,a=false,ye=0,ne=true,$=0,He.clear(),Je(),D=requestAnimationFrame(Pe);}let w=new IntersectionObserver(h=>{h.forEach(k=>{k.isIntersecting&&!(ce&&a)?Le():!k.isIntersecting&&!ce&&!a&&(cancelAnimationFrame(D),clearTimeout(ve),ne=false);});},{root:de??null,threshold:C,rootMargin:A}),M;function oe(){clearTimeout(M),M=setTimeout(()=>{R.forEach((h,k)=>{x[k]=qe(h),h.style.strokeDasharray=`${x[k]}`;});},150);}return window.addEventListener("resize",oe),window.addEventListener("orientationchange",oe),Z>0?setTimeout(()=>w.observe(e),Z):w.observe(e),{destroy(){cancelAnimationFrame(D),clearTimeout(ve),w.disconnect(),window.removeEventListener("resize",oe),window.removeEventListener("orientationchange",oe),clearTimeout(M);},replay(){ye=0,Le();},pause(){B||!ne||(B=true,b=performance.now()-u,cancelAnimationFrame(D));},resume(){B&&(B=false,ne=true,u=performance.now()-b,D=requestAnimationFrame(Pe));},seek(h){let k=Math.min(1,Math.max(0,h));$=k,B=true,b=k*o,u=performance.now()-b,cancelAnimationFrame(D),Ie(b);},getProgress(){return $},refresh(){clearTimeout(M),R.forEach((h,k)=>{x[k]=qe(h),h.style.strokeDasharray=`${x[k]}`;});}}}if(be)return ut(Jt());Et();function Qe(){if(!re||B)return;let o=performance.now(),u=ct();if(!Ne&&N===false&&u===ht){D=requestAnimationFrame(Qe);return}Ne=false,ht=u;let b=m;if(N!==false){let w=o-bt,M=w>0?Math.abs(u-(Xe<0?u:Xe))/w:0;b=m*Math.max(.2,1+M*(typeof N=="number"?N:1)*.04);}Xe=u,bt=o;let ne=ie?Ae===-1||u>=Ae?"forward":"reverse":S;Ae=u;let Ie=Me-te,Pe=true,Le=Ie===0?0:(u-te)/Ie;if(isNaN(Ve)||(Ve<=0&&Le>0?g?.():Ve>0&&Le<=0&&xe?.(),Ve<1&&Le>=1?O?.():Ve>=1&&Le<1&&ae?.()),Ve=Le,le){let w=we(se(u,te,Me,b));ce&&!ie&&(L=Math.max(L,w),w=L),$=w,e.style.setProperty("--scroll-draw-progress",String(w));let M=ne==="reverse"?1-w:w;e.style.clipPath=ke(M),U?.(w),!f&&se(u,te,Me,b)>0&&(f=true,P?.()),w>=1&&!a?(a=true,d?.(),ye<(E==="infinite"?1/0:E??0)&&(ye++,ve=setTimeout(()=>{L=-1,f=false,a=false,e.style.clipPath=ke(0);},he))):w<1&&!ce&&(a=false),D=requestAnimationFrame(Qe);return}if(R.forEach((w,M)=>{let oe=M*V*Ie,h=we(se(u,te+oe,Me+oe,b));ce&&!ie&&(h=J[M]=Math.max(J[M]??L,h)),w.style.strokeDashoffset=ne==="reverse"?`${x[M]*h}`:`${x[M]*(1-h)}`,c&&(w.style.opacity=ne==="reverse"?`${1-h}`:`${h}`),ge&&K?w.style.stroke=We(ge,K,h):K&&(w.style.stroke=K),q!==null&&Y!==null?w.style.strokeWidth=`${q+(Y-q)*h}`:Y!==null&&(w.style.strokeWidth=`${Y}`),X!==null&&W!==null?w.style.fillOpacity=`${X+(W-X)*h}`:W!==null&&(w.style.fillOpacity=`${W}`),_&&w.tagName.toLowerCase()==="path"&&ee[M]&&w.setAttribute("d",pt(ee[M],_,h)),M===0&&($=h,U?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Pe=false);}),T){let w=we(se(u,te,Me,b));for(let M in T){let oe=parseFloat(M);w>=oe&&!He.has(oe)&&(He.add(oe),T[M]?.());}}!f&&se(u,te,Me,b)>0&&(f=true,P?.()),Pe&&!a?(a=true,d?.(),ye<(E==="infinite"?1/0:E??0)&&(ye++,ve=setTimeout(()=>{L=-1,J=[],f=false,a=false,He.clear(),Je(),Ne=true;},he))):!Pe&&!ce&&(a=false),D=requestAnimationFrame(Qe);}let mt=false;function Ze(){mt||(mt=true,D=requestAnimationFrame(function(){Qe();}));}function Ke(){mt=false,cancelAnimationFrame(D);}let ft=new IntersectionObserver(o=>{o.forEach(u=>{re=u.isIntersecting,re&&!B?(Ne=true,Ze()):Ke();});},{root:de??null,threshold:C,rootMargin:A});function Tt(){R.forEach((o,u)=>{x[u]=qe(o),o.style.strokeDasharray=`${x[u]}`;}),Et(),Ne=true;}let et;function Be(){clearTimeout(et),et=setTimeout(Tt,150);}window.addEventListener("resize",Be),window.addEventListener("orientationchange",Be);let Qt=_e([e],Be);return Z>0?setTimeout(()=>ft.observe(e),Z):ft.observe(e),ut({destroy(){cancelAnimationFrame(D),clearTimeout(ve),Ke(),ft.disconnect(),Qt(),window.removeEventListener("resize",Be),window.removeEventListener("orientationchange",Be),clearTimeout(et),yt();},replay(){L=-1,J=[],Ae=-1,Xe=-1,f=false,a=false,ye=0,B=false,$=0,He.clear(),clearTimeout(ve),Je(),Ne=true,re&&Ze();},pause(){B=true,Ke();},resume(){B&&(B=false,Ne=true,re&&Ze());},seek(o){let u=Math.min(1,Math.max(0,o));$=u,L=u,J=[],B=true,Ke(),Ut(u,S),Ne=true;},getProgress(){return $},refresh(){clearTimeout(et),Tt(),re&&!B&&Ze();}},()=>({tStart:te,tEnd:Me}))}function ur(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Ht(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let m of l.split(/[\s,]+/)){let c=m.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(c?parseFloat(c[1]):0),i.push(c?c[2]:"");}r.push({fn:t[1],nums:s,units:i});}return r}function mr(e,r,n){let t=Ht(e),s=Ht(r);return t.length===0||t.length!==s.length?n<1?e:r:t.map((i,l)=>{let m=s[l];return i.fn!==m.fn||i.nums.length!==m.nums.length?n<1?`${i.fn}(${i.nums.map((c,p)=>`${c}${i.units[p]}`).join(", ")})`:`${m.fn}(${m.nums.map((c,p)=>`${c}${m.units[p]}`).join(", ")})`:`${i.fn}(${i.nums.map((c,p)=>`${c+(m.nums[p]-c)*n}${i.units[p]}`).join(", ")})`}).join(" ")}function Nt(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),s=String(r);if(ur(t))return We(t,s,n);if(t.includes("("))return mr(t,s,n);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let m=parseFloat(i[1]),c=parseFloat(l[1]);return `${m+(c-m)*n}${i[2]||l[2]}`}return n<1?t:s}function fr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var pr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),dr=0,_t="--scroll-draw-progress";function gr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function zt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:m=false,axis:c="y",scrollContainer:p,native:v=true,velocityScale:V=false,respectReducedMotion:S=true,triggerElement:ce,onProgress:Fe,onComplete:j,onEnter:ue,onLeave:ie,onEnterBack:Z,onLeaveBack:F}=r,I=S&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,H=typeof i=="function"?i:pe[i]??pe["ease-out"],T=Se(s.start??"top bottom"),N=Se(s.end??"bottom top"),C=ce??e,A=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([a,f])=>({prop:fr(a),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function he(){let a=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=a.getPropertyValue(f.prop).trim()||"0");}function _(){for(let a of E)e.style.setProperty(a.prop,String(a.to));}let me=new Map;for(let a of [...E.map(f=>f.prop),_t])me.set(a,e.style.getPropertyValue(a));function be(){for(let[a,f]of me)f?e.style.setProperty(a,f):e.style.removeProperty(a);}if(I)return _(),j?.(),{...n,destroy:be,getProgress:()=>1};he();let Te=typeof i=="string"?rt(i):null;function $e(){if(!v||!gr()||!Te||c!=="y"||A||C!==e||m||l!==1||Fe||j||ue||ie||Z||F||V!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let a of E)if(!pr.has(a.prop))return false;return true}function U(){let a=`ssd-a-${++dr}`,f=E.map($=>`${$.prop}:${$.from}`).join(";"),D=E.map($=>`${$.prop}:${$.to}`).join(";"),re=document.createElement("style");re.setAttribute("data-ssd-animate",""),re.textContent=`@keyframes ${a}{from{${f}}to{${D}}}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${Te};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(re),e.classList.add(a);let L=()=>c==="x"?window.scrollX:window.scrollY,J=()=>c==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let $=e.getBoundingClientRect();return De({top:$.top,height:$.height},L(),J(),T,N)};Oe(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:Ae});let B={refresh(){},destroy(){e.classList.remove(a),re.remove(),e.style.animationPlayState="",be(),Re(e);},replay(){e.classList.remove(a),e.offsetWidth,e.classList.add(a);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek($){let ye=Math.min(1,Math.max(0,$));e.classList.remove(a);for(let ve of E)e.style.setProperty(ve.prop,Nt(ve.from,ve.to,ye));},getProgress(){let{tStart:$,tEnd:ye}=Ae();return H(se(L(),$,ye,l))}};return B}if($e())return U();let P=0,d=0,g=0,O=false,ae=false,xe=-1,le=0,we=false,Ce=NaN,ze=-1,de=0,ge=()=>A?c==="x"?A.scrollLeft:A.scrollTop:c==="x"?window.scrollX:window.scrollY,K=()=>A?c==="x"?A.clientWidth:A.clientHeight:c==="x"?window.innerWidth:window.innerHeight,q=C===e?E:[],Y=false;function X(){let a=e.style,f=q.map(J=>a.getPropertyValue(J.prop)),D=a.transition;q.length&&(a.transition="none"),q.forEach(J=>a.setProperty(J.prop,me.get(J.prop)??""));let re=tt(C,A,c);q.forEach((J,Ae)=>a.setProperty(J.prop,f[Ae])),q.length&&(e.offsetWidth,a.transition=D);let L=De(re,re.scroll,K(),T,N);Y&&Math.abs(L.tStart-P)<1&&Math.abs(L.tEnd-d)<1||(Y=true,P=L.tStart,d=L.tEnd);}function W(a){e.style.setProperty(_t,String(a));for(let f of E)e.style.setProperty(f.prop,Nt(f.from,f.to,a));Fe?.(a);}function ke(a){if(isNaN(Ce)){Ce=a;return}Ce<=0&&a>0?ue?.():Ce>0&&a<=0&&F?.(),Ce<1&&a>=1?ie?.():Ce>=1&&a<1&&Z?.(),Ce=a;}function R(){if(!O||ae)return;let a=performance.now(),f=ge(),D=l;if(V!==false){let J=a-de,Ae=J>0?Math.abs(f-(ze<0?f:ze))/J:0;D=l*Math.max(.2,1+Ae*(typeof V=="number"?V:1)*.04);}ze=f,de=a;let re=d===P?0:(f-P)/(d-P);ke(re);let L=H(se(f,P,d,D));m&&(xe=Math.max(xe,L),L=xe),le=L,W(L),L>=1&&!we?(we=true,j?.()):L<1&&!m&&(we=false),g=requestAnimationFrame(R);}X(),d===P&&Q("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 a=H(se(ge(),P,d,l));m&&a>0&&(xe=a),le=a,W(a);}let x=new IntersectionObserver(a=>{a.forEach(f=>{O=f.isIntersecting,O&&!ae?g=requestAnimationFrame(R):cancelAnimationFrame(g);});},{root:A??null}),ee;function te(){clearTimeout(ee),ee=setTimeout(X,150);}window.addEventListener("resize",te),window.addEventListener("orientationchange",te);let Me=_e([C],te);return x.observe(e),Oe(e,{type:"animate",getProgress:()=>le,getTrigger:()=>({tStart:P,tEnd:d})}),{destroy(){cancelAnimationFrame(g),x.disconnect(),window.removeEventListener("resize",te),window.removeEventListener("orientationchange",te),Me(),clearTimeout(ee),be(),Re(e);},replay(){xe=-1,we=false,le=0,ae=false,W(0);},pause(){ae=true,cancelAnimationFrame(g);},resume(){ae&&(ae=false,O&&(g=requestAnimationFrame(R)));},seek(a){let f=Math.min(1,Math.max(0,a));le=f,xe=f,ae=true,cancelAnimationFrame(g),W(f);},getProgress(){return le},refresh(){X();}}}var dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Vt(e,r){if(typeof window>"u")return dt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return Q("scrollCounter: element not found:",e),dt;let t=n,{from:s=0,to:i,format:l,easing:m="ease-out",trigger:c={},once:p=true,decimals:v,onComplete:V}=r,S=v!==void 0?d=>d.toFixed(v):l??(d=>String(Math.round(d))),ce=typeof m=="function"?m:pe[m]??pe["ease-out"],Fe=Se(c.start??"top 80%"),j=Se(c.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=S(i),V?.(),dt;let ie=0,Z=0,F=false,I=0,H=false,T=false,N=-1,C=0,A=false,E=()=>window.scrollY,he=()=>window.innerHeight;function _(){let d=t.getBoundingClientRect(),g=De({top:d.top,height:d.height},E(),he(),Fe,j);F&&Math.abs(g.tStart-ie)<1&&Math.abs(g.tEnd-Z)<1||(F=true,ie=g.tStart,Z=g.tEnd);}function me(d){t.textContent=S(s+(i-s)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function be(){if(!H||T)return;let d=ce(se(E(),ie,Z,1));p&&(N=Math.max(N,d),d=N),C=d,me(d),d>=1&&!A?(A=true,V?.()):d<1&&!p&&(A=false),I=requestAnimationFrame(be);}_();{let d=ce(se(E(),ie,Z,1));p&&d>0&&(N=d),C=d,me(d);}let Te=new IntersectionObserver(d=>{d.forEach(g=>{H=g.isIntersecting,H&&!T?I=requestAnimationFrame(be):cancelAnimationFrame(I);});}),$e;function U(){clearTimeout($e),$e=setTimeout(_,150);}window.addEventListener("resize",U),window.addEventListener("orientationchange",U);let P=_e([t],U);return Te.observe(t),Oe(t,{type:"counter",getProgress:()=>C,getTrigger:()=>({tStart:ie,tEnd:Z})}),{destroy(){cancelAnimationFrame(I),Te.disconnect(),window.removeEventListener("resize",U),window.removeEventListener("orientationchange",U),P(),clearTimeout($e),Re(t);},replay(){N=-1,A=false,C=0,T=false,me(0);},pause(){T=true,cancelAnimationFrame(I);},resume(){T&&(T=false,H&&(I=requestAnimationFrame(be)));},seek(d){let g=Math.min(1,Math.max(0,d));C=g,N=g,T=true,cancelAnimationFrame(I),me(g);},getProgress(){return C}}}function Bt(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 yr(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 qt(e){let r=Bt(e),n=new Map;for(let i of r){let l=i.offsetTop;n.has(l)||n.set(l,[]),n.get(l).push(i);}let t=[],s=Array.from(n.keys()).sort((i,l)=>i-l);for(let i of s){let l=n.get(i),m=document.createElement("span");m.setAttribute("aria-hidden","true"),m.style.display="inline-block",l.forEach((c,p)=>{let v=c.nextElementSibling;m.appendChild(c),p<l.length-1&&v&&v.style.whiteSpace==="pre"&&m.appendChild(v);}),t.push(m);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function hr(e,r,n,t){if(n<=1||t===0)return e;let s=(n-1)*t,i=r*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function br(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 Wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Gt(e,r={}){if(typeof window>"u")return Wt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return Q("scrollText: element not found:",e),Wt;let t=n,{split:s="words",stagger:i=.04,easing:l="ease-out",from:m={opacity:0,y:24},trigger:c={},once:p=true,onComplete:v}=r,V=window.matchMedia("(prefers-reduced-motion: reduce)").matches,S=typeof l=="function"?l:pe[l]??pe["ease-out"],ce=Se(c.start??"top 85%"),Fe=Se(c.end??"top 40%"),j=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ue;s==="chars"?ue=yr(t):s==="lines"?ue=qt(t):ue=Bt(t);let ie=ue.length;function Z(g,O){m?.opacity!==void 0&&(g.style.opacity=String(m.opacity+(1-m.opacity)*O));let ae=br(O,m);ae&&(g.style.transform=ae);}function F(g){t.style.setProperty("--scroll-draw-progress",String(g)),ue.forEach((O,ae)=>{let xe=S(hr(g,ae,ie,i));Z(O,xe);});}if(V)return F(1),v?.(),{destroy(){t.innerHTML=j,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};F(0);let I=0,H=0,T=0,N=false,C=false,A=-1,E=0,he=false,_=()=>window.scrollY,me=()=>window.innerHeight;function be(){let g=t.getBoundingClientRect(),O=De({top:g.top,height:g.height},_(),me(),ce,Fe);I=O.tStart,H=O.tEnd;}function Te(){if(!N||C)return;let g=se(_(),I,H,1);p&&(A=Math.max(A,g),g=A),E=g,F(g),g>=1&&!he?(he=true,v?.()):g<1&&!p&&(he=false),T=requestAnimationFrame(Te);}be();let $e=new IntersectionObserver(g=>{g.forEach(O=>{N=O.isIntersecting,N&&!C?T=requestAnimationFrame(Te):cancelAnimationFrame(T);});}),U;function P(){clearTimeout(U),U=setTimeout(()=>{if(s==="lines"){let g=E;t.innerHTML=j,t.setAttribute("aria-label",t.textContent??""),ue=qt(t),F(g);}be();},150);}window.addEventListener("resize",P),window.addEventListener("orientationchange",P);let d=_e([t],P);return $e.observe(t),Oe(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:I,tEnd:H})}),{destroy(){cancelAnimationFrame(T),$e.disconnect(),window.removeEventListener("resize",P),window.removeEventListener("orientationchange",P),d(),clearTimeout(U),t.innerHTML=j,t.removeAttribute("aria-label"),Re(t);},replay(){A=-1,he=false,E=0,C=false,F(0);},pause(){C=true,cancelAnimationFrame(T);},resume(){C&&(C=false,N&&(T=requestAnimationFrame(Te)));},seek(g){let O=Math.min(1,Math.max(0,g));E=O,A=O,C=true,cancelAnimationFrame(T),F(O);},getProgress(){return E}}}function wr(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let t=typeof e=="string"?document.querySelector(e):e;return t?st(t,r):(Q("Container not found:",e),n)}function Ye(){return typeof document>"u"?null:document}var gt=new WeakMap,jt;function it(e,r,n,t){let s=gt.get(e)??new Map;gt.set(e,s);let i=()=>{let c=n(),p=s.get(r);p&&p.key===c||(p?.inst.destroy(),s.set(r,{inst:t(c),key:c,build:i,users:p?.users??0}));};i(),s.get(r).users++;let l=true;typeof MutationObserver<"u"&&(jt??(jt=new MutationObserver(c=>c.forEach(p=>gt.get(p.target)?.forEach(v=>v.build())))),jt.observe(e,{attributes:true,attributeFilter:["draw","animate","counter","text"].map(c=>`data-scroll-${c}-options`).concat("data-scroll-drawoptions")}));let m=()=>s.get(r)?.inst;return {destroy:()=>{let c=s.get(r);!l||!c||(l=false,!(--c.users>0)&&(c.inst.destroy(),s.delete(r)));},replay:()=>m()?.replay(),pause:()=>m()?.pause(),resume:()=>m()?.resume(),seek:c=>m()?.seek(c),getProgress:()=>m()?.getProgress()??0,refresh:()=>m()?.refresh?.()}}function at(e,r){try{return e?JSON.parse(e):r}catch{return r}}function vr(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-draw]")).map(r=>it(r,"draw",()=>r.dataset.scrollDrawOptions??r.dataset.scrollDrawoptions??"",n=>st(r,at(n,{})))):[]}function Er(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-animate]")).map(r=>it(r,"animate",()=>r.dataset.scrollAnimateOptions??"",n=>zt(r,at(n,{props:{}})))):[]}function Sr(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-counter]")).map(r=>it(r,"counter",()=>r.dataset.scrollCounterOptions??"",n=>{let t=at(n,{});return !t.to&&t.to!==0&&(Q('initScrollCounter: element missing "to" in options JSON:',r),t.to=0),typeof t.format!="function"&&t.format!==void 0&&(Q('initScrollCounter: "format" must be a function, so it cannot come from JSON; use "decimals":',r),delete t.format),Vt(r,t)})):[]}function Tr(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-text]")).map(r=>it(r,"text",()=>r.dataset.scrollTextOptions??"",n=>Gt(r,at(n,{})))):[]}function xn(e=Ye()){return {draw:vr(e),animate:Er(e),counter:Sr(e),text:Tr(e)}}exports.initAll=xn;exports.initScrollAnimate=Er;exports.initScrollCounter=Sr;exports.initScrollDraw=vr;exports.initScrollText=Tr;exports.scrollDraw=wr;
3
+ <div style="position:absolute;${c?`left:${m}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${m}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",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var _t=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,zt=/[MmLlHhVvCcSsQqTtAaZz]/g;function dr(e,r,n){if(!Ye)return;let t=(e.match(zt)??[]).join("").toUpperCase(),s=(r.match(zt)??[]).join("").toUpperCase(),i=(e.match(_t)??[]).length,l=(r.match(_t)??[]).length;if(t!==s){ee(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}i!==l&&ee(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function gt(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),m=t[s++]??l;return String(+(l+(m-l)*n).toFixed(4))})}function lt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,s=n?{...kt[n],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:m=1,fade:c=false,easing:f="linear",trigger:v={},stagger:$=0,direction:T="forward",once:ue=false,debug:He=false,axis:U="y",scrollContainer:me,autoReverse:ie=false,delay:te=0,strokeColor:H,strokeWidth:O,fillOpacity:N,waypoints:x,velocityScale:_=false,threshold:C=0,rootMargin:L="0px",repeat:E=0,repeatDelay:we=0,morphTo:z,clip:fe,autoplay:ve=false,duration:Me=1e3,native:$e=true,onProgress:J,onStart:P,onComplete:p,onEnter:d,onLeave:R,onEnterBack:ae,onLeaveBack:Ae}=s,le=fe===true?"left":typeof fe=="string"?fe:false,Ee=typeof f=="function"?f:he[f]??he.linear,Ce=xe(v.start??"top bottom"),We=xe(v.end??"bottom top"),pe=typeof me=="string"?document.querySelector(me):me??null,be=Array.isArray(H)?H[0]:null,re=Array.isArray(H)?H[1]:typeof H=="string"?H:null,q=Array.isArray(O)?O[0]:null,Q=Array.isArray(O)?O[1]:typeof O=="number"?O:null,Z=Array.isArray(N)?N[0]:null,B=Array.isArray(N)?N[1]:typeof N=="number"?N:null;function ke(o){let a=o*100;switch(le){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(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let D=le?[]:Array.from(e.querySelectorAll(l)),M=[],ne=[],Y=0,de=0,u=$,h=0,k=false,F=false,S=0,X=false,ce=-1,Ie=[],K=-1,V=false,ge=0,Oe=0,Ne,mt=null;function bt(){mt?.destroy(),mt=null;}let _e=new Set,wt=NaN,ze=true,Ze=-1,vt=performance.now(),qe=NaN;function Ke(){return pe?U==="x"?pe.scrollLeft:pe.scrollTop:U==="x"?window.scrollX:window.scrollY}function Et(){return pe?U==="x"?pe.clientWidth:pe.clientHeight:U==="x"?window.innerWidth:window.innerHeight}function St(){let o=ot(e,pe,U);return De(o,o.scroll,Et(),Ce,We)}function Qt(){let o=de-Y,a=D.length-1,y=pe??document.documentElement,G=U==="x"?"Width":"Height";if(u=$,$>0&&a>0&&o>0){let Se=y[`scroll${G}`]-y[`client${G}`]-1-Y-o/m;Se>=0&&(u=Math.min($,Se/(a*o)));}h=de+a*u*o;}function Tt(){(({tStart:Y,tEnd:de}=St())),Qt(),He&&Ye&&(bt(),mt=pr(Y,de,U));}function ft(o,a=St){Re(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:a});let y=o.destroy;return o.destroy=()=>{y.call(o),Fe(e);},o}function Zt(o,a){if(e.style.setProperty("--scroll-draw-progress",String(o)),le){let y=a==="reverse"?1-o:o;e.style.clipPath=ke(y);return}D.forEach((y,G)=>{y.style.strokeDashoffset=a==="reverse"?`${M[G]*o}`:`${M[G]*(1-o)}`,c&&(y.style.opacity=a==="reverse"?`${1-o}`:`${o}`),be&&re?y.style.stroke=je(be,re,o):re&&(y.style.stroke=re),q!==null&&Q!==null?y.style.strokeWidth=`${q+(Q-q)*o}`:Q!==null&&(y.style.strokeWidth=`${Q}`),Z!==null&&B!==null?y.style.fillOpacity=`${Z+(B-Z)*o}`:B!==null&&(y.style.fillOpacity=`${B}`),z&&y.tagName.toLowerCase()==="path"&&ne[G]&&y.setAttribute("d",gt(ne[G],z,o));});}function et(){if(e.style.setProperty("--scroll-draw-progress","0"),le){e.style.clipPath=ke(0);return}D.forEach((o,a)=>{o.style.strokeDasharray=`${M[a]}`,o.style.strokeDashoffset=T==="reverse"?"0":`${M[a]}`,c?o.style.opacity=T==="reverse"?"1":"0":o.style.opacity="",be&&(o.style.stroke=be),q!==null&&(o.style.strokeWidth=`${q}`),Z!==null&&(o.style.fillOpacity=`${Z}`),z&&o.tagName.toLowerCase()==="path"&&ne[a]&&o.setAttribute("d",ne[a]);});}if(D.forEach(o=>{fr(o);let a=Ge(o);M.push(a);let y=o.tagName.toLowerCase()==="path";y?ne.push(o.getAttribute("d")??""):ne.push(""),z&&(y?dr(ne[ne.length-1],z,o):ee(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=T==="reverse"?`${a}`:"0",c&&(o.style.opacity="1"),re&&(o.style.stroke=re),Q!==null&&(o.style.strokeWidth=`${Q}`),B!==null&&(o.style.fillOpacity=`${B}`),z&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",z)):(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=T==="reverse"?"0":`${a}`,c?o.style.opacity=T==="reverse"?"1":"0":o.style.opacity="",be&&(o.style.stroke=be),q!==null&&(o.style.strokeWidth=`${q}`),Z!==null&&(o.style.fillOpacity=`${Z}`));}),le){if(i)return e.style.clipPath=ke(1),p?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(i)return p?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let xt=typeof f=="string"?st(f):null;function Kt(){return !($e===false||!mr()||!D.length||!xt||le||U!=="y"||pe||m!==1||$!==0||ue||ie||_!==false||z||x||E||te>0||J||P||p||d||R||ae||Ae||H!=null||O!=null||N!=null||(v.start??"top bottom").trim()!=="top bottom"||(v.end??"bottom top").trim()!=="bottom top")}function er(){let o=++ur,a=`svg-scroll-draw-${o}`,y=`svg-scroll-draw-host-${o}`,G=`--svg-scroll-draw-${o}`,Se=T==="reverse"?"0":"var(--ssd-len)",Pe=T==="reverse"?"var(--ssd-len)":"0",Le=`stroke-dashoffset:${Se};`,w=`stroke-dashoffset:${Pe};`;c&&(Le+=`opacity:${T==="reverse"?1:0};`,w+=`opacity:${T==="reverse"?0:1};`);let A=document.createElement("style");A.setAttribute("data-svg-scroll-draw",""),A.textContent=`@keyframes ${a}{from{${Le}}to{${w}}}.${y}{view-timeline-name:${G};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${xt};animation-fill-mode:both;animation-timeline:${G};animation-range:cover 0% cover 100%;}`,document.head.appendChild(A),e.classList.add(y);function oe(g,j){g.style.setProperty("--ssd-len",String(M[j])),g.style.strokeDasharray=`${M[j]}`,g.style.strokeDashoffset="",g.style.opacity="",g.style.animationPlayState="",g.classList.add(a);}D.forEach(oe);let b=false,I=-1;function W(){if(I>=0)return I;let g=e.getBoundingClientRect(),{tStart:j,tEnd:Te}=De({top:g.top,height:g.height},Ke(),Et(),Ce,We);return Ee(se(Ke(),j,Te,m))}return {destroy(){e.classList.remove(y),D.forEach(g=>{g.classList.remove(a),g.style.removeProperty("--ssd-len"),g.style.animationPlayState="";}),A.remove();},replay(){b=false,I=-1,D.forEach(oe);},pause(){b=true,D.forEach(g=>{g.style.animationPlayState="paused";});},resume(){b&&(b=false,D.forEach(g=>{g.style.animationPlayState="running";}));},seek(g){let j=Math.min(1,Math.max(0,g));I=j,b=true,D.forEach((Te,ye)=>{Te.classList.remove(a),Te.style.strokeDashoffset=T==="reverse"?`${M[ye]*j}`:`${M[ye]*(1-j)}`,c&&(Te.style.opacity=T==="reverse"?`${1-j}`:`${j}`);});},getProgress(){return W()},refresh(){D.forEach((g,j)=>{M[j]=Ge(g),g.style.setProperty("--ssd-len",String(M[j])),g.style.strokeDasharray=`${M[j]}`;});}}}if(Kt())return ft(er());function tr(){let o=Math.max(1,Me),a=0,y=0,G=false;function Se(b){let I=true;if(le){let W=Math.min(1,Math.max(0,b/o)),g=Ee(W);ge=g,e.style.setProperty("--scroll-draw-progress",String(g)),e.style.clipPath=ke(T==="reverse"?1-g:g),J?.(g),W<1&&(I=false);}else D.forEach((W,g)=>{let j=g*$*o,Te=Math.min(1,Math.max(0,(b-j)/o)),ye=Ee(Te);W.style.strokeDashoffset=T==="reverse"?`${M[g]*ye}`:`${M[g]*(1-ye)}`,c&&(W.style.opacity=T==="reverse"?`${1-ye}`:`${ye}`),be&&re?W.style.stroke=je(be,re,ye):re&&(W.style.stroke=re),q!==null&&Q!==null?W.style.strokeWidth=`${q+(Q-q)*ye}`:Q!==null&&(W.style.strokeWidth=`${Q}`),Z!==null&&B!==null?W.style.fillOpacity=`${Z+(B-Z)*ye}`:B!==null&&(W.style.fillOpacity=`${B}`),z&&W.tagName.toLowerCase()==="path"&&ne[g]&&W.setAttribute("d",gt(ne[g],z,ye)),g===0&&(ge=ye,J?.(ye),e.style.setProperty("--scroll-draw-progress",String(ye))),Te<1&&(I=false);});if(x){let W=Math.min(1,Math.max(0,b/o)),g=Ee(W);for(let j in x){let Te=parseFloat(j);g>=Te&&!_e.has(Te)&&(_e.add(Te),x[j]?.());}}return I}function Pe(b){if(V)return;let I=b-a;F||(F=true,P?.());let W=Se(I);if(W&&!k){k=true,Se(o*(1+Math.max(0,D.length-1)*$)),p?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Ne=setTimeout(()=>{a=performance.now(),F=false,k=false,_e.clear(),et(),S=requestAnimationFrame(Pe);},we));return}W||(S=requestAnimationFrame(Pe));}function Le(){cancelAnimationFrame(S),clearTimeout(Ne),a=performance.now(),y=0,V=false,F=false,k=false,Oe=0,G=true,ge=0,_e.clear(),et(),S=requestAnimationFrame(Pe);}let w=new IntersectionObserver(b=>{b.forEach(I=>{I.isIntersecting&&!(ue&&k)?Le():!I.isIntersecting&&!ue&&!k&&(cancelAnimationFrame(S),clearTimeout(Ne),G=false);});},{root:pe??null,threshold:C,rootMargin:L}),A;function oe(){clearTimeout(A),A=setTimeout(()=>{D.forEach((b,I)=>{M[I]=Ge(b),b.style.strokeDasharray=`${M[I]}`;});},150);}return window.addEventListener("resize",oe),window.addEventListener("orientationchange",oe),te>0?setTimeout(()=>w.observe(e),te):w.observe(e),{destroy(){cancelAnimationFrame(S),clearTimeout(Ne),w.disconnect(),window.removeEventListener("resize",oe),window.removeEventListener("orientationchange",oe),clearTimeout(A);},replay(){Oe=0,Le();},pause(){V||!G||(V=true,y=performance.now()-a,cancelAnimationFrame(S));},resume(){V&&(V=false,G=true,a=performance.now()-y,S=requestAnimationFrame(Pe));},seek(b){let I=Math.min(1,Math.max(0,b));ge=I,V=true,y=I*o,a=performance.now()-y,cancelAnimationFrame(S),Se(y);},getProgress(){return ge},refresh(){clearTimeout(A),D.forEach((b,I)=>{M[I]=Ge(b),b.style.strokeDasharray=`${M[I]}`;});}}}if(ve)return ft(tr());Tt();function Mt(){if(V||!Be)return;let o=performance.now(),a=Ke();if(!ze&&_===false&&a===wt){pt(a);return}ze=false,wt=a;let y=m;if(_!==false){let w=o-vt,A=w>0?Math.abs(a-(Ze<0?a:Ze))/w:0;y=m*Math.max(.2,1+A*(typeof _=="number"?_:1)*.04);}Ze=a,vt=o;let G=ie?K===-1||a>=K?"forward":"reverse":T;K=a;let Se=de-Y,Pe=true,Le=Se===0?0:(a-Y)/Se;if(isNaN(qe)||(qe<=0&&Le>0?d?.():qe>0&&Le<=0&&Ae?.(),qe<1&&Le>=1?R?.():qe>=1&&Le<1&&ae?.()),qe=Le,le){let w=Ee(se(a,Y,de,y));ue&&!ie&&(ce=Math.max(ce,w),w=ce),ge=w,e.style.setProperty("--scroll-draw-progress",String(w));let A=G==="reverse"?1-w:w;e.style.clipPath=ke(A),J?.(w),!F&&se(a,Y,de,y)>0&&(F=true,P?.()),w>=1&&!k?(k=true,p?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Ne=setTimeout(()=>{ce=-1,F=false,k=false,e.style.clipPath=ke(0);},we))):w<1&&!ue&&(k=false),pt(a);return}if(D.forEach((w,A)=>{let oe=A*u*Se,b=Ee(se(a,Y+oe,de+oe,y));ue&&!ie&&(b=Ie[A]=Math.max(Ie[A]??ce,b)),w.style.strokeDashoffset=G==="reverse"?`${M[A]*b}`:`${M[A]*(1-b)}`,c&&(w.style.opacity=G==="reverse"?`${1-b}`:`${b}`),be&&re?w.style.stroke=je(be,re,b):re&&(w.style.stroke=re),q!==null&&Q!==null?w.style.strokeWidth=`${q+(Q-q)*b}`:Q!==null&&(w.style.strokeWidth=`${Q}`),Z!==null&&B!==null?w.style.fillOpacity=`${Z+(B-Z)*b}`:B!==null&&(w.style.fillOpacity=`${B}`),z&&w.tagName.toLowerCase()==="path"&&ne[A]&&w.setAttribute("d",gt(ne[A],z,b)),A===0&&(ge=b,J?.(b),e.style.setProperty("--scroll-draw-progress",String(b))),b<1&&(Pe=false);}),x){let w=Ee(se(a,Y,de,y));for(let A in x){let oe=parseFloat(A);w>=oe&&!_e.has(oe)&&(_e.add(oe),x[A]?.());}}!F&&se(a,Y,de,y)>0&&(F=true,P?.()),Pe&&!k?(k=true,p?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Ne=setTimeout(()=>{ce=-1,Ie=[],F=false,k=false,_e.clear(),et(),ze=true;},we))):!Pe&&!ue&&(k=false),pt(a);}function At(o){return o>=de&&o<h}function pt(o){X||At(o)?S=requestAnimationFrame(Mt):Be=false;}let Be=false;function tt(){Be||(Be=true,S=requestAnimationFrame(function(){Mt();}));}function rt(){Be=false,cancelAnimationFrame(S);}let dt=new IntersectionObserver(o=>{o.forEach(a=>{X=a.isIntersecting,X&&!V?(ze=true,tt()):Be&&!V&&At(Ke())||rt();});},{root:pe??null,threshold:C,rootMargin:L});function Lt(){D.forEach((o,a)=>{M[a]=Ge(o),o.style.strokeDasharray=`${M[a]}`;}),Tt(),ze=true;}let nt;function Ue(){clearTimeout(nt),nt=setTimeout(Lt,150);}window.addEventListener("resize",Ue),window.addEventListener("orientationchange",Ue);let rr=Ve([e],Ue);return te>0?setTimeout(()=>dt.observe(e),te):dt.observe(e),ft({destroy(){cancelAnimationFrame(S),clearTimeout(Ne),rt(),dt.disconnect(),rr(),window.removeEventListener("resize",Ue),window.removeEventListener("orientationchange",Ue),clearTimeout(nt),bt();},replay(){ce=-1,Ie=[],K=-1,Ze=-1,F=false,k=false,Oe=0,V=false,ge=0,_e.clear(),clearTimeout(Ne),et(),ze=true,X&&tt();},pause(){V=true,rt();},resume(){V&&(V=false,ze=true,X&&tt());},seek(o){let a=Math.min(1,Math.max(0,o));ge=a,ce=a,Ie=[],V=true,rt(),Zt(a,T),ze=true;},getProgress(){return ge},refresh(){clearTimeout(nt),Lt(),X&&!V&&tt();}},()=>({tStart:Y,tEnd:de}))}function gr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Vt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let m of l.split(/[\s,]+/)){let c=m.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(c?parseFloat(c[1]):0),i.push(c?c[2]:"");}r.push({fn:t[1],nums:s,units:i});}return r}function yr(e,r,n){let t=Vt(e),s=Vt(r);return t.length===0||t.length!==s.length?n<1?e:r:t.map((i,l)=>{let m=s[l];return i.fn!==m.fn||i.nums.length!==m.nums.length?n<1?`${i.fn}(${i.nums.map((c,f)=>`${c}${i.units[f]}`).join(", ")})`:`${m.fn}(${m.nums.map((c,f)=>`${c}${m.units[f]}`).join(", ")})`:`${i.fn}(${i.nums.map((c,f)=>`${c+(m.nums[f]-c)*n}${i.units[f]}`).join(", ")})`}).join(" ")}function Wt(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),s=String(r);if(gr(t))return je(t,s,n);if(t.includes("("))return yr(t,s,n);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let m=parseFloat(i[1]),c=parseFloat(l[1]);return `${m+(c-m)*n}${i[2]||l[2]}`}return n<1?t:s}function hr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var br=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),wr=0,qt="--scroll-draw-progress";function vr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Bt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:m=false,axis:c="y",scrollContainer:f,native:v=true,velocityScale:$=false,respectReducedMotion:T=true,triggerElement:ue,onProgress:He,onComplete:U,onEnter:me,onLeave:ie,onEnterBack:te,onLeaveBack:H}=r,O=T&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,N=typeof i=="function"?i:he[i]??he["ease-out"],x=xe(s.start??"top bottom"),_=xe(s.end??"bottom top"),C=ue??e,L=typeof f=="string"?document.querySelector(f):f??null,E=Object.entries(t).map(([u,h])=>({prop:hr(u),from:Array.isArray(h)?h[0]:"",to:Array.isArray(h)?h[1]:h}));function we(){let u=window.getComputedStyle(e);for(let h of E)h.from===""&&(h.from=u.getPropertyValue(h.prop).trim()||"0");}function z(){for(let u of E)e.style.setProperty(u.prop,String(u.to));}let fe=new Map;for(let u of [...E.map(h=>h.prop),qt])fe.set(u,e.style.getPropertyValue(u));function ve(){for(let[u,h]of fe)h?e.style.setProperty(u,h):e.style.removeProperty(u);}if(O)return z(),U?.(),{...n,destroy:ve,getProgress:()=>1};we();let Me=typeof i=="string"?st(i):null;function $e(){if(!v||!vr()||!Me||c!=="y"||L||C!==e||m||l!==1||He||U||me||ie||te||H||$!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let u of E)if(!br.has(u.prop))return false;return true}function J(){let u=`ssd-a-${++wr}`,h=E.map(K=>`${K.prop}:${K.from}`).join(";"),k=E.map(K=>`${K.prop}:${K.to}`).join(";"),F=document.createElement("style");F.setAttribute("data-ssd-animate",""),F.textContent=`@keyframes ${u}{from{${h}}to{${k}}}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${Me};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(u);let S=()=>c==="x"?window.scrollX:window.scrollY,X=()=>c==="x"?window.innerWidth:window.innerHeight,ce=()=>{let K=e.getBoundingClientRect();return De({top:K.top,height:K.height},S(),X(),x,_)};Re(e,{type:"animate",getProgress:()=>Ie.getProgress(),getTrigger:ce});let Ie={refresh(){},destroy(){e.classList.remove(u),F.remove(),e.style.animationPlayState="",ve(),Fe(e);},replay(){e.classList.remove(u),e.offsetWidth,e.classList.add(u);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(K){let V=Math.min(1,Math.max(0,K));e.classList.remove(u);for(let ge of E)e.style.setProperty(ge.prop,Wt(ge.from,ge.to,V));},getProgress(){let{tStart:K,tEnd:V}=ce();return N(se(S(),K,V,l))}};return Ie}if($e())return J();let P=0,p=0,d=0,R=false,ae=false,Ae=-1,le=0,Ee=false,Ce=NaN,We=-1,pe=0,be=()=>L?c==="x"?L.scrollLeft:L.scrollTop:c==="x"?window.scrollX:window.scrollY,re=()=>L?c==="x"?L.clientWidth:L.clientHeight:c==="x"?window.innerWidth:window.innerHeight,q=C===e?E:[],Q=false;function Z(){let u=e.style,h=q.map(X=>u.getPropertyValue(X.prop)),k=u.transition;q.length&&(u.transition="none"),q.forEach(X=>u.setProperty(X.prop,fe.get(X.prop)??""));let F=ot(C,L,c);q.forEach((X,ce)=>u.setProperty(X.prop,h[ce])),q.length&&(e.offsetWidth,u.transition=k);let S=De(F,F.scroll,re(),x,_);Q&&Math.abs(S.tStart-P)<1&&Math.abs(S.tEnd-p)<1||(Q=true,P=S.tStart,p=S.tEnd);}function B(u){e.style.setProperty(qt,String(u));for(let h of E)e.style.setProperty(h.prop,Wt(h.from,h.to,u));He?.(u);}function ke(u){if(isNaN(Ce)){Ce=u;return}Ce<=0&&u>0?me?.():Ce>0&&u<=0&&H?.(),Ce<1&&u>=1?ie?.():Ce>=1&&u<1&&te?.(),Ce=u;}function D(){if(!R||ae)return;let u=performance.now(),h=be(),k=l;if($!==false){let X=u-pe,ce=X>0?Math.abs(h-(We<0?h:We))/X:0;k=l*Math.max(.2,1+ce*(typeof $=="number"?$:1)*.04);}We=h,pe=u;let F=p===P?0:(h-P)/(p-P);ke(F);let S=N(se(h,P,p,k));m&&(Ae=Math.max(Ae,S),S=Ae),le=S,B(S),S>=1&&!Ee?(Ee=true,U?.()):S<1&&!m&&(Ee=false),d=requestAnimationFrame(D);}Z(),p===P&&ee("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 u=N(se(be(),P,p,l));m&&u>0&&(Ae=u),le=u,B(u);}let M=new IntersectionObserver(u=>{u.forEach(h=>{R=h.isIntersecting,R&&!ae?d=requestAnimationFrame(D):cancelAnimationFrame(d);});},{root:L??null}),ne;function Y(){clearTimeout(ne),ne=setTimeout(Z,150);}window.addEventListener("resize",Y),window.addEventListener("orientationchange",Y);let de=Ve([C],Y);return M.observe(e),Re(e,{type:"animate",getProgress:()=>le,getTrigger:()=>({tStart:P,tEnd:p})}),{destroy(){cancelAnimationFrame(d),M.disconnect(),window.removeEventListener("resize",Y),window.removeEventListener("orientationchange",Y),de(),clearTimeout(ne),ve(),Fe(e);},replay(){Ae=-1,Ee=false,le=0,ae=false,B(0);},pause(){ae=true,cancelAnimationFrame(d);},resume(){ae&&(ae=false,R&&(d=requestAnimationFrame(D)));},seek(u){let h=Math.min(1,Math.max(0,u));le=h,Ae=h,ae=true,cancelAnimationFrame(d),B(h);},getProgress(){return le},refresh(){Z();}}}var yt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Gt(e,r){if(typeof window>"u")return yt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return ee("scrollCounter: element not found:",e),yt;let t=n,{from:s=0,to:i,format:l,easing:m="ease-out",trigger:c={},once:f=true,decimals:v,onComplete:$}=r,T=v!==void 0?p=>p.toFixed(v):l??(p=>String(Math.round(p))),ue=typeof m=="function"?m:he[m]??he["ease-out"],He=xe(c.start??"top 80%"),U=xe(c.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=T(i),$?.(),yt;let ie=0,te=0,H=false,O=0,N=false,x=false,_=-1,C=0,L=false,E=()=>window.scrollY,we=()=>window.innerHeight;function z(){let p=t.getBoundingClientRect(),d=De({top:p.top,height:p.height},E(),we(),He,U);H&&Math.abs(d.tStart-ie)<1&&Math.abs(d.tEnd-te)<1||(H=true,ie=d.tStart,te=d.tEnd);}function fe(p){t.textContent=T(s+(i-s)*p),t.style.setProperty("--scroll-draw-progress",String(p));}function ve(){if(!N||x)return;let p=ue(se(E(),ie,te,1));f&&(_=Math.max(_,p),p=_),C=p,fe(p),p>=1&&!L?(L=true,$?.()):p<1&&!f&&(L=false),O=requestAnimationFrame(ve);}z();{let p=ue(se(E(),ie,te,1));f&&p>0&&(_=p),C=p,fe(p);}let Me=new IntersectionObserver(p=>{p.forEach(d=>{N=d.isIntersecting,N&&!x?O=requestAnimationFrame(ve):cancelAnimationFrame(O);});}),$e;function J(){clearTimeout($e),$e=setTimeout(z,150);}window.addEventListener("resize",J),window.addEventListener("orientationchange",J);let P=Ve([t],J);return Me.observe(t),Re(t,{type:"counter",getProgress:()=>C,getTrigger:()=>({tStart:ie,tEnd:te})}),{destroy(){cancelAnimationFrame(O),Me.disconnect(),window.removeEventListener("resize",J),window.removeEventListener("orientationchange",J),P(),clearTimeout($e),Fe(t);},replay(){_=-1,L=false,C=0,x=false,fe(0);},pause(){x=true,cancelAnimationFrame(O);},resume(){x&&(x=false,N&&(O=requestAnimationFrame(ve)));},seek(p){let d=Math.min(1,Math.max(0,p));C=d,_=d,x=true,cancelAnimationFrame(O),fe(d);},getProgress(){return C}}}function Yt(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 Er(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 jt(e){let r=Yt(e),n=new Map;for(let i of r){let l=i.offsetTop;n.has(l)||n.set(l,[]),n.get(l).push(i);}let t=[],s=Array.from(n.keys()).sort((i,l)=>i-l);for(let i of s){let l=n.get(i),m=document.createElement("span");m.setAttribute("aria-hidden","true"),m.style.display="inline-block",l.forEach((c,f)=>{let v=c.nextElementSibling;m.appendChild(c),f<l.length-1&&v&&v.style.whiteSpace==="pre"&&m.appendChild(v);}),t.push(m);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function Sr(e,r,n,t){if(n<=1||t===0)return e;let s=(n-1)*t,i=r*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function Tr(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 Ut={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Xt(e,r={}){if(typeof window>"u")return Ut;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return ee("scrollText: element not found:",e),Ut;let t=n,{split:s="words",stagger:i=.04,easing:l="ease-out",from:m={opacity:0,y:24},trigger:c={},once:f=true,onComplete:v}=r,$=window.matchMedia("(prefers-reduced-motion: reduce)").matches,T=typeof l=="function"?l:he[l]??he["ease-out"],ue=xe(c.start??"top 85%"),He=xe(c.end??"top 40%"),U=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let me;s==="chars"?me=Er(t):s==="lines"?me=jt(t):me=Yt(t);let ie=me.length;function te(d,R){m?.opacity!==void 0&&(d.style.opacity=String(m.opacity+(1-m.opacity)*R));let ae=Tr(R,m);ae&&(d.style.transform=ae);}function H(d){t.style.setProperty("--scroll-draw-progress",String(d)),me.forEach((R,ae)=>{let Ae=T(Sr(d,ae,ie,i));te(R,Ae);});}if($)return H(1),v?.(),{destroy(){t.innerHTML=U,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};H(0);let O=0,N=0,x=0,_=false,C=false,L=-1,E=0,we=false,z=()=>window.scrollY,fe=()=>window.innerHeight;function ve(){let d=t.getBoundingClientRect(),R=De({top:d.top,height:d.height},z(),fe(),ue,He);O=R.tStart,N=R.tEnd;}function Me(){if(!_||C)return;let d=se(z(),O,N,1);f&&(L=Math.max(L,d),d=L),E=d,H(d),d>=1&&!we?(we=true,v?.()):d<1&&!f&&(we=false),x=requestAnimationFrame(Me);}ve();let $e=new IntersectionObserver(d=>{d.forEach(R=>{_=R.isIntersecting,_&&!C?x=requestAnimationFrame(Me):cancelAnimationFrame(x);});}),J;function P(){clearTimeout(J),J=setTimeout(()=>{if(s==="lines"){let d=E;t.innerHTML=U,t.setAttribute("aria-label",t.textContent??""),me=jt(t),H(d);}ve();},150);}window.addEventListener("resize",P),window.addEventListener("orientationchange",P);let p=Ve([t],P);return $e.observe(t),Re(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:O,tEnd:N})}),{destroy(){cancelAnimationFrame(x),$e.disconnect(),window.removeEventListener("resize",P),window.removeEventListener("orientationchange",P),p(),clearTimeout(J),t.innerHTML=U,t.removeAttribute("aria-label"),Fe(t);},replay(){L=-1,we=false,E=0,C=false,H(0);},pause(){C=true,cancelAnimationFrame(x);},resume(){C&&(C=false,_&&(x=requestAnimationFrame(Me)));},seek(d){let R=Math.min(1,Math.max(0,d));E=R,L=R,C=true,cancelAnimationFrame(x),H(R);},getProgress(){return E}}}function xr(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let t=typeof e=="string"?document.querySelector(e):e;return t?lt(t,r):(ee("Container not found:",e),n)}function Qe(){return typeof document>"u"?null:document}var ht=new WeakMap,Jt;function ct(e,r,n,t){let s=ht.get(e)??new Map;ht.set(e,s);let i=()=>{let c=n(),f=s.get(r);f&&f.key===c||(f?.inst.destroy(),s.set(r,{inst:t(c),key:c,build:i,users:f?.users??0}));};i(),s.get(r).users++;let l=true;typeof MutationObserver<"u"&&(Jt??(Jt=new MutationObserver(c=>c.forEach(f=>ht.get(f.target)?.forEach(v=>v.build())))),Jt.observe(e,{attributes:true,attributeFilter:["draw","animate","counter","text"].map(c=>`data-scroll-${c}-options`).concat("data-scroll-drawoptions")}));let m=()=>s.get(r)?.inst;return {destroy:()=>{let c=s.get(r);!l||!c||(l=false,!(--c.users>0)&&(c.inst.destroy(),s.delete(r)));},replay:()=>m()?.replay(),pause:()=>m()?.pause(),resume:()=>m()?.resume(),seek:c=>m()?.seek(c),getProgress:()=>m()?.getProgress()??0,refresh:()=>m()?.refresh?.()}}function ut(e,r){try{return e?JSON.parse(e):r}catch{return r}}function Mr(e=Qe()){return e?Array.from(e.querySelectorAll("[data-scroll-draw]")).map(r=>ct(r,"draw",()=>r.dataset.scrollDrawOptions??r.dataset.scrollDrawoptions??"",n=>lt(r,ut(n,{})))):[]}function Ar(e=Qe()){return e?Array.from(e.querySelectorAll("[data-scroll-animate]")).map(r=>ct(r,"animate",()=>r.dataset.scrollAnimateOptions??"",n=>Bt(r,ut(n,{props:{}})))):[]}function Lr(e=Qe()){return e?Array.from(e.querySelectorAll("[data-scroll-counter]")).map(r=>ct(r,"counter",()=>r.dataset.scrollCounterOptions??"",n=>{let t=ut(n,{});return !t.to&&t.to!==0&&(ee('initScrollCounter: element missing "to" in options JSON:',r),t.to=0),typeof t.format!="function"&&t.format!==void 0&&(ee('initScrollCounter: "format" must be a function, so it cannot come from JSON; use "decimals":',r),delete t.format),Gt(r,t)})):[]}function $r(e=Qe()){return e?Array.from(e.querySelectorAll("[data-scroll-text]")).map(r=>ct(r,"text",()=>r.dataset.scrollTextOptions??"",n=>Xt(r,ut(n,{})))):[]}function Cn(e=Qe()){return {draw:Mr(e),animate:Ar(e),counter:Lr(e),text:$r(e)}}exports.initAll=Cn;exports.initScrollAnimate=Ar;exports.initScrollCounter=Lr;exports.initScrollDraw=Mr;exports.initScrollText=$r;exports.scrollDraw=xr;
@@ -1,6 +1,6 @@
1
- import { S as ScrollDrawInstance } from '../types-B0YM4nQP.mjs';
2
- export { a as ScrollDrawOptions } from '../types-B0YM4nQP.mjs';
3
- export { s as scrollDraw } from '../scroll-draw-B4CadBz0.mjs';
1
+ import { S as ScrollDrawInstance } from '../types-MswK0erX.mjs';
2
+ export { a as ScrollDrawOptions } from '../types-MswK0erX.mjs';
3
+ export { s as scrollDraw } from '../scroll-draw-Dej-GIRP.mjs';
4
4
 
5
5
  /**
6
6
  * Auto-initialises all elements with a [data-scroll-draw] attribute on the page.
@@ -1,6 +1,6 @@
1
- import { S as ScrollDrawInstance } from '../types-B0YM4nQP.js';
2
- export { a as ScrollDrawOptions } from '../types-B0YM4nQP.js';
3
- export { s as scrollDraw } from '../scroll-draw-Cs6Z5ype.js';
1
+ import { S as ScrollDrawInstance } from '../types-MswK0erX.js';
2
+ export { a as ScrollDrawOptions } from '../types-MswK0erX.js';
3
+ export { s as scrollDraw } from '../scroll-draw-DsBMkwrX.js';
4
4
 
5
5
  /**
6
6
  * Auto-initialises all elements with a [data-scroll-draw] attribute on the page.
@@ -1 +1 @@
1
- export{a as scrollDraw}from'../chunk-JPK2NJWO.mjs';import {a as a$2}from'../chunk-I45LCJUP.mjs';import {a as a$1}from'../chunk-KHQ7OGQK.mjs';import {a}from'../chunk-BFX2CSQ3.mjs';import {b}from'../chunk-WHFRS7IP.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import {b as b$1}from'../chunk-LFSU6LR3.mjs';function i(){return typeof document>"u"?null:document}var p=new WeakMap,g;function c(r,t,n,o){let l=p.get(r)??new Map;p.set(r,l);let f=()=>{let e=n(),s=l.get(t);s&&s.key===e||(s?.inst.destroy(),l.set(t,{inst:o(e),key:e,build:f,users:s?.users??0}));};f(),l.get(t).users++;let S=true;typeof MutationObserver<"u"&&(g??(g=new MutationObserver(e=>e.forEach(s=>p.get(s.target)?.forEach(O=>O.build())))),g.observe(r,{attributes:true,attributeFilter:["draw","animate","counter","text"].map(e=>`data-scroll-${e}-options`).concat("data-scroll-drawoptions")}));let a=()=>l.get(t)?.inst;return {destroy:()=>{let e=l.get(t);!S||!e||(S=false,!(--e.users>0)&&(e.inst.destroy(),l.delete(t)));},replay:()=>a()?.replay(),pause:()=>a()?.pause(),resume:()=>a()?.resume(),seek:e=>a()?.seek(e),getProgress:()=>a()?.getProgress()??0,refresh:()=>a()?.refresh?.()}}function u(r,t){try{return r?JSON.parse(r):t}catch{return t}}function E(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-draw]")).map(t=>c(t,"draw",()=>t.dataset.scrollDrawOptions??t.dataset.scrollDrawoptions??"",n=>b(t,u(n,{})))):[]}function A(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-animate]")).map(t=>c(t,"animate",()=>t.dataset.scrollAnimateOptions??"",n=>a(t,u(n,{props:{}})))):[]}function I(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-counter]")).map(t=>c(t,"counter",()=>t.dataset.scrollCounterOptions??"",n=>{let o=u(n,{});return !o.to&&o.to!==0&&(b$1('initScrollCounter: element missing "to" in options JSON:',t),o.to=0),typeof o.format!="function"&&o.format!==void 0&&(b$1('initScrollCounter: "format" must be a function, so it cannot come from JSON; use "decimals":',t),delete o.format),a$1(t,o)})):[]}function M(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-text]")).map(t=>c(t,"text",()=>t.dataset.scrollTextOptions??"",n=>a$2(t,u(n,{})))):[]}function H(r=i()){return {draw:E(r),animate:A(r),counter:I(r),text:M(r)}}export{H as initAll,A as initScrollAnimate,I as initScrollCounter,E as initScrollDraw,M as initScrollText};
1
+ export{a as scrollDraw}from'../chunk-6SSA5V7J.mjs';import {a as a$2}from'../chunk-I45LCJUP.mjs';import {a as a$1}from'../chunk-KHQ7OGQK.mjs';import {a}from'../chunk-BFX2CSQ3.mjs';import {b}from'../chunk-LQBXJRFY.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import {b as b$1}from'../chunk-LFSU6LR3.mjs';function i(){return typeof document>"u"?null:document}var p=new WeakMap,g;function c(r,t,n,o){let l=p.get(r)??new Map;p.set(r,l);let f=()=>{let e=n(),s=l.get(t);s&&s.key===e||(s?.inst.destroy(),l.set(t,{inst:o(e),key:e,build:f,users:s?.users??0}));};f(),l.get(t).users++;let S=true;typeof MutationObserver<"u"&&(g??(g=new MutationObserver(e=>e.forEach(s=>p.get(s.target)?.forEach(O=>O.build())))),g.observe(r,{attributes:true,attributeFilter:["draw","animate","counter","text"].map(e=>`data-scroll-${e}-options`).concat("data-scroll-drawoptions")}));let a=()=>l.get(t)?.inst;return {destroy:()=>{let e=l.get(t);!S||!e||(S=false,!(--e.users>0)&&(e.inst.destroy(),l.delete(t)));},replay:()=>a()?.replay(),pause:()=>a()?.pause(),resume:()=>a()?.resume(),seek:e=>a()?.seek(e),getProgress:()=>a()?.getProgress()??0,refresh:()=>a()?.refresh?.()}}function u(r,t){try{return r?JSON.parse(r):t}catch{return t}}function E(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-draw]")).map(t=>c(t,"draw",()=>t.dataset.scrollDrawOptions??t.dataset.scrollDrawoptions??"",n=>b(t,u(n,{})))):[]}function A(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-animate]")).map(t=>c(t,"animate",()=>t.dataset.scrollAnimateOptions??"",n=>a(t,u(n,{props:{}})))):[]}function I(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-counter]")).map(t=>c(t,"counter",()=>t.dataset.scrollCounterOptions??"",n=>{let o=u(n,{});return !o.to&&o.to!==0&&(b$1('initScrollCounter: element missing "to" in options JSON:',t),o.to=0),typeof o.format!="function"&&o.format!==void 0&&(b$1('initScrollCounter: "format" must be a function, so it cannot come from JSON; use "decimals":',t),delete o.format),a$1(t,o)})):[]}function M(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-text]")).map(t=>c(t,"text",()=>t.dataset.scrollTextOptions??"",n=>a$2(t,u(n,{})))):[]}function H(r=i()){return {draw:E(r),animate:A(r),counter:I(r),text:M(r)}}export{H as initAll,A as initScrollAnimate,I as initScrollCounter,E as initScrollDraw,M as initScrollText};
@@ -524,6 +524,8 @@ var SvgScrollDraw = (() => {
524
524
  const originalDs = [];
525
525
  let tStart = 0;
526
526
  let tEnd = 0;
527
+ let staggerFit = stagger;
528
+ let tLast = 0;
527
529
  let completed = false;
528
530
  let started = false;
529
531
  let rafId = 0;
@@ -558,8 +560,21 @@ var SvgScrollDraw = (() => {
558
560
  const frame = measureTriggerFrame(container, scrollEl, axis);
559
561
  return computeTriggers(frame, frame.scroll, vpSize(), startConfig, endConfig);
560
562
  }
563
+ function fitStagger() {
564
+ const range = tEnd - tStart;
565
+ const gaps = paths.length - 1;
566
+ const s = scrollEl ?? document.documentElement;
567
+ const d = axis === "x" ? "Width" : "Height";
568
+ staggerFit = stagger;
569
+ if (stagger > 0 && gaps > 0 && range > 0) {
570
+ const room = s[`scroll${d}`] - s[`client${d}`] - 1 - tStart - range / speed;
571
+ if (room >= 0) staggerFit = Math.min(stagger, room / (gaps * range));
572
+ }
573
+ tLast = tEnd + gaps * staggerFit * range;
574
+ }
561
575
  function cacheTriggers() {
562
576
  ({ tStart, tEnd } = measureTriggers());
577
+ fitStagger();
563
578
  if (debug && IS_DEV) {
564
579
  destroyDebugOverlay();
565
580
  debugOverlay = createDebugOverlay(tStart, tEnd, axis);
@@ -971,11 +986,11 @@ var SvgScrollDraw = (() => {
971
986
  if (autoplay) return tracked(buildAutoplay());
972
987
  cacheTriggers();
973
988
  function update() {
974
- if (!isVisible || paused) return;
989
+ if (paused || !looping) return;
975
990
  const now = performance.now();
976
991
  const currentScroll = scrollPos();
977
992
  if (!dirty && velocityScale === false && currentScroll === lastAppliedScroll) {
978
- rafId = requestAnimationFrame(update);
993
+ next(currentScroll);
979
994
  return;
980
995
  }
981
996
  dirty = false;
@@ -1032,11 +1047,11 @@ var SvgScrollDraw = (() => {
1032
1047
  } else if (alpha < 1 && !once) {
1033
1048
  completed = false;
1034
1049
  }
1035
- rafId = requestAnimationFrame(update);
1050
+ next(currentScroll);
1036
1051
  return;
1037
1052
  }
1038
1053
  paths.forEach((el, i) => {
1039
- const offset = i * stagger * range;
1054
+ const offset = i * staggerFit * range;
1040
1055
  let alpha = easeFn(computeProgress(currentScroll, tStart + offset, tEnd + offset, effectiveSpeed));
1041
1056
  if (once && !autoReverse) {
1042
1057
  alpha = frozenPath[i] = Math.max(frozenPath[i] ?? frozenAlpha, alpha);
@@ -1095,7 +1110,14 @@ var SvgScrollDraw = (() => {
1095
1110
  } else if (!allComplete && !once) {
1096
1111
  completed = false;
1097
1112
  }
1098
- rafId = requestAnimationFrame(update);
1113
+ next(currentScroll);
1114
+ }
1115
+ function inStaggerTail(scroll) {
1116
+ return scroll >= tEnd && scroll < tLast;
1117
+ }
1118
+ function next(scroll) {
1119
+ if (isVisible || inStaggerTail(scroll)) rafId = requestAnimationFrame(update);
1120
+ else looping = false;
1099
1121
  }
1100
1122
  let looping = false;
1101
1123
  function startLoop() {
@@ -1116,7 +1138,7 @@ var SvgScrollDraw = (() => {
1116
1138
  if (isVisible && !paused) {
1117
1139
  dirty = true;
1118
1140
  startLoop();
1119
- } else {
1141
+ } else if (!(looping && !paused && inStaggerTail(scrollPos()))) {
1120
1142
  stopLoop();
1121
1143
  }
1122
1144
  });