wop commited on
Commit
47271a3
·
verified ·
1 Parent(s): c11f58b

Update everywhere.css

Browse files
Files changed (1) hide show
  1. everywhere.css +783 -777
everywhere.css CHANGED
@@ -1,785 +1,501 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
 
2
- *,
3
- *::before,
4
- *::after {
5
- margin: 0;
6
- padding: 0;
7
- box-sizing: border-box;
8
- }
9
-
10
- :root {
11
- --bg: #000000;
12
- --bg-card: #0a0a0a;
13
- --bg-card-hover: #0f0f0f;
14
- --border-card: #1a1a1a;
15
- --text: #ffffff;
16
- --text-soft: #f5f5f5;
17
- --text-muted: #888888;
18
- --text-dim: #555555;
19
- --accent: #c8960c;
20
- --accent-bright: #ffd633;
21
- --accent-muted: #8b6508;
22
- --gold-gradient: linear-gradient(135deg, #ffd633 0%, #c8960c 50%, #a0760a 100%);
23
- --grid-line: rgba(255, 255, 255, 0.03);
24
- --grid-line-major: rgba(255, 255, 255, 0.06);
25
- --container-max: none;
26
- }
27
-
28
- html {
29
- scroll-behavior: smooth;
30
- background: var(--bg);
31
- }
32
-
33
- /* ---- Focus styles ---- */
34
- :focus-visible {
35
- outline: 2px solid var(--accent-bright);
36
- outline-offset: 3px;
37
- border-radius: 4px;
38
- }
39
-
40
- .paper-card:focus-visible {
41
- outline: 2px solid var(--accent-bright);
42
- outline-offset: 2px;
43
- border-radius: 12px;
44
- }
45
-
46
- .paper-view-close:focus-visible {
47
- outline: 2px solid var(--accent-bright);
48
- outline-offset: 2px;
49
- border-radius: 8px;
50
- }
51
-
52
- /* ---- Skip link ---- */
53
- .skip-link {
54
- position: fixed;
55
- top: 0;
56
- left: 0;
57
- z-index: 200;
58
- padding: 12px 20px;
59
- background: var(--accent);
60
- color: #000;
61
- font-family: 'Geist', sans-serif;
62
- font-size: 14px;
63
- font-weight: 600;
64
- text-decoration: none;
65
- border-radius: 0 0 8px 0;
66
- transform: translateY(-100%);
67
- transition: transform 0.15s ease;
68
- }
69
-
70
- .skip-link:focus {
71
- transform: translateY(0);
72
- }
73
-
74
- /* ---- Screen reader only ---- */
75
- .sr-only {
76
- position: absolute;
77
- width: 1px;
78
- height: 1px;
79
- padding: 0;
80
- margin: -1px;
81
- overflow: hidden;
82
- clip: rect(0, 0, 0, 0);
83
- white-space: nowrap;
84
- border: 0;
85
- }
86
-
87
- /* ---- Reduced motion ---- */
88
- @media (prefers-reduced-motion: reduce) {
89
- *,
90
- *::before,
91
- *::after {
92
- animation-duration: 0.01ms !important;
93
- animation-iteration-count: 1 !important;
94
- transition-duration: 0.01ms !important;
95
- }
96
-
97
- html {
98
- scroll-behavior: auto;
99
- }
100
- }
101
-
102
- body {
103
- background: var(--bg);
104
- color: var(--text);
105
- font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
106
- font-size: 16px;
107
- font-weight: 350;
108
- line-height: 1.7;
109
- min-height: 100vh;
110
- position: relative;
111
- overflow-x: hidden;
112
- }
113
-
114
- /* ---- Dot grid background ---- */
115
- body::before {
116
- content: '';
117
- position: fixed;
118
- inset: 0;
119
- pointer-events: none;
120
- z-index: 0;
121
- background-image:
122
- radial-gradient(circle, var(--grid-line) 1px, transparent 1px);
123
- background-size: 40px 40px;
124
- mask-image: radial-gradient(ellipse 70% 70% at 50% 0%, black 30%, transparent 70%);
125
- -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 0%, black 30%, transparent 70%);
126
- }
127
-
128
- body::after {
129
- content: '';
130
- position: fixed;
131
- inset: 0;
132
- pointer-events: none;
133
- z-index: 0;
134
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.02'/%3E%3C/svg%3E");
135
- opacity: 0.4;
136
- }
137
-
138
- /* ---- Container ---- */
139
- .container {
140
- position: relative;
141
- z-index: 1;
142
- max-width: var(--container-max);
143
- margin: 0 auto;
144
- padding: 0 40px;
145
- }
146
-
147
- /* ---- Header ---- */
148
- .site-header {
149
- padding: 80px 0 48px;
150
- text-align: center;
151
- position: relative;
152
- }
153
-
154
- .site-title {
155
- font-family: 'Geist', sans-serif;
156
- font-size: clamp(48px, 8vw, 80px);
157
- font-weight: 700;
158
- letter-spacing: -0.03em;
159
- line-height: 1.05;
160
- color: var(--text);
161
- animation: fadeUp 0.8s ease-out both;
162
- }
163
-
164
- .site-title .gold {
165
- background: var(--gold-gradient);
166
- -webkit-background-clip: text;
167
- -webkit-text-fill-color: transparent;
168
- background-clip: text;
169
- }
170
-
171
- .site-subtitle {
172
- font-family: 'Geist Mono', monospace;
173
- font-size: 13px;
174
- font-weight: 400;
175
- letter-spacing: 0.12em;
176
- text-transform: uppercase;
177
- color: var(--text-dim);
178
- margin-top: 16px;
179
- animation: fadeUp 0.8s 0.15s ease-out both;
180
- }
181
-
182
- .header-divider {
183
- width: 60px;
184
- height: 1px;
185
- background: var(--gold-gradient);
186
- margin: 32px auto 0;
187
- opacity: 0.5;
188
- animation: fadeUp 0.8s 0.2s ease-out both;
189
- }
190
-
191
- @keyframes fadeUp {
192
- from { opacity: 0; transform: translateY(20px); }
193
- to { opacity: 1; transform: translateY(0); }
194
- }
195
-
196
- /* ---- Section label ---- */
197
- .section-label {
198
- font-family: 'Geist Mono', monospace;
199
- font-size: 11px;
200
- font-weight: 500;
201
- letter-spacing: 0.14em;
202
- text-transform: uppercase;
203
- color: var(--text-dim);
204
- margin-bottom: 24px;
205
- padding-left: 2px;
206
- }
207
-
208
- /* ---- Paper Grid ---- */
209
- .papers-grid {
210
- display: grid;
211
- grid-template-columns: repeat(3, 1fr);
212
- gap: 28px;
213
- padding-bottom: 96px;
214
- list-style: none;
215
- }
216
-
217
- @media (max-width: 1100px) {
218
- .papers-grid {
219
- grid-template-columns: repeat(2, 1fr);
220
- }
221
- }
222
-
223
- @media (max-width: 600px) {
224
- .papers-grid {
225
- grid-template-columns: 1fr;
226
- }
227
- }
228
-
229
- /* ---- Paper Card (catalog) ---- */
230
- .paper-card {
231
- position: relative;
232
- background: var(--bg-card);
233
- border: 1px solid var(--border-card);
234
- border-radius: 12px;
235
- padding: 32px 36px;
236
- cursor: pointer;
237
- min-height: 180px;
238
- display: flex;
239
- flex-direction: column;
240
- justify-content: space-between;
241
- transition: all 0.35s ease;
242
- overflow: hidden;
243
- animation: fadeUp 0.6s ease-out both;
244
- }
245
-
246
- .paper-card::before {
247
- content: '';
248
- position: absolute;
249
- inset: 0;
250
- border-radius: 12px;
251
- background: radial-gradient(
252
- 600px circle at var(--mx, 50%) var(--my, 50%),
253
- rgba(200, 150, 12, 0.06),
254
- transparent 40%
255
- );
256
- opacity: 0;
257
- transition: opacity 0.4s ease;
258
- pointer-events: none;
259
- }
260
-
261
- .paper-card:hover {
262
- border-color: rgba(200, 150, 12, 0.3);
263
- background: var(--bg-card-hover);
264
- transform: translateY(-2px);
265
- box-shadow:
266
- 0 20px 60px rgba(0, 0, 0, 0.4),
267
- 0 0 0 1px rgba(200, 150, 12, 0.08);
268
- }
269
-
270
- .paper-card:hover::before {
271
- opacity: 1;
272
- }
273
-
274
- .paper-card:active {
275
- transform: translateY(0);
276
- transition: all 0.1s ease;
277
- }
278
-
279
- .card-title {
280
- font-family: 'Geist', sans-serif;
281
- font-size: 20px;
282
- font-weight: 600;
283
- letter-spacing: -0.02em;
284
- line-height: 1.3;
285
- color: var(--text);
286
- margin-bottom: 10px;
287
- }
288
-
289
- .card-author {
290
- font-family: 'Geist Mono', monospace;
291
- font-size: 11px;
292
- font-weight: 500;
293
- letter-spacing: 0.06em;
294
- color: var(--accent-muted);
295
- margin-bottom: 8px;
296
- }
297
-
298
- .card-meta {
299
- display: flex;
300
- align-items: center;
301
- gap: 12px;
302
- font-family: 'Geist Mono', monospace;
303
- font-size: 12px;
304
- color: var(--text-dim);
305
- }
306
-
307
- .card-tag {
308
- font-family: 'Geist Mono', monospace;
309
- font-size: 10px;
310
- font-weight: 500;
311
- letter-spacing: 0.08em;
312
- text-transform: uppercase;
313
- color: var(--accent-muted);
314
- background: rgba(200, 150, 12, 0.08);
315
- padding: 3px 8px;
316
- border-radius: 4px;
317
- border: 1px solid rgba(200, 150, 12, 0.12);
318
- }
319
-
320
- .card-proved {
321
- font-family: 'Geist Mono', monospace;
322
- font-size: 10px;
323
- font-weight: 600;
324
- letter-spacing: 0.08em;
325
- text-transform: uppercase;
326
- color: #1a7a1a;
327
- background: rgba(26, 122, 26, 0.1);
328
- padding: 3px 10px;
329
- border-radius: 4px;
330
- border: 1px solid rgba(26, 122, 26, 0.2);
331
- flex-shrink: 0;
332
- }
333
-
334
- /* ---- Featured card ---- */
335
- .paper-card.featured {
336
- grid-column: 1 / -1;
337
- padding: 48px 56px;
338
- min-height: 220px;
339
- border-color: color-mix(in srgb, var(--accent) 25%, transparent);
340
- background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(200, 150, 12, 0.04), transparent 60%), var(--bg-card);
341
- }
342
-
343
- .paper-card.featured .card-title {
344
- font-size: 28px;
345
- letter-spacing: -0.03em;
346
- }
347
-
348
- .paper-card.featured .card-author {
349
- font-size: 12px;
350
- margin-bottom: 12px;
351
- }
352
-
353
- .paper-card.featured .card-meta {
354
- font-size: 13px;
355
- }
356
-
357
- .paper-card.featured:hover {
358
- border-color: color-mix(in srgb, var(--accent) 45%, transparent);
359
- background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(200, 150, 12, 0.07), transparent 60%), var(--bg-card-hover);
360
- }
361
-
362
- @media (max-width: 640px) {
363
- .paper-card.featured {
364
- padding: 28px 24px;
365
- min-height: 160px;
366
- }
367
-
368
- .paper-card.featured .card-title {
369
- font-size: 22px;
370
- }
371
- }
372
-
373
- /* ---- Proof script in paper view ---- */
374
- .proof-section {
375
- margin-top: 32px;
376
- padding-top: 24px;
377
- border-top: 1px solid var(--border-card);
378
- }
379
-
380
- .proof-label {
381
- font-family: 'Geist Mono', monospace;
382
- font-size: 11px;
383
- font-weight: 600;
384
- letter-spacing: 0.1em;
385
- text-transform: uppercase;
386
- color: #1a7a1a;
387
- margin-bottom: 14px;
388
- }
389
-
390
- .proof-script {
391
- background: rgba(0, 0, 0, 0.4);
392
- border: 1px solid var(--border-card);
393
- border-radius: 8px;
394
- padding: 20px 24px;
395
- overflow-x: auto;
396
- font-family: 'Geist Mono', monospace;
397
- font-size: 12px;
398
- line-height: 1.6;
399
- color: var(--text-muted);
400
- tab-size: 4;
401
- max-height: 500px;
402
- overflow-y: auto;
403
- }
404
-
405
- .proof-script::-webkit-scrollbar {
406
- width: 6px;
407
- height: 6px;
408
- }
409
-
410
- .proof-script::-webkit-scrollbar-track {
411
- background: transparent;
412
- }
413
-
414
- .proof-script::-webkit-scrollbar-thumb {
415
- background: var(--border-card);
416
- border-radius: 3px;
417
- }
418
-
419
- .card-arrow {
420
- position: absolute;
421
- right: 24px;
422
- top: 50%;
423
- transform: translateY(-50%);
424
- font-size: 20px;
425
- color: var(--text-dim);
426
- opacity: 0;
427
- transition: all 0.3s ease;
428
- }
429
-
430
- .paper-card:hover .card-arrow {
431
- opacity: 1;
432
- color: var(--accent);
433
- }
434
-
435
- /* ---- Modal / Paper View ---- */
436
- .paper-overlay {
437
- position: fixed;
438
- inset: 0;
439
- z-index: 100;
440
- background: rgba(0, 0, 0, 0.9);
441
- backdrop-filter: blur(12px);
442
- -webkit-backdrop-filter: blur(12px);
443
- display: flex;
444
- align-items: flex-start;
445
- justify-content: center;
446
- padding: 0;
447
- overflow-y: auto;
448
- animation: overlayIn 0.25s ease-out;
449
- }
450
-
451
- @keyframes overlayIn {
452
- from { opacity: 0; }
453
- to { opacity: 1; }
454
- }
455
-
456
- .paper-view {
457
- background: #0d0d0d;
458
- border: none;
459
- border-radius: 0;
460
- max-width: none;
461
- width: 100%;
462
- min-height: 100vh;
463
- padding: 64px clamp(32px, 8vw, 120px) 80px;
464
- position: relative;
465
- animation: modalIn 0.35s ease-out;
466
- box-shadow: none;
467
- }
468
-
469
- .paper-view-frame {
470
- display: block;
471
- width: 100%;
472
- min-height: calc(100vh - 144px);
473
- border: 0;
474
- background: transparent;
475
- }
476
-
477
- @keyframes modalIn {
478
- from { opacity: 0; transform: translateY(24px) scale(0.97); }
479
- to { opacity: 1; transform: translateY(0) scale(1); }
480
- }
481
-
482
- .paper-view-close {
483
- position: fixed;
484
- top: 24px;
485
- right: 24px;
486
- width: 40px;
487
- height: 40px;
488
- border-radius: 8px;
489
- border: 1px solid var(--border-card);
490
- background: rgba(10, 10, 10, 0.9);
491
- backdrop-filter: blur(8px);
492
- -webkit-backdrop-filter: blur(8px);
493
- color: var(--text-muted);
494
- cursor: pointer;
495
- display: flex;
496
- align-items: center;
497
- justify-content: center;
498
- font-size: 20px;
499
- font-family: 'Geist Mono', monospace;
500
- transition: all 0.2s ease;
501
- z-index: 10;
502
- }
503
-
504
- .paper-view-close:hover {
505
- border-color: rgba(200, 150, 12, 0.4);
506
- color: var(--accent);
507
- background: #111;
508
- }
509
-
510
- .paper-view-loading {
511
- display: flex;
512
- align-items: center;
513
- justify-content: center;
514
- min-height: 200px;
515
- flex-direction: column;
516
- gap: 16px;
517
- }
518
-
519
- .loading-spinner {
520
- width: 32px;
521
- height: 32px;
522
- border: 2px solid var(--border-card);
523
- border-top-color: var(--accent);
524
- border-radius: 50%;
525
- animation: spin 0.8s linear infinite;
526
- }
527
-
528
- @keyframes spin {
529
- to { transform: rotate(360deg); }
530
- }
531
-
532
- /* ---- Paper Body (inside modal) ---- */
533
- .paper-body {
534
- color: var(--text-soft);
535
- max-width: 900px;
536
- margin: 0 auto;
537
- }
538
-
539
- .paper-body h1 {
540
- font-family: 'Geist', sans-serif;
541
- font-size: 2rem;
542
- font-weight: 700;
543
- letter-spacing: -0.03em;
544
- line-height: 1.2;
545
- color: var(--text);
546
- margin-bottom: 8px;
547
- }
548
-
549
- .paper-body h2 {
550
- font-family: 'Geist', sans-serif;
551
- font-size: 1.3rem;
552
- font-weight: 600;
553
- letter-spacing: -0.02em;
554
- color: var(--text-soft);
555
- margin: 36px 0 12px;
556
- padding-bottom: 8px;
557
- border-bottom: 1px solid var(--border-card);
558
- }
559
-
560
- .paper-body h2:first-child {
561
- margin-top: 0;
562
- }
563
-
564
- .paper-body h3 {
565
- font-family: 'Geist', sans-serif;
566
- font-size: 1.05rem;
567
- font-weight: 600;
568
- color: var(--text-muted);
569
- margin: 22px 0 8px;
570
- }
571
-
572
- .paper-body p {
573
- margin-bottom: 14px;
574
- line-height: 1.75;
575
- }
576
-
577
- .paper-body ol,
578
- .paper-body ul {
579
- margin: 0 0 14px 24px;
580
- }
581
-
582
- .paper-body li {
583
- margin-bottom: 6px;
584
- }
585
-
586
- .paper-body strong {
587
- font-weight: 600;
588
- color: var(--text);
589
- }
590
-
591
- .paper-body em {
592
- font-style: italic;
593
- }
594
-
595
- .paper-body code {
596
- font-family: 'Geist Mono', monospace;
597
- font-size: 0.82em;
598
- background: rgba(255, 255, 255, 0.05);
599
- padding: 2px 7px;
600
- border-radius: 4px;
601
- border: 1px solid var(--border-card);
602
- color: var(--accent);
603
- }
604
-
605
- .paper-body hr {
606
- border: none;
607
- border-top: 1px solid var(--border-card);
608
- margin: 28px 0;
609
- }
610
-
611
- .paper-body blockquote {
612
- border-left: 2px solid var(--accent-muted);
613
- padding-left: 16px;
614
- margin: 18px 0;
615
- color: var(--text-muted);
616
- font-style: italic;
617
- }
618
-
619
- /* ---- Credit section ---- */
620
- .paper-credit {
621
- margin-top: 40px;
622
- padding-top: 20px;
623
- border-top: 1px solid var(--border-card);
624
- font-family: 'Geist Mono', monospace;
625
- font-size: 13px;
626
- color: var(--text-dim);
627
- text-align: right;
628
- letter-spacing: 0.04em;
629
- }
630
-
631
- .paper-credit .credit-label {
632
- font-style: italic;
633
- }
634
-
635
- .paper-credit .credit-names {
636
- font-weight: 500;
637
- color: var(--text-muted);
638
- }
639
-
640
- /* ---- Papermaker callout ---- */
641
- .papermaker-callout {
642
- text-align: center;
643
- padding: 48px 24px 32px;
644
- max-width: 560px;
645
- margin: 0 auto;
646
- }
647
-
648
- .papermaker-callout p {
649
- font-family: 'Geist', sans-serif;
650
- font-size: 14px;
651
- font-weight: 350;
652
- line-height: 1.6;
653
- color: var(--text-dim);
654
- }
655
-
656
- .papermaker-callout .role-name {
657
- font-family: 'Geist Mono', monospace;
658
- font-weight: 500;
659
- color: var(--accent-muted);
660
- }
661
-
662
- /* ---- Footer ---- */
663
- .site-footer {
664
- text-align: center;
665
- padding: 0 0 64px;
666
- font-family: 'Geist Mono', monospace;
667
- font-size: 11px;
668
- letter-spacing: 0.1em;
669
- text-transform: uppercase;
670
- color: var(--text-dim);
671
- opacity: 0.5;
672
- }
673
-
674
- /* ---- Empty State ---- */
675
- .empty-state {
676
- text-align: center;
677
- padding: 80px 24px;
678
- grid-column: 1 / -1;
679
- }
680
-
681
- .empty-state p {
682
- font-size: 16px;
683
- color: var(--text-dim);
684
- font-style: italic;
685
- }
686
-
687
- /* ---- Error State ---- */
688
- .error-banner {
689
- text-align: center;
690
- padding: 60px 24px;
691
- grid-column: 1 / -1;
692
- }
693
-
694
- .error-banner p {
695
- font-family: 'Geist Mono', monospace;
696
- font-size: 13px;
697
- color: var(--text-dim);
698
- }
699
-
700
- /* ---- Responsive ---- */
701
- @media (max-width: 640px) {
702
- .container {
703
- padding: 0 20px;
704
- }
705
-
706
- .site-header {
707
- padding: 56px 0 36px;
708
- }
709
-
710
- .site-title {
711
- font-size: clamp(36px, 10vw, 56px);
712
- }
713
-
714
- .paper-card {
715
- padding: 22px 24px;
716
- min-height: 140px;
717
- }
718
-
719
- .paper-view {
720
- padding: 32px 20px;
721
- min-height: auto;
722
- }
723
-
724
- .paper-view-frame {
725
- min-height: 70vh;
726
- }
727
-
728
- .papers-grid {
729
- gap: 12px;
730
- }
731
- }
732
-
733
- @media print {
734
- body {
735
- background: white;
736
- color: black;
737
- }
738
-
739
- body::before,
740
- body::after {
741
- display: none;
742
- }
743
-
744
- .paper-overlay {
745
- position: static;
746
- background: none;
747
- backdrop-filter: none;
748
- }
749
-
750
- .paper-view {
751
- background: white;
752
- color: black;
753
- box-shadow: none;
754
- border: none;
755
- min-height: auto;
756
- padding: 24px 0;
757
- position: static;
758
- animation: none;
759
- }
760
-
761
- .paper-view-frame {
762
- min-height: 0;
763
- height: auto;
764
- }
765
-
766
- .paper-view-close {
767
- display: none;
768
- }
769
- }
770
-
771
-
772
- /* ---- Paper Page Layout ---- */
773
  .paper-page {
774
- padding: 64px 0 80px;
775
  }
