@@ -50,7 +50,8 @@ function RaceView({ race, isLast = false }: { race: RaceData; isLast?: boolean }
5050 return (
5151 < div >
5252 < RaceHeader race = { race } isLast = { isLast } />
53- < div className = "mx-auto max-w-5xl px-4 py-10 space-y-10" >
53+ < div className = "mx-auto max-w-5xl px-4 pb-24 pt-4 space-y-10" >
54+ < SponsorBanner />
5455 < Leaderboard leaderboard = { race . leaderboard } matches = { race . matches } />
5556 < LpChart series = { race . lp_series } />
5657 < MatchFeed matches = { race . matches } />
@@ -75,7 +76,7 @@ function UpcomingView({ upcoming }: { upcoming: UpcomingRace }) {
7576 animate = { { opacity : 1 } }
7677 transition = { { duration : 0.6 } }
7778 className = "relative w-full overflow-hidden"
78- style = { { minHeight : 460 } }
79+ style = { { minHeight : 300 } }
7980 >
8081 < img
8182 src = "/images/hero.png"
@@ -88,7 +89,7 @@ function UpcomingView({ upcoming }: { upcoming: UpcomingRace }) {
8889
8990 < div
9091 className = "relative flex flex-col items-center justify-center text-center px-6 pt-24 pb-16"
91- style = { { minHeight : 460 } }
92+ style = { { minHeight : 300 } }
9293 >
9394 < motion . p
9495 initial = { { opacity : 0 , y : - 8 } }
@@ -136,6 +137,8 @@ function UpcomingView({ upcoming }: { upcoming: UpcomingRace }) {
136137 </ div >
137138 </ motion . div >
138139
140+ < SponsorBanner />
141+
139142 { /* Streamers joining */ }
140143 { upcoming . streamers . length > 0 && (
141144 < div className = "mx-auto max-w-5xl px-4 py-10" >
@@ -206,14 +209,69 @@ function StreamerCard({ streamer, index }: { streamer: UpcomingStreamer; index:
206209 ) ;
207210}
208211
212+ function SponsorBanner ( ) {
213+ return (
214+ < div className = "mx-auto max-w-5xl px-4 pb-4" >
215+ { /* "Presented by" row with gradient lines */ }
216+ < div className = "flex items-center gap-4 mb-8" >
217+ < div className = "flex-1 h-px bg-gradient-to-r from-transparent via-red-900/30 to-red-800/50" />
218+ < p className = "text-xs tracking-[0.5em] uppercase text-[#4a4a60] flex-shrink-0" >
219+ Presented by
220+ </ p >
221+ < div className = "flex-1 h-px bg-gradient-to-l from-transparent via-red-900/30 to-red-800/50" />
222+ </ div >
223+
224+ { /* Centered image with ornaments */ }
225+ < div className = "flex justify-center" >
226+ < div className = "relative" >
227+ { /* Red ambient glow */ }
228+ < div className = "absolute inset-0 scale-110 rounded-lg bg-red-700/25 blur-2xl" />
229+
230+ { /* Corner brackets */ }
231+ < div className = "absolute -top-2.5 -left-2.5 h-5 w-5 rounded-tl border-l-2 border-t-2 border-red-700/60" />
232+ < div className = "absolute -top-2.5 -right-2.5 h-5 w-5 rounded-tr border-r-2 border-t-2 border-red-700/60" />
233+ < div className = "absolute -bottom-2.5 -left-2.5 h-5 w-5 rounded-bl border-b-2 border-l-2 border-red-700/60" />
234+ < div className = "absolute -bottom-2.5 -right-2.5 h-5 w-5 rounded-br border-b-2 border-r-2 border-red-700/60" />
235+
236+ < a
237+ href = "https://thunderpick.io/?r=RACE"
238+ target = "_blank"
239+ rel = "noopener noreferrer"
240+ className = "relative block overflow-hidden rounded opacity-85 transition-opacity hover:opacity-100"
241+ >
242+ < img
243+ src = "/images/thunderpick.png"
244+ alt = "Thunderpick — Code: Race"
245+ className = "w-80 object-cover"
246+ draggable = { false }
247+ />
248+ </ a >
249+ </ div >
250+ </ div >
251+
252+ { /* Bottom ornament */ }
253+ < div className = "mt-8 flex items-center gap-3" >
254+ < div className = "flex-1 h-px bg-gradient-to-r from-transparent to-red-900/30" />
255+ < div className = "h-1 w-1 rounded-full bg-red-800/60" />
256+ < div className = "h-1.5 w-1.5 rounded-full bg-red-700/50" />
257+ < div className = "h-1 w-1 rounded-full bg-red-800/60" />
258+ < div className = "flex-1 h-px bg-gradient-to-l from-transparent to-red-900/30" />
259+ </ div >
260+ </ div >
261+ ) ;
262+ }
263+
209264function EmptyView ( ) {
210265 return (
211- < motion . div
212- initial = { { opacity : 0 } }
213- animate = { { opacity : 1 } }
214- className = "flex items-center justify-center py-28 text-[#4a4a60]"
215- >
216- No races yet.
217- </ motion . div >
266+ < div >
267+ < motion . div
268+ initial = { { opacity : 0 } }
269+ animate = { { opacity : 1 } }
270+ className = "flex items-center justify-center py-28 text-[#4a4a60]"
271+ >
272+ No races yet.
273+ </ motion . div >
274+ < SponsorBanner />
275+ </ div >
218276 ) ;
219277}
0 commit comments