PageSourceSearch

https://www.picklebeastpickleball.com/contact_us

html picklebeastpickleball.com collected 2026-09-24 14:16:59 UTC 95,476 bytes, 2,122 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" data-theme="dark">
3  <head>
4    
4<script>
5      // Application layout is always dark mode. Light mode only exists on /browse pages.
6      document.documentElement.setAttribute('data-theme', 'dark');
7    </script>
7
8    </script>
8
9    
9<script>
10      // Apply collapsed state IMMEDIATELY to prevent flash
11      (function() {
12        if (localStorage.getItem("sidebarCollapsed") === "true") {
13          document.documentElement.classList.add("sidebar-collapsed-loading");
14        }
15      })();
16    </script>
16
17    
17<script>
18      // Cookie consent helper — checks if user accepted analytics cookies
19      window.pbHasConsent = function() {
20        return document.cookie.indexOf('pb_cookie_consent=accepted') !== -1;
21      };
22
23      // Capture UTM params from URL into a cookie (only if consent given)
24      (function() {
25        if (!window.pbHasConsent()) return;
26        var params = new URLSearchParams(window.location.search);
27        var keys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
28        var utm = {};
29        var hasUtm = false;
30        keys.forEach(function(k) {
31          var v = params.get(k);
32          if (v) { utm[k] = v; hasUtm = true; }
33        });
34        if (hasUtm) {
35          var expires = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toUTCString();
36          document.cookie = 'pb_utm=' + encodeURIComponent(JSON.stringify(utm)) + ';expires=' + expires + ';path=/;SameSite=Lax';
37        }
38      })();
39    </script>
39
40      
40<script>
41        // Load GA4 only after consent
42        window.pbLoadAnalytics = function() {
43          if (window.pbAnalyticsLoaded) return;
44          window.pbAnalyticsLoaded = true;
45
46          // Load gtag.js script
47          var s = document.createElement('script');
48          s.async = true;
49          s.src = 'https://www.googletagmanager.com/gtag/js?id=G-NFHH8DFQ91';
50          document.head.appendChild(s);
51
52          window.dataLayer = window.dataLayer || [];
53          function gtag(){dataLayer.push(arguments);}
54          window.gtag = gtag;
55          gtag('js', new Date());
56          gtag('config', 'G-NFHH8DFQ91', {
57            send_page_view: false
58          });
59
60          // Track pageviews on Turbo navigation
61          function sendGAPageview() {
62            if (typeof gtag === 'function') {
63              gtag('event', 'page_view', {
64                page_location: window.location.href,
65                page_title: document.title
66              });
67            }
68          }
69
70          // Initial pageview
71          sendGAPageview();
72
73          // Turbo Drive navigations
74          document.addEventListener('turbo:load', function() {
75            sendGAPageview();
76          });
77
78          // Auto-track CTA button clicks
79          document.addEventListener('click', function(e) {
80            var el = e.target.closest('a, button');
81            if (!el || typeof gtag !== 'function') return;
82
83            if (el.classList.contains('cl-btn-primary') ||
84                el.classList.contains('cl-btn-secondary') ||
85                el.classList.contains('sol-btn-primary') ||
86                el.classList.contains('sol-btn-secondary')) {
87              gtag('event', 'cta_click', {
88                button_text: el.textContent.trim().substring(0, 50),
89                button_url: el.href || '',
90                page_section: findSection(el)
91              });
92            }
93
94            if (el.closest('.navbar, .site-footer, nav')) {
95              gtag('event', 'nav_click', {
96                link_text: el.textContent.trim().substring(0, 50),
97                link_url: el.href || ''
98              });
99            }
100
101            if (el.closest('.sol-tile')) {
102              var tileId = el.closest('.sol-tile').dataset.solId;
103              if (tileId) {
104                gtag('event', 'solution_select', { solution_id: tileId });
105              }
106            }
107
108            if (el.href && el.href.includes('/features/')) {
109              gtag('event', 'feature_click', {
110                feature_url: el.href,
111                link_text: el.textContent.trim().substring(0, 50)
112              });
113            }
114          });
115
116          function findSection(el) {
117            var section = el.closest('[class*="section"], [class*="hero"], [class*="pricing"]');
118            return section ? section.className.split(' ')[0] : 'unknown';
119          }
120
121          // Scroll depth tracking
122          var scrollMarks = {};
123          window.addEventListener('scroll', function() {
124            if (typeof gtag !== 'function') return;
125            var docHeight = document.body.scrollHeight - window.innerHeight;
126            if (docHeight <= 0) return;
127            var pct = Math.round((window.scrollY / docHeight) * 100);
128            [25, 50, 75, 100].forEach(function(mark) {
129              if (pct >= mark && !scrollMarks[mark + '_' + location.pathname]) {
130                scrollMarks[mark + '_' + location.pathname] = true;
131                gtag('event', 'scroll_depth', { percent: mark, page: location.pathname });
132              }
133            });
134          });
135
136          document.addEventListener('turbo:load', function() {
137            scrollMarks = {};
138          });
139
140          // Also capture UTM params now that consent is given
141          var params = new URLSearchParams(window.location.search);
142          var keys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
143          var utm = {};
144          var hasUtm = false;
145          keys.forEach(function(k) {
146            var v = params.get(k);
147            if (v) { utm[k] = v; hasUtm = true; }
148          });
149          if (hasUtm) {
150            var expires = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toUTCString();
151            document.cookie = 'pb_utm=' + encodeURIComponent(JSON.stringify(utm)) + ';expires=' + expires + ';path=/;SameSite=Lax';
152          }
153        };
154
155        // Auto-load if consent already given
156        if (window.pbHasConsent()) {
157          window.pbLoadAnalytics();
158        }
159      </script>
159
160    <title>Pages Contact Us — Picklebeast</title>
161    <meta name="description" content="Your ultimate platform to organize, play, and dominate pickleball.">
162    <meta name="viewport" content="width=device-width,initial-scale=1">
163    <meta name="csrf-param" content="authenticity_token" />
164<meta name="csrf-token" content="_OVLM_mZazioTyUFfj8DxL3yaTWMVSeILfe6-_1j4Opwy8vbblXZ0W4wbr5Bhbl_C3imyjGU5viDCDuwWHA40w" />
165    <meta name="csp-nonce" />
166    
167    <!-- Preconnect to CDNs for faster resource loading -->
168    <link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
169    <link rel="preconnect" href="https://unpkg.com" crossorigin>
170    <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
171
172    <link rel="stylesheet" href="https://www.picklebeastpickleball.com/assets/application-1a585a86675ba50e8a123c445e253c928135fb97af0909a22b5b19e7e79e6de9.css" data-turbo-track="reload" />
173    <link rel="stylesheet" href="https://www.picklebeastpickleball.com/assets/sidebar-ef7f6d5658852d74c90023f02c324d784dab12a0902f85df178158d67da7b477.css" data-turbo-track="reload" />
174    <link rel="stylesheet" href="https://www.picklebeastpickleball.com/assets/sidebar_ai_orb-b8f85c2c69187d0c59a386fba86e98ea7c01029415394f7fc4d424ccd72eaf84.css" data-turbo-track="reload" />
175    <link rel="stylesheet" href="https://www.picklebeastpickleball.com/assets/actiontext-40060222850012fa9c0a1b176f663c5ad2766bd58e9b80e6226903130f992725.css" data-turbo-track="reload" />
176    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
177    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/trix.css">
178    
178<script src="https://unpkg.com/[email protected]/dist/trix.umd.min.js"></script>
178
179    <!-- Favicon -->
180    <link rel="icon" type="image/png" href="https://www.picklebeastpickleball.com/assets/blue_claws-af25fae781696fc5205ab13dd5addea04e2b7ad7406ef77dc85f48af5f3a4c66.png" />
181    <link rel="apple-touch-icon" href="https://www.picklebeastpickleball.com/assets/blue_claws-af25fae781696fc5205ab13dd5addea04e2b7ad7406ef77dc85f48af5f3a4c66.png" />
182    
183    <!-- Open Graph / Social Media -->
184    <meta property="og:type" content="website">
185    <meta property="og:title" content="Picklebeast - Ultimate Pickleball Platform">
186    <meta property="og:description" content="Your ultimate platform to organize, play, and dominate pickleball.">
187    <meta property="og:url" content="https://www.picklebeastpickleball.com/contact_us">
188    
189    <!-- Twitter Card -->
190    <meta name="twitter:card" content="summary_large_image">
191    <meta name="twitter:title" content="Picklebeast - Ultimate Pickleball Platform">
192    <meta name="twitter:description" content="Your ultimate platform to organize, play, and dominate pickleball.">
193    
194    <!-- Unified Navigation CSS -->
195    <style>
196      /* Base navigation container */
197      .nav-header {
198        padding: 16px 0;
199        width: 100%;
200      }
201
202      .nav-container {
203        max-width: 100%;
204        width: 100%;
205        margin: 0 auto;
206        padding: 0 24px;
207      }
208
209      .nav-bar {
210        display: flex;
211        align-items: center;
212        justify-content: space-between;
213        height: 70px;
214        position: relative;
215        width: 100%;
216      }
217
218      /* Logo section */
219      .nav-brand {
220        display: flex;
221        align-items: center;
222        height: 100%;
223        z-index: 10;
224      }
225
226      .nav-logo {
227        display: flex;
228        align-items: center;
229        height: 50px;
230        background: none !important;
231        border: none !important;
232        padding: 0 !important;
233      }
234
235      /* Mobile Logo - Show by default (mobile first) */
236      .nav-logo-mobile {
237        display: block;
238        height: 36px;
239        width: auto;
240        max-width: 36px;
241      }
242
243      /* Desktop Logo - Hidden by default */
244      .nav-logo-desktop {
245        display: none;
246        height: 50px;
247        width: auto;
248        max-width: 280px;
249      }
250
251      .nav-brand-text {
252        display: none; /* Hide by default on mobile */
253        margin-left: 8px;
254        font-size: 16px;
255        font-weight: 600;
256      }
257
258      /* Desktop Navigation Links - Hidden on mobile */
259      .nav-desktop-links {
260        display: none;
261        flex: 1;
262        justify-content: center;
263        align-items: center;
264        height: 100%;
265        margin: 0;
266        padding: 0;
267        list-style: none;
268        gap: 0;
269        max-width: calc(100% - 400px); /* Reserve space for logo and actions */
270        overflow: hidden;
271      }
272
273      .nav-desktop-link {
274        padding: 12px 16px;
275        font-size: 18px;
276        font-weight: 600;
277        display: flex;
278        align-items: center;
279        height: 70px;
280        text-decoration: none;
281        color: inherit;
282        transition: color 0.2s ease;
283        white-space: nowrap;
284        flex-shrink: 0;
285      }
286
287      .nav-desktop-link:hover {
288        color: #23aae0;
289      }
290
291      /* Right side actions */
292      .nav-actions-right {
293        display: flex;
294        align-items: center;
295        height: 100%;
296        gap: 16px;
297        z-index: 10;
298      }
299
300      /* Desktop Actions - Hidden on mobile */
301      .nav-desktop-actions {
302        display: none;
303        align-items: center;
304        gap: 12px;
305      }
306
307      .nav-desktop-btn {
308        padding: 8px 16px;
309        font-size: 14px;
310        font-weight: 600;
311        display: flex;
312        align-items: center;
313        height: 40px;
314        text-decoration: none;
315        border-radius: 6px;
316        transition: all 0.2s ease;
317      }
318
319      .nav-desktop-btn-outline {
320        border: 1px solid #ddd;
321        color: #333;
322        background: transparent;
323      }
324
325      .nav-desktop-btn-outline:hover {
326        border-color: #23aae0;
327        color: #23aae0;
328      }
329
330      .nav-desktop-btn-primary {
331        background: #23aae0;
332        color: white;
333        border: 1px solid #23aae0;
334      }
335
336      .nav-desktop-btn-primary:hover {
337        background: #1a8bb3;
338        border-color: #1a8bb3;
339      }
340
341      /* Cart styling */
342      .nav-cart {
343        display: flex;
344        align-items: center;
345        position: relative;
346        color: inherit;
347        text-decoration: none;
348      }
349
350      .nav-cart-icon {
351        width: 24px;
352        height: 24px;
353      }
354
355      .nav-cart-badge {
356        position: absolute;
357        top: -8px;
358        right: -8px;
359        background: #23aae0;
360        color: white;
361        border-radius: 50%;
362        font-size: 12px;
363        min-width: 20px;
364        height: 20px;
365        display: flex;
366        align-items: center;
367        justify-content: center;
368        font-weight: 600;
369      }
370
371      /* Mobile menu button */
372      .nav-menu-btn {
373        width: 40px;
374        height: 40px;
375        display: flex;
376        align-items: center;
377        justify-content: center;
378        background: none;
379        border: none;
380        cursor: pointer;
381        padding: 0;
382      }
383
384      .nav-menu-icon {
385        display: flex;
386        flex-direction: column;
387        width: 24px;
388        height: 18px;
389        justify-content: space-between;
390      }
391
392      .nav-menu-icon span {
393        display: block;
394        height: 2px;
395        width: 100%;
396        background: #23aae0;
397        transition: all 0.3s ease;
398      }
399
400      .nav-menu-btn.active .nav-menu-icon span:nth-child(1) {
401        transform: rotate(45deg) translate(6px, 6px);
402      }
403
404      .nav-menu-btn.active .nav-menu-icon span:nth-child(2) {
405        opacity: 0;
406      }
407
408      .nav-menu-btn.active .nav-menu-icon span:nth-child(3) {
409        transform: rotate(-45deg) translate(6px, -6px);
410      }
411
412      /* Mobile Menu Styles */
413      .nav-menu {
414        position: fixed;
415        top: 0;
416        left: 0;
417        width: 100%;
418        height: 100vh;
419        background: rgba(0, 0, 0, 0.95);
420        backdrop-filter: blur(10px);
421        z-index: 1000;
422        display: flex;
423        align-items: center;
424        justify-content: center;
425        opacity: 0;
426        visibility: hidden;
427        transition: all 0.3s ease;
428      }
429
430      .nav-menu.active {
431        opacity: 1;
432        visibility: visible;
433      }
434
435      .nav-menu-content {
436        text-align: center;
437        width: 100%;
438        max-width: 400px;
439        padding: 40px 20px;
440      }
441
442      .nav-links {
443        list-style: none;
444        margin: 0 0 40px 0;
445        padding: 0;
446      }
447
448      .nav-links li {
449        margin: 0 0 20px 0;
450      }
451
452      .nav-link {
453        display: block;
454        font-size: 24px;
455        font-weight: 600;
456        color: white;
457        text-decoration: none;
458        padding: 15px 0;
459        transition: color 0.2s ease;
460      }
461
462      .nav-link:hover {
463        color: #23aae0;
464      }
465
466      .nav-actions {
467        display: flex;
468        flex-direction: column;
469        gap: 16px;
470        align-items: center;
471      }
472
473      .nav-shortcuts {
474        display: flex;
475        gap: 12px;
476        margin-bottom: 20px;
477      }
478
479      .nav-shortcut-badge {
480        display: flex;
481        align-items: center;
482        justify-content: center;
483        padding: 8px 16px;
484        font-size: 14px;
485        font-weight: 600;
486        text-decoration: none;
487        border-radius: 20px;
488        min-width: 80px;
489        transition: all 0.2s ease;
490        background: #23aae0;
491        color: white;
492        border: 2px solid #23aae0;
493      }
494
495      .nav-shortcut-badge:hover {
496        background: #1a8bb3;
497        border-color: #1a8bb3;
498        transform: translateY(-1px);
499      }
500
501      .nav-user {
502        display: flex;
503        flex-direction: column;
504        gap: 16px;
505        align-items: center;
506      }
507
508      .nav-user-name {
509        font-size: 18px;
510        font-weight: 600;
511        color: white;
512      }
513
514      .nav-auth {
515        display: flex;
516        flex-direction: column;
517        gap: 16px;
518        align-items: center;
519      }
520
521      .nav-btn {
522        display: flex;
523        align-items: center;
524        justify-content: center;
525        padding: 12px 24px;
526        font-size: 16px;
527        font-weight: 600;
528        text-decoration: none;
529        border-radius: 8px;
530        min-width: 120px;
531        transition: all 0.2s ease;
532      }
533
534      .nav-btn-outline {
535        border: 2px solid #ddd;
536        color: white;
537        background: transparent;
538      }
539
540      .nav-btn-outline:hover {
541        border-color: #23aae0;
542        color: #23aae0;
543      }
544
545      .nav-btn-primary {
546        background: #23aae0;
547        color: white;
548        border: 2px solid #23aae0;
549      }
550
551      .nav-btn-primary:hover {
552        background: #1a8bb3;
553        border-color: #1a8bb3;
554      }
555
556      body.nav-menu-open {
557        overflow: hidden;
558      }
559
560      /* Small mobile screens */
561      @media (max-width: 479px) {
562        .nav-header {
563          padding: 8px 0;
564        }
565
566        .nav-bar {
567          height: 44px;
568        }
569
570        .nav-logo {
571          height: 40px;
572        }
573        
574        .nav-logo-mobile {
575          height: 40px;
576          max-width: 40px;
577        }
578
579        .nav-brand-text {
580          font-size: 14px;
581        }
582      }
583
584      /* Mobile adjustments */
585      @media (max-width: 767px) {
586        .nav-logo {
587          height: 80x;
588        }
589        
590        .nav-logo-mobile {
591          height: 80x;
592          max-width: 80x;
593        }
594
595        .nav-bar {
596          height: 50px;
597        }
598      }
599
600      /* Desktop breakpoint - 768px and above */
601      @media (min-width: 768px) {
602        .nav-header {
603          padding: 20px 0;
604        }
605
606        .nav-container {
607          padding: 0 40px;
608        }
609
610        .nav-bar {
611          height: 80px; /* Increase from 70px to 80px */
612        }
613
614        .nav-logo {
615          height: 60px; /* Increase from 50px to 60px */
616        }
617        
618        /* Show desktop logo on desktop */
619        .nav-logo-desktop {
620          display: block !important;
621          height: 60px; /* Increase from 50px to 60px */
622          max-width: 350px; /* Increase from 280px to 350px */
623        }
624        
625        /* Hide brand text on desktop since we have full logo */
626        .nav-brand-text {
627          display: none;
628        }
629
630        /* Hide mobile menu button on desktop */
631        .nav-menu-btn {
632          display: none !important;
633        }
634
635        /* Hide mobile menu on desktop */
636        .nav-menu {
637          display: none !important;
638        }
639
640        /* Desktop cart styling */
641        .nav-cart-icon {
642          width: 32px;
643          height: 32px;
644        }
645
646        .nav-cart-badge {
647          font-size: 12px;
648          min-width: 20px;
649          height: 20px;
650        }
651      }
652
653      /* Medium screens - Show mobile menu button and hide desktop nav */
654      @media (min-width: 768px) and (max-width: 1023px) {
655        .nav-menu-btn {
656          display: flex !important;
657        }
658
659        .nav-desktop-actions {
660          display: none !important;
661        }
662
663        .nav-menu {
664          display: flex !important;
665        }
666      }
667
668      /* Medium desktop screens - show navigation */
669      @media (min-width: 1024px) {
670        /* Show desktop navigation links */
671        .nav-desktop-links {
672          display: flex !important;
673          max-width: calc(100% - 500px);
674        }
675
676        /* Show desktop actions */
677        .nav-desktop-actions {
678          display: flex !important;
679        }
680
681        .nav-desktop-link {
682          padding: 12px 20px;
683        }
684      }
685      
686      @media (min-width: 1024px) {
687        .nav-bar {
688          display: flex;
689          justify-content: space-between;
690          align-items: center;
691          position: relative;
692        }
693
694        .nav-desktop-links {
695          position: absolute;
696          left: 50%;
697          transform: translateX(-50%);
698          display: flex !important;
699          z-index: 5;
700        }
701
702        .nav-brand,
703        .nav-actions-right {
704          z-index: 10;
705          position: relative;
706        }
707      }
708
709      /* Large desktop screens */
710      @media (min-width: 1200px) {
711        .nav-header {
712          padding: 24px 0;
713        }
714
715        .nav-container {
716          padding: 0 60px;
717        }
718
719        .nav-bar {
720          height: 90px;
721        }
722
723        .nav-logo {
724          height: 70px; /* Increase from 60px to 70px */
725        }
726        
727        .nav-logo-desktop {
728          height: 70px; /* Increase from 60px to 70px */
729          max-width: 400px; /* Increase from 320px to 400px */
730        }
731
732        .nav-desktop-links {
733          max-width: calc(100% - 600px);
734        }
735
736        .nav-desktop-link {
737          font-size: 20px;
738          padding: 15px 24px;
739          height: 80px;
740        }
741
742        .nav-desktop-btn {
743          font-size: 16px;
744          padding: 12px 24px;
745          height: 48px;
746        }
747
748        .nav-cart-icon {
749          width: 36px;
750          height: 36px;
751        }
752      }
753
754      /* Extra large desktop screens */
755      @media (min-width: 1600px) {
756        .nav-container {
757          padding: 0 80px;
758        }
759
760        .nav-bar {
761          height: 90px;
762        }
763
764        .nav-logo {
765          height: 70px;
766        }
767        
768        .nav-logo-desktop {
769          height: 70px;
770          max-width: 360px;
771        }
772
773        .nav-desktop-links {
774          max-width: calc(100% - 700px);
775        }
776
777        .nav-desktop-link {
778          font-size: 22px;
779          padding: 18px 28px;
780          height: 90px;
781        }
782
783        .nav-desktop-btn {
784          font-size: 18px;
785          padding: 14px 28px;
786          height: 52px;
787        }
788
789        .nav-cart-icon {
790          width: 40px;
791          height: 40px;
792        }
793  @media (max-width: 768px) {
794      }
795    
796  </style>
797    
797<script type="importmap" data-turbo-track="reload">{
798  "imports": {
799    "application": "https://www.picklebeastpickleball.com/assets/application-229e97b8723bbeb037b9324ec073b436f464d7846e93e4e5b3639a5fada11590.js",
800    "jquery": "https://code.jquery.com/jquery-3.6.0.min.js",
801    "select2": "https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js",
802    "trix": "https://unpkg.com/[email protected]/dist/trix.esm.min.js",
803    "@rails/actiontext": "https://www.picklebeastpickleball.com/assets/@rails--actiontext-4f3a26f09546c3d4e9994e5a27042ef68030489a38e0e976036691f036fb73db.js",
804    "bootstrap-datepicker": "https://www.picklebeastpickleball.com/assets/bootstrap-datepicker-ed630ee5be0f033f52b5188bf2959ef2df09671b9e895f0ceef58874e43747bc.js",
805    "flatpickr": "https://www.picklebeastpickleball.com/assets/flatpickr-a0b7f13656eae7759c27b469aece98b03150b119689e01008825f9062fa41d09.js",
806    "@popperjs/core": "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/esm/popper.min.js",
807    "bootstrap": "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.esm.min.js",
808    "@hotwired/turbo-rails": "https://www.picklebeastpickleball.com/assets/@hotwired--turbo-rails-2a45b9610c76dddaf3fb6dcf08be54cae71049c248d321865765a76bdc691a6f.js",
809    "@hotwired/turbo": "https://www.picklebeastpickleball.com/assets/@hotwired--turbo-69a5d4ec6a004af251e6b8113fad18a0c566965a55e0ecd24be24b4af1903270.js",
810    "@rails/actioncable/src": "https://www.picklebeastpickleball.com/assets/@rails--actioncable--src-03433664dcc42c1d0daf5d3b7b9c6fb3649bb01ef7d45ff9c9d1c168f6fd7c20.js",
811    "@hotwired/stimulus": "https://www.picklebeastpickleball.com/assets/@hotwired--stimulus-f92a55c2572923d02ab1eb77baa19fdc2a831d80be0cfb6a7d6a62801af6b508.js",
812    "@hotwired/stimulus-loading": "https://www.picklebeastpickleball.com/assets/stimulus-loading-3576ce92b149ad5d6959438c6f291e2426c86df3b874c525b30faad51b0d96b3.js",
813    "leagues/check_in": "https://www.picklebeastpickleball.com/assets/leagues/check_in-1e9808a17218ca19a6d9c2aa6c6ac9fe847ab032ecde35b8f749f203a78252c2.js",
814    "controllers/activity_comments_controller": "https://www.picklebeastpickleball.com/assets/controllers/activity_comments_controller-6c417f9b98c8232d19f3bfe420dc16b153a2cc348b14a599b3838f11417c2875.js",
815    "controllers/activity_feed_controller": "https://www.picklebeastpickleball.com/assets/controllers/activity_feed_controller-c0eaa4b097a3a8950a3b9184129b86760b9382c3c6104e7797821916258b58c8.js",
816    "controllers/admin_dashboard_controller": "https://www.picklebeastpickleball.com/assets/controllers/admin_dashboard_controller-b38b6f74ed84dc2f4847c01794fb9b04f2e84e6ffcc36fc8e98297acf61e71fc.js",
817    "controllers/admin_league_tabs_controller": "https://www.picklebeastpickleball.com/assets/controllers/admin_league_tabs_controller-d65b4abbcfa930b6b8821b89c56060e9e7b87967868a20d6403b4b31c422edf3.js",
818    "controllers/admin_tournament_shortcuts_controller": "https://www.picklebeastpickleball.com/assets/controllers/admin_tournament_shortcuts_controller-808d826da2f8d0012ff0651a7356f23b9b3ec560c39ea7c105b013a853773baa.js",
819    "controllers/admin_tournament_tabs_controller": "https://www.picklebeastpickleball.com/assets/controllers/admin_tournament_tabs_controller-cfbe0113129e643dcea5c29d0e24095170ccce361d5add0c9e6b81e9aff13608.js",
820    "controllers/ai_chat_controller": "https://www.picklebeastpickleball.com/assets/controllers/ai_chat_controller-012318df0db43ce5b4074e49266e5dff39f3a9630e2e5ec1161fdde598c7381f.js",
821    "controllers/application": "https://www.picklebeastpickleball.com/assets/controllers/application-c6d589ac623de36a476d6273165ef9739ee4ae4bfad82471c6fa11473d7e1abe.js",
822    "controllers/at_risk_info_controller": "https://www.picklebeastpickleball.com/assets/controllers/at_risk_info_controller-07400088897ed1899aeed0f257023d198109f1b9df16a8d2f157afcd5c01b059.js",
823    "controllers/awards_controller": "https://www.picklebeastpickleball.com/assets/controllers/awards_controller-cce699086e1f60f711d0b148e8e9a152d06d5289eceb84b52054bee01c3db0a7.js",
824    "controllers/badges_controller": "https://www.picklebeastpickleball.com/assets/controllers/badges_controller-9be77560b82f1bee5949363ec526f9d110be7d9bac3e3118ae5b0976b10f5b94.js",
825    "controllers/bp_setup_bar_controller": "https://www.picklebeastpickleball.com/assets/controllers/bp_setup_bar_controller-e53d78dbf2df46929f6cfc8b1f59899379fc17f51c37d2d2d59e1cf59e1bfe53.js",
826    "controllers/bracket_generation_modal_controller": "https://www.picklebeastpickleball.com/assets/controllers/bracket_generation_modal_controller-dd709da6223ac17cfc85cee20ce6130acd47b763d513b93387d2270284736856.js",
827    "controllers/bracket_seed_list_controller": "https://www.picklebeastpickleball.com/assets/controllers/bracket_seed_list_controller-1debbc14048ad6b1d90c8a1b66a3ba7c325674dfcbf6419681167dca09eee391.js",
828    "controllers/bracket_viewer_controller": "https://www.picklebeastpickleball.com/assets/controllers/bracket_viewer_controller-c3362661b44e3aceb53616f0edd814c565965bd8a47f7bf53753503e81b1852a.js",
829    "controllers/broadcast_notes_controller": "https://www.picklebeastpickleball.com/assets/controllers/broadcast_notes_controller-033487b33e9eeb0faf9e29191ddc1fade5454d7e8caf0d2fd65c4fc33fc6ef7e.js",
830    "controllers/broadcast_response_controller": "https://www.picklebeastpickleball.com/assets/controllers/broadcast_response_controller-fe207a9b24644f987b1bbe4e2d313393f625828784ec68f539aeaca0c0b9457f.js",
831    "controllers/camp_meeting_days_controller": "https://www.picklebeastpickleball.com/assets/controllers/camp_meeting_days_controller-f94d675c593cf2e39c556a72146ab0ad6ef2c4f8d511116501ed7ab51fd6f7fe.js",
832    "controllers/camp_registration_model_controller": "https://www.picklebeastpickleball.com/assets/controllers/camp_registration_model_controller-2c630ca1b621f3053982ad5c4b67d66ed434795dc9f0bc115139d42278b9b38f.js",
833    "controllers/chart_bar_controller": "https://www.picklebeastpickleball.com/assets/controllers/chart_bar_controller-8cc90667c531f57758533b6894839591d3ea8a84e1fba8fa6ae96a0eab57da5f.js",
834    "controllers/chart_doughnut_controller": "https://www.picklebeastpickleball.com/assets/controllers/chart_doughnut_controller-5f88636d9e7b8653935b719092df585fadc5747bf5d0ac7be9da92c83199995b.js",
835    "controllers/chart_line_controller": "https://www.picklebeastpickleball.com/assets/controllers/chart_line_controller-795e56f73ce0251e40767fb625de29a7bfe48205dbccdfc7649c4fbe8466f3cc.js",
836    "controllers/command_center_controller": "https://www.picklebeastpickleball.com/assets/controllers/command_center_controller-c72de7479b75dbf06c598059848c8c89c3f20443b04f970f7d7c411a8d529afc.js",
837    "controllers/confirm_controller": "https://www.picklebeastpickleball.com/assets/controllers/confirm_controller-552d96d3415fab1576784fe7e0401f430698977b2a7bc4777f2e8329b8a6037f.js",
838    "controllers/courts_grid_controller": "https://www.picklebeastpickleball.com/assets/controllers/courts_grid_controller-7e2f3c8643b11e9fb8a17d4243642d3b2585f0d75eb75840f2ac2b429ca5d180.js",
839    "controllers/cwv_field_insert_controller": "https://www.picklebeastpickleball.com/assets/controllers/cwv_field_insert_controller-50369613d83b10b2e65a91ba05973c2089895c4d1ff1bd6aa322603c05f521c1.js",
840    "controllers/discovery_controller": "https://www.picklebeastpickleball.com/assets/controllers/discovery_controller-a102f3cbf0826ec044d222bc47919f02535b14219b9e778efdc1c7c90202544f.js",
841    "controllers/email_block_editor_controller": "https://www.picklebeastpickleball.com/assets/controllers/email_block_editor_controller-656f1598d604a7cc2a54dd7cd9a1f11e08bc1c5ec5536f1119a0f8530e2d79e5.js",
842    "controllers/email_send_test_controller": "https://www.picklebeastpickleball.com/assets/controllers/email_send_test_controller-ad0752858c7622bf04f59db21ad424726b2dbf00a3eeb7f687277baed919ea33.js",
843    "controllers/email_sender_preview_controller": "https://www.picklebeastpickleball.com/assets/controllers/email_sender_preview_controller-5d750fc0709c429a3902f27bf5f3eb7a5be800b0440813b9c441a8a7ffdfb17a.js",
844    "controllers/email_template_editor_controller": "https://www.picklebeastpickleball.com/assets/controllers/email_template_editor_controller-9fc3ca34911424b28d48e42d5f7dd11261ca8ed1437296a43761989d56b4fb7c.js",
845    "controllers/email_template_filter_controller": "https://www.picklebeastpickleball.com/assets/controllers/email_template_filter_controller-cc689a4fd6e35d578cd8d27f0b58d87e4c74a58040829cacc2559706575c2061.js",
846    "controllers/email_template_tos_modal_controller": "https://www.picklebeastpickleball.com/assets/controllers/email_template_tos_modal_controller-4156a345f9340a940507800b5b65e695902fcd89c05e780eb8875478ff578130.js",
847    "controllers/financial_dashboard_controller": "https://www.picklebeastpickleball.com/assets/controllers/financial_dashboard_controller-8cae1323ecaae2f17030e56c9ae64620e9dcc1d9cb25638d6de87f9f647dfffe.js",
848    "controllers/hello_controller": "https://www.picklebeastpickleball.com/assets/controllers/hello_controller-549135e8e7c683a538c3d6d517339ba470fcfb79d62f738a0a089ba41851a554.js",
849    "controllers": "https://www.picklebeastpickleball.com/assets/controllers/index-8e7fd5a626aaeae52c4b8ab9805c197340f083342d574e70050c298a13376526.js",
850    "controllers/ir_pool_management_controller": "https://www.picklebeastpickleball.com/assets/controllers/ir_pool_management_controller-29c1f6104ec164bb62198cb2ddebbea674b55b661592fd6408dde052bd930f1d.js",
851    "controllers/irpm_disclosure_controller": "https://www.picklebeastpickleball.com/assets/controllers/irpm_disclosure_controller-3e53d026878a670ce3d7b49d62662edc02d604a7cde99051b09f8a885f95aec7.js",
852    "controllers/league_dupr_submission_controller": "https://www.picklebeastpickleball.com/assets/controllers/league_dupr_submission_controller-54a201b0d062ae4a9b17fc6442f4cdf2fa83bae9d576267822c323cdf87ed4fb.js",
853    "controllers/league_like_controller": "https://www.picklebeastpickleball.com/assets/controllers/league_like_controller-6e054c0bf9b96a43124f4ac846a84f0500f93c1556ffa5a29eb2e6ddcb50221c.js",
854    "controllers/league_subscribe_controller": "https://www.picklebeastpickleball.com/assets/controllers/league_subscribe_controller-1e0602c55c934e1f00e4a401f8cda7b83302b419a9057e5560d484c1dafeaf0b.js",
855    "controllers/league_wizard_controller": "https://www.picklebeastpickleball.com/assets/controllers/league_wizard_controller-71224a306f99ab989d2cc941b9dab14e2b15317423d1f9be541d81d838e56769.js",
856    "controllers/match_scoring/api_client": "https://www.picklebeastpickleball.com/assets/controllers/match_scoring/api_client-0ac2d8c2365f3d31a0bacc9fcde9da5c3ad14e31a127a99e8e3cd3e1be334564.js",
857    "controllers/match_scoring/event_handlers": "https://www.picklebeastpickleball.com/assets/controllers/match_scoring/event_handlers-6ae98f1ce6f44ca31dd059f37440748e88fffe9f160ef6688a9623163b50b408.js",
858    "controllers/match_scoring/mlp_renderer": "https://www.picklebeastpickleball.com/assets/controllers/match_scoring/mlp_renderer-bb2a907fdf3b2f875394298f414d68048df570f1fbf8232e2f50a01e237ecdaf.js",
859    "controllers/match_scoring/standard_renderer": "https://www.picklebeastpickleball.com/assets/controllers/match_scoring/standard_renderer-acf7557a51541425755cbf70b3002be6d5e6c36ec0ead807cce9b53a04c6be48.js",
860    "controllers/match_scoring/utils": "https://www.picklebeastpickleball.com/assets/controllers/match_scoring/utils-6f0bdfc6daa6360ba34ccf76093b85afcd036a6b4104d49b3df3cf0a25461c6e.js",
861    "controllers/match_scoring_controller": "https://www.picklebeastpickleball.com/assets/controllers/match_scoring_controller-26e1cfe990ea8e55a7d521b9db8e11f4cb3c2412f667e3459bb0a6e17615f0f8.js",
862    "controllers/messages_app_controller": "https://www.picklebeastpickleball.com/assets/controllers/messages_app_controller-88e37c29d9b700aa5af38b50e258d5a6e95174e18c01dce81a4702b3019ccf7c.js",
863    "controllers/money_dashboard_controller": "https://www.picklebeastpickleball.com/assets/controllers/money_dashboard_controller-aaee62091577d37f6ef86b93e4a476804b2ddf5b919be639be4250e799efbc1d.js",
864    "controllers/notifications_controller": "https://www.picklebeastpickleball.com/assets/controllers/notifications_controller-cad003fc85b7a01f6f4d480d16d028566c5997164a9f2b26b034933e211125c9.js",
865    "controllers/participants_controller": "https://www.picklebeastpickleball.com/assets/controllers/participants_controller-d525bf7c21b360203b5afb5d0612a11ffd2cc0e60e3535325107a610bd234d48.js",
866    "controllers/participants_viewer_controller": "https://www.picklebeastpickleball.com/assets/controllers/participants_viewer_controller-96f2316c719fdc80473a808e9c071c7cfd3cbf03ce789b0c1185af90ebb858e8.js",
867    "controllers/play_control_controller": "https://www.picklebeastpickleball.com/assets/controllers/play_control_controller-dfb99d489ab290e450ebf9ea35d32155c6d9ede15172d37062c09d26184dd473.js",
868    "controllers/pool_tabs_controller": "https://www.picklebeastpickleball.com/assets/controllers/pool_tabs_controller-95f32890ae2f48414f122cbbba34261265fa2517f3cf5c4bfafbb0f4143a2493.js",
869    "controllers/pools_management_controller": "https://www.picklebeastpickleball.com/assets/controllers/pools_management_controller-42d0e0aec67bca1406f663a3eb0b0e2d5226540308294a83b2a7dba528bca6ee.js",
870    "controllers/premium_ui": "https://www.picklebeastpickleball.com/assets/controllers/premium_ui-b7cd7b95ab103708fecf7c98b9766d1b3bf349c28439cd9acb012fcffb9ace8a.js",
871    "controllers/round_tabs_controller": "https://www.picklebeastpickleball.com/assets/controllers/round_tabs_controller-e25bf4b9a192e77421f2a50c000a9e3b44241a87c480f48efebe5cb88ca2f5c0.js",
872    "controllers/scouting_panel_controller": "https://www.picklebeastpickleball.com/assets/controllers/scouting_panel_controller-fdb35672bd0f0eaa90eb63e0ddd0679e7d35c70ad785122aa9e6424daa418eef.js",
873    "controllers/signing_station_controller": "https://www.picklebeastpickleball.com/assets/controllers/signing_station_controller-376e7e5f0b1be09e75371fe9effd22e9abde988416f43d3c4bb97697636f6a14.js",
874    "controllers/standings_view_controller": "https://www.picklebeastpickleball.com/assets/controllers/standings_view_controller-5b4f685cbe15fddd4863ac1debf7ab2172701a91b4c960232887c9affae4a174.js",
875    "controllers/tab_bracket_viewer_controller": "https://www.picklebeastpickleball.com/assets/controllers/tab_bracket_viewer_controller-f7571c9cb9dc536e811777a0a095f69574fde0fb9bd3c2b2ac0fff119a4316dd.js",
876    "controllers/tap_pool_manager_controller": "https://www.picklebeastpickleball.com/assets/controllers/tap_pool_manager_controller-d9675dcc57b
876c91076458be14a4d81663ab9000e62558a46842c27e2e05a53222.js",
877    "controllers/team_manager_controller": "https://www.picklebeastpickleball.com/assets/controllers/team_manager_controller-dec30b90ad2ef0a897606d2fb8c9010d9ee1b5e62978cff3fa02f7253b2d9674.js",
878    "controllers/team_roster_seed_controller": "https://www.picklebeastpickleball.com/assets/controllers/team_roster_seed_controller-1964f3476cad23551a3aebb85b7027523570961d717fb03e1c01777f7b467362.js",
879    "controllers/theme_controller": "https://www.picklebeastpickleball.com/assets/controllers/theme_controller-ac583adadcb9767d25339f574eab6b945ec6c223110e2b0b62d4238e9d7e0884.js",
880    "controllers/tournament_broadcast_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_broadcast_controller-e63c5e3b88ae872be809867af672c612fcec53253300cc19b600274105ee4a47.js",
881    "controllers/tournament_check_in_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_check_in_controller-c84c7e6d21a44e35f8ec8d246e3d53e2842f97c86f74f3acfacb6c82098679a2.js",
882    "controllers/tournament_dupr_picker_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_dupr_picker_controller-6d8fb3335e3cf1a686f4031becc7308e383c13a2b9acdce1650115eeff175285.js",
883    "controllers/tournament_dupr_submission_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_dupr_submission_controller-ae56b32755eded1736be009755cef0dd36c9e30171901ed1c5eb11302e451aaa.js",
884    "controllers/tournament_notifications_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_notifications_controller-d6159100fab0e7f6925298bd47b45774d6ad1d5acccb4b243ccec6ddc1af29c8.js",
885    "controllers/tournament_tabs_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_tabs_controller-b9d27bd322ed84cba5e5b6f0ba2883e0ed24521023f4c5155755aa0a8e81d642.js",
886    "controllers/tournament_teams_v2_add_team_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_add_team_controller-0a76671a4820bbd7a28d7f49a78d82e7f51da29b3fd5a82fb2394a05ca04c6ca.js",
887    "controllers/tournament_teams_v2_broadcast_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_broadcast_controller-bb973cd2fbfb175b4955b5520babce0dae14d6cfbd12d54df3613c257c093435.js",
888    "controllers/tournament_teams_v2_clone_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_clone_controller-423a08e54ca28f77445b4b9500a9b5f0d741936e1886cda4be52596734d1c6ae.js",
889    "controllers/tournament_teams_v2_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_controller-fdffe040f58b8cf8a0de7b492b3d2084c23030c504cd238a062ea042623cd431.js",
890    "controllers/tournament_teams_v2_drawer_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_drawer_controller-6ac8abc6d7dd0c83b3219578fda4cf6254d25a913c5d5972f744c5128c4952ea.js",
891    "controllers/tournament_teams_v2_import_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_import_controller-435ad409dd807b7b38b212bdae0f4febb5ea1dd5c087e501f2730895c1409ef0.js",
892    "controllers/tournament_teams_v2_mark_paid_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_mark_paid_controller-880e9ce2987f4912c4ffbfce196b17093f282be42f324aefcdd6eb8259b8f53b.js",
893    "controllers/tournament_teams_v2_refund_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_refund_controller-3b2dc8c7634cf3543beb7ad41e2758ef9127925245fc8e762c6987918e7b2aa2.js",
894    "controllers/tournament_teams_v2_reseed_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_reseed_controller-4709a8ab2ac14c2d1228a0cc2943d992d8aab3b8d4f283e44c99045c068024fb.js",
895    "controllers/tournament_template_save_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_template_save_controller-6ab2170e5ffaf2b4996161c5205897de8d3457bea3693f2b98af68745cd9d0d1.js",
896    "controllers/tournament_wizard_controller": "https://www.picklebeastpickleball.com/assets/controllers/tournament_wizard_controller-dccb8ed6e6102d481ed84e6b19b58219ec7cb23401367554f1b39c289f5ff376.js",
897    "controllers/tv_display_controller": "https://www.picklebeastpickleball.com/assets/controllers/tv_display_controller-ab6cd9af2a2085f84404388cb57ff4eebb03bff4560f49049812b0ae767caecc.js",
898    "controllers/view_mode_toggle_controller": "https://www.picklebeastpickleball.com/assets/controllers/view_mode_toggle_controller-12cbc186bd2019b2774469547bc64a0a9959c66555471bcac1bac963d5518a5b.js",
899    "controllers/waiver_field_builder_controller": "https://www.picklebeastpickleball.com/assets/controllers/waiver_field_builder_controller-cc1f80c5eddde141a5eb9d33b285ab2d99d057c6d8cf08b0a87d1c7ad217c86a.js",
900    "channels/consumer": "https://www.picklebeastpickleball.com/assets/channels/consumer-4eaf7eb8102db32e7caa74bceacb3a0119d9ab9a1190024dd906fd97cbc19a90.js",
901    "channels": "https://www.picklebeastpickleball.com/assets/channels/index-2983a1503d73f62703fe53d06f8d3b4d6829d995276142c70e1a4acf1ab7e65a.js",
902    "channels/rejected_default": "https://www.picklebeastpickleball.com/assets/channels/rejected_default-95e092c4698ca1b4e546800b9c147751d204602588c8e46c281a1ce626830bef.js",
903    "lib/signing_errors": "https://www.picklebeastpickleball.com/assets/lib/signing_errors-e6b9dbd67295f653268c5ceda7c1b2573816a94faa2d13e486edc0bc7494a236.js"
904  }
905}</script>
905
906<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/application-229e97b8723bbeb037b9324ec073b436f464d7846e93e4e5b3639a5fada11590.js">
907<link rel="modulepreload" href="https://code.jquery.com/jquery-3.6.0.min.js">
908<link rel="modulepreload" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js">
909<link rel="modulepreload" href="https://unpkg.com/[email protected]/dist/trix.esm.min.js">
910<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/@rails--actiontext-4f3a26f09546c3d4e9994e5a27042ef68030489a38e0e976036691f036fb73db.js">
911<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/bootstrap-datepicker-ed630ee5be0f033f52b5188bf2959ef2df09671b9e895f0ceef58874e43747bc.js">
912<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/flatpickr-a0b7f13656eae7759c27b469aece98b03150b119689e01008825f9062fa41d09.js">
913<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/esm/popper.min.js">
914<link rel="modulepreload" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.esm.min.js">
915<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/@hotwired--turbo-rails-2a45b9610c76dddaf3fb6dcf08be54cae71049c248d321865765a76bdc691a6f.js">
916<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/@hotwired--turbo-69a5d4ec6a004af251e6b8113fad18a0c566965a55e0ecd24be24b4af1903270.js">
917<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/@rails--actioncable--src-03433664dcc42c1d0daf5d3b7b9c6fb3649bb01ef7d45ff9c9d1c168f6fd7c20.js">
918<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/@hotwired--stimulus-f92a55c2572923d02ab1eb77baa19fdc2a831d80be0cfb6a7d6a62801af6b508.js">
919<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/stimulus-loading-3576ce92b149ad5d6959438c6f291e2426c86df3b874c525b30faad51b0d96b3.js">
920<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/leagues/check_in-1e9808a17218ca19a6d9c2aa6c6ac9fe847ab032ecde35b8f749f203a78252c2.js">
921<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/activity_comments_controller-6c417f9b98c8232d19f3bfe420dc16b153a2cc348b14a599b3838f11417c2875.js">
922<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/activity_feed_controller-c0eaa4b097a3a8950a3b9184129b86760b9382c3c6104e7797821916258b58c8.js">
923<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/admin_dashboard_controller-b38b6f74ed84dc2f4847c01794fb9b04f2e84e6ffcc36fc8e98297acf61e71fc.js">
924<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/admin_league_tabs_controller-d65b4abbcfa930b6b8821b89c56060e9e7b87967868a20d6403b4b31c422edf3.js">
925<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/admin_tournament_shortcuts_controller-808d826da2f8d0012ff0651a7356f23b9b3ec560c39ea7c105b013a853773baa.js">
926<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/admin_tournament_tabs_controller-cfbe0113129e643dcea5c29d0e24095170ccce361d5add0c9e6b81e9aff13608.js">
927<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/ai_chat_controller-012318df0db43ce5b4074e49266e5dff39f3a9630e2e5ec1161fdde598c7381f.js">
928<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/application-c6d589ac623de36a476d6273165ef9739ee4ae4bfad82471c6fa11473d7e1abe.js">
929<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/at_risk_info_controller-07400088897ed1899aeed0f257023d198109f1b9df16a8d2f157afcd5c01b059.js">
930<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/awards_controller-cce699086e1f60f711d0b148e8e9a152d06d5289eceb84b52054bee01c3db0a7.js">
931<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/badges_controller-9be77560b82f1bee5949363ec526f9d110be7d9bac3e3118ae5b0976b10f5b94.js">
932<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/bp_setup_bar_controller-e53d78dbf2df46929f6cfc8b1f59899379fc17f51c37d2d2d59e1cf59e1bfe53.js">
933<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/bracket_generation_modal_controller-dd709da6223ac17cfc85cee20ce6130acd47b763d513b93387d2270284736856.js">
934<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/bracket_seed_list_controller-1debbc14048ad6b1d90c8a1b66a3ba7c325674dfcbf6419681167dca09eee391.js">
935<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/bracket_viewer_controller-c3362661b44e3aceb53616f0edd814c565965bd8a47f7bf53753503e81b1852a.js">
936<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/broadcast_notes_controller-033487b33e9eeb0faf9e29191ddc1fade5454d7e8caf0d2fd65c4fc33fc6ef7e.js">
937<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/broadcast_response_controller-fe207a9b24644f987b1bbe4e2d313393f625828784ec68f539aeaca0c0b9457f.js">
938<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/camp_meeting_days_controller-f94d675c593cf2e39c556a72146ab0ad6ef2c4f8d511116501ed7ab51fd6f7fe.js">
939<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/camp_registration_model_controller-2c630ca1b621f3053982ad5c4b67d66ed434795dc9f0bc115139d42278b9b38f.js">
940<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/chart_bar_controller-8cc90667c531f57758533b6894839591d3ea8a84e1fba8fa6ae96a0eab57da5f.js">
941<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/chart_doughnut_controller-5f88636d9e7b8653935b719092df585fadc5747bf5d0ac7be9da92c83199995b.js">
942<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/chart_line_controller-795e56f73ce0251e40767fb625de29a7bfe48205dbccdfc7649c4fbe8466f3cc.js">
943<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/command_center_controller-c72de7479b75dbf06c598059848c8c89c3f20443b04f970f7d7c411a8d529afc.js">
944<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/confirm_controller-552d96d3415fab1576784fe7e0401f430698977b2a7bc4777f2e8329b8a6037f.js">
945<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/courts_grid_controller-7e2f3c8643b11e9fb8a17d4243642d3b2585f0d75eb75840f2ac2b429ca5d180.js">
946<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/cwv_field_insert_controller-50369613d83b10b2e65a91ba05973c2089895c4d1ff1bd6aa322603c05f521c1.js">
947<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/discovery_controller-a102f3cbf0826ec044d222bc47919f02535b14219b9e778efdc1c7c90202544f.js">
948<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/email_block_editor_controller-656f1598d604a7cc2a54dd7cd9a1f11e08bc1c5ec5536f1119a0f8530e2d79e5.js">
949<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/email_send_test_controller-ad0752858c7622bf04f59db21ad424726b2dbf00a3eeb7f687277baed919ea33.js">
950<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/email_sender_preview_controller-5d750fc0709c429a3902f27bf5f3eb7a5be800b0440813b9c441a8a7ffdfb17a.js">
951<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/email_template_editor_controller-9fc3ca34911424b28d48e42d5f7dd11261ca8ed1437296a43761989d56b4fb7c.js">
952<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/email_template_filter_controller-cc689a4fd6e35d578cd8d27f0b58d87e4c74a58040829cacc2559706575c2061.js">
953<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/email_template_tos_modal_controller-4156a345f9340a940507800b5b65e695902fcd89c05e780eb8875478ff578130.js">
954<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/financial_dashboard_controller-8cae1323ecaae2f17030e56c9ae64620e9dcc1d9cb25638d6de87f9f647dfffe.js">
955<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/hello_controller-549135e8e7c683a538c3d6d517339ba470fcfb79d62f738a0a089ba41851a554.js">
956<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/index-8e7fd5a626aaeae52c4b8ab9805c197340f083342d574e70050c298a13376526.js">
957<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/ir_pool_management_c
957ontroller-29c1f6104ec164bb62198cb2ddebbea674b55b661592fd6408dde052bd930f1d.js">
958<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/irpm_disclosure_controller-3e53d026878a670ce3d7b49d62662edc02d604a7cde99051b09f8a885f95aec7.js">
959<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/league_dupr_submission_controller-54a201b0d062ae4a9b17fc6442f4cdf2fa83bae9d576267822c323cdf87ed4fb.js">
960<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/league_like_controller-6e054c0bf9b96a43124f4ac846a84f0500f93c1556ffa5a29eb2e6ddcb50221c.js">
961<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/league_subscribe_controller-1e0602c55c934e1f00e4a401f8cda7b83302b419a9057e5560d484c1dafeaf0b.js">
962<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/league_wizard_controller-71224a306f99ab989d2cc941b9dab14e2b15317423d1f9be541d81d838e56769.js">
963<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/match_scoring/api_client-0ac2d8c2365f3d31a0bacc9fcde9da5c3ad14e31a127a99e8e3cd3e1be334564.js">
964<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/match_scoring/event_handlers-6ae98f1ce6f44ca31dd059f37440748e88fffe9f160ef6688a9623163b50b408.js">
965<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/match_scoring/mlp_renderer-bb2a907fdf3b2f875394298f414d68048df570f1fbf8232e2f50a01e237ecdaf.js">
966<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/match_scoring/standard_renderer-acf7557a51541425755cbf70b3002be6d5e6c36ec0ead807cce9b53a04c6be48.js">
967<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/match_scoring/utils-6f0bdfc6daa6360ba34ccf76093b85afcd036a6b4104d49b3df3cf0a25461c6e.js">
968<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/match_scoring_controller-26e1cfe990ea8e55a7d521b9db8e11f4cb3c2412f667e3459bb0a6e17615f0f8.js">
969<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/messages_app_controller-88e37c29d9b700aa5af38b50e258d5a6e95174e18c01dce81a4702b3019ccf7c.js">
970<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/money_dashboard_controller-aaee62091577d37f6ef86b93e4a476804b2ddf5b919be639be4250e799efbc1d.js">
971<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/notifications_controller-cad003fc85b7a01f6f4d480d16d028566c5997164a9f2b26b034933e211125c9.js">
972<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/participants_controller-d525bf7c21b360203b5afb5d0612a11ffd2cc0e60e3535325107a610bd234d48.js">
973<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/participants_viewer_controller-96f2316c719fdc80473a808e9c071c7cfd3cbf03ce789b0c1185af90ebb858e8.js">
974<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/play_control_controller-dfb99d489ab290e450ebf9ea35d32155c6d9ede15172d37062c09d26184dd473.js">
975<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/pool_tabs_controller-95f32890ae2f48414f122cbbba34261265fa2517f3cf5c4bfafbb0f4143a2493.js">
976<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/pools_management_controller-42d0e0aec67bca1406f663a3eb0b0e2d5226540308294a83b2a7dba528bca6ee.js">
977<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/premium_ui-b7cd7b95ab103708fecf7c98b9766d1b3bf349c28439cd9acb012fcffb9ace8a.js">
978<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/round_tabs_controller-e25bf4b9a192e77421f2a50c000a9e3b44241a87c480f48efebe5cb88ca2f5c0.js">
979<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/scouting_panel_controller-fdb35672bd0f0eaa90eb63e0ddd0679e7d35c70ad785122aa9e6424daa418eef.js">
980<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/signing_station_controller-376e7e5f0b1be09e75371fe9effd22e9abde988416f43d3c4bb97697636f6a14.js">
981<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/standings_view_controller-5b4f685cbe15fddd4863ac1debf7ab2172701a91b4c960232887c9affae4a174.js">
982<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tab_bracket_viewer_controller-f7571c9cb9dc536e811777a0a095f69574fde0fb9bd3c2b2ac0fff119a4316dd.js">
983<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tap_pool_manager_controller-d9675dcc57b
983c91076458be14a4d81663ab9000e62558a46842c27e2e05a53222.js">
984<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/team_manager_controller-dec30b90ad2ef0a897606d2fb8c9010d9ee1b5e62978cff3fa02f7253b2d9674.js">
985<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/team_roster_seed_controller-1964f3476cad23551a3aebb85b7027523570961d717fb03e1c01777f7b467362.js">
986<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/theme_controller-ac583adadcb9767d25339f574eab6b945ec6c223110e2b0b62d4238e9d7e0884.js">
987<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_broadcast_controller-e63c5e3b88ae872be809867af672c612fcec53253300cc19b600274105ee4a47.js">
988<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_check_in_controller-c84c7e6d21a44e35f8ec8d246e3d53e2842f97c86f74f3acfacb6c82098679a2.js">
989<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_dupr_picker_controller-6d8fb3335e3cf1a686f4031becc7308e383c13a2b9acdce1650115eeff175285.js">
990<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_dupr_submission_controller-ae56b32755eded1736be009755cef0dd36c9e30171901ed1c5eb11302e451aaa.js">
991<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_notifications_controller-d6159100fab0e7f6925298bd47b45774d6ad1d5acccb4b243ccec6ddc1af29c8.js">
992<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_tabs_controller-b9d27bd322ed84cba5e5b6f0ba2883e0ed24521023f4c5155755aa0a8e81d642.js">
993<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_add_team_controller-0a76671a4820bbd7a28d7f49a78d82e7f51da29b3fd5a82fb2394a05ca04c6ca.js">
994<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_broadcast_controller-bb973cd2fbfb175b4955b5520babce0dae14d6cfbd12d54df3613c257c093435.js">
995<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_clone_controller-423a08e54ca28f77445b4b9500a9b5f0d741936e1886cda4be52596734d1c6ae.js">
996<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_controller-fdffe040f58b8cf8a0de7b492b3d2084c23030c504cd238a062ea042623cd431.js">
997<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_drawer_controller-6ac8abc6d7dd0c83b3219578fda4cf6254d25a913c5d5972f744c5128c4952ea.js">
998<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_import_controller-435ad409dd807b7b38b212bdae0f4febb5ea1dd5c087e501f2730895c1409ef0.js">
999<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_mark_paid_controller-880e9ce2987f4912c4ffbfce196b17093f282be42f324aefcdd6eb8259b8f53b.js">
1000<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_refund_controller-3b2dc8c7634cf3543beb7ad41e2758ef9127925245fc8e762c6987918e7b2aa2.js">
1001<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_teams_v2_reseed_controller-4709a8ab2ac14c2d1228a0cc2943d992d8aab3b8d4f283e44c99045c068024fb.js">
1002<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_template_save_controller-6ab2170e5ffaf2b4996161c5205897de8d3457bea3693f2b98af68745cd9d0d1.js">
1003<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tournament_wizard_controller-dccb8ed6e6102d481ed84e6b19b58219ec7cb23401367554f1b39c289f5ff376.js">
1004<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/tv_display_controller-ab6cd9af2a2085f84404388cb57ff4eebb03bff4560f49049812b0ae767caecc.js">
1005<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/view_mode_toggle_controller-12cbc186bd2019b2774469547bc64a0a9959c66555471bcac1bac963d5518a5b.js">
1006<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/controllers/waiver_field_builder_controller-cc1f80c5eddde141a5eb9d33b285ab2d99d057c6d8cf08b0a87d1c7ad217c86a.js">
1007<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/channels/consumer-4eaf7eb8102db32e7caa74bceacb3a0119d9ab9a1190024dd906fd97cbc19a90.js">
1008<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/channels/index-2983a1503d73f62703fe53d06f8d3b4d6829d995276142c70e1a4acf1ab7e65a.js">
1009<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/channels/rejected_default-95e092c4698ca1b4e546800b9c147751d204602588c8e46c281a1ce626830bef.js">
1010<link rel="modulepreload" href="https://www.picklebeastpickleball.com/assets/lib/signing_errors-e6b9dbd67295f653268c5ceda7c1b2573816a94faa2d13e486edc0bc7494a236.js">
1011<script type="module">import "application"</script>
1011
1012    
1012<script src="https://www.picklebeastpickleball.com/assets/theme-toggle-ddff1c9b2a582a6c816d36e22439f4dac2b90bdbda8077943ad54ba439e9aba1.js" defer="defer"></script>
1012
1013  <style>
1014.pbh-nav {
1015  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
1016  padding: 8px 32px; min-height: 56px;
1017  display: flex; align-items: center;
1018  transition: background 0.4s ease, box-shadow 0.4s ease;
1019}
1020.pbh-nav.scrolled {
1021  background: rgba(0,0,0,0.85);
1022  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
1023  box-shadow: 0 1px 0 rgba(255,255,255,0.08);
1024}
1025.pbh-nav-inner {
1026  width: 100%;
1027  display: flex; align-items: center; justify-content: space-between;
1028  flex-wrap: wrap; gap: 6px 12px;
1029}
1030.pbh-nav-left { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; min-width: 0; }
1031.pbh-nav-logo-claws { height: 30px; width: auto; flex: 0 0 auto; }
1032.pbh-nav-logo-name { height: 22px; width: auto; flex: 0 0 auto; }
1033.pbh-nav-links { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
1034.pbh-nav-chip {
1035  padding: 6px 14px; border-radius: 100px;
1036  font-size: 0.78rem; font-weight: 500; color: rgba(255,255,255,0.7);
1037  text-decoration: none; transition: color 0.2s ease, background 0.2s ease;
1038  border: 1px solid rgba(255,255,255,0.08);
1039  background: none; cursor: pointer;
1040  white-space: nowrap;
1041}
1042.pbh-nav-chip:hover {
1043  color: white; background: rgba(255,255,255,0.08);
1044  border-color: rgba(255,255,255,0.15);
1045}
1046.pbh-nav-chip-accent {
1047  color: #23aae0; border: 1px solid rgba(35,170,224,0.3);
1048}
1049.pbh-nav-chip-accent:hover {
1050  background: rgba(35,170,224,0.1); color: #38d9ff;
1051}
1052
1053/* Multi-club dropdown */
1054.pbh-nav-dropdown { position: relative; }
1055.pbh-nav-dropdown-toggle {
1056  display: flex; align-items: center; gap: 4px;
1057}
1058.pbh-nav-dropdown-toggle i { font-size: 0.55rem; opacity: 0.6; }
1059.pbh-nav-dropdown-menu {
1060  display: none; position: absolute; top: calc(100% + 8px); right: 0;
1061  background: rgba(15,15,17,0.95); border: 1px solid rgba(255,255,255,0.12);
1062  border-radius: 12px; padding: 6px 0; min-width: 220px;
1063  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
1064  z-index: 1001; box-shadow: 0 8px 32px rgba(0,0,0,0.5);
1065}
1066.pbh-nav-dropdown.open .pbh-nav-dropdown-menu { display: block; }
1067.pbh-nav-dropdown-menu a {
1068  display: block; padding: 10px 16px; color: rgba(255,255,255,0.75);
1069  text-decoration: none; font-size: 0.82rem; font-weight: 500;
1070  transition: background 0.15s ease, color 0.15s ease;
1071}
1072.pbh-nav-dropdown-menu a:hover {
1073  background: rgba(255,255,255,0.08); color: white;
1074}
1075.pbh-nav-dropdown-label {
1076  padding: 8px 16px 4px; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.06em;
1077  text-transform: uppercase; color: rgba(255,255,255,0.4);
1078}
1079.pbh-nav-dropdown-divider { height: 1px; background: rgba(255,255,255,0.1); margin: 6px 0; }
1080.pbh-nav-avatar-toggle {
1081  background: none; border: none; cursor: pointer; padding: 2px;
1082  border-radius: 50%; transition: opacity 0.2s ease;
1083}
1084.pbh-nav-avatar-toggle:hover { opacity: 0.8; }
1085
1086@media (max-width: 1024px) {
1087  .pbh-nav { padding: 0 16px; }
1088  .pbh-nav-links { gap: 2px; }
1089  .pbh-nav-chip { padding: 5px 10px; font-size: 0.68rem; }
1090  .pbh-nav-hide-mobile { display: none !important; }
1091  .pbh-nav-hamburger { display: flex !important; }
1092}
1093@media (max-width: 640px) {
1094  .pbh-nav-logo-name { display: none; }
1095  .pbh-nav-links > .pbh-nav-chip,
1096  .pbh-nav-links > .pbh-nav-dropdown { display: none !important; }
1097  .pbh-nav-hamburger { display: flex !important; }
1098}
1099
1100/* Hamburger button */
1101.pbh-nav-hamburger {
1102  display: none;
1103  align-items: center; justify-content: center;
1104  width: 36px; height: 36px; border-radius: 10px;
1105  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
1106  color: rgba(255,255,255,0.7); cursor: pointer;
1107  transition: all 0.2s ease;
1108}
1109.pbh-nav-hamburger:hover {
1110  background: rgba(255,255,255,0.12); color: white;
1111}
1112.pbh-nav-hamburger i { font-size: 1rem; }
1113
1114/* Mobile slide-out menu */
1115.pbh-mobile-menu {
1116  display: none;
1117  position: fixed; inset: 0;
1118  z-index: 10000;
1119}
1120.pbh-mobile-menu.open { display: block; }
1121.pbh-mobile-menu-backdrop {
1122  position: absolute; inset: 0;
1123  background: rgba(0,0,0,0.6);
1124  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
1125}
1126.pbh-mobile-menu-panel {
1127  position: absolute; top: 0; right: 0; bottom: 0;
1128  width: 280px; max-width: 85vw;
1129  background: rgba(10,10,12,0.97);
1130  border-left: 1px solid rgba(255,255,255,0.08);
1131  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
1132  padding: 20px 0;
1133  transform: translateX(100%);
1134  transition: transform 0.3s ease;
1135  overflow-y: auto; -webkit-overflow-scrolling: touch;
1136}
1137.pbh-mobile-menu.open .pbh-mobile-menu-panel {
1138  transform: translateX(0);
1139}
1140.pbh-mobile-menu-close {
1141  display: flex; align-items: center; justify-content: flex-end;
1142  padding: 0 20px 16px;
1143}
1144.pbh-mobile-menu-close button {
1145  background: none; border: none; color: rgba(255,255,255,0.5);
1146  font-size: 1.2rem; cursor: pointer; padding: 4px;
1147  transition: color 0.2s ease;
1148}
1149.pbh-mobile-menu-close button:hover { color: white; }
1150.pbh-mobile-menu-links {
1151  display: flex; flex-direction: column; gap: 2px; padding: 0 12px;
1152}
1153.pbh-mobile-menu-links a {
1154  display: flex; align-items: center; gap: 12px;
1155  padding: 14px 16px; border-radius: 12px;
1156  color: rgba(255,255,255,0.7); text-decoration: none;
1157  font-size: 0.95rem; font-weight: 500;
1158  transition: background 0.15s ease, color 0.15s ease;
1159}
1160.pbh-mobile-menu-links a:hover {
1161  background: rgba(255,255,255,0.06); color: white;
1162}
1163.pbh-mobile-menu-links a i {
1164  width: 20px; text-align: center; font-size: 0.85rem;
1165  color: rgba(35,170,224,0.6);
1166}
1167.pbh-mobile-menu-links .pbh-mobile-divider {
1168  height: 1px; background: rgba(255,255,255,0.06);
1169  margin: 8px 16px;
1170}
1171.pbh-mobile-menu-links .pbh-mobile-accent {
1172  color: #23aae0;
1173}
1174.pbh-mobile-menu-links .pbh-mobile-accent i {
1175  color: #23aae0;
1176}
1177/* 2026-05-26 — Sectioned mobile menu */
1178.pbh-mobile-section-label {
1179  display: flex; align-items: center; gap: 8px;
1180  padding: 18px 20px 6px;
1181  font-size: 0.7rem; font-weight: 700;
1182  letter-spacing: 0.08em;
1183  text-transform: uppercase;
1184  color: rgba(255,255,255,0.4);
1185}
1186.pbh-mobile-section-label:first-child { padding-top: 8px; }
1187.pbh-mobile-section-count {
1188  margin-left: 4px;
1189  padding: 1px 7px;
1190  font-size: 0.62rem;
1191  font-weight: 700;
1192  background: rgba(255,255,255,0.08);
1193  color: rgba(255,255,255,0.6);
1194  border-radius: 100px;
1195}
1196.pbh-mobile-clubs-group { display: contents; }
1197.pbh-mobile-clubs-toggle {
1198  display: flex; align-items: center; gap: 8px;
1199  width: 100%;
1200  padding: 10px 20px;
1201  background: transparent;
1202  border: none;
1203  color: rgba(255,255,255,0.55);
1204  font-size: 0.82rem;
1205  font-weight: 600;
1206  cursor: pointer;
1207  text-align: left;
1208}
1209.pbh-mobile-clubs-toggle i {
1210  font-size: 0.7rem;
1211  transition: transform 0.18s ease;
1212}
1213.pbh-mobile-clubs-group.is-open .pbh-mobile-clubs-toggle i {
1214  transform: rotate(180deg);
1215}
1216.pbh-mobile-clubs-rest { display: contents; }
1217
1218/* Theme toggle */
1219.pbh-nav-theme-toggle {
1220  display: flex; align-items: center; justify-content: center;
1221  width: 34px; height: 34px; border-radius: 50%;
1222  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
1223  color: rgba(255,255,255,0.6); cursor: pointer;
1224  transition: all 0.2s ease; margin-left: 4px;
1225}
1226.pbh-nav-theme-toggle:hover {
1227  background: rgba(255,255,255,0.12); color: white;
1228}
1229/* Landing nav is always dark — no light mode variants */
1230.pbh-theme-sun { display: none; }
1231.pbh-theme-moon { display: block; }
1232</style>
1233<style>
1234.contact-page {
1235  background: linear-gradient(180deg, #1a1a1d 0%, #2d2d30 100%);
1236  min-height: 100vh;
1237  padding: 60px 20px;
1238}
1239
1240.contact-page::before {
1241  content: '';
1242  position: fixed;
1243  top: 0; left: 0; right: 0; bottom: 0;
1244  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(139,92,246,0.03)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
1245  pointer-events: none;
1246  z-index: 0;
1247}
1248
1249.contact-container {
1250  max-width: 600px;
1251  margin: 0 auto;
1252  position: relative;
1253  z-index: 1;
1254}
1255
1256.contact-header {
1257  text-align: center;
1258  margin-bottom: 40px;
1259}
1260
1261.contact-badge {
1262  display: inline-flex;
1263  align-items: center;
1264  gap: 8px;
1265  background: rgba(139, 92, 246, 0.15);
1266  border: 1px solid rgba(139, 92, 246, 0.3);
1267  border-radius: 50px;
1268  padding: 8px 20px;
1269  margin-bottom: 20px;
1270  color: #c4b5fd;
1271  font-size: 0.875rem;
1272  font-weight: 600;
1273  text-transform: uppercase;
1274  letter-spacing: 0.1em;
1275}
1276
1277.contact-badge i { color: #a78bfa; }
1278
1279.contact-title {
1280  font-size: 2.5rem;
1281  font-weight: 900;
1282  color: white;
1283  margin: 0 0 12px 0;
1284}
1285
1286.contact-subtitle {
1287  font-size: 1.1rem;
1288  color: rgba(255, 255, 255, 0.6);
1289  margin: 0;
1290}
1291
1292.contact-card {
1293  background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(139, 92, 246, 0.02) 100%);
1294  border: 1px solid rgba(139, 92, 246, 0.2);
1295  border-radius: 24px;
1296  padding: 40px;
1297}
1298
1299.contact-row {
1300  display: grid;
1301  grid-template-columns: 1fr 1fr;
1302  gap: 20px;
1303}
1304
1305@media (max-width: 600px) {
1306  .contact-row { grid-template-columns: 1fr; }
1307  .contact-card { padding: 24px; }
1308}
1309
1310.contact-field {
1311  margin-bottom: 24px;
1312}
1313
1314.contact-label {
1315  display: block;
1316  font-size: 0.9rem;
1317  font-weight: 600;
1318  color: rgba(255, 255, 255, 0.8);
1319  margin-bottom: 8px;
1320}
1321
1322.contact-input {
1323  width: 100%;
1324  padding: 14px 18px;
1325  background: rgba(255, 255, 255, 0.05);
1326  border: 1px solid rgba(255, 255, 255, 0.15);
1327  border-radius: 12px;
1328  font-size: 1rem;
1329  color: white;
1330  transition: all 0.2s;
1331}
1332
1333.contact-input::placeholder {
1334  color: rgba(255, 255, 255, 0.35);
1335}
1336
1337.contact-input:focus {
1338  outline: none;
1339  border-color: #8b5cf6;
1340  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);
1341  background: rgba(255, 255, 255, 0.08);
1342}
1343
1344textarea.contact-input {
1345  min-height: 140px;
1346  resize: vertical;
1347}
1348
1349.contact-submit {
1350  width: 100%;
1351  padding: 16px 32px;
1352  background: linear-gradient(135deg, #8b5cf6, #7c3aed);
1353  color: white;
1354  border: none;
1355  border-radius: 12px;
1356  font-size: 1rem;
1357  font-weight: 700;
1358  cursor: pointer;
1359  transition: all 0.3s ease;
1360  display: flex;
1361  align-items: center;
1362  justify-content: center;
1363  gap: 10px;
1364}
1365
1366.contact-submit:hover {
1367  background: linear-gradient(135deg, #9d7afa, #8b5cf6);
1368  transform: translateY(-2px);
1369  box-shadow: 0 8px 24px rgba(139, 92, 246, 0.4);
1370}
1371
1372.contact-submit:active {
1373  transform: translateY(0);
1374}
1375
1376/* Flash messages */
1377.contact-flash {
1378  padding: 16px 20px;
1379  border-radius: 12px;
1380  margin-bottom: 24px;
1381  display: flex;
1382  align-items: center;
1383  gap: 12px;
1384  font-weight: 500;
1385}
1386
1387.contact-flash.success {
1388  background: rgba(34, 197, 94, 0.15);
1389  border: 1px solid rgba(34, 197, 94, 0.3);
1390  color: #22c55e;
1391}
1392
1393.contact-flash.error {
1394  background: rgba(239, 68, 68, 0.15);
1395  border: 1px solid rgba(239, 68, 68, 0.3);
1396  color: #f87171;
1397}
1398</style>
1399
1400  </head>
1401
1402  <body>
1403    <style>
1404/* ==============================================
1405   Accessibility Styles
1406   ============================================== */
1407
1408/* Skip Links */
1409.skip-links {
1410  position: absolute;
1411  top: 0;
1412  left: 0;
1413  width: 100%;
1414  z-index: 10000;
1415}
1416
1417.skip-link {
1418  position: absolute;
1419  top: -100%;
1420  left: 50%;
1421  transform: translateX(-50%);
1422  background: var(--pb-accent, #23AAE0);
1423  color: white;
1424  padding: 1rem 1.5rem;
1425  font-size: 1rem;
1426  font-weight: 600;
1427  text-decoration: none;
1428  border-radius: 0 0 8px 8px;
1429  z-index: 10001;
1430  transition: top 0.15s ease;
1431}
1432
1433.skip-link:focus {
1434  top: 0;
1435  outline: none;
1436  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
1437}
1438
1439/* Focus Indicators */
1440*:focus-visible {
1441  outline: 3px solid var(--pb-accent, #23AAE0);
1442  outline-offset: 2px;
1443}
1444
1445/* Remove outline for mouse users */
1446*:focus:not(:focus-visible) {
1447  outline: none;
1448}
1449
1450/* Custom focus styles for interactive elements */
1451a:focus-visible,
1452button:focus-visible,
1453input:focus-visible,
1454select:focus-visible,
1455textarea:focus-visible,
1456[role="button"]:focus-visible,
1457[tabindex="0"]:focus-visible {
1458  outline: 3px solid var(--pb-accent, #23AAE0);
1459  outline-offset: 2px;
1460  border-radius: 4px;
1461}
1462
1463/* High contrast focus for dark backgrounds */
1464.nav-menu a:focus-visible,
1465.nav-menu button:focus-visible {
1466  outline-color: white;
1467}
1468
1469/* Reduced Motion */
1470@media (prefers-reduced-motion: reduce) {
1471  *,
1472  *::before,
1473  *::after {
1474    animation-duration: 0.01ms !important;
1475    animation-iteration-count: 1 !important;
1476    transition-duration: 0.01ms !important;
1477    scroll-behavior: auto !important;
1478  }
1479}
1480
1481/* Screen Reader Only */
1482.sr-only {
1483  position: absolute;
1484  width: 1px;
1485  height: 1px;
1486  padding: 0;
1487  margin: -1px;
1488  overflow: hidden;
1489  clip: rect(0, 0, 0, 0);
1490  white-space: nowrap;
1491  border: 0;
1492}
1493
1494/* Show on focus (for skip links) */
1495.sr-only-focusable:focus,
1496.sr-only-focusable:active {
1497  position: static;
1498  width: auto;
1499  height: auto;
1500  padding: inherit;
1501  margin: inherit;
1502  overflow: visible;
1503  clip: auto;
1504  white-space: normal;
1505}
1506
1507/* High Contrast Mode Support */
1508@media (forced-colors: active) {
1509  .skip-link:focus {
1510    outline: 3px solid ButtonText;
1511  }
1512
1513  button,
1514  a,
1515  input,
1516  select,
1517  textarea {
1518    border: 1px solid ButtonText;
1519  }
1520}
1521
1522/* Minimum Touch Target Size */
1523@media (pointer: coarse) {
1524  button,
1525  a,
1526  [role="button"],
1527  input[type="checkbox"],
1528  input[type="radio"],
1529  select {
1530    min-height: 44px;
1531    min-width: 44px;
1532  }
1533
1534  /* Ensure inline links in text don't get too big */
1535  p a,
1536  li a,
1537  span a {
1538    min-height: auto;
1539    min-width: auto;
1540  }
1541}
1542
1543/* Form Accessibility */
1544label {
1545  cursor: pointer;
1546}
1547
1548input:disabled,
1549button:disabled,
1550select:disabled,
1551textarea:disabled {
1552  cursor: not-allowed;
1553  opacity: 0.6;
1554}
1555
1556/* Error states with color + icon */
1557.field-error,
1558.input-error {
1559  border-color: var(--pb-error, #FF453A) !important;
1560  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FF453A' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z'/%3E%3C/svg%3E");
1561  background-repeat: no-repeat;
1562  background-position: right 12px center;
1563  padding-right: 40px !important;
1564}
1565
1566/* ARIA Live Regions */
1567[aria-live="polite"],
1568[aria-live="assertive"] {
1569  position: relative;
1570}
1571
1572/* Loading state announcements */
1573.loading-announcement {
1574  position: absolute;
1575  width: 1px;
1576  height: 1px;
1577  padding: 0;
1578  margin: -1px;
1579  overflow: hidden;
1580  clip: rect(0, 0, 0, 0);
1581  white-space: nowrap;
1582  border: 0;
1583}
1584
1585/* Focus trap indicator for modals */
1586[role="dialog"][aria-modal="true"]:focus {
1587  outline: none;
1588}
1589
1590/* Button focus improvements */
1591.btn:focus-visible,
1592.button:focus-visible {
1593  outline: 3px solid var(--pb-accent, #23AAE0);
1594  outline-offset: 2px;
1595  box-shadow: none;
1596}
1597
1598/* Card focus (for keyboard navigation) */
1599.card:focus-visible,
1600[role="article"]:focus-visible {
1601  outline: 3px solid var(--pb-accent, #23AAE0);
1602  outline-offset: 4px;
1603  border-radius: 12px;
1604}
1605
1606/* Tab focus */
1607[role="tab"]:focus-visible {
1608  outline: 3px solid var(--pb-accent, #23AAE0);
1609  outline-offset: -3px;
1610  z-index: 1;
1611}
1612
1613/* Checkbox/Radio custom focus */
1614input[type="checkbox"]:focus-visible + label::before,
1615input[type="radio"]:focus-visible + label::before {
1616  outline: 3px solid var(--pb-accent, #23AAE0);
1617  outline-offset: 2px;
1618}
1619</style>
1620
1621<!-- Screen Reader Announcements -->
1622<div aria-live="polite" aria-atomic="true" class="loading-announcement" id="sr-announcements"></div>
1623
1624<script>
1625// Announce messages to screen readers
1626function announceToScreenReader(message, priority = 'polite') {
1627  const announcer = document.getElementById('sr-announcements');
1628  if (announcer) {
1629    announcer.setAttribute('aria-live', priority);
1630    announcer.textContent = message;
1631    // Clear after announcement
1632    setTimeout(() => {
1633      announcer.textContent = '';
1634    }, 1000);
1635  }
1636}
1637
1638// Make function globally available
1639window.announceToScreenReader = announceToScreenReader;
1640
1641// Add loading announcements to fetch operations
1642if (typeof window.fetch === 'function') {
1643  const originalFetch = window.fetch;
1644  window.fetch = function(...args) {
1645    // Only announce for user-initiated fetches (not background)
1646    const options = args[1] || {};
1647    if (options.method && options.method !== 'GET') {
1648      announceToScreenReader('Loading, please wait...');
1649    }
1650    return originalFetch.apply(this, args);
1651  };
1652}
1653</script>
1653
1654
1655    <!-- Toast Container -->
1656    <div id="toast-container" class="toast-container" role="status" aria-live="polite" aria-atomic="true"></div>
1657
1658    <!-- Main Content (with sidebar spacing) -->
1659    <main id="main-content" class="" role="main">
1660      
1660<script>
1661// Ensure dark mode on landing/marketing pages (backup for Turbo navigations)
1662document.documentElement.setAttribute('data-theme', 'dark');
1663window.__pbForceDark = true;
1664</script>
1664
1665
1666<nav class="pbh-nav" id="pbhNav">
1667  <div class="pbh-nav-inner">
1668    <div class="pbh-nav-left">
1669      <a style="display:flex;align-items:center;gap:10px;text-decoration:none;" href="https://www.picklebeastpickleball.com/">
1670        <img class="pbh-nav-logo-claws" alt="Picklebeast" src="https://www.picklebeastpickleball.com/assets/claws_blue_transparent-dab3af60817d5ffb156635f1ef396cbb9b498940141236485e513ce0b2f727cf.png" />
1671        <img src="/white_logo_slim.png" class="pbh-nav-logo-name" alt="Picklebeast">
1672</a>    </div>
1673    <div class="pbh-nav-links">
1674      <a class="pbh-nav-chip pbh-nav-hide-mobile" href="/browse/leagues">Leagues</a>
1675      <a class="pbh-nav-chip pbh-nav-hide-mobile" href="/browse/tournaments">Tournaments</a>
1676      <a class="pbh-nav-chip pbh-nav-hide-mobile" href="/advertise">Advertise</a>
1677      <a class="pbh-nav-chip pbh-nav-hide-mobile" href="/contact_us">Contact</a>
1678      <a class="pbh-nav-chip pbh-nav-chip-accent pbh-nav-hide-mobile" href="/app">Download App</a>
1679        <a class="pbh-nav-chip pbh-nav-chip-accent" href="/signup/club">Sign up your club</a>
1680        <a class="pbh-nav-chip" href="/users/sign_in">Log In</a>
1681        <a class="pbh-nav-chip pbh-nav-hide-mobile" href="/users/sign_up">Sign Up</a>
1682      <button class="pbh-nav-hamburger" id="pbhHamburger" aria-label="Menu">
1683        <i class="fas fa-bars"></i>
1684      </button>
1685    </div>
1686  </div>
1687</nav>
1688
1689<!-- Mobile slide-out menu -->
1690<div class="pbh-mobile-menu" id="pbhMobileMenu">
1691  <div class="pbh-mobile-menu-backdrop" id="pbhMobileBackdrop"></div>
1692  <div class="pbh-mobile-menu-panel">
1693    <div class="pbh-mobile-menu-close">
1694      <button id="pbhMobileClose" aria-label="Close menu"><i class="fas fa-xmark"></i></button>
1695    </div>
1696    <div class="pbh-mobile-menu-links">
1697
1698      <div class="pbh-mobile-section-label">Browse</div>
1699      <a href="/browse/leagues"><i class="fas fa-trophy"></i> Leagues</a>
1700      <a href="/browse/tournaments"><i class="fas fa-medal"></i> Tournaments</a>
1701      <a href="/shop"><i class="fas fa-store"></i> Shop</a>
1702
1703
1704      <div class="pbh-mobile-section-label">About</div>
1705      <a href="/blog"><i class="fas fa-newspaper"></i> Blog</a>
1706      <a href="/contact_us"><i class="fas fa-envelope"></i> Contact</a>
1707      <a href="/advertise"><i class="fas fa-bullseye"></i> Advertise</a>
1708      <div class="pbh-mobile-divider"></div>
1709      <a class="pbh-mobile-accent" href="/app"><i class="fas fa-download"></i> Download App</a>
1710        <div class="pbh-mobile-divider"></div>
1711        <a class="pbh-mobile-accent" href="/signup/club"><i class="fas fa-building-flag"></i> Sign up your club</a>
1712        <a href="/users/sign_in"><i class="fas fa-right-to-bracket"></i> Log In</a>
1713        <a href="/users/sign_up"><i class="fas fa-user-plus"></i> Sign Up</a>
1714    </div>
1715  </div>
1716</div>
1717
1718<script>
1719(function() {
1720  var nav = document.getElementById('pbhNav');
1721  if (!nav) return;
1722  window.addEventListener('scroll', function() {
1723    nav.classList.toggle('scrolled', window.scrollY > 40);
1724  });
1725
1726  // Theme toggle — disabled on forced-dark pages (landing, features)
1727  var themeBtn = document.getElementById('pbhThemeToggle');
1728  if (themeBtn) {
1729    if (window.__pbForceDark) {
1730      themeBtn.style.display = 'none';
1731    } else {
1732      themeBtn.addEventListener('click', function() {
1733        var current = document.documentElement.getAttribute('data-theme') || 'dark';
1734        var next = current === 'dark' ? 'light' : 'dark';
1735        document.documentElement.setAttribute('data-theme', next);
1736        localStorage.setItem('pb-theme', next);
1737      });
1738    }
1739  }
1740
1741  // Dropdown toggle
1742  document.addEventListener('click', function(e) {
1743    var toggle = e.target.closest('.pbh-nav-dropdown-toggle');
1744    if (toggle) {
1745      e.preventDefault();
1746      toggle.closest('.pbh-nav-dropdown').classList.toggle('open');
1747    } else {
1748      document.querySelectorAll('.pbh-nav-dropdown.open').forEach(function(d) {
1749        d.classList.remove('open');
1750      });
1751    }
1752  });
1753
1754  // Mobile hamburger menu
1755  var hamburger = document.getElementById('pbhHamburger');
1756  var mobileMenu = document.getElementById('pbhMobileMenu');
1757  var mobileBackdrop = document.getElementById('pbhMobileBackdrop');
1758  var mobileClose = document.getElementById('pbhMobileClose');
1759
1760  function openMobileMenu() {
1761    if (mobileMenu) mobileMenu.classList.add('open');
1762  }
1763  function closeMobileMenu() {
1764    if (mobileMenu) mobileMenu.classList.remove('open');
1765  }
1766
1767  if (hamburger) hamburger.addEventListener('click', openMobileMenu);
1768  if (mobileBackdrop) mobileBackdrop.addEventListener('click', closeMobileMenu);
1769  if (mobileClose) mobileClose.addEventListener('click', closeMobileMenu);
1770
1771  // Close on link click
1772  if (mobileMenu) {
1773    mobileMenu.querySelectorAll('.pbh-mobile-menu-links a').forEach(function(link) {
1774      link.addEventListener('click', closeMobileMenu);
1775    });
1776  }
1777
1778  // 2026-05-26 — Collapsible "My Clubs" group when there are 3+ clubs.
1779  // Default state: shows first 2; tap "Show N more" to reveal the rest.
1780  document.querySelectorAll('[data-pbh-clubs-toggle]').forEach(function(btn) {
1781    btn.addEventListener('click', function(e) {
1782      e.preventDefault();
1783      e.stopPropagation();
1784      var group = btn.closest('[data-pbh-clubs-group]');
1785      if (!group) return;
1786      var rest = group.querySelector('.pbh-mobile-clubs-rest');
1787      var more = btn.querySelector('.pbh-mobile-clubs-toggle__more');
1788      var less = btn.querySelector('.pbh-mobile-clubs-toggle__less');
1789      var isOpen = !rest.hidden;
1790      rest.hidden = isOpen;
1791      if (more) more.hidden = !isOpen ? true : false;
1792      if (less) less.hidden = !isOpen ? false : true;
1793      group.classList.toggle('is-open', !isOpen);
1794    });
1795  });
1796})();
1797</script>
1797
1798
1799
1800
1801
1802<div class="contact-page">
1803  <div class="contact-container">
1804    <div class="contact-header">
1805      <div class="contact-badge">
1806        <i class="fas fa-envelope"></i>
1807        <span>Get in Touch</span>
1808      </div>
1809      <h1 class="contact-title">Contact Us</h1>
1810      <p class="contact-subtitle">Have a question or comment? We'd love to hear from you.</p>
1811    </div>
1812
1813
1814
1815    <div class="contact-card">
1816      <form action="/contact_us" method="post">
1817        <meta name="csrf-param" content="authenticity_token" />
1818<meta name="csrf-token" content="DdsfVuf3DgXlCFHmwYd3RsO8Z_jE_phOW6GiOt_ERA-B9Z--cDu87CN3Gl3-Pc39dTaoB3k_WT71XiNxetecNg" />
1819        <input type="hidden" name="_timestamp" id="_timestamp" value="1790259419.7579439" autocomplete="off" /><div style="position:absolute;left:-9999px;top:-9999px;" aria-hidden="true"><label for="website_url">Leave this blank</label><input type="text" name="website_url" id="website_url" tabindex="-1" autocomplete="off" /></div>
1820
1821        <div class="contact-row">
1822          <div class="contact-field">
1823            <label for="first_name" class="contact-label">First Name</label>
1824            <input type="text" class="contact-input" id="first_name" name="first_name" placeholder="John" required>
1825          </div>
1826          <div class="contact-field">
1827            <label for="last_name" class="contact-label">Last Name</label>
1828            <input type="text" class="contact-input" id="last_name" name="last_name" placeholder="Doe" required>
1829          </div>
1830        </div>
1831
1832        <div class="contact-field">
1833          <label for="email" class="contact-label">Email Address</label>
1834          <input type="email" class="contact-input" id="email" name="email" placeholder="[email protected]" required>
1835        </div>
1836
1837        <div class="contact-field">
1838          <label for="phone" class="contact-label">Phone <span style="color: rgba(255,255,255,0.4); font-weight: 400;">(optional)</span></label>
1839          <input type="tel" class="contact-input" id="phone" name="phone" placeholder="(555) 555-5555">
1840        </div>
1841
1842        <div class="contact-field">
1843          <label for="subject" class="contact-label">Subject</label>
1844          <input type="text" class="contact-input" id="subject" name="subject" placeholder="What's this about?" value="">
1845        </div>
1846
1847        <div class="contact-field">
1848          <label for="message" class="contact-label">Message</label>
1849          <textarea class="contact-input" id="message" name="message" placeholder="Tell us what's on your mind..." required></textarea>
1850        </div>
1851
1852        <button type="submit" class="contact-submit">
1853          <i class="fas fa-paper-plane"></i>
1854          Send Message
1855        </button>
1856      </form>
1857    </div>
1858  </div>
1859</div>
1860
1861    </main>
1862
1863    <!-- Footer (can be hidden with content_for :hide_footer) -->
1864
1865    <!-- Enhanced Mobile-First JavaScript -->
1866    
1866<script>
1867      // Global page ready handler - works with both initial load and Turbo navigation
1868      // Use this instead of DOMContentLoaded for Turbo-compatible initialization
1869      function onPageReady(callback) {
1870        // If Turbo is available, listen for turbo:load
1871        if (typeof Turbo !== 'undefined') {
1872          document.addEventListener('turbo:load', callback);
1873        }
1874        // Always listen for DOMContentLoaded for initial load and non-Turbo visits
1875        if (document.readyState === 'loading') {
1876          document.addEventListener('DOMContentLoaded', callback);
1877        } else {
1878          // DOM already loaded, execute immediately
1879          callback();
1880        }
1881      }
1882
1883      // Also expose a render handler for turbo:render (cached pages)
1884      function onPageRender(callback) {
1885        document.addEventListener('turbo:render', callback);
1886      }
1887
1888      // Toast system (enhanced for mobile)
1889      function showToast(message, type = 'success', duration = 4000) {
1890        const container = document.getElementById('toast-container');
1891        if (!container) return;
1892
1893        const toast = document.createElement('div');
1894        toast.className = `toast toast-${type}`;
1895        toast.innerHTML = `
1896          <div class="toast-content">
1897            <span class="toast-icon">${type === 'success' ? '✓' : '⚠'}</span>
1898            <span class="toast-message">${message}</span>
1899          </div>
1900          <div class="toast-progress"></div>
1901        `;
1902        
1903        toast.addEventListener('click', () => toast.remove());
1904        container.appendChild(toast);
1905        
1906        // Auto-remove
1907        setTimeout(() => {
1908          if (container.contains(toast)) {
1909            toast.style.animation = 'toast-slide-out 0.3s ease forwards';
1910            setTimeout(() => toast.remove(), 300);
1911          }
1912        }, duration);
1913      }
1914
1915      function initApplicationLayout() {
1916        // Show flash messages
1917
1918        // Mobile menu functionality
1919        const menuBtn = document.getElementById('navMenuBtn');
1920        const menu = document.getElementById('navMenu');
1921        const body = document.body;
1922        
1923        if (menuBtn && menu) {
1924          menuBtn.addEventListener('click', () => {
1925            const isOpen = menuBtn.getAttribute('aria-expanded') === 'true';
1926            
1927            menuBtn.setAttribute('aria-expanded', !isOpen);
1928            menu.setAttribute('aria-hidden', isOpen);
1929            
1930            menuBtn.classList.toggle('active');
1931            menu.classList.toggle('active');
1932            body.classList.toggle('nav-menu-open');
1933          });
1934          
1935          // Close on escape key
1936          document.addEventListener('keydown', (e) => {
1937            if (e.key === 'Escape' && menu.classList.contains('active')) {
1938              menuBtn.click();
1939            }
1940          });
1941          
1942          // Close on outside click
1943          menu.addEventListener('click', (e) => {
1944            if (e.target === menu) {
1945              menuBtn.click();
1946            }
1947          });
1948        }
1949        
1950        // Enhanced delete link handling
1951        document.querySelectorAll('a[data-method="delete"]').forEach(link => {
1952          link.addEventListener('click', function(e) {
1953            e.preventDefault();
1954            
1955            const confirmMessage = link.getAttribute('data-confirm');
1956            if (confirmMessage && !confirm(confirmMessage)) return;
1957            
1958            const form = document.createElement('form');
1959            form.method = 'POST';
1960            form.action = link.href;
1961            form.style.display = 'none';
1962            
1963            // CSRF token
1964            const csrfToken = document.querySelector('meta[name="csrf-token"]');
1965            if (csrfToken) {
1966              const csrfInput = document.createElement('input');
1967              csrfInput.type = 'hidden';
1968              csrfInput.name = 'authenticity_token';
1969              csrfInput.value = csrfToken.getAttribute('content');
1970              form.appendChild(csrfInput);
1971            }
1972            
1973            // Method field
1974            const methodInput = document.createElement('input');
1975            methodInput.type = 'hidden';
1976            methodInput.name = '_method';
1977            methodInput.value = 'delete';
1978            form.appendChild(methodInput);
1979            
1980            document.body.appendChild(form);
1981            form.submit();
1982          });
1983        });
1984      }
1985
1986      // Turbo-compatible initialization
1987      document.addEventListener('DOMContentLoaded', initApplicationLayout);
1988      document.addEventListener('turbo:load', initApplicationLayout);
1989
1990      // Enhanced cart counter update
1991      function updateCartCounter(count) {
1992        const cartLink = document.querySelector('.nav-cart');
1993        if (!cartLink) return;
1994        
1995        let badge = cartLink.querySelector('.nav-cart-badge');
1996        
1997        if (count > 0) {
1998          if (!badge) {
1999            badge = document.createElement('span');
2000            badge.className = 'nav-cart-badge';
2001            cartLink.appendChild(badge);
2002          }
2003          badge.textContent = count;
2004          badge.style.display = 'flex';
2005        } else if (badge) {
2006          badge.style.display = 'none';
2007        }
2008      }
2009    </script>
2009
2010    <!-- Cookie Consent Banner (hidden on admin pages via content_for :hide_cookie_banner) -->
2011    <div id="pbCookieBanner" style="display:none;">
2012      <div class="pb-cookie-inner">
2013        <p class="pb-cookie-text">
2014          We use cookies to analyze site usage and improve your experience. Essential cookies (login, security) are always active.
2015          <a href="/privacy-policy" class="pb-cookie-link">Privacy Policy</a>
2016        </p>
2017        <div class="pb-cookie-buttons">
2018          <button onclick="pbAcceptCookies()" class="pb-cookie-btn pb-cookie-accept">Accept</button>
2019          <button onclick="pbRejectCookies()" class="pb-cookie-btn pb-cookie-reject">Reject</button>
2020        </div>
2021      </div>
2022    </div>
2023    <style>
2024      #pbCookieBanner {
2025        position: sticky;
2026        bottom: 0;
2027        left: 0;
2028        right: 0;
2029        z-index: 99999;
2030        background: rgba(15, 15, 20, 0.97);
2031        backdrop-filter: blur(12px);
2032        border-top: 1px solid rgba(35, 170, 224, 0.2);
2033        padding: 16px 24px;
2034        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
2035      }
2036      .pb-cookie-inner {
2037        max-width: 1200px;
2038        margin: 0 auto;
2039        display: flex;
2040        align-items: center;
2041        justify-content: space-between;
2042        gap: 24px;
2043      }
2044      .pb-cookie-text {
2045        color: #ccc;
2046        font-size: 14px;
2047        line-height: 1.5;
2048        margin: 0;
2049        flex: 1;
2050      }
2051      .pb-cookie-link {
2052        color: #23aae0;
2053        text-decoration: none;
2054      }
2055      .pb-cookie-link:hover {
2056        text-decoration: underline;
2057      }
2058      .pb-cookie-buttons {
2059        display: flex;
2060        gap: 10px;
2061        flex-shrink: 0;
2062      }
2063      .pb-cookie-btn {
2064        border: none;
2065        border-radius: 8px;
2066        padding: 10px 24px;
2067        font-size: 14px;
2068        font-weight: 600;
2069        cursor: pointer;
2070        transition: opacity 0.2s;
2071      }
2072      .pb-cookie-btn:hover { opacity: 0.85; }
2073      .pb-cookie-accept {
2074        background: #23aae0;
2075        color: #fff;
2076      }
2077      .pb-cookie-reject {
2078        background: rgba(255, 255, 255, 0.1);
2079        color: #ccc;
2080        border: 1px solid rgba(255, 255, 255, 0.15);
2081      }
2082      @media (max-width: 600px) {
2083        .pb-cookie-inner {
2084          flex-direction: column;
2085          text-align: center;
2086          gap: 12px;
2087        }
2088        .pb-cookie-buttons { width: 100%; justify-content: center; }
2089      }
2090    </style>
2091    
2091<script>
2092      function pbAcceptCookies() {
2093        var expires = new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toUTCString();
2094        document.cookie = 'pb_cookie_consent=accepted;expires=' + expires + ';path=/;SameSite=Lax';
2095        document.getElementById('pbCookieBanner').style.display = 'none';
2096        document.body.classList.remove('pb-cookie-visible');
2097        if (typeof window.pbLoadAnalytics === 'function') window.pbLoadAnalytics();
2098      }
2099
2100      function pbRejectCookies() {
2101        var expires = new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toUTCString();
2102        document.cookie = 'pb_cookie_consent=rejected;expires=' + expires + ';path=/;SameSite=Lax';
2103        document.getElementById('pbCookieBanner').style.display = 'none';
2104        document.body.classList.remove('pb-cookie-visible');
2105      }
2106
2107      function pbShowCookieSettings() {
2108        document.cookie = 'pb_cookie_consent=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/';
2109        document.getElementById('pbCookieBanner').style.display = 'block';
2110      }
2111
2112      // Show banner if no consent decision yet
2113      (function() {
2114        if (document.cookie.indexOf('pb_cookie_consent=') === -1) {
2115          document.getElementById('pbCookieBanner').style.display = 'block';
2116          document.body.classList.add('pb-cookie-visible');
2117        }
2118      })();
2119    </script>
2119
2120    
2121    
2122  </body>

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.