reaper-arcade-hub 2.0.1 → 2.0.2

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,734 +1,717 @@
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');
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');
7
2
 
8
3
  :root {
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
-
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);
27
11
  --text-main: #ffffff;
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;
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;
34
20
  --font-mono: 'JetBrains Mono', monospace;
35
-
36
- --header-height: 64px;
37
- --radius-sm: 4px;
38
- --radius-md: 8px;
39
- --radius-lg: 12px;
40
21
  }
41
22
 
42
- /* Reset */
43
- *, *::before, *::after {
44
- box-sizing: border-box;
23
+ * {
45
24
  margin: 0;
46
25
  padding: 0;
26
+ box-sizing: border-box;
27
+ font-family: var(--font-main);
28
+ letter-spacing: -0.01em;
47
29
  }
48
30
 
49
- html, body {
50
- width: 100%;
51
- height: 100%;
52
- background-color: var(--bg-core);
31
+ body {
32
+ background-color: var(--bg-dark);
53
33
  color: var(--text-main);
54
- font-family: var(--font-body);
55
- font-size: 15px;
56
- line-height: 1.5;
34
+ min-height: 100vh;
57
35
  overflow-x: hidden;
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);
36
+ position: relative;
76
37
  }
77
38
 
78
- /* Starfield Background Canvas */
79
39
  #bg-canvas {
80
40
  position: fixed;
81
- inset: 0;
41
+ top: 0;
42
+ left: 0;
82
43
  width: 100vw;
83
44
  height: 100vh;
84
- z-index: 0;
85
45
  pointer-events: none;
86
- opacity: 0.7;
46
+ z-index: 1;
87
47
  }
88
48
 
89
- /* Top App Header */
90
- .app-header {
91
- position: sticky;
49
+ /* 10-Second Splash Loader with Dynamic Space Background */
50
+ #app-splash-screen {
51
+ position: fixed;
92
52
  top: 0;
93
53
  left: 0;
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;
54
+ width: 100vw;
55
+ height: 100vh;
56
+ background: radial-gradient(circle at 50% 50%, #091a38 0%, #030a16 50%, #010408 100%);
57
+ z-index: 99999;
100
58
  display: flex;
101
59
  align-items: center;
102
- padding: 0 1.5rem;
60
+ justify-content: center;
61
+ transition: opacity 0.6s ease;
62
+ overflow: hidden;
103
63
  }
104
64
 
105
- .header-container {
106
- width: 100%;
107
- display: flex;
108
- align-items: center;
109
- justify-content: space-between;
110
- gap: 1rem;
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;
111
77
  }
112
78
 
113
- .header-brand {
114
- display: flex;
115
- align-items: center;
116
- gap: 0.75rem;
117
- cursor: pointer;
118
- user-select: none;
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); }
119
83
  }
120
84
 
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);
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);
134
98
  }
135
99
 
136
- .brand-title {
100
+ .splash-logo {
137
101
  font-family: var(--font-logo);
138
- font-size: 1.4rem;
102
+ font-size: 3.8rem;
139
103
  font-weight: 900;
140
- letter-spacing: 0.15em;
141
104
  color: #fff;
142
- text-transform: uppercase;
105
+ text-shadow: 0 0 30px var(--blue-glow);
106
+ letter-spacing: 0.15em;
107
+ margin-bottom: 0.2rem;
108
+ line-height: 1;
143
109
  }
144
110
 
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;
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;
154
119
  }
155
120
 
156
- /* Header Nav Tabs */
157
- .header-nav {
121
+ .splash-quote-wrapper {
122
+ min-height: 48px;
158
123
  display: flex;
159
124
  align-items: center;
160
- gap: 0.4rem;
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;
161
141
  }
162
142
 
163
- .nav-tab {
164
- background: transparent;
165
- border: 1px solid transparent;
166
- color: var(--text-muted);
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 {
167
163
  font-family: var(--font-mono);
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;
164
+ font-size: 0.75rem;
165
+ color: var(--text-sub);
174
166
  letter-spacing: 0.05em;
175
- text-transform: uppercase;
176
167
  }
177
168
 
178
- .nav-tab:hover {
179
- color: #fff;
180
- background: rgba(0, 240, 255, 0.06);
181
- border-color: var(--border-subtle);
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);
182
178
  }
183
179
 
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;
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;
190
187
  }
