@four-leaf-studios/rl-overlay 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.github/copilot-instructions.md +70 -0
  2. package/dist/index.cjs.js +271 -10567
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.esm.js +300 -10579
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/types/Overlay.d.ts +5 -6
  7. package/dist/types/OverlaySlot.d.ts +9 -0
  8. package/dist/types/index.d.ts +2 -0
  9. package/dist/types/registry.d.ts +2 -0
  10. package/package.json +12 -5
  11. package/src/Overlay.tsx +43 -41
  12. package/src/OverlaySlot.tsx +35 -0
  13. package/src/Player.tsx +1 -0
  14. package/src/PlayerBoost.tsx +4 -1
  15. package/src/Scoreboard.tsx +1 -0
  16. package/src/ScoreboardGameBox.tsx +2 -4
  17. package/src/ScoreboardSeriesBox.tsx +2 -3
  18. package/src/ScoreboardTeam.tsx +1 -0
  19. package/src/StatItem.tsx +4 -1
  20. package/src/TargetBoost.tsx +1 -0
  21. package/src/TargetPlayer.tsx +15 -3
  22. package/src/TargetPlayerLocation.tsx +1 -0
  23. package/src/TargetPlayerStats.tsx +1 -1
  24. package/src/Team.tsx +1 -0
  25. package/src/Timer.tsx +7 -4
  26. package/src/css/Florida_Tech.css +696 -0
  27. package/src/css/Horizon_Hues.css +618 -0
  28. package/src/css/Neo_Glass.css +674 -0
  29. package/src/css/Obsidian_Glide.css +646 -0
  30. package/src/css/RLCS_2024.css +566 -0
  31. package/src/css/RLCS_2025.css +524 -0
  32. package/src/css/Shaded_blocks.css +594 -0
  33. package/src/index.ts +2 -0
  34. package/src/registry.ts +19 -0
  35. package/src/types.d.ts +20 -0
  36. package/test-overlay/public/mock-css.css +294 -372
  37. package/test-overlay/src/App.jsx +28 -28
  38. package/tests/BroadcastContext.test.tsx +41 -0
  39. package/tests/Overlay.test.tsx +106 -0
  40. package/tests/OverlaySlot.test.tsx +79 -0
  41. package/tests/PlayerBoost.test.tsx +47 -0
  42. package/tests/Replay.test.tsx +29 -0
  43. package/tests/ScoreboardGameBox.test.tsx +35 -0
  44. package/tests/ScoreboardSeriesBox.test.tsx +48 -0
  45. package/tests/StatItem.test.tsx +33 -0
  46. package/tests/__mocks__/@four-leaf-studios/rl-socket-hook.ts +10 -0
  47. package/tests/fixtures.ts +96 -0
  48. package/tests/registry.test.ts +27 -0
  49. package/tests/setup.ts +1 -0
  50. package/tsconfig.json +16 -20
  51. package/vitest.config.ts +9 -0