776
 
777
- .paper-page .paper-page-shell {
778
  max-width: 900px;
779
  margin: 0 auto;
780
  }
781
 
782
- .paper-page .paper-page-title {
783
  font-family: 'Geist', sans-serif;
784
  font-size: clamp(34px, 5vw, 56px);
785
  font-weight: 700;
@@ -789,7 +505,7 @@
789
  margin-bottom: 12px;
790
  }
791
 
792
- .paper-page .paper-page-meta {
793
  font-family: 'Geist Mono', monospace;
794
  font-size: 12px;
795
  letter-spacing: 0.08em;
@@ -798,6 +514,296 @@
798
  margin-bottom: 36px;
799
  }
800
 
801
- .paper-page .paper-page-iframe-note {
802
- display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
803
  }
 
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ :root {
10
+ --bg: #000000;
11
+ --bg-card: #0a0a0a;
12
+ --bg-card-hover: #0f0f0f;
13
+ --border-card: #1a1a1a;
14
+ --text: #ffffff;
15
+ --text-soft: #f5f5f5;
16
+ --text-muted: #888888;
17
+ --text-dim: #555555;
18
+ --accent: #c8960c;
19
+ --accent-bright: #ffd633;
20
+ --accent-muted: #8b6508;
21
+ --gold-gradient: linear-gradient(135deg, #ffd633 0%, #c8960c 50%, #a0760a 100%);
22
+ --grid-line: rgba(255, 255, 255, 0.03);
23
+ --grid-line-major: rgba(255, 255, 255, 0.06);
24
+ --container-max: none;
25
+ }
26
+
27
+ html {
28
+ scroll-behavior: smooth;
29
+ background: var(--bg);
30
+ }
31
+
32
+ :focus-visible {
33
+ outline: 2px solid var(--accent-bright);
34
+ outline-offset: 3px;
35
+ border-radius: 4px;
36
+ }
37
+
38
+ .paper-card:focus-visible {
39
+ outline: 2px solid var(--accent-bright);
40
+ outline-offset: 2px;
41
+ border-radius: 12px;
42
+ }
43
+
44
+ .paper-view-close:focus-visible {
45
+ outline: 2px solid var(--accent-bright);
46
+ outline-offset: 2px;
47
+ border-radius: 8px;
48
+ }
49
+
50
+ .skip-link {
51
+ position: fixed;
52
+ top: 0;
53
+ left: 0;
54
+ z-index: 200;
55
+ padding: 12px 20px;
56
+ background: var(--accent);
57
+ color: #000;
58
+ font-family: 'Geist', sans-serif;
59
+ font-size: 14px;
60
+ font-weight: 600;
61
+ text-decoration: none;
62
+ border-radius: 0 0 8px 0;
63
+ transform: translateY(-100%);
64
+ transition: transform 0.15s ease;
65
+ }
66
+
67
+ .skip-link:focus {
68
+ transform: translateY(0);
69
+ }
70
+
71
+ .sr-only {
72
+ position: absolute;
73
+ width: 1px;
74
+ height: 1px;
75
+ padding: 0;
76
+ margin: -1px;
77
+ overflow: hidden;
78
+ clip: rect(0, 0, 0, 0);
79
+ white-space: nowrap;
80
+ border: 0;
81
+ }
82
+
83
+ @media (prefers-reduced-motion: reduce) {
84
+ *,
85
+ *::before,
86
+ *::after {
87
+ animation-duration: 0.01ms !important;
88
+ animation-iteration-count: 1 !important;
89
+ transition-duration: 0.01ms !important;
90
+ }
91
+
92
+ html {
93
+ scroll-behavior: auto;
94
+ }
95
+ }
96
+
97
+ body {
98
+ background: var(--bg);
99
+ color: var(--text);
100
+ font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
101
+ font-size: 16px;
102
+ font-weight: 350;
103
+ line-height: 1.7;
104
+ min-height: 100vh;
105
+ position: relative;
106
+ overflow-x: hidden;
107
+ }
108
+
109
+ body::before {
110
+ content: '';
111
+ position: fixed;
112
+ inset: 0;
113
+ pointer-events: none;
114
+ z-index: 0;
115
+ background-image: radial-gradient(circle, var(--grid-line) 1px, transparent 1px);
116
+ background-size: 40px 40px;
117
+ mask-image: radial-gradient(ellipse 70% 70% at 50% 0%, black 30%, transparent 70%);
118
+ -webkit-mask-image: radial-gradient(ellipse 70% 70% at 50% 0%, black 30%, transparent 70%);
119
+ }
120
+
121
+ body::after {
122
+ content: '';
123
+ position: fixed;
124
+ inset: 0;
125
+ pointer-events: none;
126
+ z-index: 0;
127
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.02'/%3E%3C/svg%3E");
128
+ opacity: 0.4;
129
+ }
130
+
131
+ .container {
132
+ position: relative;
133
+ z-index: 1;
134
+ max-width: var(--container-max);
135
+ margin: 0 auto;
136
+ padding: 0 40px;
137
+ }
138
+
139
+ .site-header {
140
+ padding: 80px 0 48px;
141
+ text-align: center;
142
+ position: relative;
143
+ }
144
+
145
+ .site-title {
146
+ font-family: 'Geist', sans-serif;
147
+ font-size: clamp(48px, 8vw, 80px);
148
+ font-weight: 700;
149
+ letter-spacing: -0.03em;
150
+ line-height: 1.05;
151
+ color: var(--text);
152
+ animation: fadeUp 0.8s ease-out both;
153
+ }
154
+
155
+ .site-title .gold {
156
+ background: var(--gold-gradient);
157
+ -webkit-background-clip: text;
158
+ -webkit-text-fill-color: transparent;
159
+ background-clip: text;
160
+ }
161
+
162
+ .site-subtitle {
163
+ font-family: 'Geist Mono', monospace;
164
+ font-size: 13px;
165
+ font-weight: 400;
166
+ letter-spacing: 0.12em;
167
+ text-transform: uppercase;
168
+ color: var(--text-dim);
169
+ margin-top: 16px;
170
+ animation: fadeUp 0.8s 0.15s ease-out both;
171
+ }
172
+
173
+ .header-divider {
174
+ width: 60px;
175
+ height: 1px;
176
+ background: var(--gold-gradient);
177
+ margin: 32px auto 0;
178
+ opacity: 0.5;
179
+ animation: fadeUp 0.8s 0.2s ease-out both;
180
+ }
181
+
182
+ @keyframes fadeUp {
183
+ from { opacity: 0; transform: translateY(20px); }
184
+ to { opacity: 1; transform: translateY(0); }
185
+ }
186
+
187
+ .toolbar {
188
+ margin-top: 28px;
189
+ display: flex;
190
+ flex-wrap: wrap;
191
+ gap: 12px;
192
+ justify-content: center;
193
+ align-items: center;
194
+ }
195
+
196
+ .toolbar-search input,
197
+ .toolbar-select select,
198
+ .toolbar-reset,
199
+ .toolbar-chip,
200
+ .paper-view-link {
201
+ border: 1px solid var(--border-card);
202
+ background: var(--bg-card);
203
+ color: var(--text-soft);
204
+ border-radius: 999px;
205
+ padding: 10px 14px;
206
+ font: inherit;
207
+ }
208
+
209
+ .toolbar-search input {
210
+ min-width: min(360px, 100%);
211
+ }
212
+
213
+ .toolbar-chip {
214
+ cursor: pointer;
215
+ background: var(--bg-card);
216
+ }
217
+
218
+ .toolbar-chip.is-active {
219
+ background: var(--accent);
220
+ color: #000;
221
+ border-color: var(--accent-bright);
222
+ }
223
+
224
+ .toolbar-reset {
225
+ cursor: pointer;
226
+ background: transparent;
227
+ }
228
+
229
+ .section-label {
230
+ font-family: 'Geist Mono', monospace;
231
+ font-size: 11px;
232
+ font-weight: 500;
233
+ letter-spacing: 0.14em;
234
+ text-transform: uppercase;
235
+ color: var(--text-dim);
236
+ margin-bottom: 24px;
237
+ padding-left: 2px;
238
+ }
239
+
240
+ .papers-grid {
241
+ display: grid;
242
+ grid-template-columns: repeat(3, 1fr);
243
+ gap: 28px;
244
+ padding-bottom: 96px;
245
+ list-style: none;
246
+ }
247
+
248
+ @media (max-width: 1100px) {
249
+ .papers-grid {
250
+ grid-template-columns: repeat(2, 1fr);
251
+ }
252
+ }
253
+
254
+ @media (max-width: 600px) {
255
+ .papers-grid {
256
+ grid-template-columns: 1fr;
257
+ }
258
+ }
259
+
260
+ .paper-card {
261
+ position: relative;
262
+ display: flex;
263
+ flex-direction: column;
264
+ justify-content: space-between;
265
+ min-height: 180px;
266
+ padding: 32px 36px;
267
+ background: var(--bg-card);
268
+ border: 1px solid var(--border-card);
269
+ border-radius: 12px;
270
+ cursor: pointer;
271
+ overflow: hidden;
272
+ transition: all 0.35s ease;
273
+ text-decoration: none;
274
+ color: inherit;
275
+ animation: fadeUp 0.6s ease-out both;
276
+ }
277
+
278
+ .paper-card::before {
279
+ content: '';
280
+ position: absolute;
281
+ inset: 0;
282
+ border-radius: 12px;
283
+ background: radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%), rgba(200, 150, 12, 0.06), transparent 40%);
284
+ opacity: 0;
285
+ transition: opacity 0.4s ease;
286
+ pointer-events: none;
287
+ }
288
+
289
+ .paper-card:hover {
290
+ border-color: rgba(200, 150, 12, 0.3);
291
+ background: var(--bg-card-hover);
292
+ transform: translateY(-2px);
293
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(200, 150, 12, 0.08);
294
+ }
295
+
296
+ .paper-card:hover::before {
297
+ opacity: 1;
298
+ }
299
+
300
+ .paper-card:active {
301
+ transform: translateY(0);
302
+ transition: all 0.1s ease;
303
+ }
304
+
305
+ .card-title {
306
+ font-family: 'Geist', sans-serif;
307
+ font-size: 20px;
308
+ font-weight: 600;
309
+ letter-spacing: -0.02em;
310
+ line-height: 1.3;
311
+ color: var(--text);
312
+ margin-bottom: 10px;
313
+ }
314
+
315
+ .card-author {
316
+ font-family: 'Geist Mono', monospace;
317
+ font-size: 11px;
318
+ font-weight: 500;
319
+ letter-spacing: 0.06em;
320
+ color: var(--accent-muted);
321
+ margin-bottom: 8px;
322
+ }
323
+
324
+ .card-meta {
325
+ display: flex;
326
+ align-items: center;
327
+ gap: 12px;
328
+ flex-wrap: wrap;
329
+ font-family: 'Geist Mono', monospace;
330
+ font-size: 12px;
331
+ color: var(--text-dim);
332
+ }
333
+
334
+ .card-tag {
335
+ font-family: 'Geist Mono', monospace;
336
+ font-size: 10px;
337
+ font-weight: 500;
338
+ letter-spacing: 0.08em;
339
+ text-transform: uppercase;
340
+ color: var(--accent-muted);
341
+ background: rgba(200, 150, 12, 0.08);
342
+ padding: 3px 8px;
343
+ border-radius: 4px;
344
+ border: 1px solid rgba(200, 150, 12, 0.12);
345
+ }
346
+
347
+ .card-proved {
348
+ font-family: 'Geist Mono', monospace;
349
+ font-size: 10px;
350
+ font-weight: 600;
351
+ letter-spacing: 0.08em;
352
+ text-transform: uppercase;
353
+ color: #1a7a1a;
354
+ background: rgba(26, 122, 26, 0.1);
355
+ padding: 3px 10px;
356
+ border-radius: 4px;
357
+ border: 1px solid rgba(26, 122, 26, 0.2);
358
+ flex-shrink: 0;
359
+ }
360
+
361
+ .paper-card.featured {
362
+ grid-column: 1 / -1;
363
+ padding: 48px 56px;
364
+ min-height: 220px;
365
+ border-color: color-mix(in srgb, var(--accent) 25%, transparent);
366
+ background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(200, 150, 12, 0.04), transparent 60%), var(--bg-card);
367
+ }
368
+
369
+ .paper-card.featured .card-title {
370
+ font-size: 28px;
371
+ letter-spacing: -0.03em;
372
+ }
373
+
374
+ .paper-card.featured .card-author {
375
+ font-size: 12px;
376
+ margin-bottom: 12px;
377
+ }
378
+
379
+ .paper-card.featured .card-meta {
380
+ font-size: 13px;
381
+ }
382
+
383
+ .paper-card.featured:hover {
384
+ border-color: color-mix(in srgb, var(--accent) 45%, transparent);
385
+ background: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(200, 150, 12, 0.07), transparent 60%), var(--bg-card-hover);
386
+ }
387
+
388
+ @media (max-width: 640px) {
389
+ .paper-card.featured {
390
+ padding: 28px 24px;
391
+ min-height: 160px;
392
+ }
393
+
394
+ .paper-card.featured .card-title {
395
+ font-size: 22px;
396
+ }
397
+ }
398
+
399
+ .card-arrow {
400
+ position: absolute;
401
+ right: 24px;
402
+ top: 50%;
403
+ transform: translateY(-50%);
404
+ font-size: 20px;
405
+ color: var(--text-dim);
406
+ opacity: 0;
407
+ transition: all 0.3s ease;
408
+ }
409
+
410
+ .paper-card:hover .card-arrow {
411
+ opacity: 1;
412
+ color: var(--accent);
413
+ }
414
+
415
+ .collection-status {
416
+ margin-top: -64px;
417
+ padding-bottom: 64px;
418
+ font-family: 'Geist Mono', monospace;
419
+ font-size: 12px;
420
+ color: var(--text-dim);
421
+ }
422
+
423
+ .paper-overlay {
424
+ position: fixed;
425
+ inset: 0;
426
+ z-index: 100;
427
+ background: rgba(0, 0, 0, 0.9);
428
+ backdrop-filter: blur(12px);
429
+ -webkit-backdrop-filter: blur(12px);
430
+ display: flex;
431
+ align-items: flex-start;
432
+ justify-content: center;
433
+ padding: 0;
434
+ overflow-y: auto;
435
+ animation: overlayIn 0.25s ease-out;
436
+ }
437
+
438
+ @keyframes overlayIn {
439
+ from { opacity: 0; }
440
+ to { opacity: 1; }
441
+ }
442
+
443
+ .paper-view {
444
+ background: #0d0d0d;
445
+ border: none;
446
+ border-radius: 0;
447
+ max-width: none;
448
+ width: 100%;
449
+ min-height: 100vh;
450
+ padding: 64px clamp(32px, 8vw, 120px) 80px;
451
+ position: relative;
452
+ animation: modalIn 0.35s ease-out;
453
+ box-shadow: none;
454
+ }
455
+
456
+ @keyframes modalIn {
457
+ from { opacity: 0; transform: translateY(24px) scale(0.97); }
458
+ to { opacity: 1; transform: translateY(0) scale(1); }
459
+ }
460
+
461
+ .paper-view-close {
462
+ position: fixed;
463
+ top: 24px;
464
+ right: 24px;
465
+ width: 40px;
466
+ height: 40px;
467
+ border-radius: 8px;
468
+ border: 1px solid var(--border-card);
469
+ background: rgba(10, 10, 10, 0.9);
470
+ backdrop-filter: blur(8px);
471
+ -webkit-backdrop-filter: blur(8px);
472
+ color: var(--text-muted);
473
+ cursor: pointer;
474
+ display: flex;
475
+ align-items: center;
476
+ justify-content: center;
477
+ font-size: 20px;
478
+ font-family: 'Geist Mono', monospace;
479
+ transition: all 0.2s ease;
480
+ z-index: 10;
481
+ }
482
+
483
+ .paper-view-close:hover {
484
+ border-color: rgba(200, 150, 12, 0.4);
485
+ color: var(--accent);
486
+ background: #111;
487
+ }
488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  .paper-page {
490
+ padding: 0;
491
  }