191
188
 
192
- /* Header Actions */
193
- .header-actions {
189
+ .brand-logo {
194
190
  display: flex;
195
191
  align-items: center;
196
192
  gap: 0.5rem;
197
- }
198
-
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);
208
193
  cursor: pointer;
209
- transition: all 0.15s ease;
210
- display: inline-flex;
211
- align-items: center;
212
- gap: 0.4rem;
213
- letter-spacing: 0.05em;
194
+ user-select: none;
214
195
  }
215
196
 
216
- .btn-pill:hover {
197
+ .brand-logo span {
198
+ font-family: var(--font-logo);
199
+ font-size: 1.85rem;
200
+ font-weight: 900;
217
201
  color: #fff;
218
- border-color: var(--cyan-bright);
219
- background: var(--bg-elevated);
202
+ letter-spacing: 0.1em;
203
+ text-shadow: 0 0 20px var(--blue-glow);
220
204
  }
221
205
 
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);
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;
226
214
  }
227
215
 
228
- .btn-pill-alert {
229
- color: var(--red-alert);
230
- border-color: rgba(255, 51, 68, 0.4);
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;
231
227
  }
232
- .btn-pill-alert:hover {
233
- background: rgba(255, 51, 68, 0.15);
228
+
229
+ .nav-tab-btn:hover {
230
+ color: #fff;
231
+ background: rgba(0, 136, 255, 0.15);
234
232
  }
235
233
 
236
- /* User Status Pill in Header */
237
- .user-profile-badge {
238
- display: flex;
239
- align-items: center;
240
- gap: 0.5rem;
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);
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);
245
238
  }
246
239
 
247
- .user-pfp {
248
- width: 24px;
249
- height: 24px;
250
- border-radius: var(--radius-sm);
251
- background: linear-gradient(135deg, #0055ff, #00f0ff);
240
+ .header-right {
252
241
  display: flex;
253
242
  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;
243
+ gap: 0.75rem;
259
244
  }
260
245
 
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;
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;
269
256
  }
270
257
 
271
- .user-rank-tag {
272
- font-family: var(--font-mono);
273
- font-size: 0.62rem;
258
+ /* Rank Badges */
259
+ .rank-pill {
260
+ font-size: 0.65rem;
274
261
  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);
262
+ font-family: var(--font-heading);
263
+ padding: 0.15rem 0.55rem;
264
+ border-radius: 12px;
280
265
  text-transform: uppercase;
266
+ letter-spacing: 0.05em;
281
267
  }
282
268
 
283
- .rank-owner {
284
- background: rgba(255, 215, 0, 0.15) !important;
285
- color: var(--gold-owner) !important;
286
- border-color: var(--gold-owner) !important;
269
+ .rank-member {
270
+ background: rgba(0, 136, 255, 0.15);
271
+ color: #00d2ff;
272
+ border: 1px solid rgba(0, 136, 255, 0.4);
287
273
  }
288
274
 
289
275
  .rank-mod {
290
- background: rgba(0, 255, 170, 0.15) !important;
291
- color: var(--green-neon) !important;
292
- border-color: var(--green-neon) !important;
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);
293
280
  }
294
281
 
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;
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);
303
288
  }
304
289
 
305
- .main-scroll-pane {
306
- flex: 1;
307
- height: 100%;
308
- overflow-y: auto;
309
- padding: 1.5rem 2rem;
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;
310
299
  }
311
300
 
312
- /* Tab Sections */
313
- .tab-content-section {
314
- display: none;
315
- max-width: 1300px;
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
316
  margin: 0 auto;
317
+ min-height: calc(100vh - 65px);
318
+ position: relative;
319
+ z-index: 10;
317
320
  }
318
321
 
