efecelik commited on
Commit
8222e3e
·
1 Parent(s): a0f321d

Major UI overhaul: glassmorphism cards, larger thumbnails, better animations, polished game feel

Browse files
Files changed (1) hide show
  1. index.html +264 -90
index.html CHANGED
@@ -16,69 +16,94 @@
16
 
17
  html, body {
18
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
19
- background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
20
  height: 100vh;
21
  height: 100dvh;
22
  color: #fff;
23
  overflow: hidden;
24
  }
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  .container {
27
  display: flex;
28
  flex-direction: column;
29
  height: 100vh;
30
  height: 100dvh;
31
- padding: 1vh 2vw;
32
- max-width: 1600px;
33
- margin: 0 auto;
34
  }
35
 
36
- /* Header */
37
  header {
38
  text-align: center;
39
- padding: 0.5vh 0;
40
  flex-shrink: 0;
41
  }
42
 
43
  h1 {
44
- font-size: clamp(1.2rem, 3vw, 2rem);
45
  font-weight: 800;
46
- background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
47
  -webkit-background-clip: text;
48
  -webkit-text-fill-color: transparent;
49
  background-clip: text;
 
 
50
  }
51
 
52
  .subtitle {
53
  color: #94a3b8;
54
- font-size: clamp(0.7rem, 1.5vw, 0.9rem);
55
- margin-top: 0.3vh;
 
56
  }
57
 
58
- /* Stats Bar */
59
  .stats-bar {
60
  display: flex;
61
  justify-content: center;
62
- gap: clamp(15px, 4vw, 40px);
63
- padding: 1vh 0;
64
  flex-shrink: 0;
65
  }
66
 
67
  .stat {
68
  text-align: center;
 
 
 
 
 
69
  }
70
 
71
  .stat-value {
72
- font-size: clamp(1rem, 2.5vw, 1.5rem);
73
  font-weight: 700;
74
  color: #ffd700;
75
  }
76
 
77
  .stat-label {
78
- font-size: clamp(0.6rem, 1vw, 0.75rem);
79
  color: #64748b;
80
  text-transform: uppercase;
81
- letter-spacing: 1px;
 
82
  }
83
 
