@@ -229,6 +229,15 @@ select:focus:not(:focus-visible) { outline: none; }
229229
230230.result-card : hover { border-color : var (--text-muted ); }
231231
232+ .result-card : first-child {
233+ border-color : var (--score );
234+ box-shadow : 0 0 8px rgba (128 , 255 , 128 , 0.15 );
235+ }
236+
237+ .result-card : first-child .result-rank {
238+ color : var (--score );
239+ }
240+
232241.result-rank {
233242 font-size : 18px ;
234243 font-weight : 700 ;
@@ -305,56 +314,100 @@ footer {
305314.marker-participant : hover { transform : scale (1.3 ); }
306315
307316.marker-venue {
317+ position : relative;
308318 border-radius : 50% ;
309319 background : var (--venue );
310- border : 2px solid rgba (255 , 255 , 255 , 0.8 );
311- box-shadow : 0 0 6 px var (--venue );
320+ border : 2px solid rgba (255 , 255 , 255 , 0.5 );
321+ box-shadow : 0 0 4 px var (--venue );
312322 cursor : pointer;
313323 transition : all 0.3s ;
314324 display : flex;
315325 align-items : center;
316326 justify-content : center;
317327 font-family : var (--font );
318328 font-weight : 700 ;
319- color : # fff ;
320- text-shadow : 0 1px 2px rgba (0 , 0 , 0 , 0.8 );
329+ color : rgba (255 , 255 , 255 , 0.7 );
330+ opacity : 0.5 ;
331+ }
332+
333+ .marker-venue .venue-label {
334+ display : none;
321335}
322336
323337.marker-venue [data-rank = "1" ] {
324- width : 28 px ;
325- height : 28 px ;
326- font-size : 14 px ;
338+ width : 32 px ;
339+ height : 32 px ;
340+ font-size : 15 px ;
327341 background : var (--score );
328- border-color : # fff ;
329- box-shadow : 0 0 12 px var (--score ), 0 0 24 px rgba (128 , 255 , 128 , 0.3 );
342+ border : 3 px solid # fff ;
343+ box-shadow : 0 0 16 px var (--score ), 0 0 32 px rgba (128 , 255 , 128 , 0.4 );
330344 z-index : 10 ;
331345 color : var (--bg );
332- text-shadow : none;
346+ opacity : 1 ;
347+ animation : pulse-winner 2s ease-in-out infinite;
348+ }
349+
350+ .marker-venue [data-rank = "1" ] .venue-label {
351+ display : block;
352+ position : absolute;
353+ bottom : calc (100% + 6px );
354+ left : 50% ;
355+ transform : translateX (-50% );
356+ white-space : nowrap;
357+ background : var (--score );
358+ color : var (--bg );
359+ padding : 3px 8px ;
360+ border-radius : 4px ;
361+ font-size : 11px ;
362+ font-weight : 600 ;
363+ letter-spacing : 0.3px ;
364+ box-shadow : 0 2px 8px rgba (0 , 0 , 0 , 0.5 );
365+ pointer-events : none;
366+ }
367+
368+ .marker-venue [data-rank = "1" ] .venue-label ::after {
369+ content : '' ;
370+ position : absolute;
371+ top : 100% ;
372+ left : 50% ;
373+ transform : translateX (-50% );
374+ border : 5px solid transparent;
375+ border-top-color : var (--score );
376+ }
377+
378+ @keyframes pulse-winner {
379+ 0% , 100% { box-shadow : 0 0 16px var (--score ), 0 0 32px rgba (128 , 255 , 128 , 0.4 ); }
380+ 50% { box-shadow : 0 0 24px var (--score ), 0 0 48px rgba (128 , 255 , 128 , 0.6 ); }
333381}
334382
335383.marker-venue [data-rank = "2" ] {
336- width : 22 px ;
337- height : 22 px ;
384+ width : 24 px ;
385+ height : 24 px ;
338386 font-size : 12px ;
339387 background : var (--accent );
388+ border-color : rgba (255 , 255 , 255 , 0.8 );
340389 box-shadow : 0 0 8px var (--accent );
341390 color : var (--bg );
342- text-shadow : none ;
391+ opacity : 0.85 ;
343392}
344393
345394.marker-venue [data-rank = "3" ] {
346- width : 18 px ;
347- height : 18 px ;
395+ width : 20 px ;
396+ height : 20 px ;
348397 font-size : 11px ;
398+ opacity : 0.65 ;
349399}
350400
351401.marker-venue : not ([data-rank = "1" ]): not ([data-rank = "2" ]): not ([data-rank = "3" ]) {
352- width : 14 px ;
353- height : 14 px ;
402+ width : 16 px ;
403+ height : 16 px ;
354404 font-size : 10px ;
355405}
356406
357- .marker-venue : hover { transform : scale (1.3 ); }
407+ .marker-venue : hover {
408+ transform : scale (1.3 );
409+ opacity : 1 ;
410+ }
358411
359412/* MapLibre popup overrides */
360413.maplibregl-popup-content {
0 commit comments