@@ -0,0 +1,618 @@
1
+ /* latin-ext */
2
+ @font-face {
3
+ font-family: "DM Sans";
4
+ font-style: italic;
5
+ font-weight: 400;
6
+ font-display: swap;
7
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKK58VXh.woff2)
8
+ format("woff2");
9
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
10
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
11
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
12
+ }
13
+ /* latin */
14
+ @font-face {
15
+ font-family: "DM Sans";
16
+ font-style: italic;
17
+ font-weight: 400;
18
+ font-display: swap;
19
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKy58Q.woff2)
20
+ format("woff2");
21
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
22
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
23
+ U+2212, U+2215, U+FEFF, U+FFFD;
24
+ }
25
+ /* latin-ext */
26
+ @font-face {
27
+ font-family: "DM Sans";
28
+ font-style: italic;
29
+ font-weight: 500;
30
+ font-display: swap;
31
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKK58VXh.woff2)
32
+ format("woff2");
33
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
34
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
35
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
36
+ }
37
+ /* latin */
38
+ @font-face {
39
+ font-family: "DM Sans";
40
+ font-style: italic;
41
+ font-weight: 500;
42
+ font-display: swap;
43
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKy58Q.woff2)
44
+ format("woff2");
45
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
46
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
47
+ U+2212, U+2215, U+FEFF, U+FFFD;
48
+ }
49
+ /* latin-ext */
50
+ @font-face {
51
+ font-family: "DM Sans";
52
+ font-style: italic;
53
+ font-weight: 700;
54
+ font-display: swap;
55
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKK58VXh.woff2)
56
+ format("woff2");
57
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
58
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
59
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
60
+ }
61
+ /* latin */
62
+ @font-face {
63
+ font-family: "DM Sans";
64
+ font-style: italic;
65
+ font-weight: 700;
66
+ font-display: swap;
67
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Wp2ywxg089UriCZaSExd86J3t9jz86MvyyKy58Q.woff2)
68
+ format("woff2");
69
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
70
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
71
+ U+2212, U+2215, U+FEFF, U+FFFD;
72
+ }
73
+ /* latin-ext */
74
+ @font-face {
75
+ font-family: "DM Sans";
76
+ font-style: normal;
77
+ font-weight: 400;
78
+ font-display: swap;
79
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6h9Q.woff2)
80
+ format("woff2");
81
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
82
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
83
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
84
+ }
85
+ /* latin */
86
+ @font-face {
87
+ font-family: "DM Sans";
88
+ font-style: normal;
89
+ font-weight: 400;
90
+ font-display: swap;
91
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2)
92
+ format("woff2");
93
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
94
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
95
+ U+2212, U+2215, U+FEFF, U+FFFD;
96
+ }
97
+ /* latin-ext */
98
+ @font-face {
99
+ font-family: "DM Sans";
100
+ font-style: normal;
101
+ font-weight: 500;
102
+ font-display: swap;
103
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6h9Q.woff2)
104
+ format("woff2");
105
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
106
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
107
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
108
+ }
109
+ /* latin */
110
+ @font-face {
111
+ font-family: "DM Sans";
112
+ font-style: normal;
113
+ font-weight: 500;
114
+ font-display: swap;
115
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2)
116
+ format("woff2");
117
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
118
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
119
+ U+2212, U+2215, U+FEFF, U+FFFD;
120
+ }
121
+ /* latin-ext */
122
+ @font-face {
123
+ font-family: "DM Sans";
124
+ font-style: normal;
125
+ font-weight: 700;
126
+ font-display: swap;
127
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu6-K6h9Q.woff2)
128
+ format("woff2");
129
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
130
+ U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
131
+ U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
132
+ }
133
+ /* latin */
134
+ @font-face {
135
+ font-family: "DM Sans";
136
+ font-style: normal;
137
+ font-weight: 700;
138
+ font-display: swap;
139
+ src: url(https://fonts.gstatic.com/s/dmsans/v16/rP2Yp2ywxg089UriI5-g4vlH9VoD8Cmcqbu0-K4.woff2)
140
+ format("woff2");
141
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
142
+ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
143
+ U+2212, U+2215, U+FEFF, U+FFFD;
144
+ }
145
+
146
+ :root {
147
+ --font-family: "DM Sans";
148
+ }
149
+
150
+ .overlay {
151
+ --fallback-darker-mutual: black;
152
+ }
153
+
154
+ /* Main Bar */
155
+ .main_bar {
156
+ }
157
+
158
+ /* Team Name Boxes */
159
+ .name_box {
160
+ font-size: 42px;
161
+ height: 77px;
162
+ width: 350px;
163
+ padding-left: 20px;
164
+ padding-right: 20px;
165
+ font-weight: 800;
166
+ line-height: 0.9;
167
+ font-family: var(--font-family);
168
+ }
169
+
170
+ .left_name_box {
171
+ order: -50;
172
+ justify-content: end;
173
+ text-shadow: 0 0 5px black;
174
+ }
175
+
176
+ .right_name_box {
177
+ order: 50;
178
+ justify-content: start;
179
+ text-shadow: 0 0 5px black;
180
+ }
181
+
182
+ /* Logos */
183
+ .logo_box {
184
+ padding: 10px;
185
+ width: 110px;
186
+ height: 77px;
187
+ background: #0f131c;
188
+ }
189
+
190
+ .left_logo_box {
191
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 25px 100%);
192
+ padding-left: 27px;
193
+ }
194
+
195
+ .right_logo_box {
196
+ clip-path: polygon(0 0, 100% 0, calc(100% - 25px) 100%, 0 100%);
197
+ padding-right: 27px;
198
+ }
199
+
200
+ /* Score */
201
+ .score_box {
202
+ font-size: 52px;
203
+ height: 77px;
204
+ width: 90px;
205
+ color: white;
206
+ font-weight: bold;
207
+ text-shadow: 0 0 5px black;
208
+ font-family: var(--font-family);
209
+ }
210
+
211
+ .left_score_box {
212
+ background: linear-gradient(
213
+ to bottom,
214
+ var(--team-left-primary),
215
+ var(--team-left-primary-dark)
216
+ );
217
+ }
218
+
219
+ .right_score_box {
220
+ background: linear-gradient(
221
+ to bottom,
222
+ var(--team-right-primary),
223
+ var(--team-right-primary-dark)
224
+ );
225
+ }
226
+
227
+ /* Timer */
228
+ .time_box {
229
+ color: white;
230
+ font-size: 52px;
231
+ height: 77px;
232
+ width: 200px;
233
+ background: #0f131c;
234
+ font-weight: bold;
235
+ font-family: var(--font-family);
236
+ }
237
+
238
+ .top_bar {
239
+ display: none;
240
+ }
241
+
242
+ /* Bottom Bar */
243
+ .bottom_bar {
244
+ height: 30px;
245
+ }
246
+
247
+ /* Series Boxes */
248
+ .series_box {
249
+ background-color: #0f131c;
250
+ width: 72px;
251
+ }
252
+
253
+ .left_series_box {
254
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 10px 100%);
255
+ padding-left: 13px;
256
+ padding-right: 5px;
257
+ }
258
+
259
+ .right_series_box {
260
+ clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
261
+ padding-right: 13px;
262
+ padding-left: 5px;
263
+ }
264
+
265
+ .series_score_box {
266
+ margin-left: 3px;
267
+ margin-right: 3px;
268
+ height: 18px;
269
+ width: 100%;
270
+ }
271
+
272
+ .series_score_box_point {
273
+ }
274
+
275
+ .series_score_box_empty {
276
+ }
277
+
278
+ .left_series_score_box_point {
279
+ background-color: var(--team-left-primary);
280
+ }
281
+
282
+ .left_series_score_box_empty {
283
+ background-color: var(--team-left-primary-dark);
284
+ opacity: 0.5;
285
+ }
286
+
287
+ .right_series_score_box_point {
288
+ background-color: var(--team-right-primary);
289
+ }
290
+
291
+ .right_series_score_box_empty {
292
+ background-color: var(--team-right-rimary-dark);
293
+ opacity: 0.25;
294
+ }
295
+
296
+ /* Game Info */
297
+ .game_box {
298
+ background-color: #0f131c;
299
+ font-size: 20px;
300
+ width: 200px;
301
+ font-family: var(--font-family);
302
+ }
303
+
304
+ .series_info_box {
305
+ background-color: #0f131c;
306
+ font-size: 18px;
307
+ min-width: 580px;
308
+ padding-left: 20px;
309
+ padding-right: 20px;
310
+ height: 30px;
311
+ clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 10px 100%);
312
+ font-family: var(--font-family);
313
+ }
314
+
315
+ /* Team Box */
316
+ .team_box {
317
+ color: white;
318
+ position: absolute;
319
+ top: 190px;
320
+ }
321
+
322
+ .left_team_box {
323
+ left: 0;
324
+ }
325
+
326
+ .right_team_box {
327
+ right: 0;
328
+ }
329
+
330
+ /* Player Box */
331
+ .player_box {
332
+ height: 35px;
333
+ width: 265px;
334
+ margin-bottom: 10px;
335
+ background-color: #0f131c;
336
+ }
337
+
338
+ .left_player_box {
339
+ }
340
+
341
+ .right_player_box {
342
+ }
343
+
344
+ .player_name {
345
+ font-size: 22px;
346
+ position: absolute;
347
+ z-index: 50;
348
+ text-shadow: 0 0 5px black;
349
+ top: 3px;
350
+ font-weight: bold;
351
+ text-transform: uppercase;
352
+ text-overflow: ellipsis;
353
+ max-width: 250px;
354
+ white-space: nowrap;
355
+ overflow: hidden;
356
+ font-family: var(--font-family);
357
+ }
358
+
359
+ .left_player_name {
360
+ left: 8px;
361
+ }
362
+
363
+ .right_player_name {
364
+ right: 8px;
365
+ }
366
+
367
+ /* Boost */
368
+ .player_boost {
369
+ opacity: 0;
370
+ }
371
+
372
+ .left_player_boost {
373
+ }
374
+
375
+ .right_player_boost {
376
+ }
377
+
378
+ .boost_meter {
379
+ width: 100%;
380
+ height: 100%;
381
+ position: absolute;
382
+ }
383
+
384
+ .left_boost_meter {
385
+ }
386
+
387
+ .right_boost_meter {
388
+ }
389
+
390
+ .left_boost_meter_bar {
391
+ background: linear-gradient(
392
+ to bottom,
393
+ var(--team-left-primary),
394
+ var(--team-left-primary-dark)
395
+ );
396
+ }
397
+
398
+ .right_boost_meter_bar {
399
+ background: linear-gradient(
400
+ to bottom,
401
+ var(--team-right-primary),
402
+ var(--team-right-primary-dark)
403
+ );
404
+ }
405
+
406
+ /* Stats */
407
+ .stat_box {
408
+ background-color: #0f131c;
409
+ height: 40px;
410
+ padding-right: 15px;
411
+ display: flex;
412
+ clip-path: polygon(0 0, calc(100% - 15px) 0%, 100% 100%, 0% 100%);
413
+ }
414
+
415
+ .stat_box_player {
416
+ padding-left: 20px;
417
+ padding-right: 20px;
418
+ padding-top: 4px;
419
+ font-size: 24px;
420
+ height: 36px;
421
+ background: #000;
422
+ text-transform: uppercase;
423
+ text-overflow: ellipsis;
424
+ width: 220px;
425
+ text-align: center;
426
+ white-space: nowrap;
427
+ overflow: hidden;
428
+ font-weight: bold;
429
+ font-family: var(--font-family);
430
+ }
431
+
432
+ .stat_box_statistic {
433
+ display: flex;
434
+ justify-content: flex-end;
435
+ margin: auto;
436
+ white-space: nowrap;
437
+ padding-left: 10px;
438
+ padding-right: 10px;
439
+ }
440
+
441
+ .stat_box_statistic_value {
442
+ font-size: 22px;
443
+ margin-right: 5px;
444
+ min-width: 25px;
445
+ text-align: right;
446
+ font-weight: bold;
447
+ font-family: var(--font-family);
448
+ }
449
+
450
+ .stat_box_statistic_name {
451
+ padding-top: 2px;
452
+ font-size: 20px;
453
+ font-family: var(--font-family);
454
+ }
455
+
456
+ .stat_box_statistic_player_id,
457
+ .stat_box_statistic_player_team,
458
+ .stat_box_statistic_player_location,
459
+ .stat_box_statistic_player_touches {
460
+ display: none;
461
+ }
462
+
463
+ /* Target Boost (the circular meter) */
464
+ .target_boost {
465
+ font-size: 3rem;
466
+ font-weight: bold;
467
+ position: absolute;
468
+ bottom: 0;
469
+ right: 0;
470
+ margin-left: auto;
471
+ width: 200px;
472
+ height: 200px;
473
+ margin-bottom: 50px;
474
+ margin-right: 50px;
475
+ border-radius: 50%;
476
+ display: flex;
477
+ flex-direction: column;
478
+ align-items: center;
479
+ justify-content: center;
480
+ color: white;
481
+ overflow: hidden;
482
+ transition: opacity 0.3s ease, transform 0.3s ease;
483
+ }
484
+
485
+ .left_target_boost.target_boost {
486
+ color: var(--team-0-secondary);
487
+ }
488
+
489
+ .right_target_boost.target_boost {
490
+ color: var(--team-1-secondary);
491
+ }
492
+
493
+ .target_boost.entering {
494
+ animation: fadeIn 0.5s ease-in-out;
495
+ }
496
+
497
+ .target_boost.exiting {
498
+ animation: fadeOut 0.5s ease-in-out;
499
+ }
500
+
501
+ .left_target_boost {
502
+ border: 5px solid var(--team-left-mutual);
503
+ background: #07132d;
504
+ }
505
+
506
+ .right_target_boost {
507
+ border: 5px solid var(--team-left-mutual);
508
+ background: var(--team-left-mutual);
509
+ }
510
+
511
+ .target_boost_container {
512
+ width: 100%;
513
+ height: 100%;
514
+ display: flex;
515
+ flex-direction: column;
516
+ align-items: center;
517
+ justify-content: center;
518
+ border-radius: 50%;
519
+ }
520
+
521
+ .left_target_boost_container {
522
+ }
523
+
524
+ .right_target_boost_container {
525
+ }
526
+
527
+ .target_boost_meter {
528
+ position: absolute;
529
+ height: 100%;
530
+ width: 100%;
531
+ border-radius: 50%;
532
+ display: flex;
533
+ justify-content: center;
534
+ align-items: center;
535
+ transition: all 0.5s ease-in-out;
536
+ }
537
+
538
+ .left_target_boost_meter {
539
+ background: conic-gradient(
540
+ var(--team-left-primary-dark) calc(90deg * var(--target_boost) / 100),
541
+ var(--team-left-primary-light) calc(180deg * var(--target_boost) / 100),
542
+ var(--team-left-primary-light) calc(30deg * var(--target_boost) / 100),
543
+ var(--team-left-primary) calc(270deg * var(--target_boost) / 100),
544
+ var(--team-left-primary-dark) calc(360deg * var(--target_boost) / 100),
545
+ var(--fallback-darker-mutual) calc(0deg * var(--target_boost) / 100)
546
+ ) !important;
547
+ transition: all 0.5s ease-in-out;
548
+ }
549
+
550
+ .right_target_boost_meter {
551
+ background: conic-gradient(
552
+ var(--team-right-primary-dark) calc(90deg * var(--target_boost) / 100),
553
+ var(--team-right-primary-light) calc(180deg * var(--target_boost) / 100),
554
+ var(--team-right-primary-light) calc(30deg * var(--target_boost) / 100),
555
+ var(--team-right-primary) calc(270deg * var(--target_boost) / 100),
556
+ var(--team-right-primary-dark) calc(360deg * var(--target_boost) / 100),
557
+ var(--fallback-darker-mutual) calc(0deg * var(--target_boost) / 100)
558
+ ) !important;
559
+
560
+ transition: all 0.5s ease-in-out;
561
+ }
562
+
563
+ .target_boost_meter_inner {
564
+ position: absolute;
565
+ margin: auto;
566
+ width: 80%;
567
+ height: 80%;
568
+ border-radius: 50%;
569
+ z-index: 50;
570
+ }
571
+
572
+ .left_target_boost_meter_inner {
573
+ background: var(--team-left-mutual);
574
+ }
575
+
576
+ .right_target_boost_meter_inner {
577
+ background: var(--team-left-mutual);
578
+ }
579
+
580
+ .target_boost_svg {
581
+ position: absolute;
582
+ width: 100%;
583
+ height: 100%;
584
+ z-index: 500;
585
+ display: flex;
586
+ justify-content: center;
587
+ align-items: center;
588
+ }
589
+
590
+ .target_boost_svg_circle {
591
+ stroke-dasharray: 4 25%;
592
+ stroke-width: 41;
593
+ stroke-dashoffset: 18;
594
+ fill: transparent;
595
+ }
596
+
597
+ .left_target_boost_svg_circle {
598
+ stroke: var(--team-left-mutual);
599
+ }
600
+
601
+ .right_target_boost_svg_circle {
602
+ stroke: var(--team-left-mutual);
603
+ }
604
+
605
+ .target_boost_value {
606
+ position: absolute;
607
+ z-index: 500;
608
+ color: white;
609
+ font-size: 2rem;
610
+ }
611
+
612
+ .left_target_boost_value {
613
+ }
614
+
615
+ .right_target_boost_value {
616
+ }
617
+
618
+ /* Target Boost END */