84
  .streak-fire {
@@ -93,97 +118,132 @@
93
  /* Result Message */
94
  .result-message {
95
  text-align: center;
96
- font-size: clamp(0.9rem, 2vw, 1.3rem);
97
  font-weight: 700;
98
- min-height: 2vh;
99
  flex-shrink: 0;
 
 
100
  }
101
 
102
  .result-message.correct { color: #22c55e; }
103
  .result-message.wrong { color: #ef4444; }
104
 
105
- /* Game Area */
106
  .game-area {
107
  display: flex;
108
- gap: clamp(10px, 2vw, 30px);
109
  justify-content: center;
110
  align-items: stretch;
111
  flex: 1;
112
  min-height: 0;
113
- padding: 1vh 0;
114
  }
115
 
116
  .vs-divider {
117
  display: flex;
118
  align-items: center;
119
  justify-content: center;
120
- font-size: clamp(1.2rem, 2.5vw, 2rem);
121
  font-weight: 800;
122
  color: #ffd700;
123
- text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
 
 
124
  flex-shrink: 0;
125
- padding: 0 1vw;
 
 
 
 
 
 
 
 
 
 
126
  }
127
 
128
- /* Paper Card */
 
 
 
129
  .paper-card {
130
- background: rgba(255, 255, 255, 0.05);
131
- border-radius: clamp(10px, 1.5vw, 20px);
132
- padding: clamp(10px, 1.5vw, 20px);
133
  flex: 1;
134
- max-width: 500px;
 
135
  cursor: pointer;
136
- transition: all 0.3s ease;
137
- border: 2px solid transparent;
138
  display: flex;
139
  flex-direction: column;
140
  overflow: hidden;
 
 
 
 
141
  }
142
 
143
  .paper-card:hover {
144
- border-color: rgba(255, 215, 0, 0.3);
145
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
 
 
 
 
146
  }
147
 
148
  .paper-card.correct {
149
  border-color: #22c55e;
150
- background: rgba(34, 197, 94, 0.1);
 
 
 
151
  }
152
 
153
  .paper-card.wrong {
154
  border-color: #ef4444;
155
- background: rgba(239, 68, 68, 0.1);
 
 
 
156
  }
157
 
158
  .paper-card.disabled {
159
  pointer-events: none;
160
  }
161
 
 
162
  .paper-thumbnail {
163
  width: 100%;
164
- height: clamp(80px, 15vh, 180px);
165
  object-fit: cover;
166
- border-radius: clamp(6px, 1vw, 12px);
167
  background: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);
168
  flex-shrink: 0;
 
169
  }
170
 
171
  .paper-title {
172
- font-size: clamp(0.75rem, 1.3vw, 1rem);
173
- font-weight: 600;
174
- line-height: 1.3;
175
- margin: clamp(6px, 1vh, 12px) 0;
176
  display: -webkit-box;
177
  -webkit-line-clamp: 2;
178
  -webkit-box-orient: vertical;
179
  overflow: hidden;
180
  flex-shrink: 0;
 
181
  }
182
 
183
  .paper-authors {
184
- font-size: clamp(0.65rem, 1vw, 0.8rem);
185
  color: #94a3b8;
186
- margin-bottom: clamp(4px, 0.5vh, 8px);
187
  white-space: nowrap;
188
  overflow: hidden;
189
  text-overflow: ellipsis;
@@ -191,11 +251,11 @@
191
  }
192
 
193
  .paper-summary {
194
- font-size: clamp(0.65rem, 1vw, 0.85rem);
195
  color: #cbd5e1;
196
- line-height: 1.4;
197
  display: -webkit-box;
198
- -webkit-line-clamp: 3;
199
  -webkit-box-orient: vertical;
200
  overflow: hidden;
201
  flex: 1;
@@ -205,101 +265,144 @@
205
  .paper-meta {
206
  display: flex;
207
  align-items: center;
208
- gap: clamp(8px, 1vw, 15px);
209
- padding-top: clamp(6px, 1vh, 12px);
210
  margin-top: auto;
211
  border-top: 1px solid rgba(255, 255, 255, 0.1);
212
  flex-shrink: 0;
213
  }
214
 
215
  .upvote-display {
216
- font-weight: 600;
217
  color: #ffd700;
218
- font-size: clamp(0.8rem, 1.2vw, 1.1rem);
219
  opacity: 0;
220
- transition: opacity 0.3s ease;
 
221
  }
222
 
223
- .upvote-display.revealed { opacity: 1; }
 
 
 
 
 
 
 
 
 
224
 
225
  .vote-hidden {
226
- font-size: clamp(0.9rem, 1.3vw, 1.2rem);
227
  color: #64748b;
228
  }
229
 
230
  .click-hint {
231
- font-size: clamp(0.6rem, 0.9vw, 0.75rem);
232
  color: #64748b;
233
  text-align: center;
234
- margin-top: clamp(4px, 0.5vh, 8px);
235
  flex-shrink: 0;
 
 
 
 
236
  }
237
 
238
  /* Paper Link */
239
  .paper-link {
240
  color: #60a5fa;
241
  text-decoration: none;
242
- font-size: clamp(0.65rem, 1vw, 0.8rem);
243
  pointer-events: auto;
244
  position: relative;
245
  z-index: 10;
246
  margin-left: auto;
 
 
 
 
 
247
  }
248
 
249
  .paper-link:hover {
250
- color: #93c5fd;
251
- text-decoration: underline;
252
  }
253
 
254
  /* Next Round Button */
255
  .next-btn {
256
  display: none;
257
- margin: 1vh auto;
258
- padding: clamp(8px, 1.2vh, 12px) clamp(20px, 3vw, 35px);
259
- font-size: clamp(0.8rem, 1.2vw, 1rem);
260
- font-weight: 600;
261
  background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
262
  color: #1a1a2e;
263
  border: none;
264
  border-radius: 50px;
265
  cursor: pointer;
266
- transition: all 0.3s ease;
267
  flex-shrink: 0;
 
 
 
268
  }
269
 
270
  .next-btn:hover {
271
- transform: scale(1.05);
272
- box-shadow: 0 5px 20px rgba(255, 215, 0, 0.3);
273
  }
274
 
275
  .next-btn.visible {
276
  display: block;
 
 
 
 
 
 
 
 
 
 
 
 
277
  }
278
 
279
  /* Footer */
280
  footer {
281
  text-align: center;
282
- padding: 0.5vh 0;
283
  color: #64748b;
284
- font-size: clamp(0.6rem, 1vw, 0.75rem);
285
  flex-shrink: 0;
286
  }
287
 
288
  footer a {
289
  color: #ffd700;
290
  text-decoration: none;
 
 
 
 
 
 
291
  }
292
 
293
- /* High Score */
294
  .high-score {
295
  position: fixed;
296
- top: 1vh;
297
- right: 2vw;
298
- background: rgba(255, 255, 255, 0.1);
299
- padding: clamp(5px, 0.8vh, 10px) clamp(10px, 1.5vw, 20px);
300
- border-radius: 8px;
301
- font-size: clamp(0.7rem, 1vw, 0.85rem);
302
  z-index: 100;
 
 
 
303
  }
304
 
305
  .high-score span {
@@ -314,20 +417,21 @@
314
  align-items: center;
315
  justify-content: center;
316
  flex: 1;
317
- gap: 15px;
318
  }
319
 
320
  .spinner {
321
- width: clamp(30px, 5vw, 50px);
322
- height: clamp(30px, 5vw, 50px);
323
- border: 3px solid rgba(255, 215, 0, 0.2);
324
  border-top-color: #ffd700;
325
  border-radius: 50%;
326
  animation: spin 1s linear infinite;
327
  }
328
 
329
  .loading p {
330
- font-size: clamp(0.8rem, 1.2vw, 1rem);
 
331
  }
332
 
333
  @keyframes spin {
@@ -345,52 +449,122 @@
345
  }
346
 
347
  .error-message button {
348
- margin-top: 15px;
349
- padding: 8px 25px;
350
- background: #ffd700;
351
  color: #1a1a2e;
352
  border: none;
353
- border-radius: 20px;
354
  cursor: pointer;
355
- font-weight: 600;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
  }
357
 
358
  /* Mobile: Stack vertically */
359
- @media (max-width: 800px), (max-height: 600px) {
 
 
 
 
360
  .game-area {
361
  flex-direction: column;
362
  align-items: center;
 
363
  }
364
 
365
  .vs-divider {
366
- padding: 0.5vh 0;
367
- transform: rotate(0deg);
 
 
 
 
 
368
  }
369
 
370
  .paper-card {
371
  max-width: 100%;
372
  width: 100%;
373
  flex: none;
374
- max-height: 35vh;
 
 
375
  }
376
 
377
  .paper-thumbnail {
378
- height: clamp(50px, 10vh, 100px);
 
 
 
 
 
379
  }
380
 
381
  .paper-summary {
382
  -webkit-line-clamp: 2;
383
  }
 
 
 
 
 
 
 
 
384
  }
385
 
386
  /* Very small screens */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
  @media (max-height: 500px) {
388
  .paper-thumbnail {
389
  display: none;
390
  }
391
 
392
  .paper-card {
393
- max-height: 30vh;
 
 
 
 
394
  }
395
  }
396
  </style>
 
16
 
17
  html, body {
18
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
19
+ background: linear-gradient(135deg, #0d0d1a 0%, #1a1a2e 30%, #16213e 60%, #0f3460 100%);
20
  height: 100vh;
21
  height: 100dvh;
22
  color: #fff;
23
  overflow: hidden;
24
  }
25
 
26
+ /* Animated background particles effect */
27
+ body::before {
28
+ content: '';
29
+ position: fixed;
30
+ top: 0;
31
+ left: 0;
32
+ right: 0;
33
+ bottom: 0;
34
+ background-image:
35
+ radial-gradient(circle at 20% 80%, rgba(255, 215, 0, 0.03) 0%, transparent 50%),
36
+ radial-gradient(circle at 80% 20%, rgba(255, 140, 0, 0.03) 0%, transparent 50%),
37
+ radial-gradient(circle at 40% 40%, rgba(96, 165, 250, 0.02) 0%, transparent 40%);
38
+ pointer-events: none;
39
+ z-index: 0;
40
+ }
41
+
42
  .container {
43
  display: flex;
44
  flex-direction: column;
45
  height: 100vh;
46
  height: 100dvh;
47
+ padding: 1.5vh 3vw;
48
+ position: relative;
49
+ z-index: 1;
50
  }
51
 
52
+ /* Header - More compact */
53
  header {
54
  text-align: center;
55
+ padding: 0.5vh 0 1vh;
56
  flex-shrink: 0;
57
  }
58
 
59
  h1 {
60
+ font-size: clamp(1.5rem, 3.5vw, 2.5rem);
61
  font-weight: 800;
62
+ background: linear-gradient(135deg, #ffd700 0%, #ffaa00 50%, #ff8c00 100%);
63
  -webkit-background-clip: text;
64
  -webkit-text-fill-color: transparent;
65
  background-clip: text;
66
+ text-shadow: 0 0 60px rgba(255, 215, 0, 0.3);
67
+ letter-spacing: -0.02em;
68
  }
69
 
70
  .subtitle {
71
  color: #94a3b8;
72
+ font-size: clamp(0.8rem, 1.5vw, 1rem);
73
+ margin-top: 0.5vh;
74
+ font-weight: 500;
75
  }
76
 
77
+ /* Stats Bar - Horizontal pill design */
78
  .stats-bar {
79
  display: flex;
80
  justify-content: center;
81
+ gap: clamp(20px, 5vw, 60px);
82
+ padding: 1.5vh 0;
83
  flex-shrink: 0;
84
  }
85
 
86
  .stat {
87
  text-align: center;
88
+ background: rgba(255, 255, 255, 0.03);
89
+ padding: clamp(8px, 1vh, 12px) clamp(20px, 3vw, 40px);
90
+ border-radius: 50px;
91
+ border: 1px solid rgba(255, 255, 255, 0.08);
92
+ backdrop-filter: blur(10px);
93
  }
94
 
95
  .stat-value {
96
+ font-size: clamp(1.2rem, 2.8vw, 1.8rem);
97
  font-weight: 700;
98
  color: #ffd700;
99
  }
100
 
101
  .stat-label {
102
+ font-size: clamp(0.65rem, 1vw, 0.8rem);
103
  color: #64748b;
104
  text-transform: uppercase;
105
+ letter-spacing: 1.5px;
106
+ margin-top: 2px;
107
  }
108
 
109
  .streak-fire {
 
118
  /* Result Message */
119
  .result-message {
120
  text-align: center;
121
+ font-size: clamp(1.1rem, 2.5vw, 1.6rem);
122
  font-weight: 700;
123
+ min-height: 3vh;
124
  flex-shrink: 0;
125
+ text-shadow: 0 2px 20px currentColor;
126
+ transition: all 0.3s ease;
127
  }
128
 
129
  .result-message.correct { color: #22c55e; }
130
  .result-message.wrong { color: #ef4444; }
131
 
132
+ /* Game Area - Full width, prominent cards */
133
  .game-area {
134
  display: flex;
135
+ gap: clamp(15px, 3vw, 50px);
136
  justify-content: center;
137
  align-items: stretch;
138
  flex: 1;
139
  min-height: 0;
140
+ padding: 1vh 2vw;
141
  }
142
 
143
  .vs-divider {
144
  display: flex;
145
  align-items: center;
146
  justify-content: center;
147
+ font-size: clamp(1.8rem, 4vw, 3rem);
148
  font-weight: 800;
149
  color: #ffd700;
150
+ text-shadow:
151
+ 0 0 30px rgba(255, 215, 0, 0.6),
152
+ 0 0 60px rgba(255, 215, 0, 0.3);
153
  flex-shrink: 0;
154
+ padding: 0 2vw;
155
+ position: relative;
156
+ }
157
+
158
+ .vs-divider::before,
159
+ .vs-divider::after {
160
+ content: '';
161
+ position: absolute;
162
+ width: 3px;
163
+ height: 60%;
164
+ background: linear-gradient(180deg, transparent, rgba(255, 215, 0, 0.3), transparent);
165
  }
166
 
167
+ .vs-divider::before { left: 0; }
168
+ .vs-divider::after { right: 0; }
169
+
170
+ /* Paper Card - Larger, more prominent */
171
  .paper-card {
172
+ background: linear-gradient(145deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%);
173
+ border-radius: clamp(16px, 2vw, 28px);
174
+ padding: clamp(16px, 2.5vw, 32px);
175
  flex: 1;
176
+ max-width: 700px;
177
+ min-width: 280px;
178
  cursor: pointer;
179
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
180
+ border: 2px solid rgba(255, 255, 255, 0.1);
181
  display: flex;
182
  flex-direction: column;
183
  overflow: hidden;
184
+ backdrop-filter: blur(20px);
185
+ box-shadow:
186
+ 0 4px 30px rgba(0, 0, 0, 0.3),
187
+ inset 0 1px 0 rgba(255, 255, 255, 0.1);
188
  }
189
 
190
  .paper-card:hover {
191
+ transform: translateY(-8px) scale(1.02);
192
+ border-color: rgba(255, 215, 0, 0.5);
193
+ box-shadow:
194
+ 0 20px 60px rgba(0, 0, 0, 0.4),
195
+ 0 0 40px rgba(255, 215, 0, 0.15),
196
+ inset 0 1px 0 rgba(255, 255, 255, 0.15);
197
  }
198
 
199
  .paper-card.correct {
200
  border-color: #22c55e;
201
+ background: linear-gradient(145deg, rgba(34, 197, 94, 0.2) 0%, rgba(34, 197, 94, 0.05) 100%);
202
+ box-shadow:
203
+ 0 0 50px rgba(34, 197, 94, 0.3),
204
+ inset 0 0 30px rgba(34, 197, 94, 0.1);
205
  }
206
 
207
  .paper-card.wrong {
208
  border-color: #ef4444;
209
+ background: linear-gradient(145deg, rgba(239, 68, 68, 0.2) 0%, rgba(239, 68, 68, 0.05) 100%);
210
+ box-shadow:
211
+ 0 0 50px rgba(239, 68, 68, 0.3),
212
+ inset 0 0 30px rgba(239, 68, 68, 0.1);
213
  }
214
 
215
  .paper-card.disabled {
216
  pointer-events: none;
217
  }
218
 
219
+ /* Thumbnail - Larger and more prominent */
220
  .paper-thumbnail {
221
  width: 100%;
222
+ height: clamp(120px, 25vh, 280px);
223
  object-fit: cover;
224
+ border-radius: clamp(10px, 1.5vw, 18px);
225
  background: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);
226
  flex-shrink: 0;
227
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
228
  }
229
 
230
  .paper-title {
231
+ font-size: clamp(1rem, 1.8vw, 1.4rem);
232
+ font-weight: 700;
233
+ line-height: 1.35;
234
+ margin: clamp(12px, 2vh, 20px) 0 clamp(8px, 1vh, 12px);
235
  display: -webkit-box;
236
  -webkit-line-clamp: 2;
237
  -webkit-box-orient: vertical;
238
  overflow: hidden;
239
  flex-shrink: 0;
240
+ color: #f8fafc;
241
  }
242
 
243
  .paper-authors {
244
+ font-size: clamp(0.75rem, 1.1vw, 0.95rem);
245
  color: #94a3b8;
246
+ margin-bottom: clamp(8px, 1vh, 14px);
247
  white-space: nowrap;
248
  overflow: hidden;
249
  text-overflow: ellipsis;
 
251
  }
252
 
253
  .paper-summary {
254
+ font-size: clamp(0.8rem, 1.2vw, 1rem);
255
  color: #cbd5e1;
256
+ line-height: 1.55;
257
  display: -webkit-box;
258
+ -webkit-line-clamp: 4;
259
  -webkit-box-orient: vertical;
260
  overflow: hidden;
261
  flex: 1;
 
265
  .paper-meta {
266
  display: flex;
267
  align-items: center;
268
+ gap: clamp(12px, 1.5vw, 20px);
269
+ padding-top: clamp(12px, 1.5vh, 18px);
270
  margin-top: auto;
271
  border-top: 1px solid rgba(255, 255, 255, 0.1);
272
  flex-shrink: 0;
273
  }
274
 
275
  .upvote-display {
276
+ font-weight: 700;
277
  color: #ffd700;
278
+ font-size: clamp(1rem, 1.5vw, 1.3rem);
279
  opacity: 0;
280
+ transition: all 0.4s ease;
281
+ text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
282
  }
283
 
284
+ .upvote-display.revealed {
285
+ opacity: 1;
286
+ animation: revealBounce 0.5s ease;
287
+ }
288
+
289
+ @keyframes revealBounce {
290
+ 0% { transform: scale(0.5); opacity: 0; }
291
+ 50% { transform: scale(1.2); }
292
+ 100% { transform: scale(1); opacity: 1; }
293
+ }
294
 
295
  .vote-hidden {
296
+ font-size: clamp(1.1rem, 1.5vw, 1.4rem);
297
  color: #64748b;
298
  }
299
 
300
  .click-hint {
301
+ font-size: clamp(0.7rem, 1vw, 0.85rem);
302
  color: #64748b;
303
  text-align: center;
304
+ margin-top: clamp(8px, 1vh, 12px);
305
  flex-shrink: 0;
306
+ font-weight: 500;
307
+ text-transform: uppercase;
308
+ letter-spacing: 0.5px;
309
+ transition: opacity 0.3s ease;
310
  }
311
 
312
  /* Paper Link */
313
  .paper-link {
314
  color: #60a5fa;
315
  text-decoration: none;
316
+ font-size: clamp(0.75rem, 1.1vw, 0.9rem);
317
  pointer-events: auto;
318
  position: relative;
319
  z-index: 10;
320
  margin-left: auto;
321
+ font-weight: 600;
322
+ padding: 4px 12px;
323
+ border-radius: 20px;
324
+ background: rgba(96, 165, 250, 0.1);
325
+ transition: all 0.3s ease;
326
  }
327
 
328
  .paper-link:hover {
329
+ color: #fff;
330
+ background: rgba(96, 165, 250, 0.3);
331
  }
332
 
333
  /* Next Round Button */
334
  .next-btn {
335
  display: none;
336
+ margin: 2vh auto;
337
+ padding: clamp(12px, 1.8vh, 18px) clamp(30px, 5vw, 50px);
338
+ font-size: clamp(1rem, 1.4vw, 1.2rem);
339
+ font-weight: 700;
340
  background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
341
  color: #1a1a2e;
342
  border: none;
343
  border-radius: 50px;
344
  cursor: pointer;
345
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
346
  flex-shrink: 0;
347
+ text-transform: uppercase;
348
+ letter-spacing: 1px;
349
+ box-shadow: 0 4px 20px rgba(255, 215, 0, 0.3);
350
  }
351
 
352
  .next-btn:hover {
353
+ transform: scale(1.08);
354
+ box-shadow: 0 8px 40px rgba(255, 215, 0, 0.5);
355
  }
356
 
357
  .next-btn.visible {
358
  display: block;
359
+ animation: slideUp 0.4s ease;
360
+ }
361
+
362
+ @keyframes slideUp {
363
+ from {
364
+ opacity: 0;
365
+ transform: translateY(20px);
366
+ }
367
+ to {
368
+ opacity: 1;
369
+ transform: translateY(0);
370
+ }
371
  }
372
 
373
  /* Footer */
374
  footer {
375
  text-align: center;
376
+ padding: 1vh 0;
377
  color: #64748b;
378
+ font-size: clamp(0.7rem, 1vw, 0.85rem);
379
  flex-shrink: 0;
380
  }
381
 
382
  footer a {
383
  color: #ffd700;
384
  text-decoration: none;
385
+ font-weight: 600;
386
+ transition: color 0.3s ease;
387
+ }
388
+
389
+ footer a:hover {
390
+ color: #ffaa00;
391
  }
392
 
393
+ /* High Score - More prominent */
394
  .high-score {
395
  position: fixed;
396
+ top: 1.5vh;
397
+ right: 3vw;
398
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
399
+ padding: clamp(8px, 1vh, 14px) clamp(16px, 2vw, 28px);
400
+ border-radius: 50px;
401
+ font-size: clamp(0.8rem, 1.1vw, 1rem);
402
  z-index: 100;
403
+ border: 1px solid rgba(255, 255, 255, 0.1);
404
+ backdrop-filter: blur(10px);
405
+ font-weight: 600;
406
  }
407
 
408
  .high-score span {
 
417
  align-items: center;
418
  justify-content: center;
419
  flex: 1;
420
+ gap: 20px;
421
  }
422
 
423
  .spinner {
424
+ width: clamp(40px, 6vw, 60px);
425
+ height: clamp(40px, 6vw, 60px);
426
+ border: 4px solid rgba(255, 215, 0, 0.2);
427
  border-top-color: #ffd700;
428
  border-radius: 50%;
429
  animation: spin 1s linear infinite;
430
  }
431
 
432
  .loading p {
433
+ font-size: clamp(1rem, 1.4vw, 1.2rem);
434
+ color: #94a3b8;
435
  }
436
 
437
  @keyframes spin {
 
449
  }
450
 
451
  .error-message button {
452
+ margin-top: 20px;
453
+ padding: 12px 35px;
454
+ background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
455
  color: #1a1a2e;
456
  border: none;
457
+ border-radius: 50px;
458
  cursor: pointer;
459
+ font-weight: 700;
460
+ font-size: 1rem;
461
+ transition: all 0.3s ease;
462
+ }
463
+
464
+ .error-message button:hover {
465
+ transform: scale(1.05);
466
+ box-shadow: 0 5px 20px rgba(255, 215, 0, 0.3);
467
+ }
468
+
469
+ /* Tablet: Slightly smaller cards */
470
+ @media (max-width: 1200px) {
471
+ .paper-card {
472
+ max-width: 550px;
473
+ }
474
+
475
+ .paper-thumbnail {
476
+ height: clamp(100px, 20vh, 200px);
477
+ }
478
  }
479
 
480
  /* Mobile: Stack vertically */
481
+ @media (max-width: 800px), (max-height: 700px) {
482
+ .container {
483
+ padding: 1vh 4vw;
484
+ }
485
+
486
  .game-area {
487
  flex-direction: column;
488
  align-items: center;
489
+ padding: 0.5vh 0;
490
  }
491
 
492
  .vs-divider {
493
+ padding: 1vh 0;
494
+ font-size: clamp(1.5rem, 3vw, 2rem);
495
+ }
496
+
497
+ .vs-divider::before,
498
+ .vs-divider::after {
499
+ display: none;
500
  }
501
 
502
  .paper-card {
503
  max-width: 100%;
504
  width: 100%;
505
  flex: none;
506
+ height: auto;
507
+ max-height: 38vh;
508
+ padding: clamp(12px, 2vw, 20px);
509
  }
510
 
511
  .paper-thumbnail {
512
+ height: clamp(60px, 12vh, 120px);
513
+ }
514
+
515
+ .paper-title {
516
+ font-size: clamp(0.9rem, 1.5vw, 1.1rem);
517
+ margin: 8px 0 6px;
518
  }
519
 
520
  .paper-summary {
521
  -webkit-line-clamp: 2;
522
  }
523
+
524
+ .stats-bar {
525
+ gap: clamp(10px, 3vw, 25px);
526
+ }
527
+
528
+ .stat {
529
+ padding: 6px 16px;
530
+ }
531
  }
532
 
533
  /* Very small screens */
534
+ @media (max-height: 600px) {
535
+ .paper-thumbnail {
536
+ height: clamp(50px, 10vh, 80px);
537
+ }
538
+
539
+ .paper-card {
540
+ max-height: 35vh;
541
+ }
542
+
543
+ .paper-summary {
544
+ -webkit-line-clamp: 1;
545
+ }
546
+
547
+ header {
548
+ padding: 0.3vh 0 0.5vh;
549
+ }
550
+
551
+ .stats-bar {
552
+ padding: 0.5vh 0;
553
+ }
554
+ }
555
+
556
+ /* Extra small height */
557
  @media (max-height: 500px) {
558
  .paper-thumbnail {
559
  display: none;
560
  }
561
 
562
  .paper-card {
563
+ max-height: 32vh;
564
+ }
565
+
566
+ .subtitle {
567
+ display: none;
568
  }
569
  }
570
  </style>