mcp-scraper 0.40.1 → 0.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/api-server.cjs +60220 -0
  3. package/dist/bin/api-server.cjs.map +1 -0
  4. package/dist/bin/api-server.d.cts +1 -0
  5. package/dist/bin/api-server.d.ts +1 -0
  6. package/dist/bin/api-server.js +38 -0
  7. package/dist/bin/api-server.js.map +1 -0
  8. package/dist/bin/mcp-scraper-cli.cjs +2671 -0
  9. package/dist/bin/mcp-scraper-cli.cjs.map +1 -0
  10. package/dist/bin/mcp-scraper-cli.d.cts +1 -0
  11. package/dist/bin/mcp-scraper-cli.d.ts +1 -0
  12. package/dist/bin/mcp-scraper-cli.js +742 -0
  13. package/dist/bin/mcp-scraper-cli.js.map +1 -0
  14. package/dist/bin/mcp-scraper-install.cjs +129 -0
  15. package/dist/bin/mcp-scraper-install.cjs.map +1 -0
  16. package/dist/bin/mcp-scraper-install.d.cts +1 -0
  17. package/dist/bin/mcp-scraper-install.d.ts +1 -0
  18. package/dist/bin/mcp-scraper-install.js +27 -0
  19. package/dist/bin/mcp-scraper-install.js.map +1 -0
  20. package/dist/bin/mcp-stdio-server.cjs +12532 -0
  21. package/dist/bin/mcp-stdio-server.cjs.map +1 -0
  22. package/dist/bin/mcp-stdio-server.d.cts +1 -0
  23. package/dist/bin/mcp-stdio-server.d.ts +1 -0
  24. package/dist/bin/mcp-stdio-server.js +135 -0
  25. package/dist/bin/mcp-stdio-server.js.map +1 -0
  26. package/dist/bin/paa-harvest.cjs +3808 -0
  27. package/dist/bin/paa-harvest.cjs.map +1 -0
  28. package/dist/bin/paa-harvest.d.cts +1 -0
  29. package/dist/bin/paa-harvest.d.ts +1 -0
  30. package/dist/bin/paa-harvest.js +44 -0
  31. package/dist/bin/paa-harvest.js.map +1 -0
  32. package/dist/chunk-345BQXZH.js +712 -0
  33. package/dist/chunk-345BQXZH.js.map +1 -0
  34. package/dist/chunk-3PIWJS6Y.js +276 -0
  35. package/dist/chunk-3PIWJS6Y.js.map +1 -0
  36. package/dist/chunk-44HZLHDV.js +52 -0
  37. package/dist/chunk-44HZLHDV.js.map +1 -0
  38. package/dist/chunk-7XBBFBYY.js +3410 -0
  39. package/dist/chunk-7XBBFBYY.js.map +1 -0
  40. package/dist/chunk-CB5C3BPB.js +135 -0
  41. package/dist/chunk-CB5C3BPB.js.map +1 -0
  42. package/dist/chunk-FQI5PFE7.js +1866 -0
  43. package/dist/chunk-FQI5PFE7.js.map +1 -0
  44. package/dist/chunk-G3P3ZDB4.js +69 -0
  45. package/dist/chunk-G3P3ZDB4.js.map +1 -0
  46. package/dist/chunk-GUVKHCKE.js +3050 -0
  47. package/dist/chunk-GUVKHCKE.js.map +1 -0
  48. package/dist/chunk-K443GQY5.js +24 -0
  49. package/dist/chunk-K443GQY5.js.map +1 -0
  50. package/dist/chunk-LP6E462I.js +11555 -0
  51. package/dist/chunk-LP6E462I.js.map +1 -0
  52. package/dist/chunk-NVXNEOUQ.js +158 -0
  53. package/dist/chunk-NVXNEOUQ.js.map +1 -0
  54. package/dist/chunk-QZXKQB7Y.js +414 -0
  55. package/dist/chunk-QZXKQB7Y.js.map +1 -0
  56. package/dist/chunk-SBLGBZZB.js +647 -0
  57. package/dist/chunk-SBLGBZZB.js.map +1 -0
  58. package/dist/chunk-X2LKCX6H.js +499 -0
  59. package/dist/chunk-X2LKCX6H.js.map +1 -0
  60. package/dist/chunk-XELSA2MS.js +108 -0
  61. package/dist/chunk-XELSA2MS.js.map +1 -0
  62. package/dist/chunk-XORPNO3Z.js +684 -0
  63. package/dist/chunk-XORPNO3Z.js.map +1 -0
  64. package/dist/chunk-ZUJLSICT.js +7 -0
  65. package/dist/chunk-ZUJLSICT.js.map +1 -0
  66. package/dist/db-W3CP562I.js +239 -0
  67. package/dist/db-W3CP562I.js.map +1 -0
  68. package/dist/editorial-reading-room/assets/app.js +335 -0
  69. package/dist/editorial-reading-room/assets/index.html +131 -0
  70. package/dist/editorial-reading-room/assets/styles.css +1052 -0
  71. package/dist/extract-bundle-K4PG3RZJ.js +568 -0
  72. package/dist/extract-bundle-K4PG3RZJ.js.map +1 -0
  73. package/dist/index.cjs +4160 -0
  74. package/dist/index.cjs.map +1 -0
  75. package/dist/index.d.cts +413 -0
  76. package/dist/index.d.ts +413 -0
  77. package/dist/index.js +338 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/location-data-repository-RLQX6SNM.js +35 -0
  80. package/dist/location-data-repository-RLQX6SNM.js.map +1 -0
  81. package/dist/server-KM3CFWCF.js +34674 -0
  82. package/dist/server-KM3CFWCF.js.map +1 -0
  83. package/dist/site-extract-repository-2SMMFKKL.js +62 -0
  84. package/dist/site-extract-repository-2SMMFKKL.js.map +1 -0
  85. package/dist/worker-FXAGFYOE.js +142 -0
  86. package/dist/worker-FXAGFYOE.js.map +1 -0
  87. package/package.json +4 -2