319
- .tab-content-section.active {
320
- display: block;
322
+ .content-area {
323
+ flex: 1;
324
+ padding: 1.5rem;
325
+ overflow-y: auto;
326
+ max-width: calc(100% - 370px);
321
327
  }
322
328
 
323
- /* Hero & Search Banner */
324
- .home-hero-box {
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;
325
336
  text-align: center;
326
- padding: 3rem 1rem 2rem 1rem;
327
- max-width: 720px;
328
- margin: 0 auto 2rem auto;
337
+ padding: 2rem 1rem;
329
338
  }
330
339
 
331
- .hero-main-title {
340
+ .opium-logo-title {
332
341
  font-family: var(--font-logo);
333
- font-size: 3.5rem;
342
+ font-size: 5.5rem;
334
343
  font-weight: 900;
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);
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;
345
356
  letter-spacing: 0.08em;
346
- margin-bottom: 1.75rem;
357
+ margin-bottom: 2.25rem;
347
358
  }
348
359
 
349
- /* Global Search Input Box */
350
- .search-pill-container {
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;
351
366
  display: flex;
352
367
  align-items: center;
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);
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;
365
373
  }
366
374
 
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;
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);
375
378
  }
376
379
 
377
- .search-input-field {
378
- flex: 1;
380
+ .opium-search-input {
379
381
  background: transparent;
380
382
  border: none;
381
383
  outline: none;
382
384
  color: #fff;
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;
385
+ font-size: 1.05rem;
386
+ width: 100%;
387
+ font-family: var(--font-main);
401
388
  }
402
389
 
403
- .shelf-header {
390
+ /* Controls Bar */
391
+ .controls-bar {
404
392
  display: flex;
405
393
  justify-content: space-between;
406
394
  align-items: center;
407
- margin-bottom: 0.85rem;
408
- }
409
-
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;
395
+ gap: 1rem;
396
+ margin-bottom: 1.5rem;
397
+ flex-wrap: wrap;
423
398
  }
424
399
 
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;
400
+ .search-box {
401
+ background: #040c18;
402
+ border: 1px solid var(--blue-border);
403
+ border-radius: 25px;
404
+ padding: 0.5rem 1.25rem;
432
405
  display: flex;
433
- flex-direction: column;
434
- }
435
-
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 {
443
- width: 100%;
444
- aspect-ratio: 16/10;
445
- object-fit: cover;
446
- border-radius: 3px;
447
- margin-bottom: 0.35rem;
448
- background: #000;
406
+ align-items: center;
407
+ gap: 0.65rem;
408
+ flex: 1;
409
+ max-width: 400px;
449
410
  }
450
411
 
451
- .recent-game-name {
452
- font-size: 0.72rem;
453
- font-weight: 700;
412
+ .search-box input {
413
+ background: transparent;
414
+ border: none;
415
+ outline: none;
454
416
  color: #fff;
455
- white-space: nowrap;
456
- overflow: hidden;
457
- text-overflow: ellipsis;
458
- }
459
-
460
- /* Category Filter Bar */
461
- .filter-controls-row {
462
- display: flex;
463
- align-items: center;
464
- justify-content: space-between;
465
- gap: 1rem;
466
- flex-wrap: wrap;
467
- margin-bottom: 1.5rem;
417
+ font-size: 0.88rem;
418
+ width: 100%;
468
419
  }
469
420
 
470
- .category-buttons-group {
421
+ .filter-pills {
471
422
  display: flex;
472
- gap: 0.4rem;
423
+ gap: 0.35rem;
473
424
  flex-wrap: wrap;
474
425
  }
475
426
 
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);
427
+ .filter-btn {
428
+ background: #040c18;
429
+ border: 1px solid var(--blue-border);
430
+ color: #99b8dc;
431
+ padding: 0.4rem 0.85rem;
481
432
  font-size: 0.75rem;
482
433
  font-weight: 700;
483
- padding: 0.4rem 0.85rem;
484
- border-radius: var(--radius-sm);
434
+ font-family: var(--font-heading);
435
+ border-radius: 16px;
485
436
  cursor: pointer;
486
- transition: all 0.15s ease;
487
- text-transform: uppercase;
437
+ transition: all 0.2s ease;
488
438
  }
489
439
 
490
- .cat-btn:hover {
440
+ .filter-btn:hover, .filter-btn.active {
441
+ background: var(--blue-primary);
491
442
  color: #fff;
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);
443
+ border-color: var(--blue-bright);
444
+ box-shadow: 0 0 12px rgba(0, 136, 255, 0.45);
501
445
  }
502
446
 
503
447
  /* Games Grid */
504
- .games-display-grid {
448
+ .games-grid {
505
449
  display: grid;
506
- grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
507
- gap: 1rem;
508
- margin-bottom: 3rem;
450
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
451
+ gap: 1.15rem;
509
452
  }
510
453
 
511
- .game-tile {
512
- background: var(--bg-card);
513
- border: 1px solid var(--border-subtle);
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);
514
457
  border-radius: var(--radius-md);
515
- padding: 0.65rem;
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;
516
461
  display: flex;
517
462
  flex-direction: column;
518
- transition: all 0.15s ease;
519
463
  position: relative;
520
- cursor: pointer;
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;
521
477
  }
522
478
 
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);
479
+ .game-card:hover::after {
480
+ opacity: 1;
528
481
  }
529
482
 
530
- .tile-thumb-box {
531
- position: relative;
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);
486
+ }
487
+
488
+ .game-thumb-container {
532
489
  width: 100%;
533
- aspect-ratio: 16/10;
534
- border-radius: 5px;
490
+ aspect-ratio: 16 / 10;
535
491
  overflow: hidden;
536
- background: #000;
537
- margin-bottom: 0.6rem;
492
+ position: relative;
493
+ background: #02060f;
538
494
  }
