reaper-arcade-hub 1.1.6 → 2.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 CHANGED
@@ -1,717 +1,734 @@
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');
1
+ /* ========================================================== */
2
+ /* REAPER HUB V2.0 - PROFESSIONAL CYBERNETIC DARK ARCHITECTURE */
3
+ /* ZERO EMOJIS • BUTTERY 60 FPS • HIGH CONTRAST MINIMALISM */
4
+ /* ========================================================== */
5
+
6
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600;700;800&family=Orbitron:wght@700;900&display=swap');
2
7
 
3
8
  :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);
9
+ --bg-core: #02050b;
10
+ --bg-surface: #060e1c;
11
+ --bg-elevated: #0a172e;
12
+ --bg-card: #040a16;
13
+ --bg-card-hover: #08142a;
14
+
15
+ --cyan-bright: #00f0ff;
16
+ --cyan-glow: rgba(0, 240, 255, 0.4);
17
+ --blue-primary: #0077ff;
18
+ --blue-glow: rgba(0, 119, 255, 0.35);
19
+ --green-neon: #00ffaa;
20
+ --red-alert: #ff3344;
21
+ --gold-owner: #ffd700;
22
+
23
+ --border-subtle: rgba(0, 240, 255, 0.15);
24
+ --border-active: rgba(0, 240, 255, 0.6);
25
+ --border-blue: rgba(0, 119, 255, 0.3);
26
+
11
27
  --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;
28
+ --text-muted: #8ca3c7;
29
+ --text-dim: #4d668c;
30
+
31
+ --font-logo: 'Orbitron', -apple-system, sans-serif;
32
+ --font-heading: 'Orbitron', 'Inter', sans-serif;
33
+ --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
20
34
  --font-mono: 'JetBrains Mono', monospace;
35
+
36
+ --header-height: 64px;
37
+ --radius-sm: 4px;
38
+ --radius-md: 8px;
39
+ --radius-lg: 12px;
21
40
  }
22
41
 
23
- * {
42
+ /* Reset */
43
+ *, *::before, *::after {
44
+ box-sizing: border-box;
24
45
  margin: 0;
25
46
  padding: 0;
26
- box-sizing: border-box;
27
- font-family: var(--font-main);
28
- letter-spacing: -0.01em;
29
47
  }
30
48
 
31
- body {
32
- background-color: var(--bg-dark);
49
+ html, body {
50
+ width: 100%;
51
+ height: 100%;
52
+ background-color: var(--bg-core);
33
53
  color: var(--text-main);
34
- min-height: 100vh;
54
+ font-family: var(--font-body);
55
+ font-size: 15px;
56
+ line-height: 1.5;
35
57
  overflow-x: hidden;
36
- position: relative;
58
+ -webkit-font-smoothing: antialiased;
59
+ }
60
+
61
+ /* Scrollbar */
62
+ ::-webkit-scrollbar {
63
+ width: 6px;
64
+ height: 6px;
65
+ }
66
+ ::-webkit-scrollbar-track {
67
+ background: #02050a;
68
+ }
69
+ ::-webkit-scrollbar-thumb {
70
+ background: var(--bg-elevated);
71
+ border: 1px solid var(--border-subtle);
72
+ border-radius: var(--radius-sm);
73
+ }
74
+ ::-webkit-scrollbar-thumb:hover {
75
+ background: var(--cyan-bright);
37
76
  }
38
77
 
78
+ /* Starfield Background Canvas */
39
79
  #bg-canvas {
40
80
  position: fixed;
41
- top: 0;
42
- left: 0;
81
+ inset: 0;
43
82
  width: 100vw;
44
83
  height: 100vh;
84
+ z-index: 0;
45
85
  pointer-events: none;
46
- z-index: 1;
86
+ opacity: 0.7;
47
87
  }
48
88
 
49
- /* 10-Second Splash Loader with Dynamic Space Background */
50
- #app-splash-screen {
51
- position: fixed;
89
+ /* Top App Header */
90
+ .app-header {
91
+ position: sticky;
52
92
  top: 0;
53
93
  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;
94
+ width: 100%;
95
+ height: var(--header-height);
96
+ background: rgba(2, 6, 14, 0.95);
97
+ backdrop-filter: blur(12px);
98
+ border-bottom: 1px solid var(--border-subtle);
99
+ z-index: 1000;
58
100
  display: flex;
59
101
  align-items: center;
60
- justify-content: center;
61
- transition: opacity 0.6s ease;
62
- overflow: hidden;
102
+ padding: 0 1.5rem;
63
103
  }
64
104
 
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;
105
+ .header-container {
106
+ width: 100%;
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: space-between;
110
+ gap: 1rem;
77
111
  }
78
112
 
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); }
113
+ .header-brand {
114
+ display: flex;
115
+ align-items: center;
116
+ gap: 0.75rem;
117
+ cursor: pointer;
118
+ user-select: none;
83
119
  }
84
120
 
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);
121
+ .brand-icon {
122
+ width: 32px;
123
+ height: 32px;
124
+ background: linear-gradient(135deg, var(--blue-primary), var(--cyan-bright));
125
+ border-radius: var(--radius-sm);
126
+ display: flex;
127
+ align-items: center;
128
+ justify-content: center;
129
+ font-family: var(--font-logo);
130
+ font-weight: 900;
131
+ color: #000;
132
+ font-size: 1rem;
133
+ box-shadow: 0 0 15px var(--cyan-glow);
98
134
  }
99
135
 
