Cairo303 commited on
Commit
54d0678
·
verified ·
1 Parent(s): 80203a1

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +709 -448
index.html CHANGED
@@ -1,456 +1,717 @@
1
  <!DOCTYPE html>
2
  <html lang="en">
 
3
  <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>The Daily Chronicle - Online Newspaper</title>
7
- <script src="https://cdn.jsdelivr.net/npm/react@18.0.0/umd/react.development.js"></script>
8
- <script src="https://cdn.jsdelivr.net/npm/react-dom@18.0.0/umd/react-dom.development.js"></script>
9
- <script src="https://cdn.jsdelivr.net/npm/@babel/standalone/babel.js"></script>
10
- <script src="https://cdn.tailwindcss.com"></script>
11
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
12
- <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
13
- <style>
14
- body {
15
- font-family: 'Inter', sans-serif;
16
- }
17
- .playfair {
18
- font-family: 'Playfair Display', serif;
19
- }
20
- .newspaper-bg {
21
- background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
22
- }
23
- .article-card {
24
- transition: all 0.3s ease;
25
- }
26
- .article-card:hover {
27
- transform: translateY(-5px);
28
- box-shadow: 0 10px 25px rgba(0,0,0,0.1);
29
- }
30
- .category-pill {
31
- transition: all 0.2s ease;
32
- }
33
- .category-pill:hover {
34
- transform: scale(1.05);
35
- }
36
- .lotto-ball {
37
- animation: bounce 2s infinite;
38
- }
39
- @keyframes bounce {
40
- 0%, 100% { transform: translateY(0); }
41
- 50% { transform: translateY(-10px); }
42
- }
43
- .scrollbar-hide {
44
- -ms-overflow-style: none;
45
- scrollbar-width: none;
46
- }
47
- .scrollbar-hide::-webkit-scrollbar {
48
- display: none;
49
- }
50
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  </head>
52
- <body class="newspaper-bg min-h-screen">
53
- <div id="root"></div>
54
-
55
- <script type="text/babel">
56
- const { useState, useEffect } = React;
57
-
58
- const categories = [
59
- { id: 1, name: "News", color: "bg-blue-500", icon: "fas fa-newspaper" },
60
- { id: 2, name: "Politics", color: "bg-red-500", icon: "fas fa-gavel" },
61
- { id: 3, name: "Sports", color: "bg-green-500", icon: "fas fa-futbol" },
62
- { id: 4, name: "Entertainment", color: "bg-purple-500", icon: "fas fa-film" },
63
- { id: 5, name: "Technology", color: "bg-indigo-500", icon: "fas fa-laptop" },
64
- { id: 6, name: "Business", color: "bg-yellow-500", icon: "fas fa-chart-line" }
65
- ];
66
-
67
- const mockArticles = [
68
- {
69
- id: 1,
70
- title: "Major Political Shift in City Council",
71
- content: "In a surprising turn of events, the city council has passed a new bill that will reshape the urban landscape for years to come...",
72
- author: "John Doe",
73
- category: 2,
74
- date: "2024-01-15",
75
- likes: 234,
76
- comments: 45,
77
- image: "https://picsum.photos/seed/politics/400/200.jpg"
78
- },
79
- {
80
- id: 2,
81
- title: "Local Team Wins Championship",
82
- content: "The hometown heroes have done it again! After a thrilling final match, our local team has secured the championship title...",
83
- author: "Sarah Smith",
84
- category: 3,
85
- date: "2024-01-14",
86
- likes: 567,
87
- comments: 89,
88
- image: "https://picsum.photos/seed/sports/400/200.jpg"
89
- },
90
- {
91
- id: 3,
92
- title: "Tech Startup Raises $10M",
93
- content: "A promising new technology startup has secured major funding, positioning itself as a leader in the AI space...",
94
- author: "Mike Johnson",
95
- category: 5,
96
- date: "2024-01-13",
97
- likes: 189,
98
- comments: 23,
99
- image: "https://picsum.photos/seed/tech/400/200.jpg"
100
- },
101
- {
102
- id: 4,
103
- title: "New Restaurant Opens Downtown",
104
- content: "Food enthusiasts rejoice! A new gourmet restaurant has opened its doors in the heart of downtown, offering a unique culinary experience...",
105
- author: "Emma Wilson",
106
- category: 4,
107
- date: "2024-01-12",
108
- likes: 145,
109
- comments: 34,
110
- image: "https://picsum.photos/seed/food/400/200.jpg"
111
- },
112
- {
113
- id: 5,
114
- title: "Stock Market Reaches New High",
115
- content: "The stock market has hit an all-time high today, with investors showing renewed confidence in the economy...",
116
- author: "Robert Chen",
117
- category: 6,
118
- date: "2024-01-11",
119
- likes: 321,
120
- comments: 56,
121
- image: "https://picsum.photos/seed/finance/400/200.jpg"
122
- }
123
- ];
124
-
125
- const rankings = [
126
- { rank: 1, name: "DragonSlayer", points: 15420, avatar: "https://picsum.photos/seed/user1/50/50.jpg" },
127
- { rank: 2, name: "ShadowHunter", points: 14280, avatar: "https://picsum.photos/seed/user2/50/50.jpg" },
128
- { rank: 3, name: "PhoenixRise", points: 13890, avatar: "https://picsum.photos/seed/user3/50/50.jpg" },
129
- { rank: 4, name: "IceQueen", points: 12540, avatar: "https://picsum.photos/seed/user4/50/50.jpg" },
130
- { rank: 5, name: "ThunderBolt", points: 11870, avatar: "https://picsum.photos/seed/user5/50/50.jpg" }
131
- ];
132
-
133
- const bounties = [
134
- { id: 1, target: "Wanted: The Bandit King", reward: "$50,000", status: "Active" },
135
- { id: 2, target: "Missing: Ancient Artifact", reward: "$25,000", status: "Active" },
136
- { id: 3, target: "Capture: Rogue Scientist", reward: "$75,000", status: "Active" },
137
- { id: 4, target: "Eliminate: Corporate Spy", reward: "$30,000", status: "Active" },
138
- { id: 5, target: "Recover: Stolen Data", reward: "$40,000", status: "Active" }
139
- ];
140
-
141
- const lottoNumbers = [12, 23, 34, 45, 56, 67, 78, 89, 90, 1, 2, 3, 4, 5, 6];
142
-
143
- function App() {
144
- const [selectedCategory, setSelectedCategory] = useState(null);
145
- const [showPostForm, setShowPostForm] = useState(false);
146
- const [articles, setArticles] = useState(mockArticles);
147
- const [newArticle, setNewArticle] = useState({
148
- title: "",
149
- content: "",
150
- category: 1,
151
- author: "Anonymous"
152
- });
153
-
154
- const filteredArticles = selectedCategory
155
- ? articles.filter(article => article.category === selectedCategory)
156
- : articles;
157
-
158
- const handleSubmitArticle = () => {
159
- if (newArticle.title && newArticle.content) {
160
- const article = {
161
- id: articles.length + 1,
162
- ...newArticle,
163
- date: new Date().toISOString().split('T')[0],
164
- likes: 0,
165
- comments: 0,
166
- image: `https://picsum.photos/seed/${Math.random()}/400/200.jpg`
167
- };
168
- setArticles([article, ...articles]);
169
- setNewArticle({ title: "", content: "", category: 1, author: "Anonymous" });
170
- setShowPostForm(false);
171
- }
172
- };
173
-
174
- return (
175
- <div className="min-h-screen">
176
- {/* Header */}
177
- <header className="bg-white shadow-lg sticky top-0 z-50">
178
- <div className="container mx-auto px-4 py-3">
179
- <div className="flex items-center justify-between">
180
- <div className="flex items-center space-x-4">
181
- <h1 className="playfair text-3xl font-bold text-gray-800">The Daily Chronicle</h1>
182
- <span className="text-sm text-gray-500">• Online Newspaper</span>
183
- </div>
184
- <div className="flex items-center space-x-6">
185
- <a href="#" className="text-gray-600 hover:text-gray-800 transition">Home</a>
186
- <a href="#" className="text-gray-600 hover:text-gray-800 transition">Categories</a>
187
- <a href="#" className="text-gray-600 hover:text-gray-800 transition">Rankings</a>
188
- <a href="#" className="text-gray-600 hover:text-gray-800 transition">Bounties</a>
189
- <a href="#" className="text-gray-600 hover:text-gray-800 transition">Lotto</a>
190
- <button
191
- onClick={() => setShowPostForm(!showPostForm)}
192
- className="bg-blue-500 text-white px-4 py-2 rounded-lg hover:bg-blue-600 transition"
193
- >
194
- Post Article
195
- </button>
196
- </div>
197
- </div>
198
- </div>
199
- </header>
200
-
201
- {/* Post Form Modal */}
202
- {showPostForm && (
203
- <div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4">
204
- <div className="bg-white rounded-lg p-6 max-w-2xl w-full">
205
- <h2 className="text-2xl font-bold mb-4">Create New Article</h2>
206
- <div className="space-y-4">
207
- <input
208
- type="text"
209
- placeholder="Article Title"
210
- value={newArticle.title}
211
- onChange={(e) => setNewArticle({...newArticle, title: e.target.value})}
212
- className="w-full p-3 border rounded-lg"
213
- />
214
- <select
215
- value={newArticle.category}
216
- onChange={(e) => setNewArticle({...newArticle, category: parseInt(e.target.value)})}
217
- className="w-full p-3 border rounded-lg"
218
- >
219
- {categories.map(cat => (
220
- <option key={cat.id} value={cat.id}>{cat.name}</option>
221
- ))}
222
- </select>
223
- <textarea
224
- placeholder="Article Content"
225
- value={newArticle.content}
226
- onChange={(e) => setNewArticle({...newArticle, content: e.target.value})}
227
- className="w-full p-3 border rounded-lg h-32"
228
- />
229
- <input
230
- type="text"
231
- placeholder="Your Name"
232
- value={newArticle.author}
233
- onChange={(e) => setNewArticle({...newArticle, author: e.target.value})}
234
- className="w-full p-3 border rounded-lg"
235
- />
236
- <div className="flex space-x-3">
237
- <button
238
- onClick={handleSubmitArticle}
239
- className="bg-blue-500 text-white px-6 py-2 rounded-lg hover:bg-blue-600"
240
- >
241
- Publish
242
- </button>
243
- <button
244
- onClick={() => setShowPostForm(false)}
245
- className="bg-gray-300 text-gray-700 px-6 py-2 rounded-lg hover:bg-gray-400"
246
- >
247
- Cancel
248
- </button>
249
- </div>
250
- </div>
251
- </div>
252
- </div>
253
- )}
254
-
255
- <div className="container mx-auto px-4 py-8">
256
- <div className="grid grid-cols-1 lg:grid-cols-4 gap-8">
257
- {/* Main Content */}
258
- <div className="lg:col-span-3">
259
- {/* Category Pills */}
260
- <div className="flex flex-wrap gap-2 mb-6">
261
- <button
262
- onClick={() => setSelectedCategory(null)}
263
- className={`category-pill px-4 py-2 rounded-full ${selectedCategory === null ? 'bg-gray-800 text-white' : 'bg-white text-gray-700 hover:bg-gray-100'}`}
264
- >
265
- All Articles
266
- </button>
267
- {categories.map(category => (
268
- <button
269
- key={category.id}
270
- onClick={() => setSelectedCategory(category.id)}
271
- className={`category-pill px-4 py-2 rounded-full flex items-center space-x-2 ${selectedCategory === category.id ? 'bg-gray-800 text-white' : 'bg-white text-gray-700 hover:bg-gray-100'}`}
272
- >
273
- <i className={category.icon}></i>
274
- <span>{category.name}</span>
275
- </button>
276
- ))}
277
- </div>
278
-
279
- {/* Articles Grid */}
280
- <div className="space-y-6">
281
- {filteredArticles.map(article => (
282
- <div key={article.id} className="article-card bg-white rounded-lg shadow-md overflow-hidden">
283
- <div className="md:flex">
284
- <div className="md:w-1/3">
285
- <img src={article.image} alt={article.title} className="w-full h-48 md:h-full object-cover" />
286
- </div>
287
- <div className="p-6 md:w-2/3">
288
- <div className="flex items-center space-x-2 mb-2">
289
- {categories.find(c => c.id === article.category) && (
290
- <span className={`${categories.find(c => c.id === article.category).color} text-white text-xs px-2 py-1 rounded-full`}>
291
- {categories.find(c => c.id === article.category).name}
292
- </span>
293
- )}
294
- <span className="text-gray-500 text-sm">{article.date}</span>
295
- </div>
296
- <h2 className="playfair text-2xl font-bold mb-3 text-gray-800">{article.title}</h2>
297
- <p className="text-gray-600 mb-4 line-clamp-3">{article.content}</p>
298
- <div className="flex items-center justify-between">
299
- <div className="flex items-center space-x-4">
300
- <span className="text-gray-500 text-sm">By {article.author}</span>
301
- <div className="flex items-center space-x-2">
302
- <button className="flex items-center space-x-1 text-gray-500 hover:text-blue-500">
303
- <i className="far fa-thumbs-up"></i>
304
- <span>{article.likes}</span>
305
- </button>
306
- <button className="flex items-center space-x-1 text-gray-500 hover:text-blue-500">
307
- <i className="far fa-comment"></i>
308
- <span>{article.comments}</span>
309
- </button>
310
- </div>
311
- </div>
312
- <button className="text-blue-500 hover:text-blue-600">Read More</button>
313
- </div>
314
- </div>
315
- </div>
316
- </div>
317
- ))}
318
- </div>
319
- </div>
320
-
321
- {/* Sidebar */}
322
- <div className="space-y-6">
323
- {/* Rankings */}
324
- <div className="bg-white rounded-lg shadow-md p-6">
325
- <h3 className="text-xl font-bold mb-4 flex items-center">
326
- <i className="fas fa-trophy text-yellow-500 mr-2"></i>
327
- Player Rankings
328
- </h3>
329
- <div className="space-y-3">
330
- {rankings.map(player => (
331
- <div key={player.rank} className="flex items-center space-x-3">
332
- <div className={`w-8 h-8 rounded-full flex items-center justify-center text-white font-bold ${player.rank === 1 ? 'bg-yellow-500' : player.rank === 2 ? 'bg-gray-400' : player.rank === 3 ? 'bg-orange-600' : 'bg-gray-300'}`}>
333
- {player.rank}
334
- </div>
335
- <img src={player.avatar} alt={player.name} className="w-10 h-10 rounded-full" />
336
- <div className="flex-1">
337
- <p className="font-semibold text-gray-800">{player.name}</p>
338
- <p className="text-sm text-gray-500">{player.points.toLocaleString()} pts</p>
339
- </div>
340
- </div>
341
- ))}
342
- </div>
343
- </div>
344
-
345
- {/* Bounties */}
346
- <div className="bg-white rounded-lg shadow-md p-6">
347
- <h3 className="text-xl font-bold mb-4 flex items-center">
348
- <i className="fas fa-bounty-hunter text-red-500 mr-2"></i>
349
- Active Bounties
350
- </h3>
351
- <div className="space-y-3">
352
- {bounties.map(bounty => (
353
- <div key={bounty.id} className="border-l-4 border-red-500 pl-3 py-2">
354
- <p className="font-semibold text-gray-800">{bounty.target}</p>
355
- <p className="text-sm text-green-600 font-bold">Reward: {bounty.reward}</p>
356
- <span className="inline-block mt-1 px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full">
357
- {bounty.status}
358
- </span>
359
- </div>
360
- ))}
361
- </div>
362
- </div>
363
-
364
- {/* Lotto Results */}
365
- <div className="bg-white rounded-lg shadow-md p-6">
366
- <h3 className="text-xl font-bold mb-4 flex items-center">
367
- <i className="fas fa-dice text-purple-500 mr-2"></i>
368
- Lotto Results
369
- </h3>
370
- <div className="grid grid-cols-5 gap-2">
371
- {lottoNumbers.map((num, index) => (
372
- <div key={index} className="lotto-ball bg-purple-500 text-white rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">
373
- {num}
374
- </div>
375
- ))}
376
- </div>
377
- <div className="mt-4 text-center">
378
- <p className="text-sm text-gray-600">Next Draw: 2 hours</p>
379
- <button className="mt-2 bg-purple-500 text-white px-4 py-2 rounded-lg text-sm hover:bg-purple-600">
380
- Play Now
381
- </button>
382
- </div>
383
- </div>
384
-
385
- {/* Stats */}
386
- <div className="bg-white rounded-lg shadow-md p-6">
387
- <h3 className="text-xl font-bold mb-4">Site Stats</h3>
388
- <div className="space-y-3">
389
- <div className="flex justify-between">
390
- <span className="text-gray-600">Total Articles</span>
391
- <span className="font-bold">{articles.length}</span>
392
- </div>
393
- <div className="flex justify-between">
394
- <span className="text-gray-600">Active Users</span>
395
- <span className="font-bold">1,234</span>
396
- </div>
397
- <div className="flex justify-between">
398
- <span className="text-gray-600">Today's Posts</span>
399
- <span className="font-bold">47</span>
400
- </div>
401
- <div className="flex justify-between">
402
- <span className="text-gray-600">Comments</span>
403
- <span className="font-bold">892</span>
404
- </div>
405
- </div>
406
- </div>
407
- </div>
408
- </div>
409
- </div>
410
-
411
- {/* Footer */}
412
- <footer className="bg-gray-800 text-white py-8 mt-12">
413
- <div className="container mx-auto px-4">
414
- <div className="grid grid-cols-1 md:grid-cols-4 gap-8">
415
- <div>
416
- <h4 className="font-bold mb-4">The Daily Chronicle</h4>
417
- <p className="text-gray-400 text-sm">Your trusted source for news and updates.</p>
418
- </div>
419
- <div>
420
- <h4 className="font-bold mb-4">Quick Links</h4>
421
- <ul className="space-y-2 text-sm text-gray-400">
422
- <li><a href="#" className="hover:text-white">About Us</a></li>
423
- <li><a href="#" className="hover:text-white">Contact</a></li>
424
- <li><a href="#" className="hover:text-white">Privacy Policy</a></li>
425
- </ul>
426
- </div>
427
- <div>
428
- <h4 className="font-bold mb-4">Categories</h4>
429
- <ul className="space-y-2 text-sm text-gray-400">
430
- {categories.map(cat => (
431
- <li key={cat.id}><a href="#" className="hover:text-white">{cat.name}</a></li>
432
- ))}
433
- </ul>
434
- </div>
435
- <div>
436
- <h4 className="font-bold mb-4">Follow Us</h4>
437
- <div className="flex space-x-4">
438
- <a href="#" className="text-gray-400 hover:text-white"><i className="fab fa-twitter"></i></a>
439
- <a href="#" className="text-gray-400 hover:text-white"><i className="fab fa-facebook"></i></a>
440
- <a href="#" className="text-gray-400 hover:text-white"><i className="fab fa-instagram"></i></a>
441
- </div>
442
- </div>
443
- </div>
444
- <div className="border-t border-gray-700 mt-8 pt-8 text-center text-sm text-gray-400">
445
- <a href="https://huggingface.co/spaces/akhaliq/anycoder" className="text-blue-400 hover:underline">Built with anycoder</a>
446
- </div>
447
- </div>
448
- </footer>
449
  </div>
450
- );
451
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
452
 
453
- ReactDOM.render(<App />, document.getElementById('root'));
454
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
455
  </body>
 
456
  </html>
 
1
  <!DOCTYPE html>
2
  <html lang="en">
3
+
4
  <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>The Daily Chronicle - Online Newspaper</title>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
9
+ <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Inter:wght@300;400;500;600;700&family=Cinzel:wght@400;600&display=swap" rel="stylesheet">
10
+ <style>
11
+ * {
12
+ margin: 0;
13
+ padding: 0;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ :root {
18
+ --primary-gold: #D4AF37;
19
+ --dark-gold: #B8860B;
20
+ --deep-purple: #4B0082;
21
+ --royal-blue: #4169E1;
22
+ --crimson: #DC143C;
23
+ --emerald: #50C878;
24
+ --navy: #191970;
25
+ --black: #000000;
26
+ --white: #FFFFFF;
27
+ --gray-900: #1F2937;
28
+ --gray-800: #374151;
29
+ --gray-700: #6B7280;
30
+ --gray-600: #9CA3AF;
31
+ --gray-500: #D1D5DB;
32
+ --gray-400: #E5E7EB;
33
+ --gray-300: #F3F4F6;
34
+ --glass-bg: rgba(255, 255, 255, 0.1);
35
+ --glass-border: rgba(255, 255, 255, 0.2);
36
+ }
37
+
38
+ body {
39
+ font-family: 'Inter', sans-serif;
40
+ background: linear-gradient(135deg, #0F0C29, #302B63, #24243E);
41
+ min-height: 100vh;
42
+ color: var(--white);
43
+ position: relative;
44
+ overflow-x: hidden;
45
+ }
46
+
47
+ body::before {
48
+ content: '';
49
+ position: fixed;
50
+ top: 0;
51
+ left: 0;
52
+ width: 100%;
53
+ height: 100%;
54
+ background:
55
+ radial-gradient(circle at 20% 50%, rgba(255, 215, 0, 0.1) 0%, transparent 50%),
56
+ radial-gradient(circle at 80% 80%, rgba(138, 43, 226, 0.1) 0%, transparent 50%),
57
+ radial-gradient(circle at 40% 20%, rgba(30, 144, 255, 0.1) 0%, transparent 50%);
58
+ pointer-events: none;
59
+ z-index: 1;
60
+ }
61
+
62
+ .pimp-container {
63
+ position: relative;
64
+ z-index: 2;
65
+ }
66
+
67
+ .playfair {
68
+ font-family: 'Playfair Display', serif;
69
+ }
70
+
71
+ .cinzel {
72
+ font-family: 'Cinzel', serif;
73
+ }
74
+
75
+ .luxury-header {
76
+ background: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.6) 100%);
77
+ backdrop-filter: blur(10px);
78
+ border-bottom: 2px solid var(--primary-gold);
79
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
80
+ }
81
+
82
+ .luxury-card {
83
+ background: var(--glass-bg);
84
+ backdrop-filter: blur(10px);
85
+ border: 1px solid var(--glass-border);
86
+ border-radius: 15px;
87
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
88
+ transition: all 0.3s ease;
89
+ }
90
+
91
+ .luxury-card:hover {
92
+ transform: translateY(-5px);
93
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
94
+ border-color: var(--primary-gold);
95
+ }
96
+
97
+ .category-pill {
98
+ background: linear-gradient(135deg, var(--gray-800), var(--gray-900));
99
+ border: 1px solid var(--glass-border);
100
+ transition: all 0.3s ease;
101
+ position: relative;
102
+ overflow: hidden;
103
+ }
104
+
105
+ .category-pill::before {
106
+ content: '';
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ width: 100%;
111
+ height: 100%;
112
+ background: linear-gradient(45deg, transparent, rgba(255, 215, 0, 0.1), transparent);
113
+ transform: translateX(-100%);
114
+ transition: transform 0.6s;
115
+ }
116
+
117
+ .category-pill:hover::before {
118
+ transform: translateX(100%);
119
+ }
120
+
121
+ .category-pill:hover {
122
+ transform: scale(1.05);
123
+ border-color: var(--primary-gold);
124
+ box-shadow: 0 5px 15px rgba(212, 175, 55, 0.3);
125
+ }
126
+
127
+ .article-card {
128
+ background: var(--glass-bg);
129
+ backdrop-filter: blur(10px);
130
+ border: 1px solid var(--glass-border);
131
+ border-radius: 15px;
132
+ transition: all 0.3s ease;
133
+ overflow: hidden;
134
+ }
135
+
136
+ .article-card:hover {
137
+ transform: translateY(-5px);
138
+ box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
139
+ border-color: var(--primary-gold);
140
+ }
141
+
142
+ .article-card .category-tag {
143
+ background: linear-gradient(135deg, var(--deep-purple), var(--royal-blue));
144
+ border: 1px solid rgba(255, 255, 255, 0.2);
145
+ }
146
+
147
+ .gold-button {
148
+ background: linear-gradient(135deg, var(--primary-gold), var(--dark-gold));
149
+ border: none;
150
+ color: var(--black);
151
+ font-weight: 600;
152
+ transition: all 0.3s ease;
153
+ position: relative;
154
+ overflow: hidden;
155
+ }
156
+
157
+ .gold-button::after {
158
+ content: '';
159
+ position: absolute;
160
+ top: 0;
161
+ left: -100%;
162
+ width: 100%;
163
+ height: 100%;
164
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
165
+ transition: left 0.6s;
166
+ }
167
+
168
+ .gold-button:hover::after {
169
+ left: 100%;
170
+ }
171
+
172
+ .gold-button:hover {
173
+ transform: translateY(-2px);
174
+ box-shadow: 0 5px 15px rgba(212, 175, 55, 0.4);
175
+ }
176
+
177
+ .rank-badge {
178
+ width: 30px;
179
+ height: 30px;
180
+ border-radius: 50%;
181
+ display: flex;
182
+ align-items: center;
183
+ justify-content: center;
184
+ font-weight: bold;
185
+ font-size: 14px;
186
+ }
187
+
188
+ .rank-1 {
189
+ background: linear-gradient(135deg, #FFD700, #FFA500);
190
+ box-shadow: 0 0 15px rgba(255, 215, 0, 0.6);
191
+ }
192
+
193
+ .rank-2 {
194
+ background: linear-gradient(135deg, #C0C0C0, #808080);
195
+ box-shadow: 0 0 15px rgba(192, 192, 192, 0.6);
196
+ }
197
+
198
+ .rank-3 {
199
+ background: linear-gradient(135deg, #CD7F32, #8B4513);
200
+ box-shadow: 0 0 15px rgba(205, 127, 50, 0.6);
201
+ }
202
+
203
+ .lotto-ball {
204
+ background: linear-gradient(135deg, var(--crimson), var(--deep-purple));
205
+ border: 2px solid var(--primary-gold);
206
+ box-shadow: 0 0 15px rgba(212, 175, 55, 0.4);
207
+ animation: bounce 2s infinite;
208
+ }
209
+
210
+ @keyframes bounce {
211
+ 0%, 100% {
212
+ transform: translateY(0) rotate(0deg);
213
+ }
214
+ 50% {
215
+ transform: translateY(-10px) rotate(5deg);
216
+ }
217
+ }
218
+
219
+ .glow-text {
220
+ text-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
221
+ }
222
+
223
+ .gradient-text {
224
+ background: linear-gradient(135deg, var(--primary-gold), var(--royal-blue));
225
+ -webkit-background-clip: text;
226
+ -webkit-text-fill-color: transparent;
227
+ background-clip: text;
228
+ }
229
+
230
+ .modal-overlay {
231
+ background: rgba(0, 0, 0, 0.8);
232
+ backdrop-filter: blur(5px);
233
+ }
234
+
235
+ .modal-content {
236
+ background: linear-gradient(135deg, var(--gray-900), var(--black));
237
+ border: 2px solid var(--primary-gold);
238
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
239
+ }
240
+
241
+ .stats-number {
242
+ font-family: 'Cinzel', serif;
243
+ font-size: 1.5rem;
244
+ color: var(--primary-gold);
245
+ }
246
+
247
+ .footer-luxury {
248
+ background: linear-gradient(135deg, var(--gray-900), var(--black));
249
+ border-top: 2px solid var(--primary-gold);
250
+ }
251
+
252
+ .social-icon {
253
+ background: var(--glass-bg);
254
+ border: 1px solid var(--glass-border);
255
+ transition: all 0.3s ease;
256
+ }
257
+
258
+ .social-icon:hover {
259
+ background: var(--primary-gold);
260
+ transform: translateY(-3px);
261
+ box-shadow: 0 5px 15px rgba(212, 175, 55, 0.4);
262
+ }
263
+
264
+ @media (max-width: 768px) {
265
+ .luxury-header {
266
+ padding: 1rem 0;
267
+ }
268
+
269
+ .luxury-card {
270
+ margin-bottom: 1rem;
271
+ }
272
+ }
273
+ </style>
274
  </head>
275
+
276
+ <body>
277
+ <div class="pimp-container">
278
+ <!-- Header -->
279
+ <header class="luxury-header sticky top-0 z-50">
280
+ <div class="container mx-auto px-4 py-4">
281
+ <div class="flex items-center justify-between">
282
+ <div class="flex items-center space-x-4">
283
+ <h1 class="playfair text-3xl font-bold glow-text">The Daily Chronicle</h1>
284
+ <span class="text-sm text-gray-400">• Online Newspaper</span>
285
+ </div>
286
+ <div class="flex items-center space-x-6">
287
+ <a href="#" class="text-gray-300 hover:text-white transition">Home</a>
288
+ <a href="#" class="text-gray-300 hover:text-white transition">Categories</a>
289
+ <a href="#" class="text-gray-300 hover:text-white transition">Rankings</a>
290
+ <a href="#" class="text-gray-300 hover:text-white transition">Bounties</a>
291
+ <a href="#" class="text-gray-300 hover:text-white transition">Lotto</a>
292
+ <button id="postArticleBtn" class="gold-button px-6 py-2 rounded-lg">
293
+ Post Article
294
+ </button>
295
+ </div>
296
+ </div>
297
+ </div>
298
+ </header>
299
+
300
+ <!-- Post Form Modal -->
301
+ <div id="postModal" class="hidden fixed inset-0 modal-overlay flex items-center justify-center z-50 p-4">
302
+ <div class="modal-content rounded-lg p-6 max-w-2xl w-full">
303
+ <h2 class="text-2xl font-bold mb-4 gradient-text">Create New Article</h2>
304
+ <div class="space-y-4">
305
+ <input type="text" id="articleTitle" placeholder="Article Title" class="w-full p-3 bg-gray-800 border border-gray-700 rounded-lg text-white">
306
+ <select id="articleCategory" class="w-full p-3 bg-gray-800 border border-gray-700 rounded-lg text-white">
307
+ <option value="1">News</option>
308
+ <option value="2">Politics</option>
309
+ <option value="3">Sports</option>
310
+ <option value="4">Entertainment</option>
311
+ <option value="5">Technology</option>
312
+ <option value="6">Business</option>
313
+ </select>
314
+ <textarea id="articleContent" placeholder="Article Content" class="w-full p-3 bg-gray-800 border border-gray-700 rounded-lg text-white h-32"></textarea>
315
+ <input type="text" id="articleAuthor" placeholder="Your Name" class="w-full p-3 bg-gray-800 border border-gray-700 rounded-lg text-white">
316
+ <div class="flex space-x-3">
317
+ <button id="publishBtn" class="gold-button px-6 py-2 rounded-lg">Publish</button>
318
+ <button id="cancelBtn" class="bg-gray-700 text-white px-6 py-2 rounded-lg hover:bg-gray-600">Cancel</button>
319
+ </div>
320
+ </div>
321
+ </div>
322
+ </div>
323
+
324
+ <div class="container mx-auto px-4 py-8">
325
+ <div class="grid grid-cols-1 lg:grid-cols-4 gap-8">
326
+ <!-- Main Content -->
327
+ <div class="lg:col-span-3">
328
+ <!-- Category Pills -->
329
+ <div class="flex flex-wrap gap-2 mb-6">
330
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="all">All Articles</button>
331
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="1">
332
+ <i class="fas fa-newspaper mr-2"></i>News
333
+ </button>
334
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="2">
335
+ <i class="fas fa-gavel mr-2"></i>Politics
336
+ </button>
337
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="3">
338
+ <i class="fas fa-futbol mr-2"></i>Sports
339
+ </button>
340
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="4">
341
+ <i class="fas fa-film mr-2"></i>Entertainment
342
+ </button>
343
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="5">
344
+ <i class="fas fa-laptop mr-2"></i>Technology
345
+ </button>
346
+ <button class="category-pill px-4 py-2 rounded-full text-white" data-category="6">
347
+ <i class="fas fa-chart-line mr-2"></i>Business
348
+ </button>
349
+ </div>
350
+
351
+ <!-- Articles Grid -->
352
+ <div id="articlesContainer" class="space-y-6">
353
+ <!-- Articles will be dynamically inserted here -->
354
+ </div>
355
+ </div>
356
+
357
+ <!-- Sidebar -->
358
+ <div class="space-y-6">
359
+ <!-- Rankings -->
360
+ <div class="luxury-card p-6">
361
+ <h3 class="text-xl font-bold mb-4 flex items-center">
362
+ <i class="fas fa-trophy text-yellow-500 mr-2"></i>
363
+ Player Rankings
364
+ </h3>
365
+ <div id="rankingsContainer" class="space-y-3">
366
+ <!-- Rankings will be dynamically inserted here -->
367
+ </div>
368
+ </div>
369
+
370
+ <!-- Bounties -->
371
+ <div class="luxury-card p-6">
372
+ <h3 class="text-xl font-bold mb-4 flex items-center">
373
+ <i class="fas fa-bounty-hunter text-red-500 mr-2"></i>
374
+ Active Bounties
375
+ </h3>
376
+ <div id="bountiesContainer" class="space-y-3">
377
+ <!-- Bounties will be dynamically inserted here -->
378
+ </div>
379
+ </div>
380
+
381
+ <!-- Lotto Results -->
382
+ <div class="luxury-card p-6">
383
+ <h3 class="text-xl font-bold mb-4 flex items-center">
384
+ <i class="fas fa-dice text-purple-500 mr-2"></i>
385
+ Lotto Results
386
+ </h3>
387
+ <div class="grid grid-cols-5 gap-2">
388
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">12</div>
389
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">23</div>
390
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">34</div>
391
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">45</div>
392
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">56</div>
393
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">67</div>
394
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">78</div>
395
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">89</div>
396
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">90</div>
397
+ <div class="lotto-ball rounded-full w-10 h-10 flex items-center justify-center font-bold text-sm">1</div>
398
+ </div>
399
+ <div class="mt-4 text-center">
400
+ <p class="text-sm text-gray-400">Next Draw: 2 hours</p>
401
+ <button class="mt-2 gold-button px-4 py-2 rounded-lg text-sm">Play Now</button>
402
+ </div>
403
+ </div>
404
+
405
+ <!-- Stats -->
406
+ <div class="luxury-card p-6">
407
+ <h3 class="text-xl font-bold mb-4">Site Stats</h3>
408
+ <div class="space-y-3">
409
+ <div class="flex justify-between">
410
+ <span class="text-gray-400">Total Articles</span>
411
+ <span class="stats-number">5</span>
412
+ </div>
413
+ <div class="flex justify-between">
414
+ <span class="text-gray-400">Active Users</span>
415
+ <span class="stats-number">1,234</span>
416
+ </div>
417
+ <div class="flex justify-between">
418
+ <span class="text-gray-400">Today's Posts</span>
419
+ <span class="stats-number">47</span>
420
+ </div>
421
+ <div class="flex justify-between">
422
+ <span class="text-gray-400">Comments</span>
423
+ <span class="stats-number">892</span>
424
+ </div>
425
+ </div>
426
+ </div>
427
+ </div>
428
+ </div>
429
+ </div>
430
+
431
+ <!-- Footer -->
432
+ <footer class="footer-luxury py-8 mt-12">
433
+ <div class="container mx-auto px-4">
434
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
435
+ <div>
436
+ <h4 class="font-bold mb-4 gradient-text">The Daily Chronicle</h4>
437
+ <p class="text-gray-400 text-sm">Your trusted source for news and updates.</p>
438
+ </div>
439
+ <div>
440
+ <h4 class="font-bold mb-4">Quick Links</h4>
441
+ <ul class="space-y-2 text-sm text-gray-400">
442
+ <li><a href="#" class="hover:text-white">About Us</a></li>
443
+ <li><a href="#" class="hover:text-white">Contact</a></li>
444
+ <li><a href="#" class="hover:text-white">Privacy Policy</a></li>
445
+ </ul>
446
+ </div>
447
+ <div>
448
+ <h4 class="font-bold mb-4">Categories</h4>
449
+ <ul class="space-y-2 text-sm text-gray-400">
450
+ <li><a href="#" class="hover:text-white">News</a></li>
451
+ <li><a href="#" class="hover:text-white">Politics</a></li>
452
+ <li><a href="#" class="hover:text-white">Sports</a></li>
453
+ <li><a href="#" class="hover:text-white">Entertainment</a></li>
454
+ <li><a href="#" class="hover:text-white">Technology</a></li>
455
+ <li><a href="#" class="hover:text-white">Business</a></li>
456
+ </ul>
457
+ </div>
458
+ <div>
459
+ <h4 class="font-bold mb-4">Follow Us</h4>
460
+ <div class="flex space-x-4">
461
+ <a href="#" class="social-icon w-10 h-10 rounded-full flex items-center justify-center">
462
+ <i class="fab fa-twitter"></i>
463
+ </a>
464
+ <a href="#" class="social-icon w-10 h-10 rounded-full flex items-center justify-center">
465
+ <i class="fab fa-facebook"></i>
466
+ </a>
467
+ <a href="#" class="social-icon w-10 h-10 rounded-full flex items-center justify-center">
468
+ <i class="fab fa-instagram"></i>
469
+ </a>
470
+ </div>
471
+ </div>
472
+ </div>
473
+ <div class="border-t border-gray-700 mt-8 pt-8 text-center text-sm text-gray-400">
474
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" class="text-blue-400 hover:underline">Built with anycoder</a>
475
+ </div>
476
+ </div>
477
+ </footer>
478
+ </div>
479
+
480
+ <script>
481
+ // Data
482
+ const categories = [
483
+ { id: 1, name: "News", color: "bg-blue-500", icon: "fas fa-newspaper" },
484
+ { id: 2, name: "Politics", color: "bg-red-500", icon: "fas fa-gavel" },
485
+ { id: 3, name: "Sports", color: "bg-green-500", icon: "fas fa-futbol" },
486
+ { id: 4, name: "Entertainment", color: "bg-purple-500", icon: "fas fa-film" },
487
+ { id: 5, name: "Technology", color: "bg-indigo-500", icon: "fas fa-laptop" },
488
+ { id: 6, name: "Business", color: "bg-yellow-500", icon: "fas fa-chart-line" }
489
+ ];
490
+
491
+ const mockArticles = [
492
+ {
493
+ id: 1,
494
+ title: "Major Political Shift in City Council",
495
+ content: "In a surprising turn of events, the city council has passed a new bill that will reshape the urban landscape for years to come...",
496
+ author: "John Doe",
497
+ category: 2,
498
+ date: "2024-01-15",
499
+ likes: 234,
500
+ comments: 45,
501
+ image: "https://picsum.photos/seed/politics/400/200.jpg"
502
+ },
503
+ {
504
+ id: 2,
505
+ title: "Local Team Wins Championship",
506
+ content: "The hometown heroes have done it again! After a thrilling final match, our local team has secured the championship title...",
507
+ author: "Sarah Smith",
508
+ category: 3,
509
+ date: "2024-01-14",
510
+ likes: 567,
511
+ comments: 89,
512
+ image: "https://picsum.photos/seed/sports/400/200.jpg"
513
+ },
514
+ {
515
+ id: 3,
516
+ title: "Tech Startup Raises $10M",
517
+ content: "A promising new technology startup has secured major funding, positioning itself as a leader in the AI space...",
518
+ author: "Mike Johnson",
519
+ category: 5,
520
+ date: "2024-01-13",
521
+ likes: 189,
522
+ comments: 23,
523
+ image: "https://picsum.photos/seed/tech/400/200.jpg"
524
+ },
525
+ {
526
+ id: 4,
527
+ title: "New Restaurant Opens Downtown",
528
+ content: "Food enthusiasts rejoice! A new gourmet restaurant has opened its doors in the heart of downtown, offering a unique culinary experience...",
529
+ author: "Emma Wilson",
530
+ category: 4,
531
+ date: "2024-01-12",
532
+ likes: 145,
533
+ comments: 34,
534
+ image: "https://picsum.photos/seed/food/400/200.jpg"
535
+ },
536
+ {
537
+ id: 5,
538
+ title: "Stock Market Reaches New High",
539
+ content: "The stock market has hit an all-time high today, with investors showing renewed confidence in the economy...",
540
+ author: "Robert Chen",
541
+ category: 6,
542
+ date: "2024-01-11",
543
+ likes: 321,
544
+ comments: 56,
545
+ image: "https://picsum.photos/seed/finance/400/200.jpg"
546
+ }
547
+ ];
548
+
549
+ const rankings = [
550
+ { rank: 1, name: "DragonSlayer", points: 15420, avatar: "https://picsum.photos/seed/user1/50/50.jpg" },
551
+ { rank: 2, name: "ShadowHunter", points: 14280, avatar: "https://picsum.photos/seed/user2/50/50.jpg" },
552
+ { rank: 3, name: "PhoenixRise", points: 13890, avatar: "https://picsum.photos/seed/user3/50/50.jpg" },
553
+ { rank: 4, name: "IceQueen", points: 12540, avatar: "https://picsum.photos/seed/user4/50/50.jpg" },
554
+ { rank: 5, name: "ThunderBolt", points: 11870, avatar: "https://picsum.photos/seed/user5/50/50.jpg" }
555
+ ];
556
+
557
+ const bounties = [
558
+ { id: 1, target: "Wanted: The Bandit King", reward: "$50,000", status: "Active" },
559
+ { id: 2, target: "Missing: Ancient Artifact", reward: "$25,000", status: "Active" },
560
+ { id: 3, target: "Capture: Rogue Scientist", reward: "$75,000", status: "Active" },
561
+ { id: 4, target: "Eliminate: Corporate Spy", reward: "$30,000", status: "Active" },
562
+ { id: 5, target: "Recover: Stolen Data", reward: "$40,000", status: "Active" }
563
+ ];
564
+
565
+ // DOM Elements
566
+ const postArticleBtn = document.getElementById('postArticleBtn');
567
+ const postModal = document.getElementById('postModal');
568
+ const cancelBtn = document.getElementById('cancelBtn');
569
+ const publishBtn = document.getElementById('publishBtn');
570
+ const articlesContainer = document.getElementById('articlesContainer');
571
+ const rankingsContainer = document.getElementById('rankingsContainer');
572
+ const bountiesContainer = document.getElementById('bountiesContainer');
573
+ const categoryPills = document.querySelectorAll('.category-pill');
574
+
575
+ // Show/Hide Modal
576
+ postArticleBtn.addEventListener('click', () => {
577
+ postModal.classList.remove('hidden');
578
+ });
579
+
580
+ cancelBtn.addEventListener('click', () => {
581
+ postModal.classList.add('hidden');
582
+ });
583
+
584
+ // Category Filtering
585
+ categoryPills.forEach(pill => {
586
+ pill.addEventListener('click', () => {
587
+ categoryPills.forEach(p => p.classList.remove('bg-gray-800'));
588
+ pill.classList.add('bg-gray-800');
589
+ renderArticles(pill.dataset.category);
590
+ });
591
+ });
592
+
593
+ // Render Articles
594
+ function renderArticles(category = 'all') {
595
+ articlesContainer.innerHTML = '';
596
+ const filteredArticles = category === 'all'
597
+ ? mockArticles
598
+ : mockArticles.filter(article => article.category == category);
599
+
600
+ filteredArticles.forEach(article => {
601
+ const categoryInfo = categories.find(c => c.id == article.category);
602
+ const articleElement = document.createElement('div');
603
+ articleElement.className = 'article-card';
604
+ articleElement.innerHTML = `
605
+ <div class="md:flex">
606
+ <div class="md:w-1/3">
607
+ <img src="${article.image}" alt="${article.title}" class="w-full h-48 md:h-full object-cover">
608
+ </div>
609
+ <div class="p-6 md:w-2/3">
610
+ <div class="flex items-center space-x-2 mb-2">
611
+ <span class="category-tag text-white text-xs px-2 py-1 rounded-full">
612
+ ${categoryInfo.name}
613
+ </span>
614
+ <span class="text-gray-400 text-sm">${article.date}</span>
615
+ </div>
616
+ <h2 class="playfair text-2xl font-bold mb-3 text-gray-100">${article.title}</h2>
617
+ <p class="text-gray-300 mb-4 line-clamp-3">${article.content}</p>
618
+ <div class="flex items-center justify-between">
619
+ <div class="flex items-center space-x-4">
620
+ <span class="text-gray-400 text-sm">By ${article.author}</span>
621
+ <div class="flex items-center space-x-2">
622
+ <button class="flex items-center space-x-1 text-gray-400 hover:text-yellow-400">
623
+ <i class="far fa-thumbs-up"></i>
624
+ <span>${article.likes}</span>
625
+ </button>
626
+ <button class="flex items-center space-x-1 text-gray-400 hover:text-blue-400">
627
+ <i class="far fa-comment"></i>
628
+ <span>${article.comments}</span>
629
+ </button>
630
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
631
  </div>
632
+ <button class="text-blue-400 hover:text-blue-300">Read More</button>
633
+ </div>
634
+ </div>
635
+ </div>
636
+ `;
637
+ articlesContainer.appendChild(articleElement);
638
+ });
639
+ }
640
+
641
+ // Render Rankings
642
+ function renderRankings() {
643
+ rankingsContainer.innerHTML = '';
644
+ rankings.forEach(player => {
645
+ const playerElement = document.createElement('div');
646
+ playerElement.className = 'flex items-center space-x-3';
647
+ playerElement.innerHTML = `
648
+ <div class="rank-badge ${player.rank === 1 ? 'rank-1' : player.rank === 2 ? 'rank-2' : player.rank === 3 ? 'rank-3' : 'bg-gray-600'}">
649
+ ${player.rank}
650
+ </div>
651
+ <img src="${player.avatar}" alt="${player.name}" class="w-10 h-10 rounded-full">
652
+ <div class="flex-1">
653
+ <p class="font-semibold text-gray-100">${player.name}</p>
654
+ <p class="text-sm text-gray-400">${player.points.toLocaleString()} pts</p>
655
+ </div>
656
+ `;
657
+ rankingsContainer.appendChild(playerElement);
658
+ });
659
+ }
660
+
661
+ // Render Bounties
662
+ function renderBounties() {
663
+ bountiesContainer.innerHTML = '';
664
+ bounties.forEach(bounty => {
665
+ const bountyElement = document.createElement('div');
666
+ bountyElement.className = 'border-l-4 border-red-500 pl-3 py-2';
667
+ bountyElement.innerHTML = `
668
+ <p class="font-semibold text-gray-100">${bounty.target}</p>
669
+ <p class="text-sm text-green-400 font-bold">Reward: ${bounty.reward}</p>
670
+ <span class="inline-block mt-1 px-2 py-1 bg-green-900 text-green-300 text-xs rounded-full">
671
+ ${bounty.status}
672
+ </span>
673
+ `;
674
+ bountiesContainer.appendChild(bountyElement);
675
+ });
676
+ }
677
+
678
+ // Initialize
679
+ renderArticles();
680
+ renderRankings();
681
+ renderBounties();
682
 
683
+ // Handle Publish
684
+ publishBtn.addEventListener('click', () => {
685
+ const title = document.getElementById('articleTitle').value;
686
+ const content = document.getElementById('articleContent').value;
687
+ const author = document.getElementById('articleAuthor').value;
688
+ const category = document.getElementById('articleCategory').value;
689
+
690
+ if (title && content) {
691
+ const newArticle = {
692
+ id: mockArticles.length + 1,
693
+ title,
694
+ content,
695
+ author: author || 'Anonymous',
696
+ category: parseInt(category),
697
+ date: new Date().toISOString().split('T')[0],
698
+ likes: 0,
699
+ comments: 0,
700
+ image: `https://picsum.photos/seed/${Math.random()}/400/200.jpg`
701
+ };
702
+
703
+ mockArticles.unshift(newArticle);
704
+ renderArticles();
705
+ postModal.classList.add('hidden');
706
+
707
+ // Reset form
708
+ document.getElementById('articleTitle').value = '';
709
+ document.getElementById('articleContent').value = '';
710
+ document.getElementById('articleAuthor').value = '';
711
+ document.getElementById('articleCategory').value = '1';
712
+ }
713
+ });
714
+ </script>
715
  </body>
716
+
717
  </html>