539
495
 
540
- .tile-img {
496
+ .game-thumb {
541
497
  width: 100%;
542
498
  height: 100%;
543
499
  object-fit: cover;
544
- display: block;
500
+ transition: transform 0.3s ease;
545
501
  }
546
502
 
547
- .tile-badge-featured {
503
+ .game-card:hover .game-thumb {
504
+ transform: scale(1.05);
505
+ }
506
+
507
+ .game-badge-featured {
548
508
  position: absolute;
549
- top: 6px;
550
- left: 6px;
551
- background: rgba(0, 240, 255, 0.9);
552
- color: #000;
553
- font-family: var(--font-mono);
509
+ top: 8px;
510
+ left: 8px;
511
+ background: #0088ff;
512
+ color: #fff;
554
513
  font-size: 0.62rem;
555
514
  font-weight: 800;
556
- padding: 2px 5px;
557
- border-radius: 3px;
558
- letter-spacing: 0.05em;
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);
559
519
  }
560
520
 
561
- .tile-info-box {
521
+ .game-info {
522
+ padding: 0.75rem;
562
523
  display: flex;
563
524
  flex-direction: column;
564
525
  flex: 1;
565
526
  }
566
527
 
567
- .tile-title {
568
- font-size: 0.82rem;
528
+ .game-title {
529
+ font-size: 0.88rem;
569
530
  font-weight: 700;
570
531
  color: #fff;
571
532
  white-space: nowrap;
572
533
  overflow: hidden;
573
534
  text-overflow: ellipsis;
574
- margin-bottom: 0.2rem;
575
- }
576
-
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;
535
+ margin-bottom: 0.35rem;
585
536
  }
586
537
 
587
- .tile-actions-row {
538
+ .game-meta {
588
539
  display: flex;
589
- gap: 0.4rem;
590
- margin-top: auto;
540
+ justify-content: space-between;
541
+ align-items: center;
542
+ font-size: 0.72rem;
543
+ color: var(--text-sub);
544
+ margin-bottom: 0.65rem;
591
545
  }
592
546
 
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;
600
- font-weight: 800;
601
- padding: 0.45rem;
602
- border-radius: var(--radius-sm);
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);
603
556
  cursor: pointer;
604
- transition: all 0.15s ease;
605
- text-align: center;
557
+ transition: all 0.2s ease;
558
+ display: inline-flex;
559
+ align-items: center;
560
+ gap: 0.25rem;
561
+ user-select: none;
606
562
  }
607
563
 
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);
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);
613
570
  }
