AndreP-git commited on
Commit
3523ea2
·
1 Parent(s): d61dd06
Files changed (1) hide show
  1. index.html +102 -66
index.html CHANGED
@@ -11,10 +11,6 @@
11
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css">
12
  <script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.js"></script>
13
 
14
- <link rel="preconnect" href="https://fonts.googleapis.com">
15
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
16
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&display=swap">
17
-
18
  <style>
19
  /* Fluid base size: every rem below scales with the viewport width
20
  (14px floor on phones, 18px cap on large screens) */
@@ -36,22 +32,19 @@
36
 
37
  :root {
38
  --accent: #1a9850;
 
39
  --border: #e2e2e0;
40
- --rule: #1d1d1b;
41
  --muted: #6b6b68;
42
- --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
43
- }
44
-
45
- h1, h3 {
46
- font-family: var(--serif);
47
- font-weight: 600;
48
  }
49
 
50
- /* Sections are separated by a rule, not boxed */
51
  .card {
52
- border-top: 1px solid var(--rule);
53
- padding-top: 14px;
54
- margin-top: 40px;
 
 
 
55
  }
56
 
57
  .cardHeader {
@@ -69,16 +62,33 @@
69
 
70
  .status {
71
  font-size: 0.8125rem;
72
- color: var(--muted);
 
 
73
  overflow-wrap: anywhere;
74
  }
75
 
76
- .status.ok b {
77
- color: #1d1d1b;
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  }
79
 
80
  .status.error {
 
81
  color: #a52a1f;
 
82
  }
83
 
84
  .field {
@@ -106,20 +116,22 @@
106
  .card input[type="number"] {
107
  font: inherit;
108
  font-size: 0.875rem;
109
- height: 36px;
110
- padding: 0 10px;
111
- border: 1px solid #bdbdba;
112
- border-radius: 3px;
113
  background: white;
114
  width: 100%;
115
  box-sizing: border-box;
 
116
  }
117
 
118
  .card select:focus,
119
  .card input[type="text"]:focus,
120
  .card input[type="number"]:focus {
121
  outline: none;
122
- border-color: #1d1d1b;
 
123
  }
124
 
125
  .sources {
@@ -133,37 +145,43 @@
133
  .divider {
134
  color: var(--muted);
135
  font-size: 0.8125rem;
136
- height: 36px;
137
  display: flex;
138
  align-items: center;
139
- font-style: italic;
140
  }
141
 
142
  .inputGroup {
143
  display: flex;
144
- gap: 8px;
 
 
 
145
  }
146
 
147
  .inputGroup button {
148
  font: inherit;
149
  font-size: 0.875rem;
150
- height: 36px;
151
- padding: 0 16px;
152
- border: 1px solid #1d1d1b;
153
- border-radius: 3px;
154
- background: #1d1d1b;
 
155
  color: white;
156
  cursor: pointer;
 
157
  }
158
 
159
  .inputGroup button:hover {
160
- background: #444;
161
  }
162
 
163
  .sectionLabel {
164
- margin: 26px 0 10px;
165
- font-size: 0.875rem;
166
- font-weight: 600;
 
 
167
  }
168
 
169
  .archGrid {
@@ -172,15 +190,20 @@
172
  gap: 16px;
173
  }
174
 
175
- /* Architecture summary as a plain line: "GQA · R = 1/4" */
176
  #archSummary {
 
 
 
177
  margin-top: 12px;
178
- font-size: 0.8125rem;
179
- color: var(--muted);
180
  }
181
 
182
- .chip + .chip::before {
183
- content: " · ";
 
 
 
 
 
184
  }
185
 
186
  @media (max-width: 700px) {
@@ -213,19 +236,19 @@
213
 
214
  .badge {
215
  font-size: 0.8125rem;
 
216
  font-variant-numeric: tabular-nums;
217
- }
218
-
219
- .badge::before {
220
- content: "= ";
221
- color: var(--muted);
222
  }
223
 
224
  #ninSlider {
225
  width: 100%;
226
  display: block;
227
  margin-top: 10px;
228
- accent-color: #1d1d1b;
229
  }
230
 
231
  #ninLabels {
@@ -260,14 +283,18 @@
260
  }
261
 
262
  .eyebrow {
263
- font-size: 0.875rem;
264
- color: var(--muted);
 
 
 
265
  }
266
 
267
  .hero h1 {
268
- font-size: 2.25rem;
269
- line-height: 1.15;
270
- margin: 4px 0 10px;
 
271
  }
272
 
273
  .lede {
@@ -288,7 +315,7 @@
288
  display: grid;
289
  /* Theta card as wide as its one-line rows; the formula takes the rest */
290
  grid-template-columns: minmax(0, 1fr) auto;
291
- gap: 48px;
292
  align-items: stretch;
293
  }
294
 
@@ -300,7 +327,7 @@
300
 
301
  .card h3 {
302
  margin: 0 0 16px;
303
- font-size: 1.25rem;
304
  }
305
 
306
  /* Always a single line: everything inside is sized in em, and
@@ -335,7 +362,7 @@
335
  justify-content: space-between;
336
  gap: 0.33em;
337
  padding: 0.55em 0.78em 0.45em;
338
- border-radius: 2px;
339
  border: 1.5px solid var(--c);
340
  background-color: color-mix(in srgb, var(--c) 16%, white);
341
  }
@@ -414,6 +441,7 @@
414
  display: inline-block;
415
  width: 10px;
416
  height: 10px;
 
417
  background: var(--c);
418
  margin-right: 8px;
419
  vertical-align: middle;
@@ -427,12 +455,11 @@
427
 
428
  /* ---------- About ---------- */
429
  .about {
430
- margin: 48px 0 12px;
431
  }
432
 
433
  .about p {
434
  line-height: 1.6;
435
- max-width: 75ch;
436
  }
437
 
438
  .about a {
@@ -471,8 +498,11 @@
471
 
472
  .bibtex pre {
473
  margin: 0;
474
- padding: 2px 70px 2px 14px;
475
- border-left: 2px solid var(--border);
 
 
 
476
  font-size: 0.8125rem;
477
  line-height: 1.5;
478
  overflow-x: auto;
@@ -480,18 +510,24 @@
480
 
481
  .copyBtn {
482
  position: absolute;
483
- top: 0;
484
- right: 0;
485
  font: inherit;
486
- font-size: 0.8125rem;
487
- padding: 0;
488
- border: none;
489
- background: none;
490
- color: #146c3a;
491
- text-decoration: underline;
 
492
  cursor: pointer;
493
  }
494
 
 
 
 
 
 
495
  /* Model shown under each plot title, kept in sync by setStatus() */
496
  #plots h4 {
497
  margin-bottom: 4px;
 
11
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css">
12
  <script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.js"></script>
13
 
 
 
 
 
14
  <style>
15
  /* Fluid base size: every rem below scales with the viewport width
16
  (14px floor on phones, 18px cap on large screens) */
 
32
 
33
  :root {
34
  --accent: #1a9850;
35
+ --accent-soft: #e8f5ec;
36
  --border: #e2e2e0;
 
37
  --muted: #6b6b68;
38
+ --surface: #fafaf9;
 
 
 
 
 
39
  }
40
 
 
41
  .card {
42
+ background: white;
43
+ border: 1px solid var(--border);
44
+ border-radius: 14px;
45
+ padding: clamp(18px, 2.2vw, 32px) clamp(20px, 3vw, 44px);
46
+ margin-top: 24px;
47
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
48
  }
49
 
50
  .cardHeader {
 
62
 
63
  .status {
64
  font-size: 0.8125rem;
65
+ padding: 4px 12px;
66
+ border-radius: 999px;
67
+ border: 1px solid transparent;
68
  overflow-wrap: anywhere;
69
  }
70
 
71
+ .status:empty {
72
+ display: none;
73
+ }
74
+
75
+ .status.ok {
76
+ background: var(--accent-soft);
77
+ color: #146c3a;
78
+ border-color: #bfe3cb;
79
+ }
80
+
81
+ .status.loading,
82
+ .status.custom {
83
+ background: #f1f1ef;
84
+ color: var(--muted);
85
+ border-color: var(--border);
86
  }
87
 
88
  .status.error {
89
+ background: #fdecea;
90
  color: #a52a1f;
91
+ border-color: #f5c6c0;
92
  }
93
 
94
  .field {
 
116
  .card input[type="number"] {
117
  font: inherit;
118
  font-size: 0.875rem;
119
+ height: 38px;
120
+ padding: 0 12px;
121
+ border: 1px solid #cfcfcc;
122
+ border-radius: 8px;
123
  background: white;
124
  width: 100%;
125
  box-sizing: border-box;
126
+ transition: border-color 0.15s, box-shadow 0.15s;
127
  }
128
 
129
  .card select:focus,
130
  .card input[type="text"]:focus,
131
  .card input[type="number"]:focus {
132
  outline: none;
133
+ border-color: var(--accent);
134
+ box-shadow: 0 0 0 3px rgba(26, 152, 80, 0.15);
135
  }
136
 
137
  .sources {
 
145
  .divider {
146
  color: var(--muted);
147
  font-size: 0.8125rem;
148
+ height: 38px;
149
  display: flex;
150
  align-items: center;
 
151
  }
152
 
153
  .inputGroup {
154
  display: flex;
155
+ }
156
+
157
+ .inputGroup input[type="text"] {
158
+ border-radius: 8px 0 0 8px;
159
  }
160
 
161
  .inputGroup button {
162
  font: inherit;
163
  font-size: 0.875rem;
164
+ font-weight: 600;
165
+ height: 38px;
166
+ padding: 0 18px;
167
+ border: 1px solid var(--accent);
168
+ border-radius: 0 8px 8px 0;
169
+ background: var(--accent);
170
  color: white;
171
  cursor: pointer;
172
+ margin-left: -1px;
173
  }
174
 
175
  .inputGroup button:hover {
176
+ background: #137a40;
177
  }
178
 
179
  .sectionLabel {
180
+ margin: 22px 0 10px;
181
+ font-size: 0.75rem;
182
+ letter-spacing: 0.06em;
183
+ text-transform: uppercase;
184
+ color: var(--muted);
185
  }
186
 
187
  .archGrid {
 
190
  gap: 16px;
191
  }
192
 
 
193
  #archSummary {
194
+ display: flex;
195
+ flex-wrap: wrap;
196
+ gap: 8px;
197
  margin-top: 12px;
 
 
198
  }
199
 
200
+ .chip {
201
+ font-size: 0.75rem;
202
+ padding: 3px 10px;
203
+ border-radius: 999px;
204
+ background: white;
205
+ border: 1px solid var(--border);
206
+ color: #444;
207
  }
208
 
209
  @media (max-width: 700px) {
 
236
 
237
  .badge {
238
  font-size: 0.8125rem;
239
+ font-weight: 600;
240
  font-variant-numeric: tabular-nums;
241
+ padding: 2px 10px;
242
+ border-radius: 6px;
243
+ background: var(--accent-soft);
244
+ color: #146c3a;
 
245
  }
246
 
247
  #ninSlider {
248
  width: 100%;
249
  display: block;
250
  margin-top: 10px;
251
+ accent-color: var(--accent);
252
  }
253
 
254
  #ninLabels {
 
283
  }
284
 
285
  .eyebrow {
286
+ font-size: 0.75rem;
287
+ font-weight: 700;
288
+ letter-spacing: 0.1em;
289
+ text-transform: uppercase;
290
+ color: var(--accent);
291
  }
292
 
293
  .hero h1 {
294
+ font-size: 1.875rem;
295
+ line-height: 1.2;
296
+ margin: 6px 0 8px;
297
+ letter-spacing: -0.01em;
298
  }
299
 
300
  .lede {
 
315
  display: grid;
316
  /* Theta card as wide as its one-line rows; the formula takes the rest */
317
  grid-template-columns: minmax(0, 1fr) auto;
318
+ gap: 20px;
319
  align-items: stretch;
320
  }
321
 
 
327
 
328
  .card h3 {
329
  margin: 0 0 16px;
330
+ font-size: 1.0625rem;
331
  }
332
 
333
  /* Always a single line: everything inside is sized in em, and
 
362
  justify-content: space-between;
363
  gap: 0.33em;
364
  padding: 0.55em 0.78em 0.45em;
365
+ border-radius: 0.55em;
366
  border: 1.5px solid var(--c);
367
  background-color: color-mix(in srgb, var(--c) 16%, white);
368
  }
 
441
  display: inline-block;
442
  width: 10px;
443
  height: 10px;
444
+ border-radius: 3px;
445
  background: var(--c);
446
  margin-right: 8px;
447
  vertical-align: middle;
 
455
 
456
  /* ---------- About ---------- */
457
  .about {
458
+ margin: 32px 0 12px;
459
  }
460
 
461
  .about p {
462
  line-height: 1.6;
 
463
  }
464
 
465
  .about a {
 
498
 
499
  .bibtex pre {
500
  margin: 0;
501
+ padding: 14px 16px;
502
+ padding-right: 80px;
503
+ background: white;
504
+ border: 1px solid var(--border);
505
+ border-radius: 8px;
506
  font-size: 0.8125rem;
507
  line-height: 1.5;
508
  overflow-x: auto;
 
510
 
511
  .copyBtn {
512
  position: absolute;
513
+ top: 8px;
514
+ right: 8px;
515
  font: inherit;
516
+ font-size: 0.75rem;
517
+ font-weight: 600;
518
+ padding: 4px 12px;
519
+ border: 1px solid var(--border);
520
+ border-radius: 6px;
521
+ background: var(--surface);
522
+ color: #333;
523
  cursor: pointer;
524
  }
525
 
526
+ .copyBtn:hover {
527
+ border-color: var(--accent);
528
+ color: var(--accent);
529
+ }
530
+
531
  /* Model shown under each plot title, kept in sync by setStatus() */
532
  #plots h4 {
533
  margin-bottom: 4px;