PageSourceSearch

https://africa-fest-blueprint.lovable.app/about

html africa-fest-blueprint.lovable.app collected 2026-10-03 03:18:21 UTC 27,382 bytes, 256 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/__l5e/assets-v1/fb80154f-0345-4f6e-ab7d-d2f2d2ffede9/waff-logo.png"/><link rel="preload" as="image" href="/__l5e/assets-v1/56dfdcda-0dbf-4cab-804f-9b5bdf639d20/waff-10905134_54172714483_o.jpg"/><link rel="stylesheet" href="/assets/styles-D5FwP-U7.css" data-precedence="default"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..700;1,9..144,400..600&amp;family=Manrope:wght@400;500;700&amp;display=swap" data-precedence="default"/><title>About Watch Africa Film Festival | Our Story</title><meta name="author" content="Watch Africa Film Festival"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Since 2013, Watch Africa Film Festival has been Wales&#x27;s annual celebration of African cinema. Our story, vision and four pillars."/><meta property="og:title" content="About Watch Africa Film Festival | Our Story"/><meta property="og:description" content="Rooted in Wales, connected across Africa and its diaspora. Read the story behind Wales&#x27;s only African film festival."/><link rel="modulepreload" href="/assets/index-DCKwLFpJ.js"/><link rel="modulepreload" href="/assets/about-BiFYFrUw.js"/><link rel="modulepreload" href="/assets/waff-witch6_49885831723_o.jpg.asset-C2zXl-EB.js"/><link rel="modulepreload" href="/assets/waff-watch-africa-2014_29912584223_o.jpg.asset-AZNsmv8x.js"/><link rel="modulepreload" href="/assets/waff-10905161_54172747864_o.jpg.asset-BxXBtXRF.js"/><link rel="modulepreload" href="/assets/waff-10905125_54172887265_o.jpg.asset-gZ9wxnG-.js"/><link rel="modulepreload" href="/assets/waff-15_49378461923_o.jpg.asset-DexdpqsO.js"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/>
2<style>
3	#lovable-badge {
4		--badge-bg: #1b1b1b;
5		--badge-text: #c5c1b9;
6		--badge-text-hover: #dcdad5;
7		--badge-radius: 6px;
8		--badge-padding: 8px;
9		--badge-gap: 6px;
10		--badge-shadow: 
11			0 0 0 1px rgba(0, 0, 0, 0.88),
12			0 1px 0 0 rgba(0, 0, 0, 0.04),
13			0 2px 2px -1px rgba(0, 0, 0, 0.08),
14			0 4px 4px -2px rgba(0, 0, 0, 0.08),
15			0 8px 8px -4px rgba(0, 0, 0, 0.08),
16			0 16px 16px -8px rgba(0, 0, 0, 0.08);
17		--badge-transition-duration: 0.2s;
18		--badge-transition-easing: cubic-bezier(0.16, 1, 0.32, 1);
19		--focus-color: #575ECF;
20		--focus-offset: 2px;
21		--focus-width: 2px;
22		
23		position: fixed;
24		bottom: 12px;
25		right: 12px;
26		height: 24px;
27		display: flex;
28		align-items: center;
29		z-index: 1000000;
30		background-color: var(--badge-bg) !important;
31		color: var(--badge-text) !important;
32		border-radius: var(--badge-radius);
33		box-shadow: var(--badge-shadow) !important;
34		font-size: 12px;
35		font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
36		font-weight: 400 !important;
37		text-transform: none !important;
38		font-feature-settings: normal !important;
39		transform: translateZ(0);
40		will-change: transform, opacity;
41		transition: opacity var(--badge-transition-duration) var(--badge-transition-easing);
42	}
43
44	#lovable-badge.closing {
45		opacity: 0;
46		pointer-events: none;
47	}
48
49	#lovable-badge-cta {
50		display: flex;
51		align-items: baseline;
52		gap: var(--badge-gap);
53		box-sizing: border-box;
54		padding: 4px var(--badge-padding) 0;
55		height: 100%;
56		color: inherit;
57		text-decoration: none;
58		white-space: nowrap;
59		border-radius: var(--badge-radius) 0 0 var(--badge-radius);
60		transition: 
61			background-color var(--badge-transition-duration) ease,
62			color var(--badge-transition-duration) ease,
63			transform 0.1s ease;
64	}
65
66	#lovable-badge-cta:hover {
67		background: rgba(255, 255, 255, 0.04);
68		color: var(--badge-text-hover);
69	}
70
71	#lovable-badge-cta:active {
72		transform: scale(0.98);
73	}
74
75	#lovable-badge-cta:focus {
76		outline: none;
77	}
78
79	#lovable-badge-cta:focus-visible {
80		outline: var(--focus-width) solid var(--focus-color);
81		outline-offset: var(--focus-offset);
82		z-index: 1;
83	}
84
85	#lovable-badge-text {
86		line-height: 1;
87	}
88
89	/* The wordmark baseline sits at y=12 of the 16px logo; an empty 12px box
90	   makes that the flex baseline so the text aligns to it on any system font. */
91	#lovable-badge-logo {
92		position: relative;
93		display: block;
94		width: 52px;
95		height: 12px;
96	}
97
98	#lovable-badge-logo svg {
99		position: absolute;
100		top: 0;
101		left: 0;
102	}
103
104	#lovable-badge-divider {
105		width: 1px;
106		height: 24px;
107		background-color: rgba(255, 255, 255, 0.04);
108		flex-shrink: 0;
109	}
110
111	#lovable-badge-close {
112		width: 24px;
113		height: 24px;
114		min-width: 24px;
115		min-height: 24px;
116		cursor: pointer;
117		background: none;
118		border: none;
119		padding: 0;
120		display: flex;
121		align-items: center;
122		justify-content: center;
123		border-radius: 0 var(--badge-radius) var(--badge-radius) 0;
124		flex-shrink: 0;
125		transition: 
126			background-color var(--badge-transition-duration) ease,
127			transform 0.1s ease;
128	}
129
130	#lovable-badge-close:hover {
131		background: rgba(255, 255, 255, 0.04);
132	}
133
134	#lovable-badge-close:active {
135		transform: scale(0.92);
136	}
137
138	#lovable-badge-close:focus {
139		outline: none;
140	}
141
142	#lovable-badge-close:focus-visible {
143		outline: var(--focus-width) solid var(--focus-color);
144		outline-offset: calc(var(--focus-offset) * -1);
145		z-index: 1;
146	}
147
148	#lovable-badge-close svg path {
149		fill: var(--badge-text);
150		transition: fill var(--badge-transition-duration) ease;
151	}
152
153	#lovable-badge-close:hover svg path {
154		fill: var(--badge-text-hover);
155	}
156
157	@media (prefers-reduced-motion: reduce) {
158		#lovable-badge,
159		#lovable-badge-cta,
160		#lovable-badge-close,
161		#lovable-badge-close svg path {
162			transition: none;
163		}
164		
165		#lovable-badge-cta:active,
166		#lovable-badge-close:active {
167			transform: none;
168		}
169	}
170
171	@media (prefers-contrast: high) {
172		#lovable-badge {
173			--badge-bg: #000;
174			--badge-text: #fff;
175			--badge-text-hover: #fff;
176			border: 2px solid currentColor;
177		}
178		
179		#lovable-badge-cta:focus-visible,
180		#lovable-badge-close:focus-visible {
181			outline-width: 3px;
182		}
183	}
184</style>
185<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
185<meta name="twitter:title" content="About Watch Africa Film Festival | Our Story"><meta name="twitter:description" content="Rooted in Wales, connected across Africa and its diaspora. Read the story behind Wales&amp;#x27;s only African film festival."><meta property="og:image" content="https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/530b2e35386d39dd00762eadcacbd921/id-preview-47742be1--3bdae4f2-ec24-42a4-8342-549ce39837a5.lovable.app-1788249015158.png"><meta name="twitter:image" content="https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/530b2e35386d39dd00762eadcacbd921/id-preview-47742be1--3bdae4f2-ec24-42a4-8342-549ce39837a5.lovable.app-1788249015158.png"></head><body><header class="w-full border-b border-border bg-background"><div class="waff-inner flex items-center justify-between gap-6 py-4"><a href="/" class="shrink-0"><img src="/__l5e/assets-v1/fb80154f-0345-4f6e-ab7d-d2f2d2ffede9/waff-logo.png" alt="Watch Africa Film Festival" width="600" height="450" class="h-12 w-auto brightness-0 invert md:h-14"/></a><nav class="hidden items-center gap-6 xl:flex"><a class="waff-h4 text-foreground no-underline hover:text-primary active" href="/about" data-status="active" aria-current="page">About</a><a href="/programme" class="waff-h4 text-foreground no-underline hover:text-primary">Programme</a><a href="/guests" class="waff-h4 text-foreground no-underline hover:text-primary">Guests</a><a href="/archive" class="waff-h4 text-foreground no-underline hover:text-primary">Archive</a><a href="/awards" class="waff-h4 text-foreground no-underline hover:text-primary">Awards</a><a href="/submit" class="waff-h4 text-foreground no-underline hover:text-primary">Submit</a><a href="/volunteer" class="waff-h4 text-foreground no-underline hover:text-primary">Volunteer</a><a href="/partner" class="waff-h4 text-foreground no-underline hover:text-primary">Partner</a><a href="/become-a-vendor" class="waff-h4 text-foreground no-underline hover:text-primary">Become a Vendor</a><a href="/screenings" class="waff-h4 text-foreground no-underline hover:text-primary">Screenings</a><a href="/club" class="waff-h4 text-foreground no-underline hover:text-primary">WAFF Club</a><a href="/contact" class="waff-btn">Contact</a></nav><details class="relative xl:hidden"><summary class="waff-h4 cursor-pointer list-none border border-border px-4 py-2 text-foreground">Menu</summary><div class="absolute right-0 z-50 mt-3 w-64 border border-border bg-card p-5"><a href="/" class="waff-h4 mb-3 block text-foreground no-underline">Home</a><a class="waff-h4 mb-3 block text-foreground no-underline active" href="/about" data-status="active" aria-current="page">About</a><a href="/programme" class="waff-h4 mb-3 block text-foreground no-underline">Programme</a><a href="/guests" class="waff-h4 mb-3 block text-foreground no-underline">Guests &amp; Speakers</a><a href="/archive" class="waff-h4 mb-3 block text-foreground no-underline">Festival Archive</a><a href="/awards" class="waff-h4 mb-3 block text-foreground no-underline">Awards &amp; Past Winners</a><a href="/submit" class="waff-h4 mb-3 block text-foreground no-underline">Submit Your Film</a><a href="/volunteer" class="waff-h4 mb-3 block text-foreground no-underline">Volunteer</a><a href="/partner" class="waff-h4 mb-3 block text-foreground no-underline">Partner With Us</a><a href="/become-a-vendor" class="waff-h4 mb-3 block text-foreground no-underline">Become a Vendor</a><a href="/screenings" class="waff-h4 mb-3 block text-foreground no-underline">Year-Round Screenings</a><a href="/club" class="waff-h4 mb-3 block text-foreground no-underline">WAFF Club</a><a href="/contact" class="waff-h4 block text-foreground no-underline">Contact</a></div></details></div></header><!--$--><main><section class="waff-section-tight w-full pt-36"><div class="waff-inner"><p class="waff-eyebrow">About</p><h1 class="waff-h1 max-w-4xl">Our Story</h1><p class="waff-lede mt-8 max-w-2xl">Africa is not one story. It’s thousands of languages, cultures, cities, traditions, futures and imaginations.</p></div></section><section class="w-full"><div class="waff-inner"><img src="/__l5e/assets-v1/56dfdcda-0dbf-4cab-804f-9b5bdf639d20/waff-10905134_54172714483_o.jpg" alt="A filmmaker panel on stage in front of the festival screen at Chapter Arts Centre" width="1920" height="1000" class="waff-img-wide"/></div></section><section class="waff-section w-full"><div class="waff-inner"><div class="waff-split"><div class="waff-panel-plain"><h2 class="waff-h2">Through film, every story becomes an invitation to see the world through someone else’s eyes.</h2></div><div class="waff-panel-plain"><p class="waff-text">Watch Africa Film Festival is Wales’s annual celebration of African cinema and storytelling. This September, filmmakers, artists, communities and audiences come together to watch films, exchange ideas, make, learn and celebrate.</p><p class="waff-text mt-5">
185Rooted in Wales and connected across Africa and its global diaspora, WAFF creates space for stories that entertain, challenge, celebrate and inspire. Stories that spark conversation. Stories that build understanding. Stories that remind us that cinema can connect people across borders, generations and cultures.</p><p class="waff-text mt-5">Since 2013, the festival has created a platform where powerful storytelling, cultural exchange and community come together through film.</p><p class="waff-text mt-5">Whether you’re discovering African cinema for the first time or returning to stories that feel like home, this is your invitation.</p><p class="waff-quote mt-8">Express Your Africa.</p></div></div></div></section><section class="waff-section-tight waff-ink w-full"><div class="waff-inner"><div class="waff-grid-4 text-center"><div class="waff-panel-plain"><p class="waff-stat-figure">13</p><p class="waff-text-light mt-3">Years</p></div><div class="waff-panel-plain"><p class="waff-stat-figure">168</p><p class="waff-text-light mt-3">Films</p></div><div class="waff-panel-plain"><p class="waff-stat-figure">10,000+</p><p class="waff-text-light mt-3">Viewers</p></div><div class="waff-panel-plain"><p class="waff-stat-figure">1</p><p class="waff-text-light mt-3">Wales’s only African film festival</p></div></div></div></section><section class="waff-section w-full"><div class="waff-inner"><div class="waff-grid-3"><div class="waff-panel"><p class="waff-eyebrow">When</p><h3 class="waff-h3 mt-3">11–13 September 2026</h3></div><div class="waff-panel"><p class="waff-eyebrow">Where</p><h3 class="waff-h3 mt-3">Chapter Arts Centre, Cardiff</h3></div><div class="waff-panel"><p class="waff-eyebrow">Theme</p><h3 class="waff-h3 mt-3">Express Your Africa</h3></div></div><p class="waff-text mt-10 max-w-3xl">Feature films. Short films. Animation. Documentary. Experimental cinema — from emerging voices to internationally recognised filmmakers. Alongside the screen: workshops, talks, live music and cultural events across the weekend.</p></div></section><section class="waff-section waff-muted-band w-full"><div class="waff-inner"><div class="waff-split"><div class="waff-panel-plain"><p class="waff-eyebrow">Our Vision</p><h2 class="waff-h2">To become the UK’s leading African film festival.</h2><p class="waff-text mt-7">Recognised for championing African filmmakers, nurturing new voices, and creating unforgettable cultural experiences where everyone feels welcome.</p></div><div class="waff-panel-plain"><img src="/__l5e/assets-v1/f86e1831-5950-451d-8793-143c31a951cb/waff-witch6_49885831723_o.jpg" alt="A packed post-screening discussion at Watch Africa Film Festival" width="1200" height="900" loading="lazy" class="waff-img-wide"/></div></div></div></section><section class="waff-section w-full"><div class="waff-inner"><p class="waff-eyebrow">Our Pillars</p><h2 class="waff-h2 max-w-3xl">Four commitments that shape everything we programme.</h2><div class="waff-grid-2 mt-14"><div class="waff-panel"><h3 class="waff-h3">Cinema</h3><p class="waff-text mt-4">We champion bold African filmmaking in all its forms — feature, short, animation, documentary, experimental. From emerging voices to internationally recognised filmmakers.</p></div><div class="waff-panel"><h3 class="waff-h3">Community</h3><p class="waff-text mt-4">WAFF is more than a film festival. It’s a gathering — a place where communities meet, conversations begin, and people feel they belong.</p></div><div class="waff-panel"><h3 class="waff-h3">Creativity</h3><p class="waff-text mt-4">Film is only the beginning. Workshops, masterclasses, music, art, making, discussion — everyone is invited to participate.</p></div><div class="waff-panel"><h3 class="waff-h3">Connection</h3><p class="waff-text mt-4">WAFF strengthens cultural relationships between Wales, Africa and the African diaspora — creating opportunities for collaboration, learning and lasting partnerships through cinema.</p></div></div></div></section><section class="waff-section waff-muted-band w-full"><div class="waff-inner">
185<div class="waff-grid-3"><div class="waff-panel-plain"><img src="/__l5e/assets-v1/804ecb3b-eb88-4cf5-b508-9d5d3f9bd49c/waff-10905125_54172887265_o.jpg" alt="Panellists in conversation after a festival screening" width="1400" height="1000" loading="lazy" class="waff-img-wide"/><h3 class="waff-h4 mt-6">Workshops and making</h3><p class="waff-text mt-3">Storytelling, dance, music and mask-making sessions open to all experience levels.</p></div><div class="waff-panel-plain"><img src="/__l5e/assets-v1/27a93e6e-fc87-4b86-97ac-f5113045044e/waff-10905161_54172747864_o.jpg" alt="Two festival-goers posing with the Watch Africa photo frame in the foyer" width="1400" height="1000" loading="lazy" class="waff-img-wide"/><h3 class="waff-h4 mt-6">Conversation and exchange</h3><p class="waff-text mt-3">Q&amp;As, talks and Short Snacks — because good conversation happens over good food.</p></div><div class="waff-panel-plain"><img src="/__l5e/assets-v1/2d2e682d-d21e-4be1-9a83-7c0eb3747ff4/waff-watch-africa-2014_29912584223_o.jpg" alt="Live spoken word and music performance during the festival weekend" width="1200" height="900" loading="lazy" class="waff-img-wide"/><h3 class="waff-h4 mt-6">Celebration</h3><p class="waff-text mt-3">Live music, dance, market traders and parties across all three festival days.</p></div></div></div></section><section class="waff-section w-full"><div class="waff-inner"><div class="waff-split"><div class="waff-panel-plain"><img src="/__l5e/assets-v1/e17c3553-7591-4826-b2ac-24e565d0d4a8/waff-15_49378461923_o.jpg" alt="Audience seated in the red cinema for a monthly Watch Africa screening" width="1400" height="1000" loading="lazy" class="waff-img-wide"/></div><div class="waff-panel-plain"><p class="waff-eyebrow">Beyond September</p><h2 class="waff-h2">A festival that runs all year.</h2><p class="waff-text mt-7">Monthly screenings, WAFF Club, workshops and partner events keep African cinema on Cardiff screens between editions.</p><div class="mt-9 flex flex-wrap gap-4"><a href="/screenings" class="waff-btn">Monthly screenings</a><a href="/club" class="waff-btn-outline">WAFF Club</a></div></div></div></div></section><section class="waff-section waff-ink w-full"><div class="waff-inner text-center"><h2 class="waff-h1 mx-auto max-w-3xl text-ink-foreground">There’s a place for you here.</h2><p class="waff-lede-light mx-auto mt-7 max-w-2xl">11–13 September 2026 · Chapter Arts Centre, Cardiff.</p><div class="mt-10 flex flex-wrap justify-center gap-4"><a href="/programme" class="waff-btn">See the programme</a><a href="/contact" class="waff-btn-light">Get in touch</a></div></div></section></main>
185<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
185<!--/$--><footer class="waff-ink w-full"><div class="waff-inner py-16"><div class="waff-grid-4 text-left"><div class="waff-panel-plain"><img src="/__l5e/assets-v1/fb80154f-0345-4f6e-ab7d-d2f2d2ffede9/waff-logo.png" alt="Watch Africa Film Festival" width="600" height="450" loading="lazy" class="mb-6 h-14 w-auto brightness-0 invert"/><p class="waff-text-light">Wales’s annual celebration of African cinema and storytelling.</p><p class="waff-text-light mt-4">11–13 September 2026<br/>Chapter Arts Centre, Cardiff</p></div><div class="waff-panel-plain"><h2 class="waff-meta-light mb-5">Festival</h2><a class="waff-text-light mb-2 block no-underline active" href="/about" data-status="active" aria-current="page">About</a><a href="/programme" class="waff-text-light mb-2 block no-underline">Programme</a><a href="/guests" class="waff-text-light mb-2 block no-underline">Guests &amp; Speakers</a><a href="/archive" class="waff-text-light mb-2 block no-underline">Festival Archive</a><a href="/awards" class="waff-text-light block no-underline">Awards &amp; Past Winners</a></div><div class="waff-panel-plain"><h2 class="waff-meta-light mb-5">Get Involved</h2><a href="/submit" class="waff-text-light mb-2 block no-underline">Submit Your Film</a><a href="/volunteer" class="waff-text-light mb-2 block no-underline">Volunteer</a><a href="/partner" class="waff-text-light mb-2 block no-underline">Partner With Us</a><a href="/become-a-vendor" class="waff-text-light mb-2 block no-underline">Become a Vendor</a><a href="/screenings" class="waff-text-light mb-2 block no-underline">Year-Round Screenings</a><a href="/club" class="waff-text-light block no-underline">WAFF Club</a></div><div class="waff-panel-plain"><h2 class="waff-meta-light mb-5">Contact</h2><p class="waff-text-light mb-2">[email protected]</p><p class="waff-text-light mb-2">[email protected]</p><p class="waff-text-light mb-6">[email protected]</p><a href="/contact" class="waff-link-light">Get in touch</a></div></div><hr class="waff-rule-light my-12"/><p class="waff-text-light">© 2026 Watch Africa Film Festival. Africa’s Stories. Wales’s Screen.</p></div></footer>
185<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-DCKwLFpJ.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-DCKwLFpJ.js"}}]},"/about":$R[8]={preloads:$R[9]=["/assets/about-BiFYFrUw.js","/assets/waff-witch6_49885831723_o.jpg.asset-C2zXl-EB.js","/assets/waff-watch-africa-2014_29912584223_o.jpg.asset-AZNsmv8x.js","/assets/waff-10905161_54172747864_o.jpg.asset-BxXBtXRF.js","/assets/waff-10905125_54172887265_o.jpg.asset-gZ9wxnG-.js","/assets/waff-15_49378461923_o.jpg.asset-DexdpqsO.js"]}}},matches:$R[10]=[$R[11]={i:"__root__�",u:1790997501739,s:"success",ssr:!0},$R[12]={i:"�about�about",u:1790997501739,s:"success",ssr:!0}],lastMatchId:"�about�about"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
185<script type="module" async="" src="/assets/index-DCKwLFpJ.js"></script>
185
186<aside
187	id="lovable-badge"
188	role="complementary"
189	dir="ltr"
190	lang="en"
191	aria-label="Edit with Lovable">
192	<a
193		id="lovable-badge-cta" 
194		target="_blank" 
195		href="https://lovable.dev/projects/lovp_57x8w20pb28ks8b6tscm4zxsy4?utm_source=lovable-badge"
196		rel="noopener nofollow"
197		aria-label="Edit with Lovable">
198		<span id="lovable-badge-text">Edit with</span>
199		<span id="lovable-badge-logo"><svg xmlns="http://www.w3.org/2000/svg" width="52" height="16" fill="none" viewBox="0 0 52 16">
200  <path fill="#FCFBF8" fill-rule="evenodd" d="M20.318 5.25c.643 0 1.206.14 1.69.418a2.81 2.81 0 0 1 1.118 1.191c.266.513.4 1.115.4 1.807s-.134 1.296-.4 1.812a2.81 2.81 0 0 1-1.118 1.193c-.484.278-1.047.418-1.69.418s-1.208-.14-1.695-.418a2.85 2.85 0 0 1-1.125-1.193c-.262-.516-.393-1.12-.393-1.812s.131-1.294.393-1.807a2.848 2.848 0 0 1 1.125-1.191c.487-.279 1.052-.418 1.695-.418Zm0 1.425c-.27 0-.504.076-.7.228-.193.147-.34.37-.443.67-.102.295-.153.66-.153 1.093 0 .435.05.801.153 1.1.102.3.25.524.443.676.196.147.43.22.7.22.27 0 .502-.073.694-.22.193-.152.341-.375.443-.67.103-.299.153-.667.153-1.106 0-.65-.112-1.145-.337-1.481a1.08 1.08 0 0 0-.953-.51ZM32.7 5.25c.61 0 1.127.1 1.549.3.422.197.74.48.953.849.217.368.325.809.325 1.32v2.704c0 .29.02.562.062.812.044.245.108.4.19.466V12h-1.935a5.895 5.895 0 0 1-.105-.684 7.745 7.745 0 0 1-.02-.228 2.293 2.293 0 0 1-.151.203c-.205.242-.47.437-.793.584-.32.143-.685.215-1.094.215-.406 0-.77-.08-1.094-.24a1.845 1.845 0 0 1-.756-.682 1.984 1.984 0 0 1-.27-1.045c0-.606.178-1.069.535-1.388.356-.324.87-.534 1.542-.633l1.125-.16c.225-.032.403-.074.534-.123a.622.622 0 0 0 .288-.196.549.549 0 0 0 .093-.327.65.65 0 0 0-.11-.367.702.702 0 0 0-.32-.27c-.14-.07-.31-.105-.51-.105-.32 0-.576.083-.768.251-.193.164-.298.39-.314.676h-1.923c.016-.434.147-.82.393-1.155.25-.34.596-.604 1.039-.792.442-.189.954-.283 1.535-.283Zm.99 3.498a.98.98 0 0 1-.215.14 2.49 2.49 0 0 1-.584.178l-.473.092c-.315.061-.553.156-.713.283-.155.127-.233.305-.233.534 0 .23.084.412.252.547.168.135.383.203.645.203s.494-.058.694-.173c.201-.118.355-.282.461-.49.11-.21.166-.448.166-.714v-.6Zm4.526-2.375c.065-.125.138-.243.221-.349.197-.25.437-.44.719-.571.282-.135.6-.203.952-.203.528 0 .988.138 1.377.412.389.275.688.67.896 1.186.21.512.314 1.12.314 1.824 0 .7-.107 1.309-.32 1.825-.213.512-.518.906-.915 1.18-.393.275-.854.412-1.383.412-.352 0-.667-.062-.946-.184a1.832 1.832 0 0 1-.7-.554 2.2 2.2 0 0 1-.234-.383V12h-1.843V3h1.862v3.373Zm1.284.296c-.274 0-.51.085-.707.253-.192.163-.338.397-.436.7a3.376 3.376 0 0 0-.148 1.05c0 .406.05.759.148 1.058.098.299.243.53.436.694.197.164.433.246.707.246.279 0 .512-.082.7-.246.193-.164.336-.395.43-.694.099-.3.148-.652.148-1.058 0-.405-.05-.757-.147-1.056-.095-.299-.238-.53-.43-.694a1.015 1.015 0 0 0-.7-.253Zm9.416-1.419c.602 0 1.136.131 1.604.393.466.262.829.643 1.086 1.143.263.5.394 1.097.394 1.794 0 .25-.002.449-.006.596H47.51c.018.288.071.538.164.75a1.3 1.3 0 0 0 .491.596c.214.13.465.196.757.196.319 0 .583-.082.792-.246.209-.167.34-.403.393-.706h1.862a2.48 2.48 0 0 1-.485 1.235 2.54 2.54 0 0 1-1.051.805c-.439.188-.949.283-1.53.283-.655 0-1.225-.125-1.708-.375a2.672 2.672 0 0 1-1.13-1.143c-.267-.508-.4-1.137-.4-1.887 0-.712.14-1.327.418-1.843a2.86 2.86 0 0 1 1.155-1.186c.491-.27 1.051-.405 1.678-.405Zm-.044 1.345c-.274 0-.516.068-.725.203a1.29 1.29 0 0 0-.479.59 2.045 2.045 0 0 0-.132.498h2.562a1.873 1.873 0 0 0-.138-.602 1.061 1.061 0 0 0-.418-.516 1.243 1.243 0 0 0-.67-.173Z" clip-rule="evenodd"/>
201  <path fill="#FCFBF8" d="m26.605 9.995 1.342-4.566h1.924L27.628 12h-2.07l-2.33-6.57h1.98l1.397 4.565Zm-13.013.143h2.256c1.632 0 1.421 1.837 1.418 1.861h-5.603V3h1.93v7.138Zm31.516 1.861h-1.862V3h1.862v8.999Z"/>
202  <path fill="url(#a)" fill-rule="evenodd" d="M2.7 3c1.492 0 2.7 1.192 2.7 2.663v1.012h.9c1.49 0 2.7 1.192 2.7 2.662S7.791 12 6.3 12H0V5.663C0 4.193 1.209 3 2.7 3Z" clip-rule="evenodd"/>
203  <defs>
204    <radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="matrix(-1.54236 7.07838 -10.231 -2.15602 4.627 5.022)" gradientUnits="userSpaceOnUse">
205      <stop offset=".106" stop-color="#FE7B02"/>
206      <stop offset=".394" stop-color="#FE3F21"/>
207      <stop offset=".608" stop-color="#F858BC"/>
208      <stop offset=".929" stop-color="#575ECF"/>
209    </radialGradient>
210  </defs>
211</svg>
212
213</span>
214	</a>
215	
216	<span id="lovable-badge-divider" aria-hidden="true"></span>
217	
218	<button 
219		id="lovable-badge-close"
220		aria-label="Dismiss"
221		title="Dismiss"
222		type="button">
223		<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16" aria-hidden="true">
224			<path d="M10.646 4.646a.5.5 0 1 1 .707.708L8.707 8l2.646 2.646a.5.5 0 1 1-.707.707L8 8.707l-2.646 2.646a.5.5 0 1 1-.708-.707L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708L8 7.293l2.646-2.647Z"/>
225		</svg>
226	</button>
227</aside>
228<script>
229	(() => {
230		if (window.self !== window.top || navigator.userAgent.includes('puppeteer')) {
231			const badge = document.querySelector('#lovable-badge');
232			if (badge) {
233				badge.style.display = 'none';
234			}
235			return;
236		}
237
238		const closeButton = document.querySelector('#lovable-badge-close');
239		if (closeButton) {
240			closeButton.addEventListener('click', function(event) {
241				event.preventDefault();
242				event.stopPropagation();
243				const badge = document.querySelector('#lovable-badge');
244				if (badge) {
245					badge.classList.add('closing');
246					setTimeout(function() {
247						if (badge) {
248							badge.style.display = 'none';
249						}
250					}, 240);
251				}
252			});
253		}
254	})();
255</script>
255
256</body></html>

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