614
571
 
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;
620
- font-size: 0.75rem;
621
- border-radius: var(--radius-sm);
622
- cursor: pointer;
623
- transition: all 0.15s ease;
624
- font-family: var(--font-mono);
572
+ .btn-fav.active {
573
+ background: linear-gradient(135deg, #ffd700, #ff8800);
574
+ color: #000;
575
+ border-color: #ffd700;
576
+ font-weight: 800;
577
+ box-shadow: 0 0 12px rgba(255, 215, 0, 0.6);
625
578
  }
626
579
 
627
- .btn-fav-star:hover {
628
- color: var(--gold-owner);
629
- border-color: var(--gold-owner);
580
+ .btn-fav.active:hover {
581
+ box-shadow: 0 0 16px rgba(255, 215, 0, 0.85);
630
582
  }
631
583
 
632
- .btn-fav-star.active {
633
- background: rgba(255, 215, 0, 0.15);
634
- color: var(--gold-owner);
635
- border-color: var(--gold-owner);
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;
590
+ font-size: 0.75rem;
636
591
  font-weight: 800;
592
+ font-family: var(--font-heading);
593
+ border-radius: 6px;
594
+ cursor: pointer;
595
+ transition: all 0.2s ease;
596
+ margin-top: auto;
637
597
  }
638
598
 
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);
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);
603
+ }
604
+
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);
645
610
  display: flex;
646
611
  flex-direction: column;
647
- flex-shrink: 0;
612
+ height: calc(100vh - 65px);
613
+ position: sticky;
614
+ top: 65px;
648
615
  }
649
616
 
