PageSourceSearch

https://brooklynff.webflow.io/community

html brooklynff.webflow.io collected 2026-10-03 12:52:08 UTC 31,481 bytes, 450 lines download raw bytes

1<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Fri Jul 24 2026 20:27:19 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="brooklynff.webflow.io" data-wf-page="6994989de76bd93e241c1bd8" data-wf-site="69924596055aadfcec0f4750" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Community</title><meta content="Join the Five-Point Pack. BKFF supports fans, media, history, club programs &amp; philanthropy to grow soccer across Brooklyn. Sign up to volunteer today." name="description"/><meta content="Community" property="og:title"/><meta content="Join the Five-Point Pack. BKFF supports fans, media, history, club programs &amp; philanthropy to grow soccer across Brooklyn. Sign up to volunteer today." property="og:description"/><meta content="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69baf144b94b6b67365af360_BCFC%20Kids.jpg" property="og:image"/><meta content="Community" name="twitter:title"/><meta content="Join the Five-Point Pack. BKFF supports fans, media, history, club programs &amp; philanthropy to grow soccer across Brooklyn. Sign up to volunteer today." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/css/brooklynff.webflow.shared.2ac9f42b0.css" rel="stylesheet" type="text/css" integrity="sha384-Ksn0Kwcu3Xa/kpXVzJMxMqiXBFywj/Ay6sM/Wu3Rj7yk+xfeimjnhksQavqDN4/J" crossorigin="anonymous"/><style>html.w-mod-js:not(.w-mod-ix3) :is([data-wf-target*='["69f247b77e0879de18ba930b","e0486930-8ec9-4595-114c-2a955e83c741"]'], [data-wf-target*='["6994989de76bd93e241c1bd8","f2353518-caa9-74b5-5823-93d68553c8f6"]'], .community-content-wrapper .community-pentagon-fixed) {visibility: hidden !important;}</style>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/6998b7e457bb8a6f901e0ce5_favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/6998b8c095731ce6ba5fc80c_webclip.png" rel="apple-touch-icon"/>
vendor: 86 bytes, line 1
1<script src="https://www.google.com/recaptcha/api.js" type="text/javascript"></script>
1<style>
2
3/* 1. Remove the "Grey Flash" on iOS/Android taps */
4  * {
5    -webkit-tap-highlight-color: transparent !important;
6    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
7  }
8
9  /* 2. Remove the forced blue outline in Chrome/Safari mobile */
10  :focus, :focus-within {
11    outline: none !important;
12    box-shadow: none !important;
13  }
14
15  /* 3. The ONLY way to see a focus ring is via Keyboard (Tab key) */
16  :focus-visible {
17    outline: 2px solid var(--_colors---les-bleus) !important; /* Brand Color */
18    outline-offset: 4px !important;
19  }
20
21  /* 4. Ensure Webflow's internal 'Focused' state doesn't override this */
22  .w-nav-link:focus, 
23  .nav-link:focus, 
24  .nav-link-wrapper:focus {
25    outline: none !important;
26    box-shadow: none !important;
27  }
28 
29  /*webflow override*/
30  
31  .w-richtext *:last-child{
32    margin-bottom: 0 !important;
33  }
34  
35  .w-richtext > *:last-child{
36    margin-bottom: 0 !important;
37  }
38  
39  .w-richtext > *:first-child{
40    margin-top: 0 !important;
41  }
42  
43  .w-richtext h2 + h3{
44    margin-top: 0 !important;
45  }
46  
47  /*form*/
48 
49  
50  input[type=number]::-webkit-inner-spin-button,
51  input[type=number]::-webkit-outer-spin-button {
52     opacity: 1;
53  }
54  
55   input[type="search"] {
56    -webkit-appearance: none;
57  }
58  
59  select {
60    -webkit-appearance: none;
61    -webkit-border-radius: 0px;
62    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Ctitle%3Edown-arrow%3C%2Ftitle%3E%3Cg%20fill%3D%22%23000000%22%3E%3Cpath%20d%3D%22M10.293%2C3.293%2C6%2C7.586%2C1.707%2C3.293A1%2C1%2C0%2C0%2C0%2C.293%2C4.707l5%2C5a1%2C1%2C0%2C0%2C0%2C1.414%2C0l5-5a1%2C1%2C0%2C1%2C0-1.414-1.414Z%22%20fill%3D%22%23000000%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E");
63    background-size: .6em;
64    background-position: calc(100% - 1em) center;
65    background-repeat: no-repeat;
66    width: 100%;
67  }
68  
69  .checkbox-wrapper, .w-checkbox{
70    position: relative;
71  }
72  
73  .w-checkbox{
74    padding-left: 2.25em;
75    height: 1.75em;
76  }
77  
78  input[type="checkbox"]{
79    opacity: 0%;  
80  }
81  
82  input[type="checkbox"] + .w-form-label:before{
83    content: '';
84    font-family: icofont;
85    font-size: 1.25em;
86    line-height: 1em;
87    display: flex;
88    align-items: center;
89    justify-content: center;
90    border: 1px solid var(--_colors---concrete-jungle);
91    background: var(--_colors---white);
92    width: 1.2em;
93    height: 1.2em;
94    margin-top: 0;
95    margin-left: 0;
96    margin-right: 0.5em;
97    line-height: 1;
98    position: absolute;
99    left: 0;
100    top: 0;
101    transition: all 0.25s ease;
102  }
103  
104  
105  input[type="checkbox"]:checked + .w-form-label:before{
106    content: '\eed8';
107  }
108  
109  .checkbox-wrapper:hover .w-form-label:before{
110    border-color: var(--_colors---light-gray);
111  }
112  
113  input[type="checkbox"]:focused + .w-form-label:before{
114    outline-color: var(--_colors---light-golden);
115    outline-offset: 0px;
116    outline-width: 1px;
117    outline-style: solid;
118    border-color: var(--_colors---light-golden);
119  }
120  
121  input[type="checkbox"]:checked + .w-form-label:before{
122    border-color: var(--_colors---golden-ball);
123    background-color: var(--_colors---golden-ball);
124  }
125  
126  /* hamburger */
127  
128  .hamburger-wrapper:hover .hamburger-line{
129    background: var(--_colors---pitch-black);
130  }
131  
132  .w-nav-overlay{
133    height: 110vh !important;
134    top: 0;
135  }
136  
137  .w--open .hamburger .hamburger-line:nth-child(1){
138    transform: rotate(45deg) translate(0.5rem, 0.5rem);
139  }
140  
141  .w--open .hamburger .hamburger-line:nth-child(2){
142    width: 0;
143  }
144  .w--open .hamburger .hamburger-line:nth-child(3){
145    transform: rotate(-45deg) translate(0.5rem, -0.5rem);
146  }
147  
148  /*cta link */
149  .cta-link:after{
150    content: '\ea5d';
151    color: var(--_colors---les-bleus);
152    font-family: 'Icofont';
153    position: relative;
154    right: -0.25em;
155    top: 0.05em;
156    transition: all 0.2s ease;
157    display: inline-block;
158  }
159  
160  .cta-link:hover::after{
161    right: -0.5em;
162  }
163  
164  .cta-link.white:after{
165    color: var(--_colors---lighter-golden);
166  }
167  
168  .cta-link.white:hover::after{
169    color: var(--_colors---white);
170  }
171  
172  /*single line form */
173  
174  .single-line-form input:focus + label, .single-line-form input:not(:placeholder-shown) + label{
175    top: -1.25em;
176    left: 0;
177    font-size: 1em;
178    color: var(--_colors---pitch-black); 
179    font-weight: 700;
180  }  
181  
182</style></head><body><div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navbar w-nav"><div class="container nav-container w-container"><a href="/" class="logo-wrapper w-nav-brand"><img loading="lazy" src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69924ce42fcea144aedc4e6f_Main%20Logo-Color.svg" alt="" class="logo"/></a><nav role="navigation" class="nav-links-wrapper w-nav-menu"><div class="w-dyn-list"><div role="list" class="nav-links-new w-dyn-items"><div role="listitem" class="nav-link-item w-dyn-item"><a href="/about" class="nav-link">What is BKFF?</a></div><div role="listitem" class="nav-link-item w-dyn-item"><a href="/community" aria-current="page" class="nav-link w--current">Community</a></div><div role="listitem" class="nav-link-item w-dyn-item"><a href="/events" class="nav-link">Events</a></div><div role="listitem" class="nav-link-item w-dyn-item"><a href="https://museum.brooklynff.org/" class="button nav-button w-button">Museum</a></div></div></div></nav><div class="hamburger-wrapper w-nav-button"><div class="hamburger"><div class="hamburger-line"></div><div class="hamburger-line"></div><div class="hamburger-line"></div></div></div></div></div><section class="section section-reset-inner"><div class="hero-wrapper"><div class="hero-image-wrapper"><div class="hero-image-blur"></div><img src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69bae69cdb4c2b0e48e78a77_BCFC%20Kids.avif" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69bae69cdb4c2b0e48e78a77_BCFC%20Kids-p-500.avif 500w, https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69bae69cdb4c2b0e48e78a77_BCFC%20Kids-p-800.avif 800w, https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69bae69cdb4c2b0e48e78a77_BCFC%20Kids-p-1080.avif 1080w, https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69bae69cdb4c2b0e48e78a77_BCFC%20Kids.avif 2160w" alt="" class="hero-image"/></div><div id="w-node-_554b141c-e615-a1db-8849-97ee8873d015-241c1bd8" class="hero-text-wrapper"><img src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/69925a6e749b44e6169a3682_Ripple-Pentagon_Light-Golden.svg" loading="lazy" alt="" class="hero-ripple"/><div class="w-layout-blockcontainer container hero-container w-container"><div class="mb-1em w-richtext"><h1>Join our Five-Point Pack!</h1></div><p class="p-big mb-0">Whatever you call our sport, it’s the people’s game. Our programs below are how the Foundation grows the sport, and opens participation in it to everyone.</p><a href="#volunteer" class="button mt-2em w-button">volunteer</a></div></div></div></section><section class="section"><div class="w-layout-blockcontainer container w-container"><div class="_1-2-grid"><div id="w-node-_3c71b0a2-f041-ad81-f603-2a2d555922c2-241c1bd8" class="community-pentagon-wrapper"><img src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/699603dd464b751aed04eb05_4c6c529f5dc81157845fb3
182064f00db10_community-pentagon-4.svg" loading="lazy" alt="" class="community-pentagon"/></div><div id="w-node-_3c71b0a2-f041-ad81-f603-2a2d555922c4-241c1bd8" class="z-10"><h2>We <span class="text-orange"><strong>support the supporters</strong></span>, for a Brooklyn where everyone can express their identity through the beautiful game.</h2><div class="w-richtext"><p>More than winning &amp; losing, our sport is beloved for the self-expression it offers fans &amp; players.</p><p>In one of the world’s most diverse cities, the game grows when we unlock this opportunity for everyone. The Foundation offers resources to help groups of Brooklyn fans organize &amp; navigate this – from gear design to the logistics of legal &amp; finance, for any club that you may root for.</p></div></div></div></div></section><section class="section extra-padding-top"><div class="w-layout-blockcontainer container w-container"><div class="_1-2-grid reversed"><div id="w-node-fd0a60b8-43f6-fd72-07eb-b9bec7650754-241c1bd8" class="z-10"><h2>We steward the long <span class="text-red"><strong>history</strong></span> of soccer in Brooklyn, a cradle of the American game.</h2><div class="w-richtext"><p>Soccer in this country has a long history – and, many of its untold stories have great significance to the culture &amp; society of our beloved borough.</p><p>In 2026, we are launching the <strong>Brooklyn Football Museum</strong>, with a flagship program focusing on the borough’s winners of the U.S. Open Cup. It’s an anchor &amp; a starting point, for our whole community to begin re-gathering the sport’s 132-year history here.</p></div></div><div class="community-pentagon-wrapper"><img src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/699603afd89bdb04a61d3b73_b993a07be2151edbf32695407f13459d_community-pentagon-1.svg" loading="lazy" alt="" class="community-pentagon"/></div></div></div></section><section class="section"><div class="w-layout-blockcontainer container w-container"><div class="_1-2-grid"><div class="community-pentagon-wrapper"><img src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/699603e9d2238947d6f435a3_d8940ac977c440485e6f3057e9c325c9_community-pentagon-5.svg" loading="lazy" alt="" class="community-pentagon"/></div><div id="w-node-eb08950d-3e3b-3b4d-989a-50a9bcdbc4bd-241c1bd8" class="z-10"><h2>To tell this history in the modern day, we support a healthy <span class="text-blue"><strong>media</strong></span> ecosystem that tells <em>all</em> stories of the sport in<em> </em>the borough.</h2><div class="w-richtext"><p>Whether it’s in matchday media, the subcultures of the game, or the quiet moments among friends, our borough offers many diverse voices who have stories to tell. </p><p>The best way to make sure every voice is heard, is to let them speak. We’re readying a list of publishing platforms in 2026, and welcome pitches across video &amp; written content.</p></div></div></div></div></section><section class="section border-b"><div class="w-layout-blockcontainer container w-container"><div class="_1-2-grid reversed"><div id="w-node-_53b482c2-c659-3625-39bc-9ea838831e9e-241c1bd8" class="z-10"><h2>Lastly, for <span class="text-yellow"><strong>club programs</strong></span> and <span class="text-green"><strong>
182public service</strong></span>, we’ve set an Advisory Council to learn from, with programs starting in 2027.</h2><div class="w-richtext"><h3>Brooklyn soccer can do good for Brooklyn community.</h3><p>We believe this statement completely, and believe it’s the true power of our sport. To get this right, we’re taking time to learn how we can support clubs, and how fans can support all of Brooklyn beyond the pitch.</p><p>‍<a href="#volunteer">Sign your club up</a> to help us learn more!</p></div></div><div class="community-pentagon-wrapper"><img src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/699603d2ec9d8577b48c38dc_1e85807561dcb1e057348a59b23f544e_community-pentagon-2-3.svg" loading="lazy" alt="" class="community-pentagon"/></div></div></div></section><section class="section section-community-wrapper"></section><section id="volunteer" class="section"><div class="w-layout-blockcontainer container narrow w-container"><div class="form-card-wrapper w-form"><div class="form-header w-richtext"><h2>Get Involved!</h2><p>There are so many ways to volunteer in your soccer community! Let us know what your interests are, and we&#x27;ll only communicate with you on the programs you care about.</p></div><form method="post" name="wf-form-volunteerForm" data-name="volunteerForm" brix-sheets-form="enable" brix-secret-key="dhs$b_w$fjGHW-cgN!x" brix-sheets-script-url="https://script.google.com/macros/s/AKfycby1jy_YSr_H8o98o5WgF4qG_aNiiIecZTxMDRgOMc3T79dsMN6nTX6kAk61AUjbBFwL-Q/exec" id="volunteerForm" brix-form-token="volunteerForm" data-wf-page-id="6994989de76bd93e241c1bd8" data-wf-element-id="0c4ed389-b404-2024-3089-f71cf0a2c9cc" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><div class="fields-grid"><div class="name-fields-wrapper"><div><label for="firstName">First Name*</label><input class="field w-input" maxlength="256" name="firstName" data-name="firstName" placeholder="Enter your first name" type="text" id="firstName" required=""/></div><div><label for="lastName">Last Name*</label><input class="field w-input" maxlength="256" name="lastName" data-name="lastName" placeholder="Enter your last name" type="text" id="lastName" required=""/></div></div><div id="w-node-_0c4ed389-b404-2024-3089-f71cf0a2c9d7-241c1bd8"><label for="email">Email Address*</label><input class="field w-input" maxlength="256" name="email" data-name="email" placeholder="Enter your email address" type="email" id="email" required=""/></div><div id="w-node-_4a714605-5d53-599c-8928-0cdce6efac2c-241c1bd8"><label for="neighborhoods">Neighborhoods of Interest*</label><textarea required="" placeholder="Which neighborhoods do you want to get involved with?" maxlength="5000" id="neighborhoods" name="neighborhoods" data-name="neighborhoods" class="field textarea w-node-bc759ed7-f5d6-3d2b-b52b-ad305b
182102e7c-241c1bd8 w-input"></textarea></div><div class="mt-1em mb-1em"><label for="field">Volunteer roles of Interest*</label><div class="checkboxes"><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="supportingMatchdays" id="supportingMatchdays" data-name="supportingMatchdays" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="supportingMatchdays">Supporting matchdays</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="matchdayMedia" id="matchdayMedia" data-name="matchdayMedia" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="matchdayMedia">Matchday media (please specify in notes)</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="nonmatchdayMedia" id="nonmatchdayMedia" data-name="nonmatchdayMedia" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="nonmatchdayMedia">Non-matchday media (please specify in notes)</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="soccerHistory" id="soccerHistory" data-name="soccerHistory" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="soccerHistory">Soccer history</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="supporterGroup" id="supporterGroup" data-name="supporterGroup" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="supporterGroup">Starting a supporter group</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="registeringClub" id="registeringClub" data-name="registeringClub" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="registeringClub">Registering my Brooklyn club</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="communityWork" id="communityWork" data-name="communityWork" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="communityWork">Community work &amp; philanthropy</span></label><label class="w-checkbox checkbox-wrapper"><input type="checkbox" name="generalNews" id="generalNews" data-name="generalNews" class="w-checkbox-input checkbox"/><span fs-cmsfilter-field="years" class="w-form-label" for="generalNews">General news &amp; updates</span></label></div></div><div id="w-node-_62346dea-926f-1749-caa1-8a550396a41c-241c1bd8"><label for="message">Tell us more about your selections, if you wish!</label><textarea id="message" name="message" maxlength="5000" data-name="message" placeholder="Let us know any additional details you&#x27;d like to share." required="" class="field textarea w-node-_62346dea-926f-1749-caa1-8a550396a41f-241c1bd8 w-input"></textarea></div><div data-sitekey="6LdjoXUsAAAAAJUIaZ7YTOLF0FhjE8CWyTtng65e" class="w-form-formrecaptcha mt-1em g-recaptcha g-recaptcha-error g-recaptcha-disabled"></div><input type="submit" data-wait="Please wait..." class="button _w-100 mt-1em w-button" value="Join Us"/></div></form><div class="success text-left w-form-done"><div><strong>Thank you for your interest! We&#x27;ll be in touch.</strong></div></div><div class="error w-form-fail"><div>Oops! Something went wrong while submitting the form, Please try again.</div></div></div></div></section><footer class="section footer"><div class="w-layout-blockcontainer container wide w-container"><div class="footer-grid"><div class="footer-left-wrapper"><div><h2 class="footer-cta-h2">Get Involved!</h2><h3 class="mt-0">We keep people up-to-date on volunteering in Brooklyn’s <span class="text-nowrap">soccer communities.</span></h3></div><a href="/community#volunteer" class="button _w-100 max-w-footer-button w-button">Join Us</a></div><div class="footer-right-wrapper"><div><div class="footer-links-wrapper"><a href="/about" class="footer-link">What is BKFF?</a><a href="/community" aria-current="page" class="footer-link w--current">Community</a><a href="/events" class="footer-link">Events</a><a href="/contact" class="footer-link">Contact Us</a></div><div class="socials-grid"><a aria-label="Instagram" href="https://www.instagram.com/brooklyn.football/" target="_blank" class="icon social-icon"><span role="img" aria-hidden="true"></span></a><a aria-label="LinkedIn" href="https://www.linkedin.com/company/brooklyn-football-foundation/about/" target="_blank" class="icon social-icon"><span role="img" aria-hidden="true"></span></a><a aria-label="YouTube" href="https://youtube.com/@brooklyn.football" target="_blank" class="icon social-icon"><span role="img" aria-hidden="true"></span></a></div></div><div><p class="footer-byline mb-half-em">© 2026 Brooklyn Football Foundation, Inc. <br/></p><p class="footer-byline">BKFF is applying for 501(c)(3) status, and continues to operate as a properly-incorporated nonprofit organization while awaiting this designation.</p></div></div></div></div></footer>
182<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=69924596055aadfcec0f4750" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
182<script src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/js/webflow.schunk.e8d1b2918f4c3957.js" type="text/javascript" integrity="sha384-j6Y94yjHVyW4w4BplDP+d/ImnJ+8UHUo7T5wk7dejGkpNLaOQr0QDfFE1gVbQCMG" crossorigin="anonymous"></script>
182<script src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750/js/webflow.22247dae.9f269fd37ae2354c.js" type="text/javascript" integrity="sha384-2eceJwBmr6kI/3gves098ygXW03XJbrUTlYkRcsvJCVWHSXa6wCk+blnf2fTuSjz" crossorigin="anonymous"></script>
182<script src="https://cdn.prod.website-files.com/gsap/3.15.0/gsap.min.js" type="text/javascript"></script>
182<script src="https://cdn.prod.website-files.com/gsap/3.15.0/ScrollTrigger.min.js" type="text/javascript"></script>
182<script>
183  document.addEventListener('DOMContentLoaded', () => {
184    const navWrappers = document.querySelectorAll('.nav-link-wrapper');
185    const hamburger = document.querySelector('.hamburger-wrapper');
186  
187    // 1. INJECT FUNCTIONAL STYLES (Caret & Layout Only)
188    const style = document.createElement('style');
189    style.innerHTML = `
190      .nav-link.nav-link-dropdown-menu { display: flex; align-items: center; cursor: pointer; }
191      .nav-caret { width: 1em; height: 1em; margin-left: 0.375em; transition: transform 0.3s ease; pointer-events: none; }
192      .nav-link-wrapper.active .nav-caret { transform: rotate(90deg); }
193    `;
194    document.head.appendChild(style);
195  
196    const caretSvg = `<svg class="nav-caret" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>`;
197  
198    navWrappers.forEach(wrapper => {
199      // The specific trigger element inside the wrapper
200      const trigger = wrapper.querySelector('.nav-link.nav-link-dropdown-menu');
201      const dropdown = wrapper.querySelector('.nav-dropdown-wrapper');
202      
203      if (!trigger || !dropdown) return;
204  
205      // A11Y setup
206      trigger.setAttribute('role', 'button');
207      trigger.setAttribute('aria-haspopup', 'true');
208      trigger.setAttribute('aria-expanded', 'false');
209      trigger.setAttribute('tabindex', '0');
210      trigger.insertAdjacentHTML('beforeend', caretSvg);
211  
212      const toggleMenu = (forceState) => {
213        const isExpanding = forceState !== undefined ? forceState : !dropdown.classList.contains('active');
214        dropdown.classList.toggle('active', isExpanding);
215        wrapper.classList.toggle('active', isExpanding);
216        trigger.setAttribute('aria-expanded', isExpanding);
217      };
218  
219      // 2. INTERACTION LOGIC
220      
221      // Desktop: Hover on Wrapper
222      wrapper.addEventListener('mouseenter', () => {
223        if (window.innerWidth > 991) toggleMenu(true);
224      });
225      wrapper.addEventListener('mouseleave', () => {
226        if (window.innerWidth > 991) toggleMenu(false);
227      });
228  
229      // Mobile & Keyboard: Click/Tap strictly on the Trigger
230      trigger.addEventListener('click', function(e) {
231        if (window.innerWidth <= 991) {
232          e.preventDefault();
233          e.stopPropagation();
234          e.stopImmediatePropagation();
235          toggleMenu();
236        }
237      }, true); // Capture phase to intercept Webflow events
238  
239      // Keyboard support (Enter/Space)
240      trigger.addEventListener('keydown', (e) => {
241        if (e.key === 'Enter' || e.key === ' ') {
242          e.preventDefault();
243          toggleMenu();
244        }
245      });
246    });
247  
248    // 3. HAMBURGER RESET
249    if (hamburger) {
250      hamburger.addEventListener('click', () => {
251        setTimeout(() => {
252          if (!hamburger.classList.contains('w--open')) {
253            navWrappers.forEach(w => {
254              w.classList.remove('active');
255              const d = w.querySelector('.nav-dropdown-wrapper');
256              const t = w.querySelector('.nav-link.nav-link-dropdown-menu');
257              if(d) d.classList.remove('active');
258              if(t) t.setAttribute('aria-expanded', 'false');
259            });
260          }
261        }, 50); 
262      });
263    }
264  });
265</script>
265
266
267<script>
268  
268<script>
269document.addEventListener('DOMContentLoaded', () => {
270  const adjustNavBorders = () => {
271    const navItems = document.querySelectorAll('.nav-link-item');
272    const isMobile = window.innerWidth <= 991;
273
274    navItems.forEach(item => {
275      // Check if this item contains the specific button class
276      const hasButton = item.querySelector('.button.nav-button');
277      
278      if (hasButton && isMobile) {
279        // Apply mobile-specific style
280        item.style.borderBottomWidth = '0px';
281        item.style.borderBottomColor = 'transparent';
282      } else {
283        // Reset to original/CSS defaults if on desktop or if button is missing
284        item.style.borderBottomWidth = '';
285        item.style.borderBottomColor = '';
286      }
287    });
288  };
289
290  // Run on load
291  adjustNavBorders();
292
293  // Run on resize to ensure it updates if a tablet rotates or window is resized
294  window.addEventListener('resize', adjustNavBorders);
295});
296</script>
296
297
298<script>
299  document.addEventListener('DOMContentLoaded', () => {
300    const adjustNavBorders = () => {
301      const navItems = document.querySelectorAll('.nav-link-item');
302      const isMobile = window.innerWidth <= 991;
303  
304      navItems.forEach(item => {
305        // Check if this item contains the specific button class
306        const hasButton = item.querySelector('.button.nav-button');
307        
308        if (hasButton && isMobile) {
309          // Apply mobile-specific style
310          item.style.borderBottomWidth = '0px';
311          item.style.borderBottomColor = 'transparent';
312        } else {
313          // Reset to original/CSS defaults if on desktop or if button is missing
314          item.style.borderBottomWidth = '';
315          item.style.borderBottomColor = '';
316        }
317      });
318    };
319  
320    // Run on load
321    adjustNavBorders();
322  
323    // Run on resize to ensure it updates if a tablet rotates or window is resized
324    window.addEventListener('resize', adjustNavBorders);
325  });
326</script>
326
327
328<script>
329  const navbar = document.querySelector('.navbar');
330  const secondSection = document.querySelectorAll('.section')[1];
331  
332  const options = {
333    rootMargin: "0px 0px -100% 0px", 
334    threshold: 0
335  };
336  
337  const observer = new IntersectionObserver((entries) => {
338    entries.forEach(entry => {
339      const isPastFirstSection = entry.isIntersecting || entry.boundingClientRect.y < 0;
340      
341      if (isPastFirstSection) {
342        navbar.classList.add('bg-white');
343        navbar.classList.remove('bg-transparent');
344      } else {
345        navbar.classList.add('bg-transparent');
346        navbar.classList.remove('bg-white');
347      }
348    });
349  }, options);
350  
351  observer.observe(secondSection);
352</script>
352
353
354<script>
355   /**
356    Webflow to Google Sheets Connector by BRIX Templates
357    Version 1.0 
358   * Initializes form handlers for all forms with the brix-sheets-form attribute
359   */
360  (function initializeFormHandlers() {
361    // Select all forms with the brix-sheets-form attribute
362    const forms = document.querySelectorAll('form[brix-sheets-form="enable"]');
363
364    if (forms.length === 0) {
365      console.warn('BRIX Templates: No forms found with brix-sheets-form="enable"');
366      return;
367    }
368
369    // Add submit handler to each form
370    forms.forEach(form => {
371      if (!form.getAttribute('brix-form-token')) {
372        console.warn('BRIX Templates: Form must have a brix-form-token attribute');
373        return;
374      }
375      form.addEventListener('submit', handleFormSubmit);
376    });
377  })();
378
379  /**
380   * Handles form submission
381   * @param {Event} event - Form submission event
382   */
383  async function handleFormSubmit(event) {
384    event.preventDefault();
385
386    const form = event.target;
387    const formWrapper = form.closest('.w-form');
388    const successDiv = formWrapper.querySelector('.w-form-done');
389    const errorDiv = formWrapper.querySelector('.w-form-fail');
390
391    // Get the required attributes
392    const scriptUrl = form.getAttribute('brix-sheets-script-url');
393    const formToken = form.getAttribute('brix-form-token');
394    
395    if (!scriptUrl || !formToken) {
396      console.error('BRIX Templates: Missing required attributes. Form needs both brix-sheets-script-url and brix-form-token.');
397      displayMessage(successDiv, false);
398      displayMessage(errorDiv, true);
399      return;
400    }
401
402    try {
403      // Collect form data
404      const formData = new FormData(form);
405      
406      formData.append('secretKey', form.getAttribute('brix-secret-key'));
407      
408      // Add the form token to the data
409      formData.append('formToken', formToken);
410      
411      // Convert to URL-encoded string
412      const urlEncodedData = new URLSearchParams(formData).toString();
413
414      const response = await fetch(scriptUrl, {
415        method: 'POST',
416        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
417        body: urlEncodedData
418      });
419
420      if (!response.ok) {
421        throw new Error('Network response was not OK');
422      }
423
424      const result = await response.json();
425
426      if (result.result === 'success') {
427        form.reset();
428        displayMessage(successDiv, true);
429        displayMessage(errorDiv, false);
430      } else {
431        throw new Error(result.message || 'Unknown error');
432      }
433    } catch (error) {
434      console.error('BRIX Templates: Submission error:', error);
435      displayMessage(successDiv, false);
436      displayMessage(errorDiv, true);
437    }
438  }
439
440  /**
441   * Displays or hides a message div
442   * @param {HTMLElement} messageDiv - Message element to toggle
443   * @param {boolean} show - Whether to show or hide the message
444   */
445  function displayMessage(messageDiv, show) {
446    if (messageDiv) {
447      messageDiv.style.display = show ? 'block' : 'none';
448    }
449  }
450</script>
450<script src="https://cdn.prod.website-files.com/69924596055aadfcec0f4750%2F65da374ca1ebd53e3cabb68c%2F69f247981665f1464f997560%2Fevents_calendar_embed_script-0.0.1.js" type="text/javascript"></script>
450</body></html>

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.