SREAL commited on
Commit
2b6dcfa
Β·
verified Β·
1 Parent(s): 0990b6e

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +357 -17
index.html CHANGED
@@ -1,19 +1,359 @@
1
- <!doctype html>
2
  <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+ <!DOCTYPE html>
2
  <html>
3
+ <head>
4
+ <title>I'M NOT A ROBOT βœ“</title>
5
+ <style>
6
+ body {
7
+ background-color: #000;
8
+ color: #0f0;
9
+ font-family: 'Share Tech Mono', monospace;
10
+ margin: 0;
11
+ padding: 0;
12
+ height: 100vh;
13
+ display: flex;
14
+ justify-content: center;
15
+ align-items: center;
16
+ overflow: hidden;
17
+ }
18
+
19
+ #matrix {
20
+ position: fixed;
21
+ top: 0;
22
+ left: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ z-index: 1;
26
+ pointer-events: none;
27
+ }
28
+
29
+ #title-screen {
30
+ position: relative;
31
+ z-index: 2;
32
+ text-align: center;
33
+ }
34
+
35
+ #game-screen {
36
+ display: none;
37
+ position: relative;
38
+ z-index: 2;
39
+ background: linear-gradient(135deg, #003300 0%, #006600 100%);
40
+ padding: 30px;
41
+ border-radius: 15px;
42
+ width: 800px;
43
+ height: 600px;
44
+ box-shadow: 0 0 20px rgba(0, 255, 0, 0.3);
45
+ border: 2px solid #00ff00;
46
+ }
47
+
48
+ .test-container {
49
+ background: rgba(0, 0, 0, 0.8);
50
+ padding: 20px;
51
+ height: 480px;
52
+ border: 1px solid #00ff00;
53
+ display: flex;
54
+ flex-direction: column;
55
+ align-items: center;
56
+ overflow: hidden;
57
+ }
58
+
59
+ .status-bar {
60
+ display: flex;
61
+ justify-content: space-between;
62
+ padding: 10px;
63
+ border-bottom: 1px solid #00ff00;
64
+ font-size: 18px;
65
+ }
66
+
67
+ .glitch {
68
+ font-size: 48px;
69
+ color: #0f0;
70
+ text-shadow: 2px 2px #f00;
71
+ animation: glitch 1s infinite;
72
+ }
73
+
74
+ #start-btn {
75
+ font-size: 72px;
76
+ background: none;
77
+ border: none;
78
+ color: #0f0;
79
+ cursor: pointer;
80
+ animation: pulse 2s infinite;
81
+ }
82
+
83
+ .task {
84
+ color: #0f0;
85
+ font-size: 20px;
86
+ margin: 20px;
87
+ text-align: center;
88
+ }
89
+
90
+ .option {
91
+ padding: 10px 20px;
92
+ margin: 10px;
93
+ background: rgba(0, 0, 0, 0.8);
94
+ border: 1px solid #00ff00;
95
+ color: #0f0;
96
+ cursor: pointer;
97
+ transition: all 0.3s;
98
+ font-size: 16px;
99
+ min-width: 200px;
100
+ }
101
+
102
+ .option:hover {
103
+ background: rgba(0, 255, 0, 0.2);
104
+ }
105
+
106
+ .slider {
107
+ width: 300px;
108
+ margin: 20px;
109
+ }
110
+
111
+ .image-grid {
112
+ display: grid;
113
+ grid-template-columns: repeat(3, 1fr);
114
+ gap: 10px;
115
+ margin: 20px;
116
+ }
117
+
118
+ .image-cell {
119
+ width: 100px;
120
+ height: 100px;
121
+ border: 1px solid #00ff00;
122
+ cursor: pointer;
123
+ display: flex;
124
+ justify-content: center;
125
+ align-items: center;
126
+ font-size: 40px;
127
+ }
128
+
129
+ @keyframes glitch {
130
+ 0% { transform: translate(0) }
131
+ 20% { transform: translate(-2px, 2px) }
132
+ 40% { transform: translate(-2px, -2px) }
133
+ 60% { transform: translate(2px, 2px) }
134
+ 80% { transform: translate(2px, -2px) }
135
+ 100% { transform: translate(0) }
136
+ }
137
+
138
+ @keyframes pulse {
139
+ 0% { transform: scale(1); opacity: 1; }
140
+ 50% { transform: scale(1.1); opacity: 0.7; }
141
+ 100% { transform: scale(1); opacity: 1; }
142
+ }
143
+ </style>
144
+ </head>
145
+ <body>
146
+ <canvas id="matrix"></canvas>
147
+
148
+ <div id="title-screen">
149
+ <h1 class="glitch">I'M NOT A ROBOT</h1>
150
+ <button id="start-btn">βœ“</button>
151
+ </div>
152
+
153
+ <div id="game-screen">
154
+ <div class="status-bar">
155
+ <span>HUMAN VERIFICATION LEVEL: <span id="level">1</span></span>
156
+ <span>ATTEMPTS REMAINING: <span id="attempts">3</span></span>
157
+ </div>
158
+ <div class="test-container" id="test-container"></div>
159
+ </div>
160
+
161
+ <script>
162
+ let level = 1;
163
+ let attempts = 3;
164
+
165
+ const tests = [
166
+ {
167
+ task: "Select all squares with traffic lights",
168
+ type: "grid",
169
+ content: ["🚦", "🌳", "πŸš—", "🏠", "οΏ½οΏ½", "🌲", "🚢", "🚦", "🏒"],
170
+ correct: [0, 4, 7]
171
+ },
172
+ {
173
+ task: "What would a robot never say?",
174
+ type: "multiple",
175
+ options: ["I compute therefore I am", "BEEP BOOP", "I'm feeling emotional today", "01001000"],
176
+ correct: 2
177
+ },
178
+ {
179
+ task: "Drag the slider to match human body temperature (37Β°C)",
180
+ type: "slider",
181
+ min: 35,
182
+ max: 39,
183
+ correct: 37
184
+ },
185
+ {
186
+ task: "Which of these is a CAPTCHA only a human could solve?",
187
+ type: "image",
188
+ options: ["πŸ”‘", "πŸ“Š", "✏️", "πŸ’­"],
189
+ correct: 0
190
+ },
191
+ {
192
+ task: "Complete the human phrase: Time flies like an arrow, fruit flies like a...",
193
+ type: "multiple",
194
+ options: ["Boeing 747", "banana", "temporal paradox", "computational error"],
195
+ correct: 1
196
+ }
197
+ ];
198
+
199
+ // Matrix effect setup
200
+ const canvas = document.getElementById('matrix');
201
+ const ctx = canvas.getContext('2d');
202
+ canvas.width = window.innerWidth;
203
+ canvas.height = window.innerHeight;
204
+
205
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%^&*()';
206
+ const fontSize = 14;
207
+ const columns = canvas.width / fontSize;
208
+ const drops = Array(Math.floor(columns)).fill(1);
209
+
210
+ function drawMatrix() {
211
+ ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
212
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
213
+ ctx.fillStyle = '#0F0';
214
+ ctx.font = fontSize + 'px monospace';
215
+
216
+ for(let i = 0; i < drops.length; i++) {
217
+ const text = characters[Math.floor(Math.random() * characters.length)];
218
+ ctx.fillText(text, i * fontSize, drops[i] * fontSize);
219
+ if(drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
220
+ drops[i] = 0;
221
+ }
222
+ drops[i]++;
223
+ }
224
+ }
225
+
226
+ setInterval(drawMatrix, 50);
227
+
228
+ function createTest(level) {
229
+ const container = document.getElementById('test-container');
230
+ container.innerHTML = '';
231
+ const test = tests[level - 1];
232
+
233
+ const taskDiv = document.createElement('div');
234
+ taskDiv.className = 'task';
235
+ taskDiv.textContent = test.task;
236
+ container.appendChild(taskDiv);
237
+
238
+ switch(test.type) {
239
+ case 'grid':
240
+ createGrid(test, container);
241
+ break;
242
+ case 'multiple':
243
+ createMultipleChoice(test, container);
244
+ break;
245
+ case 'slider':
246
+ createSlider(test, container);
247
+ break;
248
+ case 'image':
249
+ createImageChoice(test, container);
250
+ break;
251
+ }
252
+ }
253
+
254
+ function createGrid(test, container) {
255
+ const grid = document.createElement('div');
256
+ grid.className = 'image-grid';
257
+ let selected = [];
258
+
259
+ test.content.forEach((item, index) => {
260
+ const cell = document.createElement('div');
261
+ cell.className = 'image-cell';
262
+ cell.textContent = item;
263
+ cell.onclick = () => {
264
+ cell.style.background = cell.style.background ? '' : 'rgba(0, 255, 0, 0.2)';
265
+ if(selected.includes(index)) {
266
+ selected = selected.filter(i => i !== index);
267
+ } else {
268
+ selected.push(index);
269
+ }
270
+ };
271
+ grid.appendChild(cell);
272
+ });
273
+
274
+ const submitBtn = document.createElement('button');
275
+ submitBtn.className = 'option';
276
+ submitBtn.textContent = 'VERIFY';
277
+ submitBtn.onclick = () => checkAnswer(selected, test.correct);
278
+
279
+ container.appendChild(grid);
280
+ container.appendChild(submitBtn);
281
+ }
282
+
283
+ function createMultipleChoice(test, container) {
284
+ test.options.forEach((option, index) => {
285
+ const button = document.createElement('button');
286
+ button.className = 'option';
287
+ button.textContent = option;
288
+ button.onclick = () => checkAnswer(index, test.correct);
289
+ container.appendChild(button);
290
+ });
291
+ }
292
+
293
+ function createSlider(test, container) {
294
+ const slider = document.createElement('input');
295
+ slider.type = 'range';
296
+ slider.min = test.min;
297
+ slider.max = test.max;
298
+ slider.step = 0.1;
299
+ slider.className = 'slider';
300
+
301
+ const value = document.createElement('div');
302
+ value.className = 'task';
303
+ slider.oninput = () => value.textContent = slider.value + 'Β°C';
304
+
305
+ const submitBtn = document.createElement('button');
306
+ submitBtn.className = 'option';
307
+ submitBtn.textContent = 'VERIFY';
308
+ submitBtn.onclick = () => checkAnswer(parseFloat(slider.value), test.correct);
309
+
310
+ container.appendChild(slider);
311
+ container.appendChild(value);
312
+ container.appendChild(submitBtn);
313
+ }
314
+
315
+ function createImageChoice(test, container) {
316
+ const grid = document.createElement('div');
317
+ grid.className = 'image-grid';
318
+
319
+ test.options.forEach((option, index) => {
320
+ const cell = document.createElement('div');
321
+ cell.className = 'image-cell';
322
+ cell.textContent = option;
323
+ cell.onclick = () => checkAnswer(index, test.correct);
324
+ grid.appendChild(cell);
325
+ });
326
+
327
+ container.appendChild(grid);
328
+ }
329
+
330
+ function checkAnswer(answer, correct) {
331
+ if(Array.isArray(correct) ?
332
+ JSON.stringify(answer.sort()) === JSON.stringify(correct.sort()) :
333
+ answer === correct) {
334
+ level++;
335
+ if(level > tests.length) {
336
+ alert('HUMAN VERIFICATION COMPLETE - ACCESS GRANTED');
337
+ location.reload();
338
+ return;
339
+ }
340
+ createTest(level);
341
+ document.getElementById('level').textContent = level;
342
+ } else {
343
+ attempts--;
344
+ document.getElementById('attempts').textContent = attempts;
345
+ if(attempts === 0) {
346
+ alert('VERIFICATION FAILED - ROBOT DETECTED');
347
+ location.reload();
348
+ }
349
+ }
350
+ }
351
+
352
+ document.getElementById('start-btn').addEventListener('click', () => {
353
+ document.getElementById('title-screen').style.display = 'none';
354
+ document.getElementById('game-screen').style.display = 'block';
355
+ createTest(level);
356
+ });
357
+ </script>
358
+ </body>
359
  </html>