650
- .chat-panel-header {
617
+ .red-chat-header {
651
618
  padding: 0.85rem 1.15rem;
652
- border-bottom: 1px solid var(--border-subtle);
619
+ border-bottom: 1px solid var(--blue-border);
653
620
  display: flex;
654
621
  justify-content: space-between;
655
622
  align-items: center;
656
- background: #030712;
623
+ background: #030812;
657
624
  }
658
625
 
659
- .chat-panel-tabs {
626
+ .red-chat-title {
627
+ font-family: var(--font-heading);
628
+ font-weight: 800;
629
+ font-size: 0.95rem;
630
+ color: #fff;
660
631
  display: flex;
661
- gap: 0.35rem;
662
- }
663
-
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;
632
+ align-items: center;
633
+ gap: 0.5rem;
676
634
  }
677
635
 
678
- .chat-subtab-btn.active {
679
- color: #000;
680
- background: var(--cyan-bright);
681
- font-weight: 800;
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;
682
643
  }
683
644
 
684
- .chat-messages-container {
645
+ .red-chat-messages {
685
646
  flex: 1;
686
- overflow-y: auto;
687
647
  padding: 1rem;
648
+ overflow-y: auto;
688
649
  display: flex;
689
650
  flex-direction: column;
690
651
  gap: 0.75rem;
691
652
  }
692
653
 
693
- .chat-message-row {
654
+ /* Left / Right Chat Message Rows */
655
+ .red-msg-row {
694
656
  display: flex;
695
657
  gap: 0.6rem;
696
- align-items: flex-start;
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;
697
693
  }
698
694
 
699
- .msg-pfp {
695
+ .red-msg-avatar {
700
696
  width: 28px;
701
697
  height: 28px;
702
- border-radius: var(--radius-sm);
703
- background: var(--bg-elevated);
704
- border: 1px solid var(--border-subtle);
698
+ border-radius: 50%;
699
+ background: #0088ff;
700
+ color: #fff;
705
701
  display: flex;
706
702
  align-items: center;
707
703
  justify-content: center;
708
- font-family: var(--font-mono);
709
- font-size: 0.75rem;
710
704
  font-weight: 800;
711
- color: var(--cyan-bright);
705
+ font-size: 0.72rem;
712
706
  flex-shrink: 0;
713
707
  }
714
708
 
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;
709
+ .red-msg-body {
727
710
  display: flex;
728
711
  flex-direction: column;
729
712
  }
730
713
 
731
- .msg-header-meta {
714
+ .red-msg-meta {
732
715
  display: flex;
733
716
  align-items: center;
734
717
  gap: 0.4rem;
@@ -736,270 +719,411 @@ html, body {
736
719
  font-size: 0.72rem;
737
720
  }
738
721
 
739
- .msg-author-name {
722
+ .red-msg-author {
740
723
  font-weight: 700;
741
- color: var(--cyan-bright);
742
- cursor: pointer;
724
+ color: var(--blue-bright);
743
725
  }
744
726
 
745
- .msg-time-stamp {
727
+ .red-msg-playtime {
746
728
  font-size: 0.65rem;
747
- color: var(--text-dim);
729
+ color: #88ccff;
748
730
  font-family: var(--font-mono);
749
731
  }
750
732
 
751
- .btn-msg-del {
752
- background: transparent;
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;
753
742
  border: none;
754
- color: var(--red-alert);
755
- font-size: 0.68rem;
743
+ color: #ff5555;
756
744
  cursor: pointer;
757
- margin-left: auto;
758
- font-family: var(--font-mono);
759
- font-weight: bold;
745
+ font-size: 0.68rem;
746
+ opacity: 0.7;
760
747
  }
748
+ .red-btn-del:hover { opacity: 1; }
761
749
 
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;
750
+ .red-chat-input-bar {
751
+ padding: 0.75rem;
752
+ border-top: 1px solid var(--blue-border);
753
+ background: #030812;
771
754
  }
772
755
 
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;
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;
780
767
  }
781
768
 
782
769
  .chat-input-row {
783
770
  display: flex;
784
- gap: 0.5rem;
771
+ gap: 0.4rem;
785
772
  }
786
773
 
787
- .chat-input-text {
774
+ .red-chat-input {
788
775
  flex: 1;
789
- background: #040c18;
790
- border: 1px solid var(--border-subtle);
791
- border-radius: var(--radius-sm);
792
- padding: 0.6rem 0.85rem;
776
+ background: #040d1c;
777
+ border: 1px solid var(--blue-border);
778
+ border-radius: 6px;
779
+ padding: 0.55rem 0.75rem;
793
780
  color: #fff;
794
- font-size: 0.85rem;
795
- font-family: var(--font-body);
781
+ font-size: 0.82rem;
796
782
  outline: none;
797
783
  }
798
- .chat-input-text:focus {
799
- border-color: var(--cyan-bright);
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);
800
804
  }
801
805
 
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;
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;
808
812
  font-size: 0.78rem;
809
- padding: 0 1rem;
810
- border-radius: var(--radius-sm);
813
+ font-weight: 600;
814
+ font-family: var(--font-heading);
811
815
  cursor: pointer;
812
- transition: all 0.15s ease;
816
+ transition: all 0.2s ease;
813
817
  }
814
- .btn-chat-send:hover {
815
- background: #fff;
818
+ .btn-stealth:hover {
819
+ background: var(--bg-hover);
820
+ color: #fff;
821
+ border-color: var(--blue-primary);
816
822
  }
817
823
 
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;
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%;
831
+ cursor: pointer;
832
+ display: flex;
833
+ align-items: center;
834
+ justify-content: center;
835
+ font-size: 0.9rem;
828
836
  }
829
837
 
830
- .player-header-bar {
831
- height: 52px;
832
- background: #020612;
833
- border-bottom: 1px solid var(--border-subtle);
838
+ /* Mod & Admin Tab Layout */
839
+ .admin-tab-container, .mod-tab-container {
840
+ max-width: 900px;
841
+ margin: 0 auto;
842
+ }
843
+
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);
850
+ }
851
+
852
+ .admin-header, .mod-header {
834
853
  display: flex;
854
+ justify-content: space-between;
835
855
  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;
836
877
  justify-content: space-between;
837
- padding: 0 1.25rem;
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;
838
883
  }
839
884
 
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;
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;
846
890
  }
847
891
 
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;
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;
857
899
  }
900
+ .leaderboard-row:last-child { border-bottom: none; }
901
+ .leaderboard-row.self-row { background: rgba(0, 136, 255, 0.12); }
858
902
 
859
- .player-playtime-tag {
903
+ .leaderboard-rank {
860
904
  font-family: var(--font-mono);
861
- font-size: 0.75rem;
862
- color: var(--cyan-bright);
863
- font-weight: 800;
864
- margin-left: 0.5rem;
905
+ font-weight: 900;
906
+ width: 45px;
907
+ color: var(--blue-bright);
865
908
  }
866
-
867
- .player-iframe-frame {
909
+ .leaderboard-user {
868
910
  flex: 1;
869
- width: 100%;
870
- height: calc(100vh - 52px);
871
- border: none;
872
- background: #000;
873
- display: block;
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;
874
919
  }
875
920
 
876
- /* Modals & Dialogs */
877
- .modal-backdrop {
921
+ /* Modals & Player */
922
+ .admin-modal {
878
923
  display: none;
879
924
  position: fixed;
880
- inset: 0;
925
+ top: 0;
926
+ left: 0;
881
927
  width: 100vw;
882
928
  height: 100vh;
883
- background: rgba(0, 0, 0, 0.88);
884
- backdrop-filter: blur(8px);
885
- z-index: 99990;
929
+ background: rgba(0, 0, 0, 0.85);
930
+ backdrop-filter: blur(10px);
931
+ z-index: 500;
886
932
  align-items: center;
887
933
  justify-content: center;
888
934
  padding: 1.5rem;
889
935
  }
890
936
 
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;
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;
900
946
  }
901
947
 
902
- .modal-header {
948
+ .player-toolbar {
949
+ height: 52px;
950
+ background: #040c18;
951
+ border-bottom: 1px solid var(--blue-border);
903
952
  display: flex;
953
+ align-items: center;
904
954
  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;
905
963
  align-items: center;
906
- margin-bottom: 1.25rem;
907
- border-bottom: 1px solid var(--border-subtle);
908
- padding-bottom: 0.85rem;
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;
909
977
  }
910
978
 
911
- .modal-title {
979
+ .reaper-watermark {
980
+ position: absolute;
981
+ bottom: 8px;
982
+ right: 12px;
983
+ color: rgba(255, 255, 255, 0.15);
912
984
  font-family: var(--font-logo);
913
- font-size: 1.3rem;
914
985
  font-weight: 900;
915
- color: var(--cyan-bright);
916
- letter-spacing: 0.08em;
986
+ font-size: 0.85rem;
987
+ pointer-events: none;
917
988
  }
918
989
 
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);
926
- }
927
- .btn-close-modal:hover {
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);
928
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;
929
1006
  }
930
1007
 
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;
1008
+ /* Fluid Tab Slide & Fade */
1009
+ .tab-section {
1010
+ animation: tabSlideFade 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
947
1011
  }
948
- .btn-primary:hover {
949
- box-shadow: 0 0 20px var(--cyan-glow);
950
- transform: translateY(-1px);
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
+ }
951
1022
  }
952
1023
 
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);
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);
1034
+ }
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;
1041
+ }
1042
+
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;
962
1049
  cursor: pointer;
