@rtstic.dev/pulse 0.0.19 → 0.0.20

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.
@@ -0,0 +1 @@
1
+ "use strict";(()=>{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll('[data-acc="item"]').forEach(n=>{let a=n.querySelector('[data-acc="toggle"]'),e=n.querySelector('[data-acc="panel"]'),c=n.querySelector('[data-acc="inner"]');if(!a||!e||!c)return;gsap.set(e,{height:0,overflow:"hidden"}),gsap.set(c,{opacity:0}),a.setAttribute("aria-expanded","false");let t=!1;a.addEventListener("click",()=>{if(t)return;t=!0,a.getAttribute("aria-expanded")==="true"?r(n,()=>t=!1):l(n,()=>t=!1)})})});function l(o,n){let a=o.querySelector('[data-acc="toggle"]'),e=o.querySelector('[data-acc="panel"]'),c=o.querySelector('[data-acc="inner"]');if(!a||!e||!c){n?.();return}e.accAnim?.kill();let t=gsap.timeline({onComplete:()=>n?.()});gsap.set(e,{height:"auto",visibility:"hidden"});let i=e.offsetHeight;gsap.set(e,{height:0,visibility:"visible",overflow:"hidden"}),t.to(e,{height:i,duration:.35,ease:"power3.inOut",onComplete:()=>{e.style.height="auto"}}),t.to(c,{opacity:1,duration:.2,ease:"power2.out"},"-=0.15"),e.accAnim=t,a.setAttribute("aria-expanded","true")}function r(o,n){let a=o.querySelector('[data-acc="toggle"]'),e=o.querySelector('[data-acc="panel"]'),c=o.querySelector('[data-acc="inner"]');if(!a||!e||!c){n?.();return}e.accAnim?.kill();let t=gsap.timeline({onComplete:()=>n?.()});t.to(c,{opacity:0,duration:.15,ease:"power2.in"}),t.to(e,{height:0,duration:.25,ease:"power3.inOut"},"-=0.05"),e.accAnim=t,a.setAttribute("aria-expanded","false")}})();
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/global/faqs.ts"],
4
+ "sourcesContent": ["// \u2705 Simple GSAP Accordion (open/close only)\n// Attribute names used in HTML:\n// - data-acc=\"item\" (wrapper)\n// - data-acc=\"toggle\" (click target)\n// - data-acc=\"panel\" (height animates)\n// - data-acc=\"inner\" (opacity animates)\n\ninterface AccordionPanel extends HTMLElement {\n accAnim?: { kill(): void };\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const items = document.querySelectorAll<HTMLElement>('[data-acc=\"item\"]');\n\n items.forEach((item) => {\n const toggle = item.querySelector<HTMLElement>('[data-acc=\"toggle\"]');\n const panel = item.querySelector<AccordionPanel>('[data-acc=\"panel\"]');\n const inner = item.querySelector<HTMLElement>('[data-acc=\"inner\"]');\n\n if (!toggle || !panel || !inner) return;\n\n // initial: closed\n gsap.set(panel, { height: 0, overflow: \"hidden\" });\n gsap.set(inner, { opacity: 0 });\n toggle.setAttribute(\"aria-expanded\", \"false\");\n\n let animating = false;\n\n toggle.addEventListener(\"click\", () => {\n if (animating) return;\n animating = true;\n\n const open = toggle.getAttribute(\"aria-expanded\") === \"true\";\n\n if (open) {\n collapseItem(item, () => (animating = false));\n } else {\n expandItem(item, () => (animating = false));\n }\n });\n });\n});\n\nfunction expandItem(item: HTMLElement, done?: () => void): void {\n const toggle = item.querySelector<HTMLElement>('[data-acc=\"toggle\"]');\n const panel = item.querySelector<AccordionPanel>('[data-acc=\"panel\"]');\n const inner = item.querySelector<HTMLElement>('[data-acc=\"inner\"]');\n\n if (!toggle || !panel || !inner) {\n done?.();\n return;\n }\n\n panel.accAnim?.kill();\n\n const tl = gsap.timeline({ onComplete: () => done?.() });\n\n // measure height\n gsap.set(panel, { height: \"auto\", visibility: \"hidden\" });\n const h = panel.offsetHeight;\n gsap.set(panel, { height: 0, visibility: \"visible\", overflow: \"hidden\" });\n\n tl.to(panel, {\n height: h,\n duration: 0.35,\n ease: \"power3.inOut\",\n onComplete: () => {\n panel.style.height = \"auto\";\n },\n });\n\n tl.to(inner, { opacity: 1, duration: 0.2, ease: \"power2.out\" }, \"-=0.15\");\n\n panel.accAnim = tl;\n toggle.setAttribute(\"aria-expanded\", \"true\");\n}\n\nfunction collapseItem(item: HTMLElement, done?: () => void): void {\n const toggle = item.querySelector<HTMLElement>('[data-acc=\"toggle\"]');\n const panel = item.querySelector<AccordionPanel>('[data-acc=\"panel\"]');\n const inner = item.querySelector<HTMLElement>('[data-acc=\"inner\"]');\n\n if (!toggle || !panel || !inner) {\n done?.();\n return;\n }\n\n panel.accAnim?.kill();\n\n const tl = gsap.timeline({ onComplete: () => done?.() });\n\n tl.to(inner, { opacity: 0, duration: 0.15, ease: \"power2.in\" });\n tl.to(panel, { height: 0, duration: 0.25, ease: \"power3.inOut\" }, \"-=0.05\");\n\n panel.accAnim = tl;\n toggle.setAttribute(\"aria-expanded\", \"false\");\n}\n"],
5
+ "mappings": ";;;AAWA,WAAS,iBAAiB,oBAAoB,MAAY;AACxD,UAAM,QAAQ,SAAS,iBAA8B,mBAAmB;AAExE,UAAM,QAAQ,CAAC,SAAS;AACtB,YAAM,SAAS,KAAK,cAA2B,qBAAqB;AACpE,YAAM,QAAQ,KAAK,cAA8B,oBAAoB;AACrE,YAAM,QAAQ,KAAK,cAA2B,oBAAoB;AAElE,UAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAO;AAGjC,WAAK,IAAI,OAAO,EAAE,QAAQ,GAAG,UAAU,SAAS,CAAC;AACjD,WAAK,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;AAC9B,aAAO,aAAa,iBAAiB,OAAO;AAE5C,UAAI,YAAY;AAEhB,aAAO,iBAAiB,SAAS,MAAM;AACrC,YAAI,UAAW;AACf,oBAAY;AAEZ,cAAM,OAAO,OAAO,aAAa,eAAe,MAAM;AAEtD,YAAI,MAAM;AACR,uBAAa,MAAM,MAAO,YAAY,KAAM;AAAA,QAC9C,OAAO;AACL,qBAAW,MAAM,MAAO,YAAY,KAAM;AAAA,QAC5C;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AAED,WAAS,WAAW,MAAmB,MAAyB;AAC9D,UAAM,SAAS,KAAK,cAA2B,qBAAqB;AACpE,UAAM,QAAQ,KAAK,cAA8B,oBAAoB;AACrE,UAAM,QAAQ,KAAK,cAA2B,oBAAoB;AAElE,QAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO;AAC/B,aAAO;AACP;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAEpB,UAAM,KAAK,KAAK,SAAS,EAAE,YAAY,MAAM,OAAO,EAAE,CAAC;AAGvD,SAAK,IAAI,OAAO,EAAE,QAAQ,QAAQ,YAAY,SAAS,CAAC;AACxD,UAAM,IAAI,MAAM;AAChB,SAAK,IAAI,OAAO,EAAE,QAAQ,GAAG,YAAY,WAAW,UAAU,SAAS,CAAC;AAExE,OAAG,GAAG,OAAO;AAAA,MACX,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,MACN,YAAY,MAAM;AAChB,cAAM,MAAM,SAAS;AAAA,MACvB;AAAA,IACF,CAAC;AAED,OAAG,GAAG,OAAO,EAAE,SAAS,GAAG,UAAU,KAAK,MAAM,aAAa,GAAG,QAAQ;AAExE,UAAM,UAAU;AAChB,WAAO,aAAa,iBAAiB,MAAM;AAAA,EAC7C;AAEA,WAAS,aAAa,MAAmB,MAAyB;AAChE,UAAM,SAAS,KAAK,cAA2B,qBAAqB;AACpE,UAAM,QAAQ,KAAK,cAA8B,oBAAoB;AACrE,UAAM,QAAQ,KAAK,cAA2B,oBAAoB;AAElE,QAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO;AAC/B,aAAO;AACP;AAAA,IACF;AAEA,UAAM,SAAS,KAAK;AAEpB,UAAM,KAAK,KAAK,SAAS,EAAE,YAAY,MAAM,OAAO,EAAE,CAAC;AAEvD,OAAG,GAAG,OAAO,EAAE,SAAS,GAAG,UAAU,MAAM,MAAM,YAAY,CAAC;AAC9D,OAAG,GAAG,OAAO,EAAE,QAAQ,GAAG,UAAU,MAAM,MAAM,eAAe,GAAG,QAAQ;AAE1E,UAAM,UAAU;AAChB,WAAO,aAAa,iBAAiB,OAAO;AAAA,EAC9C;",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- [ai-gradient="1"]{background:linear-gradient(90deg,#ff84d2 2%,#ffa49d 46%,#ff5c2a 88%)}[ai-gradient="2"]{background:linear-gradient(90deg,#fd4fad 17%,#ff5200)}[style-bg-color=foreground]{background-color:var(--background-colors--foreground)}[style-bg-color=background]{background-color:var(--background-colors--background)}[style-type=h1]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h1);line-height:var(--_line-height---line-height-heading-tags--h1);font-weight:var(--_font-weight---font-weight-heading-tags--h1);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h1);margin:0}[style-type=h2]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h2);line-height:var(--_line-height---line-height-heading-tags--h2);font-weight:var(--_font-weight---font-weight-heading-tags--h2);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h2);margin:0}[style-type=h3]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h3);line-height:var(--_line-height---line-height-heading-tags--h3);font-weight:var(--_font-weight---font-weight-heading-tags--h3);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h3);margin:0}[style-type=h4]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h4);line-height:var(--_line-height---line-height-heading-tags--h4);font-weight:var(--_font-weight---font-weight-heading-tags--h4);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h4);margin:0}[style-type=h5]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h5);line-height:var(--_line-height---line-height-heading-tags--h5);font-weight:var(--_font-weight---font-weight-heading-tags--h5);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h5);margin:0}[style-type=h6]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h6);line-height:var(--_line-height---line-height-heading-tags--h6);font-weight:var(--_font-weight---font-weight-heading-tags--h6);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h6);margin:0}[style-type=title-l]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--l);line-height:var(--_line-height---line-height-title--l);font-weight:var(--_font-weight---font-weight-title--l);letter-spacing:var(--_letter-spacing---letter-spacing-body--l)}[style-type=title-m]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--m);line-height:var(--_line-height---line-height-title--m);font-weight:var(--_font-weight---font-weight-title--m);letter-spacing:var(--_letter-spacing---letter-spacing-title--m)}[style-type=title-s]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--s);line-height:var(--_line-height---line-height-title--s);font-weight:var(--_font-weight---font-weight-title--s);letter-spacing:var(--_letter-spacing---letter-spacing-title--s)}[style-type=body-l]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--l);line-height:var(--_line-height---line-height-body--l);font-weight:var(--_font-weight---font-weight-body--l);letter-spacing:var(--_letter-spacing---letter-spacing-body--l)}[style-type=body-m]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--m);line-height:var(--_line-height---line-height-body--m);font-weight:var(--_font-weight---font-weight-body--m);letter-spacing:var(--_letter-spacing---letter-spacing-body--m)}[style-type=body-s]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--s);line-height:var(--_line-height---line-height-body--s);font-weight:var(--_font-weight---font-weight-body--s);letter-spacing:var(--_letter-spacing---letter-spacing-body--s)}[style-text-align=center]{text-align:center}[style-text-align=left]{text-align:left}[style-text-align=right]{text-align:right}[style-text-color=title]{color:var(--text-colors--title)}[style-text-color=subtext]{color:var(--text-colors--subtext)}[style-text-color=orange]{color:var(--text-colors--orange)}[style-button-color=orange]{border-color:var(--orange--orange40);background-color:var(--orange--orange40);color:var(--text-colors--title-inverse)}[style-button-color=white]{border:1px solid var(--white);background-color:var(--white);color:var(--text-colors--title-inverse)}[style-button-color=transparent]{background-color:var(--transparent);color:var(--white);border:1px solid var(--white)}[style-padding-y=small]{padding-top:var(--_spaces---padding--small);padding-bottom:var(--_spaces---padding--small)}[style-padding-y=large]{padding-top:var(--_spaces---padding--large);padding-bottom:var(--_spaces---padding--largea)}[style-flex=center]{display:flex;justify-content:center;align-items:center}[style-flex=left]{flex-flow:column;align-items:flex-start;display:flex}[style-flex=right]{flex-flow:column;align-items:flex-end;display:flex}[style-flex=center]{flex-flow:column;align-items:center;justify-content:space-between;display:flex}
1
+ [ai-gradient="1"]{background:linear-gradient(90deg,#ff84d2 2%,#ffa49d 46%,#ff5c2a 88%)}[ai-gradient="2"]{background:linear-gradient(90deg,#fd4fad 17%,#ff5200)}[style-bg-color=foreground]{background-color:var(--background-colors--foreground)}[style-bg-color=background]{background-color:var(--background-colors--background)}[style-type=h1]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h1);line-height:var(--_line-height---line-height-heading-tags--h1);font-weight:var(--_font-weight---font-weight-heading-tags--h1);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h1);margin:0}[style-type=h2]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h2);line-height:var(--_line-height---line-height-heading-tags--h2);font-weight:var(--_font-weight---font-weight-heading-tags--h2);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h2);margin:0}[style-type=h3]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h3);line-height:var(--_line-height---line-height-heading-tags--h3);font-weight:var(--_font-weight---font-weight-heading-tags--h3);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h3);margin:0}[style-type=h4]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h4);line-height:var(--_line-height---line-height-heading-tags--h4);font-weight:var(--_font-weight---font-weight-heading-tags--h4);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h4);margin:0}[style-type=h5]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h5);line-height:var(--_line-height---line-height-heading-tags--h5);font-weight:var(--_font-weight---font-weight-heading-tags--h5);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h5);margin:0}[style-type=h6]{font-family:var(--_font-family---heading);font-size:var(--_text-size---heading--h6);line-height:var(--_line-height---line-height-heading-tags--h6);font-weight:var(--_font-weight---font-weight-heading-tags--h6);letter-spacing:var(--_letter-spacing---letter-spacing-heading-tags--h6);margin:0}[style-type=title-l]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--l);line-height:var(--_line-height---line-height-title--l);font-weight:var(--_font-weight---font-weight-title--l);letter-spacing:var(--_letter-spacing---letter-spacing-body--l)}[style-type=title-m]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--m);line-height:var(--_line-height---line-height-title--m);font-weight:var(--_font-weight---font-weight-title--m);letter-spacing:var(--_letter-spacing---letter-spacing-title--m)}[style-type=title-s]{font-family:var(--_font-family---title);font-size:var(--_text-size---title--s);line-height:var(--_line-height---line-height-title--s);font-weight:var(--_font-weight---font-weight-title--s);letter-spacing:var(--_letter-spacing---letter-spacing-title--s)}[style-type=display-l]{font-family:var(--_font-family---display);font-size:var(--_text-size---display--l);line-height:var(--_line-height---line-height-display--l);font-weight:var(--_font-weight---font-weight-display--l);letter-spacing:var(--_letter-spacing---letter-spacing-display--l)}[style-type=display-m]{font-family:var(--_font-family---display);font-size:var(--_text-size---display--m);line-height:var(--_line-height---line-height-display--m);font-weight:var(--_font-weight---font-weight-display--m);letter-spacing:var(--_letter-spacing---letter-spacing-display--m)}[style-type=display-s]{font-family:var(--_font-family---display);font-size:var(--_text-size---display--s);line-height:var(--_line-height---line-height-display--s);font-weight:var(--_font-weight---font-weight-display--s);letter-spacing:var(--_letter-spacing---letter-spacing-display--s)}[style-type=body-l]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--l);line-height:var(--_line-height---line-height-body--l);font-weight:var(--_font-weight---font-weight-body--l);letter-spacing:var(--_letter-spacing---letter-spacing-body--l)}[style-type=body-m]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--m);line-height:var(--_line-height---line-height-body--m);font-weight:var(--_font-weight---font-weight-body--m);letter-spacing:var(--_letter-spacing---letter-spacing-body--m)}[style-type=body-s]{font-family:var(--_font-family---body);font-size:var(--_text-size---body--s);line-height:var(--_line-height---line-height-body--s);font-weight:var(--_font-weight---font-weight-body--s);letter-spacing:var(--_letter-spacing---letter-spacing-body--s)}[style-text-align=center]{text-align:center}[style-text-align=left]{text-align:left}[style-text-align=right]{text-align:right}[style-text-color=title]{color:var(--text-colors--title)}[style-text-color=subtext]{color:var(--text-colors--subtext)}[style-text-color=orange]{color:var(--text-colors--orange)}[style-button-color=orange]{border-color:var(--orange--orange40);background-color:var(--orange--orange40);color:var(--text-colors--title-inverse)}[style-button-color=white]{border:1px solid var(--white);background-color:var(--white);color:var(--text-colors--title-inverse)}[style-button-color=transparent]{background-color:var(--transparent);color:var(--white);border:1px solid var(--white)}[style-padding-y=small]{padding-top:var(--_spaces---padding--small);padding-bottom:var(--_spaces---padding--small)}[style-padding-y=large]{padding-top:var(--_spaces---padding--large);padding-bottom:var(--_spaces---padding--largea)}[style-flex=center]{display:flex;justify-content:center;align-items:center}[style-flex=left]{flex-flow:column;align-items:flex-start;display:flex}[style-flex=right]{flex-flow:column;align-items:flex-end;display:flex}[style-flex=center]{flex-flow:column;align-items:center;justify-content:space-between;display:flex}
@@ -1 +1 @@
1
- "use strict";(()=>{var H=e=>!!e;function h(){if(typeof window>"u")return null;let e=window.gsap;if(!e)return console.warn("window.gsap not found. Make sure GSAP is loaded globally before this code runs."),null;let o=window.ScrollTrigger||e.ScrollTrigger;return o?(e.registerPlugin(o),e):(console.warn("ScrollTrigger not found on window (or gsap). Make sure the ScrollTrigger plugin script is loaded globally."),null)}function j(){let e=h();if(!e)return;let o=document.getElementById("home-scroll");if(!o)return;let S=o.querySelector("[pulse-animation-element='hero-title']"),R=o.querySelector("[pulse-animation-element='hero-description']"),E=o.querySelector("[pulse-animation-element='hero-button']"),m=Array.from(o.querySelectorAll("[pulse-animation-element='hero-blur']")),s=o.querySelector("[pulse-animation-element='hero-blur-overlay']"),c=o.querySelector("#canvas3d"),M=document.querySelector('[pulse-animation-element="col-1-row-1-item-1"]'),q=document.querySelector('[pulse-animation-element="col-1-row-1-item-2"]'),C=document.querySelector('[pulse-animation-element="col-1-row-2-item-1"]'),I=document.querySelector('[pulse-animation-element="col-1-row-2-item-2"]'),b=document.querySelector('[pulse-animation-element="col-1-row-3-item-1"]'),v=document.querySelector('[pulse-animation-element="col-2-row-1-item-1"]'),A=document.querySelector('[pulse-animation-element="col-2-row-1-item-2"]'),P=document.querySelector('[pulse-animation-element="col-2-row-2-item-1"]'),G=document.querySelector('[pulse-animation-element="col-2-row-3-item-1"]'),W=document.querySelector('[pulse-animation-element="col-3-row-1-item-1"]'),B=document.querySelector('[pulse-animation-element="col-3-row-2-col-1-item-1"]'),O=document.querySelector('[pulse-animation-element="col-3-row-2-col-1-item-2"]'),k=document.querySelector('[pulse-animation-element="col-3-row-2-col-2-item-1"]'),x=document.querySelector('[pulse-animation-element="col-3-row-2-col-2-item-2"]'),D=document.querySelector('[pulse-animation-element="col-3-row-3-item-1"]'),z=document.querySelector('[pulse-animation-element="canvas"]'),u=document.querySelector('[pulse-animation-element="radial-gradient-wrapper"]'),n=[M,q,C,I,b,v,A,G,W,B,O,k,x,D].filter(H),r=P,i=document.querySelector('[pulse-animation-element="player-inner-elements"]'),d=document.querySelector('[pulse-animation-element="player-radius-rect"]'),l=document.querySelector('[pulse-animation-element="line-art"]');if(!d){console.warn("Player radius rect not found");return}let F=d.getTotalLength(),a=document.querySelector('[pulse-animation-element="player-handle"]'),p=document.querySelector('[pulse-animation-element="player-handle-tail"]'),y=document.querySelector('[pulse-animation-element="handle-wrapper"]'),f=Array.from(document.querySelectorAll('[pulse-animation-element="vignette"]')),V=document.querySelector('[pulse-animation-element="torch-wrapper"]'),g=document.querySelector('[pulse-animation-element="torch"]'),w=document.querySelector('[pulse-animation-element="launch-button"]'),T=document.querySelector('[pulse-animation-element="launch-title"]');console.log("playerHandle:",a),console.log("Player position element:",r);let t=e.timeline({defaults:{ease:"power2.out",duration:1},scrollTrigger:{trigger:o,start:"top bottom",end:"bottom top",scrub:!0,invalidateOnRefresh:!0}});m.length&&e.set(m,{yPercent:32,opacity:1}),s&&e.set(s,{y:0,opacity:1}),u&&e.set(u,{opacity:0}),t.addLabel("start",0),S&&t.fromTo(S,{y:1100},{y:-400,ease:"power2.out",duration:1.2,immediateRender:!1},"start+=0.1"),R&&t.fromTo(R,{y:680},{y:-400,ease:"power2.out",duration:1.2,immediateRender:!1},"start+=0.2"),E&&t.fromTo(E,{y:440},{y:-480,ease:"power2.out",duration:1.2,immediateRender:!1},"start+=0.3"),m.length&&t.to(m,{yPercent:-100,opacity:0,ease:"power2.out",duration:1.2,delay:.2,immediateRender:!1},"start+=0.2"),s&&t.to(s,{y:-1200,ease:"power2.out",duration:1,delay:.2,immediateRender:!1},"start+=0.2");let L=[S,R,E].filter(H);L.length&&(t.to(L,{scale:.95,duration:.8,ease:"power2.out",immediateRender:!1},"start+=0.4"),t.to(L,{opacity:0,duration:.2,delay:.2,ease:"power2.out",immediateRender:!1},"start+=0.35")),n.length&&e.set(n,{opacity:0,scale:()=>e.utils.random(.5,.95),y:()=>e.utils.random(40,60)}),r&&e.set(r,{opacity:1,scale:.5}),i&&e.set(i,{scale:.8}),e.set(d,{opacity:0}),l&&e.set(l,{opacity:0,scale:.5}),c&&e.set(c,{height:"auto"}),a&&e.set(a,{rotation:-10}),p&&e.set(p,{rotation:-10}),y&&e.set(y,{scale:.8,opacity:0}),T&&e.set(T,{y:50,opacity:0,scale:.95}),w&&e.set(w,{y:0,opacity:0,scale:.95}),f.length&&e.set(f,{opacity:0}),g&&e.set(g,{opacity:0}),t.addLabel("grid-in","start+=0.5"),n.length&&(t.to(n,{scale:1,y:0,ease:"power2.out",duration:()=>e.utils.random(.4,.8),stagger:{amount:.1,from:"random"},immediateRender:!1},"grid-in"),t.to(n,{opacity:1,ease:"power2.out",duration:()=>e.utils.random(.2,.4),stagger:{amount:.1,from:"random"},immediateRender:!1},"grid-in")),c&&t.to(c,{height:"100%",ease:"power2.out",duration:.5,immediateRender:!1},"grid-in"),r&&t.to(r,{opacity:1,scale:1,ease:"power2.out",duration:.3,immediateRender:!1},"grid-in"),i&&(t.to(i,{scale:1,ease:"power2.out",duration:.3,immediateRender:!1},"grid-in"),t.to(i,{opacity:1,ease:"power2.out",duration:.1,immediateRender:!1},"grid-in+=0.1")),l&&(t.fromTo(l,{opacity:0},{opacity:1,ease:"power2.out",duration:.2,immediateRender:!1},"grid-in+=0.1"),t.fromTo(l,{scale:.5},{scale:1,ease:"power2.out",duration:.5,immediateRender:!1},"grid-in+=0.2")),t.to(d,{opacity:1,ease:"power2.out",duration:.3,immediateRender:!1},"grid-in+=0.3"),a&&p&&y&&(t.to(y,{opacity:1,scale:1,duration:.1,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),t.to(a,{rotation:30,duration:.5,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),t.to(p,{rotation:30,duration:.5,ease:"power2.out",immediateRender:!1},"grid-in+=0.4")),T&&t.to(T,{y:0,opacity:1,scale:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.35"),w&&t.to(w,{y:0,opacity:1,scale:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.45"),u&&t.to(u,{opacity:1,duration:.1,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),f.length&&t.to(f,{opacity:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),g&&t.to(g,{opacity:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),n.length&&t.to(n,{opacity:.8,ease:"power2.out",duration:.2,stagger:{amount:.1,from:"random"},immediateRender:!1},"grid-in+=0.30")}typeof window<"u"&&(window.addEventListener("DOMContentLoaded",()=>{j()}),window.addEventListener("load",()=>{let e=h();if(!e)return;let o=window.ScrollTrigger||e.ScrollTrigger;o&&o.refresh&&o.refresh()}));})();
1
+ "use strict";(()=>{var L=e=>!!e;function H(){if(typeof window>"u")return null;let e=window.gsap;if(!e)return console.warn("window.gsap not found. Make sure GSAP is loaded globally before this code runs."),null;let o=window.ScrollTrigger||e.ScrollTrigger;return o?(e.registerPlugin(o),e):(console.warn("ScrollTrigger not found on window (or gsap). Make sure the ScrollTrigger plugin script is loaded globally."),null)}function D(){let e=H();if(!e)return;let o=document.getElementById("home-scroll");if(!o)return;let T=o.querySelector("[pulse-animation-element='hero-title']"),S=o.querySelector("[pulse-animation-element='hero-description']"),R=o.querySelector("[pulse-animation-element='hero-button']"),a=Array.from(o.querySelectorAll("[pulse-animation-element='hero-blur']")),m=o.querySelector("[pulse-animation-element='hero-blur-overlay']"),s=o.querySelector("#canvas3d"),h=document.querySelector('[pulse-animation-element="col-1-row-1-item-1"]'),M=document.querySelector('[pulse-animation-element="col-1-row-1-item-2"]'),q=document.querySelector('[pulse-animation-element="col-1-row-2-item-1"]'),C=document.querySelector('[pulse-animation-element="col-1-row-2-item-2"]'),I=document.querySelector('[pulse-animation-element="col-1-row-3-item-1"]'),b=document.querySelector('[pulse-animation-element="col-2-row-1-item-1"]'),v=document.querySelector('[pulse-animation-element="col-2-row-1-item-2"]'),V=document.querySelector('[pulse-animation-element="col-2-row-2-item-1"]'),A=document.querySelector('[pulse-animation-element="col-2-row-3-item-1"]'),G=document.querySelector('[pulse-animation-element="col-3-row-1-item-1"]'),P=document.querySelector('[pulse-animation-element="col-3-row-2-col-1-item-1"]'),W=document.querySelector('[pulse-animation-element="col-3-row-2-col-1-item-2"]'),B=document.querySelector('[pulse-animation-element="col-3-row-2-col-2-item-1"]'),O=document.querySelector('[pulse-animation-element="col-3-row-2-col-2-item-2"]'),k=document.querySelector('[pulse-animation-element="col-3-row-3-item-1"]'),j=document.querySelector('[pulse-animation-element="canvas"]'),c=document.querySelector('[pulse-animation-element="radial-gradient-wrapper"]'),n=[h,M,q,C,I,b,v,A,G,P,W,B,O,k].filter(L),r=document.querySelector('[pulse-animation-element="player-inner-elements"]'),u=document.querySelector('[pulse-animation-element="player-radius-rect"]'),i=document.querySelector('[pulse-animation-element="line-art"]');if(!u){console.warn("Player radius rect not found");return}let z=u.getTotalLength(),l=document.querySelector('[pulse-animation-element="player-handle"]'),d=document.querySelector('[pulse-animation-element="player-handle-tail"]'),p=document.querySelector('[pulse-animation-element="handle-wrapper"]'),y=Array.from(document.querySelectorAll('[pulse-animation-element="vignette"]')),x=document.querySelector('[pulse-animation-element="torch-wrapper"]'),f=document.querySelector('[pulse-animation-element="torch"]'),g=document.querySelector('[pulse-animation-element="launch-button"]'),w=document.querySelector('[pulse-animation-element="launch-title"]');console.log("playerHandle:",l);let t=e.timeline({defaults:{ease:"power2.out",duration:1},scrollTrigger:{trigger:o,start:"top bottom",end:"bottom top",scrub:!0,invalidateOnRefresh:!0}});a.length&&e.set(a,{yPercent:32,opacity:1}),m&&e.set(m,{y:0,opacity:1}),c&&e.set(c,{opacity:0}),t.addLabel("start",0),T&&t.fromTo(T,{y:1100},{y:-400,ease:"power2.out",duration:1.2,immediateRender:!1},"start+=0.1"),S&&t.fromTo(S,{y:680},{y:-400,ease:"power2.out",duration:1.2,immediateRender:!1},"start+=0.2"),R&&t.fromTo(R,{y:440},{y:-480,ease:"power2.out",duration:1.2,immediateRender:!1},"start+=0.3"),a.length&&t.to(a,{yPercent:-100,opacity:0,ease:"power2.out",duration:1.2,delay:.2,immediateRender:!1},"start+=0.2"),m&&t.to(m,{y:-1200,ease:"power2.out",duration:1,delay:.2,immediateRender:!1},"start+=0.2");let E=[T,S,R].filter(L);E.length&&(t.to(E,{scale:.95,duration:.8,ease:"power2.out",immediateRender:!1},"start+=0.4"),t.to(E,{opacity:0,duration:.2,delay:.2,ease:"power2.out",immediateRender:!1},"start+=0.35")),n.length&&e.set(n,{opacity:0,scale:()=>e.utils.random(.5,.95),y:()=>e.utils.random(40,60)}),r&&e.set(r,{scale:.8}),e.set(u,{opacity:0}),i&&e.set(i,{opacity:0,scale:.5}),s&&e.set(s,{height:"auto"}),l&&e.set(l,{rotation:-10}),d&&e.set(d,{rotation:-10}),p&&e.set(p,{scale:.8,opacity:0}),w&&e.set(w,{y:50,opacity:0,scale:.95}),g&&e.set(g,{y:0,opacity:0,scale:.95}),y.length&&e.set(y,{opacity:0}),f&&e.set(f,{opacity:0}),t.addLabel("grid-in","start+=0.5"),n.length&&(t.to(n,{scale:1,y:0,ease:"power2.out",duration:()=>e.utils.random(.4,.8),stagger:{amount:.1,from:"random"},immediateRender:!1},"grid-in"),t.to(n,{opacity:1,ease:"power2.out",duration:()=>e.utils.random(.2,.4),stagger:{amount:.1,from:"random"},immediateRender:!1},"grid-in")),s&&t.to(s,{height:"100%",ease:"power2.out",duration:.5,immediateRender:!1},"grid-in"),r&&(t.to(r,{scale:1,ease:"power2.out",duration:.3,immediateRender:!1},"grid-in"),t.to(r,{opacity:1,ease:"power2.out",duration:.1,immediateRender:!1},"grid-in+=0.1")),i&&(t.fromTo(i,{opacity:0},{opacity:1,ease:"power2.out",duration:.2,immediateRender:!1},"grid-in+=0.1"),t.fromTo(i,{scale:.5},{scale:1,ease:"power2.out",duration:.5,immediateRender:!1},"grid-in+=0.2")),t.to(u,{opacity:1,ease:"power2.out",duration:.3,immediateRender:!1},"grid-in+=0.3"),l&&d&&p&&(t.to(p,{opacity:1,scale:1,duration:.1,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),t.to(l,{rotation:30,duration:.5,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),t.to(d,{rotation:30,duration:.5,ease:"power2.out",immediateRender:!1},"grid-in+=0.4")),w&&t.to(w,{y:0,opacity:1,scale:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.35"),g&&t.to(g,{y:0,opacity:1,scale:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.45"),c&&t.to(c,{opacity:1,duration:.1,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),y.length&&t.to(y,{opacity:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),f&&t.to(f,{opacity:1,duration:.2,ease:"power2.out",immediateRender:!1},"grid-in+=0.4"),n.length&&t.to(n,{opacity:.8,ease:"power2.out",duration:.2,stagger:{amount:.1,from:"random"},immediateRender:!1},"grid-in+=0.30")}typeof window<"u"&&(window.addEventListener("DOMContentLoaded",()=>{D()}),window.addEventListener("load",()=>{let e=H();if(!e)return;let o=window.ScrollTrigger||e.ScrollTrigger;o&&o.refresh&&o.refresh()}));})();