AndreP-git commited on
Commit
d61dd06
·
1 Parent(s): f2f2174
Files changed (1) hide show
  1. index.html +66 -102
index.html CHANGED
@@ -11,6 +11,10 @@
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,19 +36,22 @@
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: var(--surface);
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,33 +69,16 @@
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,22 +106,20 @@
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,43 +133,37 @@
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,20 +172,15 @@
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,19 +213,19 @@
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,18 +260,14 @@
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,7 +288,7 @@
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,7 +300,7 @@
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,7 +335,7 @@
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,7 +414,6 @@
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,11 +427,12 @@
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,11 +471,8 @@
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,24 +480,18 @@
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;
 
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
 
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
 
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
  .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
  .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
  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
 
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
  }
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
  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
 
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
  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
  display: inline-block;
415
  width: 10px;
416
  height: 10px;
 
417
  background: var(--c);
418
  margin-right: 8px;
419
  vertical-align: middle;
 
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
 
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
 
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;