1<!doctype html> 2<html lang="en-US"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <link rel="profile" href="https://gmpg.org/xfn/11"> 8
8<script> 9 var ajaxurl = "https://mlfa.org/wp-admin/admin-ajax.php"; 10 </script>
10 11 <!-- here is ajax url --> 12 13 <!-- Global site tag (gtag.js) - Google Ads: 10929386518 -->
vendor: 65 bytes, lines 13-14
13 14 <script async src="https://www.googletagmanager.com/gtag/js?id=
14AW-10929386518
vendor: 13 bytes, lines 14-15
14"></script> 15
15<script> 16
vendor: 142 bytes, lines 16-22
16window.dataLayer = window.dataLayer || []; 17 18 function gtag() { 19 dataLayer.push(arguments); 20 } 21 gtag('js', new Date()); 22 gtag('config', '
22AW-10929386518
vendor: 5 bytes, lines 22-23
22'); 23
23</script>
23 24 25 <!-- Event snippet for Donation conversion page 26In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. --> 27
27<script> 28 function gtag_report_conversion(url) { 29 var callback = function() { 30 if (typeof(url) != 'undefined') { 31 window.location = url; 32 } 33 }; 34 gtag('event', 'conversion', { 35 'send_to': 'AW-10929386518/NadwCPuT4cMDEJboxNso', 36 'event_callback': callback 37 }); 38 return false; 39 } 40 </script>
40 41 42 <!-- Meta Pixel Code --> 43
43<script>
vendor: 507 bytes, lines 43-62
43 44 ! function(f, b, e, v, n, t, s) { 45 if (f.fbq) return; 46 n = f.fbq = function() { 47 n.callMethod ? 48 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 49 }; 50 if (!f._fbq) f._fbq = n; 51 n.push = n; 52 n.loaded = !0; 53 n.version = '2.0'; 54 n.queue = []; 55 t = b.createElement(e); 56 t.async = !0; 57 t.src = v; 58 s = b.getElementsByTagName(e)[0]; 59 s.parentNode.insertBefore(t, s) 60 }(window, document, 'script', 61 'https://connect.facebook.net/en_US/fbevents.js'); 62 fbq('init', '
621065750750710416
vendor: 33 bytes, lines 62-64
62'); 63 fbq('track', 'PageView'); 64
64</script>
64 65 <!-- End Meta Pixel Code --> 66 67 <meta name="facebook-domain-verification" content="dtve3ggt3vpr3bv2x708l2iflj8dz6" /> 68 69
69<script type="text/javascript">function theChampLoadEvent(e){var t=window.onload;if(typeof window.onload!="function"){window.onload=e}else{window.onload=function(){t();e()}}}</script>
69 70
70<script type="text/javascript">var theChampDefaultLang = 'en_US', theChampCloseIconPath = 'https://mlfa.org/wp-content/plugins/super-socializer/images/close.png';</script>
70 71
71<script>var theChampSiteUrl = 'https://mlfa.org', theChampVerified = 0, theChampEmailPopup = 0, heateorSsMoreSharePopupSearchText = 'Search';</script>
71 72
72<script> var theChampFBKey = '', theChampFBLang = 'en_US', theChampFbLikeMycred = 0, theChampSsga = 0, theChampCommentNotification = 0, theChampHeateorFcmRecentComments = 0, theChampFbIosLogin = 0; </script>
72 73
73<script type="text/javascript">var theChampFBCommentUrl = 'https://mlfa.org/gala/'; var theChampFBCommentColor = ''; var theChampFBCommentNumPosts = ''; var theChampFBCommentWidth = '100%'; var theChampFBCommentOrderby = ''; var theChampCommentingTabs = "wordpress,facebook,disqus", theChampGpCommentsUrl = 'https://mlfa.org/gala/', theChampDisqusShortname = '', theChampScEnabledTabs = 'wordpress,fb', theChampScLabel = 'Leave a reply', theChampScTabLabels = {"wordpress":"Default Comments (0)","fb":"Facebook Comments","disqus":"Disqus Comments"}, theChampGpCommentsWidth = 0, theChampCommentingId = 'respond'</script>
73 74
74<script> var theChampSharingAjaxUrl = 'https://mlfa.org/wp-admin/admin-ajax.php', heateorSsFbMessengerAPI = 'fb-messenger://share/?link=%encoded_post_url%',heateorSsWhatsappShareAPI = 'api', heateorSsUrlCountFetched = [], heateorSsSharesText = 'Shares', heateorSsShareText = 'Share', theChampPluginIconPath = 'https://mlfa.org/wp-content/plugins/super-socializer/images/logo.png', theChampSaveSharesLocally = 0, theChampHorizontalSharingCountEnable = 0, theChampVerticalSharingCountEnable = 0, theChampSharingOffset = -10, theChampCounterOffset = -10, theChampMobileStickySharingEnabled = 0, heateorSsCopyLinkMessage = "Link copied."; 75 var heateorSsVerticalSharingShortUrl = "https://mlfa.org/gala/"; </script>
75 76 <style type="text/css"> 77 .the_champ_button_instagram span.the_champ_svg,a.the_champ_instagram span.the_champ_svg{background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)} 78 .the_champ_horizontal_sharing .the_champ_svg,.heateor_ss_standard_follow_icons_container .the_champ_svg{ 79 background-color:transparent!important;background:transparent!important; 80 color: #B4B4B4; 81 border-width: 0px; 82 border-style: solid; 83 border-color: transparent; 84 } 85 .the_champ_horizontal_sharing span.the_champ_svg:hover,.heateor_ss_standard_follow_icons_container span.the_champ_svg:hover{ 86 background-color:transparent!important;background:transparent; 87 border-color: transparent; 88 } 89 div.the_champ_horizontal_sharing span.the_champ_svg svg:hover path:not(.the_champ_no_fill),div.the_champ_horizontal_sharing span.the_champ_svg svg:hover ellipse, div.the_champ_horizontal_sharing span.the_champ_svg svg:hover circle, div.the_champ_horizontal_sharing span.the_champ_svg svg:hover polygon, div.the_champ_horizontal_sharing span.the_champ_svg svg:hover rect:not(.the_champ_no_fill){ 90 fill: #B83D26; 91 } 92 div.the_champ_horizontal_sharing span.the_champ_svg svg:hover path.the_champ_svg_stroke, div.the_champ_horizontal_sharing span.the_champ_svg svg:hover rect.the_champ_svg_stroke{ 93 stroke: #B83D26; 94 } 95 .the_champ_vertical_sharing span.the_champ_svg,.heateor_ss_floating_follow_icons_container span.the_champ_svg{ 96 color: #fff; 97 border-width: 0px; 98 border-style: solid; 99 border-color: transparent; 100 } 101 .the_champ_vertical_sharing span.the_champ_svg:hover,.heateor_ss_floating_follow_icons_container span.the_champ_svg:hover{ 102 border-color: transparent; 103 } 104 @media screen and (max-width:783px){.the_champ_vertical_sharing{display:none!important}}</style> 105 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 106 107 <!-- This site is optimized with the Yoast SEO plugin v28.0 - https://yoast.com/product/yoast-seo-wordpress/ --> 108 <title>MLFA's 25th Anniversary Gala - MLFA</title> 109 <link rel="canonical" href="https://mlfa.org/gala/" /> 110 <meta property="og:locale" content="en_US" /> 111 <meta property="og:type" content="article" /> 112 <meta property="og:title" content="MLFA's 25th Anniversary Gala - MLFA" /> 113 <meta property="og:url" content="https://mlfa.org/gala/" /> 114 <meta property="og:site_name" content="MLFA" /> 115 <meta name="twitter:card" content="summary_large_image" /> 116
116<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mlfa.org\/gala\/","url":"https:\/\/mlfa.org\/gala\/","name":"MLFA's 25th Anniversary Gala - MLFA","isPartOf":{"@id":"https:\/\/mlfa.org\/#website"},"datePublished":"2026-08-07T06:38:57+00:00","breadcrumb":{"@id":"https:\/\/mlfa.org\/gala\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mlfa.org\/gala\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mlfa.org\/gala\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mlfa.org\/"},{"@type":"ListItem","position":2,"name":"MLFA’s 25th Anniversary Gala"}]},{"@type":"WebSite","@id":"https:\/\/mlfa.org\/#website","url":"https:\/\/mlfa.org\/","name":"MLFA","description":"DEFENDS | PROTECTS | EDUCATES","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mlfa.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
116 117 <!-- / Yoast SEO plugin. --> 118 119 120<link rel="alternate" type="application/rss+xml" title="MLFA » Feed" href="https://mlfa.org/feed/" /> 121<link rel="alternate" type="application/rss+xml" title="MLFA » Comments Feed" href="https://mlfa.org/comments/feed/" /> 122<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://mlfa.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fmlfa.org%2Fgala%2F" /> 123<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://mlfa.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fmlfa.org%2Fgala%2F&format=xml" /> 124<style id="wp-img-auto-sizes-contain-inline-css"> 125img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 126/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 127</style> 128<style id="wp-emoji-styles-inline-css"> 129 130 img.wp-smiley, img.emoji { 131 display: inline !important; 132 border: none !important; 133 box-shadow: none !important; 134 height: 1em !important; 135 width: 1em !important; 136 margin: 0 0.07em !important; 137 vertical-align: -0.1em !important; 138 background: none !important; 139 padding: 0 !important; 140 } 141/*# sourceURL=wp-emoji-styles-inline-css */ 142</style> 143<link rel='stylesheet' id='wp-block-library-css' href='https://mlfa.org/wp-includes/css/dist/block-library/style.min.css?ver=7.1.2' media='all' /> 144<style id="classic-theme-styles-inline-css"> 145/*! This file is auto-generated */ 146.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 147/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 148</style> 149<style id="global-styles-inline-css"> 150:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
150--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
150.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 151:root :where(.wp-block-icon svg){width: 24px;} 152:where(.wp-block-gallery.is-layout-flex){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}:where(.wp-block-gallery.is-layout-grid){gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );} 153:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;} 154:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 155:where(.wp-block-term-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-term-template.is-layout-grid){gap: 1.25em;} 156:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 157:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 158/*# sourceURL=global-styles-inline-css */ 159</style> 160<link rel='stylesheet' id='contact-form-7-css' href='https://mlfa.org/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.6' media='all' /> 161<link rel='stylesheet' id='powertip-css' href='https://mlfa.org/wp-content/plugins/devvn-image-hotspot/frontend/css/jquery.powertip.min.css?ver=1.2.0' media='all' /> 162<link rel='stylesheet' id='maps-points-css' href='https://mlfa.org/wp-content/plugins/devvn-image-hotspot/frontend/css/maps_points.css?ver=1.3.0' media='all' /> 163<link rel='stylesheet' id='audioigniter-css' href='https://mlfa.org/wp-content/plugins/audioigniter/player/build/style.css?ver=2.0.4' media='all' /> 164<link rel='stylesheet' id='mlfa-style-css' href='https://mlfa.org/wp-content/themes/mlfa/style.css?ver=1.0.0' media='all' /> 165<link rel='stylesheet' id='font_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/fonts/fonts.css?ver=7.1.2' media='all' /> 166<link rel='stylesheet' id='variables_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/variables.css?ver=7.1.2' media='all' /> 167<link rel='stylesheet' id='custom_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/custom.css?ver=7.1.2' media='all' /> 168<link rel='stylesheet' id='custom_resposive_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/responsive.css?ver=7.1.2' media='all' /> 169<link rel='stylesheet' id='bootstrap_grid_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/bootstrap-grid.min.css?ver=7.1.2' media='all' /> 170<link rel='stylesheet' id='bootstrap_grid_map_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/bootstrap-grid.min.css.map?ver=7.1.2' media='all' /> 171<link rel='stylesheet' id='slider_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/swiper-bundle.min.css?ver=1.0.0' media='all' /> 172<link rel='stylesheet' id='slick_styles-css' href='https://mlfa.org/wp-content/themes/mlfa/assets/css/slick.css?ver=1.0.0' media='all' /> 173<link rel='stylesheet' id='the_champ_frontend_css-css' href='https://mlfa.org/wp-content/plugins/super-socializer/css/front.css?ver=7.14.5' media='all' /> 174<link rel='stylesheet' id='cf7cf-style-css' href='https://mlfa.org/wp-content/plugins/cf7-conditional-fields/style.css?ver=2.7.10' media='all' /> 175<link rel='stylesheet' id='elementor-frontend-css' href='https://mlfa.org/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.1.4' media='all' /> 176<link rel='stylesheet' id='eael-general-css' href='https://mlfa.org/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/css/view/general.min.css?ver=6.6.11' media='all' />
177<script id="jquery-core-js" src="https://mlfa.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 177
177
178<script id="jquery-migrate-js" src="https://mlfa.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
178 179<link rel="https://api.w.org/" href="https://mlfa.org/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://mlfa.org/wp-json/wp/v2/pages/26050" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://mlfa.org/xmlrpc.php?rsd" /> 180<meta name="generator" content="WordPress 7.1.2" /> 181<link rel='shortlink' href='https://mlfa.org/?p=26050' /> 182<!-- Fundraise Up -->
183<script>(function(w,d,s,n,a){if(!w[n]){var l='call,catch,on,once,set,then,track,openCheckout' 184.split(','),i,o=function(n){return'function'==typeof n?o.l.push([arguments])&&o 185:function(){return o.l.push([n,arguments])&&o}},t=d.getElementsByTagName(s)[0], 186j=d.createElement(s);j.async=!0;j.src='https://cdn.fundraiseup.com/widget/'+a+''; 187t.parentNode.insertBefore(j,t);o.s=Date.now();o.v=5;o.h=w.location.href;o.l=[]; 188for(i=0;i<8;i++)o[l[i]]=o(l[i]);w[n]=o} 189})(window,document,'script','FundraiseUp','AAMRKAJS');</script>
189 190<!-- End Fundraise Up --><!-- Termly Consent Banner -->
191<script src="https://app.termly.io/resource-blocker/2ba4f340-7327-4c1a-98bb-3173e3ab6807?autoBlock=on"></script>
191 192 193<!-- Mailchimp Popup -->
194<script id="mcjs">!function(c,h,i,m,p){m=c.createElement(h),p=c.getElementsByTagName(h)[0],m.async=1,m.src=i,p.parentNode.insertBefore(m,p)}(document,"script","https://chimpstatic.com/mcjs-connected/js/users/3dc4a1c076a35ecb15e01024a/77e251a3733ebb41df199e41e.js");</script>
194 195 196<!-- Google Tag Manager -->
197<script>
vendor: 331 bytes, lines 197-201
197(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 198new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 199j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 200'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 201})(window,document,'script','dataLayer','
201GTM-MJXWK3Z
vendor: 3 bytes, line 201
201');
201</script>
201 202<!-- End Google Tag Manager --> 203 204<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 204-205
204 205<script async src="https://www.googletagmanager.com/gtag/js?id=
205UA-39917155-1
vendor: 13 bytes, line 205
205"></script>
206<script> 207
vendor: 138 bytes, lines 207-211
207window.dataLayer = window.dataLayer || []; 208 function gtag(){dataLayer.push(arguments);} 209 gtag('js', new Date()); 210 211 gtag('config', '
211UA-39917155-1
vendor: 5 bytes, line 211
211');
212</script>
212 213 214<meta name="generator" content="Elementor 4.1.4; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap"> 215 <style> 216 .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload), 217 .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * { 218 background-image: none !important; 219 } 220 @media screen and (max-height: 1024px) { 221 .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload), 222 .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * { 223 background-image: none !important; 224 } 225 } 226 @media screen and (max-height: 640px) { 227 .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload), 228 .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * { 229 background-image: none !important; 230 } 231 } 232 </style> 233 <link rel="icon" href="https://mlfa.org/wp-content/uploads/2023/03/Group-25.png" sizes="32x32" /> 234<link rel="icon" href="https://mlfa.org/wp-content/uploads/2023/03/Group-25.png" sizes="192x192" /> 235<link rel="apple-touch-icon" href="https://mlfa.org/wp-content/uploads/2023/03/Group-25.png" /> 236<meta name="msapplication-TileImage" content="https://mlfa.org/wp-content/uploads/2023/03/Group-25.png" /> 237<style id="wp-custom-css"> 238.page-template-template-financials .logo-inside.d-flex.align-items-center.justify-content-center.m-auto.p-3 a { 239 height: 100% !important; 240} 241.page-template-events-page-template .date-main { 242 display: flex; 243} 244.page-template-events-page-template .event_date { 245 font-size: 24px; 246 font-family: var(--ff-title); 247} 248.page-template-template-financials .logo-inside.d-flex.align-items-center.justify-content-center.m-auto.p-3 img { 249 height: 100%; 250} 251 252.divform label { 253 display: block; 254 text-align: left; 255} 256 257section.divmain { 258 width: 100%; 259 float: left; 260} 261 262.divmain { 263 display: block; 264 width: 100%; 265 float: left; 266} 267 268.divform { 269 width: 100%; 270 float: left; 271} 272 273 274.divform label { 275 display: block; 276 text-align: left; 277 color:#000; 278} 279 280 281 282.divform input{ 283 width:100%; 284} 285 286 287 288.divform .secondary-button{ 289 width: auto; 290 height:auto; 291padding: 15px 40px; 292} 293 294 295.divform { 296 width: 100%; 297 float: left; 298 margin-bottom: 20px; 299} 300 301 302.divform input { 303 width: 100%; 304 height: 34px; 305 padding: 15px; 306 border: 1px solid #ccc; 307 border-radius: 10px; 308} 309 310.divform.bgremove input{ 311 padding:0; 312 border: none; 313 border-radius: 0px; 314} 315 316.new h4 { 317 text-align: center; 318 319 margin-bottom: 40px; 320 font-family: var(--ff-title); 321 font-size: var(--fs-xxl); 322 font-weight: 700; 323 text-transform: uppercase; 324 line-height: var(--line-height-xl); 325 letter-spacing: 2px; 326} 327 328 329 330 331 332 333 334.Formmain { 335 position: relative; 336 width: 100%; 337 display: block; 338 max-width: 400px; 339 top: 0; 340 right: 0; 341 left: 34%; 342} 343 344 345 346.Formmain input { 347 width: 100%; 348 height: 46px; 349 padding: 15px; 350 border: 1px solid #ccc; 351 border-radius: 10px; 352 margin-top: 8px; 353} 354 355 356html body .file-remove{ 357 padding:0; 358 border: none; 359 border-radius: 0px; 360} 361 362 363.Formmain .secondary-button{ 364 width: auto; 365 height:auto; 366padding: 15px 40px; 367} 368 369 370 371 372.p-topp{ 373 margin:60px 0; 374} 375 376 377.list-issues-section .title-main-secondary h4{ 378 font-family: var(--ff-title)!important; 379} 380 381 382.about-us-section .subtitle{ 383 font-family: var(--ff-title)!important; 384} 385 386 387.tags-list li a{ 388 font-family: var(--ff-title)!important; 389} 390 391 392/* .description-main p{ 393 font-size: 18px; 394} */ 395 396.title-description p{ 397 font-size: 18px; 398} 399 400.content p{ 401 font-size: 18px; 402} 403 404.hero-content-txt p{ 405 font-size: 18px; 406} 407 408 409 410.listicon ul { 411 list-style-type: none; 412 display: block; 413 margin: 0 auto; 414 float: left; 415 width: 100%; 416 padding: 0; 417} 418 419.listicon li { 420 float: left; 421 width: 20%; 422 display: flex; 423} 424 425.listicon li img { 426 float: left; 427 width: auto; 428 height: 25px; 429 margin-right: 7px; 430} 431 432.listicon p { 433 434 font-size: 18px; 435 436} 437 438.listicon { 439 margin: 0; 440 width: 100%; 441 float: left; 442 padding-left: 100px; 443} 444 445 446.library-section .title-main h5 { 447 text-transform: none; 448 font-size: 18px; 449} 450 451 452 453.book-item .book-post-title a{ 454 font-family: var(--ff-title); 455 font-weight: 600; 456 text-transform: uppercase; 457 font-size: 30px; 458 line-height: 1.2; 459 color: var(--theme-secondary-color); 460 margin-bottom: 10px; 461 text-decoration: none; 462} 463.title-main-secondary h4 { 464 text-transform: uppercase; 465} 466 467/*********Temp css same added in custom css*************/ 468 469.page-id-25 .hero-title-main, .page-id-118 .hero-title-main, .page-id-328 .hero-title-main, .page-id-138 .hero-title-main, .page-id-293 .hero-title-main, .page-id-822 .hero-title-main, .page-id-334 .hero-title-main, .page-id-334 .hero-title-main, .page-id-241 .hero-title-main, 470.page-id-170 .hero-title-main, .single-teams .hero-title-main{ 471 display: none !important; 472} 473 474.featured-book .inner .feat-contented { 475 display: none; 476} 477.page-template-our-story-page-template .story-stats-cards-section .row { 478 margin: 0px 18%; 479 vertical-align: middle; 480 width: 100%; 481} 482.join-section .content-main ul li { 483 font-family: 'Avenir LT Std' !important; 484 font-size: 16px; 485} 486@media only screen and (min-width: 992px) { 487 .shop-mobile{ 488 display:none; 489 } 490} 491.site-header .site-navigation #menu-item-9146::after{ 492 content: ''; 493 width: 34px; 494 height: 34px; 495 background-image: url(https://mlfa.org/wp-content/uploads/2022/11/shop-icon.svg); 496 position: absolute; 497 right: 10px; 498 top: 50%; 499 transform: translateY(-50%); 500} 501.site-header { 502 background: #014438; 503 position:relative !important; 504} 505.home .site-header { 506 position:fixed !important; 507 background: rgba(0, 0, 0, 0.3) !important;} 508.btn-link{ 509 text-align:center; 510 padding-top:80px; 511} 512@media screen and (max-width: 1600px){ 513.timeline-section { 514 padding-top: 80px !important; 515 padding-bottom: 80px !important; 516} 517} 518 @media(min-width: 1024px) { 519 .width-0 { 520 width: 1px; 521 } 522 } 523 524element.style { 525} 526@media screen and (max-width: 767px){ 527 528 .content-wrapper p{ 529 text-align:center; 530 } 531.home-hero-section .section-body .swiper-pagination { 532 bottom: -100px; 533} 534 .swiper-button-next, .swiper-rtl .swiper-button-prev { 535 top: 91px!important; 536} 537 .swiper-button-prev, .swiper-rtl .swiper-button-next{ 538 top: 91px!important; 539 } 540 .page-template-our-story-page-template .story-stats-cards-section .row { 541 margin: 0px 0%; 542 vertical-align: middle; 543 width: 100%; 544} 545 .cpt-single-post .post-img::before{ 546 right: 40px 547 } 548 .cpt-single-post .post-img{ 549 text-align:center; 550 } 551} 552 553#wpcf7-f8-o1 .field-wrapper p{ 554 margin-bottom:0px !important; 555} 556 557.page-template-template-Hajj-Udhiyah .ramadan-banner-carousel .slick-dots {
558 display:none; 559} 560 .page-template-template-Hajj-Udhiyah .content-wrapper p{ 561 font-size:18px; 562 line-height:1.8; 563 } 564.page-template-template-Hajj-Udhiyah .ramadan-banner-carousel{ 565 z-index:1 !important; 566} 567 568.page-template-template-Hajj-Udhiyah .defending-muslims { 569 background: #014438; 570 margin-bottom: -1px; 571} 572.home .site-header { 573 position: relative !important; 574 background: #014438 !important; 575} 576.footer-main .donate-btn img{ 577 display:none; 578} 579#colophon .copy-right-text a { 580 color:#ffffff; 581} 582</style> 583</head> 584 585<body class="wp-singular page-template page-template-page-mlfa-gala page-template-page-mlfa-gala-php page page-id-26050 wp-theme-mlfa no-sidebar elementor-default elementor-kit-11652 intro-lock"> 586 <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 586-587
586 587<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
587GTM-MJXWK3Z
vendor: 85 bytes, lines 587-588
587" 588height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
589<!-- End Google Tag Manager (noscript) --> 590 <main id="page" class="page-wrapper"> 591 <div class="global_alert"><div><h3>Gala Tickets Remain! Join Alana Hadid on Oct. 3 in Dallas. <a href="https://mlfa.org/gala">Get Tickets Now</a></h3> 592</div></div> 593 594 <header id="masthead" class="site-header"> 595 <div class="header-wrap wrapper"> 596 <div class="flex-container"> 597 <div class="header-main header-row"> 598 <div class="header-logo header-col"> 599 600 <a class="logo-link" href="https://mlfa.org"> 601 <img src="https://mlfa.org/wp-content/uploads/2026/02/[email protected]" alt="" class="desktop-logo"> 602 <img src="https://mlfa.org/wp-content/uploads/2026/03/[email protected]" alt="" class="mobile-logo"> 603 </a> 604 605 </div> 606 <div class="donate-wrap"> 607 <div class="donate-header"><ul id="secondary-menu-mobile" class="menu"><li id="menu-item-624" class="shop-menu-item d-none menu-item menu-item-type-custom menu-item-object-custom menu-item-624"><a target="_blank" href="https://www.bonfire.com/store/muslim-legal-fund-of-america/">Shop</a></li> 608<li id="menu-item-23296" class="nav-apply-for-help-btn menu-item menu-item-type-post_type menu-item-object-page menu-item-23296"><a href="https://mlfa.org/application-for-legal-assistance/">Apply for Help</a></li> 609<li id="menu-item-690" class="nav-donate-btn menu-item menu-item-type-custom menu-item-object-custom menu-item-690"><a target="_blank" href="/donate">Donate</a></li> 610</ul></div> 611 <div class="site-navigation header-col"> 612 <div class="burger-wrap"> 613 <div class="mob-btn"> 614 <span class="bars line--top"></span> 615 <span class="bars line--center"></span> 616 <span class="bars line--bottom"></span> 617 </div> 618 </div> 619 <div class="inner-nav"> 620 <div class="menu-primary-menu-container"><ul id="primary-menu" class="menu"><li id="menu-item-13" class="has-children menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-13"><a href="#">Who We Are</a> 621<ul class="sub-menu"> 622 <li id="menu-item-274" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-274"><a href="https://mlfa.org/our-story/">Story</a></li> 623 <li id="menu-item-275" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-275"><a href="https://mlfa.org/teams/">TEAM</a></li> 624 <li id="menu-item-276" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-276"><a href="https://mlfa.org/join-our-team/">JOIN OUR TEAM</a></li> 625 <li id="menu-item-277" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-277"><a href="https://mlfa.org/our-financials/">Financials</a></li> 626 <li id="menu-item-278" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-278"><a href="https://mlfa.org/frequently-asked-questions/">FAQ</a></li> 627</ul> 628</li> 629<li id="menu-item-14" class="has-children menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-14"><a href="#">What We Do</a> 630<ul class="sub-menu"> 631 <li id="menu-item-279" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-279"><a href="https://mlfa.org/missions/">Mission</a></li> 632 <li id="menu-item-9911" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9911"><a href="https://mlfa.org/our-legal-services/">Services</a></li> 633 <li id="menu-item-281" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-281"><a href="https://mlfa.org/our-cases/">CASES</a></li> 634 <li id="menu-item-282" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-282"><a href="https://mlfa.org/upcoming-events/">Events</a></li> 635 <li id="menu-item-12032" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-12032"><a href="https://mlfa.org/upcoming-events#community">MLFA In Your Community</a></li> 636 <li id="menu-item-283" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-283"><a href="https://mlfa.org/apply-for-help/">APPLY FOR HELP</a></li> 637</ul> 638</li> 639<li id="menu-item-16569" class="has-children menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-16569"><a href="https://mlfa.org/issues/">Legal Issues</a> 640<ul class="sub-menu"> 641 <li id="menu-item-16573" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16573"><a href="https://mlfa.org/issues/">All Issues</a></li> 642 <li id="menu-item-16570" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16570"><a href="https://mlfa.org/issues-civil/">Civil Litigation</a></li> 643 <li id="menu-item-16571" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16571"><a href="https://mlfa.org/issues-immigration/">Immigration Litigation</a></li> 644 <li id="menu-item-18146" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18146"><a href="https://mlfa.org/issues-non-profit-governance/">Nonprofit Governance</a></li> 645 <li id="menu-item-16572" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16572"><a href="https://mlfa.org/issues-nscdc/">National Security Criminal Defense Center (NSCDC)</a></li> 646</ul> 647</li> 648<li id="menu-item-17" class="has-children menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-17"><a href="#">Resources</a> 649<ul class="sub-menu"> 650 <li id="menu-item-678" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-678"><a href="https://mlfa.org/blog-news/">NEWS & COMMENTARY</a></li> 651 <li id="menu-item-286" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-286"><a href="https://mlfa.org/video/">VIDEOS</a></li> 652 <li id="menu-item-288" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-288"><a href="https://mlfa.org/book-club/">BOOK CLUB</a></li> 653 <li id="menu-item-22507" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22507"><a href="https://mlfa.org/amle/">American Muslim Legal Ecosystem</a></li> 654</ul> 655</li> 656<li id="menu-item-18805" class="has-children d-md-none menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-18805"><a href="#">Other Ways to Donate</a> 657<ul class="sub-menu"> 658 <li id="menu-item-18815" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18815"><a href="https://support.mlfa.org/campaign/year-end-campaign-2023/c539147">Create a Fundraiser</a></li> 659 <li id="menu-item-18822" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18822"><a href="/double-your-impact/">Double Your Impact</a></li> 660 <li id="menu-item-18823" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18823"><a href="/giving-funds/">Giving Funds</a></li> 661</ul> 662</li> 663</ul></div> </div> 664 </div> 665 </div> 666 <div class="secondary-navigation header-col"> 667 <div class="inner-nav"> 668 <div class="menu-secondary-menu-container"><ul id="secondary-menu" class="menu"><li class="shop-menu-item d-none menu-item menu-item-type-custom menu-item-object-custom menu-item-624"><a target="_blank" href="https://www.bonfire.com/store/muslim-legal-fund-of-america/">Shop</a></li> 669<li class="nav-apply-for-help-btn menu-item menu-item-type-post_type menu-item-object-page menu-item-23296"><a href="https://mlfa.org/application-for-legal-assistance/">Apply for Help</a></li> 670<li class="nav-donate-btn menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-690"><a target="_blank" href="/donate">Donate</a> 671<ul class="sub-menu"> 672 <li id="menu-item-691" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-691"><a href="/donate">Donate</a></li> 673 <li id="menu-item-25787" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25787"><a href="https://mlfa.org/justice-collective/">Monthly Giving</a></li> 674 <li id="menu-item-692" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-692"><a href="https://support.mlfa.org/campaign/year-end-campaign-2023/c539147">Create a Fundraiser</a></li> 675 <li id="menu-item-693" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-693"><a href="/double-your-impact/">Double Your Impact</a></li> 676 <li id="menu-item-18649" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18649"><a href="https://mlfa.org/giving-funds/">Giving Funds</a></li> 677</ul> 678</li> 679</ul></div> </div> 680 </div> 681 </div>
682 </div> 683 </div> 684 685 </header><!-- #masthead --> 686<link rel="preconnect" href="https://fonts.googleapis.com"> 687<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 688<link href="https://fonts.googleapis.com/css2?family=Newsreader:opsz,[email protected],300;6..72,400;6..72,500;6..72,600;6..72,700&family=Nunito+Sans:wght@400;500;600;700&display=swap" rel="stylesheet"> 689 690<style> 691 692:root{ 693 --green:#014438; --green-2:#0e6b58; --green-lite:#3ea88f; --green-deep:#02120e; 694 --red:#b83d26; --coral:#e8674b; --coral-lite:#ef7558; --coral-deep:#5e1d12; 695 --orange:#c2402a; 696 --gold:#e7c9a0; --gold-2:#cfa564; 697 --tan:#e7dbc2; --navy:#16264a; /* tickets section, per client feedback */ 698 --paper:#f3efe6; --cream-pink:#f6e6df; --ink:#060605; --maroon:#3a120b; 699 --line:rgba(243,239,230,.14); 700 --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.65,0,.35,1); 701 --pad:clamp(20px,5vw,84px); 702 --sec-pad:clamp(80px,10vw,150px); /* shared top/bottom rhythm for standard sections */ 703 /* headings: Times-style serif · body: Avenir (Nunito Sans covers non-Apple) */ 704 --h-sec:clamp(30px,4.2vw,62px); /* one size for every section heading */ 705 --h3:clamp(22px,2.6vw,38px); /* one size for every h3 */ 706 /* ââ page background flow ââââââââââââââââââââââââââââââââââââââââââââââ 707 Every section starts on the colour its neighbour ended on. Hue crossings 708 (green â coral) always happen down in the darks, where the shift reads as 709 depth instead of mud; the brights are pure MLFA red/coral/teal. */ 710 --bg-night:#0a3529; --bg-forest:#0f5240; --bg-teal:#178d73; 711 --bg-plum:#5e1d12; --bg-ember:#9c3520; --bg-red:#c2402a; 712 --bg-coral:#ec6b4d; --bg-cream:#f6e6df; 713 --serif:'Newsreader','Times New Roman',Times,Georgia,serif; 714 --body:'Avenir Next','Avenir','Nunito Sans',system-ui,-apple-system,sans-serif; 715} 716*{box-sizing:border-box;margin:0;padding:0} 717body{background:#16264a;color:#fff;font-family:var(--body); 718 font-size:clamp(15px,1.05vw,17px);font-weight:500;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden} 719body.intro-lock{overflow:hidden;height:100vh} 720img{max-width:100%;display:block} 721a{color:inherit;text-decoration:none} 722h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.012em;text-transform:none} 723h3{font-size:var(--h3)} 724.mono{font-family:var(--body);letter-spacing:.08em} 725.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} 726.wrap{width:100%;max-width:1500px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)} 727section{position:relative} 728#flow{position:relative;z-index:1;background-color:#16264a} 729/* Dither, behind the sections. Values hug mid-grey and blend with `overlay`, so the 730 perturbation is about ±1/255 â enough to break an 8-bit contour line, too small 731 to read as grain. Sitting behind the sections keeps photos and cards clean. */ 732#flow::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none; 733 mix-blend-mode:overlay; 734 background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAAACVBMVEWEhISAgIB8fHzWL3XqAAAES0lEQVR42gFABL/7A4IDAEFb0pjBH4X19A+dPcwDA84vtc0OICDRQelN9J1JKwNyDwEoDvAAySX1B5fgOaI/AgDuEP
7340a4vhBzD3lmhwmEwwBhBDAABI+bJFgGQCG8gD0mgFiAgI8BOrW2iVF/9+OT6xIBAYZCa7CB/g0Q5gkLk4bN+kCoSWYylj4Cbv4RuQO3dH+BwEk3BhS2syW2wCDAl8D/Sx4A/BI9jhEP2IoI1sOnHHRDRQAZhkYEVAGQCEYQCAKRokARAIvcQj0RaPY9DEpAgDbe4IcA0DMGtf00vGI6wRbDOh0wj4Cy7TNFlIUSPPBHfT4XMfSBAFKXqBg7g+z0W0TwL37NDG/AlfaWvrSdPxrg+/b8vBACxMDsBkL6yTKFehggVzXbgtv5ANiRBEDcSz5RNNUlnJ00ZQJAZnv+YSAzRgff2At//IP1dsDzQS7UN3YvmI8qEjEIvCfawMWSfVTywfwxys+uO705s/xA4iL9alpqobxrv8TKpZiCQYBqf/cxh4wEOENBAysVMOvQABBFBYWEJlqJKKkEGQWCUERAQEUU7noTfyvKBhk//3wdUsCUwwyQaAELxD8x8GuAdSTFQPa8xHIsRoa/087lHxwBRirAUH/5u6G/s4wrFMQs/JMk/8ECboOAwfB4v4S0+rHDHNP8ANb/+sFpCNYACbJyipVArlZAUEY7STs/PDnHUQM1KqArNUDJBw6IgXvtJWtw7jpaxoNxQP06alRhG+97DJoCdvSMd3IAwVl1+MW1f3hJZNTKFG3+tsCGCn2xl/AaHbfOMKTwrz/PwN0zSfg5jSfAF0HGQS3R7JXBBwg6vgn0BAzclD/OcgpKSMC8r7w/JP4cCD2KKELjg8TwQPOar9A8D+FPRQNzPXq75YoAUBoAd0b//F0I+IOOPa+ZqsDYMEXA3sO5CbQBO3+7zbu7AQJtPPhQB3/kEovnYDDu96GAx3w4yBMdRJ2x696xexG4PEBKf9u7pU4U/y1rAUMP9fq9gGR0b5h/9Ex4u4vJWAQ/zsWAvTCgNGBFyYmEBAAVIzvViAEvYSsT8Y48h6+BPtKXn//AANjEytvRMUoBxmXDeMzIWZTAAkJYASoBQSgAqFBEQUWAGkDEEzjRr7x9xZVvM2SFchc3AI17tU84I5g/sjJNAUbQUYCAh0JkcJ+oOVE0xC24MFAgyMDHvMbBoYkzCM+Oh3f+9vSHgGY+vfMPxS6pl2tV5wUiQbxA/U7e29l8K8PKimuG/g4uuEBWBEdoh28BEvRB33/cTXXbwQCoJ/a+RXuAd8Jv+X/IPtxAyhXE/4GPwr4ZRrGcOfKXs0ERAjc7kWRBPYXLKihv6Gg8wFStH4OdEJgWELg4wB74QgAA/FKl/gwshHT43xf+iGbyBQAoUEJEaYaJGGkICEKQZJSqgEBgRTEtwMtBQzIUN4YpvxGA4WhNeMg7XcTmJAEPRRS9L8qUOXbxwAG2AAAAABJRU5ErkJggg==');background-size:64px 64px} 735 736.btn{display:inline-flex;align-items:center;font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;padding:15px 32px;border-radius:100px;cursor:pointer;transition:.3s var(--ease);border:1px solid transparent;white-space:nowrap} 737/* One button rule site-wide, per client (Aug 3): white with navy text, everywhere. 738 Hover inverts to navy with a white keyline so it never vanishes on a navy section. */ 739.btn-primary{background:#fff;color:var(--navy)} 740.btn-primary:hover{background:var(--navy);color:#fff;border-color:rgba(255,255,255,.6);transform:translateY(-2px)} 741.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff} 742.btn-ghost:hover{border-color:#fff;background:#fff;color:var(--navy)} 743.btn-white{background:#fff;color:var(--navy)} .btn-white:hover{background:var(--navy);color:#fff;border-color:rgba(255,255,255,.6)} 744/* countdown CTA â black on white, per client feedback */ 745#anniversary .btn-primary{background:#fff;color:#000} 746#anniversary .btn-primary:hover{background:#000;color:#fff} 747#archive .btn-ghost:hover{background:#fff;color:var(--navy);border-color:#fff} 748/* redaction line reveal (see lineReveal in the script) â each split line gets a 749 wrapper and a black bar that sweeps across it */ 750.block-line-wrapper{position:relative;width:max-content;max-width:100%;display:block} 751.block-line{position:relative;display:block} 752.block-revealer{position:absolute;top:-.06em;left:0;width:101%;height:calc(100% + .12em);pointer-events:none;will-change:transform;z-index:1;background:#faf9f6} 753/* centered copy keeps its centring once lines collapse to max-content */ 754.spon-hero .block-line-wrapper{margin:0 auto} 755.rise{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)} 756/* the line reveal owns the vertical motion once it is running â .rise just fades */ 757body.line-reveal .rise{transform:none} 758.rise.in{opacity:1;transform:none} 759 760/* ============ INTRO / OPENING VIDEO ============ */ 761#intro{position:fixed;inset:0;z-index:1000;background:#000;overflow:hidden} 762/* cover â full-bleed on every screen. The Aug 3 "too zoomed in" note turned out to be 763 about the HERO clip, not this one; contain here left black pillars on wide windows. 764 The title card is centered, so the phone-portrait crop keeps it readable. */ 765#intro video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover} 766#intro .skip{position:absolute;bottom:30px;right:32px;z-index:4;cursor:pointer;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;font-family:var(--body);font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.1em;padding:11px 20px;border-radius:100px;transition:.3s var(--ease)} 767#intro .skip:hover{background:#fff;border-color:#fff;color:var(--navy)} 768#intro .prog{position:absolute;bottom:0;left:0;height:3px;width:0;background:#fff;z-index:4} 769 770/* ============ HERO ============ */ 771#hero{min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:110px 0 70px} 772/* Everything decorative in the hero lives on a masked layer that fades to nothing 773 before the section ends. Painting a scrim over it instead left a plateau, and a 774 plateau meeting the flow's ramp reads as a hard line. 775 No green left on this layer: the wash (top-left teal radial, bottom-right warm 776 radial, diagonal green ramp) is gone, AND the fade-out mask is gone with it in 777 solid mode. The mask was the last source of green â as the navy texture dissolved 778 it revealed the section's flat --green underneath, which read as a tint. The plate 779 now runs full bleed and cuts hard into the countdown, same as every other section 780 boundary in solid mode. */ 781#hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none; 782 background:url('https://mlfa.org/wp-content/uploads/2026/08/hero-static.png') center/cover no-repeat}
783/* Legibility scrim under the copy. The texture is busiest exactly where the headline 784 sits, so this pools a near-black behind it and falls off before the video starts. 785 Deliberately blue-black (#01060e), not green and not neutral grey â anything warmer 786 or greener would put a cast back on the section. Sits at z-index 0 so it paints over 787 ::before but stays under .hero-media (z-index 1); the video is never touched. */ 788#hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none; 789 background: 790 radial-gradient(70% 60% at 20% 52%,rgba(1,6,14,.8),rgba(1,6,14,.44) 48%,transparent 74%), 791 linear-gradient(90deg,rgba(1,6,14,.6) 0%,rgba(1,6,14,.26) 34%,transparent 56%)} 792/* gradient-flow mode (?flow) still needs the fade â there the hero hands off to a 793 moving ramp, and a full-bleed layer would meet it as a Mach band. Both the texture 794 and the scrim above it have to fade, or the scrim leaves the plateau on its own. */ 795body:not(.solid-bg) #hero::before,body:not(.solid-bg) #hero::after{ 796 -webkit-mask:linear-gradient(180deg,#000 54%,rgba(0,0,0,.45) 70%,transparent 82%); 797 mask:linear-gradient(180deg,#000 54%,rgba(0,0,0,.45) 70%,transparent 82%)} 798/* half circle (flat side on the right edge), per client feedback â replaces the old 799 diagonal shard (#heroClip). The box is kept square (aspect-ratio:1/1 on a full-height 800 element) so the 50% radius is identical in both axes â a true semicircle, never a 801 stretched oval. */ 802/* The square box is oversized (150% of the section, vertically centred with a negative 803 top â no transform, the hero parallax owns that) so the semicircle is generous: the 804 radius is 75% of the section height, and the section crops its top and bottom. */ 805/* Bigger and nudged left, per client feedback (Jul 31): the box grew from 170% to 806 190% of the section and the circle's centre moved off the right edge (100% â 95%), 807 so noticeably more of the clip survives the crop. */ 808#hero .hero-media{position:absolute;top:-45%;right:0;height:190%;width:auto;aspect-ratio:1/1;z-index:1;clip-path:circle(50% at 95% 50%); 809 -webkit-mask:linear-gradient(180deg,#000 80%,rgba(0,0,0,.55) 91%,transparent 99%); 810 mask:linear-gradient(180deg,#000 80%,rgba(0,0,0,.55) 91%,transparent 99%)} 811/* contain, not cover â "less zoomed in" (client, Aug 4). The clip renders at the 812 box's width instead of being blown up to its height, so the circle windows far 813 more of the frame; the contain voids at the box's top/bottom fall outside the 814 section crop (box is 190% of the section), so no bars ever show. */ 815#hero .hero-media video{width:100%;height:100%;object-fit:contain} 816#hero .hero-content{position:relative;z-index:2;max-width:660px} 817#hero h1{font-size:var(--h-sec);color:#fff} 818#hero h1 .l2{color:#fff} 819#hero .tag{font-family:var(--body);font-weight:700;letter-spacing:0;font-size:clamp(17px,1.6vw,22px);color:#fff;margin-top:22px;line-height:1.4} 820#hero .date{margin-top:20px;font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:13px;color:#fff} 821#hero .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px} 822@media(max-width:900px){ 823 /* `.hero-media` is a SIBLING of `.wrap`, not a child â so the flex container that 824 `order:-1` acts on is `#hero` itself, which is row-direction. Without the column 825 switch the video became a narrow left-hand column instead of stacking on top. */ 826 #hero{padding-top:90px;flex-direction:column;justify-content:center;align-items:stretch} 827 #hero .hero-media{position:relative;width:100%;height:50vw;flex:0 0 auto;order:-1;margin-bottom:28px; 828 clip-path:circle(50vw at 50% 0)} 829 /* phones keep cover: the 2:1 box barely crops the 16:9 clip there, and contain 830 would leave visible side voids instead */ 831 #hero .hero-media video{object-fit:cover} 832 #hero .hero-content{max-width:100%} 833 #hero .wrap{display:block} 834 /* the copy sits under the video here, so the scrim pools at the bottom, not the left */ 835 #hero::after{background:linear-gradient(180deg,rgba(1,6,14,.14) 0%,rgba(1,6,14,.56) 44%,rgba(1,6,14,.72) 100%)} 836} 837 838/* ============ COUNTER / 25 YEARS â copy first, number second ============ */ 839#anniversary{padding:var(--sec-pad) 0;overflow:hidden} 840#anniversary .agrid{display:grid;grid-template-columns:1.35fr .8fr;gap:clamp(34px,5vw,76px);align-items:center;position:relative;z-index:2} 841#anniversary h2{font-size:var(--h-sec);color:#fff} 842#anniversary h2 em{font-style:normal;color:#fff} 843#anniversary .lede{margin-top:24px;max-width:68ch;color:#fff;font-size:clamp(15px,1.15vw,18px)} 844#anniversary .lede p{margin-bottom:13px} 845#anniversary .actions{margin-top:32px}
846/* simple countdown ticker â the floating gem shape was retired at the client's request: 847 "can we do a simple countdown, we could even remove the circle and make it a simple ticker". 848 One tight lockup, no framing rules: kicker â number â flip clock â date line. */ 849.ticker{max-width:440px;margin:0 auto;text-align:center} 850.ticker .cap{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:clamp(11px,1vw,13px);color:#fff} 851.ticker .big{font-family:var(--serif);font-weight:400;font-size:clamp(110px,14vw,200px);line-height:.9;color:#fff;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:clamp(14px,1.6vw,24px)} 852/* split-flap clock â hours : minutes : seconds on old-style flip cards */ 853.flipclock{display:inline-flex;align-items:center;gap:12px;margin-top:22px} 854.flipclock .colon{font-family:var(--body);font-weight:700;font-size:clamp(20px,1.8vw,28px);color:#fff;opacity:.65} 855.flip{position:relative;width:clamp(62px,5.4vw,84px);height:clamp(68px,6vw,94px);perspective:300px} 856.flip .half,.flip .flap{position:absolute;left:0;right:0;height:50%;overflow:hidden} 857.flip .half.top,.flip .flap-top{top:0;border-radius:9px 9px 0 0;background:linear-gradient(180deg,#24395c,#1d3050)} 858.flip .half.bottom,.flip .flap-bottom{top:50%;border-radius:0 0 9px 9px;background:linear-gradient(180deg,#162742,#122139)} 859.flip .half.top{box-shadow:inset 0 1px 0 rgba(255,255,255,.14)} 860/* the seam between the two leaves */ 861.flip::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(2,8,18,.85);z-index:4} 862.flip{filter:drop-shadow(0 12px 22px rgba(0,0,0,.38))} 863.flip .digit{position:absolute;left:0;width:100%;height:200%;display:grid;place-items:center; 864 font-family:var(--body);font-weight:700;font-size:clamp(28px,2.6vw,42px);color:#fff; 865 font-variant-numeric:tabular-nums;letter-spacing:.04em} 866.flip .top .digit,.flip .flap-top .digit{top:0} 867.flip .bottom .digit,.flip .flap-bottom .digit{top:-100%} 868.flip .flap{z-index:3;backface-visibility:hidden;-webkit-backface-visibility:hidden;visibility:hidden} 869.flip .flap-top{transform-origin:center bottom} 870.flip .flap-bottom{transform-origin:center top;transform:rotateX(90deg)} 871.flip.flipping .flap{visibility:visible} 872.flip.flipping .flap-top{animation:foldTop .26s ease-in forwards} 873.flip.flipping .flap-bottom{animation:foldBottom .26s ease-out .26s forwards} 874@keyframes foldTop{to{transform:rotateX(-90deg)}} 875@keyframes foldBottom{to{transform:rotateX(0deg)}} 876@media(max-width:900px){#anniversary .agrid{grid-template-columns:1fr;gap:44px}.ticker{max-width:340px}} 877 878/* ============ SPEAKERS â program title / portrait row / speaker copy ============ */ 879.spk-pin{height:100svh;min-height:700px;position:relative;overflow:hidden;display:flex;flex-direction:column} 880/* ââ program title on top ââ */ 881/* generous top pad to match the other sections' rhythm, and real clearance under the 882 title â the pop-out portraits rise toward it, so the gap below is load-bearing */ 883.spk-head{flex:none;position:relative;z-index:6;padding:clamp(48px,7vh,96px) var(--pad) clamp(18px,3vh,36px)} 884.spk-title{font-size:var(--h-sec);color:#fff;transition:opacity .35s var(--ease)} 885/* ââ portrait row in the middle ââ */ 886.spk-stage{flex:1;position:relative;z-index:2;min-height:0} 887/* circle portraits â every speaker shape is a circle at the client's request. 888 Pop-out (client ask, Jul 31): two copies of the same cutout share one geometry. 889 The copy inside .circ is cropped by the circle; .pop sits on top clipped to its 890 upper half only, so the head rises past the circle's rim while shoulders stay 891 cleanly inside â the layered trick from the retired "The Evening" slider. */ 892.spk-card{position:absolute;left:0;bottom:0;transform-origin:left bottom;will-change:transform; /* bottoms share one line; heads rise into the stage's headroom */ 893 aspect-ratio:1/1; 894 transition:transform .75s var(--ease),opacity .5s var(--ease)} 895.spk-card .circ{position:absolute;inset:0;border-radius:50%;overflow:hidden; 896 background:linear-gradient(160deg,#f0e7d3,var(--tan)); 897 box-shadow:0 26px 44px rgba(0,0,0,.45)} 898.spk-card img{position:absolute;
898left:50%;bottom:0;height:122%;width:auto;max-width:none; 899 transform:translateX(-50%);object-fit:contain;object-position:center bottom} 900.spk-card .pop{z-index:2;clip-path:inset(0 0 46% 0)} 901/* flat: pre-composed disc fills the circle exactly */ 902.spk-card.flat img{left:0;height:100%;width:100%;transform:none;object-fit:cover;object-position:center} 903/* ââ speaker copy under the portraits, nav on its right ââ 904 The bottom padding also reserves the MENU dock's corner. This section is pinned, so 905 unlike everywhere else the copy would sit *stationary* under the dock for the whole 906 pin â the one place the overlap isn't just a passing scroll artefact. */ 907.spk-foot{flex:none;position:relative;z-index:6;padding:clamp(8px,1.4vh,18px) var(--pad) clamp(78px,9vh,96px); 908 display:grid;grid-template-columns:1fr auto;gap:clamp(20px,4vw,60px);align-items:start} 909.spk-info{position:relative;max-width:min(62vw,780px);min-height:140px} /* JS raises this to the tallest slide */ 910.spk-slide{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease);pointer-events:none} 911.spk-slide.active{opacity:1;transform:none;pointer-events:auto} 912.spk-slide h3{color:#fff;line-height:.96} 913.spk-slide .title{font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:14px;color:#fff;margin-top:12px} 914.spk-slide .title:first-child{margin-top:0} /* unannounced keynote: no name above it */ 915.spk-slide .bio{margin-top:14px;max-width:62ch;color:#fff;font-size:14px} 916/* ââ joined 2-chevron pill ââ */ 917.nav-pill{display:inline-flex;align-items:stretch;border:1px solid rgba(243,239,230,.34);border-radius:100px; 918 background:rgba(243,239,230,.04);overflow:hidden;backdrop-filter:blur(6px);margin-top:10px} 919.nav-pill button{width:clamp(42px,3.4vw,50px);height:clamp(34px,2.6vw,40px);display:grid;place-items:center; 920 border:0;background:none;color:#fff;cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),opacity .3s var(--ease)} 921.nav-pill button svg{width:15px;height:15px;transition:transform .3s var(--ease)} 922.nav-pill button:hover:not(:disabled){background:#fff;color:var(--navy)} 923.nav-pill button:hover:not(:disabled).prev svg{transform:translateX(-3px)} 924.nav-pill button:hover:not(:disabled).next svg{transform:translateX(3px)} 925.nav-pill button:disabled{opacity:.28;cursor:not-allowed} 926.nav-pill .sep{width:1px;background:rgba(243,239,230,.26);margin:9px 0} 927@media(max-width:820px){ 928 /* not pinned on phones (see NOPIN) â a normal block you scroll past, swiping the 929 row to change speaker. pan-y leaves vertical scrolling to the browser. */ 930 .spk-pin{height:auto;min-height:0;padding-bottom:6px} 931 /* one gap value for the whole section on phones: titleâportrait above matches 932 bioâarrows below. The height here is only a starting cap â layout() collapses the 933 stage onto the portrait it actually drew (see NOPIN there), so this padding is the 934 entire distance from the title to the top of the head. */ 935 .spk-head{padding-bottom:28px} 936 .spk-stage{touch-action:pan-y;height:min(52vh,420px);flex:0 0 auto} 937 /* the nav pill drops below the copy here, so it inherits the dock clearance */ 938 .spk-foot{grid-template-columns:1fr;gap:28px;padding-bottom:clamp(84px,11vh,104px)} 939 .spk-info{max-width:100%;min-height:160px} 940 /* the pill is a grid item once the row collapses, and grid items stretch by default â 941 `display:inline-flex` blockifies, so without this it runs the full column width */ 942 .nav-pill{margin-top:0;justify-self:start} 943} 944 945/* ââ SOLID SECTION COLOURS (default) ââââââââââââââââââââââââââââââââââââââ 946 Applied when the page is not in gradient-flow mode. Navy/white only, per 947 client (Aug 3): "we need to stay consistent with our color palette" â every 948 green and orange surface moved to navy. */ 949body.solid-bg #flow{background-image:none;background-color:var(--navy)} 950body.solid-bg #flow::before{display:none} 951body.solid-bg{background:var(--navy)} 952body.solid-bg #hero{background-color:var(--navy)} 953/* countdown â navy spotlight plate supplied by the client ("Hero Image 1") */ 954body.solid-bg #anniversary{background:#0b1626 url('https://mlfa.org/wp-content/uploads/2026/08/countdown-bg.webp') center/cover no-repeat}
955/* speakers â case-file collage plate supplied by the client (she flagged it may be 956 "too busy"; a left-side scrim keeps the copy readable). The plate lives on the 957 pinned 100svh stage, NOT the tall pinned section â on the section, cover would 958 scale to the full pin distance (huge zoom) and travel during the pin. */ 959body.solid-bg #speakers{background:#0c1a33} 960body.solid-bg .spk-pin{background: 961 linear-gradient(90deg,rgba(5,12,26,.72) 0%,rgba(5,12,26,.38) 40%,rgba(5,12,26,.12) 70%), 962 url('https://mlfa.org/wp-content/uploads/2026/08/speakers-bg.webp') center/cover no-repeat} 963body.solid-bg #tickets{background:var(--tan)} /* tan, per client feedback */ 964/* VIP â "Access Granted" vault plate supplied by the client; left scrim holds the copy */ 965body.solid-bg #vip{background: 966 linear-gradient(90deg,rgba(4,4,5,.55) 0%,rgba(4,4,5,.25) 45%,rgba(4,4,5,.05) 70%), 967 url('https://mlfa.org/wp-content/uploads/2026/08/vault-access.webp') center/cover no-repeat,#0d0d0f} 968body.solid-bg .spon-hero{background:var(--navy)} 969/* gradient navy, per client (Aug 3) */ 970body.solid-bg .spon-acc{background:linear-gradient(180deg,#1d3050 0%,var(--navy) 55%,#0e1a33 100%)} 971body.solid-bg #inkind{background:var(--tan)} /* same tan as tickets, per client */ 972/* sponsor wall â back to navy, so the white logo cards carry the section and the 973 tan in-kind block above it gets a clean edge */ 974body.solid-bg #gala-sponsors{background:linear-gradient(180deg,var(--navy) 0%,#0e1a33 100%)} 975 976/* ============ BEHIND THE BLACK BARS ============ */ 977/* plate image reads straight through â only the two edges carry colour, so the 978 section still meets the page flow cleanly */ 979#reveal{min-height:100svh;display:grid;place-items:center;padding:clamp(70px,10vw,120px) 0;text-align:center;overflow:hidden; 980 background:url('https://mlfa.org/wp-content/uploads/2026/08/blackbars.png') center/cover no-repeat} 981#reveal .wrap{position:relative;z-index:2} 982/* the copy rides its own redaction bars, so the plate stays fully visible around it */ 983#reveal .typed-wrap{max-width:74ch;margin:0 auto;text-align:center;min-height:13em} 984/* each typed line rides its own painted bar â an SVG brush stroke stretched to the 985 line's width, so the ends and edges stay ragged instead of reading as a rectangle */ 986#reveal .typed{display:inline;font-family:var(--body);font-weight:500;font-size:clamp(16px,1.55vw,22px); 987 line-height:2.5;color:#fff; 988 background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 64' preserveAspectRatio='none'><path fill='%23000' d='M1.5 13 C 34 6.5 68 12 101 8.4 C 142 4.2 178 12.6 214 8 C 258 2.6 300 12 334 7.6 C 358 4.6 378 11 398.5 5.5 L 399 51 C 372 58.5 344 50.5 316 55.6 C 276 62.8 236 51.4 196 56.8 C 154 62.4 116 51.6 78 57 C 52 60.7 26 53.4 1 59 Z'/><path fill='%23000' d='M6 2.5 C 30 6 44 3 60 5.5 L 58 9 C 40 7 22 9.5 5 8 Z'/><path fill='%23000' d='M250 57 C 276 60 300 56.5 322 59.5 L 320 62.5 C 296 60 272 63 248 60.5 Z'/></svg>") 0 0/100% 100% no-repeat; 989 padding:.34em .62em;box-decoration-break:clone;-webkit-box-decoration-break:clone} 990#reveal .typed .cursor{display:inline-block;width:.62em;height:1.05em;vertical-align:-.16em;margin-left:.14em; 991 background:#fff;animation:caret 1s steps(1) infinite} 992#reveal .typed.done .cursor{animation:none;opacity:0} 993@keyframes caret{0%,49%{opacity:1}50%,100%{opacity:0}} 994@media(max-width:700px){#reveal .typed-wrap{min-height:22em}} 995 996/* ============ TICKETS ============ */ 997#tickets{color:var(--navy);padding:var(--sec-pad) 0} 998#tickets .tgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,70px);align-items:start} 999#tickets .tleft{position:sticky;top:60px} 1000#tickets h2{font-size:var(--h-sec);color:var(--navy);line-height:.94} 1001#tickets .tleft .meta{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:clamp(14px,1.1vw,17px);color:var(--navy);margin-top:20px} 1002#tickets .tleft .actions{margin-top:28px} 1003.tcard{background:#fff;border-radius:18px;padding:clamp(22px,2.4vw,32px) clamp(24px,3vw,40px);margin-bottom:18px;box-shadow:0 20px 50px rgba(10,20,45,.08);position:relative;transition:.35s var(--ease)} 1004.tcard:hover{transform:translateY(-4px);box-shadow:0 30px 70px rgba(10,20,45,.14)} 1005.tcard.feat{background:linear-gradient(160deg,#fff,#e9eef8);outline:2px solid var(--navy)} 1006.tcard .win{font-family:var(--body);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)} 1007.tcard .row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px} 1008.tcard h3{font-family:var(--body);font-weight:700;font-size:clamp(20px,1.9vw,27px);letter-spacing:-.01em;color:var(--navy);max-width:16ch} 1009.tcard .price{text-align:right;flex:none} 1010.tcard .price b{font-family:var(--body);font-weight:700;font-size:clamp(30px,2.9vw,42px);letter-spacing:-.02em;color:var(--navy);line-height:1} 1011.tcard .price small{display:block;font-family:var(--body);font-weight:600;font-size:12px;color:rgba(22,38,74,.66);margin-top:4px} 1012/* white pill, navy text, per client (Aug 3) â the navy keyline keeps it legible where 1013 it overlaps the white card face */ 1014.tcard .flag{position:absolute;top:-11px;left:24px;background:#fff;color:var(--navy);border:1.5px solid var(--navy);font-family:var(--body);font-weight:700;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:5px 12px;border-radius:100px} 1015@media(max-width:820px){#tickets .tgrid{grid-template-columns:1fr}#tickets .tleft{position:static}} 1016 1017/* ============ VIP ============ */ 1018#vip{padding:var(--sec-pad) 0;overflow:hidden} 1019#vip .vgrid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(28px,4vw,64px);align-items:center} 1020/* circle photo, per client feedback â replaces the mirrored shard */ 1021#vip .vmedia{align-self:center;justify-self:center;margin:0 auto;width:100%;max-width:520px} 1022#vip .vault{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:50%; 1023 box-shadow:0 30px 70px rgba(0,0,0,.5)} 1024#vip .vault img{width:100%;height:100%;object-fit:cover;object-position:center 42%} 1025#vip .sub{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:clamp(12px,1vw,14px);color:#fff;margin-bottom:14px} 1026#vip .sub-after{margin:16px 0 0} /* kicker demoted below the heading, per client (Jul 31) */ 1027#vip h2{font-size:var(--h-sec);color:#fff} 1028#vip .lede{margin-top:22px;color:#fff} 1029#vip .lede p{margin-bottom:13px} 1030#vip .lede em{font-style:normal;color:#fff;font-weight:700} 1031#vip .lede ul{list-style:none;margin:0 0 13px;display:grid;gap:8px} 1032#vip .lede li{position:relative;padding-left:20px} 1033#vip .lede li::before{content:"";position:absolute;
1033left:0;top:.75em;width:7px;height:1.5px;background:var(--gold)} 1034#vip .actions{margin-top:30px} 1035@media(max-width:860px){#vip .vgrid{grid-template-columns:1fr;gap:40px} 1036 #vip .vmedia{order:-1;max-width:340px}} 1037 1038/* ============ SPONSORS ============ */ 1039.spon-hero{min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--sec-pad) var(--pad);overflow:hidden;position:relative} 1040/* sharp footage edge to edge â one flat scrim only, enough to hold the type */ 1041.spon-hero::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none; 1042 background:rgba(8,14,28,.46)} 1043.spon-hero .bg{position:absolute;inset:0;z-index:0} 1044.spon-hero .bg video{width:100%;height:100%;object-fit:cover} 1045.spon-hero .inner{position:relative;z-index:3;max-width:860px} 1046/* frosted panel behind the copy â the footage under this block is busy (chairs, tables, 1047 a lit screen), so the type needs a calm bed rather than more scrim. Feathered with a 1048 radial mask so it reads as a soft pool of defocus, not a rectangle: the mask clips the 1049 backdrop-filter result too, which is what kills the hard edge. Sits at z-index -1 1050 inside .inner, so it is above the section scrim (z-index 2) and under the text. */ 1051.spon-hero .inner::before{content:"";position:absolute;inset:-14% -10%;z-index:-1;pointer-events:none; 1052 -webkit-backdrop-filter:blur(16px) saturate(.92);backdrop-filter:blur(16px) saturate(.92); 1053 background:rgba(6,16,12,.2); 1054 -webkit-mask:radial-gradient(closest-side,#000 46%,rgba(0,0,0,.6) 74%,transparent 100%); 1055 mask:radial-gradient(closest-side,#000 46%,rgba(0,0,0,.6) 74%,transparent 100%)} 1056.spon-hero h2{font-size:var(--h-sec);color:#fff} 1057.spon-hero p{margin:22px auto 0;max-width:60ch;color:#fff} 1058.spon-hero .actions{margin-top:34px} 1059.spon-hero .screening{margin-top:28px;font-size:14px;color:#fff;display:block} 1060.spon-acc{padding:var(--sec-pad) 0;position:relative;overflow:hidden; 1061 background:radial-gradient(54% 32% at 12% 46%,rgba(122,152,214,.16),transparent 60%)} 1062.spon-acc .h{max-width:1040px;margin:0 auto clamp(28px,4vh,52px);padding:0 var(--pad);position:relative;z-index:2} 1063.spon-acc .h h2{font-size:var(--h-sec);color:#fff} 1064.spon-acc .h .soon{margin-top:12px;color:#fff;font-size:14px} 1065.acc{max-width:1040px;margin:0 auto;padding:0 var(--pad);position:relative;z-index:2} 1066.acc-cta{max-width:1040px;margin:clamp(28px,4vh,46px) auto 0;padding:0 var(--pad);position:relative;z-index:2} 1067.acc-item{border-bottom:1px solid rgba(255,255,255,.32)} 1068.acc-item:first-child{border-top:1px solid rgba(255,255,255,.32)} 1069.acc-btn{width:100%;background:none;border:0;cursor:pointer;color:#fff;display:flex;align-items:center; 1070 justify-content:space-between;gap:24px;padding:clamp(20px,2.4vw,30px) 0;text-align:left; 1071 font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:clamp(21px,2.5vw,36px); 1072 line-height:1.18;transition:color .3s var(--ease)} 1073.acc-btn:hover{color:#fff} 1074.acc-btn .amt{display:block;font-family:var(--body);font-weight:700;text-transform:uppercase; 1075 letter-spacing:.12em;font-size:11px;color:#fff;margin-top:8px} 1076.acc-btn:hover .amt{color:#fff} 1077/* thin â that becomes â â the vertical stroke collapses, no spin */ 1078.acc-btn .ic{width:clamp(34px,3vw,42px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.55); 1079 display:grid;place-items:center;flex:none;position:relative;transition:border-color .3s var(--ease),background .3s var(--ease)} 1080.acc-btn:hover .ic{border-color:#fff} 1081.acc-btn .ic::before,.acc-btn .ic::after{content:"";position:absolute;background:#fff;transition:transform .35s var(--ease)} 1082.acc-btn .ic::before{width:13px;height:1.5px} 1083.acc-btn .ic::after{width:1.5px;height:13px} 1084.acc-item.open .acc-btn .ic::after{transform:scaleY(0)} 1085.acc-panel{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)} 1086.acc-panel .pad{padding:0 0 clamp(22px,2.6vw,34px);color:#fff;max-width:62ch} 1087.acc-panel .pad p{font-size:15px} 1088.acc-panel ul{list-style:none;margin-top:14px;display:grid;gap:9px} 1089.acc-panel li{position:relative;padding-left:20px;font-size:14.5px;color:#fff} 1090.acc-panel li::before{content:"";position:absolute;
1090left:0;top:9px;width:7px;height:1.5px;background:var(--gold)} 1091 1092/* ============ IN-KIND ============ */ 1093#inkind{padding:var(--sec-pad) 0;overflow:hidden} 1094#inkind .kgrid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(28px,4vw,64px);align-items:center} 1095#inkind h2{font-size:var(--h-sec);color:var(--navy)} 1096#inkind p{margin-top:16px;color:var(--navy)} 1097#inkind .actions{margin-top:26px} 1098/* circle photo, per client feedback (Jul 31) â matches the VIP vault treatment */ 1099#inkind .kmedia{align-self:center;justify-self:center;margin:0 auto;width:100%;max-width:520px} 1100#inkind .kart{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:50%; 1101 box-shadow:0 26px 60px rgba(22,38,74,.28)} /* navy-tinted, light enough for the tan bg */ 1102#inkind .kart img{width:100%;height:100%;object-fit:cover;object-position:center} 1103@media(max-width:820px){ 1104 #inkind .kgrid{grid-template-columns:1fr} 1105 #inkind .kmedia{order:-1;max-width:340px} 1106} 1107 1108/* ============ CONFIRMED SPONSORS ============ */ 1109/* Client (Ru, Sep 16): confirmed sponsors, grouped by tier. Deliberately reuses 1110 the Sponsorship Tiers row language â same 1040px column, same hairline rules, 1111 same serif tier name on the left â but it is a static list, so there is no 1112 accordion button and no â. The logos take the place the â occupies there. 1113 The logo set is very mixed: some are dark artwork on transparent, two are light 1114 artwork locked to their own dark tile (Kapture's disc, DAR Coffee's navy 1115 square). A white chip per logo is the one treatment that reads for all of them. */ 1116#gala-sponsors{padding:var(--sec-pad) 0;overflow:hidden} 1117#gala-sponsors .h{max-width:1040px;margin:0 auto clamp(28px,4vh,52px);padding:0 var(--pad)} 1118#gala-sponsors .h h2{font-size:var(--h-sec);color:#fff} 1119.spw{max-width:1040px;margin:0 auto;padding:0 var(--pad)} 1120.spw-item{display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,3vw,40px); 1121 padding:clamp(18px,2.2vw,28px) 0;border-bottom:1px solid rgba(255,255,255,.32)} 1122.spw-item:first-child{border-top:1px solid rgba(255,255,255,.32)} 1123/* same face, weight and size as .acc-btn so the two blocks read as one system */ 1124.spw-name{font-family:var(--serif);font-weight:400;letter-spacing:-.01em; 1125 font-size:clamp(21px,2.5vw,36px);line-height:1.18;color:#fff} 1126.spw-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end; 1127 gap:clamp(10px,1.2vw,16px);flex:none} 1128/* The chip is a fixed box and the logo is pinned to it â inset:0 + 100%/100% 1129 resolves against the chip's padding box, which is definite, and object-fit does 1130 the letterboxing. The breathing room is the img's own padding (border-box), NOT 1131 the chip's: object-fit contains inside the content box, so padding here is what 1132 keeps a logo off the edge. Laid out in flow instead (grid/place-items) the 1133 height percentage stays cyclic and the logo renders at intrinsic size. */ 1134.spw-logo{position:relative;background:#fff;border-radius:10px;flex:none; 1135 width:var(--card,150px);height:var(--cardh,84px); 1136 box-shadow:0 10px 24px rgba(4,12,28,.26); 1137 transition:transform .35s var(--ease),box-shadow .35s var(--ease)} 1138.spw-logo:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(4,12,28,.36)} 1139.spw-logo img{position:absolute;inset:0;width:100%;height:100%; 1140 padding:8px 12px;box-sizing:border-box;object-fit:contain} 1141/* tier weighting â a small step, since the row itself now carries the hierarchy */ 1142.spw-item[data-size="xl"]{--card:176px;--cardh:99px} 1143.spw-item[data-size="lg"]{--card:164px;--cardh:92px} 1144.spw-item[data-size="md"]{--card:154px;--cardh:87px} 1145.spw-item[data-size="sm"]{--card:146px;--cardh:82px} 1146@media(max-width:820px){ 1147 /* the row can't hold a 36px serif name and two chips side by side, so it stacks â 1148 name over logos, both left-aligned to the same edge as the tier accordion */ 1149 .spw-item{flex-direction:column;align-items:flex-start;gap:16px} 1150 .spw-row{justify-content:flex-start} 1151 .spw-item[data-size]{--card:142px;--cardh:80px} 1152} 1153 1154/* ============ ARCHIVE ============ */ 1155#archive{position:fixed;inset:auto 0 0 0;z-index:0;min-height:100svh;display:grid;align-content:center; 1156 padding:var(--sec-pad) 0;text-align:left;overflow:hidden; 1157 background:linear-gradient(90deg,rgba(4,14,32,.82) 0%,rgba(4,14,32,.55) 42%,rgba(4,14,32,.12) 68%), 1158 url('https://mlfa.org/wp-content/uploads/2026/08/archive-bg.webp') center/cover no-repeat,#0a1730} 1159.archive-spacer{height:100svh;position:relative;z-index:-1;pointer-events:none} 1160#archive .wrap{position:relative;z-index:2} 1161#archive h2{font-size:var(--h-sec);color:#fff;max-width:16ch} 1162#archive p{margin:22px 0 40px;max-width:52ch;color:#fff} 1163 1164/* ============ SECTION MENU â draggable dock, bottom-left ============ */ 1165/* Ported from ~/Projects/timeline/immersive/nav.js. The dock is fixed to the body, 1166 so it floats over every navy section: closed it is a white pill, open it inverts â 1167 the drawer turns white and the toggler fills navy. Same rule as the buttons. */ 1168.nav-drop-zone{position:fixed;left:1.2rem;bottom:1.2rem;z-index:55;width:7.4rem;height:2.9rem; 1169 border:1.5px dashed rgba(255,255,255,.6);border-radius:2rem;opacity:0;pointer-events:none; 1170 transition:opacity .2s ease-out}
1171.nav-dock{position:fixed;left:1.2rem;bottom:1.2rem;z-index:56;touch-action:none; 1172 display:flex;flex-direction:row;align-items:center;gap:.4rem;padding:0;max-width:calc(100vw - 2.4rem); 1173 background:transparent;border-radius:2rem;box-shadow:none; 1174 transition:transform .32s var(--ease),background .3s var(--ease),padding .3s var(--ease), 1175 box-shadow .3s var(--ease),opacity .35s var(--ease)} 1176/* only show the white drawer when open; closed = just the MENU pill */ 1177.nav-dock.open{padding:.35rem;background:rgba(255,255,255,.96);box-shadow:0 16px 44px rgba(2,18,14,.34); 1178 backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)} 1179.nav-dock.nav-hidden,body.intro-lock .nav-dock{opacity:0;pointer-events:none} 1180.nav-dock.dragging{transition:none;cursor:grabbing} 1181.nav-toggler{position:relative;height:2.7rem;flex:0 0 auto;border:0;border-radius:1.6rem; 1182 background:#fff;color:var(--navy);cursor:grab;display:inline-flex;align-items:center;gap:.5rem; 1183 padding:0 1.05rem 0 .95rem;box-shadow:0 10px 30px rgba(4,10,24,.3); 1184 transition:background .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease)} 1185.nav-dock.open .nav-toggler{background:var(--navy);color:#fff;box-shadow:none} 1186.nav-dock.dragging .nav-toggler{cursor:grabbing} 1187.nav-ico{display:flex;flex-direction:column;justify-content:center;gap:.28rem;width:1.05rem} 1188.nav-ico span{display:block;width:100%;height:.13rem;background:currentColor;border-radius:2px; 1189 transition:transform .3s var(--ease);transform-origin:center} 1190.nav-toggler.close .nav-ico span:nth-child(1){transform:rotate(45deg) translateY(.205rem)} 1191.nav-toggler.close .nav-ico span:nth-child(2){transform:rotate(-45deg) translateY(-.205rem)} 1192.nav-label{font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.14em; 1193 text-transform:uppercase;color:currentColor;user-select:none} 1194.nav-items{display:flex;flex-flow:row nowrap;gap:.24rem;max-width:0;overflow:hidden;opacity:0;margin:0; 1195 transition:max-width .45s var(--ease),opacity .3s var(--ease),margin .45s var(--ease)} 1196.nav-dock.open .nav-items{max-width:min(84vw,1010px);opacity:1;margin-left:.2rem;overflow-x:auto} 1197.nav-items::-webkit-scrollbar{height:0} 1198.nav-item a{display:block;color:var(--navy);background:transparent;border-radius:1.4rem; 1199 padding:.55rem .95rem;font-family:var(--body);font-weight:700;font-size:.76rem;letter-spacing:.06em; 1200 text-transform:uppercase;white-space:nowrap;user-select:none; 1201 transition:background .25s var(--ease),color .25s var(--ease)} 1202.nav-item a:hover{background:var(--navy);color:#fff} 1203.nav-item.here a{background:rgba(22,38,74,.09)} 1204.nav-item.here a:hover{background:var(--navy)} 1205@media(max-width:820px){ 1206 .nav-drop-zone,.nav-dock{left:.9rem;bottom:calc(14px + env(safe-area-inset-bottom))} 1207 .nav-dock.open .nav-items{max-width:min(74vw,520px)} 1208} 1209 1210@media(prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.01ms!important}.rise{opacity:1;transform:none}} 1211 1212 1213/* WordPress-only (theme header above hero) */ 1214@media (max-width: 820px) { 1215 #hero { min-height: 0; padding-top: 0; justify-content: flex-start; } 1216} 1217</style> 1218 1219 1220<!-- geo shard clip for the slider media â quadratic joins give the corners a radius 1221 that clip-path:polygon() can't. Coordinates are 0â1 of the element's box. --> 1222<svg width="0" height="0" aria-hidden="true" focusable="false" style="position:absolute"> 1223 <defs> 1224 <clipPath id="shardClip" clipPathUnits="objectBoundingBox"> 1225 <path d="M .757 .098 L .913 .272 Q 1 .37 1 .516 L 1 1 L .177 1 Q .06 1 .039 .904 L .021 .826 Q 0 .73 .088 .634 L .582 .096 Q .67 0 .757 .098 Z"/> 1226 </clipPath> 1227 <clipPath id="gemClip" clipPathUnits="objectBoundingBox"> 1228 <!-- irregular five-sided shard, tilted and unevenly weighted rather than a 1229 symmetrical pentagon; every join carries a wide radius --> 1230 <path d="M .5432 .032 L .8968 .168 Q .98 .20 .9608 .3056 L .8792 .7544 Q .86 .86 .7672 .8824 1231 L .3728 .9776 Q .28 1 .2384 .9104 L .0616 .5296 Q .02 .44 .0904 .3696 1232 L .3896 .0704 Q .46 0 .5432 .032 Z"/> 1233 </clipPath> 1234 <clipPath id="heroClip" clipPathUnits="objectBoundingBox"> 1235 <path d="M .376 0 L 1 0 L 1 1 L .376 1 Q .33 1 .294 .964 L .13 .80 Q .05 .72 .094 .606 L .310 .050 Q .33 0 .376 0 Z"/> 1236 </clipPath> 1237 <clipPath id="shardClipSm" clipPathUnits="objectBoundingBox"> 1238 <path d="M .607 .064 L .893 .236 Q 1 .30 1 .448 L 1 1 L .169 1 Q .05 1 .029 .905 L .022 .875 Q 0 .78 .074 .665 L .426 .115 Q .50 0 .607 .064 Z"/> 1239 </clipPath> 1240 </defs> 1241</svg> 1242 1243<!-- ââââââââââ INTRO / OPENING VIDEO ââââââââââ --> 1244<div id="intro"> 1245 <video id="introVid" playsinline muted autoplay preload="auto" poster="https://mlfa.org/wp-content/uploads/2026/08/opening-poster.jpg"> 1246 <source src="https://mlfa.org/wp-content/uploads/2026/08/opening.mp4" type="video/mp4"> 1247 </video> 1248 <button class="skip" id="skipIntro">Skip â</button> 1249 <div class="prog" id="introProg"></div> 1250</div> 1251 1252<!-- One continuous background runs the length of the page (see FLOW in the script).
1253 Sections layer glows and veils on top of it but never their own base colour, 1254 so there is no seam anywhere to mismatch. --> 1255<main id="flow"> 1256 1257<!-- ââââââââââ HERO ââââââââââ --> 1258<section id="hero"> 1259 <div class="hero-media"> 1260 <!-- hi-res client clip (Jul 31), fade-to-black tail trimmed so the loop never blanks --> 1261 <video autoplay muted loop playsinline preload="metadata" poster="https://mlfa.org/wp-content/uploads/2026/08/hero-poster.jpg"> 1262 <source src="https://mlfa.org/wp-content/uploads/2026/08/hero-loop-2.mp4" type="video/mp4"> 1263 </video> 1264 </div> 1265 <div class="wrap"> 1266 <div class="hero-content"> 1267 <h1>MLFA's 25th<br>Anniversary <span class="l2">Gala</span></h1> 1268 <div class="tag">One Night. A Quarter Century of Impact.<br>The Next Chapter of Justice.</div> 1269 <div class="date">Sat Oct. 3 | 6 PM | Omni Las Colinas Hotel<br>221 Las Colinas Blvd E, Irving, TX 75039 | Black Tie</div> 1270 <div class="actions"> 1271 <!-- entry CTAs scroll to their section; the outbound link lives in the section itself --> 1272 <a href="#tickets" class="btn btn-primary">Tickets</a> 1273 <a href="#sponsors" class="btn btn-ghost">Sponsorships</a> 1274 </div> 1275 </div> 1276 </div> 1277</section> 1278 1279<!-- ââââââââââ COUNTER / 25 YEARS â counter left, copy right ââââââââââ --> 1280<section id="anniversary"> 1281 <div class="wrap agrid"> 1282 <div class="rise"> 1283 <h2>Celebrating the<br>first <em>25 years</em></h2> 1284 <div class="lede"> 1285 <p>For 25 years, Muslim Legal Fund of America (MLFA) has defended constitutional rights, challenged government overreach, and stood in solidarity when others wouldn't.</p> 1286 <p>Some of that work made headlines, much of it never did.</p> 1287 </div> 1288 <div class="actions"><a href="#tickets" class="btn btn-primary">Secure Your Seat</a></div> 1289 </div> 1290 <div class="rise acount"> 1291 <div class="ticker"> 1292 <div class="cap">Days until MLFA Gala</div> 1293 <div class="big" id="cdDays">â</div> 1294 <div class="flipclock" id="cdClock" role="timer" aria-label="Time remaining"> 1295 <span class="flip" id="fH" aria-hidden="true"><span class="half top"><span class="digit"></span></span><span class="half bottom"><span class="digit"></span></span><span class="flap flap-top"><span class="digit"></span></span><span class="flap flap-bottom"><span class="digit"></span></span></span> 1296 <span class="colon" aria-hidden="true">:</span> 1297 <span class="flip" id="fM" aria-hidden="true"><span class="half top"><span class="digit"></span></span><span class="half bottom"><span class="digit"></span></span><span class="flap flap-top"><span class="digit"></span></span><span class="flap flap-bottom"><span class="digit"></span></span></span> 1298 <span class="colon" aria-hidden="true">:</span> 1299 <span class="flip" id="fS" aria-hidden="true"><span class="half top"><span class="digit"></span></span><span class="half bottom"><span class="digit"></span></span><span class="flap flap-top"><span class="digit"></span></span><span class="flap flap-bottom"><span class="digit"></span></span></span> 1300 </div> 1301 </div> 1302 </div> 1303 </div> 1304</section> 1305 1306<!-- ââââââââââ SPEAKERS ââââââââââ --> 1307<section id="speakers"> 1308 <div class="spk-pin" id="spkPin"> 1309 <div class="spk-head"><h2 class="spk-title" id="spkLabel">Keynote Address</h2></div> 1310 <div class="spk-stage" id="spkStage"></div> 1311 <div class="spk-foot"> 1312 <div class="spk-info" id="spkInfo"></div> 1313 <div class="nav-pill"> 1314 <button class="prev" id="spkPrev" aria-label="Previous speaker"> 1315 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="15 5 8 12 15 19"/></svg> 1316 </button> 1317 <span class="sep" aria-hidden="true"></span> 1318 <button class="next" id="spkNext" aria-label="Next speaker"> 1319 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="9 5 16 12 9 19"/></svg> 1320 </button> 1321 </div> 1322 </div> 1323 </div> 1324</section> 1325 1326 1327<!-- ââââââââââ BEHIND THE BLACK BARS ââââââââââ --> 1328<section id="reveal"> 1329 <div class="wrap"> 1330 <div class="typed-wrap"><p class="typed" id="revealType" data-text="[REDACTED] invites you behind the black bars, to uncover the cases, the people, and the constitutional battles that have defined MLFA's first quarter century. Join us as we reveal what has remained hidden and recommit ourselves to the work that lies ahead."></p></div> 1331 </div> 1332</section> 1333 1334<!-- ââââââââââ TICKETS ââââââââââ --> 1335<section id="tickets">
1336 <div class="wrap tgrid"> 1337 <div class="tleft"> 1338 <h2>Tickets</h2> 1339 <div class="meta">Seats are limited. This moment demands your presence.</div> 1340 <div class="actions"><a href="https://support.mlfa.org/event/the-first-25-years-or-mlfa-gala-2026/e822696" target="_blank" rel="noopener" class="btn btn-primary">Buy Now</a></div> 1341 </div> 1342 <!-- Per client (Jul 31): table gets its own card. Per client (Aug 18): GA prices added. Per client (Sep 9): early-bird cards removed, sales ended Aug 21. --> 1343 <div class="tright"> 1344 <div class="tcard rise"> 1345 <div class="row"><h3>General Admission</h3><div class="price"><b>$125</b></div></div> 1346 </div> 1347 <div class="tcard rise"> 1348 <div class="row"><h3>Table — General Admission</h3><div class="price"><b>$1,250</b></div></div> 1349 </div> 1350 <div class="tcard feat rise"> 1351 <div class="flag">Includes VIP access with speakers</div> 1352 <div class="row"><h3>Benefactor Meet & Greet</h3><div class="price"><b>$250</b></div></div> 1353 </div> 1354 </div> 1355 </div> 1356</section> 1357 1358<!-- ââââââââââ VIP ââââââââââ --> 1359<section id="vip"> 1360 <div class="wrap vgrid"> 1361 <div class="vmedia rise"> 1362 <div class="vault"><img src="https://mlfa.org/wp-content/uploads/2026/08/vip-guests.webp" alt="Guests at the MLFA banquet photo booth" loading="lazy"></div> 1363 </div> 1364 <div class="rise"> 1365 <!-- Per client (Jul 31): "Access Granted" leads, "Benefactor Meet & Greet" follows --> 1366 <h2>Access Granted</h2> 1367 <div class="sub sub-after">Benefactor Meet & Greet</div> 1368 <div class="lede"> 1369 <p><em>Some stories remain untold, until you meet the people who lived them.</em></p> 1370 <p>Your VIP ticket unlocks exclusive early access to an intimate reception, with our featured speakers, MLFA staff and attorneys, photo opportunities, refreshments, and intimate dialogue before our Gala begins.
1370</p> 1371 <p>We hope you choose to experience the evening with us before the official reveal begins.</p> 1372 </div> 1373 <div class="actions"><a href="https://support.mlfa.org/event/the-first-25-years-or-mlfa-gala-2026/e822696" target="_blank" rel="noopener" class="btn btn-primary">Benefactor Meet & Greet</a></div> 1374 </div> 1375 </div> 1376</section> 1377 1378<!-- ââââââââââ SPONSORS ââââââââââ --> 1379<section id="sponsors"> 1380 <div class="spon-hero"> 1381 <div class="bg"> 1382 <video autoplay muted loop playsinline preload="none"> 1383 <source src="https://mlfa.org/wp-content/uploads/2026/08/sponsor-web.mp4" type="video/mp4"> 1384 </video> 1385 </div> 1386 <div class="inner"> 1387 <h2>Partner with MLFA</h2> 1388 <p>Support a milestone evening celebrating 25 years of impact while showcasing your organization's commitment to justice. Sponsorship provides meaningful visibility among community leaders, legal professionals, donors, and changemakers.</p> 1389 <div class="actions"><a href="#tiers" class="btn btn-white">Become a Sponsor</a></div> 1390 <span class="screening">All sponsors receive access to a complimentary nonprofit legal screening.</span> 1391 </div> 1392 </div> 1393 <div class="spon-acc" id="tiers"> 1394 <div class="h"><h2>Sponsorship Tiers</h2></div> 1395 <!-- Tiers + benefit lists per the updated support.mlfa.org event page (client, Jul 31 â 1396 Silver is the new tier). All start collapsed. --> 1397 <div class="acc" id="acc"> 1398 <div class="acc-item"> 1399 <button class="acc-btn"><span>Presenting Sponsor<span class="amt">$50,000 · Exclusive</span></span><span class="ic"></span></button> 1400 <div class="acc-panel"><div class="pad"> 1401 <ul> 1402 <li>Exclusive Gala naming rights: the 25th Anniversary Gala is presented in partnership with your organization across materials.</li> 1403 <li>Verbal recognition during opening and closing remarks, plus an invitation to offer brief remarks from the podium (subject to program approval).</li> 1404 <li>A two-minute video played during the program.</li> 1405 <li>VIP table for ten guests, including two seats at the Executive Director’s table and VIP reception access.</li> 1406 <li>Top-placement logo on all event materials, invitations, signage, and the sponsor page on the MLFA Gala website.</li> 1407 <li>Four dedicated social media posts tagging your organization, plus named recognition in an email to MLFA supporters.</li> 1408 </ul> 1409 </div></div> 1410 </div> 1411 <div class="acc-item"> 1412 <button class="acc-btn"><span>Platinum Sponsor<span class="amt">$35,000</span></span><span class="ic"></span></button> 1413 <div class="acc-panel"><div class="pad"> 1414 <ul> 1415 <li>Verbal acknowledgment during the Gala program.</li> 1416 <li>A one-minute video played during the program.</li> 1417 <li>VIP table for ten guests and VIP reception access.</li> 1418 <li>Logo on the Gala website sponsor page, printed materials, invitations, signage, and digital program.</li> 1419 <li>Three dedicated social media posts and named recognition in an email to MLFA supporters.</li> 1420 </ul> 1421 </div></div> 1422 </div> 1423 <div class="acc-item"> 1424 <button class="acc-btn"><span>Gold Sponsor<span class="amt">$25,000</span></span><span class="ic"></span></button> 1425 <div class="acc-panel"><div class="pad"> 1426 <ul> 1427 <li>Verbal acknowledgment during the Gala program.</li> 1428 <li>Priority table for ten guests and VIP reception access.</li> 1429 <li>Logo on the Gala website sponsor page, signage, invitations, and printed program.</li> 1430 <li>Two dedicated social media posts and named recognition in an email to MLFA supporters.</li> 1431 </ul> 1432 </div></div> 1433 </div> 1434 <div class="acc-item"> 1435 <button class="acc-btn"><span>Silver Sponsor<span class="amt">$15,000</span></span><span class="ic"></span></button> 1436 <div class="acc-panel"><div class="pad"> 1437 <ul> 1438 <li>Verbal acknowledgment during the Gala program.</li> 1439 <li>Reserved table for ten guests and VIP reception access.</li> 1440 <li>Logo on the Gala website sponsor page.</li> 1441 <li>One dedicated social media post and named recognition in an email to MLFA supporters.</li> 1442 </ul> 1443 </div></div> 1444 </div> 1445 </div> 1446 <!-- the outbound link for this section â the hero's "Become a Sponsor" scrolls here. 1447 Deep-links straight to ticket selection, per client (Aug 3). --> 1448 <div class="acc-cta"><a href="https://support.mlfa.org/event/the-first-25-years-or-mlfa-gala-2026/e822696/register/new/select-tickets" target="_blank" rel="noopener" class="btn btn-primary">Become a Sponsor</a></div> 1449 </div> 1450</section> 1451 1452<!-- ââââââââââ IN-KIND ââââââââââ --> 1453<section id="inkind"> 1454 <div class="wrap kgrid"> 1455 <div class="kmedia rise"> 1456 <!-- updated photo, per client (Jul 31) --> 1457 <div class="kart"><img src="https://mlfa.org/wp-content/uploads/2026/08/inkind-2.webp" alt="Guests at the MLFA banquet" loading="lazy"></div> 1458 </div> 1459 <div class="kbody rise"> 1460 <h2>Become an in-kind sponsor</h2> 1461 <p>Help us create an unforgettable 25th Anniversary Banquet by partnering with MLFA through an in-kind donation. Whether it's products, services, guest gifts, décor, or event support, your contribution will help enhance an evening attended by more than 500 community leaders, attorneys, advocates, and supporters.</p> 1462 <p>As a thank you, participating businesses may receive recognition through different official MLFA outlets. We'd be honored to showcase your generosity while celebrating 25 years of defending justice.</p> 1463 <div class="actions"><a href="https://forms.cloud.microsoft/pages/responsepage.aspx?id=oiB_iSDzkUu20kpWPbd_DoNNqGaj_EJLjNILtIM1V1pUMzlFM01MNzlQSUw2VFhWSzNJNzU3U0lVNi4u&route=shorturl" target="_blank" rel="noopener" class="btn btn-primary">Submit an In-Kind Donation</a></div> 1464 </div> 1465 </div> 1466</section> 1467 1468<!-- ââââââââââ CONFIRMED SPONSORS ââââââââââ --> 1469<!-- Client (Ru, Sep 16). Tier order is fixed and must not be re-sorted: 1470 Presenting · Platinum · Gold · Silver · Bronze · 1471 Community & Strategic Partners · In-Kind 1472 As tiers are confirmed, add a .spw-item row in that order. data-size sets the 1473 chip size, so the weighting stays visible: xl â lg â md â sm. 1474 These six srcs are absolute mlfa.org URLs on purpose: the client uploaded the 1475 logo set straight into uploads/2026/09, which is NOT the month $mlfa_img_base 1476 points at, and they are the client's own files rather than processed assets of 1477 ours. The build only rewrites assets/⦠refs, so absolute URLs pass through the 1478 template untouched and survive every regeneration. Swap the URL here â never 1479 in the .php â when a logo is re-uploaded. --> 1480<section id="gala-sponsors"> 1481 <div class="h rise"><h2>Our Gala Sponsors</h2></div> 1482 <div class="spw"> 1483 <div class="spw-item rise" data-size="sm"> 1484 <span class="spw-name">Presenting</span> 1485 <div class="spw-row"> 1486 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/ZF-logo-1.jpg" alt="Zakat Foundation" width="632" height="632" loading="lazy" decoding="async"></div> 1487 </div> 1488 </div> 1489 <div class="spw-item rise" data-size="xl"> 1490 <span class="spw-name">Platinum</span> 1491 <div class="spw-row"> 1492 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/37be6c91-d436-4f21-877a-63a427d4f133.png" alt="American Muslims for Palestine" width="1313" height="985" loading="lazy" decoding="async"></div> 1493 </div> 1494 </div> 1495 <div class="spw-item rise" data-size="sm"> 1496 <span class="spw-name">Gold</span> 1497 <div class="spw-row"> 1498 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/iacc-logo-1.png" alt="IACC" width="2000" height="2000" loading="lazy" decoding="async"></div> 1499 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/ISF_footer-LOGO-300x110-376w-1.webp" alt="Islamic Scholarship Fund" width="1371" height="1419" loading="lazy" decoding="async"></div> 1500 </div> 1501 </div> 1502 <div class="spw-item rise" data-size="lg"> 1503 <span class="spw-name">Silver</span> 1504 <div class="spw-row"> 1505 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/baitulmaal_logo-black_letters-yellow_dots-white_square_transparent-backgroung-scaled.png" alt="Baitulmaal" width="2560" height="2560" loading="lazy" decoding="async"></div> 1506 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/Logo-with-White-background-2.png" alt="Tacs" width="2560" height="2560" loading="lazy" decoding="async"></div> 1507 </div> 1508 </div> 1509 <div class="spw-item rise" data-size="sm"> 1510 <span class="spw-name">Bronze</span> 1511 <div class="spw-row"> 1512 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/HHRD-LOGO-h-01-e1723840761902.png" alt="Helping Hands" width="2000" height="2000" loading="lazy" decoding="async"></div> 1513 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/ICNA-Logo-Updated-01.png" alt="ICNA" width="1371" height="1419" loading="lazy" decoding="async"></div> 1514 </div> 1515 </div> 1516 <div class="spw-item rise" data-size="md"> 1517 <span class="spw-name">Community Partners</span> 1518 <div class="spw-row" style="flex: auto;"> 1519 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/bgr3u4e3lk2t8y_5_n6fj2qt.webp" alt="Dar Elsalam Islamic Center" width="1440" height="1440" loading="lazy" decoding="async"></div> 1520 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/KAPTURE-LOGO-1.png" alt="Kapture Dallas Photo Booth" width="2000" height="2000" loading="lazy" decoding="async"></div> 1521 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/logo27.webp" alt="DAR Coffee" width="1371" height="1419" loading="lazy" decoding="async"></div> 1522 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/[email protected]" alt="Islamaphoia Studies Center" width="1371" height="1419" loading="lazy" decoding="async"></div> 1523 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/[email protected]" alt="Lee Merritt, Esq" width="1371" height="1419" loading="lazy" decoding="async"></div> 1524 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/AZHAR.png" alt="Azhar" width="1371" height="1419" loading="lazy" decoding="async"></div> 1525 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/BarakahGroup-logo-vertical-blue.png" alt="Barakah" width="1371" height="1419" loading="lazy" decoding="async"></div> 1526 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/everypregnancy-logo.svg" alt="Every Pregnancy" width="1371" height="1419" loading="lazy" decoding="async"></div> 1527 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/Food-International-of-Dallas.webp" alt="FID" width="1371" height="1419" loading="lazy" decoding="async"></div> 1528 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/logohoriz.png" alt="Naser Legal" width="1371" height="1419" loading="lazy" decoding="async"></div> 1529 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/NAML-logo.png" alt="NAML" width="1371" height="1419" loading="lazy" decoding="async"></div> 1530 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/OIP-5.webp" alt="Amana Mutual" width="1371" height="1419" loading="lazy" decoding="async"></div> 1531 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/Stearns-Bank.svg" alt="Stearns Bank" width="1371" height="1419" loading="lazy" decoding="async"></div> 1532 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/AMGLogo2025.webp" alt="AMG Counsel" width="1371" height="1419" loading="lazy" decoding="async"></div> 1533 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/logo6f_2_final_nx6hhs.png" alt="Faiza Rehan" width="1371" height="1419" loading="lazy" decoding="async"></div> 1534 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/logo27-1.webp" alt="DAR Coffee" width="1371" height="1419" loading="lazy" decoding="async"></div> 1535 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/MuhsenLogo_CMYK-2.png" alt="Muhsen" width="1371" height="1419" loading="lazy" decoding="async"></div> 1536 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/Pax-Branding-01-6-scaled.png" alt="Pax Beneficia" width="1371" height="1419" loading="lazy" decoding="async"></div> 1537 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/fetefone-logo-white-on-blue-300x300-1.png" alt="Fetefone" width="1371" height="1419" loading="lazy" decoding="async"></div> 1538 </div> 1539 </div> 1540 <div class="spw-item rise" data-size="sm"> 1541 <span class="spw-name">Grantees</span> 1542 <div class="spw-row"> 1543 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/IDEA_LOGO_HORIZONTAL_FULL.svg" alt="IDEA" width="2000" height="2000" loading="lazy" decoding="async"></div> 1544 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/logo.webp" alt="Muslim for Just Futures" width="1371" height="1419" loading="lazy" decoding="async"></div> 1545 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/WDN_stacked_logo.jpg" alt="Women Donor Network" width="1371" height="1419" loading="lazy" decoding="async"></div> 1546 </div> 1547 </div> 1548 <div class="spw-item rise" data-size="sm"> 1549 <span class="spw-name">University Partners</span> 1550 <div class="spw-row"> 1551 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/6742.jpg" alt="Columbia Law School" width="2000" height="2000" loading="lazy" decoding="async"></div> 1552 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/UC-Berkeley-Seal-Logo-scaled.png" alt="University of Berkeley" width="1371" height="1419" loading="lazy" decoding="async"></div> 1553 <div class="spw-logo"><img src="https://mlfa.org/wp-content/uploads/2026/09/University_of_Texas_at_Austin_seal.svg.webp" alt="University of Texas at Austin" width="1371" height="1419" loading="lazy" decoding="async"></div> 1554 </div> 1555 </div> 1556 1557 </div> 1558</section> 1559 1560</main> 1561 1562<!-- The closing section is pinned behind the page: #flow scrolls up off it like a 1563 curtain lifting, and the spacer below gives the scroll room to do it. --> 1564<section id="archive"> 1565 <div class="wrap"> 1566 <h2 class="rise">Our first 25 deserves to be seen</h2> 1567 <p class="rise">Before we reveal what's next, look back at the moments that brought us here. A curated collection of photographs from last year's banquet, capturing the people, the mission, and the moments that continue to shape MLFA's story.</p> 1568 <a href="https://mlfa.org/25-years-of-mlfa/" target="_blank" rel="noopener" class="btn btn-ghost rise">Explore the Archive</a> 1569 </div> 1570</section> 1571<div class="archive-spacer" aria-hidden="true"></div> 1572
1573<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js"></script>
vendor: 1 bytes, line 1573
1573
1574<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/ScrollTrigger.min.js"></script>
vendor: 1 bytes, line 1574
1574
1575<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/SplitText.min.js"></script>
vendor: 1 bytes, line 1575
1575
1576<script src="https://cdnjs.cloudflare.com/ajax/libs/lenis/1.0.42/lenis.min.js"></script>
vendor: 1 bytes, line 1576
1576
1577<script> 1578const SPEAKERS=[ 1579 /* flat: client-supplied disc artwork fills the circle as-is (no pop-out) */ 1580 {label:"Keynote Address",name:"Alana Hadid",title:"Creative Director, Human Rights Activist & Film Producer",img:"https://mlfa.org/wp-content/uploads/2026/08/Alana-V1.png",w:800,h:834,flat:true, 1581 bio:"A Palestinian woman, international humanitarian, activist, creative, and one of the leading public voices advocating for Palestinian human rights. With a platform of over 1M followers, she uses her power to move justice forward."}, 1582 /* announced (client, Sep 17) â nopop keeps the portrait inside the circle */ 1583 {label:"Featured Speaker",name:"Ayman Mohyeldin",title:"MS Now Host & Journalist",nopop:true, 1584 img:"https://mlfa.org/wp-content/uploads/2026/08/ayman-gala-profile-1.png",w:800,h:643,imgH:104, bio:"A longtime journalist and MS NOW anchor, he previously hosted the award-winning and acclaimed MS NOWâs âAYMAN,â a weekly news and perspective show that featured world leaders, politicians, newsmakers and more."}, /* imgH: no headroom in the file â head top just over the rim */ 1585 {label:"Featured Speaker",name:"Yusuf Omar",title:"Award-Winning Journalist",img:"https://mlfa.org/wp-content/uploads/2026/08/yusuf-1.webp",w:906,h:1100, 1586 bio:"Former war correspondent and award-winning CNN journalist. Co-founded Seen.TV & Seen.Palestine, a groundbreaking Gen Z News Network with an impressive following of 9 million."}, 1587 {label:"Opening Remarks",name:"Dr. Hatem Bazian",title:"MLFA Board Chairman & Leading Scholar in Islamophobia Studies",img:"https://mlfa.org/wp-content/uploads/2026/08/hatem-2.webp",w:884,h:1100, 1588 bio:"Scholar, professor, and co-founder of leading institutions studying Islamophobia, Dr. Bazian has spent decades at the intersection of academia and civil-rights advocacy."}, 1589 {label:"Fundraising",name:"Imam Muhammad Abdullah",title:"The Imam of the People | Renowned Khatib | Public Speaker",img:"https://mlfa.org/wp-content/uploads/2026/08/abdullah-2.webp",w:872,h:1100, 1590 bio:"A beloved khatib and public speaker known for moving audiences to action, Imam Muhammad Abdullah leads the evening's call to invest in the next 25 years."}, 1591 {label:"From Our CEO's Desk",name:"Arshia Ali-Khan, M.A.",title:"MLFA CEO",img:"https://mlfa.org/wp-content/uploads/2026/08/arshia-4.webp",w:938,h:1100, 1592 bio:"At the helm of MLFA, Arshia Ali-Khan has guided the organization's mission to defend constitutional rights â reflecting on where we've been and where we go next."} 1593]; 1594(function build(){ 1595 const stage=document.getElementById('spkStage'),info=document.getElementById('spkInfo'); 1596 SPEAKERS.forEach((s,i)=>{ 1597 const c=document.createElement('div');c.className='spk-card'+(s.flat?' flat':'');c.dataset.i=i; 1598 /* same cutout twice = pop-out; nopop/flat draw only the circle-cropped copy */ 1599 c.innerHTML=`<span class="circ"><img class="photo" src="${s.img}" alt="${s.name||''}" width="${s.w}" height="${s.h}"${s.imgH?` style="height:${s.imgH}%"`:''} decoding="async"></span>`+ 1600 (s.nopop||s.flat?'':`<img class="pop" src="${s.img}" alt="" aria-hidden="true" width="${s.w}" height="${s.h}" decoding="async">`); 1601 stage.appendChild(c); 1602 const sl=document.createElement('div');sl.className='spk-slide'+(i===0?' active':''); 1603 sl.innerHTML=(s.name?`<h3>${s.name}</h3>`:'')+ 1604 (s.title?`<div class="title">${s.title}</div>`:'')+ 1605 (s.bio?`<p class="bio">${s.bio}</p>`:''); 1606 info.appendChild(sl); 1607 }); 1608})(); 1609 1610document.addEventListener('DOMContentLoaded',()=>{ 1611 const reduce=window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1612 const params=new URLSearchParams(location.search); 1613 const TO=params.get('to'); 1614 const FLAT=params.has('flat'); 1615 if(FLAT){ 1616 const st=document.createElement('style'); 1617 st.textContent='#intro{display:none!important}'+ 1618 '#hero{min-height:auto!important;height:760px}.spon-hero{min-height:auto!important}'+ 1619 '.spk-pin{height:700px!important;min-height:0!important}'+ 1620 '.rise{opacity:1!important;transform:none!important}'; 1621 document.head.appendChild(st); 1622 document.body.classList.remove('intro-lock'); 1623 } 1624 1625 /* INTRO */ 1626 const intro=document.getElementById('intro'),vid=document.getElementById('introVid'),prog=document.getElementById('introProg'); 1627 let introDone=false;
1628 /* the intro must always hand off to the TOP of the page â on refresh the browser 1629 restores the last scroll position, which dropped skippers mid-page (client bug 1630 report, Jul 31). Owning restoration + jumping while the curtain still covers 1631 the page makes the seam invisible. */ 1632 if('scrollRestoration' in history)history.scrollRestoration='manual'; 1633 if(!TO&&!FLAT)window.scrollTo(0,0); 1634 function endIntro(){ 1635 if(introDone)return;introDone=true; 1636 window.scrollTo(0,0); 1637 intro.style.transition='clip-path 1.1s var(--ease-io),opacity .5s ease .6s'; 1638 intro.style.clipPath='inset(0 0 100% 0)'; 1639 document.body.classList.remove('intro-lock'); 1640 setTimeout(()=>{intro.style.display='none';window.ScrollTrigger&&ScrollTrigger.refresh();},1200); 1641 try{vid.pause();}catch(e){} 1642 } 1643 if(vid){ 1644 vid.playbackRate=1.25; /* "sped it up a bit" â client note, Jul 31 */ 1645 vid.addEventListener('timeupdate',()=>{if(vid.duration)prog.style.width=(vid.currentTime/vid.duration*100)+'%';}); 1646 vid.addEventListener('ended',endIntro); 1647 vid.play().catch(()=>{}); 1648 } 1649 document.getElementById('skipIntro').addEventListener('click',endIntro); 1650 setTimeout(endIntro,8000); 1651 if(reduce)endIntro(); 1652 if(TO||FLAT){introDone=true;intro.style.display='none';document.body.classList.remove('intro-lock');} 1653 1654 /* LENIS */ 1655 let lenis=null; 1656 if(!reduce && !TO && !FLAT && window.Lenis){ 1657 lenis=new Lenis({lerp:.09,wheelMultiplier:1}); 1658 if(window.ScrollTrigger){lenis.on('scroll',ScrollTrigger.update);gsap.ticker.add(t=>lenis.raf(t*1000));gsap.ticker.lagSmoothing(0);} 1659 else{const raf=t=>{lenis.raf(t);requestAnimationFrame(raf);};requestAnimationFrame(raf);} 1660 } 1661 function goTo(t){const el=document.querySelector(t);if(!el)return;if(lenis)lenis.scrollTo(el,{offset:-20});else el.scrollIntoView({behavior:'smooth'});} 1662 /* a bare "#" is a placeholder awaiting a real destination â swallow the click so the 1663 browser doesn't yank the page back to the top */ 1664 document.querySelectorAll('a[href^="#"]').forEach(a=>a.addEventListener('click',e=>{ 1665 const h=a.getAttribute('href'); 1666 e.preventDefault(); 1667 if(h.length>1)goTo(h); 1668 })); 1669 1670 /* COUNTDOWN â days lead the block (per the copy doc); split-flap clock under it. 1671 Each card carries two static halves plus two flaps: on change the top flap folds 1672 down over the old value, then the bottom flap lands showing the new one. */ 1673 const target=new Date('2026-10-03T18:00:00-05:00').getTime(); /* 6 PM CT, per client (Jul 31) */ 1674 const D=document.getElementById('cdDays'),CK=document.getElementById('cdClock'); 1675 const FLIPS={h:document.getElementById('fH'),m:document.getElementById('fM'),s:document.getElementById('fS')}; 1676 function setFlip(el,v){ 1677 if(el.dataset.v===v)return; 1678 const old=el.dataset.v??v; 1679 el.dataset.v=v; 1680 el.querySelector('.half.top .digit').textContent=v; 1681 el.querySelector('.half.bottom .digit').textContent=old; 1682 el.querySelector('.flap-top .digit').textContent=old; 1683 el.querySelector('.flap-bottom .digit').textContent=v; 1684 el.classList.remove('flipping');void el.offsetWidth;el.classList.add('flipping'); 1685 clearTimeout(el._t); 1686 el._t=setTimeout(()=>{el.querySelector('.half.bottom .digit').textContent=v;el.classList.remove('flipping');},560); 1687 } 1688 (function tick(){ 1689 let d=Math.max(0,target-Date.now()); 1690 const days=Math.floor(d/864e5); d-=days*864e5; 1691 const h=Math.floor(d/36e5); d-=h*36e5; 1692 const m=Math.floor(d/6e4); d-=m*6e4; 1693 const sec=Math.floor(d/1e3); 1694 const pad=n=>String(n).padStart(2,'0'); 1695 D.textContent=days; 1696 setFlip(FLIPS.h,pad(h));setFlip(FLIPS.m,pad(m));setFlip(FLIPS.s,pad(sec)); 1697 CK.setAttribute('aria-label',`${days} days, ${pad(h)} hours ${pad(m)} minutes ${pad(sec)} seconds until the gala`); 1698 setTimeout(tick,1000); 1699 })(); 1700 1701 /* REVEAL */ 1702 const io=new IntersectionObserver((es)=>{es.forEach(en=>{if(en.isIntersecting){en.target.classList.add('in');io.unobserve(en.target);}});},{threshold:.16}); 1703 document.querySelectorAll('.rise').forEach(el=>io.observe(el)); 1704 document.querySelectorAll('.tright .tcard').forEach((el,i)=>el.style.transitionDelay=(i*80)+'ms'); 1705
1706 /* SPEAKERS â copy band above, carousel band below: lead large left, others peeking right */ 1707 const cards=[...document.querySelectorAll('.spk-card')],slides=[...document.querySelectorAll('.spk-slide')], 1708 stageEl=document.getElementById('spkStage'),label=document.getElementById('spkLabel'), 1709 prevBtn=document.getElementById('spkPrev'),nextBtn=document.getElementById('spkNext'); 1710 let cur=-1; 1711 /* Phones never pin: the pin hijacks the only scroll axis a thumb has, so the section 1712 stays a normal block you scroll past and you swipe the row to change speaker. */ 1713 const NOPIN=window.matchMedia('(max-width:820px)').matches; 1714 function layout(active){ 1715 active=Math.max(0,Math.min(SPEAKERS.length-1,active)); 1716 if(active===cur)return;cur=active; 1717 const vw=window.innerWidth; 1718 const pad=Math.min(Math.max(vw*.05,20),84); 1719 const smallScale=vw<820?.6:.74; 1720 const gapLead=Math.min(vw*.05,96); 1721 const maxLead=vw*(vw<820?.58:.34); // keep the lead from eating the row 1722 /* Phones size the portrait first, then collapse the stage onto it. The lead is 1723 width-capped there (58vw), so a stage that kept its full 52vh left ~150px of dead 1724 air between the section title and the top of the head. 1.22 is exactly the pop-out 1725 rise â the img is 122% of the card, bottom-anchored â so the stage ends where the 1726 tallest head does and .spk-head's 28px bottom padding is the whole gap. 1727 Derived from the viewport, never from clientHeight: reading back a height we just 1728 wrote would shrink the portrait a little on every relayout. */ 1729 let h; 1730 if(NOPIN){ 1731 h=Math.min(Math.min(window.innerHeight*.52,420)/1.26,maxLead); 1732 stageEl.style.height=Math.round(h*1.22)+'px'; 1733 } 1734 /* Desktop keeps taking its lead from the pinned stage box: the circle takes ~80% of 1735 it and sits on its floor, and the remaining ~20% is the headroom the pop-outs rise 1736 into, so a popped head tops out just under the section title. */ 1737 else h=stageEl.clientHeight/1.26; 1738 cards.forEach(c=>{c.style.height=h+'px';}); // widths follow each portrait's own ratio 1739 let w=cards.map(c=>c.offsetWidth); 1740 if(w[active]>maxLead){ 1741 h=h*maxLead/w[active]; 1742 cards.forEach(c=>{c.style.height=h+'px';}); 1743 w=cards.map(c=>c.offsetWidth); 1744 } 1745 /* spread the upcoming portraits across whatever width the lead leaves */ 1746 const upcoming=cards.map((c,i)=>i).filter(i=>i>active); 1747 const laneStart=pad+w[active]+gapLead, laneEnd=vw-pad*.5; 1748 const upW=upcoming.reduce((t,i)=>t+w[i]*smallScale,0); 1749 const gap=upcoming.length?Math.min(Math.max((laneEnd-laneStart-upW)/upcoming.length,34),170):0; /* near-constant rhythm as the row shortens */ 1750 let cursor=laneStart; 1751 cards.forEach((c,i)=>{ 1752 const d=i-active; 1753 let x,sc,op,z; 1754 if(d<0){ x=pad-w[i]*1.3; sc=.5; op=0; z=1; } // passed: slide off left 1755 else if(d===0){ x=pad; sc=1; op=1; z=5; } // lead 1756 else{ x=cursor; sc=smallScale; op=1; z=4-d; cursor+=w[i]*smallScale+gap; } // upcoming 1757 c.style.transform=`translate(${x}px,0) scale(${sc})`; 1758 c.style.opacity=op; c.style.zIndex=z; 1759 }); 1760 slides.forEach((s,i)=>s.classList.toggle('active',i===active)); 1761 label.style.opacity=0;setTimeout(()=>{label.textContent=SPEAKERS[active].label;label.style.opacity=1;},160); 1762 prevBtn.disabled=active===0; nextBtn.disabled=active===SPEAKERS.length-1; 1763 } 1764 /* reserve exactly the tallest slide â no more, so the portraits keep the rest */ 1765 const info=document.getElementById('spkInfo'); 1766 function sizeInfo(){ 1767 info.style.minHeight='0'; 1768 const tallest=Math.max(...slides.map(s=>s.getBoundingClientRect().height)); 1769 info.style.minHeight=Math.ceil(tallest)+'px'; 1770 } 1771 sizeInfo(); 1772 layout(0); 1773 const relayout=()=>{sizeInfo();const c=cur;cur=-1;layout(c<0?0:c);}; 1774 window.addEventListener('resize',relayout); 1775 window.addEventListener('load',relayout); 1776 cards.forEach(c=>{const im=c.querySelector('img');if(im&&!im.complete)im.addEventListener('load',relayout,{once:true});}); 1777 prevBtn.addEventListener('click',()=>jump(cur-1)); 1778 nextBtn.addEventListener('click',()=>jump(cur+1)); 1779 /* tap a peeking portrait to bring it forward â but not when the tap was really a swipe */ 1780 let swiped=false; 1781 cards.forEach((c,i)=>{c.style.cursor='pointer';c.addEventListener('click',()=>{if(!swiped)jump(i);});}); 1782 function jump(i){ 1783 layout(Math.max(0,Math.min(SPEAKERS.length-1,i))); 1784 } 1785 /* ââ swipe the row (phones) ââ 1786 `touch-action:pan-y` on the stage leaves vertical panning to the browser, so the 1787 page still scrolls normally; the browser fires pointercancel the moment it claims 1788 the gesture, which is exactly when we want to stop tracking. */ 1789 if(NOPIN){ 1790 let sx=0,sy=0,tracking=false; 1791 stageEl.addEventListener('pointerdown',e=>{tracking=true;swiped=false;sx=e.clientX;sy=e.clientY;}); 1792 stageEl.addEventListener('pointerup',e=>{ 1793 if(!tracking)return;tracking=false; 1794 const dx=e.clientX-sx,dy=e.clientY-sy; 1795 if(Math.abs(dx)>40&&Math.abs(dx)>Math.abs(dy)){swiped=true;jump(cur+(dx<0?1:-1));} 1796 }); 1797 stageEl.addEventListener('pointercancel',()=>{tracking=false;}); 1798 } 1799 /* The speakers no longer pin (client ask, Aug 1): the section scrolls past like any 1800 other, and the arrows / portrait taps / swipes drive the carousel. */ 1801 if(!reduce && !TO && !FLAT && window.ScrollTrigger){ 1802 gsap.to('#hero .hero-media',{yPercent:10,ease:'none',scrollTrigger:{trigger:'#hero',start:'top top',end:'bottom top',scrub:true}}); 1803 ScrollTrigger.refresh(); 1804 } 1805 1806 /* ââ PAGE BACKGROUND FLOW ââââââââââââââââââââââââââââââââââââââââââââââââ 1807 One gradient painted on #flow, its stops pinned to where the sections 1808 actually land. Two rules keep it calm: every colour is either an MLFA 1809 green or an MLFA warm, and each greenâwarm crossing is packed into a 1810 short band at a section edge, so you read it as depth rather than a 1811 muddy midpoint. Re-measured on resize and after ScrollTrigger settles, 1812 which matters because pinning the speakers changes the page height. */ 1813 const FLOW=[ 1814 /* Navy-only since the Aug 3 palette change â the flow now just breathes between 1815 lighter and deeper navies at the section edges. Interpolated in oklab. */ 1816 ['hero',0,'#1d3050'], ['hero',.72,'#16264a'], 1817 ['anniversary',.5,'#0f1c36'], ['anniversary',1,'#16264a'], 1818 /* speakers hold one flat shade end to end â the one the last speaker sits on â so 1819 paging through the carousel never shifts the backdrop */ 1820 ['speakers',.5,'#16264a'], ['speakers',.86,'#16264a'], 1821 ['reveal',1,'#0e1a33'], 1822 ['tickets',.45,'#0f1c36'], ['tickets',1,'#1d3050'], 1823 ['vip',.42,'#16264a'], ['vip',1,'#1d3050'], 1824 ['sponsors',.62,'#16264a'], ['sponsors',1,'#0f1c36'], 1825 ['inkind',.45,'#1d3050'], ['inkind',.78,'#16264a'], ['inkind',1,'#16264a'], 1826 ['gala-sponsors',.5,'#16264a'], ['gala-sponsors',1,'#0e1a33'], 1827 ]; 1828 /* Solid section colours are the default now. The gradient flow below is kept intact â 1829 add ?flow to the URL (works alongside ?flat) to switch back to it. */ 1830 const FLOW_ON=new URLSearchParams(location.search).has('flow'); 1831 const flowEl=document.getElementById('flow'); 1832 const OKLAB=window.CSS&&CSS.supports&&CSS.supports('background-image','linear-gradient(in oklab,red,blue)'); 1833 function paintFlow(){ 1834 if(!flowEl)return; 1835 const total=flowEl.offsetHeight;if(!total)return; 1836 const top=flowEl.getBoundingClientRect().top+window.scrollY; 1837 const stops=[]; 1838 for(const [id,at,col] of FLOW){ 1839 const el=document.getElementById(id); if(!el)continue; 1840 const r=el.getBoundingClientRect(); 1841 const y=(r.top+window.scrollY-top)+r.height*at; 1842 stops.push(`${col} ${(y/total*100).toFixed(2)}%`); 1843 } 1844 flowEl.style.backgroundImage=OKLAB 1845 ? `linear-gradient(180deg in oklab,${stops.join(',')})` 1846 : `linear-gradient(180deg,${stops.join(',')})`; 1847 } 1848 if(FLOW_ON){ 1849 paintFlow(); 1850 window.addEventListener('resize',paintFlow); 1851 window.addEventListener('load',paintFlow); 1852 if(window.ScrollTrigger)ScrollTrigger.addEventListener('refresh',paintFlow); 1853 }else{ 1854 document.body.classList.add('solid-bg'); 1855 } 1856 1857 1858 /* REDACTION LINE REVEAL â ported from codegrid-landonorris-text-reveal-animation-nextjs 1859 (components/Copy.jsx). Every line starts hidden; a black bar sweeps in from the 1860 left, the text appears behind it, and the bar sweeps out to the right â the page's 1861 redaction motif applied to the copy itself. The #reveal passage is excluded: it has 1862 its own typewriter and painted bars. */ 1863 (function lineReveal(){ 1864 if(reduce||!window.gsap||!window.SplitText||!window.ScrollTrigger)return; 1865 gsap.registerPlugin(SplitText,ScrollTrigger); 1866 /* line breaks depend on the loaded faces, so measure only once fonts settle */ 1867 if(document.fonts&&document.fonts.status!=='loaded'){document.fonts.ready.then(run);}else{run();} 1868 function run(){ 1869 /* Per client feedback (Jul 31): the line reveal stays only where it began â
1870 hero, countdown, speakers, archive. Tickets, VIP, both sponsor blocks, and 1871 in-kind read statically. */ 1872 const TARGETS=[ 1873 '#hero h1','#hero .tag','#hero .date', 1874 '#anniversary h2','#anniversary .lede p', 1875 '.spk-slide h3','.spk-slide .title','.spk-slide .bio', 1876 '#archive h2','#archive p' 1877 ].join(','); 1878 const DUR=.55,STAG=.12; 1879 document.querySelectorAll(TARGETS).forEach(el=>{ 1880 if(el.closest('#reveal'))return; 1881 const split=SplitText.create(el,{type:'lines',linesClass:'block-line',lineThreshold:.1}); 1882 if(!split.lines.length)return; 1883 const tls=[]; 1884 split.lines.forEach(line=>{ 1885 const wrap=document.createElement('div');wrap.className='block-line-wrapper'; 1886 line.parentNode.insertBefore(wrap,line);wrap.appendChild(line); 1887 const block=document.createElement('div');block.className='block-revealer'; 1888 wrap.appendChild(block); 1889 gsap.set(line,{opacity:0}); 1890 gsap.set(block,{scaleX:0,transformOrigin:'left center'}); 1891 const tl=gsap.timeline({paused:true}); 1892 tl.to(block,{scaleX:1,duration:DUR,ease:'power4.inOut'}); 1893 tl.set(line,{opacity:1}); 1894 tl.set(block,{transformOrigin:'right center'}); 1895 tl.to(block,{scaleX:0,duration:DUR,ease:'power4.inOut'}); 1896 tls.push(tl); 1897 }); 1898 /* the closing section is position:fixed, so it never travels past a start 1899 marker of its own â trigger it off the spacer that scrolls in its place */ 1900 const trigger=el.closest('#archive')?document.querySelector('.archive-spacer'):el; 1901 ScrollTrigger.create({trigger:trigger,start:el.closest('#archive')?'top 65%':'top 85%',once:true, 1902 onEnter:()=>tls.forEach((tl,i)=>gsap.delayedCall(i*STAG,()=>tl.play()))}); 1903 }); 1904 document.body.classList.add('line-reveal'); 1905 ScrollTrigger.refresh(); 1906 } 1907 })(); 1908 1909 /* REDACTION TYPEWRITER â types once, the first time the passage scrolls in */ 1910 (function typer(){ 1911 const el=document.getElementById('revealType');if(!el)return; 1912 const text=el.dataset.text||''; 1913 const caret='<span class="cursor" aria-hidden="true"></span>'; 1914 el.setAttribute('aria-label',text); 1915 if(reduce){el.textContent=text;el.classList.add('done');return;} 1916 el.innerHTML=caret; 1917 let i=0,timer=null; 1918 const esc=t=>t.replace(/&/g,'&').replace(/</g,'<'); 1919 function step(){ 1920 i++; 1921 el.innerHTML=esc(text.slice(0,i))+caret; 1922 if(i>=text.length){el.classList.add('done');return;} 1923 /* pause a beat on sentence ends so it reads like a transmission */ 1924 const ch=text[i-1]; 1925 timer=setTimeout(step,ch==='.'?420:ch===','?120:18+Math.round(Math.random()*22)); 1926 } 1927 new IntersectionObserver((es,ob)=>{ 1928 if(es[0].isIntersecting){ob.disconnect();step();} 1929 },{threshold:.3}).observe(el); 1930 })(); 1931 1932 /* ACCORDION */ 1933 const acc=document.getElementById('acc'); 1934 acc.querySelectorAll('.acc-item').forEach(item=>{ 1935 const btn=item.querySelector('.acc-btn'),panel=item.querySelector('.acc-panel'); 1936 if(item.classList.contains('open'))panel.style.maxHeight=panel.scrollHeight+'px'; 1937 btn.addEventListener('click',()=>{ 1938 const open=item.classList.contains('open'); 1939 acc.querySelectorAll('.acc-item').forEach(o=>{o.classList.remove('open');o.querySelector('.acc-panel').style.maxHeight='0';}); 1940 if(!open){item.classList.add('open');panel.style.maxHeight=panel.scrollHeight+'px';} 1941 setTimeout(()=>window.ScrollTrigger&&ScrollTrigger.refresh(),520); 1942 }); 1943 }); 1944 1945 /* ââ SECTION MENU â draggable dock ââââââââââââââââââââââââââââââââââââââ 1946 Ported from ~/Projects/timeline/immersive/nav.js: a fixed pill drawer with a 1947 hamburger toggler, draggable around the viewport with a snap-back drop zone 1948 at home. Vanilla pointer-drag (no GSAP Draggable); GSAP only drives the item 1949 stagger. Lives inside this handler so it can reuse `lenis`. */ 1950 (function sectionMenu(){ 1951 /* 25 Years, The Evening, The Reveal, and Archive were dropped from the menu at 1952 the client's request (The Evening section is gone entirely) */ 1953 const SECTIONS=[ 1954 {label:'Top', sel:null, top:true}, 1955 {label:'Speakers', sel:'#speakers'}, 1956 {label:'Tickets', sel:'#tickets'}, 1957 {label:'VIP', sel:'#vip'}, 1958 {label:'Sponsorships',sel:'#sponsors'}, 1959 {label:'In-Kind', sel:'#inkind'}, 1960 {label:'Our Sponsors',sel:'#gala-sponsors'} 1961 ]; 1962 1963 /* drop zone â a separate fixed element that stays at "home" while the dock is 1964 dragged away (the dock carries a transform; this must not) */
1965 const dropZone=document.createElement('div'); 1966 dropZone.className='nav-drop-zone';dropZone.setAttribute('aria-hidden','true'); 1967 document.body.appendChild(dropZone); 1968 1969 const dock=document.createElement('nav'); 1970 dock.id='anchorNav';dock.className='nav-dock';dock.setAttribute('aria-label','Section menu'); 1971 dock.innerHTML= 1972 '<button class="nav-toggler" type="button" aria-label="Open section menu" aria-expanded="false">'+ 1973 '<span class="nav-ico" aria-hidden="true"><span></span><span></span></span>'+ 1974 '<span class="nav-label">Menu</span>'+ 1975 '</button>'+ 1976 '<div class="nav-items">'+SECTIONS.map((s,i)=> 1977 '<div class="nav-item" data-i="'+i+'"><a href="'+(s.sel||'#')+'">'+s.label+'</a></div>').join('')+ 1978 '</div>'; 1979 document.body.appendChild(dock); 1980 1981 const toggler=dock.querySelector('.nav-toggler'); 1982 const itemEls=[...dock.querySelectorAll('.nav-item')]; 1983 1984 /* ---------- open / close ---------- */ 1985 let open=false; 1986 function setOpen(v){ 1987 open=v; 1988 dock.classList.toggle('open',open); 1989 toggler.classList.toggle('close',open); 1990 toggler.setAttribute('aria-expanded',open?'true':'false'); 1991 toggler.setAttribute('aria-label',open?'Close section menu':'Open section menu'); 1992 if(window.gsap&&!reduce)gsap.to(itemEls,{opacity:open?1:0,y:open?0:8,scale:open?1:.9, 1993 duration:.3,stagger:{each:.04,from:open?'start':'end'},ease:'power3.out',delay:open?.1:0}); 1994 } 1995 if(window.gsap&&!reduce)gsap.set(itemEls,{opacity:0,y:8,scale:.9}); 1996 1997 /* ---------- scroll to a section (resolved lazily, so mount order can't bite) ---------- */ 1998 itemEls.forEach(item=>{ 1999 const s=SECTIONS[+item.dataset.i]; 2000 item.querySelector('a').addEventListener('click',e=>{ 2001 e.preventDefault(); 2002 if(s.top){ lenis?lenis.scrollTo(0):window.scrollTo({top:0,behavior:'smooth'}); } 2003 else{ 2004 const el=document.querySelector(s.sel); 2005 if(!el)return; 2006 if(lenis)lenis.scrollTo(el,{offset:0}); 2007 else el.scrollIntoView({behavior:'smooth',block:'start'}); 2008 } 2009 setOpen(false); 2010 }); 2011 if(s.sel&&!document.querySelector(s.sel))item.style.display='none'; 2012 }); 2013 document.addEventListener('keydown',e=>{if(e.key==='Escape'&&open)setOpen(false);}); 2014 2015 /* ---------- toggler: tap = open/close, drag = move the dock ---------- */ 2016 const SNAP=170,MOVE=6; 2017 let dragging=false,moved=false,sx=0,sy=0,ox=0,oy=0,tx=0,ty=0; 2018 toggler.addEventListener('pointerdown',e=>{ 2019 dragging=true;moved=false;sx=e.clientX;sy=e.clientY;ox=tx;oy=ty; 2020 try{toggler.setPointerCapture(e.pointerId);}catch(_){} 2021 }); 2022 toggler.addEventListener('pointermove',e=>{ 2023 if(!dragging)return; 2024 const dx=e.clientX-sx,dy=e.clientY-sy; 2025 if(!moved&&Math.abs(dx)+Math.abs(dy)>MOVE){moved=true;dock.classList.add('dragging');} 2026 if(!moved)return; 2027 tx=ox+dx;ty=oy+dy; 2028 dock.style.transform=`translate(${tx}px,${ty}px)`; 2029 dropZone.style.opacity=(Math.abs(tx)<SNAP&&Math.abs(ty)<SNAP)?'1':'0'; 2030 }); 2031 function endDrag(){ 2032 if(!dragging)return; 2033 dragging=false; 2034 dock.classList.remove('dragging'); 2035 dropZone.style.opacity='0'; 2036 /* released near home â snap back. The CSS transition animates it, because 2037 `.dragging` (which kills the transition) has just come off. */ 2038 if(!moved)setOpen(!open); 2039 else if(Math.abs(tx)<SNAP&&Math.abs(ty)<SNAP){tx=0;ty=0;dock.style.transform='';} 2040 } 2041 toggler.addEventListener('pointerup',endDrag); 2042 toggler.addEventListener('pointercancel',endDrag); 2043 2044 /* ---------- visibility + current section ---------- 2045 Hidden over the hero only â there is nothing above it to navigate back to. 2046 From the countdown down it stays up on every section; the elements that share 2047 this corner (the slider's controls, the speaker copy) are held clear in CSS 2048 rather than the dock ducking out of the way. */ 2049 const hero=document.getElementById('hero'); 2050 let raf=null; 2051 function update(){ 2052 raf=null; 2053 const vh=window.innerHeight; 2054 const show=hero?hero.getBoundingClientRect().bottom<vh*.6:true; 2055 dock.classList.toggle('nav-hidden',!show); 2056 if(!show&&open)setOpen(false); 2057 /* mark whichever section owns the middle of the viewport */ 2058 let here=-1;
2059 itemEls.forEach((item,i)=>{ 2060 const s=SECTIONS[i];if(!s.sel)return; 2061 const el=document.querySelector(s.sel);if(!el)return; 2062 const r=el.getBoundingClientRect(); 2063 if(r.top<=vh*.5&&r.bottom>vh*.5)here=i; 2064 }); 2065 itemEls.forEach((item,i)=>item.classList.toggle('here',i===here)); 2066 } 2067 const queue=()=>{if(!raf)raf=requestAnimationFrame(update);}; 2068 update(); 2069 window.addEventListener('scroll',queue,{passive:true}); 2070 window.addEventListener('resize',queue,{passive:true}); 2071 if(lenis)lenis.on('scroll',queue); 2072 })(); 2073 2074 /* QA scroll target */ 2075 if(TO){const el=document.getElementById(TO);if(el){const s=()=>window.scrollTo(0,el.getBoundingClientRect().top+window.pageYOffset);s();setTimeout(s,400);setTimeout(s,900);}} 2076}); 2077</script>
2077 2078 2079 2080<footer id="colophon" class="site-footer wrapper"> 2081 <div class="flex-container"> 2082 <div class="footer-main"> 2083 <div class="flex-row"> 2084 <div class="columns info-col"> 2085 <div class="inner-col"> 2086 <div class="footer-logo"> 2087 <a href="https://mlfa.org/home/"> 2088 <img width="1600" height="364" src="https://mlfa.org/wp-content/uploads/2026/02/[email protected]" class="attachment-full size-full" alt="" decoding="async" srcset="https://mlfa.org/wp-content/uploads/2026/02/[email protected] 1600w, https://mlfa.org/wp-content/uploads/2026/02/[email protected] 300w, https://mlfa.org/wp-content/uploads/2026/02/[email protected] 1024w, https://mlfa.org/wp-content/uploads/2026/02/[email protected] 768w, https://mlfa.org/wp-content/uploads/2026/02/[email protected] 1536w" sizes="(max-width: 1600px) 100vw, 1600px" /> </a> 2089 2090 </div> 2091 <div class="footer-description"> 2092 <p> 2093 MLFA is a 501(c)(3) nonprofit organization (EIN: 01-0548371) with top rated standards of transparency and certified zakat eligible. </p> 2094 </div> 2095 <div class="certification-logo-main"> 2096 <div class="certified-logo-main row"> 2097 <div class="certify-col"> 2098 2099 <a href="https://greatnonprofits.org/org/muslim-legal-fund-of-america"> 2100 2101 <img width="674" height="650" src="https://mlfa.org/wp-content/uploads/2026/02/2025GreatNon-Profit-2025-Top-Rated-Seal.png" class="attachment-full size-full" alt="" decoding="async" srcset="https://mlfa.org/wp-content/uploads/2026/02/2025GreatNon-Profit-2025-Top-Rated-Seal.png 674w, https://mlfa.org/wp-content/uploads/2026/02/2025GreatNon-Profit-2025-Top-Rated-Seal-300x289.png 300w" sizes="(max-width: 674px) 100vw, 674px" /> 2102 </a> 2103 2104 </div> 2105 <div class="certify-col"> 2106 2107 <a href="https://www.charitynavigator.org/ein/010548371"> 2108 2109 <img width="1536" height="1536" src="https://mlfa.org/wp-content/uploads/2023/04/3.png" class="attachment-full size-full" alt="3" decoding="async" srcset="https://mlfa.org/wp-content/uploads/2023/04/3.png 1536w, https://mlfa.org/wp-content/uploads/2023/04/3-300x300.png 300w, https://mlfa.org/wp-content/uploads/2023/04/3-1024x1024.png 1024w, https://mlfa.org/wp-content/uploads/2023/04/3-150x150.png 150w, https://mlfa.org/wp-content/uploads/2023/04/3-768x768.png 768w" sizes="(max-width: 1536px) 100vw, 1536px" /> 2110 </a> 2111 2112 </div> 2113 <div class="certify-col"> 2114 2115 <a href="https://www.guidestar.org/profile/shared/759e42f7-04b0-4e6d-ae82-66e49348c492"> 2116 2117 <img width="676" height="676" src="https://mlfa.org/wp-content/uploads/2026/02/Candid-Seal-2026.png" class="attachment-full size-full" alt="" decoding="async" srcset="https://mlfa.org/wp-content/uploads/2026/02/Candid-Seal-2026.png 676w, https://mlfa.org/wp-content/uploads/2026/02/Candid-Seal-2026-300x300.png 300w, https://mlfa.org/wp-content/uploads/2026/02/Candid-Seal-2026-150x150.png 150w, https://mlfa.org/wp-content/uploads/2026/02/Candid-Seal-2026-560x560.png 560w" sizes="(max-width: 676px) 100vw, 676px" /> 2118 </a> 2119 2120 </div> 2121 <div class="certify-col"> 2122 2123 <a href="https://mlfa.org/our-financials/"> 2124 2125 <img width="99" height="99" src="https://mlfa.org/wp-content/uploads/2023/04/undefined-Imgur-5.png" class="attachment-full size-full" alt="undefined - Imgur (5)" decoding="async" /> 2126 </a> 2127 2128 </div> 2129 <div class="certify-col"> 2130 2131 <a href="https://give.org/charity-reviews/civil-rights/muslim-legal-fund-of-america-in-richardson-tx-9999-21582"> 2132 2133 <img width="337" height="325" src="https://mlfa.org/wp-content/uploads/2026/08/2023-AccreditedSeal-WEB-Vertical-White.png" class="attachment-full size-full" alt="" decoding="async" srcset="https://mlfa.org/wp-content/uploads/2026/08/2023-AccreditedSeal-WEB-Vertical-White.png 337w, https://mlfa.org/wp-content/uploads/2026/08/2023-AccreditedSeal-WEB-Vertical-White-300x289.png 300w" sizes="(max-width: 337px) 100v
2133w, 337px" /> 2134 </a> 2135 2136 </div> 2137 </div> 2138 </div> 2139 </div> 2140 </div> 2141 <div class="columns menu-col"> 2142 <div class="inner-col"> 2143 <div class="row inner-row "> 2144 <div class="col-lg-4"> 2145 <div class="footer-menu-main"> 2146 <div class="list-title"> 2147 <h4>Quick Links</h4> 2148 </div> 2149 <div class="footer-menu-wrap"> 2150 <div class="menu-quick-links-container"><ul id="footer-quick-links-menu" class="menu"><li id="menu-item-11860" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-11860"><a href="https://mlfa.org/">Home</a></li> 2151<li id="menu-item-379" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-379"><a href="/our-story/">Our Story</a></li> 2152<li id="menu-item-380" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-380"><a href="/missions/">Our Mission</a></li> 2153<li id="menu-item-9111" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9111"><a href="/our-cases/">Our Cases</a></li> 2154<li id="menu-item-9250" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9250"><a href="/application-for-legal-assistance/">Apply for Help</a></li> 2155</ul></div> </div> 2156 </div> 2157 </div> 2158 <div class="col-lg-4"> 2159 <div class="footer-menu-main"> 2160 <div class="list-title"> 2161 <h4>Resources</h4> 2162 </div> 2163 <div class="footer-menu-wrap"> 2164 <div class="menu-resources-container"><ul id="footer-resources-menu" class="menu"><li id="menu-item-9177" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-9177"><a href="https://mlfa.org/blog-news/">News & Commentary</a></li> 2165<li id="menu-item-384" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-384"><a href="https://mlfa.org/video/">Videos</a></li> 2166<li id="menu-item-385" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-385"><a href="https://mlfa.org/book-club/">Bookclub</a></li> 2167<li id="menu-item-18628" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18628"><a href="https://mlfa.org/giving-funds/">Giving Funds</a></li> 2168<li id="menu-item-18630" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18630"><a href="https://mlfa.org/giving-funds#zakat">Zakat Verified</a></li> 2169</ul></div> </div> 2170 </div> 2171 </div> 2172 <div class="col-lg-4"> 2173 <div class="footer-menu-main"> 2174 <div class="list-title"> 2175 <h4>List of issues</h4> 2176 </div> 2177 <div class="footer-menu-wrap"> 2178 <div class="menu-list-out-issues-container"><ul id="footer-issues-menu" class="menu"><li id="menu-item-386" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-386"><a href="https://mlfa.org/issue-no-fly-list/">No Fly Lists</a></li> 2179<li id="menu-item-387" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-387"><a href="https://mlfa.org/issue-fbi-undercover-sting-operations/">FBI Sting Ops.</a></li> 2180<li id="menu-item-388" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-388"><a href="https://mlfa.org/issue-ssss-watchlist/">SSSS/Watchlist</a></li> 2181<li id="menu-item-389" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-389"><a href="https://mlfa.org/issue-federal-court-litigation-for-delayed-denied-applications/">Denied/Delayed Immigration</a></li> 2182<li id="menu-item-390" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-390"><a href="https://mlfa.org/issue-fbi-informants-surveillance/">FBI Informants</a></li> 2183</ul></div> </div> 2184 </div> 2185 </div> 2186 </div> 2187 <div class="footer-search-main"> 2188 <div class="footer-search-box"> 2189 <form role="search" method="get" class="search-form" action="https://mlfa.org/"> 2190 <label> 2191 <span class="screen-reader-text">Search for:</span> 2192 <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> 2193 </label> 2194 <input type="submit" class="search-submit" value="Search" /> 2195 </form> </div> 2196 </div> 2197 </div>
2198 </div> 2199 <div class="columns contact-col"> 2200 <div class="inner-col contact-info-col"> 2201 <div class="list-title"> 2202 <h4>Contact Us</h4> 2203 </div> 2204 <div class="contact-menu"> 2205 <div class="contact-item"> 2206 <div class="contact-icon"> 2207 <img src="https://mlfa.org/wp-content/uploads/2022/11/address.svg" class="attachment-full size-full" alt="address" decoding="async" /> </div> 2208 <div class="contact-title"> 2209 Address </div> 2210 <div class="contact-description"> 2211 <a href="https://maps.app.goo.gl/LaK7zCvdeXpTiVh27"> 2212 <address>100 N. Central Expy, Suite 1010 Richardson, TX 75080 </address> </a> 2213 </div> 2214 </div> 2215 <div class="contact-item"> 2216 <div class="contact-icon"> 2217 <img src="https://mlfa.org/wp-content/uploads/2022/11/email.svg" class="attachment-full size-full" alt="email" decoding="async" /> </div> 2218 <div class="contact-title"> 2219 General Inquiry </div> 2220 <div class="contact-description"> 2221 <a href="/cdn-cgi/l/email-protection#91f8fff7fed1fcfdf7f0bffee3f6"> 2222 <span class="__cf_email__" data-cfemail="b5dcdbd3daf5d8d9d3d49bdac7d2">[email protected]</span> </a> 2223 </div> 2224 </div> 2225 <div class="contact-item"> 2226 <div class="contact-icon"> 2227 <img src="https://mlfa.org/wp-content/uploads/2022/11/email.svg" class="attachment-full size-full" alt="email" decoding="async" /> </div> 2228 <div class="contact-title"> 2229 Media Press Inquiries </div> 2230 <div class="contact-description"> 2231 <a href="/cdn-cgi/l/email-protection#0b666e6f626a4b66676d6a2564796c"> 2232 <span class="__cf_email__" data-cfemail="ec818988858dac81808a8dc2839e8b">[email protected]</span> </a> 2233 </div> 2234 </div> 2235 <div class="contact-item"> 2236 <div class="contact-icon"> 2237 <img src="https://mlfa.org/wp-content/uploads/2022/11/email.svg" class="attachment-full size-full" alt="email" decoding="async" /> </div> 2238 <div class="contact-title"> 2239 Training & Education </div> 2240 <div class="contact-description"> 2241 <a href="/cdn-cgi/l/email-protection#790d0b18101710171e3914151f1857160b1e"> 2242 <span class="__cf_email__" data-cfemail="483c3a29212621262f0825242e2966273a2f">[email protected]</span> </a> 2243 </div> 2244 </div> 2245 <div class="contact-item"> 2246 <div class="contact-icon"> 2247 <img src="https://mlfa.org/wp-content/uploads/2022/11/Call.svg" class="attachment-full size-full" alt="Call" decoding="async" /> </div> 2248 <div class="contact-title"> 2249 Phone </div> 2250 <div class="contact-description"> 2251 <a href="tel:9723319021"> 2252 (972) 331-9021 </a> 2253 </div> 2254 </div> 2255 </div> 2256 <div class="footer-donate"> 2257 <a class="donate-btn" href="/donate" target="_self"> 2258 <span>Donate Today</span> <img src="https://mlfastg.wpengine.com/wp-content/uploads/2022/11/dark-heart-icon.svg" alt=""> 2259 </a> 2260 </div> 2261 </div> 2262 </div> 2263 </div> 2264 2265 </div> 2266 <div class="footer-bottom-bar"> 2267 <div class="flex-row justify-content-between align-items-center"> 2268 <div class="columns"> 2269 <div class="inner-col copy-right-text"> 2270 <p>Copyright © 2023 MLFA - All Rights Reserved <span class="px-2">|</span> <a href="https://mlfa.org/privacy-policy">Privacy</a> <span class="px-2">|</span> <a href="https://mlfa.org/terms-and-conditions/">Terms</a> <span class="px-2">|</span> <a href="https://mlfa.org/cookie-policy/">Cookies</a> <span class="px-2">|</span> <a href="#" class="termly-display-preferences">Preferences</a></p> 2271 </div> 2272 </div> 2273 <div class="columns"> 2274 <div class="inner-col"> 2275 <ul class="socialmenu"> 2276 <li class="social-item"> 2277 <a href="https://www.facebook.com/muslimlegalfund" target="_blank"> 2278 <img src="https://mlfa.org/wp-content/uploads/2022/11/facebook.svg" class="attachment-full size-full" alt="facebook" decoding="async" /> </a> 2279 </li> 2280 <li class="social-item"> 2281 <a href="https://twitter.com/MLFA" target="_blank"> 2282 <img src="https://mlfa.org/wp-content/uploads/2022/11/twitter.svg" class="attachment-full size-full" alt="twitter" decoding="async" /> </a> 2283 </li> 2284 <li class="social-item"> 2285 <a href="https://www.instagram.com/muslimlegalfund/" target="_blank"> 2286 <img src="https://mlfa.org/wp-content/uploads/2022/11/instagram.svg" class="attachment-full size-full" alt="instagram" decoding="async" /> </a> 2287 </li> 2288 <li class="social-item"> 2289 <a href="https://www.youtube.com/mlfavideos" target="_blank"> 2290 <img src="https://mlfa.org/wp-content/uploads/2022/11/youtube.svg" class="attachment-full size-full" alt="youtube" decoding="async" /> </a> 2291 </li> 2292 </ul> 2293 </div>
2294 </div> 2295 </div> 2296 </div> 2297 </div> 2298</footer><!-- #colophon --> 2299</main><!-- #page -->
vendor: 110 bytes, lines 2299-2301
2299 2300 2301<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
2301<script> 2302 (function(win) { 2303 win.egProps = { 2304 campaigns: [{ 2305 campaignId: '476373', 2306 customDomain: 'support.mlfa.org', 2307 donation: { 2308 inline: { 2309 urlParams: {}, 2310 elementSelector: '.classy-inline-embed' 2311 } 2312 } 2313 }] 2314 } 2315 2316 win.document.body.appendChild(makeEGScript()) 2317 2318 /** 2319 * Create the embed script 2320 */ 2321 function makeEGScript() { 2322 var egScript = win.document.createElement('script') 2323 egScript.setAttribute('type', 'text/javascript') 2324 egScript.setAttribute('async', 'true') 2325 egScript.setAttribute('src', 'https://sdk.classy.org/embedded-giving.js') 2326 2327 return egScript 2328 } 2329 2330 /** 2331 * Read URL Params from your website. This could potentially 2332 * be included in the embed snippet 2333 */ 2334 function readURLParams() { 2335 const searchParams = new URLSearchParams(location.search) 2336 2337 const validUrlParams = ['c_src', 'c_src2'] 2338 2339 return validUrlParams.reduce(function toURLParamsMap(urlParamsSoFar, validKey) { 2340 const value = searchParams.get(validKey) 2341 return value === null ? urlParamsSoFar : { 2342 ...urlParamsSoFar, 2343 [validKey]: value 2344 } 2345 }, {}) 2346 } 2347 })(window) 2348</script>
vendor: 1 bytes, line 2348
2348
2349<script> 2350 jQuery(document).ready(function($) { 2351 $('.count').each(function() { 2352 $(this).prop('Counter', 0).animate({ 2353 Counter: $(this).text() 2354 }, { 2355 duration: 8000, 2356 easing: 'swing', 2357 step: function(now) { 2358 $(this).text(Math.ceil(now)); 2359 } 2360 }); 2361 }); 2362 }); 2363</script>
vendor: 1 bytes, line 2363
2363
2364<script type="speculationrules"> 2365{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/mlfa/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 2366</script>
2366 2367
2367<script> 2368 const lazyloadRunObserver = () => { 2369 const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); 2370 const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { 2371 entries.forEach( ( entry ) => { 2372 if ( entry.isIntersecting ) { 2373 let lazyloadBackground = entry.target; 2374 if( lazyloadBackground ) { 2375 lazyloadBackground.classList.add( 'e-lazyloaded' ); 2376 } 2377 lazyloadBackgroundObserver.unobserve( entry.target ); 2378 } 2379 }); 2380 }, { rootMargin: '200px 0px 200px 0px' } ); 2381 lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { 2382 lazyloadBackgroundObserver.observe( lazyloadBackground ); 2383 } ); 2384 }; 2385 const events = [ 2386 'DOMContentLoaded', 2387 'elementor/lazyload/observe', 2388 ]; 2389 events.forEach( ( event ) => { 2390 document.addEventListener( event, lazyloadRunObserver ); 2391 } ); 2392 </script>
2392 2393 <div id="fb-root"></div> 2394
2394<script id="wp-hooks-js" src="https://mlfa.org/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 2394
2394
2395<script id="wp-i18n-js" src="https://mlfa.org/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 2395
2395
2396<script id="wp-i18n-js-after"> 2397wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 2398//# sourceURL=wp-i18n-js-after 2399</script>
vendor: 1 bytes, line 2399
2399
2400<script id="swv-js" src="https://mlfa.org/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.6"></script>
vendor: 1 bytes, line 2400
2400
2401<script id="contact-form-7-js-before"> 2402var wpcf7 = { 2403 "api": { 2404 "root": "https:\/\/mlfa.org\/wp-json\/", 2405 "namespace": "contact-form-7\/v1" 2406 }, 2407 "cached": 1 2408}; 2409//# sourceURL=contact-form-7-js-before 2410</script>
vendor: 1 bytes, line 2410
2410
2411<script id="contact-form-7-js" src="https://mlfa.org/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.6"></script>
vendor: 1 bytes, line 2411
2411
2412<script id="powertip-js" src="https://mlfa.org/wp-content/plugins/devvn-image-hotspot/frontend/js/jquery.powertip.min.js?ver=1.2.0"></script>
vendor: 1 bytes, line 2412
2412
2413<script id="maps-points-js" src="https://mlfa.org/wp-content/plugins/devvn-image-hotspot/frontend/js/maps_points.js?ver=1.3.0"></script>
vendor: 1 bytes, line 2413
2413
2414<script id="audioigniter-js-extra"> 2415var aiStrings = {"play_title":"Play %s","pause_title":"Pause %s","previous":"Previous track","next":"Next track","toggle_list_repeat":"Toggle track listing repeat","toggle_track_repeat":"Toggle track repeat","toggle_list_visible":"Toggle track listing visibility","buy_track":"Buy this track","download_track":"Download this track","volume_up":"Volume Up","volume_down":"Volume Down","open_track_lyrics":"Open track lyrics","set_playback_rate":"Set playback rate","skip_forward":"Skip forward","skip_backward":"Skip backward","shuffle":"Shuffle"}; 2416var aiStats = {"enabled":"","apiUrl":"https://mlfa.org/wp-json/audioigniter/v1"}; 2417//# sourceURL=audioigniter-js-extra 2418</script>
vendor: 1 bytes, line 2418
2418
2419<script id="audioigniter-js" src="https://mlfa.org/wp-content/plugins/audioigniter/player/build/app.js?ver=2.0.4"></script>
vendor: 1 bytes, line 2419
2419
2420<script id="mlfa-navigation-js" src="https://mlfa.org/wp-content/themes/mlfa/js/navigation.js?ver=1.0.0"></script>
vendor: 1 bytes, line 2420
2420
2421<script id="slider_scripts-js" src="https://mlfa.org/wp-content/themes/mlfa/assets/js/swiper-bundle.min.js?ver=1.0.0"></script>
vendor: 1 bytes, line 2421
2421
2422<script id="slick_js-js" src="https://mlfa.org/wp-content/themes/mlfa/assets/js/slick.min.js?ver=1.0.0"></script>
vendor: 1 bytes, line 2422
2422
2423<script id="custom_js-js" src="https://mlfa.org/wp-content/themes/mlfa/assets/js/scripts.js?ver=1.0.0"></script>
vendor: 1 bytes, line 2423
2423
2424<script id="the_champ_ss_general_scripts-js" src="https://mlfa.org/wp-content/plugins/super-socializer/js/front/social_login/general.js?ver=7.14.5"></script>
vendor: 1 bytes, line 2424
2424
2425<script id="the_champ_fb_sdk-js" src="https://mlfa.org/wp-content/plugins/super-socializer/js/front/facebook/sdk.js?ver=7.14.5"></script>
vendor: 1 bytes, line 2425
2425
2426<script id="the_champ_fb_commenting-js" src="https://mlfa.org/wp-content/plugins/super-socializer/js/front/facebook/commenting.js?ver=7.14.5"></script>
vendor: 1 bytes, line 2426
2426
2427<script id="the_champ_share_counts-js" src="https://mlfa.org/wp-content/plugins/super-socializer/js/front/sharing/sharing.js?ver=7.14.5"></script>
vendor: 1 bytes, line 2427
2427
2428<script id="wpcf7cf-scripts-js-extra"> 2429var wpcf7cf_global_settings = {"ajaxurl":"https://mlfa.org/wp-admin/admin-ajax.php"}; 2430//# sourceURL=wpcf7cf-scripts-js-extra 2431</script>
vendor: 1 bytes, line 2431
2431
2432<script id="wpcf7cf-scripts-js" src="https://mlfa.org/wp-content/plugins/cf7-conditional-fields/js/scripts.js?ver=2.7.10"></script>
vendor: 1 bytes, line 2432
2432
2433<script id="eael-general-js-extra"> 2434var localize = {"ajaxurl":"https://mlfa.org/wp-admin/admin-ajax.php","nonce":"52c83b06ef","i18n":{"added":"Added ","compare":"Compare","loading":"Loading..."},"eael_translate_text":{"required_text":"is a required field","invalid_text":"Invalid","billing_text":"Billing","shipping_text":"Shipping","fg_mfp_counter_text":"of"},"page_permalink":"https://mlfa.org/gala/","cart_redirectition":"","cart_page_url":"","el_breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}}}; 2435//# sourceURL=eael-general-js-extra 2436</script>
vendor: 1 bytes, line 2436
2436
2437<script id="eael-general-js" src="https://mlfa.org/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/js/view/general.min.js?ver=6.6.11"></script>
vendor: 1 bytes, line 2437
2437
2438<script id="wp-emoji-settings" type="application/json"> 2439{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://mlfa.org/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 2440</script>
vendor: 1 bytes, line 2440
2440
2441<script type="module"> 2442/*! This file is auto-generated */ 2443var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 2444//# sourceURL=https://mlfa.org/wp-includes/js/wp-emoji-loader.min.js 2445</script>
2445 2446</body> 2447 2448</html> 2449 2450<!-- Cache served by breeze CACHE - Last modified: Sat, 03 Oct 2026 05:13:50 GMT -->
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.