reaper-arcade-hub 1.0.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.
package/css/styles.css ADDED
@@ -0,0 +1,980 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@700;900&family=JetBrains+Mono:ital,wght@0,400;0,700;1,400&family=Outfit:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@500;700&display=swap');
2
+
3
+ :root {
4
+ --bg-dark: #02050a;
5
+ --bg-card: rgba(6, 14, 28, 0.85);
6
+ --bg-hover: rgba(0, 136, 255, 0.12);
7
+ --blue-primary: #0088ff;
8
+ --blue-bright: #00d2ff;
9
+ --blue-border: rgba(0, 136, 255, 0.3);
10
+ --blue-glow: rgba(0, 136, 255, 0.45);
11
+ --text-main: #ffffff;
12
+ --text-sub: #88aacc;
13
+ --text-blue: #00d2ff;
14
+ --radius-sm: 6px;
15
+ --radius-md: 12px;
16
+ --radius-lg: 18px;
17
+ --font-main: 'Outfit', sans-serif;
18
+ --font-heading: 'Space Grotesk', sans-serif;
19
+ --font-logo: 'Cinzel', serif;
20
+ --font-mono: 'JetBrains Mono', monospace;
21
+ }
22
+
23
+ * {
24
+ margin: 0;
25
+ padding: 0;
26
+ box-sizing: border-box;
27
+ font-family: var(--font-main);
28
+ letter-spacing: -0.01em;
29
+ }
30
+
31
+ body {
32
+ background-color: var(--bg-dark);
33
+ color: var(--text-main);
34
+ min-height: 100vh;
35
+ overflow-x: hidden;
36
+ position: relative;
37
+ }
38
+
39
+ #bg-canvas {
40
+ position: fixed;
41
+ top: 0;
42
+ left: 0;
43
+ width: 100vw;
44
+ height: 100vh;
45
+ pointer-events: none;
46
+ z-index: 1;
47
+ }
48
+
49
+ /* 10-Second Splash Loader with Dynamic Space Background */
50
+ #app-splash-screen {
51
+ position: fixed;
52
+ top: 0;
53
+ left: 0;
54
+ width: 100vw;
55
+ height: 100vh;
56
+ background: radial-gradient(circle at 50% 50%, #091a38 0%, #030a16 50%, #010408 100%);
57
+ z-index: 99999;
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ transition: opacity 0.6s ease;
62
+ overflow: hidden;
63
+ }
64
+
65
+ #app-splash-screen::before {
66
+ content: '';
67
+ position: absolute;
68
+ top: -50%;
69
+ left: -50%;
70
+ width: 200%;
71
+ height: 200%;
72
+ background: radial-gradient(circle at 20% 30%, rgba(0, 136, 255, 0.18) 0%, transparent 40%),
73
+ radial-gradient(circle at 80% 70%, rgba(0, 210, 255, 0.15) 0%, transparent 40%),
74
+ radial-gradient(circle at 50% 80%, rgba(80, 0, 255, 0.12) 0%, transparent 50%);
75
+ animation: splashAuraShift 12s ease-in-out infinite alternate;
76
+ pointer-events: none;
77
+ }
78
+
79
+ @keyframes splashAuraShift {
80
+ 0% { transform: rotate(0deg) scale(1); }
81
+ 50% { transform: rotate(8deg) scale(1.08); }
82
+ 100% { transform: rotate(-8deg) scale(1.02); }
83
+ }
84
+
85
+ .splash-content {
86
+ position: relative;
87
+ z-index: 10;
88
+ text-align: center;
89
+ max-width: 520px;
90
+ width: 90%;
91
+ padding: 2.8rem 2.2rem;
92
+ background: rgba(4, 12, 26, 0.88);
93
+ border: 1.5px solid rgba(0, 210, 255, 0.4);
94
+ border-radius: var(--radius-md);
95
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.9), 0 0 50px rgba(0, 136, 255, 0.4);
96
+ backdrop-filter: blur(25px);
97
+ -webkit-backdrop-filter: blur(25px);
98
+ }
99
+
100
+ .splash-logo {
101
+ font-family: var(--font-logo);
102
+ font-size: 3.8rem;
103
+ font-weight: 900;
104
+ color: #fff;
105
+ text-shadow: 0 0 30px var(--blue-glow);
106
+ letter-spacing: 0.15em;
107
+ margin-bottom: 0.2rem;
108
+ line-height: 1;
109
+ }
110
+
111
+ .splash-sub {
112
+ font-family: var(--font-heading);
113
+ color: var(--blue-bright);
114
+ font-size: 0.76rem;
115
+ font-weight: 800;
116
+ letter-spacing: 0.2em;
117
+ text-transform: uppercase;
118
+ margin-bottom: 1.25rem;
119
+ }
120
+
121
+ .splash-quote-wrapper {
122
+ min-height: 48px;
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ margin-bottom: 1.5rem;
127
+ padding: 0.5rem 0.75rem;
128
+ background: rgba(2, 6, 15, 0.6);
129
+ border: 1px solid rgba(0, 136, 255, 0.25);
130
+ border-radius: 8px;
131
+ }
132
+
133
+ .splash-quote-text {
134
+ font-family: var(--font-main);
135
+ font-size: 0.84rem;
136
+ font-style: italic;
137
+ font-weight: 600;
138
+ color: #c5e3ff;
139
+ transition: opacity 0.3s ease, transform 0.3s ease;
140
+ line-height: 1.4;
141
+ }
142
+
143
+ .splash-progress-track {
144
+ width: 100%;
145
+ height: 7px;
146
+ background: #030914;
147
+ border-radius: 6px;
148
+ overflow: hidden;
149
+ border: 1px solid var(--blue-border);
150
+ margin-bottom: 0.85rem;
151
+ box-shadow: inset 0 1px 3px rgba(0,0,0,0.8);
152
+ }
153
+
154
+ .splash-progress-bar {
155
+ width: 0%;
156
+ height: 100%;
157
+ background: linear-gradient(90deg, #0066cc, #00d2ff, #ffd700);
158
+ box-shadow: 0 0 15px #00d2ff;
159
+ transition: width 0.1s linear;
160
+ }
161
+
162
+ .splash-status-text {
163
+ font-family: var(--font-mono);
164
+ font-size: 0.75rem;
165
+ color: var(--text-sub);
166
+ letter-spacing: 0.05em;
167
+ }
168
+
169
+ /* App Header */
170
+ .app-header {
171
+ position: sticky;
172
+ top: 0;
173
+ z-index: 100;
174
+ background: rgba(2, 6, 14, 0.88);
175
+ border-bottom: 1px solid var(--blue-border);
176
+ backdrop-filter: blur(20px);
177
+ -webkit-backdrop-filter: blur(20px);
178
+ }
179
+
180
+ .nav-container {
181
+ max-width: 1700px;
182
+ margin: 0 auto;
183
+ padding: 0.75rem 1.5rem;
184
+ display: flex;
185
+ align-items: center;
186
+ justify-content: space-between;
187
+ }
188
+
189
+ .brand-logo {
190
+ display: flex;
191
+ align-items: center;
192
+ gap: 0.5rem;
193
+ cursor: pointer;
194
+ user-select: none;
195
+ }
196
+
197
+ .brand-logo span {
198
+ font-family: var(--font-logo);
199
+ font-size: 1.85rem;
200
+ font-weight: 900;
201
+ color: #fff;
202
+ letter-spacing: 0.1em;
203
+ text-shadow: 0 0 20px var(--blue-glow);
204
+ }
205
+
206
+ /* Nav Tabs Pill */
207
+ .nav-tabs-pill {
208
+ display: flex;
209
+ background: #050d1a;
210
+ border: 1px solid var(--blue-border);
211
+ border-radius: 30px;
212
+ padding: 0.25rem 0.35rem;
213
+ gap: 0.2rem;
214
+ }
215
+
216
+ .nav-tab-btn {
217
+ background: transparent;
218
+ border: none;
219
+ color: #99b8dc;
220
+ padding: 0.45rem 1.15rem;
221
+ font-size: 0.84rem;
222
+ font-weight: 600;
223
+ font-family: var(--font-heading);
224
+ border-radius: 20px;
225
+ cursor: pointer;
226
+ transition: all 0.2s ease;
227
+ }
228
+
229
+ .nav-tab-btn:hover {
230
+ color: #fff;
231
+ background: rgba(0, 136, 255, 0.15);
232
+ }
233
+
234
+ .nav-tab-btn.active {
235
+ background: linear-gradient(135deg, #0088ff, #0055cc);
236
+ color: #fff;
237
+ box-shadow: 0 0 15px rgba(0, 136, 255, 0.5);
238
+ }
239
+
240
+ .header-right {
241
+ display: flex;
242
+ align-items: center;
243
+ gap: 0.75rem;
244
+ }
245
+
246
+ .user-badge {
247
+ display: flex;
248
+ align-items: center;
249
+ gap: 0.5rem;
250
+ background: #040c18;
251
+ border: 1px solid var(--blue-border);
252
+ padding: 0.35rem 0.85rem;
253
+ border-radius: 20px;
254
+ font-size: 0.82rem;
255
+ font-weight: 600;
256
+ }
257
+
258
+ /* Rank Badges */
259
+ .rank-pill {
260
+ font-size: 0.65rem;
261
+ font-weight: 800;
262
+ font-family: var(--font-heading);
263
+ padding: 0.15rem 0.55rem;
264
+ border-radius: 12px;
265
+ text-transform: uppercase;
266
+ letter-spacing: 0.05em;
267
+ }
268
+
269
+ .rank-member {
270
+ background: rgba(0, 136, 255, 0.15);
271
+ color: #00d2ff;
272
+ border: 1px solid rgba(0, 136, 255, 0.4);
273
+ }
274
+
275
+ .rank-mod {
276
+ background: rgba(0, 230, 150, 0.2);
277
+ color: #00ffaa;
278
+ border: 1px solid rgba(0, 230, 150, 0.5);
279
+ box-shadow: 0 0 10px rgba(0, 255, 170, 0.3);
280
+ }
281
+
282
+ .rank-owner {
283
+ background: linear-gradient(135deg, #ffd700, #ff8800);
284
+ color: #000;
285
+ font-weight: 900;
286
+ border: 1px solid #ffd700;
287
+ box-shadow: 0 0 14px rgba(255, 215, 0, 0.6);
288
+ }
289
+
290
+ /* Owner Custom Animated Name */
291
+ .owner-animated-name {
292
+ background: linear-gradient(90deg, #ffd700, #fff, #00d2ff, #ffd700);
293
+ background-size: 300% 300%;
294
+ -webkit-background-clip: text;
295
+ -webkit-text-fill-color: transparent;
296
+ font-weight: 900 !important;
297
+ animation: ownerShimmer 3s ease infinite, ownerPulseGlow 2s ease-in-out infinite alternate;
298
+ display: inline-block;
299
+ }
300
+
301
+ @keyframes ownerShimmer {
302
+ 0% { background-position: 0% 50%; }
303
+ 50% { background-position: 100% 50%; }
304
+ 100% { background-position: 0% 50%; }
305
+ }
306
+
307
+ @keyframes ownerPulseGlow {
308
+ from { filter: drop-shadow(0 0 2px #ffd700); }
309
+ to { filter: drop-shadow(0 0 8px #00d2ff); }
310
+ }
311
+
312
+ /* Layout */
313
+ .app-layout {
314
+ display: flex;
315
+ max-width: 1700px;
316
+ margin: 0 auto;
317
+ min-height: calc(100vh - 65px);
318
+ position: relative;
319
+ z-index: 10;
320
+ }
321
+
322
+ .content-area {
323
+ flex: 1;
324
+ padding: 1.5rem;
325
+ overflow-y: auto;
326
+ max-width: calc(100% - 370px);
327
+ }
328
+
329
+ /* Home Screen */
330
+ .opium-home-container {
331
+ min-height: 75vh;
332
+ display: flex;
333
+ flex-direction: column;
334
+ align-items: center;
335
+ justify-content: center;
336
+ text-align: center;
337
+ padding: 2rem 1rem;
338
+ }
339
+
340
+ .opium-logo-title {
341
+ font-family: var(--font-logo);
342
+ font-size: 5.5rem;
343
+ font-weight: 900;
344
+ color: #ffffff;
345
+ letter-spacing: 0.12em;
346
+ text-shadow: 0 0 45px var(--blue-glow);
347
+ margin-bottom: 0.5rem;
348
+ line-height: 1;
349
+ }
350
+
351
+ .opium-subtitle {
352
+ color: var(--text-blue);
353
+ font-family: var(--font-heading);
354
+ font-size: 1.05rem;
355
+ font-weight: 600;
356
+ letter-spacing: 0.08em;
357
+ margin-bottom: 2.25rem;
358
+ }
359
+
360
+ .opium-search-wrapper {
361
+ max-width: 650px;
362
+ width: 100%;
363
+ background: #040c18;
364
+ border: 1.5px solid var(--blue-border);
365
+ border-radius: 40px;
366
+ display: flex;
367
+ align-items: center;
368
+ padding: 0.75rem 1.5rem;
369
+ gap: 0.85rem;
370
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.7), 0 0 25px rgba(0, 136, 255, 0.25);
371
+ margin-bottom: 2rem;
372
+ transition: all 0.25s ease;
373
+ }
374
+
375
+ .opium-search-wrapper:focus-within {
376
+ border-color: var(--blue-bright);
377
+ box-shadow: 0 10px 45px rgba(0, 0, 0, 0.8), 0 0 35px var(--blue-glow);
378
+ }
379
+
380
+ .opium-search-input {
381
+ background: transparent;
382
+ border: none;
383
+ outline: none;
384
+ color: #fff;
385
+ font-size: 1.05rem;
386
+ width: 100%;
387
+ font-family: var(--font-main);
388
+ }
389
+
390
+ /* Controls Bar */
391
+ .controls-bar {
392
+ display: flex;
393
+ justify-content: space-between;
394
+ align-items: center;
395
+ gap: 1rem;
396
+ margin-bottom: 1.5rem;
397
+ flex-wrap: wrap;
398
+ }
399
+
400
+ .search-box {
401
+ background: #040c18;
402
+ border: 1px solid var(--blue-border);
403
+ border-radius: 25px;
404
+ padding: 0.5rem 1.25rem;
405
+ display: flex;
406
+ align-items: center;
407
+ gap: 0.65rem;
408
+ flex: 1;
409
+ max-width: 400px;
410
+ }
411
+
412
+ .search-box input {
413
+ background: transparent;
414
+ border: none;
415
+ outline: none;
416
+ color: #fff;
417
+ font-size: 0.88rem;
418
+ width: 100%;
419
+ }
420
+
421
+ .filter-pills {
422
+ display: flex;
423
+ gap: 0.35rem;
424
+ flex-wrap: wrap;
425
+ }
426
+
427
+ .filter-btn {
428
+ background: #040c18;
429
+ border: 1px solid var(--blue-border);
430
+ color: #99b8dc;
431
+ padding: 0.4rem 0.85rem;
432
+ font-size: 0.75rem;
433
+ font-weight: 700;
434
+ font-family: var(--font-heading);
435
+ border-radius: 16px;
436
+ cursor: pointer;
437
+ transition: all 0.2s ease;
438
+ }
439
+
440
+ .filter-btn:hover, .filter-btn.active {
441
+ background: var(--blue-primary);
442
+ color: #fff;
443
+ border-color: var(--blue-bright);
444
+ box-shadow: 0 0 12px rgba(0, 136, 255, 0.45);
445
+ }
446
+
447
+ /* Games Grid */
448
+ .games-grid {
449
+ display: grid;
450
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
451
+ gap: 1.15rem;
452
+ }
453
+
454
+ .game-card {
455
+ background: var(--bg-card);
456
+ border: 1px solid var(--blue-border);
457
+ border-radius: var(--radius-md);
458
+ overflow: hidden;
459
+ cursor: pointer;
460
+ transition: all 0.25s ease;
461
+ display: flex;
462
+ flex-direction: column;
463
+ }
464
+
465
+ .game-card:hover {
466
+ transform: translateY(-4px);
467
+ border-color: var(--blue-bright);
468
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.7), 0 0 20px rgba(0, 136, 255, 0.3);
469
+ }
470
+
471
+ .game-thumb-container {
472
+ width: 100%;
473
+ aspect-ratio: 16 / 10;
474
+ overflow: hidden;
475
+ position: relative;
476
+ background: #02060f;
477
+ }
478
+
479
+ .game-thumb {
480
+ width: 100%;
481
+ height: 100%;
482
+ object-fit: cover;
483
+ transition: transform 0.3s ease;
484
+ }
485
+
486
+ .game-card:hover .game-thumb {
487
+ transform: scale(1.05);
488
+ }
489
+
490
+ .game-badge-featured {
491
+ position: absolute;
492
+ top: 8px;
493
+ left: 8px;
494
+ background: #0088ff;
495
+ color: #fff;
496
+ font-size: 0.62rem;
497
+ font-weight: 800;
498
+ font-family: var(--font-heading);
499
+ padding: 0.2rem 0.5rem;
500
+ border-radius: 4px;
501
+ box-shadow: 0 0 10px rgba(0, 136, 255, 0.8);
502
+ }
503
+
504
+ .game-info {
505
+ padding: 0.75rem;
506
+ display: flex;
507
+ flex-direction: column;
508
+ flex: 1;
509
+ }
510
+
511
+ .game-title {
512
+ font-size: 0.88rem;
513
+ font-weight: 700;
514
+ color: #fff;
515
+ white-space: nowrap;
516
+ overflow: hidden;
517
+ text-overflow: ellipsis;
518
+ margin-bottom: 0.35rem;
519
+ }
520
+
521
+ .game-meta {
522
+ display: flex;
523
+ justify-content: space-between;
524
+ align-items: center;
525
+ font-size: 0.72rem;
526
+ color: var(--text-sub);
527
+ margin-bottom: 0.65rem;
528
+ }
529
+
530
+ .btn-fav {
531
+ background: rgba(4, 16, 34, 0.9);
532
+ border: 1px solid rgba(0, 136, 255, 0.4);
533
+ color: #88ccff;
534
+ padding: 0.22rem 0.6rem;
535
+ border-radius: 12px;
536
+ font-size: 0.7rem;
537
+ font-weight: 700;
538
+ font-family: var(--font-heading);
539
+ cursor: pointer;
540
+ transition: all 0.2s ease;
541
+ display: inline-flex;
542
+ align-items: center;
543
+ gap: 0.25rem;
544
+ user-select: none;
545
+ }
546
+
547
+ .btn-fav:hover {
548
+ background: rgba(0, 136, 255, 0.25);
549
+ color: #fff;
550
+ border-color: var(--blue-bright);
551
+ box-shadow: 0 0 10px rgba(0, 136, 255, 0.5);
552
+ transform: scale(1.04);
553
+ }
554
+
555
+ .btn-fav.active {
556
+ background: linear-gradient(135deg, #ffd700, #ff8800);
557
+ color: #000;
558
+ border-color: #ffd700;
559
+ font-weight: 800;
560
+ box-shadow: 0 0 12px rgba(255, 215, 0, 0.6);
561
+ }
562
+
563
+ .btn-fav.active:hover {
564
+ box-shadow: 0 0 16px rgba(255, 215, 0, 0.85);
565
+ }
566
+
567
+ .btn-card-play {
568
+ width: 100%;
569
+ background: #041022;
570
+ border: 1px solid var(--blue-border);
571
+ color: var(--blue-bright);
572
+ padding: 0.45rem;
573
+ font-size: 0.75rem;
574
+ font-weight: 800;
575
+ font-family: var(--font-heading);
576
+ border-radius: 6px;
577
+ cursor: pointer;
578
+ transition: all 0.2s ease;
579
+ margin-top: auto;
580
+ }
581
+
582
+ .game-card:hover .btn-card-play {
583
+ background: var(--blue-primary);
584
+ color: #fff;
585
+ box-shadow: 0 0 15px rgba(0, 136, 255, 0.6);
586
+ }
587
+
588
+ /* Side Chat Panel */
589
+ .side-chat-panel {
590
+ width: 370px;
591
+ background: rgba(4, 10, 20, 0.95);
592
+ border-left: 1px solid var(--blue-border);
593
+ display: flex;
594
+ flex-direction: column;
595
+ height: calc(100vh - 65px);
596
+ position: sticky;
597
+ top: 65px;
598
+ }
599
+
600
+ .red-chat-header {
601
+ padding: 0.85rem 1.15rem;
602
+ border-bottom: 1px solid var(--blue-border);
603
+ display: flex;
604
+ justify-content: space-between;
605
+ align-items: center;
606
+ background: #030812;
607
+ }
608
+
609
+ .red-chat-title {
610
+ font-family: var(--font-heading);
611
+ font-weight: 800;
612
+ font-size: 0.95rem;
613
+ color: #fff;
614
+ display: flex;
615
+ align-items: center;
616
+ gap: 0.5rem;
617
+ }
618
+
619
+ .chat-lock-indicator {
620
+ display: none;
621
+ background: #ff2222;
622
+ color: #fff;
623
+ font-size: 0.62rem;
624
+ padding: 0.15rem 0.45rem;
625
+ border-radius: 4px;
626
+ }
627
+
628
+ .red-chat-messages {
629
+ flex: 1;
630
+ padding: 1rem;
631
+ overflow-y: auto;
632
+ display: flex;
633
+ flex-direction: column;
634
+ gap: 0.75rem;
635
+ }
636
+
637
+ /* Left / Right Chat Message Rows */
638
+ .red-msg-row {
639
+ display: flex;
640
+ gap: 0.6rem;
641
+ max-width: 90%;
642
+ animation: fadeIn 0.2s ease;
643
+ }
644
+
645
+ @keyframes fadeIn {
646
+ from { opacity: 0; transform: translateY(4px); }
647
+ to { opacity: 1; transform: translateY(0); }
648
+ }
649
+
650
+ .msg-self {
651
+ align-self: flex-end;
652
+ flex-direction: row-reverse;
653
+ }
654
+
655
+ .msg-self .red-msg-bubble {
656
+ background: linear-gradient(135deg, #0066cc, #0088ff);
657
+ color: #fff;
658
+ border: 1px solid rgba(0, 210, 255, 0.4);
659
+ border-radius: 12px 12px 2px 12px;
660
+ box-shadow: 0 2px 12px rgba(0, 136, 255, 0.35);
661
+ }
662
+
663
+ .msg-self .red-msg-meta {
664
+ justify-content: flex-end;
665
+ }
666
+
667
+ .msg-other {
668
+ align-self: flex-start;
669
+ }
670
+
671
+ .msg-other .red-msg-bubble {
672
+ background: #07152b;
673
+ color: #e0eeff;
674
+ border: 1px solid rgba(0, 136, 255, 0.2);
675
+ border-radius: 12px 12px 12px 2px;
676
+ }
677
+
678
+ .red-msg-avatar {
679
+ width: 28px;
680
+ height: 28px;
681
+ border-radius: 50%;
682
+ background: #0088ff;
683
+ color: #fff;
684
+ display: flex;
685
+ align-items: center;
686
+ justify-content: center;
687
+ font-weight: 800;
688
+ font-size: 0.72rem;
689
+ flex-shrink: 0;
690
+ }
691
+
692
+ .red-msg-body {
693
+ display: flex;
694
+ flex-direction: column;
695
+ }
696
+
697
+ .red-msg-meta {
698
+ display: flex;
699
+ align-items: center;
700
+ gap: 0.4rem;
701
+ margin-bottom: 0.2rem;
702
+ font-size: 0.72rem;
703
+ }
704
+
705
+ .red-msg-author {
706
+ font-weight: 700;
707
+ color: var(--blue-bright);
708
+ }
709
+
710
+ .red-msg-playtime {
711
+ font-size: 0.65rem;
712
+ color: #88ccff;
713
+ font-family: var(--font-mono);
714
+ }
715
+
716
+ .red-msg-bubble {
717
+ padding: 0.55rem 0.85rem;
718
+ font-size: 0.82rem;
719
+ line-height: 1.45;
720
+ word-break: break-word;
721
+ }
722
+
723
+ .red-btn-del {
724
+ background: none;
725
+ border: none;
726
+ color: #ff5555;
727
+ cursor: pointer;
728
+ font-size: 0.68rem;
729
+ opacity: 0.7;
730
+ }
731
+ .red-btn-del:hover { opacity: 1; }
732
+
733
+ .red-chat-input-bar {
734
+ padding: 0.75rem;
735
+ border-top: 1px solid var(--blue-border);
736
+ background: #030812;
737
+ }
738
+
739
+ .timeout-warning-bar {
740
+ display: none;
741
+ background: rgba(255, 42, 42, 0.2);
742
+ border: 1px solid #ff4444;
743
+ color: #ff8888;
744
+ font-size: 0.72rem;
745
+ padding: 0.35rem 0.65rem;
746
+ border-radius: 4px;
747
+ margin-bottom: 0.5rem;
748
+ text-align: center;
749
+ font-weight: 700;
750
+ }
751
+
752
+ .chat-input-row {
753
+ display: flex;
754
+ gap: 0.4rem;
755
+ }
756
+
757
+ .red-chat-input {
758
+ flex: 1;
759
+ background: #040d1c;
760
+ border: 1px solid var(--blue-border);
761
+ border-radius: 6px;
762
+ padding: 0.55rem 0.75rem;
763
+ color: #fff;
764
+ font-size: 0.82rem;
765
+ outline: none;
766
+ }
767
+ .red-chat-input:focus { border-color: var(--blue-bright); }
768
+
769
+ /* Buttons */
770
+ .btn-primary {
771
+ background: linear-gradient(135deg, #0088ff, #0055cc);
772
+ border: 1px solid var(--blue-bright);
773
+ color: #fff;
774
+ padding: 0.5rem 1rem;
775
+ border-radius: 6px;
776
+ font-weight: 700;
777
+ font-size: 0.8rem;
778
+ font-family: var(--font-heading);
779
+ cursor: pointer;
780
+ transition: all 0.2s ease;
781
+ display: inline-flex;
782
+ align-items: center;
783
+ }
784
+ .btn-primary:hover {
785
+ box-shadow: 0 0 16px var(--blue-glow);
786
+ transform: translateY(-1px);
787
+ }
788
+
789
+ .btn-stealth {
790
+ background: #040c18;
791
+ border: 1px solid var(--blue-border);
792
+ color: #99b8dc;
793
+ padding: 0.45rem 0.9rem;
794
+ border-radius: 6px;
795
+ font-size: 0.78rem;
796
+ font-weight: 600;
797
+ font-family: var(--font-heading);
798
+ cursor: pointer;
799
+ transition: all 0.2s ease;
800
+ }
801
+ .btn-stealth:hover {
802
+ background: var(--bg-hover);
803
+ color: #fff;
804
+ border-color: var(--blue-primary);
805
+ }
806
+
807
+ .btn-icon {
808
+ background: #040c18;
809
+ border: 1px solid var(--blue-border);
810
+ color: #fff;
811
+ width: 28px;
812
+ height: 28px;
813
+ border-radius: 50%;
814
+ cursor: pointer;
815
+ display: flex;
816
+ align-items: center;
817
+ justify-content: center;
818
+ font-size: 0.9rem;
819
+ }
820
+
821
+ /* Mod & Admin Tab Layout */
822
+ .admin-tab-container, .mod-tab-container {
823
+ max-width: 900px;
824
+ margin: 0 auto;
825
+ }
826
+
827
+ .admin-window, .mod-window {
828
+ background: rgba(4, 10, 22, 0.95);
829
+ border: 1.5px solid var(--blue-border);
830
+ border-radius: var(--radius-md);
831
+ padding: 1.75rem;
832
+ box-shadow: 0 15px 50px rgba(0, 0, 0, 0.8);
833
+ }
834
+
835
+ .admin-header, .mod-header {
836
+ display: flex;
837
+ justify-content: space-between;
838
+ align-items: center;
839
+ padding-bottom: 1rem;
840
+ border-bottom: 1px solid var(--blue-border);
841
+ margin-bottom: 1.25rem;
842
+ }
843
+
844
+ .admin-section, .mod-section {
845
+ background: #02060f;
846
+ border: 1px solid var(--blue-border);
847
+ border-radius: var(--radius-sm);
848
+ padding: 1.15rem;
849
+ margin-bottom: 1.15rem;
850
+ }
851
+
852
+ /* Leaderboard */
853
+ .leaderboard-container {
854
+ max-width: 800px;
855
+ margin: 0 auto;
856
+ }
857
+
858
+ .leaderboard-header {
859
+ display: flex;
860
+ justify-content: space-between;
861
+ align-items: center;
862
+ padding: 1.25rem;
863
+ background: #040c18;
864
+ border: 1px solid var(--blue-border);
865
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
866
+ }
867
+
868
+ .leaderboard-list {
869
+ border: 1px solid var(--blue-border);
870
+ border-top: none;
871
+ border-radius: 0 0 var(--radius-md) var(--radius-md);
872
+ background: #02060d;
873
+ }
874
+
875
+ .leaderboard-row {
876
+ display: flex;
877
+ justify-content: space-between;
878
+ align-items: center;
879
+ padding: 0.85rem 1.25rem;
880
+ border-bottom: 1px solid #061324;
881
+ font-size: 0.88rem;
882
+ }
883
+ .leaderboard-row:last-child { border-bottom: none; }
884
+ .leaderboard-row.self-row { background: rgba(0, 136, 255, 0.12); }
885
+
886
+ .leaderboard-rank {
887
+ font-family: var(--font-mono);
888
+ font-weight: 900;
889
+ width: 45px;
890
+ color: var(--blue-bright);
891
+ }
892
+ .leaderboard-user {
893
+ flex: 1;
894
+ display: flex;
895
+ align-items: center;
896
+ gap: 0.5rem;
897
+ }
898
+ .leaderboard-time {
899
+ font-family: var(--font-mono);
900
+ font-weight: 700;
901
+ color: #00d2ff;
902
+ }
903
+
904
+ /* Modals & Player */
905
+ .admin-modal {
906
+ display: none;
907
+ position: fixed;
908
+ top: 0;
909
+ left: 0;
910
+ width: 100vw;
911
+ height: 100vh;
912
+ background: rgba(0, 0, 0, 0.85);
913
+ backdrop-filter: blur(10px);
914
+ z-index: 500;
915
+ align-items: center;
916
+ justify-content: center;
917
+ padding: 1.5rem;
918
+ }
919
+
920
+ .game-player-modal {
921
+ display: none;
922
+ position: fixed;
923
+ top: 0;
924
+ left: 0;
925
+ width: 100vw;
926
+ height: 100vh;
927
+ background: #000;
928
+ z-index: 1000;
929
+ flex-direction: column;
930
+ }
931
+
932
+ .player-toolbar {
933
+ height: 52px;
934
+ background: #040c18;
935
+ border-bottom: 1px solid var(--blue-border);
936
+ display: flex;
937
+ align-items: center;
938
+ justify-content: space-between;
939
+ padding: 0 1.25rem;
940
+ }
941
+
942
+ .player-frame-wrapper {
943
+ flex: 1;
944
+ position: relative;
945
+ background: #000;
946
+ }
947
+
948
+ .player-iframe {
949
+ width: 100%;
950
+ height: 100%;
951
+ border: none;
952
+ }
953
+
954
+ .reaper-watermark {
955
+ position: absolute;
956
+ bottom: 8px;
957
+ right: 12px;
958
+ color: rgba(255, 255, 255, 0.15);
959
+ font-family: var(--font-logo);
960
+ font-weight: 900;
961
+ font-size: 0.85rem;
962
+ pointer-events: none;
963
+ }
964
+
965
+ .toast-box {
966
+ position: fixed;
967
+ bottom: 24px;
968
+ left: 50%;
969
+ transform: translateX(-50%);
970
+ background: rgba(6, 14, 28, 0.95);
971
+ border: 1px solid var(--blue-bright);
972
+ color: #fff;
973
+ padding: 0.65rem 1.4rem;
974
+ border-radius: 25px;
975
+ font-size: 0.82rem;
976
+ font-weight: 700;
977
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.9), 0 0 20px var(--blue-glow);
978
+ z-index: 999999;
979
+ display: none;
980
+ }