PageSourceSearch

https://www.solitairegrandharvest.com/wp-content/themes/grand-harvest-theme/assets/js/app.js?ver=1790855014

js solitairegrandharvest.com collected 2026-10-01 12:28:04 UTC 28,104 bytes, 1,095 lines download raw bytes

1document.body.classList.remove('no-js');
2
3/* #Header
4  ======================================================= */
5const header = document.querySelector('.header');
6
7const headerBtn = document.querySelector('.header-hamburger');
8const headerClose = document.querySelector('.header-close');
9
10if (headerBtn) {
11    headerBtn.addEventListener('click', (e) => {
12        e.preventDefault();
13
14        header.classList.add('show');
15        body.classList.add('no-scroll');
16    });
17}
18
19if (headerClose) {
20    headerClose.addEventListener('click', (e) => {
21        e.preventDefault();
22
23        header.classList.remove('show');
24        body.classList.remove('no-scroll');
25    });
26}
27
28// Color Change
29if (document.querySelector('.header')) {
30    window.addEventListener('scroll', () => {
31        if (window.scrollY > 0) {
32            header.classList.add('header-scrolled');
33        } else {
34            header.classList.remove('header-scrolled');
35        }
36    });
37}
38
39if (document.querySelector('.header')) {
40    if (window.scrollY > 0) {
41        header.classList.add('header-scrolled');
42    } else {
43        header.classList.remove('header-scrolled');
44    }
45}
46
47/* #Home Banner & Header
48  ======================================================= */
49const headerPlayButton = document.getElementById('header-play-btn-link');
50const bannerPlayButton = document.getElementById('banner-play-btn-link');
51
52function handleClickPlayBtnLink(e) {
53    try {
54        const parser = new UAParser();
55        const result = parser.getResult();
56        const osName = result.os.name || '';
57        const deviceType = result.device.type || '';
58        const targetUrl = this.href;
59
60        const allowedDevices = ['mobile', 'tablet'];
61        const allowedAppleOS = ['iOS', 'Mac OS'];
62        const allowedAndroidOS = ['Android'];
63
64        if (!allowedDevices.includes(deviceType)) {
65            return;
66        }
67
68        // -------------------------------
69        // Helper: merge & replace params
70        // -------------------------------
71        function mergeParamsIntoUrl(baseUrl) {
72            if (!baseUrl) return baseUrl;
73
74            const urlObj = new URL(baseUrl, window.location.origin);
75
76            // Get current parameters (supports key-only params)
77            const currentParamsRaw = window.location.search.replace(/^\?/, "");
78            const currentParams = currentParamsRaw
79                .split("&")
80                .filter(Boolean)
81                .map(p => p.includes("=") ? p.split("=") : [p, null]);
82
83            const hasCurrentParams = currentParams.length > 0;
84            const baseHasParams = urlObj.search.length > 1;
85
86            // If store link has params and current has params → replace them
87            if (baseHasParams && hasCurrentParams) {
88                urlObj.search = ""; // remove existing params entirely
89            }
90
91            // If store link has params but current does NOT → keep store params exactly as-is
92            if (baseHasParams && !hasCurrentParams) {
93                return baseUrl;
94            }
95
96            // If current page has params, add them
97            if (hasCurrentParams) {
98                const combined = new URLSearchParams(urlObj.search);
99
100                // Add params with values first
101                currentParams.forEach(([key, value]) => {
102                    if (value !== null) {
103                        combined.append(key, value);
104                    }
105                });
106
107                urlObj.search = combined.toString();
108
109                // Add key-only params manually
110                currentParams.forEach(([key, value]) => {
111                    if (value === null && !urlObj.search.includes(key)) {
112                        urlObj.search += (urlObj.search ? "&" : "?") + key;
113                    }
114                });
115            }
116
117            return urlObj.toString();
118        }
119
120        // -------------------------------
121        // PLATFORM REDIRECT LOGIC
122        // -------------------------------
123        if (allowedAppleOS.includes(osName)) {
124            const iosLink = this.getAttribute('data-app-store-url');
125            const finalUrl = mergeParamsIntoUrl(iosLink || targetUrl);
126
127            e.preventDefault();
128            window.location.href = finalUrl;
129            return;
130        }
131
132        if (allowedAndroidOS.includes(osName)) {
133            const androidLink = this.getAttribute('data-google-play-url');
134            const finalUrl = mergeParamsIntoUrl(androidLink || targetUrl);
135
136            e.preventDefault();
137            window.location.href = finalUrl;
138            return;
139        }
140
141    } catch (e) {
142        console.error(e);
143    }
144}
145
146
147if (headerPlayButton) {
148    headerPlayButton.addEventListener("click", handleClickPlayBtnLink);
149}
150
151if (bannerPlayButton) {
152    bannerPlayButton.addEventListener("click", handleClickPlayBtnLink);
153}
154
155/* #Home Section 6 Slider
156  ======================================================= */
157if (document.querySelector('.home-section-6 .swiper')) {
158    new Swiper(".home-section-6 .swiper", {
159        pagination: {
160            el: ".home-section-6 .swiper-pagination",
161        },
162        breakpoints: {
163            0: {
164                slidesPerView: 1.15,
165            },
166            1024: {
167                slidesPerView: 2.3,
168            }
169        },
170        navigation: {
171            nextEl: '.home-section-6 .next',
172            prevEl: '.home-section-6 .prev',
173        },
174    });
175}
176
177/* #Blog Post Slider
178  ======================================================= */
179if (document.querySelector('.blog-post-slider .swiper')) {
180    new Swiper(".blog-post-slider .swiper", {
181        breakpoints: {
182            0: {
183                slidesPerView: 1.15,
184            },
185            1024: {
186                slidesPerView: 3,
187            }
188        },
189    });
190}
191
192/* #AOS Animations
193    ======================================================= */
194if (window.innerWidth > 1024) {
195    AOS.init({
196        startEvent: 'load',
197        once: true,
198        duration: 800,
199        offset: 300
200    });
201} else {
202    AOS.init({
203        startEvent: 'load',
204        once: true,
205        duration: 600,
206        offset: 150
207    });
208}
209
210/* #Parallax Animations
211  ======================================================= */
212if (document.querySelector('.page-template-page-home')) {
213    // Home Section 1 (Coins)
214    gsap.to(".home-section-1 .coins img:nth-child(1)", {
215        yPercent: -450,
216        ease: "none",
217        scrollTrigger: {
218            trigger: ".home-section-1",
219            scrub: true
220        },
221    });
222
223    gsap.to(".home-section-1 .coins img:nth-child(2)", {
224        yPercent: 75,
225        ease: "none",
226        scrollTrigger: {
227            trigger: ".home-section-1",
228            scrub: true
229        },
230    });
231
232    gsap.to(".home-section-1 .coins img:nth-child(3)", {
233        yPercent: 450,
234        ease: "none",
235        scrollTrigger: {
236            trigger: ".home-section-1",
237            scrub: true
238        },
239    });
240
241    gsap.to(".home-section-1 .coins img:nth-child(4)", {
242        yPercent: 450,
243        ease: "none",
244        scrollTrigger: {
245            trigger: ".home-section-1",
246            scrub: true
247        },
248    });
249
250    gsap.to(".home-section-1 .coins img:nth-child(5)", {
251        yPercent: 450,
252        ease: "none",
253        scrollTrigger: {
254            trigger: ".home-section-1",
255            scrub: true
256        },
257    });
258
259    // Home Section 1 (Cards)
260    gsap.to(".home-section-1 .cards img:nth-child(1)", {
261        yPercent: -225,
262        ease: "none",
263        scrollTrigger: {
264            trigger: ".home-section-1",
265            scrub: true
266        },
267    });
268
269    gsap.to(".home-section-1 .cards img:nth-child(2)", {
270        yPercent: -225,
271        ease: "none",
272        scrollTrigger: {
273            trigger: ".home-section-1",
274            scrub: true
275        },
276    });
277
278    gsap.to(".home-section-1 .cards img:nth-child(3)", {
279        yPercent: 25,
280        ease: "none",
281        scrollTrigger: {
282            trigger: ".home-section-1",
283            scrub: true
284        },
285    });
286
287    gsap.to(".home-section-1 .cards img:nth-child(4)", {
288        yPercent: 150,
289        ease: "none",
290        scrollTrigger: {
291            trigger: ".home-section-1",
292            scrub: true
293        },
294    });
295
296    // Home Section 2
297    gsap.to(".home-section-2 .img img:nth-child(1)", {
298        yPercent: -100,
299        ease: "none",
300        scrollTrigger: {
301            trigger: ".home-section-2",
302            scrub: true
303        },
304    });
305
306    gsap.to(".home-section-2 .img img:nth-child(2)", {
307        yPercent: 200,
308        ease: "none",
309        scrollTrigger: {
310            trigger: ".home-section-2",
311            scrub: true
312        },
313    });
314
315    // Home Section 3 (Cards)
316    gsap.to(".home-section-3 .cards img:nth-child(1)", {
317        yPercent: 225,
318        ease: "none",
319        scrollTrigger: {
320            trigger: ".home-section-3",
321            scrub: true
322        },
323    });
324
325    gsap.to(".home-section-3 .cards img:nth-child(2)", {
326        yPercent: -225,
327        ease: "none",
328        scrollTrigger: {
329            trigger: ".home-section-3",
330            scrub: true
331        },
332    });
333
334    gsap.to(".home-section-3 .cards img:nth-child(3)", {
335        yPercent: -225,
336        ease: "none",
337        scrollTrigger: {
338            trigger: ".home-section-3",
339            scrub: true
340        },
341    });
342
343    gsap.to(".home-section-3 .cards img:nth-child(4)", {
344        yPercent: 150,
345        ease: "none",
346        scrollTrigger: {
347            trigger: ".home-section-3",
348            scrub: true
349        },
350    });
351
352    gsap.to(".home-section-3 .cards img:nth-child(5)", {
353        yPercent: -75,
354        ease: "none",
355        scrollTrigger: {
356            trigger: ".home-section-3",
357            scrub: true
358        },
359    });
360
361    gsap.to(".home-section-3 .cards img:nth-child(6)", {
362        yPercent: 150,
363        ease: "none",
364        scrollTrigger: {
365            trigger: ".home-section-3",
366            scrub: true
367        },
368    });
369
370    // Home Section 4 (Cards)
371    gsap.to(".home-section-4 .cards img:nth-child(1)", {
372        yPercent: 225,
373        ease: "none",
374        scrollTrigger: {
375            trigger: ".home-section-4",
376            scrub: true
377        },
378    });
379
380    gsap.to(".home-section-4 .cards img:nth-child(2)", {
381        yPercent: -225,
382        ease: "none",
383        scrollTrigger: {
384            trigger: ".home-section-4",
385            scrub: true
386        },
387    });
388
389    gsap.to(".home-section-4 .cards img:nth-child(3)", {
390        yPercent: -225,
391        ease: "none",
392        scrollTrigger: {
393            trigger: ".home-section-4",
394            scrub: true
395        },
396    });
397
398    gsap.to(".home-section-4 .cards img:nth-child(4)", {
399        yPercent: 150,
400        ease: "none",
401        scrollTrigger: {
402            trigger: ".home-section-4",
403            scrub: true
404        },
405    });
406
407    gsap.to(".home-section-4 .cards img:nth-child(5)", {
408        yPercent: -75,
409        ease: "none",
410        scrollTrigger: {
411            trigger: ".home-section-4",
412            scrub: true
413        },
414    });
415
416    // Home Section 4 (Coins)
417    gsap.to(".home-section-4 .coins img:nth-child(1)", {
418        yPercent: -450,
419        ease: "none",
420        scrollTrigger: {
421            trigger: ".home-section-4",
422            scrub: true
423        },
424    });
425
426    gsap.to(".home-section-4 .coins img:nth-child(2)", {
427        yPercent: 150,
428        ease: "none",
429        scrollTrigger: {
430            trigger: ".home-section-4",
431            scrub: true
432        },
433    });
434
435    gsap.to(".home-section-4 .coins img:nth-child(3)", {
436        yPercent: 450,
437        ease: "none",
438        scrollTrigger: {
439            trigger: ".home-section-4",
440            scrub: true
441        },
442    });
443
444    gsap.to(".home-section-4 .coins img:nth-child(4)", {
445        yPercent: 450,
446        ease: "none",
447        scrollTrigger: {
448            trigger: ".home-section-4",
449            scrub: true
450        },
451    });
452
453    gsap.to(".home-section-4 .coins img:nth-child(5)", {
454        yPercent: 450,
455        ease: "none",
456        scrollTrigger: {
457            trigger: ".home-section-4",
458            scrub: true
459        },
460    });
461
462    gsap.to(".home-section-4 .coins img:nth-child(6)", {
463        yPercent: 150,
464        ease: "none",
465        scrollTrigger: {
466            trigger: ".home-section-4",
467            scrub: true
468        },
469    });
470
471    gsap.to(".home-section-4 .coins img:nth-child(7)", {
472        yPercent: 450,
473        ease: "none",
474        scrollTrigger: {
475            trigger: ".home-section-4",
476            scrub: true
477        },
478    });
479
480    // Home Section 5 (Cards)
481    gsap.to(".home-section-5 .cards img:nth-child(1)", {
482        yPercent: 225,
483        ease: "none",
484        scrollTrigger: {
485            trigger: ".home-section-5",
486            scrub: true
487        },
488    });
489
490    gsap.to(".home-section-5 .cards img:nth-child(2)", {
491        yPercent: -225,
492        ease: "none",
493        scrollTrigger: {
494            trigger: ".home-section-5",
495            scrub: true
496        },
497    });
498
499    gsap.to(".home-section-5 .cards img:nth-child(3)", {
500        yPercent: -225,
501        ease: "none",
502        scrollTrigger: {
503            trigger: ".home-section-5",
504            scrub: true
505        },
506    });
507
508    gsap.to(".home-section-5 .cards img:nth-child(4)", {
509        yPercent: 150,
510        ease: "none",
511        scrollTrigger: {
512            trigger: ".home-section-5",
513            scrub: true
514        },
515    });
516
517    gsap.to(".home-section-5 .cards img:nth-child(5)", {
518        yPercent: -75,
519        ease: "none",
520        scrollTrigger: {
521            trigger: ".home-section-5",
522            scrub: true
523        },
524    });
525
526    gsap.to(".home-section-5 .cards img:nth-child(6)", {
527        yPercent: 150,
528        ease: "none",
529        scrollTrigger: {
530            trigger: ".home-section-5",
531            scrub: true
532        },
533    });
534
535    // Home Section 7 (Characters)
536    gsap.to(".home-section-7 .characters img:nth-child(1)", {
537        yPercent: 20,
538        ease: "none",
539        scrollTrigger: {
540            trigger: ".home-section-7",
541            scrub: true
542        },
543    });
544
545
546    // Home Section 8 (Cards)
547    gsap.to(".home-section-8 .cards img:nth-child(1)", {
548        yPercent: 225,
549        ease: "none",
550        scrollTrigger: {
551            trigger: ".home-section-8",
552            scrub: true
553        },
554    });
555
556    gsap.to(".home-section-8 .cards img:nth-child(2)", {
557        yPercent: -225,
558        ease: "none",
559        scrollTrigger: {
560            trigger: ".home-section-8",
561            scrub: true
562        },
563    });
564
565    gsap.to(".home-section-8 .cards img:nth-child(3)", {
566        yPercent: -225,
567        ease: "none",
568        scrollTrigger: {
569            trigger: ".home-section-8",
570            scrub: true
571        },
572    });
573
574    gsap.to(".home-section-8 .cards img:nth-child(4)", {
575        yPercent: 150,
576        ease: "none",
577        scrollTrigger: {
578            trigger: ".home-section-8",
579            scrub: true
580        },
581    });
582
583    gsap.to(".home-section-8 .cards img:nth-child(5)", {
584        yPercent: 50,
585        ease: "none",
586        scrollTrigger: {
587            trigger: ".home-section-8",
588            scrub: true
589        },
590    });
591
592    gsap.to(".home-section-8 .cards img:nth-child(6)", {
593        yPercent: -50,
594        ease: "none",
595        scrollTrigger: {
596            trigger: ".home-section-8",
597            scrub: true
598        },
599    });
600
601    gsap.to(".home-section-8 .cards img:nth-child(7)", {
602        yPercent: -150,
603        ease: "none",
604        scrollTrigger: {
605            trigger: ".home-section-8",
606            scrub: true
607        },
608    });
609
610    gsap.to(".home-section-8 .cards img:nth-child(8)", {
611        yPercent: 150,
612        ease: "none",
613        scrollTrigger: {
614            trigger: ".home-section-8",
615            scrub: true
616        },
617    });
618}
619
620// Blog Page
621if (document.querySelector('.page-template-page-news')) {
622    gsap.to(".blog .bg .card img", {
623        yPercent: -100,
624        ease: "none",
625        scrollTrigger: {
626            trigger: ".blog .bg",
627            scrub: true
628        },
629    });
630}
631
632// Blog Post Page
633if (document.querySelector('.single-post')) {
634    gsap.to(".blog-post-bg .cards img:nth-child(1)", {
635        yPercent: -100,
636        ease: "none",
637        scrollTrigger: {
638            trigger: ".blog-post-bg",
639            scrub: true
640        },
641    });
642
643    gsap.to(".blog-post-bg .cards img:nth-child(2)", {
644        yPercent: 100,
645        ease: "none",
646        scrollTrigger: {
647            trigger: ".blog-post-bg",
648            scrub: true
649        },
650    });
651
652    gsap.to(".blog-post-bg .cards img:nth-child(3)", {
653        yPercent: -75,
654        ease: "none",
655        scrollTrigger: {
656            trigger: ".blog-post-bg",
657            scrub: true
658        },
659    });
660}
661
662// How To Play Page
663if (document.querySelector('.page-template-page-free-credits') || document.querySelector('.page-template-page-how')) {
664    gsap.to(".how-to-play-bg .cards img:nth-child(1)", {
665        yPercent: -100,
666        ease: "none",
667        scrollTrigger: {
668            trigger: ".how-to-play-bg",
669            scrub: true
670        },
671    });
672
673    gsap.to(".how-to-play-bg .cards img:nth-child(2)", {
674        yPercent: 100,
675        ease: "none",
676        scrollTrigger: {
677            trigger: ".how-to-play-bg",
678            scrub: true
679        },
680    });
681
682    gsap.to(".how-to-play-bg .cards img:nth-child(3)", {
683        yPercent: -75,
684        ease: "none",
685        scrollTrigger: {
686            trigger: ".how-to-play-bg",
687            scrub: true
688        },
689    });
690}
691
692// Free Coins Page
693if (document.querySelector('.page-template-page-free-credits') || document.querySelector('.page-template-page-how')) {
694    gsap.to(".free-coins-bg .cards img:nth-child(1)", {
695        yPercent: -100,
696        ease: "none",
697        scrollTrigger: {
698            trigger: ".free-coins-bg",
699            scrub: true
700        },
701    });
702
703    gsap.to(".free-coins-bg .cards img:nth-child(2)", {
704        yPercent: 100,
705        ease: "none",
706        scrollTrigger: {
707            trigger: ".free-coins-bg",
708            scrub: true
709        },
710    });
711
712    gsap.to(".free-coins-bg .cards img:nth-child(3)", {
713        yPercent: -75,
714        ease: "none",
715        scrollTrigger: {
716            trigger: ".free-coins-bg",
717            scrub: true
718        },
719    });
720
721    // Free Coins Coins
722    gsap.to(".free-coins .bg .coins img:nth-child(1)", {
723        yPercent: -300,
724        ease: "none",
725        scrollTrigger: {
726            trigger: ".free-coins",
727            scrub: true
728        },
729    });
730
731    gsap.to(".free-coins .bg .coins img:nth-child(2)", {
732        yPercent: 300,
733        ease: "none",
734        scrollTrigger: {
735            trigger: ".free-coins",
736            scrub: true
737        },
738    });
739
740    gsap.to(".free-coins .bg .coins img:nth-child(3)", {
741        yPercent: -200,
742        ease: "none",
743        scrollTrigger: {
744            trigger: ".free-coins",
745            scrub: true
746        },
747    });
748
749    gsap.to(".free-coins .bg .coins img:nth-child(4)", {
750        yPercent: 200,
751        ease: "none",
752        scrollTrigger: {
753            trigger: ".free-coins",
754            scrub: true
755        },
756    });
757
758    gsap.to(".free-coins .bg .coins img:nth-child(5)", {
759        yPercent: -200,
760        ease: "none",
761        scrollTrigger: {
762            trigger: ".free-coins",
763            scrub: true
764        },
765    });
766
767    gsap.to(".free-coins .bg .coins img:nth-child(6)", {
768        yPercent: -300,
769        ease: "none",
770        scrollTrigger: {
771            trigger: ".free-coins",
772            scrub: true
773        },
774    });
775
776    gsap.to(".free-coins .bg .coins img:nth-child(7)", {
777        yPercent: 450,
778        ease: "none",
779        scrollTrigger: {
780            trigger: ".free-coins",
781            scrub: true
782        },
783    });
784
785    gsap.to(".free-coins .bg .coins img:nth-child(8)", {
786        yPercent: -300,
787        ease: "none",
788        scrollTrigger: {
789            trigger: ".free-coins",
790            scrub: true
791        },
792    });
793
794    gsap.to(".free-coins .bg .coins img:nth-child(9)", {
795        yPercent: 200,
796        ease: "none",
797        scrollTrigger: {
798            trigger: ".free-coins",
799            scrub: true
800        },
801    });
802
803    gsap.to(".free-coins .bg .coins img:nth-child(10)", {
804        yPercent: -400,
805        ease: "none",
806        scrollTrigger: {
807            trigger: ".free-coins",
808            scrub: true
809        },
810    });
811
812    gsap.to(".free-coins .bg .coins img:nt
812h-child(11)", {
813        yPercent: 240,
814        ease: "none",
815        scrollTrigger: {
816            trigger: ".free-coins",
817            scrub: true
818        },
819    });
820
821    gsap.to(".free-coins .bg .coins img:nth-child(12)", {
822        yPercent: -300,
823        ease: "none",
824        scrollTrigger: {
825            trigger: ".free-coins",
826            scrub: true
827        },
828    });
829
830    // How To Play Media Box
831    gsap.to(".how-to-play-page .media-box .img-coins img", {
832        yPercent: -150,
833        ease: "none",
834        scrollTrigger: {
835            trigger: ".free-coins",
836            scrub: true
837        },
838    });
839
840    gsap.to(".how-to-play-page .media-box .img-cards img:nth-child(1)", {
841        yPercent: 200,
842        ease: "none",
843        scrollTrigger: {
844            trigger: ".free-coins",
845            scrub: true
846        },
847    });
848
849    gsap.to(".how-to-play-page .media-box .img-cards img:nth-child(2)", {
850        yPercent: -200,
851        ease: "none",
852        scrollTrigger: {
853            trigger: ".free-coins",
854            scrub: true
855        },
856    });
857}
858
859// Personal Growth Page
860if (document.querySelector('.page-template-page-personal')) {
861    gsap.to(".personal-growth-bg .cards img:nth-child(1)", {
862        yPercent: -100,
863        ease: "none",
864        scrollTrigger: {
865            trigger: ".personal-growth-bg",
866            scrub: true
867        },
868    });
869
870    gsap.to(".personal-growth-bg .cards img:nth-child(2)", {
871        yPercent: -75,
872        ease: "none",
873        scrollTrigger: {
874            trigger: ".personal-growth-bg",
875            scrub: true
876        },
877    });
878
879    gsap.to(".personal-growth-bg .dog img", {
880        yPercent: -50,
881        ease: "none",
882        scrollTrigger: {
883            trigger: ".personal-growth-bg",
884            scrub: true
885        },
886    });
887
888    gsap.to(".personal-growth .big-img .dog img", {
889        yPercent: -20,
890        ease: "none",
891        scrollTrigger: {
892            trigger: ".personal-growth",
893            scrub: true
894        },
895    });
896
897    gsap.to(".personal-growth .big-img .clouds img", {
898        yPercent: 30,
899        ease: "none",
900        scrollTrigger: {
901            trigger: ".personal-growth",
902            scrub: true
903        },
904    });
905
906    gsap.to(".personal-growth .big-img .fruit img", {
907        yPercent: 50,
908        ease: "none",
909        scrollTrigger: {
910            trigger: ".personal-growth",
911            scrub: true
912        },
913    });
914
915    gsap.to(".personal-growth .big-img .cards img:nth-child(1)", {
916        yPercent: 100,
917        ease: "none",
918        scrollTrigger: {
919            trigger: ".personal-growth",
920            scrub: true
921        },
922    });
923
924    gsap.to(".personal-growth .big-img .cards img:nth-child(2)", {
925        yPercent: -50,
926        ease: "none",
927        scrollTrigger: {
928            trigger: ".personal-growth",
929            scrub: true
930        },
931    });
932
933    gsap.to(".personal-growth .big-img .cards img:nth-child(3)", {
934        yPercent: 100,
935        ease: "none",
936        scrollTrigger: {
937            trigger: ".personal-growth",
938            scrub: true
939        },
940    });
941
942    gsap.to(".personal-growth .big-img .cards img:nth-child(4)", {
943        yPercent: -100,
944        ease: "none",
945        scrollTrigger: {
946            trigger: ".personal-growth",
947            scrub: true
948        },
949    });
950
951    gsap.to(".personal-growth .big-img .cards img:nth-child(5)", {
952        yPercent: -100,
953        ease: "none",
954        scrollTrigger: {
955            trigger: ".personal-growth",
956            scrub: true
957        },
958    });
959
960    // Media Boxes
961    gsap.to(".personal-growth .media-box:not(.alt) .img .elements img:nth-child(1)", {
962        yPercent: -100,
963        ease: "none",
964        scrollTrigger: {
965            trigger: ".personal-growth",
966            scrub: true
967        },
968    });
969    gsap.to(".personal-growth .media-box:not(.alt) .img .elements img:nth-child(2)", {
970        yPercent: 100,
971        ease: "none",
972        scrollTrigger: {
973            trigger: ".personal-growth",
974            scrub: true
975        },
976    });
977    gsap.to(".personal-growth .media-box:not(.alt) .img .elements img:nth-child(3)", {
978        yPercent: -50,
979        ease: "none",
980        scrollTrigger: {
981            trigger: ".personal-growth",
982            scrub: true
983        },
984    });
985
986    gsap.to(".personal-growth .media-box.alt .img .elements img:nth-child(1)", {
987        yPercent: -100,
988        ease: "none",
989        scrollTrigger: {
990            trigger: ".personal-growth",
991            scrub: true
992        },
993    });
994
995    gsap.to(".personal-growth .media-box.alt .img .elements img:nth-child(2)", {
996        yPercent: 100,
997        ease: "none",
998        scrollTrigger: {
999            trigger: ".personal-growth",
1000            scrub: true
1001        },
1002    });
1003
1004    gsap.to(".personal-growth .media-box.alt .img .elements img:nth-child(3)", {
1005        yPercent: 50,
1006        ease: "none",
1007        scrollTrigger: {
1008            trigger: ".personal-growth",
1009            scrub: true
1010        },
1011    });
1012
1013    gsap.to(".personal-growth .media-box.alt .img .elements img:nth-child(4)", {
1014        yPercent: -100,
1015        ease: "none",
1016        scrollTrigger: {
1017            trigger: ".personal-growth",
1018            scrub: true
1019        },
1020    });
1021
1022    gsap.to(".personal-growth .media-box.alt .img .elements img:nth-child(5)", {
1023        yPercent: -25,
1024        ease: "none",
1025        scrollTrigger: {
1026            trigger: ".personal-growth",
1027            scrub: true
1028        },
1029    });
1030}
1031document.addEventListener('DOMContentLoaded', function () {
1032    if (document.querySelector('.blog-post .content table')) {
1033        const tables = document.querySelectorAll('.blog-post .content table');
1034        console.log(tables);
1035        console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaa');
1036        tables.forEach(table => {
1037            const wrapper = document.createElement('div');
1038            wrapper.className = 'table-wrapper';
1039
1040            table.parentNode.insertBefore(wrapper, table);
1041            wrapper.appendChild(table);
1042        })
1043    }
1044})
1045
1046document.addEventListener('DOMContentLoaded', function () {
1047    const el = document.getElementById('ot-sdk-btn');
1048    if (el) {
1049        el.addEventListener('click', function (e) {
1050            e.preventDefault();
1051            console.log('Cookie Settings clicked');
1052        });
1053    }
1054
1055    const links = document.querySelectorAll('a');
1056    const currentParamsRaw = window.location.search.replace(/^\?/, "");
1057
1058    // Parse current params manually
1059    const currentParams = currentParamsRaw
1060        .split("&")
1061        .filter(Boolean) // remove empty strings
1062        .map(p => p.includes("=") ? p.split("=") : [p, null]);
1063
1064    links.forEach(link => {
1065        const href = link.getAttribute('href');
1066
1067        if (href && (href.includes('/play') || href.includes('grandharvest.onelink.me'))) {
1068            const url = new URL(href, window.location.origin);
1069
1070            // If we have current parameters → remove all existing parameters
1071            if (currentParams.length > 0) {
1072                url.search = ""; // clear all existing params
1073            }
1074
1075            // Build the new query string (preserving key-only params)
1076            let newQuery = "";
1077            currentParams.forEach(([key, value]) => {
1078                if (value === null) {
1079                    newQuery += (newQuery ? "&" : "") + key;
1080                } else {
1081                    newQuery += (newQuery ? "&" : "") + `${key}=${value}`;
1082                }
1083            });
1084
1085            if (currentParams.length > 0) {
1086                url.search = newQuery;
1087            }
1088
1089            link.setAttribute('href', url.toString());
1090        }
1091    });
1092
1093});
1094
1095

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.