Reaperxxxx commited on
Commit
aa3ab07
·
verified ·
1 Parent(s): e839a8a

Update me.html

Browse files
Files changed (1) hide show
  1. me.html +432 -185
me.html CHANGED
@@ -5,6 +5,8 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>User Strikes Dashboard</title>
7
  <style>
 
 
8
  * {
9
  margin: 0;
10
  padding: 0;
@@ -12,16 +14,18 @@
12
  }
13
 
14
  body {
15
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
16
- background: linear-gradient(135deg, #000000 0%, #1a0a2e 50%, #551b6e 100%);
 
17
  color: #ffffff;
18
  min-height: 100vh;
19
  overflow-x: hidden;
20
  position: relative;
 
21
  }
22
 
23
- /* Animated background particles */
24
- .particles {
25
  position: fixed;
26
  top: 0;
27
  left: 0;
@@ -31,78 +35,148 @@
31
  z-index: 1;
32
  }
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  .particle {
35
  position: absolute;
36
- width: 4px;
37
- height: 4px;
38
- background: #551b6e;
39
  border-radius: 50%;
40
- animation: float 6s infinite ease-in-out;
41
- opacity: 0.6;
42
  }
43
 
44
- @keyframes float {
45
- 0%, 100% { transform: translateY(0px) rotate(0deg); }
46
- 33% { transform: translateY(-20px) rotate(120deg); }
47
- 66% { transform: translateY(10px) rotate(240deg); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
49
 
50
  .container {
51
  position: relative;
52
  z-index: 2;
53
- max-width: 900px;
54
  margin: 0 auto;
55
- padding: 40px 20px;
56
  min-height: 100vh;
57
- display: flex;
58
- flex-direction: column;
59
- justify-content: center;
60
  }
61
 
62
  .header {
63
  text-align: center;
64
- margin-bottom: 40px;
65
- animation: slideDown 1s ease-out;
66
  }
67
 
68
  .header h1 {
69
- font-size: 3rem;
70
- background: linear-gradient(45deg, #ffffff, #551b6e, #9d4edd);
 
71
  -webkit-background-clip: text;
72
  -webkit-text-fill-color: transparent;
73
  background-clip: text;
74
- margin-bottom: 10px;
75
- text-shadow: 0 0 30px rgba(85, 27, 110, 0.5);
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  }
77
 
78
  .header p {
79
- font-size: 1.2rem;
80
- opacity: 0.8;
81
- letter-spacing: 1px;
 
 
82
  }
83
 
84
  .dashboard {
85
  display: grid;
86
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
87
- gap: 30px;
88
- animation: fadeInUp 1s ease-out 0.3s both;
89
  }
90
 
91
  .card {
92
- background: rgba(85, 27, 110, 0.1);
93
- backdrop-filter: blur(10px);
94
- border: 1px solid rgba(85, 27, 110, 0.3);
95
- border-radius: 20px;
96
- padding: 30px;
97
  position: relative;
98
  overflow: hidden;
99
- transition: all 0.3s ease;
 
 
 
100
  }
101
 
102
  .card:hover {
103
- transform: translateY(-5px);
104
- box-shadow: 0 20px 40px rgba(85, 27, 110, 0.3);
105
- border-color: #551b6e;
 
 
 
106
  }
107
 
108
  .card::before {
@@ -113,126 +187,232 @@
113
  width: 100%;
114
  height: 100%;
115
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
116
- transition: left 0.5s;
117
  }
118
 
119
  .card:hover::before {
120
  left: 100%;
121
  }
122
 
123
- .card-title {
124
- font-size: 1.4rem;
125
- margin-bottom: 20px;
126
- color: #9d4edd;
127
- display: flex;
128
- align-items: center;
129
- gap: 10px;
130
- }
131
-
132
- .card-title::before {
133
  content: '';
134
- width: 8px;
135
- height: 8px;
136
- background: #551b6e;
137
- border-radius: 50%;
138
- box-shadow: 0 0 15px #551b6e;
 
139
  }
140
 
141
- .info-item {
 
 
 
 
 
 
142
  display: flex;
143
- justify-content: space-between;
144
- align-items: center;
145
- padding: 15px 0;
146
- border-bottom: 1px solid rgba(85, 27, 110, 0.2);
147
- }
148
-
149
- .info-item:last-child {
150
- border-bottom: none;
151
- }
152
-
153
- .info-label {
154
- font-weight: 600;
155
- opacity: 0.8;
156
- text-transform: uppercase;
157
- letter-spacing: 1px;
158
- font-size: 0.9rem;
159
  }
160
 
161
- .info-value {
162
- font-size: 1.1rem;
163
- font-weight: 700;
164
- color: #ffffff;
 
 
 
 
 
 
 
 
165
  }
166
 
167
- .strikes-display {
168
- grid-column: 1 / -1;
169
- text-align: center;
170
- background: rgba(0, 0, 0, 0.3);
171
- border: 2px solid #551b6e;
172
- position: relative;
173
  }
174
 
175
  .strikes-number {
176
- font-size: 6rem;
177
  font-weight: 900;
178
  margin: 20px 0;
179
- text-shadow: 0 0 30px rgba(85, 27, 110, 0.8);
 
 
180
  }
181
 
182
  .strikes-0 {
183
  color: #00ff88;
184
- text-shadow: 0 0 30px rgba(0, 255, 136, 0.5);
 
 
 
185
  }
186
 
187
  .strikes-1 {
188
- color: #ffaa00;
189
- text-shadow: 0 0 30px rgba(255, 170, 0, 0.5);
 
 
 
190
  }
191
 
192
  .strikes-2 {
193
  color: #ff6b35;
194
- text-shadow: 0 0 30px rgba(255, 107, 53, 0.5);
 
 
 
195
  }
196
 
197
  .strikes-3-plus {
198
  color: #ff0040;
199
- text-shadow: 0 0 30px rgba(255, 0, 64, 0.5);
200
- animation: pulse 2s infinite;
 
 
 
201
  }
202
 
203
- @keyframes pulse {
204
- 0%, 100% { transform: scale(1); }
205
- 50% { transform: scale(1.05); }
206
  }
207
 
208
  .strikes-message {
209
- font-size: 1.3rem;
210
- margin-top: 15px;
211
- font-weight: 600;
212
- letter-spacing: 1px;
 
213
  }
214
 
215
  .strikes-description {
216
  font-size: 1rem;
217
- margin-top: 10px;
218
  opacity: 0.8;
219
  max-width: 600px;
220
  margin-left: auto;
221
  margin-right: auto;
 
 
222
  }
223
 
224
  .warning-icon {
225
  position: absolute;
226
- top: 20px;
227
- right: 20px;
228
- font-size: 2rem;
229
- opacity: 0.3;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  }
231
 
232
  @keyframes slideDown {
233
  from {
234
  opacity: 0;
235
- transform: translateY(-50px);
236
  }
237
  to {
238
  opacity: 1;
@@ -243,7 +423,7 @@
243
  @keyframes fadeInUp {
244
  from {
245
  opacity: 0;
246
- transform: translateY(50px);
247
  }
248
  to {
249
  opacity: 1;
@@ -252,63 +432,105 @@
252
  }
253
 
254
  .no-data {
 
255
  text-align: center;
256
- padding: 60px 20px;
257
  opacity: 0.6;
258
  }
259
 
260
  .no-data h2 {
261
- font-size: 2rem;
262
  margin-bottom: 20px;
263
- color: #551b6e;
 
264
  }
265
 
266
- @media (max-width: 768px) {
267
- .header h1 {
268
- font-size: 2rem;
269
- }
 
 
 
 
 
 
 
 
 
 
270
 
271
- .strikes-number {
272
- font-size: 4rem;
 
273
  }
 
274
 
 
 
 
 
 
275
  .dashboard {
276
- grid-template-columns: 1fr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  }
278
  }
279
  </style>
280
  </head>
281
  <body>
282
- <!-- Animated background particles -->
283
- <div class="particles" id="particles"></div>
 
 
 
 
 
 
 
 
 
284
 
285
  <div class="container">
286
  <div class="header">
287
  <h1>User Strike Dashboard</h1>
288
- <p>Content Moderation System</p>
289
  </div>
290
 
291
- <div id="content">
292
  <div class="no-data">
293
- <h2>Loading user data...</h2>
294
- <p>Please wait while we fetch the information from URL parameters.</p>
 
295
  </div>
296
  </div>
297
  </div>
298
 
299
  <script>
300
- // Create animated particles
301
  function createParticles() {
302
  const particles = document.getElementById('particles');
303
- const particleCount = 50;
304
 
305
  for (let i = 0; i < particleCount; i++) {
306
  const particle = document.createElement('div');
307
  particle.className = 'particle';
308
  particle.style.left = Math.random() * 100 + '%';
309
- particle.style.top = Math.random() * 100 + '%';
310
- particle.style.animationDelay = Math.random() * 6 + 's';
311
- particle.style.animationDuration = (Math.random() * 3 + 3) + 's';
312
  particles.appendChild(particle);
313
  }
314
  }
@@ -325,107 +547,132 @@
325
  };
326
  }
327
 
328
- // Get strike status information
329
  function getStrikeInfo(strikes) {
330
  if (strikes === 0) {
331
  return {
332
  class: 'strikes-0',
333
- message: 'CLEAN RECORD',
334
- description: 'This user has no strikes and follows all community guidelines perfectly.',
335
- icon: '✅'
 
 
336
  };
337
  } else if (strikes === 1) {
338
  return {
339
  class: 'strikes-1',
340
- message: 'FIRST WARNING',
341
- description: 'User received 1 strike for posting NSFW content against community rules. Please be more careful.',
342
- icon: '⚠️'
 
 
343
  };
344
  } else if (strikes === 2) {
345
  return {
346
  class: 'strikes-2',
347
- message: 'SECOND WARNING',
348
- description: 'User has 2 strikes for posting NSFW content. Final warning before potential restrictions.',
349
- icon: '🚨'
 
 
350
  };
351
  } else {
352
  return {
353
  class: 'strikes-3-plus',
354
- message: 'CRITICAL VIOLATIONS',
355
- description: 'User has multiple strikes for posting NSFW content. May face severe restrictions or bans.',
356
- icon: '🔴'
 
 
357
  };
358
  }
359
  }
360
 
361
- // Display user information
362
  function displayUserInfo() {
363
  const params = getUrlParams();
364
  const strikeInfo = getStrikeInfo(params.strikes);
365
 
366
  const content = `
367
- <div class="dashboard">
368
- <div class="strikes-display card">
369
- <div class="warning-icon">${strikeInfo.icon}</div>
370
- <div class="card-title">STRIKE STATUS</div>
371
- <div class="strikes-number ${strikeInfo.class}">${params.strikes}</div>
372
- <div class="strikes-message ${strikeInfo.class}">${strikeInfo.message}</div>
373
- <div class="strikes-description">${strikeInfo.description}</div>
374
- </div>
375
 
376
- <div class="card">
377
- <div class="card-title">User Information</div>
378
- <div class="info-item">
379
- <span class="info-label">Username</span>
380
- <span class="info-value">@${params.username}</span>
381
- </div>
382
- <div class="info-item">
383
- <span class="info-label">User ID</span>
384
- <span class="info-value">${params.userid}</span>
385
- </div>
386
- <div class="info-item">
387
- <span class="info-label">Group</span>
388
- <span class="info-value">${params.group}</span>
389
- </div>
390
- <div class="info-item">
391
- <span class="info-label">Chat ID</span>
392
- <span class="info-value">${params.chat_id}</span>
393
- </div>
394
  </div>
 
 
 
 
 
 
 
 
 
395
 
396
- <div class="card">
397
- <div class="card-title">Violation Details</div>
398
- <div class="info-item">
399
- <span class="info-label">Total Strikes</span>
400
- <span class="info-value">${params.strikes}</span>
401
- </div>
402
- <div class="info-item">
403
- <span class="info-label">Violation Type</span>
404
- <span class="info-value">NSFW Content</span>
405
- </div>
406
- <div class="info-item">
407
- <span class="info-label">Status</span>
408
- <span class="info-value ${strikeInfo.class}">${strikeInfo.message}</span>
409
- </div>
410
- <div class="info-item">
411
- <span class="info-label">Action Required</span>
412
- <span class="info-value">${params.strikes === 0 ? 'None' : params.strikes >= 3 ? 'Review Required' : 'Warning Issued'}</span>
413
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
414
  </div>
415
  </div>
416
  `;
417
 
418
  document.getElementById('content').innerHTML = content;
 
419
  }
420
 
421
- // Initialize the page
422
  function init() {
423
  createParticles();
424
- displayUserInfo();
 
425
  }
426
 
427
  // Run when page loads
428
  window.addEventListener('load', init);
 
 
 
429
  </script>
430
  </body>
431
  </html>
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>User Strikes Dashboard</title>
7
  <style>
8
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
9
+
10
  * {
11
  margin: 0;
12
  padding: 0;
 
14
  }
15
 
16
  body {
17
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
18
+ background: radial-gradient(ellipse at top, #0f0728, #000000),
19
+ linear-gradient(135deg, #1a0033 0%, #0d0221 50%, #000000 100%);
20
  color: #ffffff;
21
  min-height: 100vh;
22
  overflow-x: hidden;
23
  position: relative;
24
+ font-weight: 400;
25
  }
26
 
27
+ /* Enhanced animated background */
28
+ .bg-effects {
29
  position: fixed;
30
  top: 0;
31
  left: 0;
 
35
  z-index: 1;
36
  }
37
 
38
+ .floating-orbs {
39
+ position: absolute;
40
+ width: 100%;
41
+ height: 100%;
42
+ }
43
+
44
+ .orb {
45
+ position: absolute;
46
+ border-radius: 50%;
47
+ background: radial-gradient(circle at 30% 30%, rgba(138, 43, 226, 0.8), rgba(75, 0, 130, 0.4), transparent);
48
+ filter: blur(1px);
49
+ animation: float-orb 8s infinite ease-in-out;
50
+ }
51
+
52
+ .orb:nth-child(1) { width: 200px; height: 200px; top: 10%; left: 10%; animation-delay: 0s; }
53
+ .orb:nth-child(2) { width: 150px; height: 150px; top: 60%; right: 15%; animation-delay: -2s; }
54
+ .orb:nth-child(3) { width: 100px; height: 100px; bottom: 20%; left: 20%; animation-delay: -4s; }
55
+ .orb:nth-child(4) { width: 120px; height: 120px; top: 30%; right: 40%; animation-delay: -6s; }
56
+
57
+ @keyframes float-orb {
58
+ 0%, 100% { transform: translateY(0px) translateX(0px) scale(1); opacity: 0.3; }
59
+ 25% { transform: translateY(-30px) translateX(20px) scale(1.1); opacity: 0.5; }
60
+ 50% { transform: translateY(-10px) translateX(-15px) scale(0.9); opacity: 0.4; }
61
+ 75% { transform: translateY(20px) translateX(25px) scale(1.05); opacity: 0.6; }
62
+ }
63
+
64
+ .particles {
65
+ position: absolute;
66
+ width: 100%;
67
+ height: 100%;
68
+ }
69
+
70
  .particle {
71
  position: absolute;
72
+ width: 2px;
73
+ height: 2px;
74
+ background: linear-gradient(45deg, #9d4edd, #c77dff);
75
  border-radius: 50%;
76
+ animation: particle-float 12s infinite linear;
77
+ box-shadow: 0 0 6px rgba(157, 78, 221, 0.6);
78
  }
79
 
80
+ @keyframes particle-float {
81
+ 0% { transform: translateY(100vh) translateX(0) rotate(0deg); opacity: 0; }
82
+ 10% { opacity: 1; }
83
+ 90% { opacity: 1; }
84
+ 100% { transform: translateY(-10vh) translateX(100px) rotate(360deg); opacity: 0; }
85
+ }
86
+
87
+ .grid-overlay {
88
+ position: absolute;
89
+ top: 0;
90
+ left: 0;
91
+ right: 0;
92
+ bottom: 0;
93
+ background-image:
94
+ linear-gradient(rgba(157, 78, 221, 0.03) 1px, transparent 1px),
95
+ linear-gradient(90deg, rgba(157, 78, 221, 0.03) 1px, transparent 1px);
96
+ background-size: 50px 50px;
97
+ animation: grid-move 20s linear infinite;
98
+ }
99
+
100
+ @keyframes grid-move {
101
+ 0% { transform: translate(0, 0); }
102
+ 100% { transform: translate(50px, 50px); }
103
  }
104
 
105
  .container {
106
  position: relative;
107
  z-index: 2;
108
+ max-width: 1200px;
109
  margin: 0 auto;
110
+ padding: 60px 20px;
111
  min-height: 100vh;
 
 
 
112
  }
113
 
114
  .header {
115
  text-align: center;
116
+ margin-bottom: 60px;
117
+ animation: slideDown 1.2s cubic-bezier(0.22, 1, 0.36, 1);
118
  }
119
 
120
  .header h1 {
121
+ font-size: clamp(2.5rem, 5vw, 4rem);
122
+ font-weight: 900;
123
+ background: linear-gradient(135deg, #ffffff 0%, #c77dff 25%, #9d4edd 50%, #7209b7 75%, #480ca8 100%);
124
  -webkit-background-clip: text;
125
  -webkit-text-fill-color: transparent;
126
  background-clip: text;
127
+ margin-bottom: 16px;
128
+ letter-spacing: -0.02em;
129
+ position: relative;
130
+ }
131
+
132
+ .header h1::after {
133
+ content: '';
134
+ position: absolute;
135
+ bottom: -10px;
136
+ left: 50%;
137
+ transform: translateX(-50%);
138
+ width: 100px;
139
+ height: 3px;
140
+ background: linear-gradient(90deg, transparent, #9d4edd, transparent);
141
+ border-radius: 2px;
142
  }
143
 
144
  .header p {
145
+ font-size: 1.1rem;
146
+ opacity: 0.7;
147
+ letter-spacing: 0.5px;
148
+ font-weight: 400;
149
+ margin-top: 20px;
150
  }
151
 
152
  .dashboard {
153
  display: grid;
154
+ grid-template-columns: repeat(12, 1fr);
155
+ gap: 24px;
156
+ animation: fadeInUp 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;
157
  }
158
 
159
  .card {
160
+ background: rgba(255, 255, 255, 0.02);
161
+ backdrop-filter: blur(20px);
162
+ border: 1px solid rgba(157, 78, 221, 0.1);
163
+ border-radius: 24px;
164
+ padding: 32px;
165
  position: relative;
166
  overflow: hidden;
167
+ transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1);
168
+ box-shadow:
169
+ 0 8px 32px rgba(0, 0, 0, 0.3),
170
+ inset 0 1px 0 rgba(255, 255, 255, 0.1);
171
  }
172
 
173
  .card:hover {
174
+ transform: translateY(-8px) scale(1.02);
175
+ box-shadow:
176
+ 0 20px 60px rgba(157, 78, 221, 0.2),
177
+ 0 8px 32px rgba(0, 0, 0, 0.4),
178
+ inset 0 1px 0 rgba(255, 255, 255, 0.2);
179
+ border-color: rgba(157, 78, 221, 0.3);
180
  }
181
 
182
  .card::before {
 
187
  width: 100%;
188
  height: 100%;
189
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
190
+ transition: left 0.6s cubic-bezier(0.22, 1, 0.36, 1);
191
  }
192
 
193
  .card:hover::before {
194
  left: 100%;
195
  }
196
 
197
+ .card::after {
 
 
 
 
 
 
 
 
 
198
  content: '';
199
+ position: absolute;
200
+ top: 0;
201
+ left: 0;
202
+ right: 0;
203
+ height: 1px;
204
+ background: linear-gradient(90deg, transparent, rgba(157, 78, 221, 0.5), transparent);
205
  }
206
 
207
+ .strikes-display {
208
+ grid-column: 1 / -1;
209
+ text-align: center;
210
+ background: rgba(0, 0, 0, 0.4);
211
+ border: 2px solid rgba(157, 78, 221, 0.3);
212
+ position: relative;
213
+ min-height: 300px;
214
  display: flex;
215
+ flex-direction: column;
216
+ justify-content: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  }
218
 
219
+ .strikes-display::before {
220
+ content: '';
221
+ position: absolute;
222
+ inset: -2px;
223
+ background: linear-gradient(45deg, #9d4edd, #c77dff, #9d4edd);
224
+ border-radius: 24px;
225
+ padding: 2px;
226
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
227
+ -webkit-mask-composite: exclude;
228
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
229
+ mask-composite: exclude;
230
+ animation: border-glow 3s ease-in-out infinite alternate;
231
  }
232
 
233
+ @keyframes border-glow {
234
+ 0% { opacity: 0.5; }
235
+ 100% { opacity: 1; }
 
 
 
236
  }
237
 
238
  .strikes-number {
239
+ font-size: clamp(4rem, 12vw, 8rem);
240
  font-weight: 900;
241
  margin: 20px 0;
242
+ letter-spacing: -0.05em;
243
+ position: relative;
244
+ display: inline-block;
245
  }
246
 
247
  .strikes-0 {
248
  color: #00ff88;
249
+ text-shadow:
250
+ 0 0 20px rgba(0, 255, 136, 0.5),
251
+ 0 0 40px rgba(0, 255, 136, 0.3),
252
+ 0 0 60px rgba(0, 255, 136, 0.1);
253
  }
254
 
255
  .strikes-1 {
256
+ color: #ffd700;
257
+ text-shadow:
258
+ 0 0 20px rgba(255, 215, 0, 0.5),
259
+ 0 0 40px rgba(255, 215, 0, 0.3),
260
+ 0 0 60px rgba(255, 215, 0, 0.1);
261
  }
262
 
263
  .strikes-2 {
264
  color: #ff6b35;
265
+ text-shadow:
266
+ 0 0 20px rgba(255, 107, 53, 0.5),
267
+ 0 0 40px rgba(255, 107, 53, 0.3),
268
+ 0 0 60px rgba(255, 107, 53, 0.1);
269
  }
270
 
271
  .strikes-3-plus {
272
  color: #ff0040;
273
+ text-shadow:
274
+ 0 0 20px rgba(255, 0, 64, 0.6),
275
+ 0 0 40px rgba(255, 0, 64, 0.4),
276
+ 0 0 60px rgba(255, 0, 64, 0.2);
277
+ animation: danger-pulse 2s ease-in-out infinite;
278
  }
279
 
280
+ @keyframes danger-pulse {
281
+ 0%, 100% { transform: scale(1); filter: brightness(1); }
282
+ 50% { transform: scale(1.05); filter: brightness(1.2); }
283
  }
284
 
285
  .strikes-message {
286
+ font-size: 1.5rem;
287
+ margin-top: 20px;
288
+ font-weight: 700;
289
+ letter-spacing: 2px;
290
+ text-transform: uppercase;
291
  }
292
 
293
  .strikes-description {
294
  font-size: 1rem;
295
+ margin-top: 16px;
296
  opacity: 0.8;
297
  max-width: 600px;
298
  margin-left: auto;
299
  margin-right: auto;
300
+ line-height: 1.6;
301
+ font-weight: 400;
302
  }
303
 
304
  .warning-icon {
305
  position: absolute;
306
+ top: 24px;
307
+ right: 24px;
308
+ font-size: 2.5rem;
309
+ opacity: 0.4;
310
+ animation: icon-glow 3s ease-in-out infinite alternate;
311
+ }
312
+
313
+ @keyframes icon-glow {
314
+ 0% { opacity: 0.4; transform: scale(1); }
315
+ 100% { opacity: 0.8; transform: scale(1.1); }
316
+ }
317
+
318
+ .info-card {
319
+ grid-column: span 6;
320
+ }
321
+
322
+ .card-title {
323
+ font-size: 1.3rem;
324
+ margin-bottom: 24px;
325
+ color: #c77dff;
326
+ display: flex;
327
+ align-items: center;
328
+ gap: 12px;
329
+ font-weight: 600;
330
+ text-transform: uppercase;
331
+ letter-spacing: 1px;
332
+ }
333
+
334
+ .card-title::before {
335
+ content: '';
336
+ width: 8px;
337
+ height: 8px;
338
+ background: linear-gradient(45deg, #9d4edd, #c77dff);
339
+ border-radius: 50%;
340
+ box-shadow: 0 0 20px rgba(157, 78, 221, 0.6);
341
+ animation: dot-pulse 2s ease-in-out infinite;
342
+ }
343
+
344
+ @keyframes dot-pulse {
345
+ 0%, 100% { transform: scale(1); opacity: 1; }
346
+ 50% { transform: scale(1.3); opacity: 0.7; }
347
+ }
348
+
349
+ .info-item {
350
+ display: flex;
351
+ justify-content: space-between;
352
+ align-items: center;
353
+ padding: 18px 0;
354
+ border-bottom: 1px solid rgba(157, 78, 221, 0.1);
355
+ transition: all 0.3s ease;
356
+ }
357
+
358
+ .info-item:last-child {
359
+ border-bottom: none;
360
+ }
361
+
362
+ .info-item:hover {
363
+ background: rgba(157, 78, 221, 0.05);
364
+ margin: 0 -16px;
365
+ padding: 18px 16px;
366
+ border-radius: 12px;
367
+ }
368
+
369
+ .info-label {
370
+ font-weight: 500;
371
+ opacity: 0.7;
372
+ text-transform: uppercase;
373
+ letter-spacing: 0.5px;
374
+ font-size: 0.85rem;
375
+ }
376
+
377
+ .info-value {
378
+ font-size: 1.1rem;
379
+ font-weight: 600;
380
+ color: #ffffff;
381
+ text-align: right;
382
+ }
383
+
384
+ .status-badge {
385
+ display: inline-block;
386
+ padding: 6px 12px;
387
+ border-radius: 20px;
388
+ font-size: 0.8rem;
389
+ font-weight: 600;
390
+ text-transform: uppercase;
391
+ letter-spacing: 0.5px;
392
+ }
393
+
394
+ .badge-clean {
395
+ background: rgba(0, 255, 136, 0.2);
396
+ color: #00ff88;
397
+ border: 1px solid rgba(0, 255, 136, 0.3);
398
+ }
399
+
400
+ .badge-warning {
401
+ background: rgba(255, 215, 0, 0.2);
402
+ color: #ffd700;
403
+ border: 1px solid rgba(255, 215, 0, 0.3);
404
+ }
405
+
406
+ .badge-danger {
407
+ background: rgba(255, 0, 64, 0.2);
408
+ color: #ff0040;
409
+ border: 1px solid rgba(255, 0, 64, 0.3);
410
  }
411
 
412
  @keyframes slideDown {
413
  from {
414
  opacity: 0;
415
+ transform: translateY(-60px);
416
  }
417
  to {
418
  opacity: 1;
 
423
  @keyframes fadeInUp {
424
  from {
425
  opacity: 0;
426
+ transform: translateY(60px);
427
  }
428
  to {
429
  opacity: 1;
 
432
  }
433
 
434
  .no-data {
435
+ grid-column: 1 / -1;
436
  text-align: center;
437
+ padding: 80px 20px;
438
  opacity: 0.6;
439
  }
440
 
441
  .no-data h2 {
442
+ font-size: 2.5rem;
443
  margin-bottom: 20px;
444
+ color: #9d4edd;
445
+ font-weight: 700;
446
  }
447
 
448
+ .loading-spinner {
449
+ display: inline-block;
450
+ width: 40px;
451
+ height: 40px;
452
+ border: 3px solid rgba(157, 78, 221, 0.3);
453
+ border-radius: 50%;
454
+ border-top-color: #9d4edd;
455
+ animation: spin 1s ease-in-out infinite;
456
+ margin-top: 20px;
457
+ }
458
+
459
+ @keyframes spin {
460
+ to { transform: rotate(360deg); }
461
+ }
462
 
463
+ @media (max-width: 968px) {
464
+ .info-card {
465
+ grid-column: span 12;
466
  }
467
+ }
468
 
469
+ @media (max-width: 768px) {
470
+ .container {
471
+ padding: 40px 16px;
472
+ }
473
+
474
  .dashboard {
475
+ gap: 16px;
476
+ }
477
+
478
+ .card {
479
+ padding: 24px;
480
+ }
481
+
482
+ .info-item {
483
+ flex-direction: column;
484
+ align-items: flex-start;
485
+ gap: 8px;
486
+ }
487
+
488
+ .info-value {
489
+ text-align: left;
490
  }
491
  }
492
  </style>
493
  </head>
494
  <body>
495
+ <!-- Enhanced background effects -->
496
+ <div class="bg-effects">
497
+ <div class="grid-overlay"></div>
498
+ <div class="floating-orbs">
499
+ <div class="orb"></div>
500
+ <div class="orb"></div>
501
+ <div class="orb"></div>
502
+ <div class="orb"></div>
503
+ </div>
504
+ <div class="particles" id="particles"></div>
505
+ </div>
506
 
507
  <div class="container">
508
  <div class="header">
509
  <h1>User Strike Dashboard</h1>
510
+ <p>Advanced Content Moderation System</p>
511
  </div>
512
 
513
+ <div id="content" class="dashboard">
514
  <div class="no-data">
515
+ <h2>Initializing Dashboard</h2>
516
+ <p>Loading user data from URL parameters...</p>
517
+ <div class="loading-spinner"></div>
518
  </div>
519
  </div>
520
  </div>
521
 
522
  <script>
523
+ // Enhanced particle system
524
  function createParticles() {
525
  const particles = document.getElementById('particles');
526
+ const particleCount = 80;
527
 
528
  for (let i = 0; i < particleCount; i++) {
529
  const particle = document.createElement('div');
530
  particle.className = 'particle';
531
  particle.style.left = Math.random() * 100 + '%';
532
+ particle.style.animationDelay = Math.random() * 12 + 's';
533
+ particle.style.animationDuration = (Math.random() * 6 + 8) + 's';
 
534
  particles.appendChild(particle);
535
  }
536
  }
 
547
  };
548
  }
549
 
550
+ // Enhanced strike status information
551
  function getStrikeInfo(strikes) {
552
  if (strikes === 0) {
553
  return {
554
  class: 'strikes-0',
555
+ message: 'Clean Record',
556
+ description: 'This user has maintained an excellent standing with zero violations. They consistently follow all community guidelines and contribute positively to the platform.',
557
+ icon: '✅',
558
+ badge: 'badge-clean',
559
+ status: 'Excellent Standing'
560
  };
561
  } else if (strikes === 1) {
562
  return {
563
  class: 'strikes-1',
564
+ message: 'First Warning',
565
+ description: 'User received their initial strike for posting inappropriate content. This serves as a formal warning to review and adhere to community guidelines.',
566
+ icon: '⚠️',
567
+ badge: 'badge-warning',
568
+ status: 'Warning Issued'
569
  };
570
  } else if (strikes === 2) {
571
  return {
572
  class: 'strikes-2',
573
+ message: 'Final Warning',
574
+ description: 'User has accumulated 2 strikes for repeated violations. This is their final warning before facing potential account restrictions or suspension.',
575
+ icon: '🚨',
576
+ badge: 'badge-warning',
577
+ status: 'Final Warning'
578
  };
579
  } else {
580
  return {
581
  class: 'strikes-3-plus',
582
+ message: 'Critical Status',
583
+ description: 'User has exceeded the violation threshold with multiple infractions. Immediate review required for potential account suspension or permanent ban.',
584
+ icon: '🔴',
585
+ badge: 'badge-danger',
586
+ status: 'Under Review'
587
  };
588
  }
589
  }
590
 
591
+ // Enhanced user information display
592
  function displayUserInfo() {
593
  const params = getUrlParams();
594
  const strikeInfo = getStrikeInfo(params.strikes);
595
 
596
  const content = `
597
+ <div class="strikes-display card">
598
+ <div class="warning-icon">${strikeInfo.icon}</div>
599
+ <div class="card-title">Strike Status Overview</div>
600
+ <div class="strikes-number ${strikeInfo.class}">${params.strikes}</div>
601
+ <div class="strikes-message ${strikeInfo.class}">${strikeInfo.message}</div>
602
+ <div class="strikes-description">${strikeInfo.description}</div>
603
+ </div>
 
604
 
605
+ <div class="card info-card">
606
+ <div class="card-title">👤 User Profile</div>
607
+ <div class="info-item">
608
+ <span class="info-label">Username</span>
609
+ <span class="info-value">@${params.username}</span>
610
+ </div>
611
+ <div class="info-item">
612
+ <span class="info-label">User ID</span>
613
+ <span class="info-value">${params.userid}</span>
 
 
 
 
 
 
 
 
 
614
  </div>
615
+ <div class="info-item">
616
+ <span class="info-label">Group Name</span>
617
+ <span class="info-value">${params.group}</span>
618
+ </div>
619
+ <div class="info-item">
620
+ <span class="info-label">Chat ID</span>
621
+ <span class="info-value">${params.chat_id}</span>
622
+ </div>
623
+ </div>
624
 
625
+ <div class="card info-card">
626
+ <div class="card-title">⚖️ Moderation Details</div>
627
+ <div class="info-item">
628
+ <span class="info-label">Total Strikes</span>
629
+ <span class="info-value">${params.strikes}/3</span>
630
+ </div>
631
+ <div class="info-item">
632
+ <span class="info-label">Violation Type</span>
633
+ <span class="info-value">NSFW Content</span>
634
+ </div>
635
+ <div class="info-item">
636
+ <span class="info-label">Account Status</span>
637
+ <span class="info-value">
638
+ <span class="status-badge ${strikeInfo.badge}">${strikeInfo.status}</span>
639
+ </span>
640
+ </div>
641
+ <div class="info-item">
642
+ <span class="info-label">Action Required</span>
643
+ <span class="info-value">${
644
+ params.strikes === 0 ? 'None' :
645
+ params.strikes >= 3 ? 'Immediate Review' :
646
+ params.strikes === 2 ? 'Final Warning' : 'Monitoring'
647
+ }</span>
648
+ </div>
649
+ <div class="info-item">
650
+ <span class="info-label">Risk Level</span>
651
+ <span class="info-value">${
652
+ params.strikes === 0 ? 'Low' :
653
+ params.strikes === 1 ? 'Medium' :
654
+ params.strikes === 2 ? 'High' : 'Critical'
655
+ }</span>
656
  </div>
657
  </div>
658
  `;
659
 
660
  document.getElementById('content').innerHTML = content;
661
+ document.getElementById('content').className = 'dashboard';
662
  }
663
 
664
+ // Initialize the enhanced dashboard
665
  function init() {
666
  createParticles();
667
+ // Add slight delay for better loading experience
668
+ setTimeout(displayUserInfo, 800);
669
  }
670
 
671
  // Run when page loads
672
  window.addEventListener('load', init);
673
+
674
+ // Add smooth scroll behavior
675
+ document.documentElement.style.scrollBehavior = 'smooth';
676
  </script>
677
  </body>
678
  </html>