492
 
493
+ .paper-page-shell {
494
  max-width: 900px;
495
  margin: 0 auto;
496
  }
497
 
498
+ .paper-page-title {
499
  font-family: 'Geist', sans-serif;
500
  font-size: clamp(34px, 5vw, 56px);
501
  font-weight: 700;
 
505
  margin-bottom: 12px;
506
  }
507
 
508
+ .paper-page-meta {
509
  font-family: 'Geist Mono', monospace;
510
  font-size: 12px;
511
  letter-spacing: 0.08em;
 
514
  margin-bottom: 36px;
515
  }
516
 
517
+ .paper-page-actions {
518
+ display: flex;
519
+ gap: 10px;
520
+ flex-wrap: wrap;
521
+ margin-bottom: 22px;
522
+ }
523
+
524
+ .paper-view-link {
525
+ text-decoration: none;
526
+ cursor: pointer;
527
+ }
528
+
529
+ .paper-view-frame {
530
+ display: block;
531
+ width: 100%;
532
+ min-height: calc(100vh - 224px);
533
+ border: 0;
534
+ background: transparent;
535
+ }
536
+
537
+ .papermaker-callout {
538
+ text-align: center;
539
+ padding: 48px 24px 32px;
540
+ max-width: 560px;
541
+ margin: 0 auto;
542
+ }
543
+
544
+ .papermaker-callout p {
545
+ font-family: 'Geist', sans-serif;
546
+ font-size: 14px;
547
+ font-weight: 350;
548
+ line-height: 1.6;
549
+ color: var(--text-dim);
550
+ }
551
+
552
+ .papermaker-callout .role-name {
553
+ font-family: 'Geist Mono', monospace;
554
+ font-weight: 500;
555
+ color: var(--accent-muted);
556
+ }
557
+
558
+ .site-footer {
559
+ text-align: center;
560
+ padding: 0 0 64px;
561
+ font-family: 'Geist Mono', monospace;
562
+ font-size: 11px;
563
+ letter-spacing: 0.1em;
564
+ text-transform: uppercase;
565
+ color: var(--text-dim);
566
+ opacity: 0.5;
567
+ }
568
+
569
+ .empty-state {
570
+ text-align: center;
571
+ padding: 80px 24px;
572
+ grid-column: 1 / -1;
573
+ border: 1px dashed var(--border-card);
574
+ border-radius: 12px;
575
+ background: rgba(10, 10, 10, 0.7);
576
+ }
577
+
578
+ .empty-state p {
579
+ font-size: 16px;
580
+ color: var(--text-dim);
581
+ font-style: italic;
582
+ margin-bottom: 12px;
583
+ }
584
+
585
+ .empty-state button {
586
+ cursor: pointer;
587
+ border: 1px solid var(--border-card);
588
+ background: var(--bg-card);
589
+ color: var(--text-soft);
590
+ border-radius: 999px;
591
+ padding: 10px 14px;
592
+ }
593
+
594
+ .error-banner {
595
+ text-align: center;
596
+ padding: 60px 24px;
597
+ grid-column: 1 / -1;
598
+ }
599
+
600
+ .error-banner p {
601
+ font-family: 'Geist Mono', monospace;
602
+ font-size: 13px;
603
+ color: var(--text-dim);
604
+ }
605
+
606
+ .paper-body {
607
+ color: var(--text-soft);
608
+ max-width: 900px;
609
+ margin: 0 auto;
610
+ }
611
+
612
+ .paper-body h1 {
613
+ font-family: 'Geist', sans-serif;
614
+ font-size: 2rem;
615
+ font-weight: 700;
616
+ letter-spacing: -0.03em;
617
+ line-height: 1.2;
618
+ color: var(--text);
619
+ margin-bottom: 8px;
620
+ }
621
+
622
+ .paper-body h2 {
623
+ font-family: 'Geist', sans-serif;
624
+ font-size: 1.3rem;
625
+ font-weight: 600;
626
+ letter-spacing: -0.02em;
627
+ color: var(--text-soft);
628
+ margin: 36px 0 12px;
629
+ padding-bottom: 8px;
630
+ border-bottom: 1px solid var(--border-card);
631
+ }
632
+
633
+ .paper-body h2:first-child {
634
+ margin-top: 0;
635
+ }
636
+
637
+ .paper-body h3 {
638
+ font-family: 'Geist', sans-serif;
639
+ font-size: 1.05rem;
640
+ font-weight: 600;
641
+ color: var(--text-muted);
642
+ margin: 22px 0 8px;
643
+ }
644
+
645
+ .paper-body p {
646
+ margin-bottom: 14px;
647
+ line-height: 1.75;
648
+ }
649
+
650
+ .paper-body ol,
651
+ .paper-body ul {
652
+ margin: 0 0 14px 24px;
653
+ }
654
+
655
+ .paper-body li {
656
+ margin-bottom: 6px;
657
+ }
658
+
659
+ .paper-body strong {
660
+ font-weight: 600;
661
+ color: var(--text);
662
+ }
663
+
664
+ .paper-body em {
665
+ font-style: italic;
666
+ }
667
+
668
+ .paper-body code {
669
+ font-family: 'Geist Mono', monospace;
670
+ font-size: 0.82em;
671
+ background: rgba(255, 255, 255, 0.05);
672
+ padding: 2px 7px;
673
+ border-radius: 4px;
674
+ border: 1px solid var(--border-card);
675
+ color: var(--accent);
676
+ }
677
+
678
+ .paper-body hr {
679
+ border: none;
680
+ border-top: 1px solid var(--border-card);
681
+ margin: 28px 0;
682
+ }
683
+
684
+ .paper-body blockquote {
685
+ border-left: 2px solid var(--accent-muted);
686
+ padding-left: 16px;
687
+ margin: 18px 0;
688
+ color: var(--text-muted);
689
+ font-style: italic;
690
+ }
691
+
692
+ .proof-section {
693
+ margin-top: 32px;
694
+ padding-top: 24px;
695
+ border-top: 1px solid var(--border-card);
696
+ }
697
+
698
+ .proof-label {
699
+ font-family: 'Geist Mono', monospace;
700
+ font-size: 11px;
701
+ font-weight: 600;
702
+ letter-spacing: 0.1em;
703
+ text-transform: uppercase;
704
+ color: #1a7a1a;
705
+ margin-bottom: 14px;
706
+ }
707
+
708
+ .proof-script {
709
+ background: rgba(0, 0, 0, 0.4);
710
+ border: 1px solid var(--border-card);
711
+ border-radius: 8px;
712
+ padding: 20px 24px;
713
+ overflow-x: auto;
714
+ font-family: 'Geist Mono', monospace;
715
+ font-size: 12px;
716
+ line-height: 1.6;
717
+ color: var(--text-muted);
718
+ tab-size: 4;
719
+ max-height: 500px;
720
+ overflow-y: auto;
721
+ }
722
+
723
+ .proof-script::-webkit-scrollbar {
724
+ width: 6px;
725
+ height: 6px;
726
+ }
727
+
728
+ .proof-script::-webkit-scrollbar-track {
729
+ background: transparent;
730
+ }
731
+
732
+ .proof-script::-webkit-scrollbar-thumb {
733
+ background: var(--border-card);
734
+ border-radius: 3px;
735
+ }
736
+
737
+ @media (max-width: 640px) {
738
+ .container {
739
+ padding: 0 20px;
740
+ }
741
+
742
+ .site-header {
743
+ padding: 56px 0 36px;
744
+ }
745
+
746
+ .site-title {
747
+ font-size: clamp(36px, 10vw, 56px);
748
+ }
749
+
750
+ .paper-card {
751
+ padding: 22px 24px;
752
+ min-height: 140px;
753
+ }
754
+
755
+ .paper-view {
756
+ padding: 32px 20px;
757
+ min-height: auto;
758
+ }
759
+
760
+ .paper-view-frame {
761
+ min-height: 70vh;
762
+ }
763
+
764
+ .papers-grid {
765
+ gap: 12px;
766
+ }
767
+
768
+ .toolbar-search input {
769
+ min-width: 100%;
770
+ }
771
+ }
772
+
773
+ @media print {
774
+ body {
775
+ background: white;
776
+ color: black;
777
+ }
778
+
779
+ body::before,
780
+ body::after {
781
+ display: none;
782
+ }
783
+
784
+ .paper-overlay {
785
+ position: static;
786
+ background: none;
787
+ backdrop-filter: none;
788
+ }
789
+
790
+ .paper-view {
791
+ background: white;
792
+ color: black;
793
+ box-shadow: none;
794
+ border: none;
795
+ min-height: auto;
796
+ padding: 24px 0;
797
+ position: static;
798
+ animation: none;
799
+ }
800
+
801
+ .paper-view-frame {
802
+ min-height: 0;
803
+ height: auto;
804
+ }
805
+
806
+ .paper-view-close {
807
+ display: none;
808
+ }
809
  }