963
- transition: all 0.15s ease;
964
- display: inline-flex;
1050
+ transition: all 0.2s cubic-bezier(0.2, 0, 0.2, 1);
1051
+ display: flex;
1052
+ flex-direction: column;
965
1053
  align-items: center;
966
- gap: 0.4rem;
967
1054
  }
968
- .btn-stealth:hover {
969
- color: #fff;
970
- border-color: var(--cyan-bright);
971
- background: var(--bg-elevated);
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);
972
1060
  }
973
1061
 
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);
981
- color: #fff;
982
- font-family: var(--font-mono);
983
- font-size: 0.82rem;
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;
1068
+ }
1069
+
1070
+ .recent-card-name {
1071
+ font-size: 0.68rem;
984
1072
  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;
1073
+ color: #fff;
1074
+ white-space: nowrap;
1075
+ overflow: hidden;
1076
+ text-overflow: ellipsis;
1077
+ width: 100%;
991
1078
  }
992
1079
 
993
- /* Performance Mode (Zero CPU Stutter) */
1080
+ /* ========================================== */
1081
+ /* POTATO PC & LOW-SPEC PERFORMANCE MODE */
1082
+ /* ========================================== */
994
1083
  body.performance-mode #bg-canvas {
995
1084
  display: none !important;
996
1085
  }
997
- body.performance-mode *, body.performance-mode *::before, body.performance-mode *::after {
1086
+
1087
+ body.performance-mode *,
1088
+ body.performance-mode *::before,
1089
+ body.performance-mode *::after {
998
1090
  backdrop-filter: none !important;
999
1091
  -webkit-backdrop-filter: none !important;
1000
1092
  box-shadow: none !important;
1001
1093
  text-shadow: none !important;
1002
1094
  }
1095
+
1003
1096
  body.performance-mode {
1004
- background: #020408 !important;
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;
1005
1129
  }