100
- .splash-logo {
136
+ .brand-title {
101
137
  font-family: var(--font-logo);
102
- font-size: 3.8rem;
138
+ font-size: 1.4rem;
103
139
  font-weight: 900;
104
- color: #fff;
105
- text-shadow: 0 0 30px var(--blue-glow);
106
140
  letter-spacing: 0.15em;
107
- margin-bottom: 0.2rem;
108
- line-height: 1;
141
+ color: #fff;
142
+ text-transform: uppercase;
109
143
  }
110
144
 
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;
145
+ .brand-tag {
146
+ font-family: var(--font-mono);
147
+ font-size: 0.65rem;
148
+ color: var(--cyan-bright);
149
+ background: rgba(0, 240, 255, 0.1);
150
+ border: 1px solid var(--border-subtle);
151
+ padding: 2px 6px;
152
+ border-radius: var(--radius-sm);
153
+ font-weight: 700;
119
154
  }
120
155
 
121
- .splash-quote-wrapper {
122
- min-height: 48px;
156
+ /* Header Nav Tabs */
157
+ .header-nav {
123
158
  display: flex;
124
159
  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
+ gap: 0.4rem;
160
161
  }
161
162
 
162
- .splash-status-text {
163
+ .nav-tab {
164
+ background: transparent;
165
+ border: 1px solid transparent;
166
+ color: var(--text-muted);
163
167
  font-family: var(--font-mono);
164
- font-size: 0.75rem;
165
- color: var(--text-sub);
168
+ font-size: 0.8rem;
169
+ font-weight: 700;
170
+ padding: 0.45rem 0.9rem;
171
+ border-radius: var(--radius-sm);
172
+ cursor: pointer;
173
+ transition: all 0.15s ease;
166
174
  letter-spacing: 0.05em;
175
+ text-transform: uppercase;
167
176
  }
168
177
 
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
+ .nav-tab:hover {
179
+ color: #fff;
180
+ background: rgba(0, 240, 255, 0.06);
181
+ border-color: var(--border-subtle);
178
182
  }
179
183
 
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;
184
+ .nav-tab.active {
185
+ color: #000;
186
+ background: var(--cyan-bright);
187
+ border-color: var(--cyan-bright);
188
+ box-shadow: 0 0 15px var(--cyan-glow);
189
+ font-weight: 800;
187
190
  }
188
191
 
189
- .brand-logo {
192
+ /* Header Actions */
193
+ .header-actions {
190
194
  display: flex;
191
195
  align-items: center;
192
196
  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
197
  }
215
198
 
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;
199
+ .btn-pill {
200
+ background: var(--bg-surface);
201
+ border: 1px solid var(--border-subtle);
202
+ color: var(--text-muted);
203
+ font-family: var(--font-mono);
204
+ font-size: 0.72rem;
205
+ font-weight: 700;
206
+ padding: 0.4rem 0.75rem;
207
+ border-radius: var(--radius-sm);
225
208
  cursor: pointer;
226
- transition: all 0.2s ease;
209
+ transition: all 0.15s ease;
210
+ display: inline-flex;
211
+ align-items: center;
212
+ gap: 0.4rem;
213
+ letter-spacing: 0.05em;
227
214
  }
228
215
 
229
- .nav-tab-btn:hover {
216
+ .btn-pill:hover {
230
217
  color: #fff;
231
- background: rgba(0, 136, 255, 0.15);
218
+ border-color: var(--cyan-bright);
219
+ background: var(--bg-elevated);
232
220
  }
233
221
 
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);
222
+ .btn-pill-active {
223
+ color: var(--green-neon);
224
+ border-color: rgba(0, 255, 170, 0.5);
225
+ background: rgba(0, 255, 170, 0.08);
238
226
  }
239
227
 
240
- .header-right {
241
- display: flex;
242
- align-items: center;
243
- gap: 0.75rem;
228
+ .btn-pill-alert {
229
+ color: var(--red-alert);
230
+ border-color: rgba(255, 51, 68, 0.4);
231
+ }
232
+ .btn-pill-alert:hover {
233
+ background: rgba(255, 51, 68, 0.15);
244
234
  }
245
235
 
246
- .user-badge {
236
+ /* User Status Pill in Header */
237
+ .user-profile-badge {
247
238
  display: flex;
248
239
  align-items: center;
249
240
  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;
241
+ background: var(--bg-surface);
242
+ border: 1px solid var(--border-subtle);
243
+ padding: 0.25rem 0.65rem 0.25rem 0.35rem;
244
+ border-radius: var(--radius-sm);
256
245
  }
257
246
 
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;
247
+ .user-pfp {
248
+ width: 24px;
249
+ height: 24px;
250
+ border-radius: var(--radius-sm);
251
+ background: linear-gradient(135deg, #0055ff, #00f0ff);
252
+ display: flex;
253
+ align-items: center;
254
+ justify-content: center;
255
+ font-family: var(--font-mono);
256
+ font-weight: 900;
257
+ font-size: 0.75rem;
258
+ color: #000;
267
259
  }
268
260
 
269
- .rank-member {
270
- background: rgba(0, 136, 255, 0.15);
271
- color: #00d2ff;
272
- border: 1px solid rgba(0, 136, 255, 0.4);
261
+ .user-name-text {
262
+ font-size: 0.78rem;
263
+ font-weight: 700;
264
+ color: #fff;
265
+ max-width: 110px;
266
+ white-space: nowrap;
267
+ overflow: hidden;
268
+ text-overflow: ellipsis;
273
269
  }
274
270
 
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);
271
+ .user-rank-tag {
272
+ font-family: var(--font-mono);
273
+ font-size: 0.62rem;
274
+ font-weight: 800;
275
+ padding: 1px 5px;
276
+ border-radius: 3px;
277
+ background: rgba(0, 240, 255, 0.12);
278
+ color: var(--cyan-bright);
279
+ border: 1px solid var(--border-subtle);
280
+ text-transform: uppercase;
280
281
  }
281
282
 
282
283
  .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);
284
+ background: rgba(255, 215, 0, 0.15) !important;
285
+ color: var(--gold-owner) !important;
286
+ border-color: var(--gold-owner) !important;
288
287
  }
289
288
 
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;
289
+ .rank-mod {
290
+ background: rgba(0, 255, 170, 0.15) !important;
291
+ color: var(--green-neon) !important;
292
+ border-color: var(--green-neon) !important;
299
293
  }
300
294
 
301
- @keyframes ownerShimmer {
302
- 0% { background-position: 0% 50%; }
303
- 50% { background-position: 100% 50%; }
304
- 100% { background-position: 0% 50%; }
295
+ /* Layout Grid (Main Viewport + Chat Drawer) */
296
+ .app-viewport {
297
+ position: relative;
298
+ z-index: 10;
299
+ display: flex;
300
+ width: 100vw;
301
+ height: calc(100vh - var(--header-height));
302
+ overflow: hidden;
305
303
  }
306
304
 
307
- @keyframes ownerPulseGlow {
308
- from { filter: drop-shadow(0 0 2px #ffd700); }
309
- to { filter: drop-shadow(0 0 8px #00d2ff); }
305
+ .main-scroll-pane {
306
+ flex: 1;
307
+ height: 100%;
308
+ overflow-y: auto;
309
+ padding: 1.5rem 2rem;
310
310
  }
311
311
 
312
- /* Layout */
313
- .app-layout {
314
- display: flex;
315
- max-width: 1700px;
312
+ /* Tab Sections */
313
+ .tab-content-section {
314
+ display: none;
315
+ max-width: 1300px;
316
316
  margin: 0 auto;
317
- min-height: calc(100vh - 65px);
318
- position: relative;
319
- z-index: 10;
320
317
  }
321
318
 
322
- .content-area {
323
- flex: 1;
324
- padding: 1.5rem;
325
- overflow-y: auto;
326
- max-width: calc(100% - 370px);
319
+ .tab-content-section.active {
320
+ display: block;
327
321
  }
328
322
 
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;
323
+ /* Hero & Search Banner */
324
+ .home-hero-box {
336
325
  text-align: center;
337
- padding: 2rem 1rem;
326
+ padding: 3rem 1rem 2rem 1rem;
327
+ max-width: 720px;
328
+ margin: 0 auto 2rem auto;
338
329
  }
339
330
 
340
- .opium-logo-title {
331
+ .hero-main-title {
341
332
  font-family: var(--font-logo);
342
- font-size: 5.5rem;
333
+ font-size: 3.5rem;
343
334
  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;
335
+ letter-spacing: 0.15em;
336
+ color: #fff;
337
+ text-shadow: 0 0 35px var(--cyan-glow);
338
+ margin-bottom: 0.25rem;
339
+ }
340
+
341
+ .hero-subtitle {
342
+ font-family: var(--font-mono);
343
+ font-size: 0.85rem;
344
+ color: var(--text-muted);
356
345
  letter-spacing: 0.08em;
357
- margin-bottom: 2.25rem;
346
+ margin-bottom: 1.75rem;
358
347
  }
359
348
 
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;
349
+ /* Global Search Input Box */
350
+ .search-pill-container {
366
351
  display: flex;
367
352
  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;
353
+ background: var(--bg-surface);
354
+ border: 1.5px solid var(--border-subtle);
355
+ border-radius: var(--radius-md);
356
+ padding: 0.6rem 1rem;
357
+ margin-bottom: 1.5rem;
358
+ transition: all 0.2s ease;
359
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
360
+ }
361
+
362
+ .search-pill-container:focus-within {
363
+ border-color: var(--cyan-bright);
364
+ box-shadow: 0 0 25px var(--cyan-glow);
373
365
  }
374
366
 
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);
367
+ .search-icon-label {
368
+ font-family: var(--font-mono);
369
+ font-size: 0.75rem;
370
+ font-weight: 800;
371
+ color: var(--cyan-bright);
372
+ padding-right: 0.75rem;
373
+ border-right: 1px solid var(--border-subtle);
374
+ user-select: none;
378
375
  }
379
376
 
380
- .opium-search-input {
377
+ .search-input-field {
378
+ flex: 1;
381
379
  background: transparent;
382
380
  border: none;
383
381
  outline: none;
384
382
  color: #fff;
385
- font-size: 1.05rem;
386
- width: 100%;
387
- font-family: var(--font-main);
383
+ font-family: var(--font-body);
384
+ font-size: 0.95rem;
385
+ padding-left: 0.75rem;
386
+ }
387
+
388
+ .search-input-field::placeholder {
389
+ color: var(--text-dim);
390
+ font-family: var(--font-mono);
391
+ font-size: 0.85rem;
392
+ }
393
+
394
+ /* Recently Played Carousel */
395
+ .recent-shelf-box {
396
+ background: var(--bg-surface);
397
+ border: 1px solid var(--border-subtle);
398
+ border-radius: var(--radius-md);
399
+ padding: 1rem 1.25rem;
400
+ margin-bottom: 2rem;
388
401
  }
389
402
 
390
- /* Controls Bar */
391
- .controls-bar {
403
+ .shelf-header {
392
404
  display: flex;
393
405
  justify-content: space-between;
394
406
  align-items: center;
395
- gap: 1rem;
396
- margin-bottom: 1.5rem;
397
- flex-wrap: wrap;
407
+ margin-bottom: 0.85rem;
398
408
  }
399
409
 
400
- .search-box {
401
- background: #040c18;
402
- border: 1px solid var(--blue-border);
403
- border-radius: 25px;
404
- padding: 0.5rem 1.25rem;
410
+ .shelf-title {
411
+ font-family: var(--font-mono);
412
+ font-size: 0.8rem;
413
+ font-weight: 800;
414
+ color: var(--cyan-bright);
415
+ letter-spacing: 0.08em;
416
+ text-transform: uppercase;
417
+ }
418
+
419
+ .recent-cards-row {
420
+ display: grid;
421
+ grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
422
+ gap: 0.75rem;
423
+ }
424
+
425
+ .recent-game-card {
426
+ background: var(--bg-card);
427
+ border: 1px solid var(--border-subtle);
428
+ border-radius: var(--radius-sm);
429
+ padding: 0.45rem;
430
+ cursor: pointer;
431
+ transition: all 0.15s ease;
405
432
  display: flex;
406
- align-items: center;
407
- gap: 0.65rem;
408
- flex: 1;
409
- max-width: 400px;
433
+ flex-direction: column;
410
434
  }
411
435
 
412
- .search-box input {
413
- background: transparent;
414
- border: none;
415
- outline: none;
416
- color: #fff;
417
- font-size: 0.88rem;
436
+ .recent-game-card:hover {
437
+ border-color: var(--cyan-bright);
438
+ background: var(--bg-card-hover);
439
+ transform: translateY(-2px);
440
+ }
441
+
442
+ .recent-game-img {
418
443
  width: 100%;
444
+ aspect-ratio: 16/10;
445
+ object-fit: cover;
446
+ border-radius: 3px;
447
+ margin-bottom: 0.35rem;
448
+ background: #000;
449
+ }
450
+
451
+ .recent-game-name {
452
+ font-size: 0.72rem;
453
+ font-weight: 700;
454
+ color: #fff;
455
+ white-space: nowrap;
456
+ overflow: hidden;
457
+ text-overflow: ellipsis;
419
458
  }
420
459
 
421
- .filter-pills {
460
+ /* Category Filter Bar */
461
+ .filter-controls-row {
422
462
  display: flex;
423
- gap: 0.35rem;
463
+ align-items: center;
464
+ justify-content: space-between;
465
+ gap: 1rem;
424
466
  flex-wrap: wrap;
467
+ margin-bottom: 1.5rem;
425
468
  }
426
469
 
427
- .filter-btn {
428
- background: #040c18;
429
- border: 1px solid var(--blue-border);
430
- color: #99b8dc;
431
- padding: 0.4rem 0.85rem;
470
+ .category-buttons-group {
471
+ display: flex;
472
+ gap: 0.4rem;
473
+ flex-wrap: wrap;
474
+ }
475
+
476
+ .cat-btn {
477
+ background: var(--bg-surface);
478
+ border: 1px solid var(--border-subtle);
479
+ color: var(--text-muted);
480
+ font-family: var(--font-mono);
432
481
  font-size: 0.75rem;
433
482
  font-weight: 700;
434
- font-family: var(--font-heading);
435
- border-radius: 16px;
483
+ padding: 0.4rem 0.85rem;
484
+ border-radius: var(--radius-sm);
436
485
  cursor: pointer;
437
- transition: all 0.2s ease;
486
+ transition: all 0.15s ease;
487
+ text-transform: uppercase;
438
488
  }
439
489
 
440
- .filter-btn:hover, .filter-btn.active {
441
- background: var(--blue-primary);
490
+ .cat-btn:hover {
442
491
  color: #fff;
443
- border-color: var(--blue-bright);
444
- box-shadow: 0 0 12px rgba(0, 136, 255, 0.45);
492
+ border-color: var(--cyan-bright);
493
+ }
494
+
495
+ .cat-btn.active {
496
+ background: var(--cyan-bright);
497
+ color: #000;
498
+ border-color: var(--cyan-bright);
499
+ font-weight: 800;
500
+ box-shadow: 0 0 12px var(--cyan-glow);
445
501
  }
446
502
 
447
503
  /* Games Grid */
448
- .games-grid {
504
+ .games-display-grid {
449
505
  display: grid;
450
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
451
- gap: 1.15rem;
506
+ grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
507
+ gap: 1rem;
508
+ margin-bottom: 3rem;
452
509
  }
453
510
 
454
- .game-card {
455
- background: linear-gradient(145deg, rgba(8, 18, 36, 0.95) 0%, rgba(4, 10, 22, 0.98) 100%);
456
- border: 1.5px solid var(--blue-border);
511
+ .game-tile {
512
+ background: var(--bg-card);
513
+ border: 1px solid var(--border-subtle);
457
514
  border-radius: var(--radius-md);
458
- overflow: hidden;
459
- cursor: pointer;
460
- transition: transform 0.15s cubic-bezier(0.2, 0, 0.2, 1), box-shadow 0.25s ease, border-color 0.25s ease;
515
+ padding: 0.65rem;
461
516
  display: flex;
462
517
  flex-direction: column;
518
+ transition: all 0.15s ease;
463
519
  position: relative;
464
- transform-style: preserve-3d;
465
- will-change: transform;
466
- }
467
-
468
- .game-card::after {
469
- content: '';
470
- position: absolute;
471
- inset: 0;
472
- background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(0, 210, 255, 0.25) 0%, transparent 65%);
473
- opacity: 0;
474
- transition: opacity 0.3s ease;
475
- pointer-events: none;
476
- mix-blend-mode: screen;
477
- }
478
-
479
- .game-card:hover::after {
480
- opacity: 1;
520
+ cursor: pointer;
481
521
  }
482
522
 
483
- .game-card:hover {
484
- border-color: var(--blue-bright);
485
- box-shadow: 0 16px 36px rgba(0, 0, 0, 0.8), 0 0 25px rgba(0, 136, 255, 0.45);
523
+ .game-tile:hover {
524
+ border-color: var(--cyan-bright);
525
+ background: var(--bg-card-hover);
526
+ transform: translateY(-3px);
527
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.8), 0 0 15px rgba(0, 240, 255, 0.2);
486
528
  }
487
529
 
488
- .game-thumb-container {
530
+ .tile-thumb-box {
531
+ position: relative;
489
532
  width: 100%;
490
- aspect-ratio: 16 / 10;
533
+ aspect-ratio: 16/10;
534
+ border-radius: 5px;
491
535
  overflow: hidden;
492
- position: relative;
493
- background: #02060f;
536
+ background: #000;
537
+ margin-bottom: 0.6rem;
494
538
  }
495
539
 
496
- .game-thumb {
540
+ .tile-img {
497
541
  width: 100%;
498
542
  height: 100%;
499
543
  object-fit: cover;
500
- transition: transform 0.3s ease;
501
- }
502
-
503
- .game-card:hover .game-thumb {
504
- transform: scale(1.05);
544
+ display: block;
505
545
  }
506
546
 
507
- .game-badge-featured {
547
+ .tile-badge-featured {
508
548
  position: absolute;
509
- top: 8px;
510
- left: 8px;
511
- background: #0088ff;
512
- color: #fff;
549
+ top: 6px;
550
+ left: 6px;
551
+ background: rgba(0, 240, 255, 0.9);
552
+ color: #000;
553
+ font-family: var(--font-mono);
513
554
  font-size: 0.62rem;
514
555
  font-weight: 800;
515
- font-family: var(--font-heading);
516
- padding: 0.2rem 0.5rem;
517
- border-radius: 4px;
518
- box-shadow: 0 0 10px rgba(0, 136, 255, 0.8);
556
+ padding: 2px 5px;
557
+ border-radius: 3px;
558
+ letter-spacing: 0.05em;
519
559
  }
520
560
 
521
- .game-info {
522
- padding: 0.75rem;
561
+ .tile-info-box {
523
562
  display: flex;
524
563
  flex-direction: column;
525
564
  flex: 1;
526
565
  }
527
566
 
528
- .game-title {
529
- font-size: 0.88rem;
567
+ .tile-title {
568
+ font-size: 0.82rem;
530
569
  font-weight: 700;
531
570
  color: #fff;
532
571
  white-space: nowrap;
533
572
  overflow: hidden;
534
573
  text-overflow: ellipsis;
535
- margin-bottom: 0.35rem;
536
- }
537
-
538
- .game-meta {
539
- display: flex;
540
- justify-content: space-between;
541
- align-items: center;
542
- font-size: 0.72rem;
543
- color: var(--text-sub);
544
- margin-bottom: 0.65rem;
574
+ margin-bottom: 0.2rem;
545
575
  }
546
576
 
547
- .btn-fav {
548
- background: rgba(4, 16, 34, 0.9);
549
- border: 1px solid rgba(0, 136, 255, 0.4);
550
- color: #88ccff;
551
- padding: 0.22rem 0.6rem;
552
- border-radius: 12px;
553
- font-size: 0.7rem;
554
- font-weight: 700;
555
- font-family: var(--font-heading);
556
- cursor: pointer;
557
- transition: all 0.2s ease;
558
- display: inline-flex;
559
- align-items: center;
560
- gap: 0.25rem;
561
- user-select: none;
577
+ .tile-author {
578
+ font-size: 0.68rem;
579
+ color: var(--text-dim);
580
+ font-family: var(--font-mono);
581
+ white-space: nowrap;
582
+ overflow: hidden;
583
+ text-overflow: ellipsis;
584
+ margin-bottom: 0.6rem;
562
585
  }
563
586
 
564
- .btn-fav:hover {
565
- background: rgba(0, 136, 255, 0.25);
566
- color: #fff;
567
- border-color: var(--blue-bright);
568
- box-shadow: 0 0 10px rgba(0, 136, 255, 0.5);
569
- transform: scale(1.04);
587
+ .tile-actions-row {
588
+ display: flex;
589
+ gap: 0.4rem;
590
+ margin-top: auto;
570
591
  }
571
592
 
572
- .btn-fav.active {
573
- background: linear-gradient(135deg, #ffd700, #ff8800);
574
- color: #000;
575
- border-color: #ffd700;
593
+ .btn-play-trigger {
594
+ flex: 1;
595
+ background: var(--bg-elevated);
596
+ border: 1px solid var(--border-blue);
597
+ color: var(--cyan-bright);
598
+ font-family: var(--font-mono);
599
+ font-size: 0.72rem;
576
600
  font-weight: 800;
577
- box-shadow: 0 0 12px rgba(255, 215, 0, 0.6);
601
+ padding: 0.45rem;
602
+ border-radius: var(--radius-sm);
603
+ cursor: pointer;
604
+ transition: all 0.15s ease;
605
+ text-align: center;
578
606
  }
579
607
 
580
- .btn-fav.active:hover {
581
- box-shadow: 0 0 16px rgba(255, 215, 0, 0.85);
608
+ .btn-play-trigger:hover {
609
+ background: var(--cyan-bright);
610
+ color: #000;
611
+ border-color: var(--cyan-bright);
612
+ box-shadow: 0 0 12px var(--cyan-glow);
582
613
  }
583
614
 
584
- .btn-card-play {
585
- width: 100%;
586
- background: #041022;
587
- border: 1px solid var(--blue-border);
588
- color: var(--blue-bright);
589
- padding: 0.45rem;
615
+ .btn-fav-star {
616
+ background: transparent;
617
+ border: 1px solid var(--border-subtle);
618
+ color: var(--text-muted);
619
+ padding: 0.45rem 0.6rem;
590
620
  font-size: 0.75rem;
591
- font-weight: 800;
592
- font-family: var(--font-heading);
593
- border-radius: 6px;
621
+ border-radius: var(--radius-sm);
594
622
  cursor: pointer;
595
- transition: all 0.2s ease;
596
- margin-top: auto;
623
+ transition: all 0.15s ease;
624
+ font-family: var(--font-mono);
597
625
  }
598
626
 
599
- .game-card:hover .btn-card-play {
600
- background: var(--blue-primary);
601
- color: #fff;
602
- box-shadow: 0 0 15px rgba(0, 136, 255, 0.6);
627
+ .btn-fav-star:hover {
628
+ color: var(--gold-owner);
629
+ border-color: var(--gold-owner);
603
630
  }
604
631
 
605
- /* Side Chat Panel */
606
- .side-chat-panel {
607
- width: 370px;
608
- background: rgba(4, 10, 20, 0.95);
609
- border-left: 1px solid var(--blue-border);
632
+ .btn-fav-star.active {
633
+ background: rgba(255, 215, 0, 0.15);
634
+ color: var(--gold-owner);
635
+ border-color: var(--gold-owner);
636
+ font-weight: 800;
637
+ }
638
+
639
+ /* Side Chat & DM Panel */
640
+ .side-chat-drawer {
641
+ width: 360px;
642
+ height: 100%;
643
+ background: rgba(4, 10, 22, 0.98);
644
+ border-left: 1px solid var(--border-subtle);
610
645
  display: flex;
611
646
  flex-direction: column;
612
- height: calc(100vh - 65px);
613
- position: sticky;
614
- top: 65px;
647
+ flex-shrink: 0;
615
648
  }
616
649
 
617
- .red-chat-header {
650
+ .chat-panel-header {
618
651
  padding: 0.85rem 1.15rem;
619
- border-bottom: 1px solid var(--blue-border);
652
+ border-bottom: 1px solid var(--border-subtle);
620
653
  display: flex;
621
654
  justify-content: space-between;
622
655
  align-items: center;
623
- background: #030812;
656
+ background: #030712;
624
657
  }
625
658
 
626
- .red-chat-title {
627
- font-family: var(--font-heading);
628
- font-weight: 800;
629
- font-size: 0.95rem;
630
- color: #fff;
659
+ .chat-panel-tabs {
631
660
  display: flex;
632
- align-items: center;
633
- gap: 0.5rem;
661
+ gap: 0.35rem;
634
662
  }
635
663
 
636
- .chat-lock-indicator {
637
- display: none;
638
- background: #ff2222;
639
- color: #fff;
640
- font-size: 0.62rem;
641
- padding: 0.15rem 0.45rem;
642
- border-radius: 4px;
664
+ .chat-subtab-btn {
665
+ background: transparent;
666
+ border: 1px solid transparent;
667
+ color: var(--text-muted);
668
+ font-family: var(--font-mono);
669
+ font-size: 0.72rem;
670
+ font-weight: 700;
671
+ padding: 0.35rem 0.65rem;
672
+ border-radius: var(--radius-sm);
673
+ cursor: pointer;
674
+ transition: all 0.15s ease;
675
+ text-transform: uppercase;
643
676
  }
644
677
 
645
- .red-chat-messages {
678
+ .chat-subtab-btn.active {
679
+ color: #000;
680
+ background: var(--cyan-bright);
681
+ font-weight: 800;
682
+ }
683
+
684
+ .chat-messages-container {
646
685
  flex: 1;
647
- padding: 1rem;
648
686
  overflow-y: auto;
687
+ padding: 1rem;
649
688
  display: flex;
650
689
  flex-direction: column;
651
690
  gap: 0.75rem;
652
691
  }
653
692
 
654
- /* Left / Right Chat Message Rows */
655
- .red-msg-row {
693
+ .chat-message-row {
656
694
  display: flex;
657
695
  gap: 0.6rem;
658
- max-width: 90%;
659
- animation: fadeIn 0.2s ease;
660
- }
661
-
662
- @keyframes fadeIn {
663
- from { opacity: 0; transform: translateY(4px); }
664
- to { opacity: 1; transform: translateY(0); }
665
- }
666
-
667
- .msg-self {
668
- align-self: flex-end;
669
- flex-direction: row-reverse;
670
- }
671
-
672
- .msg-self .red-msg-bubble {
673
- background: linear-gradient(135deg, #0066cc, #0088ff);
674
- color: #fff;
675
- border: 1px solid rgba(0, 210, 255, 0.4);
676
- border-radius: 12px 12px 2px 12px;
677
- box-shadow: 0 2px 12px rgba(0, 136, 255, 0.35);
678
- }
679
-
680
- .msg-self .red-msg-meta {
681
- justify-content: flex-end;
682
- }
683
-
684
- .msg-other {
685
- align-self: flex-start;
686
- }
687
-
688
- .msg-other .red-msg-bubble {
689
- background: #07152b;
690
- color: #e0eeff;
691
- border: 1px solid rgba(0, 136, 255, 0.2);
692
- border-radius: 12px 12px 12px 2px;
696
+ align-items: flex-start;
693
697
  }
694
698
 
695
- .red-msg-avatar {
699
+ .msg-pfp {
696
700
  width: 28px;
697
701
  height: 28px;
698
- border-radius: 50%;
699
- background: #0088ff;
700
- color: #fff;
702
+ border-radius: var(--radius-sm);
703
+ background: var(--bg-elevated);
704
+ border: 1px solid var(--border-subtle);
701
705
  display: flex;
702
706
  align-items: center;
703
707
  justify-content: center;
708
+ font-family: var(--font-mono);
709
+ font-size: 0.75rem;
704
710
  font-weight: 800;
705
- font-size: 0.72rem;
711
+ color: var(--cyan-bright);
706
712
  flex-shrink: 0;
707
713
  }
708
714
 
709
- .red-msg-body {
715
+ .msg-pfp-owner {
716
+ background: linear-gradient(135deg, #ffd700, #ff8800) !important;
717
+ color: #000 !important;
718
+ }
719
+
720
+ .msg-pfp-mod {
721
+ background: #00ffaa !important;
722
+ color: #000 !important;
723
+ }
724
+
725
+ .msg-content-box {
726
+ flex: 1;
710
727
  display: flex;
711
728
  flex-direction: column;
712
729
  }
713
730
 
714
- .red-msg-meta {
731
+ .msg-header-meta {
715
732
  display: flex;
716
733
  align-items: center;
717
734
  gap: 0.4rem;
@@ -719,411 +736,270 @@ body {
719
736
  font-size: 0.72rem;
720
737
  }
721
738
 
722
- .red-msg-author {
739
+ .msg-author-name {
723
740
  font-weight: 700;
724
- color: var(--blue-bright);
741
+ color: var(--cyan-bright);
742
+ cursor: pointer;
725
743
  }
726
744
 
727
- .red-msg-playtime {
745
+ .msg-time-stamp {
728
746
  font-size: 0.65rem;
729
- color: #88ccff;
747
+ color: var(--text-dim);
730
748
  font-family: var(--font-mono);
731
749
  }
732
750
 
733
- .red-msg-bubble {
734
- padding: 0.55rem 0.85rem;
735
- font-size: 0.82rem;
736
- line-height: 1.45;
737
- word-break: break-word;
738
- }
739
-
740
- .red-btn-del {
741
- background: none;
751
+ .btn-msg-del {
752
+ background: transparent;
742
753
  border: none;
743
- color: #ff5555;
744
- cursor: pointer;
754
+ color: var(--red-alert);
745
755
  font-size: 0.68rem;
746
- opacity: 0.7;
756
+ cursor: pointer;
757
+ margin-left: auto;
758
+ font-family: var(--font-mono);
759
+ font-weight: bold;
747
760
  }
748
- .red-btn-del:hover { opacity: 1; }
749
761
 
750
- .red-chat-input-bar {
751
- padding: 0.75rem;
752
- border-top: 1px solid var(--blue-border);
753
- background: #030812;
762
+ .msg-text-bubble {
763
+ background: #030814;
764
+ border: 1px solid rgba(0, 240, 255, 0.12);
765
+ border-radius: var(--radius-sm);
766
+ padding: 0.5rem 0.75rem;
767
+ font-size: 0.82rem;
768
+ color: #e0eeff;
769
+ line-height: 1.4;
770
+ word-break: break-word;
754
771
  }
755
772
 
756
- .timeout-warning-bar {
757
- display: none;
758
- background: rgba(255, 42, 42, 0.2);
759
- border: 1px solid #ff4444;
760
- color: #ff8888;
761
- font-size: 0.72rem;
762
- padding: 0.35rem 0.65rem;
763
- border-radius: 4px;
764
- margin-bottom: 0.5rem;
765
- text-align: center;
766
- font-weight: 700;
773
+ .chat-input-toolbar {
774
+ padding: 0.85rem 1rem;
775
+ border-top: 1px solid var(--border-subtle);
776
+ background: #030712;
777
+ display: flex;
778
+ flex-direction: column;
779
+ gap: 0.5rem;
767
780
  }
768
781
 
769
782
  .chat-input-row {
770
783
  display: flex;
771
- gap: 0.4rem;
784
+ gap: 0.5rem;
772
785
  }
773
786
 
774
- .red-chat-input {
787
+ .chat-input-text {
775
788
  flex: 1;
776
- background: #040d1c;
777
- border: 1px solid var(--blue-border);
778
- border-radius: 6px;
779
- padding: 0.55rem 0.75rem;
789
+ background: #040c18;
790
+ border: 1px solid var(--border-subtle);
791
+ border-radius: var(--radius-sm);
792
+ padding: 0.6rem 0.85rem;
780
793
  color: #fff;
781
- font-size: 0.82rem;
794
+ font-size: 0.85rem;
795
+ font-family: var(--font-body);
782
796
  outline: none;
783
797
  }
784
- .red-chat-input:focus { border-color: var(--blue-bright); }
785
-
786
- /* Buttons */
787
- .btn-primary {
788
- background: linear-gradient(135deg, #0088ff, #0055cc);
789
- border: 1px solid var(--blue-bright);
790
- color: #fff;
791
- padding: 0.5rem 1rem;
792
- border-radius: 6px;
793
- font-weight: 700;
794
- font-size: 0.8rem;
795
- font-family: var(--font-heading);
796
- cursor: pointer;
797
- transition: all 0.2s ease;
798
- display: inline-flex;
799
- align-items: center;
800
- }
801
- .btn-primary:hover {
802
- box-shadow: 0 0 16px var(--blue-glow);
803
- transform: translateY(-1px);
798
+ .chat-input-text:focus {
799
+ border-color: var(--cyan-bright);
804
800
  }
805
801
 
806
- .btn-stealth {
807
- background: #040c18;
808
- border: 1px solid var(--blue-border);
809
- color: #99b8dc;
810
- padding: 0.45rem 0.9rem;
811
- border-radius: 6px;
802
+ .btn-chat-send {
803
+ background: var(--cyan-bright);
804
+ color: #000;
805
+ border: none;
806
+ font-family: var(--font-mono);
807
+ font-weight: 800;
812
808
  font-size: 0.78rem;
813
- font-weight: 600;
814
- font-family: var(--font-heading);
815
- cursor: pointer;
816
- transition: all 0.2s ease;
817
- }
818
- .btn-stealth:hover {
819
- background: var(--bg-hover);
820
- color: #fff;
821
- border-color: var(--blue-primary);
822
- }
823
-
824
- .btn-icon {
825
- background: #040c18;
826
- border: 1px solid var(--blue-border);
827
- color: #fff;
828
- width: 28px;
829
- height: 28px;
830
- border-radius: 50%;
809
+ padding: 0 1rem;
810
+ border-radius: var(--radius-sm);
831
811
  cursor: pointer;
832
- display: flex;
833
- align-items: center;
834
- justify-content: center;
835
- font-size: 0.9rem;
812
+ transition: all 0.15s ease;
836
813
  }
837
-
838
- /* Mod & Admin Tab Layout */
839
- .admin-tab-container, .mod-tab-container {
840
- max-width: 900px;
841
- margin: 0 auto;
814
+ .btn-chat-send:hover {
815
+ background: #fff;
842
816
  }
843
817
 
844
- .admin-window, .mod-window {
845
- background: rgba(4, 10, 22, 0.95);
846
- border: 1.5px solid var(--blue-border);
847
- border-radius: var(--radius-md);
848
- padding: 1.75rem;
849
- box-shadow: 0 15px 50px rgba(0, 0, 0, 0.8);
818
+ /* Game Player Modal (Full Overlay) */
819
+ .game-player-overlay {
820
+ display: none;
821
+ position: fixed;
822
+ inset: 0;
823
+ width: 100vw;
824
+ height: 100vh;
825
+ background: #000;
826
+ z-index: 999999;
827
+ flex-direction: column;
850
828
  }
851
829
 
852
- .admin-header, .mod-header {
830
+ .player-header-bar {
831
+ height: 52px;
832
+ background: #020612;
833
+ border-bottom: 1px solid var(--border-subtle);
853
834
  display: flex;
854
- justify-content: space-between;
855
835
  align-items: center;
856
- padding-bottom: 1rem;
857
- border-bottom: 1px solid var(--blue-border);
858
- margin-bottom: 1.25rem;
859
- }
860
-
861
- .admin-section, .mod-section {
862
- background: #02060f;
863
- border: 1px solid var(--blue-border);
864
- border-radius: var(--radius-sm);
865
- padding: 1.15rem;
866
- margin-bottom: 1.15rem;
867
- }
868
-
869
- /* Leaderboard */
870
- .leaderboard-container {
871
- max-width: 800px;
872
- margin: 0 auto;
873
- }
874
-
875
- .leaderboard-header {
876
- display: flex;
877
836
  justify-content: space-between;
878
- align-items: center;
879
- padding: 1.25rem;
880
- background: #040c18;
881
- border: 1px solid var(--blue-border);
882
- border-radius: var(--radius-md) var(--radius-md) 0 0;
837
+ padding: 0 1.25rem;
883
838
  }
884
839
 
885
- .leaderboard-list {
886
- border: 1px solid var(--blue-border);
887
- border-top: none;
888
- border-radius: 0 0 var(--radius-md) var(--radius-md);
889
- background: #02060d;
840
+ .player-title-display {
841
+ font-family: var(--font-logo);
842
+ font-size: 1.1rem;
843
+ font-weight: 900;
844
+ color: #fff;
845
+ letter-spacing: 0.05em;
890
846
  }
891
847
 
892
- .leaderboard-row {
893
- display: flex;
894
- justify-content: space-between;
895
- align-items: center;
896
- padding: 0.85rem 1.25rem;
897
- border-bottom: 1px solid #061324;
898
- font-size: 0.88rem;
848
+ .player-status-tag {
849
+ font-family: var(--font-mono);
850
+ font-size: 0.68rem;
851
+ color: var(--green-neon);
852
+ background: rgba(0, 255, 170, 0.1);
853
+ border: 1px solid rgba(0, 255, 170, 0.3);
854
+ padding: 2px 6px;
855
+ border-radius: 3px;
856
+ font-weight: 700;
899
857
  }
900
- .leaderboard-row:last-child { border-bottom: none; }
901
- .leaderboard-row.self-row { background: rgba(0, 136, 255, 0.12); }
902
858
 
903
- .leaderboard-rank {
859
+ .player-playtime-tag {
904
860
  font-family: var(--font-mono);
905
- font-weight: 900;
906
- width: 45px;
907
- color: var(--blue-bright);
861
+ font-size: 0.75rem;
862
+ color: var(--cyan-bright);
863
+ font-weight: 800;
864
+ margin-left: 0.5rem;
908
865
  }
909
- .leaderboard-user {
866
+
867
+ .player-iframe-frame {
910
868
  flex: 1;
911
- display: flex;
912
- align-items: center;
913
- gap: 0.5rem;
914
- }
915
- .leaderboard-time {
916
- font-family: var(--font-mono);
917
- font-weight: 700;
918
- color: #00d2ff;
869
+ width: 100%;
870
+ height: calc(100vh - 52px);
871
+ border: none;
872
+ background: #000;
873
+ display: block;
919
874
  }
920
875
 
921
- /* Modals & Player */
922
- .admin-modal {
876
+ /* Modals & Dialogs */
877
+ .modal-backdrop {
923
878
  display: none;
924
879
  position: fixed;
925
- top: 0;
926
- left: 0;
880
+ inset: 0;
927
881
  width: 100vw;
928
882
  height: 100vh;
929
- background: rgba(0, 0, 0, 0.85);
930
- backdrop-filter: blur(10px);
931
- z-index: 500;
883
+ background: rgba(0, 0, 0, 0.88);
884
+ backdrop-filter: blur(8px);
885
+ z-index: 99990;
932
886
  align-items: center;
933
887
  justify-content: center;
934
888
  padding: 1.5rem;
935
889
  }
936
890
 
937
- .game-player-modal {
938
- display: none;
939
- position: fixed;
940
- inset: 0;
941
- width: 100vw;
942
- height: 100vh;
943
- background: #000;
944
- z-index: 99999;
945
- flex-direction: column;
891
+ .modal-dialog-box {
892
+ background: var(--bg-surface);
893
+ border: 1.5px solid var(--border-subtle);
894
+ border-radius: var(--radius-md);
895
+ box-shadow: 0 0 50px rgba(0, 0, 0, 0.9), 0 0 30px var(--cyan-glow);
896
+ max-width: 540px;
897
+ width: 100%;
898
+ padding: 2rem;
899
+ position: relative;
946
900
  }
947
901
 
948
- .player-toolbar {
949
- height: 52px;
950
- background: #040c18;
951
- border-bottom: 1px solid var(--blue-border);
902
+ .modal-header {
952
903
  display: flex;
953
- align-items: center;
954
904
  justify-content: space-between;
955
- padding: 0 1.25rem;
956
- }
957
-
958
- .player-frame-wrapper {
959
- flex: 1;
960
- position: relative;
961
- background: #000;
962
- display: flex;
963
905
  align-items: center;
964
- justify-content: center;
965
- width: 100%;
966
- height: calc(100vh - 52px);
967
- overflow: hidden;
968
- }
969
-
970
- .player-iframe {
971
- width: 100%;
972
- height: 100%;
973
- border: none;
974
- display: block;
975
- background: #000;
976
- outline: none;
906
+ margin-bottom: 1.25rem;
907
+ border-bottom: 1px solid var(--border-subtle);
908
+ padding-bottom: 0.85rem;
977
909
  }
978
910
 
979
- .reaper-watermark {
980
- position: absolute;
981
- bottom: 8px;
982
- right: 12px;
983
- color: rgba(255, 255, 255, 0.15);
911
+ .modal-title {
984
912
  font-family: var(--font-logo);
913
+ font-size: 1.3rem;
985
914
  font-weight: 900;
986
- font-size: 0.85rem;
987
- pointer-events: none;
988
- }
989
-
990
- .toast-box {
991
- position: fixed;
992
- bottom: 24px;
993
- left: 50%;
994
- transform: translateX(-50%);
995
- background: rgba(6, 14, 28, 0.95);
996
- border: 1px solid var(--blue-bright);
997
- color: #fff;
998
- padding: 0.65rem 1.4rem;
999
- border-radius: 24px;
1000
- font-size: 0.85rem;
1001
- font-weight: 700;
1002
- box-shadow: 0 0 25px var(--blue-glow);
1003
- z-index: 99999;
1004
- display: none;
1005
- animation: toastPop 0.3s ease;
915
+ color: var(--cyan-bright);
916
+ letter-spacing: 0.08em;
1006
917
  }
1007
918
 
1008
- /* Fluid Tab Slide & Fade */
1009
- .tab-section {
1010
- animation: tabSlideFade 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
919
+ .btn-close-modal {
920
+ background: transparent;
921
+ border: none;
922
+ color: var(--text-muted);
923
+ font-size: 1.25rem;
924
+ cursor: pointer;
925
+ font-family: var(--font-mono);
1011
926
  }
1012
-
1013
- @keyframes tabSlideFade {
1014
- from {
1015
- opacity: 0;
1016
- transform: translateY(10px) scale(0.99);
1017
- }
1018
- to {
1019
- opacity: 1;
1020
- transform: translateY(0) scale(1);
1021
- }
927
+ .btn-close-modal:hover {
928
+ color: #fff;
1022
929
  }
1023
930
 
1024
- /* Recently Played Carousel Grid */
1025
- .recent-bar-container {
1026
- width: 100%;
1027
- max-width: 680px;
1028
- margin-bottom: 1.5rem;
1029
- background: rgba(4, 12, 24, 0.85);
1030
- border: 1.5px solid var(--blue-border);
1031
- border-radius: var(--radius-md);
1032
- padding: 0.85rem 1.15rem;
1033
- box-shadow: 0 0 20px rgba(0, 136, 255, 0.15);
931
+ /* Buttons */
932
+ .btn-primary {
933
+ background: linear-gradient(135deg, var(--blue-primary), var(--cyan-bright));
934
+ color: #000;
935
+ border: none;
936
+ font-family: var(--font-mono);
937
+ font-weight: 800;
938
+ font-size: 0.85rem;
939
+ padding: 0.65rem 1.25rem;
940
+ border-radius: var(--radius-sm);
941
+ cursor: pointer;
942
+ transition: all 0.15s ease;
943
+ letter-spacing: 0.05em;
944
+ display: inline-flex;
945
+ align-items: center;
946
+ gap: 0.4rem;
1034
947
  }
1035
-
1036
- .recent-grid {
1037
- display: grid;
1038
- grid-template-columns: repeat(auto-fill, minmax(95px, 1fr));
1039
- gap: 0.65rem;
1040
- margin-top: 0.65rem;
948
+ .btn-primary:hover {
949
+ box-shadow: 0 0 20px var(--cyan-glow);
950
+ transform: translateY(-1px);
1041
951
  }
1042
952
 
1043
- .recent-card {
1044
- background: #020712;
1045
- border: 1px solid var(--blue-border);
1046
- border-radius: 6px;
1047
- padding: 0.4rem;
1048
- text-align: center;
953
+ .btn-stealth {
954
+ background: transparent;
955
+ border: 1px solid var(--border-subtle);
956
+ color: var(--text-muted);
957
+ font-family: var(--font-mono);
958
+ font-weight: 700;
959
+ font-size: 0.82rem;
960
+ padding: 0.55rem 1rem;
961
+ border-radius: var(--radius-sm);
1049
962
  cursor: pointer;
1050
- transition: all 0.2s cubic-bezier(0.2, 0, 0.2, 1);
1051
- display: flex;
1052
- flex-direction: column;
963
+ transition: all 0.15s ease;
964
+ display: inline-flex;
1053
965
  align-items: center;
966
+ gap: 0.4rem;
1054
967
  }
1055
-
1056
- .recent-card:hover {
1057
- border-color: var(--blue-bright);
1058
- transform: translateY(-3px) scale(1.04);
1059
- box-shadow: 0 6px 18px rgba(0, 136, 255, 0.45);
1060
- }
1061
-
1062
- .recent-card-img {
1063
- width: 100%;
1064
- aspect-ratio: 16/10;
1065
- object-fit: cover;
1066
- border-radius: 4px;
1067
- margin-bottom: 0.3rem;
968
+ .btn-stealth:hover {
969
+ color: #fff;
970
+ border-color: var(--cyan-bright);
971
+ background: var(--bg-elevated);
1068
972
  }
1069
973
 
1070
- .recent-card-name {
1071
- font-size: 0.68rem;
1072
- font-weight: 700;
974
+ /* Toast */
975
+ .toast-banner {
976
+ position: fixed;
977
+ bottom: 24px;
978
+ right: 24px;
979
+ background: #030914;
980
+ border: 1.5px solid var(--cyan-bright);
1073
981
  color: #fff;
1074
- white-space: nowrap;
1075
- overflow: hidden;
1076
- text-overflow: ellipsis;
1077
- width: 100%;
982
+ font-family: var(--font-mono);
983
+ font-size: 0.82rem;
984
+ font-weight: 700;
985
+ padding: 0.75rem 1.25rem;
986
+ border-radius: var(--radius-sm);
987
+ box-shadow: 0 0 25px var(--cyan-glow);
988
+ z-index: 9999999;
989
+ display: none;
990
+ letter-spacing: 0.04em;
1078
991
  }
1079
992
 
1080
- /* ========================================== */
1081
- /* POTATO PC & LOW-SPEC PERFORMANCE MODE */
1082
- /* ========================================== */
993
+ /* Performance Mode (Zero CPU Stutter) */
1083
994
  body.performance-mode #bg-canvas {
1084
995
  display: none !important;
1085
996
  }
1086
-
1087
- body.performance-mode *,
1088
- body.performance-mode *::before,
1089
- body.performance-mode *::after {
997
+ body.performance-mode *, body.performance-mode *::before, body.performance-mode *::after {
1090
998
  backdrop-filter: none !important;
1091
999
  -webkit-backdrop-filter: none !important;
1092
1000
  box-shadow: none !important;
1093
1001
  text-shadow: none !important;
1094
1002
  }
1095
-
1096
1003
  body.performance-mode {
1097
- background: #020712 !important;
1098
- }
1099
-
1100
- body.performance-mode .app-header {
1101
- background: #030814 !important;
1102
- border-bottom: 1px solid #1a2a44 !important;
1103
- }
1104
-
1105
- body.performance-mode .side-chat-panel,
1106
- body.performance-mode .hero-card,
1107
- body.performance-mode .admin-window,
1108
- body.performance-mode .splash-content,
1109
- body.performance-mode .recent-bar-container,
1110
- body.performance-mode .game-card {
1111
- background: #040c18 !important;
1112
- box-shadow: none !important;
1113
- transition: border-color 0.15s ease !important;
1114
- transform: none !important;
1115
- }
1116
-
1117
- body.performance-mode .game-card:hover {
1118
- transform: none !important;
1119
- border-color: #0088ff !important;
1120
- box-shadow: none !important;
1121
- }
1122
-
1123
- body.performance-mode .game-thumb {
1124
- image-rendering: auto;
1125
- }
1126
-
1127
- body.performance-mode .tab-section {
1128
- animation: none !important;
1004
+ background: #020408 !important;
1129
1005
  }