@@ -0,0 +1,1052 @@
1
+ :root {
2
+ --paper: #f5f1e8;
3
+ --paper-raised: #fbf9f4;
4
+ --ink: #171714;
5
+ --muted: #68655f;
6
+ --rule: #c8c2b6;
7
+ --rule-strong: #2e2c29;
8
+ --accent: #1859d1;
9
+ --accent-soft: #e3eaf8;
10
+ --serif: Georgia, "Times New Roman", serif;
11
+ --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
12
+ --reading-size: 19px;
13
+ --header-height: 66px;
14
+ color-scheme: light;
15
+ }
16
+
17
+ html[data-theme="evening"] {
18
+ --paper: #1b1b19;
19
+ --paper-raised: #232320;
20
+ --ink: #f4f0e7;
21
+ --muted: #aaa69d;
22
+ --rule: #45423c;
23
+ --rule-strong: #d8d1c3;
24
+ --accent: #8bb2ff;
25
+ --accent-soft: #26334d;
26
+ color-scheme: dark;
27
+ }
28
+
29
+ html[data-type="large"] {
30
+ --reading-size: 21px;
31
+ }
32
+
33
+ html[data-type="larger"] {
34
+ --reading-size: 23px;
35
+ }
36
+
37
+ * {
38
+ box-sizing: border-box;
39
+ }
40
+
41
+ html {
42
+ scroll-behavior: smooth;
43
+ background: var(--paper);
44
+ }
45
+
46
+ body {
47
+ margin: 0;
48
+ color: var(--ink);
49
+ background: var(--paper);
50
+ font-family: var(--sans);
51
+ -webkit-font-smoothing: antialiased;
52
+ text-rendering: optimizeLegibility;
53
+ }
54
+
55
+ button,
56
+ input {
57
+ color: inherit;
58
+ font: inherit;
59
+ }
60
+
61
+ button {
62
+ cursor: pointer;
63
+ }
64
+
65
+ a {
66
+ color: var(--accent);
67
+ text-decoration-thickness: 1px;
68
+ text-underline-offset: 0.16em;
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
+ .skip-link {
84
+ position: fixed;
85
+ z-index: 120;
86
+ top: 10px;
87
+ left: 10px;
88
+ padding: 10px 14px;
89
+ color: white;
90
+ background: var(--accent);
91
+ transform: translateY(-150%);
92
+ }
93
+
94
+ .skip-link:focus {
95
+ transform: translateY(0);
96
+ }
97
+
98
+ .reading-progress {
99
+ position: fixed;
100
+ z-index: 110;
101
+ inset: 0 0 auto;
102
+ height: 3px;
103
+ background: transparent;
104
+ }
105
+
106
+ .reading-progress span {
107
+ display: block;
108
+ width: 0;
109
+ height: 100%;
110
+ background: var(--accent);
111
+ transition: width 120ms linear;
112
+ }
113
+
114
+ .site-header {
115
+ position: sticky;
116
+ z-index: 80;
117
+ top: 0;
118
+ display: grid;
119
+ grid-template-columns: 1fr auto 1fr;
120
+ align-items: center;
121
+ height: var(--header-height);
122
+ padding: 0 24px;
123
+ border-bottom: 1px solid var(--rule-strong);
124
+ background: color-mix(in srgb, var(--paper) 94%, transparent);
125
+ backdrop-filter: blur(16px);
126
+ }
127
+
128
+ .menu-button {
129
+ display: grid;
130
+ gap: 4px;
131
+ width: 42px;
132
+ height: 42px;
133
+ padding: 12px 10px;
134
+ border: 0;
135
+ background: transparent;
136
+ }
137
+
138
+ .menu-button span {
139
+ display: block;
140
+ height: 1.5px;
141
+ background: var(--ink);
142
+ }
143
+
144
+ .masthead {
145
+ display: flex;
146
+ align-items: baseline;
147
+ gap: 9px;
148
+ padding: 6px 12px;
149
+ border: 0;
150
+ background: transparent;
151
+ }
152
+
153
+ .masthead-product {
154
+ font-weight: 800;
155
+ letter-spacing: -0.04em;
156
+ }
157
+
158
+ .masthead-title {
159
+ font-family: var(--serif);
160
+ font-size: 22px;
161
+ font-style: italic;
162
+ }
163
+
164
+ .header-tools {
165
+ display: flex;
166
+ justify-content: flex-end;
167
+ gap: 2px;
168
+ }
169
+
170
+ .text-button {
171
+ display: flex;
172
+ align-items: center;
173
+ gap: 7px;
174
+ min-height: 40px;
175
+ padding: 8px 10px;
176
+ border: 0;
177
+ background: transparent;
178
+ font-size: 12px;
179
+ font-weight: 700;
180
+ }
181
+
182
+ .type-large {
183
+ font-size: 18px;
184
+ }
185
+
186
+ .eyebrow,
187
+ .article-kicker,
188
+ .rail-label,
189
+ .issue-line {
190
+ margin: 0;
191
+ font-size: 11px;
192
+ font-weight: 800;
193
+ letter-spacing: 0.12em;
194
+ text-transform: uppercase;
195
+ }
196
+
197
+ .issue-line {
198
+ display: flex;
199
+ justify-content: space-between;
200
+ max-width: 1180px;
201
+ margin: 0 auto;
202
+ padding: 15px 24px;
203
+ border-bottom: 1px solid var(--rule);
204
+ color: var(--muted);
205
+ }
206
+
207
+ .home-view {
208
+ padding-bottom: 90px;
209
+ }
210
+
211
+ .home-hero {
212
+ max-width: 980px;
213
+ margin: 0 auto;
214
+ padding: 88px 32px 74px;
215
+ text-align: center;
216
+ }
217
+
218
+ .home-hero h1 {
219
+ max-width: 900px;
220
+ margin: 20px auto 24px;
221
+ font-family: var(--serif);
222
+ font-size: clamp(48px, 8vw, 104px);
223
+ font-weight: 400;
224
+ line-height: 0.93;
225
+ letter-spacing: -0.065em;
226
+ }
227
+
228
+ .home-deck {
229
+ max-width: 720px;
230
+ margin: 0 auto 32px;
231
+ color: var(--muted);
232
+ font-family: var(--serif);
233
+ font-size: clamp(20px, 2.5vw, 28px);
234
+ line-height: 1.35;
235
+ }
236
+
237
+ .primary-link {
238
+ padding: 13px 18px;
239
+ border: 1px solid var(--ink);
240
+ border-radius: 999px;
241
+ color: var(--paper);
242
+ background: var(--ink);
243
+ font-weight: 750;
244
+ }
245
+
246
+ .featured-grid {
247
+ display: grid;
248
+ grid-template-columns: 1.5fr 1fr 1fr;
249
+ max-width: 1180px;
250
+ margin: 0 auto;
251
+ border-top: 2px solid var(--rule-strong);
252
+ border-bottom: 1px solid var(--rule-strong);
253
+ }
254
+
255
+ .feature-card {
256
+ min-height: 290px;
257
+ padding: 24px;
258
+ border-right: 1px solid var(--rule);
259
+ background: transparent;
260
+ }
261
+
262
+ .feature-card:last-child {
263
+ border-right: 0;
264
+ }
265
+
266
+ .feature-card:first-child {
267
+ min-height: 390px;
268
+ }
269
+
270
+ .feature-card button,
271
+ .content-row button {
272
+ display: block;
273
+ width: 100%;
274
+ padding: 0;
275
+ border: 0;
276
+ background: transparent;
277
+ text-align: left;
278
+ }
279
+
280
+ .card-kicker {
281
+ margin: 0 0 18px;
282
+ color: var(--accent);
283
+ font-size: 11px;
284
+ font-weight: 800;
285
+ letter-spacing: 0.1em;
286
+ text-transform: uppercase;
287
+ }
288
+
289
+ .feature-card h2 {
290
+ margin: 0 0 16px;
291
+ font-family: var(--serif);
292
+ font-size: clamp(28px, 3vw, 46px);
293
+ font-weight: 400;
294
+ line-height: 1.03;
295
+ letter-spacing: -0.035em;
296
+ }
297
+
298
+ .feature-card:not(:first-child) h2 {
299
+ font-size: clamp(24px, 2.4vw, 34px);
300
+ }
301
+
302
+ .feature-card p:last-child {
303
+ color: var(--muted);
304
+ font-family: var(--serif);
305
+ font-size: 16px;
306
+ line-height: 1.45;
307
+ }
308
+
309
+ .contents-section {
310
+ max-width: 1180px;
311
+ margin: 80px auto 0;
312
+ padding: 0 24px;
313
+ }
314
+
315
+ .section-heading {
316
+ display: flex;
317
+ align-items: baseline;
318
+ justify-content: space-between;
319
+ padding-bottom: 12px;
320
+ border-bottom: 3px double var(--rule-strong);
321
+ }
322
+
323
+ .section-heading h2 {
324
+ margin: 0;
325
+ font-family: var(--serif);
326
+ font-size: 32px;
327
+ font-weight: 400;
328
+ }
329
+
330
+ .content-row {
331
+ display: grid;
332
+ grid-template-columns: 82px minmax(0, 1.6fr) minmax(240px, 1fr) auto;
333
+ gap: 24px;
334
+ align-items: baseline;
335
+ padding: 22px 0;
336
+ border-bottom: 1px solid var(--rule);
337
+ }
338
+
339
+ .content-number {
340
+ color: var(--muted);
341
+ font-family: var(--serif);
342
+ font-size: 30px;
343
+ }
344
+
345
+ .content-row h3 {
346
+ margin: 0;
347
+ font-family: var(--serif);
348
+ font-size: 25px;
349
+ font-weight: 400;
350
+ line-height: 1.12;
351
+ }
352
+
353
+ .content-row p {
354
+ margin: 0;
355
+ color: var(--muted);
356
+ font-family: var(--serif);
357
+ font-size: 15px;
358
+ line-height: 1.45;
359
+ }
360
+
361
+ .content-meta {
362
+ white-space: nowrap;
363
+ color: var(--muted);
364
+ font-size: 11px;
365
+ font-weight: 700;
366
+ text-transform: uppercase;
367
+ }
368
+
369
+ .navigation-drawer {
370
+ position: fixed;
371
+ z-index: 100;
372
+ inset: 0 auto 0 0;
373
+ width: min(430px, 92vw);
374
+ padding: 22px;
375
+ overflow-y: auto;
376
+ border-right: 1px solid var(--rule-strong);
377
+ background: var(--paper-raised);
378
+ transform: translateX(-102%);
379
+ transition: transform 240ms ease;
380
+ }
381
+
382
+ body.drawer-open {
383
+ overflow: hidden;
384
+ }
385
+
386
+ body.drawer-open .navigation-drawer {
387
+ transform: translateX(0);
388
+ }
389
+
390
+ .drawer-backdrop {
391
+ position: fixed;
392
+ z-index: 90;
393
+ inset: 0;
394
+ display: none;
395
+ border: 0;
396
+ background: rgb(0 0 0 / 0.42);
397
+ }
398
+
399
+ body.drawer-open .drawer-backdrop {
400
+ display: block;
401
+ }
402
+
403
+ .drawer-header {
404
+ display: flex;
405
+ align-items: center;
406
+ justify-content: space-between;
407
+ padding-bottom: 18px;
408
+ border-bottom: 1px solid var(--rule-strong);
409
+ }
410
+
411
+ .drawer-header button {
412
+ padding: 8px;
413
+ border: 0;
414
+ background: transparent;
415
+ font-size: 12px;
416
+ font-weight: 800;
417
+ text-transform: uppercase;
418
+ }
419
+
420
+ .search-field {
421
+ display: block;
422
+ margin: 18px 0 24px;
423
+ }
424
+
425
+ .search-field input {
426
+ width: 100%;
427
+ padding: 12px 0;
428
+ border: 0;
429
+ border-bottom: 1px solid var(--rule-strong);
430
+ outline: none;
431
+ background: transparent;
432
+ font-family: var(--serif);
433
+ font-size: 20px;
434
+ }
435
+
436
+ .drawer-group {
437
+ margin: 26px 0;
438
+ }
439
+
440
+ .drawer-group-title {
441
+ margin: 0 0 7px;
442
+ color: var(--muted);
443
+ font-size: 10px;
444
+ font-weight: 800;
445
+ letter-spacing: 0.12em;
446
+ text-transform: uppercase;
447
+ }
448
+
449
+ .drawer-link {
450
+ display: grid;
451
+ grid-template-columns: 22px 1fr;
452
+ gap: 8px;
453
+ width: 100%;
454
+ padding: 10px 0;
455
+ border: 0;
456
+ border-bottom: 1px solid color-mix(in srgb, var(--rule) 55%, transparent);
457
+ background: transparent;
458
+ text-align: left;
459
+ }
460
+
461
+ .drawer-link[aria-current="page"] {
462
+ color: var(--accent);
463
+ }
464
+
465
+ .drawer-index {
466
+ color: var(--muted);
467
+ font-family: var(--serif);
468
+ font-size: 13px;
469
+ }
470
+
471
+ .drawer-title {
472
+ font-family: var(--serif);
473
+ font-size: 16px;
474
+ line-height: 1.25;
475
+ }
476
+
477
+ .jump-group {
478
+ margin: 28px 0 12px;
479
+ padding-top: 18px;
480
+ border-top: 2px solid var(--rule-strong);
481
+ }
482
+
483
+ .jump-link {
484
+ display: block;
485
+ width: 100%;
486
+ padding: 7px 0 7px 12px;
487
+ border: 0;
488
+ border-left: 1px solid var(--rule);
489
+ background: transparent;
490
+ color: var(--muted);
491
+ font-family: var(--serif);
492
+ text-align: left;
493
+ }
494
+
495
+ .jump-link.level-3 {
496
+ padding-left: 28px;
497
+ font-size: 14px;
498
+ }
499
+
500
+ .article-view {
501
+ padding-bottom: 80px;
502
+ }
503
+
504
+ .article-shell {
505
+ display: grid;
506
+ grid-template-columns: 220px minmax(0, 760px);
507
+ gap: 72px;
508
+ justify-content: center;
509
+ max-width: 1160px;
510
+ margin: 0 auto;
511
+ padding: 60px 32px 0;
512
+ }
513
+
514
+ .article-rail {
515
+ position: sticky;
516
+ top: calc(var(--header-height) + 30px);
517
+ align-self: start;
518
+ max-height: calc(100vh - var(--header-height) - 60px);
519
+ overflow: auto;
520
+ }
521
+
522
+ .rail-label {
523
+ padding-bottom: 10px;
524
+ border-bottom: 1px solid var(--rule-strong);
525
+ }
526
+
527
+ .article-rail a {
528
+ display: block;
529
+ padding: 8px 0;
530
+ border-bottom: 1px solid var(--rule);
531
+ color: var(--muted);
532
+ font-family: var(--serif);
533
+ font-size: 13px;
534
+ line-height: 1.25;
535
+ text-decoration: none;
536
+ }
537
+
538
+ .article-rail a.level-3 {
539
+ padding-left: 14px;
540
+ font-size: 12px;
541
+ }
542
+
543
+ .article-rail a.active {
544
+ color: var(--accent);
545
+ }
546
+
547
+ .article-header {
548
+ padding-bottom: 38px;
549
+ border-bottom: 1px solid var(--rule-strong);
550
+ }
551
+
552
+ .breadcrumb {
553
+ margin-bottom: 48px;
554
+ padding: 0;
555
+ border: 0;
556
+ background: transparent;
557
+ color: var(--accent);
558
+ font-size: 11px;
559
+ font-weight: 800;
560
+ letter-spacing: 0.11em;
561
+ text-transform: uppercase;
562
+ }
563
+
564
+ .article-kicker {
565
+ color: var(--muted);
566
+ }
567
+
568
+ .article-header h1 {
569
+ margin: 12px 0 22px;
570
+ font-family: var(--serif);
571
+ font-size: clamp(44px, 7vw, 78px);
572
+ font-weight: 400;
573
+ line-height: 0.98;
574
+ letter-spacing: -0.055em;
575
+ }
576
+
577
+ .article-deck {
578
+ margin: 0;
579
+ color: var(--muted);
580
+ font-family: var(--serif);
581
+ font-size: 23px;
582
+ line-height: 1.38;
583
+ }
584
+
585
+ .article-meta {
586
+ display: flex;
587
+ flex-wrap: wrap;
588
+ gap: 18px;
589
+ margin-top: 28px;
590
+ color: var(--muted);
591
+ font-size: 11px;
592
+ font-weight: 700;
593
+ letter-spacing: 0.06em;
594
+ text-transform: uppercase;
595
+ }
596
+
597
+ .article-body {
598
+ padding-top: 28px;
599
+ font-family: var(--serif);
600
+ font-size: var(--reading-size);
601
+ line-height: 1.65;
602
+ }
603
+
604
+ .article-body > p:first-child {
605
+ font-size: calc(var(--reading-size) + 3px);
606
+ }
607
+
608
+ .article-body h2 {
609
+ margin: 2.7em 0 0.75em;
610
+ padding-top: 0.3em;
611
+ border-top: 1px solid var(--rule-strong);
612
+ font-size: 1.8em;
613
+ font-weight: 400;
614
+ line-height: 1.08;
615
+ letter-spacing: -0.035em;
616
+ scroll-margin-top: calc(var(--header-height) + 22px);
617
+ }
618
+
619
+ .article-body h3 {
620
+ margin: 2.1em 0 0.6em;
621
+ font-family: var(--sans);
622
+ font-size: 1.02em;
623
+ font-weight: 800;
624
+ line-height: 1.25;
625
+ scroll-margin-top: calc(var(--header-height) + 22px);
626
+ }
627
+
628
+ .article-body p {
629
+ margin: 0 0 1.2em;
630
+ }
631
+
632
+ .article-body ul,
633
+ .article-body ol {
634
+ margin: 0 0 1.35em;
635
+ padding-left: 1.35em;
636
+ }
637
+
638
+ .article-body li {
639
+ margin: 0.42em 0;
640
+ padding-left: 0.3em;
641
+ }
642
+
643
+ .article-body blockquote {
644
+ margin: 1.8em 0;
645
+ padding: 0.2em 0 0.2em 1em;
646
+ border-left: 3px solid var(--accent);
647
+ color: var(--ink);
648
+ font-size: 1.22em;
649
+ font-style: italic;
650
+ line-height: 1.45;
651
+ }
652
+
653
+ .article-body blockquote p {
654
+ margin: 0;
655
+ }
656
+
657
+ .article-body code {
658
+ padding: 0.13em 0.3em;
659
+ border-radius: 3px;
660
+ background: var(--accent-soft);
661
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
662
+ font-size: 0.78em;
663
+ }
664
+
665
+ .article-body pre {
666
+ max-width: 100%;
667
+ padding: 18px;
668
+ overflow-x: auto;
669
+ border: 1px solid var(--rule);
670
+ background: var(--paper-raised);
671
+ }
672
+
673
+ .article-body pre code {
674
+ padding: 0;
675
+ background: transparent;
676
+ }
677
+
678
+ .article-body table {
679
+ display: block;
680
+ width: 100%;
681
+ margin: 1.8em 0;
682
+ overflow-x: auto;
683
+ border-collapse: collapse;
684
+ font-family: var(--sans);
685
+ font-size: 0.72em;
686
+ line-height: 1.4;
687
+ }
688
+
689
+ .article-body th,
690
+ .article-body td {
691
+ min-width: 150px;
692
+ padding: 10px 12px;
693
+ border-bottom: 1px solid var(--rule);
694
+ text-align: left;
695
+ vertical-align: top;
696
+ }
697
+
698
+ .article-body th {
699
+ border-top: 1px solid var(--rule-strong);
700
+ border-bottom-color: var(--rule-strong);
701
+ }
702
+
703
+ .article-body hr {
704
+ margin: 3em 0;
705
+ border: 0;
706
+ border-top: 3px double var(--rule-strong);
707
+ }
708
+
709
+ .article-body strong {
710
+ font-weight: 700;
711
+ }
712
+
713
+ .article-source {
714
+ margin-top: 64px;
715
+ padding: 18px 0;
716
+ border-top: 3px double var(--rule-strong);
717
+ color: var(--muted);
718
+ font-size: 12px;
719
+ line-height: 1.5;
720
+ }
721
+
722
+ .article-source p:last-child {
723
+ overflow-wrap: anywhere;
724
+ }
725
+
726
+ .next-previous {
727
+ display: grid;
728
+ grid-template-columns: 1fr 1fr;
729
+ max-width: 980px;
730
+ margin: 80px auto 0;
731
+ border-top: 1px solid var(--rule-strong);
732
+ border-bottom: 1px solid var(--rule-strong);
733
+ }
734
+
735
+ .next-previous button {
736
+ min-height: 130px;
737
+ padding: 24px;
738
+ border: 0;
739
+ background: transparent;
740
+ font-family: var(--serif);
741
+ font-size: 22px;
742
+ text-align: left;
743
+ }
744
+
745
+ .next-previous button:last-child {
746
+ border-left: 1px solid var(--rule);
747
+ text-align: right;
748
+ }
749
+
750
+ .next-previous button:disabled {
751
+ color: var(--muted);
752
+ cursor: default;
753
+ opacity: 0.45;
754
+ }
755
+
756
+ .site-footer {
757
+ display: flex;
758
+ justify-content: space-between;
759
+ gap: 20px;
760
+ padding: 24px;
761
+ border-top: 1px solid var(--rule-strong);
762
+ color: var(--muted);
763
+ font-size: 11px;
764
+ font-weight: 700;
765
+ letter-spacing: 0.05em;
766
+ text-transform: uppercase;
767
+ }
768
+
769
+ .site-footer button {
770
+ padding: 0;
771
+ border: 0;
772
+ background: transparent;
773
+ font-weight: 800;
774
+ text-decoration: underline;
775
+ text-underline-offset: 3px;
776
+ }
777
+
778
+ .loading-screen {
779
+ position: fixed;
780
+ z-index: 140;
781
+ inset: 0;
782
+ display: grid;
783
+ place-content: center;
784
+ background: var(--paper);
785
+ text-align: center;
786
+ transition: opacity 220ms ease, visibility 220ms ease;
787
+ }
788
+
789
+ .loading-screen.loaded {
790
+ visibility: hidden;
791
+ opacity: 0;
792
+ }
793
+
794
+ .loading-mark {
795
+ display: grid;
796
+ place-items: center;
797
+ width: 64px;
798
+ height: 64px;
799
+ margin: 0 auto;
800
+ border: 1px solid var(--rule-strong);
801
+ border-radius: 50%;
802
+ font-family: var(--serif);
803
+ font-size: 34px;
804
+ font-style: italic;
805
+ }
806
+
807
+ .loading-screen p {
808
+ color: var(--muted);
809
+ font-family: var(--serif);
810
+ }
811
+
812
+ @media (max-width: 900px) {
813
+ .featured-grid {
814
+ grid-template-columns: 1fr 1fr;
815
+ margin: 0 20px;
816
+ }
817
+
818
+ .feature-card:first-child {
819
+ grid-column: 1 / -1;
820
+ min-height: auto;
821
+ border-right: 0;
822
+ border-bottom: 1px solid var(--rule);
823
+ }
824
+
825
+ .article-shell {
826
+ display: block;
827
+ max-width: 780px;
828
+ padding-top: 46px;
829
+ }
830
+
831
+ .article-rail {
832
+ display: none;
833
+ }
834
+
835
+ .content-row {
836
+ grid-template-columns: 54px minmax(0, 1fr) auto;
837
+ }
838
+
839
+ .content-row p {
840
+ display: none;
841
+ }
842
+ }
843
+
844
+ @media (max-width: 640px) {
845
+ :root {
846
+ --reading-size: 18px;
847
+ --header-height: 58px;
848
+ }
849
+
850
+ html[data-type="large"] {
851
+ --reading-size: 20px;
852
+ }
853
+
854
+ html[data-type="larger"] {
855
+ --reading-size: 22px;
856
+ }
857
+
858
+ .site-header {
859
+ grid-template-columns: 44px minmax(0, 1fr) 44px;
860
+ height: var(--header-height);
861
+ padding: 0 8px;
862
+ }
863
+
864
+ .masthead {
865
+ justify-content: center;
866
+ gap: 6px;
867
+ overflow: hidden;
868
+ }
869
+
870
+ .masthead-product {
871
+ font-size: 14px;
872
+ }
873
+
874
+ .masthead-title {
875
+ font-size: 18px;
876
+ }
877
+
878
+ .header-tools {
879
+ justify-content: flex-end;
880
+ }
881
+
882
+ #type-button {
883
+ display: none;
884
+ }
885
+
886
+ .tool-label {
887
+ display: none;
888
+ }
889
+
890
+ .text-button {
891
+ justify-content: center;
892
+ width: 42px;
893
+ padding: 8px;
894
+ font-size: 18px;
895
+ }
896
+
897
+ .issue-line {
898
+ padding: 12px 16px;
899
+ font-size: 9px;
900
+ }
901
+
902
+ .home-hero {
903
+ padding: 62px 20px 54px;
904
+ text-align: left;
905
+ }
906
+
907
+ .home-hero h1 {
908
+ margin-left: 0;
909
+ font-size: clamp(48px, 16vw, 72px);
910
+ line-height: 0.96;
911
+ }
912
+
913
+ .home-deck {
914
+ margin-left: 0;
915
+ font-size: 20px;
916
+ }
917
+
918
+ .featured-grid {
919
+ display: block;
920
+ margin: 0 16px;
921
+ }
922
+
923
+ .feature-card,
924
+ .feature-card:first-child {
925
+ min-height: 0;
926
+ padding: 22px 0;
927
+ border-right: 0;
928
+ border-bottom: 1px solid var(--rule);
929
+ }
930
+
931
+ .feature-card:last-child {
932
+ border-bottom: 0;
933
+ }
934
+
935
+ .feature-card h2,
936
+ .feature-card:not(:first-child) h2 {
937
+ font-size: 31px;
938
+ }
939
+
940
+ .contents-section {
941
+ margin-top: 58px;
942
+ padding: 0 16px;
943
+ }
944
+
945
+ .section-heading {
946
+ display: block;
947
+ }
948
+
949
+ .section-heading h2 {
950
+ margin-top: 8px;
951
+ }
952
+
953
+ .content-row {
954
+ grid-template-columns: 38px minmax(0, 1fr);
955
+ gap: 10px;
956
+ padding: 18px 0;
957
+ }
958
+
959
+ .content-number {
960
+ font-size: 20px;
961
+ }
962
+
963
+ .content-row h3 {
964
+ font-size: 21px;
965
+ }
966
+
967
+ .content-meta {
968
+ grid-column: 2;
969
+ margin-top: -2px;
970
+ }
971
+
972
+ .article-shell {
973
+ padding: 34px 18px 0;
974
+ }
975
+
976
+ .breadcrumb {
977
+ margin-bottom: 34px;
978
+ }
979
+
980
+ .article-header {
981
+ padding-bottom: 28px;
982
+ }
983
+
984
+ .article-header h1 {
985
+ font-size: clamp(43px, 13vw, 62px);
986
+ line-height: 0.99;
987
+ }
988
+
989
+ .article-deck {
990
+ font-size: 20px;
991
+ }
992
+
993
+ .article-meta {
994
+ gap: 12px;
995
+ font-size: 9px;
996
+ }
997
+
998
+ .article-body h2 {
999
+ font-size: 1.55em;
1000
+ }
1001
+
1002
+ .article-body blockquote {
1003
+ margin-left: 0;
1004
+ margin-right: 0;
1005
+ font-size: 1.1em;
1006
+ }
1007
+
1008
+ .next-previous {
1009
+ display: block;
1010
+ margin-top: 56px;
1011
+ }
1012
+
1013
+ .next-previous button {
1014
+ width: 100%;
1015
+ min-height: 96px;
1016
+ padding: 18px;
1017
+ font-size: 19px;
1018
+ }
1019
+
1020
+ .next-previous button:last-child {
1021
+ border-top: 1px solid var(--rule);
1022
+ border-left: 0;
1023
+ text-align: left;
1024
+ }
1025
+
1026
+ .site-footer {
1027
+ flex-wrap: wrap;
1028
+ padding: 20px 16px;
1029
+ }
1030
+ }
1031
+
1032
+ @media print {
1033
+ .site-header,
1034
+ .reading-progress,
1035
+ .navigation-drawer,
1036
+ .drawer-backdrop,
1037
+ .article-rail,
1038
+ .next-previous,
1039
+ .site-footer {
1040
+ display: none !important;
1041
+ }
1042
+
1043
+ .article-shell {
1044
+ display: block;
1045
+ max-width: none;
1046
+ padding: 0;
1047
+ }
1048
+
1049
+ .article-body {
1050
+ font-size: 12pt;
1051
+ }
1052
+ }