@lincyaw/web 1.0.0-rc.0 → 1.0.0-rc.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 (58) hide show
  1. package/README.md +33 -4
  2. package/package.json +20 -19
  3. package/src/app/base.css +117 -0
  4. package/src/app/block-playback.ts +81 -0
  5. package/src/app/block-report.ts +104 -0
  6. package/src/app/document-modules.ts +30 -0
  7. package/src/app/env.d.ts +12 -0
  8. package/src/app/main.ts +198 -0
  9. package/src/app/page-app.ts +166 -0
  10. package/src/app/router.ts +109 -0
  11. package/src/app/server.ts +32 -0
  12. package/src/app/site/home.tsx +117 -0
  13. package/src/app/site/layout.tsx +92 -0
  14. package/src/app/site/search.tsx +22 -0
  15. package/src/app/site.css +1450 -0
  16. package/src/client/document.css +172 -0
  17. package/src/client/host.ts +22 -94
  18. package/src/client/preview-frame.ts +152 -0
  19. package/src/client/runtime.ts +159 -0
  20. package/src/domain/app-config.ts +91 -0
  21. package/src/domain/config.ts +17 -9
  22. package/src/domain/dev-updates.ts +12 -0
  23. package/src/domain/index.ts +17 -7
  24. package/src/domain/landing.ts +83 -0
  25. package/src/domain/links.ts +23 -18
  26. package/src/domain/messages.ts +74 -63
  27. package/src/domain/pages.ts +23 -41
  28. package/src/domain/themes.ts +59 -0
  29. package/src/domain/workspace-home.ts +12 -0
  30. package/src/node/client-modules.ts +92 -0
  31. package/src/node/document-bundle.ts +227 -0
  32. package/src/node/landing-template.ts +34 -0
  33. package/src/node/landing.ts +82 -0
  34. package/src/node/offline.ts +34 -11
  35. package/src/node/publish.ts +83 -15
  36. package/src/node/renderer.ts +78 -117
  37. package/src/node/site-assets.ts +17 -0
  38. package/src/node/site-build.ts +304 -0
  39. package/src/node/site-files.ts +87 -0
  40. package/src/node/site-model.ts +337 -0
  41. package/src/node/site-page.ts +82 -0
  42. package/src/node/site-server.ts +822 -0
  43. package/src/node/slides.ts +135 -0
  44. package/src/node/viewer-app.ts +504 -0
  45. package/src/node/viewer-build.ts +38 -0
  46. package/custom-nav-controls.vue +0 -17
  47. package/src/client/env.d.ts +0 -1
  48. package/src/client/home.ts +0 -182
  49. package/src/client/index.ts +0 -4
  50. package/src/client/page.ts +0 -38
  51. package/src/client/preview.ts +0 -71
  52. package/src/client/style.css +0 -427
  53. package/src/client/theme.ts +0 -322
  54. package/src/node/addons.ts +0 -76
  55. package/src/node/site.ts +0 -349
  56. package/src/node/sites.ts +0 -531
  57. package/src/node/vite.ts +0 -166
  58. package/src/node/vitepress.ts +0 -72
@@ -0,0 +1,1450 @@
1
+ @import '../client/document.css';
2
+
3
+ /*
4
+ * The web form's pages: a document's site (header, chapters, page, sections, pager, footer), the workspace's home page,
5
+ * a missing page, and a document alone on the workbench's canvas. Every value comes from the design tokens.
6
+ */
7
+
8
+ .pm-site {
9
+ /* What sticks to the top of the page stays below the header. */
10
+ --pm-sticky-top: var(--pm-site-header-height);
11
+ min-height: 100vh;
12
+ background: var(--pm-color-bg);
13
+ color: var(--pm-color-ink);
14
+ }
15
+
16
+ .pm-site .pm-ui-icon {
17
+ width: var(--pm-size-icon);
18
+ height: var(--pm-size-icon);
19
+ }
20
+
21
+ .pm-site__skip {
22
+ position: absolute;
23
+ top: var(--pm-space-2);
24
+ left: var(--pm-space-2);
25
+ z-index: calc(var(--pm-z-site-header) + 1);
26
+ padding: var(--pm-space-2) var(--pm-space-3);
27
+ border-radius: var(--pm-radius-control);
28
+ background: var(--pm-color-surface);
29
+ color: var(--pm-color-accent);
30
+ font-weight: 600;
31
+ box-shadow: var(--pm-shadow-float);
32
+ translate: 0 calc(-1 * var(--pm-site-header-height) - var(--pm-space-4));
33
+ }
34
+
35
+ .pm-site__skip:focus-visible {
36
+ translate: 0;
37
+ }
38
+
39
+ /* The header. */
40
+
41
+ .pm-site-header {
42
+ position: sticky;
43
+ top: 0;
44
+ z-index: var(--pm-z-site-header);
45
+ display: flex;
46
+ align-items: center;
47
+ gap: var(--pm-space-4);
48
+ height: var(--pm-site-header-height);
49
+ padding: 0 var(--pm-space-6);
50
+ border-bottom: var(--pm-size-hairline) solid var(--pm-color-line);
51
+ background: var(--pm-color-bg);
52
+ font-family: var(--pm-font-sans);
53
+ }
54
+
55
+ /* The showcase theme shares a product homepage's surface: a cool background, a translucent header and a wordmark. */
56
+ .pm-site[data-pm-site-theme='showcase'] {
57
+ background: var(--pm-color-product-bg);
58
+ }
59
+
60
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-header,
61
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-localnav {
62
+ border-bottom-color: color-mix(in srgb, var(--pm-color-line) 70%, transparent);
63
+ background: color-mix(in srgb, var(--pm-color-surface) 68%, transparent);
64
+ backdrop-filter: blur(var(--pm-product-glass-blur));
65
+ }
66
+
67
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-header__title {
68
+ font-family: var(--pm-font-sans);
69
+ font-size: var(--pm-text-title);
70
+ font-weight: var(--pm-weight-semibold);
71
+ }
72
+
73
+ .pm-site-header__start {
74
+ display: flex;
75
+ flex: 1 1 auto;
76
+ align-items: center;
77
+ gap: var(--pm-space-2);
78
+ min-width: 0;
79
+ }
80
+
81
+ .pm-site-header .pm-site-header__menu {
82
+ display: none;
83
+ }
84
+
85
+ .pm-site-header__title {
86
+ display: inline-flex;
87
+ align-items: center;
88
+ gap: var(--pm-space-2);
89
+ min-width: 0;
90
+ overflow: hidden;
91
+ color: var(--pm-color-ink);
92
+ font-family: var(--pm-site-reading-font);
93
+ font-size: var(--pm-text-lg);
94
+ font-weight: 600;
95
+ text-overflow: ellipsis;
96
+ white-space: nowrap;
97
+ }
98
+
99
+ .pm-site-header__title > span {
100
+ min-width: 0;
101
+ overflow: hidden;
102
+ text-overflow: ellipsis;
103
+ }
104
+
105
+ .pm-site-header__logo {
106
+ flex: none;
107
+ width: var(--pm-size-avatar);
108
+ height: var(--pm-size-avatar);
109
+ object-fit: contain;
110
+ }
111
+
112
+ .pm-site-header__nav {
113
+ flex: none;
114
+ }
115
+
116
+ .pm-site-header__tools {
117
+ display: flex;
118
+ flex: none;
119
+ align-items: center;
120
+ gap: var(--pm-space-2);
121
+ }
122
+
123
+ .pm-site-nav,
124
+ .pm-site-nav__items {
125
+ margin: 0;
126
+ padding: 0;
127
+ list-style: none;
128
+ }
129
+
130
+ .pm-site-nav {
131
+ display: flex;
132
+ align-items: center;
133
+ gap: var(--pm-space-1);
134
+ }
135
+
136
+ .pm-site-nav__items {
137
+ display: grid;
138
+ gap: var(--pm-space-px);
139
+ min-width: 10rem;
140
+ }
141
+
142
+ .pm-site-nav__link {
143
+ display: inline-flex;
144
+ align-items: center;
145
+ gap: var(--pm-space-1);
146
+ padding: var(--pm-space-1) var(--pm-space-2);
147
+ border: 0;
148
+ border-radius: var(--pm-radius-control);
149
+ background: none;
150
+ color: var(--pm-color-ink);
151
+ font: inherit;
152
+ font-size: var(--pm-text-md);
153
+ font-weight: 500;
154
+ cursor: pointer;
155
+ }
156
+
157
+ .pm-site-nav__link:hover {
158
+ background: var(--pm-color-hover);
159
+ color: var(--pm-color-accent);
160
+ }
161
+
162
+ .pm-site-nav__link .pm-ui-icon {
163
+ width: var(--pm-size-icon-sm);
164
+ height: var(--pm-size-icon-sm);
165
+ }
166
+
167
+ .pm-site-nav--vertical {
168
+ flex-direction: column;
169
+ align-items: stretch;
170
+ margin-bottom: var(--pm-space-4);
171
+ padding-bottom: var(--pm-space-4);
172
+ border-bottom: var(--pm-size-hairline) solid var(--pm-color-line);
173
+ }
174
+
175
+ .pm-site-nav__heading {
176
+ margin: var(--pm-space-2) 0 var(--pm-space-1);
177
+ padding: 0 var(--pm-space-2);
178
+ color: var(--pm-color-muted);
179
+ font-size: var(--pm-text-xs);
180
+ font-weight: 600;
181
+ letter-spacing: var(--pm-tracking-label);
182
+ }
183
+
184
+ .pm-site-search-button {
185
+ min-width: 11rem;
186
+ cursor: pointer;
187
+ }
188
+
189
+ .pm-site-search-button__text {
190
+ flex: 1;
191
+ color: var(--pm-color-muted);
192
+ text-align: start;
193
+ }
194
+
195
+ .pm-site-languages {
196
+ display: grid;
197
+ gap: var(--pm-space-px);
198
+ margin: 0;
199
+ padding: 0;
200
+ list-style: none;
201
+ }
202
+
203
+ .pm-site-languages__link {
204
+ display: block;
205
+ padding: var(--pm-space-1) var(--pm-space-3);
206
+ border-radius: var(--pm-radius-small);
207
+ color: var(--pm-color-ink);
208
+ font-size: var(--pm-text-md);
209
+ }
210
+
211
+ .pm-site-languages__link:hover {
212
+ background: var(--pm-color-hover);
213
+ }
214
+
215
+ .pm-site-languages__link[aria-current] {
216
+ color: var(--pm-color-accent);
217
+ font-weight: 600;
218
+ }
219
+
220
+ .pm-site-link {
221
+ display: inline-flex;
222
+ align-items: center;
223
+ gap: var(--pm-space-1);
224
+ padding: var(--pm-space-1) var(--pm-space-3);
225
+ border: var(--pm-size-hairline) solid var(--pm-color-line);
226
+ border-radius: var(--pm-radius-control);
227
+ color: var(--pm-color-ink);
228
+ font-size: var(--pm-text-sm);
229
+ font-weight: 500;
230
+ white-space: nowrap;
231
+ }
232
+
233
+ .pm-site-link:hover {
234
+ border-color: var(--pm-color-accent);
235
+ color: var(--pm-color-accent);
236
+ }
237
+
238
+ /* On a phone: the chapters and the page's sections, a bar below the header. */
239
+
240
+ .pm-site-localnav {
241
+ display: none;
242
+ }
243
+
244
+ .pm-site-localnav__button {
245
+ display: inline-flex;
246
+ align-items: center;
247
+ gap: var(--pm-space-1);
248
+ padding: var(--pm-space-1) var(--pm-space-2);
249
+ border: 0;
250
+ border-radius: var(--pm-radius-control);
251
+ background: none;
252
+ color: var(--pm-color-ink);
253
+ font: inherit;
254
+ font-size: var(--pm-text-sm);
255
+ cursor: pointer;
256
+ }
257
+
258
+ .pm-site-localnav__button:hover {
259
+ background: var(--pm-color-hover);
260
+ }
261
+
262
+ .pm-site-outline-menu__panel .pm-site-outline__items {
263
+ border-left: 0;
264
+ }
265
+
266
+ /* The columns: the chapters, the page, the page's sections. */
267
+
268
+ .pm-site__body {
269
+ display: grid;
270
+ grid-template-columns: var(--pm-site-sidebar-width) minmax(0, 1fr) var(--pm-site-outline-width);
271
+ max-width: calc(var(--pm-site-sidebar-width) + var(--pm-site-reading-width) + var(--pm-site-outline-width) + 2 * var(--pm-space-12));
272
+ margin: 0 auto;
273
+ }
274
+
275
+ .pm-site__sidebar,
276
+ .pm-site__aside {
277
+ position: sticky;
278
+ top: var(--pm-site-header-height);
279
+ align-self: start;
280
+ max-height: calc(100vh - var(--pm-site-header-height));
281
+ overflow-y: auto;
282
+ padding: var(--pm-space-6) var(--pm-space-4);
283
+ font-family: var(--pm-font-sans);
284
+ }
285
+
286
+ .pm-site__sidebar {
287
+ border-right: var(--pm-size-hairline) solid var(--pm-color-line);
288
+ }
289
+
290
+ .pm-site__main {
291
+ min-width: 0;
292
+ padding: var(--pm-space-8) var(--pm-space-8) var(--pm-space-12);
293
+ outline: none;
294
+ }
295
+
296
+ .pm-site__article {
297
+ max-width: var(--pm-site-reading-width);
298
+ margin: 0 auto;
299
+ }
300
+
301
+ .pm-site-sidebar__chapters,
302
+ .pm-site-sidebar__sections,
303
+ .pm-site-outline__items {
304
+ margin: 0;
305
+ padding: 0;
306
+ list-style: none;
307
+ }
308
+
309
+ .pm-site-sidebar__chapters {
310
+ display: grid;
311
+ gap: var(--pm-space-1);
312
+ }
313
+
314
+ .pm-site-sidebar__link,
315
+ .pm-site-sidebar__section {
316
+ display: block;
317
+ padding: var(--pm-space-1) var(--pm-space-2);
318
+ border-radius: var(--pm-radius-control);
319
+ line-height: var(--pm-leading-tight);
320
+ }
321
+
322
+ .pm-site-sidebar__link {
323
+ color: var(--pm-color-ink);
324
+ font-size: var(--pm-text-md);
325
+ font-weight: 600;
326
+ overflow-wrap: anywhere;
327
+ }
328
+
329
+ .pm-site-sidebar__link:hover,
330
+ .pm-site-sidebar__section:hover {
331
+ background: var(--pm-color-hover);
332
+ }
333
+
334
+ .pm-site-sidebar__link[aria-current='page'] {
335
+ background: var(--pm-color-accent-soft);
336
+ color: var(--pm-color-accent);
337
+ }
338
+
339
+ .pm-site-sidebar__sections {
340
+ margin: var(--pm-space-1) 0 var(--pm-space-2) var(--pm-space-3);
341
+ padding-left: var(--pm-space-2);
342
+ border-left: var(--pm-size-hairline) solid var(--pm-color-line);
343
+ }
344
+
345
+ .pm-site-sidebar__section {
346
+ color: var(--pm-color-muted);
347
+ font-size: var(--pm-text-sm);
348
+ }
349
+
350
+ .pm-site-sidebar__section:hover {
351
+ color: var(--pm-color-ink);
352
+ }
353
+
354
+ .pm-site-sidebar__section[aria-current] {
355
+ color: var(--pm-color-accent);
356
+ }
357
+
358
+ /* The site's documents, in groups by their first tag. */
359
+ .pm-site-sidebar__group + .pm-site-sidebar__group {
360
+ margin-top: var(--pm-space-5);
361
+ }
362
+
363
+ .pm-site-sidebar__heading {
364
+ margin: 0 0 var(--pm-space-2);
365
+ padding-inline: var(--pm-space-2);
366
+ color: var(--pm-color-muted);
367
+ font-size: var(--pm-text-xs);
368
+ font-weight: var(--pm-weight-semibold);
369
+ letter-spacing: var(--pm-tracking-label);
370
+ }
371
+
372
+ /* A section's permalink: a mark beside its title, shown when the title is pointed at or the link focused. */
373
+ .pm-site .pm-section__title {
374
+ position: relative;
375
+ }
376
+
377
+ .pm-site .header-anchor {
378
+ position: absolute;
379
+ left: 0;
380
+ padding-right: 0.3em;
381
+ transform: translateX(-100%);
382
+ color: var(--pm-color-accent);
383
+ font-weight: var(--pm-weight-medium);
384
+ text-decoration: none;
385
+ opacity: 0;
386
+ transition: opacity var(--pm-duration) var(--pm-ease);
387
+ }
388
+
389
+ .pm-site .header-anchor::before {
390
+ content: '#';
391
+ }
392
+
393
+ .pm-site .pm-section__title:hover .header-anchor,
394
+ .pm-site .header-anchor:focus-visible {
395
+ opacity: 1;
396
+ }
397
+
398
+ .pm-site-outline__title {
399
+ margin: 0 0 var(--pm-space-2);
400
+ color: var(--pm-color-ink);
401
+ font-size: var(--pm-text-sm);
402
+ font-weight: 600;
403
+ }
404
+
405
+ .pm-site-outline__items {
406
+ border-left: var(--pm-size-hairline) solid var(--pm-color-line);
407
+ }
408
+
409
+ .pm-site-outline__link {
410
+ display: block;
411
+ margin-left: calc(-1 * var(--pm-size-hairline));
412
+ padding: var(--pm-space-1) var(--pm-space-3);
413
+ border-left: var(--pm-size-stroke) solid transparent;
414
+ color: var(--pm-color-muted);
415
+ font-size: var(--pm-text-sm);
416
+ line-height: var(--pm-leading-tight);
417
+ }
418
+
419
+ .pm-site-outline__link--nested {
420
+ padding-left: calc(2 * var(--pm-space-3));
421
+ }
422
+
423
+ .pm-site-outline__link:hover {
424
+ color: var(--pm-color-ink);
425
+ }
426
+
427
+ .pm-site-outline__link[aria-current] {
428
+ border-left-color: var(--pm-color-accent);
429
+ color: var(--pm-color-accent);
430
+ }
431
+
432
+ /* The pager and the footer below the page. */
433
+
434
+ .pm-site-pager {
435
+ display: grid;
436
+ grid-template-columns: 1fr 1fr;
437
+ gap: var(--pm-space-4);
438
+ max-width: var(--pm-site-reading-width);
439
+ margin: var(--pm-space-10) auto 0;
440
+ padding-top: var(--pm-space-6);
441
+ border-top: var(--pm-size-hairline) solid var(--pm-color-line);
442
+ font-family: var(--pm-font-sans);
443
+ }
444
+
445
+ .pm-site-pager__link {
446
+ display: grid;
447
+ gap: var(--pm-space-1);
448
+ padding: var(--pm-space-3) var(--pm-space-4);
449
+ border: var(--pm-size-hairline) solid var(--pm-color-line);
450
+ border-radius: var(--pm-radius-card);
451
+ }
452
+
453
+ .pm-site-pager__link:hover {
454
+ border-color: var(--pm-color-accent);
455
+ }
456
+
457
+ .pm-site-pager__link--next {
458
+ text-align: end;
459
+ }
460
+
461
+ .pm-site-pager__label {
462
+ color: var(--pm-color-muted);
463
+ font-size: var(--pm-text-xs);
464
+ }
465
+
466
+ .pm-site-pager__title {
467
+ color: var(--pm-color-accent);
468
+ font-size: var(--pm-text-md);
469
+ font-weight: 600;
470
+ }
471
+
472
+ .pm-site-footer {
473
+ box-sizing: border-box;
474
+ width: 100%;
475
+ max-width: var(--pm-site-reading-width);
476
+ margin: var(--pm-space-8) auto 0;
477
+ padding-top: var(--pm-space-6);
478
+ border-top: var(--pm-size-hairline) solid var(--pm-color-line);
479
+ color: var(--pm-color-muted);
480
+ font-family: var(--pm-font-sans);
481
+ font-size: var(--pm-text-sm);
482
+ line-height: var(--pm-leading-ui);
483
+ text-align: center;
484
+ }
485
+
486
+ .pm-site-footer p {
487
+ margin: 0;
488
+ }
489
+
490
+ .pm-site-footer a {
491
+ text-decoration: underline;
492
+ text-underline-offset: var(--pm-space-px);
493
+ }
494
+
495
+ .pm-site-footer a:hover {
496
+ color: var(--pm-color-ink);
497
+ }
498
+
499
+ /* The drawer that holds the chapters and the tools on a phone. */
500
+
501
+ .pm-site-menu__panel .pm-site-sidebar {
502
+ font-family: var(--pm-font-sans);
503
+ }
504
+
505
+ .pm-site-menu__tools {
506
+ display: flex;
507
+ flex-wrap: wrap;
508
+ align-items: center;
509
+ gap: var(--pm-space-2);
510
+ margin-top: var(--pm-space-4);
511
+ padding-top: var(--pm-space-4);
512
+ border-top: var(--pm-size-hairline) solid var(--pm-color-line);
513
+ }
514
+
515
+ /* The search. */
516
+
517
+ .pm-site-search__panel {
518
+ width: min(100vw - 2 * var(--pm-space-4), 40rem);
519
+ }
520
+
521
+ .pm-site-search__field {
522
+ width: 100%;
523
+ }
524
+
525
+ .pm-site-search__input {
526
+ flex: 1;
527
+ min-width: 0;
528
+ border: 0;
529
+ background: none;
530
+ color: inherit;
531
+ font: inherit;
532
+ outline: none;
533
+ }
534
+
535
+ .pm-site-search__results {
536
+ display: grid;
537
+ gap: var(--pm-space-1);
538
+ max-height: min(60vh, 32rem);
539
+ margin: var(--pm-space-3) 0 0;
540
+ padding: 0;
541
+ overflow-y: auto;
542
+ list-style: none;
543
+ }
544
+
545
+ .pm-site-search__link {
546
+ display: grid;
547
+ gap: var(--pm-space-px);
548
+ padding: var(--pm-space-2) var(--pm-space-3);
549
+ border-radius: var(--pm-radius-control);
550
+ color: var(--pm-color-ink);
551
+ }
552
+
553
+ .pm-site-search__result[aria-selected='true'] .pm-site-search__link {
554
+ background: var(--pm-color-accent-soft);
555
+ }
556
+
557
+ .pm-site-search__path {
558
+ color: var(--pm-color-muted);
559
+ font-size: var(--pm-text-xs);
560
+ }
561
+
562
+ .pm-site-search__title {
563
+ font-weight: 600;
564
+ }
565
+
566
+ .pm-site-search__empty {
567
+ margin: var(--pm-space-4) 0;
568
+ color: var(--pm-color-muted);
569
+ text-align: center;
570
+ }
571
+
572
+ .pm-site-search__keys {
573
+ display: flex;
574
+ flex-wrap: wrap;
575
+ gap: var(--pm-space-4);
576
+ margin: var(--pm-space-3) 0 0;
577
+ color: var(--pm-color-muted);
578
+ font-size: var(--pm-text-xs);
579
+ }
580
+
581
+ /* The document's typography on its site and on the canvas: Presmium's, over the reading styles of `.pm-document`. */
582
+
583
+ .pm-document .pm-block--markdown,
584
+ .pm-document .pm-section__title,
585
+ .pm-document .pm-section :is(h1, h2, h3, h4) {
586
+ font-family: var(--pm-site-reading-font);
587
+ }
588
+
589
+ .pm-document .pm-block--markdown {
590
+ font-size: var(--pm-text-reading);
591
+ line-height: var(--pm-leading-reading);
592
+ }
593
+
594
+ .pm-document .pm-block--markdown :is(code, pre, kbd) {
595
+ font-family: var(--pm-font-mono);
596
+ }
597
+
598
+ .pm-document .pm-section :is(h1, h2, h3, h4) {
599
+ font-weight: 600;
600
+ letter-spacing: normal;
601
+ line-height: var(--pm-leading-tight);
602
+ }
603
+
604
+ .pm-document a {
605
+ text-underline-offset: var(--pm-space-px);
606
+ }
607
+
608
+ .pm-document .pm-section h1 {
609
+ font-size: var(--pm-text-display);
610
+ }
611
+
612
+ .pm-document .pm-section h2 {
613
+ font-size: 1.5rem;
614
+ }
615
+
616
+ .pm-document .pm-section h3 {
617
+ font-size: 1.25rem;
618
+ }
619
+
620
+ .pm-document .pm-section :is(h4, h5, h6) {
621
+ font-size: 1.0625rem;
622
+ }
623
+
624
+ .pm-document :is(strong, b, th),
625
+ .pm-present :is(strong, b),
626
+ .pm-presenter :is(strong, b) {
627
+ font-synthesis: weight style;
628
+ }
629
+
630
+ .pm-section {
631
+ scroll-margin-top: calc(var(--pm-site-header-height) + var(--pm-space-4));
632
+ }
633
+
634
+ .pm-document .pm-section__title {
635
+ margin-top: 0;
636
+ padding-top: 0;
637
+ border-top: none;
638
+ }
639
+
640
+ .pm-site__article .pm-section + .pm-section {
641
+ padding-top: var(--pm-space-6);
642
+ border-top: var(--pm-size-hairline) solid var(--pm-color-line);
643
+ }
644
+
645
+ .pm-document .pm-block div[class*='language-'] {
646
+ margin-left: 0;
647
+ margin-right: 0;
648
+ }
649
+
650
+ .pm-view-menu:focus-visible,
651
+ .pm-site :is(a, button, input, select):focus-visible,
652
+ .pm-block :is(button, input, select, textarea, summary, [tabindex]):focus-visible,
653
+ .pm-present :is(button, input, select, textarea, summary):focus-visible,
654
+ .pm-presenter :is(button, input, select, textarea, summary):focus-visible,
655
+ .pm-toolbar :is(button, input, select, textarea, a):focus-visible {
656
+ outline: var(--pm-size-stroke) solid var(--pm-color-accent);
657
+ outline-offset: var(--pm-space-px);
658
+ }
659
+
660
+ /* The link from a section to the same place in the slides. */
661
+
662
+ .pm-document .pm-open-slides {
663
+ display: inline-flex;
664
+ gap: 0.25em;
665
+ align-items: center;
666
+ margin-left: 0.5em;
667
+ padding: 0 0.5em;
668
+ border: var(--pm-size-hairline) solid var(--pm-color-line);
669
+ border-radius: var(--pm-radius-pill);
670
+ color: var(--pm-color-muted);
671
+ font-family: var(--pm-font-sans);
672
+ font-size: var(--pm-text-sm);
673
+ font-weight: 500;
674
+ letter-spacing: normal;
675
+ line-height: 1.75;
676
+ text-decoration: none;
677
+ vertical-align: middle;
678
+ white-space: nowrap;
679
+ }
680
+
681
+ .pm-document .pm-open-slides .pm-ui-icon {
682
+ width: 1em;
683
+ height: 1em;
684
+ }
685
+
686
+ .pm-document .pm-open-slides::after {
687
+ content: attr(data-label);
688
+ }
689
+
690
+ .pm-document .pm-open-slides:hover {
691
+ border-color: var(--pm-color-accent);
692
+ color: var(--pm-color-accent);
693
+ }
694
+
695
+ /* The view menu. */
696
+
697
+ .pm-view-menu {
698
+ padding: var(--pm-space-1) var(--pm-space-2);
699
+ border: var(--pm-size-hairline) solid var(--pm-color-line-strong);
700
+ border-radius: var(--pm-radius-control);
701
+ background: var(--pm-color-surface);
702
+ color: var(--pm-color-ink);
703
+ font-family: var(--pm-font-sans);
704
+ font-size: var(--pm-text-sm);
705
+ cursor: pointer;
706
+ }
707
+
708
+ /* Where the browser lets a select's list be styled, the view menu's list is drawn as the design system's menu. */
709
+ @supports (appearance: base-select) {
710
+ .pm-view-menu,
711
+ .pm-view-menu::picker(select) {
712
+ appearance: base-select;
713
+ }
714
+
715
+ .pm-view-menu {
716
+ display: inline-flex;
717
+ align-items: center;
718
+ gap: var(--pm-space-1);
719
+ }
720
+
721
+ .pm-view-menu:hover {
722
+ background: var(--pm-color-sunk);
723
+ }
724
+
725
+ .pm-view-menu::picker-icon {
726
+ content: '';
727
+ width: var(--pm-size-icon-sm);
728
+ height: var(--pm-size-icon-sm);
729
+ background: currentColor;
730
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
731
+ transition: rotate var(--pm-duration-fast);
732
+ }
733
+
734
+ .pm-view-menu:open::picker-icon {
735
+ rotate: 180deg;
736
+ }
737
+
738
+ .pm-view-menu::picker(select) {
739
+ margin-block: var(--pm-space-1);
740
+ padding: var(--pm-space-1);
741
+ border: var(--pm-size-hairline) solid var(--pm-color-line);
742
+ border-radius: var(--pm-radius-control);
743
+ background: var(--pm-color-surface);
744
+ color: var(--pm-color-ink);
745
+ box-shadow: var(--pm-shadow-float);
746
+ }
747
+
748
+ .pm-view-menu option {
749
+ gap: var(--pm-space-2);
750
+ padding: var(--pm-space-1) var(--pm-space-3);
751
+ border-radius: var(--pm-radius-small);
752
+ font-family: var(--pm-font-sans);
753
+ font-size: var(--pm-text-sm);
754
+ cursor: pointer;
755
+ }
756
+
757
+ .pm-view-menu option:hover,
758
+ .pm-view-menu option:focus-visible {
759
+ background: var(--pm-color-sunk);
760
+ outline: none;
761
+ }
762
+
763
+ .pm-view-menu option:checked {
764
+ color: var(--pm-color-accent);
765
+ font-weight: 600;
766
+ }
767
+ }
768
+
769
+ .pm-toolbar--screen {
770
+ flex-wrap: wrap;
771
+ }
772
+
773
+ .pm-present,
774
+ .pm-presenter {
775
+ z-index: var(--pm-z-overlay-view);
776
+ }
777
+
778
+ html.pm-presenting {
779
+ --pm-cue-z: calc(var(--pm-z-overlay-view) + 1);
780
+ }
781
+
782
+ /* The workspace's home page. */
783
+
784
+ .pm-site-home {
785
+ display: flex;
786
+ flex-direction: column;
787
+ gap: var(--pm-space-8);
788
+ max-width: var(--pm-site-wide-width);
789
+ margin: 0 auto;
790
+ padding: var(--pm-space-8) var(--pm-space-6) var(--pm-space-10);
791
+ outline: none;
792
+ }
793
+
794
+ .pm-site-home__title {
795
+ margin: 0;
796
+ font-family: var(--pm-site-reading-font);
797
+ font-size: var(--pm-text-display);
798
+ font-weight: 600;
799
+ line-height: var(--pm-leading-tight);
800
+ }
801
+
802
+ .pm-site-home__section {
803
+ display: grid;
804
+ gap: var(--pm-space-4);
805
+ }
806
+
807
+ .pm-site-home__hero,
808
+ .pm-site-home__card-content {
809
+ display: grid;
810
+ gap: var(--pm-space-3);
811
+ min-width: 0;
812
+ }
813
+
814
+ .pm-site-home__hero {
815
+ max-width: var(--pm-site-hero-width);
816
+ }
817
+
818
+ .pm-site-home__intro {
819
+ max-width: var(--pm-site-reading-width);
820
+ margin: 0;
821
+ color: var(--pm-color-muted);
822
+ font-family: var(--pm-site-reading-font);
823
+ font-size: var(--pm-text-reading);
824
+ line-height: var(--pm-leading-reading);
825
+ overflow-wrap: anywhere;
826
+ }
827
+
828
+ .pm-site-home__actions {
829
+ display: flex;
830
+ flex-wrap: wrap;
831
+ gap: var(--pm-space-3);
832
+ margin-top: var(--pm-space-3);
833
+ }
834
+
835
+ .pm-site-home__filters {
836
+ display: flex;
837
+ flex-wrap: wrap;
838
+ align-items: center;
839
+ gap: var(--pm-space-3);
840
+ }
841
+
842
+ .pm-site-home__filters > .pm-ui-heading {
843
+ margin-right: auto;
844
+ }
845
+
846
+ .pm-site-home__search-box {
847
+ flex: 1 1 15rem;
848
+ max-width: 24rem;
849
+ }
850
+
851
+ .pm-site-home__search {
852
+ flex: 1;
853
+ min-width: 0;
854
+ border: 0;
855
+ background: none;
856
+ color: inherit;
857
+ font: inherit;
858
+ outline: none;
859
+ }
860
+
861
+ .pm-site-home__tags {
862
+ flex-wrap: wrap;
863
+ }
864
+
865
+ .pm-site-home__documents {
866
+ display: grid;
867
+ grid-template-columns: repeat(auto-fill, minmax(min(var(--pm-site-card-min-width), 100%), 1fr));
868
+ gap: var(--pm-space-4);
869
+ margin: 0;
870
+ padding: 0;
871
+ list-style: none;
872
+ }
873
+
874
+ .pm-site-home__document {
875
+ position: relative;
876
+ gap: var(--pm-space-3);
877
+ margin: 0;
878
+ }
879
+
880
+ .pm-site-home__link {
881
+ color: var(--pm-color-ink);
882
+ font-family: var(--pm-site-reading-font);
883
+ font-size: var(--pm-text-title);
884
+ font-weight: 600;
885
+ line-height: var(--pm-leading-tight);
886
+ text-decoration: none;
887
+ overflow-wrap: anywhere;
888
+ }
889
+
890
+ .pm-site-home__link::after {
891
+ content: '';
892
+ position: absolute;
893
+ inset: 0;
894
+ border-radius: inherit;
895
+ }
896
+
897
+ .pm-site-home__link:hover {
898
+ color: var(--pm-color-accent);
899
+ }
900
+
901
+ .pm-site-home__link:focus-visible {
902
+ outline: none;
903
+ }
904
+
905
+ .pm-site-home__document:focus-within {
906
+ outline: var(--pm-size-stroke) solid var(--pm-color-accent);
907
+ outline-offset: var(--pm-space-px);
908
+ }
909
+
910
+ .pm-site-home__description {
911
+ margin: 0;
912
+ color: var(--pm-color-muted);
913
+ overflow-wrap: anywhere;
914
+ }
915
+
916
+ /* Presets change the content's composition; shared cards, badges and buttons retain their public styling. */
917
+
918
+ .pm-site[data-pm-site-theme='course'] .pm-site-home__hero,
919
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__hero {
920
+ padding-block: var(--pm-space-8);
921
+ }
922
+
923
+ .pm-site[data-pm-site-theme='course'] .pm-site-home__documents {
924
+ grid-template-columns: minmax(0, 1fr);
925
+ }
926
+
927
+ .pm-site[data-pm-site-theme='course'] .pm-site-home__document {
928
+ display: grid;
929
+ grid-template-columns: var(--pm-size-row) minmax(0, 1fr);
930
+ align-items: start;
931
+ }
932
+
933
+ .pm-site-home__order {
934
+ display: flex;
935
+ justify-content: center;
936
+ }
937
+
938
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__title {
939
+ font-size: var(--pm-site-hero-title);
940
+ }
941
+
942
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__documents {
943
+ grid-template-columns: repeat(2, minmax(0, 1fr));
944
+ }
945
+
946
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__document {
947
+ min-height: var(--pm-site-showcase-card-height);
948
+ justify-content: center;
949
+ }
950
+
951
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__document:first-child {
952
+ grid-column: 1 / -1;
953
+ }
954
+
955
+ .pm-site-sidebar__intro {
956
+ display: grid;
957
+ gap: var(--pm-space-2);
958
+ margin-bottom: var(--pm-space-6);
959
+ padding-inline: var(--pm-space-2);
960
+ }
961
+
962
+ .pm-site-sidebar__title {
963
+ margin: 0;
964
+ font-family: var(--pm-site-reading-font);
965
+ font-size: var(--pm-text-title);
966
+ font-weight: var(--pm-weight-semibold);
967
+ line-height: var(--pm-leading-tight);
968
+ overflow-wrap: anywhere;
969
+ }
970
+
971
+ .pm-site[data-pm-site-theme='course'] .pm-site-sidebar__link {
972
+ display: flex;
973
+ align-items: baseline;
974
+ gap: var(--pm-space-2);
975
+ }
976
+
977
+ .pm-site-sidebar__number {
978
+ flex: none;
979
+ color: var(--pm-color-muted);
980
+ font-family: var(--pm-font-mono);
981
+ font-size: var(--pm-text-xs);
982
+ }
983
+
984
+ .pm-site[data-pm-site-layout='wide'] .pm-site__body {
985
+ grid-template-columns: var(--pm-site-sidebar-width) minmax(0, 1fr);
986
+ max-width: calc(var(--pm-site-sidebar-width) + var(--pm-site-wide-width) + 2 * var(--pm-space-8));
987
+ }
988
+
989
+ .pm-site[data-pm-site-layout='wide'] .pm-site__article {
990
+ max-width: var(--pm-site-wide-width);
991
+ }
992
+
993
+ .pm-site[data-pm-site-layout='landing'] .pm-site__body {
994
+ grid-template-columns: minmax(0, 1fr);
995
+ max-width: var(--pm-site-wide-width);
996
+ }
997
+
998
+ .pm-site[data-pm-site-theme='showcase'] .pm-site__article {
999
+ max-width: var(--pm-site-reading-width);
1000
+ }
1001
+
1002
+ .pm-site[data-pm-site-layout='landing'] .pm-site__article {
1003
+ max-width: none;
1004
+ }
1005
+
1006
+ .pm-site[data-pm-site-layout='landing'] .pm-site__main {
1007
+ padding-block: var(--pm-space-10) var(--pm-space-12);
1008
+ }
1009
+
1010
+ /* A landing document's first authored section is its hero. Its headings, prose and columns remain content. */
1011
+ .pm-site[data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child {
1012
+ max-width: var(--pm-site-hero-width);
1013
+ margin-inline: auto;
1014
+ padding-block: var(--pm-space-12) calc(2 * var(--pm-space-12));
1015
+ }
1016
+
1017
+ .pm-site[data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child > .pm-section__title {
1018
+ margin-bottom: var(--pm-space-6);
1019
+ font-size: var(--pm-site-hero-title);
1020
+ line-height: var(--pm-leading-tight);
1021
+ overflow-wrap: anywhere;
1022
+ }
1023
+
1024
+ .pm-site[data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child > .pm-section__body {
1025
+ max-width: var(--pm-site-reading-width);
1026
+ }
1027
+
1028
+ .pm-site[data-pm-site-layout='landing'] .pm-view--document > .pm-section + .pm-section {
1029
+ margin-top: 0;
1030
+ padding-block: var(--pm-space-10);
1031
+ }
1032
+
1033
+ .pm-site[data-pm-site-layout='landing'] .pm-section .pm-layout-columns {
1034
+ gap: var(--pm-space-8);
1035
+ }
1036
+
1037
+ .pm-site[data-pm-site-layout='landing'] .pm-section .pm-layout__item {
1038
+ padding-block: var(--pm-space-4);
1039
+ }
1040
+
1041
+ .pm-site[data-pm-site-theme='course'][data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child {
1042
+ border-top: var(--pm-size-rule) solid var(--pm-color-accent);
1043
+ }
1044
+
1045
+ .pm-site[data-pm-site-theme='showcase'][data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child {
1046
+ max-width: none;
1047
+ padding-inline: var(--pm-space-6);
1048
+ border-radius: var(--pm-radius-panel);
1049
+ background: var(--pm-site-hero-surface);
1050
+ text-align: center;
1051
+ }
1052
+
1053
+ .pm-site[data-pm-site-theme='showcase'][data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child > .pm-section__body {
1054
+ max-width: var(--pm-site-hero-width);
1055
+ margin-inline: auto;
1056
+ }
1057
+
1058
+ /* Independent site pages compose their own hero and sections, without a teaching-document viewer. */
1059
+
1060
+ .pm-site-landing {
1061
+ box-sizing: border-box;
1062
+ display: grid;
1063
+ gap: calc(2 * var(--pm-space-8));
1064
+ max-width: var(--pm-site-wide-width);
1065
+ margin-inline: auto;
1066
+ padding: var(--pm-space-10) var(--pm-space-6) var(--pm-space-12);
1067
+ outline: none;
1068
+ }
1069
+
1070
+ .pm-site-landing__hero {
1071
+ box-sizing: border-box;
1072
+ display: grid;
1073
+ align-items: center;
1074
+ gap: var(--pm-space-10);
1075
+ max-width: var(--pm-site-hero-width);
1076
+ padding-block: var(--pm-space-10);
1077
+ }
1078
+
1079
+ .pm-site-landing__hero[data-with-image] {
1080
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1081
+ max-width: none;
1082
+ }
1083
+
1084
+ .pm-site-landing__hero-content,
1085
+ .pm-site-landing__section,
1086
+ .pm-site-landing__section-heading {
1087
+ display: grid;
1088
+ gap: var(--pm-space-4);
1089
+ min-width: 0;
1090
+ }
1091
+
1092
+ .pm-site-landing__title,
1093
+ .pm-site-landing__section-title {
1094
+ margin: 0;
1095
+ font-family: var(--pm-site-reading-font);
1096
+ font-weight: var(--pm-weight-semibold);
1097
+ line-height: var(--pm-leading-tight);
1098
+ overflow-wrap: anywhere;
1099
+ text-wrap: balance;
1100
+ }
1101
+
1102
+ .pm-site-landing__title {
1103
+ font-size: var(--pm-site-hero-title);
1104
+ }
1105
+
1106
+ .pm-site-landing__section-title {
1107
+ font-size: var(--pm-text-display);
1108
+ }
1109
+
1110
+ .pm-site-landing__description {
1111
+ max-width: var(--pm-site-reading-width);
1112
+ margin: 0;
1113
+ color: var(--pm-color-muted);
1114
+ font-family: var(--pm-site-reading-font);
1115
+ font-size: var(--pm-text-reading);
1116
+ line-height: var(--pm-leading-reading);
1117
+ overflow-wrap: anywhere;
1118
+ }
1119
+
1120
+ .pm-site-landing__actions {
1121
+ display: flex;
1122
+ flex-wrap: wrap;
1123
+ gap: var(--pm-space-3);
1124
+ margin-top: var(--pm-space-3);
1125
+ }
1126
+
1127
+ .pm-site-landing__hero-visual,
1128
+ .pm-site-landing__media {
1129
+ min-width: 0;
1130
+ margin: 0;
1131
+ }
1132
+
1133
+ .pm-site-landing__hero-visual img,
1134
+ .pm-site-landing__feature-image,
1135
+ .pm-site-landing__media :is(img, video) {
1136
+ display: block;
1137
+ width: 100%;
1138
+ height: auto;
1139
+ }
1140
+
1141
+ .pm-site-landing__hero-visual img {
1142
+ max-block-size: var(--pm-site-landing-image-max);
1143
+ object-fit: contain;
1144
+ }
1145
+
1146
+ .pm-site-landing__features,
1147
+ .pm-site-landing__documents {
1148
+ display: grid;
1149
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--pm-site-card-min-width), 100%), 1fr));
1150
+ gap: var(--pm-space-4);
1151
+ margin: 0;
1152
+ padding: 0;
1153
+ list-style: none;
1154
+ }
1155
+
1156
+ .pm-site-landing__feature,
1157
+ .pm-site-landing__document {
1158
+ margin: 0;
1159
+ }
1160
+
1161
+ .pm-site-landing__section {
1162
+ scroll-margin-top: calc(var(--pm-site-header-height) + var(--pm-space-6));
1163
+ }
1164
+
1165
+ .pm-site-landing__text {
1166
+ max-width: var(--pm-site-reading-width);
1167
+ font-family: var(--pm-site-reading-font);
1168
+ font-size: var(--pm-text-reading);
1169
+ line-height: var(--pm-leading-reading);
1170
+ overflow-wrap: anywhere;
1171
+ }
1172
+
1173
+ .pm-site-landing__text p {
1174
+ margin-block: 0 var(--pm-space-4);
1175
+ white-space: pre-line;
1176
+ }
1177
+
1178
+ .pm-site-landing__section--cta {
1179
+ justify-items: center;
1180
+ text-align: center;
1181
+ }
1182
+
1183
+ .pm-site-landing__section--cta .pm-site-landing__actions {
1184
+ justify-content: center;
1185
+ }
1186
+
1187
+ .pm-site[data-pm-site-theme='course'] .pm-site-landing__hero {
1188
+ border-top: var(--pm-size-rule) solid var(--pm-color-accent);
1189
+ }
1190
+
1191
+ .pm-site[data-pm-site-theme='course'] .pm-site-landing__documents {
1192
+ grid-template-columns: minmax(0, 1fr);
1193
+ }
1194
+
1195
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-landing__hero {
1196
+ max-width: none;
1197
+ padding: var(--pm-space-10) var(--pm-space-8);
1198
+ border-radius: var(--pm-radius-panel);
1199
+ background: var(--pm-site-hero-surface);
1200
+ }
1201
+
1202
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-landing__hero:not([data-with-image]) {
1203
+ justify-items: center;
1204
+ text-align: center;
1205
+ }
1206
+
1207
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-landing__hero:not([data-with-image]) .pm-site-landing__hero-content {
1208
+ max-width: var(--pm-site-hero-width);
1209
+ justify-items: center;
1210
+ }
1211
+
1212
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-landing__hero:not([data-with-image]) .pm-site-landing__actions {
1213
+ justify-content: center;
1214
+ }
1215
+
1216
+ /* A missing page. */
1217
+
1218
+ .pm-site-missing {
1219
+ display: grid;
1220
+ justify-items: center;
1221
+ gap: var(--pm-space-3);
1222
+ padding: var(--pm-space-12) var(--pm-space-6);
1223
+ text-align: center;
1224
+ }
1225
+
1226
+ .pm-site-missing__code {
1227
+ margin: 0;
1228
+ color: var(--pm-color-muted);
1229
+ font-size: var(--pm-text-display);
1230
+ font-weight: 600;
1231
+ }
1232
+
1233
+ .pm-site-missing__title {
1234
+ margin: 0;
1235
+ font-family: var(--pm-site-reading-font);
1236
+ font-size: var(--pm-text-title);
1237
+ font-weight: 600;
1238
+ }
1239
+
1240
+ .pm-site-missing__text {
1241
+ margin: 0 0 var(--pm-space-4);
1242
+ color: var(--pm-color-muted);
1243
+ }
1244
+
1245
+ /* In a workbench: the document as one page on the editor's canvas, as a word processor shows it. */
1246
+
1247
+ html.pm-in-workbench,
1248
+ html.pm-in-workbench body {
1249
+ background: var(--pm-color-canvas);
1250
+ }
1251
+
1252
+ html.pm-in-workbench .pm-section {
1253
+ scroll-margin-top: var(--pm-space-4);
1254
+ }
1255
+
1256
+ .pm-sheet-canvas {
1257
+ box-sizing: border-box;
1258
+ min-height: 100vh;
1259
+ padding: var(--pm-space-6) var(--pm-space-6) var(--pm-space-10);
1260
+ background: var(--pm-color-canvas);
1261
+ }
1262
+
1263
+ .pm-sheet {
1264
+ box-sizing: border-box;
1265
+ width: min(100%, var(--pm-sheet-width));
1266
+ margin: 0 auto;
1267
+ padding: clamp(var(--pm-space-8), 7vw, 4.5rem) clamp(var(--pm-space-6), 8vw, 5.5rem) clamp(var(--pm-space-10), 8vw, 6rem);
1268
+ border-radius: var(--pm-radius-sheet);
1269
+ background: var(--pm-color-surface);
1270
+ box-shadow: var(--pm-shadow-page);
1271
+ }
1272
+
1273
+ .pm-sheet .pm-section + .pm-section {
1274
+ margin-top: var(--pm-space-4);
1275
+ padding-top: var(--pm-space-5);
1276
+ border-top: none;
1277
+ }
1278
+
1279
+ /* A page in an editor has no permalinks to copy. */
1280
+ .pm-sheet .header-anchor {
1281
+ display: none;
1282
+ }
1283
+
1284
+ .pm-sheet .pm-section h1 {
1285
+ margin-bottom: var(--pm-space-3);
1286
+ font-size: var(--pm-text-display);
1287
+ }
1288
+
1289
+ /* Author marks remain small and symbolic; labels are available on hover and to screen readers. */
1290
+ .pm-content-marks { display: none; }
1291
+ html.pm-author-marks[data-preview-picking] .pm-view--document .pm-content-marks {
1292
+ display: flex;
1293
+ flex-wrap: wrap;
1294
+ gap: var(--pm-space-1);
1295
+ margin-block-end: var(--pm-space-1);
1296
+ user-select: none;
1297
+ }
1298
+ .pm-content-mark {
1299
+ display: inline-flex;
1300
+ align-items: center;
1301
+ gap: var(--pm-space-1);
1302
+ min-height: var(--pm-size-tool);
1303
+ padding: 0 var(--pm-space-1);
1304
+ border: 0;
1305
+ border-radius: var(--pm-radius-chip);
1306
+ background: transparent;
1307
+ color: var(--pm-color-muted);
1308
+ font-family: var(--pm-font-mono);
1309
+ font-size: var(--pm-text-xs);
1310
+ line-height: var(--pm-leading-tight);
1311
+ cursor: pointer;
1312
+ }
1313
+ .pm-content-mark:hover, .pm-content-mark:focus-visible {
1314
+ color: var(--pm-color-accent);
1315
+ background: var(--pm-color-accent-soft);
1316
+ }
1317
+ .pm-content-mark .pm-ui-icon { width: var(--pm-size-icon); height: var(--pm-size-icon); }
1318
+
1319
+ /* The presentation in a workbench: the slide on the canvas, with navigation and lecture playback in the viewer. */
1320
+ html.pm-in-workbench .pm-present {
1321
+ background: var(--pm-color-canvas);
1322
+ }
1323
+
1324
+ html.pm-in-workbench .pm-present__slide {
1325
+ padding: var(--pm-space-4);
1326
+ }
1327
+
1328
+ /* The slides in the workbench: its stage has their shape and frame, so the slide fills it. */
1329
+ html.pm-in-workbench .pm-slides-page .pm-present__slide {
1330
+ padding: 0;
1331
+ }
1332
+
1333
+ html.pm-in-workbench .pm-slides-page .pm-slide-fit__canvas {
1334
+ box-shadow: none;
1335
+ }
1336
+
1337
+ @media (max-width: 1279px) {
1338
+ .pm-site__body {
1339
+ grid-template-columns: var(--pm-site-sidebar-width) minmax(0, 1fr);
1340
+ }
1341
+
1342
+ .pm-site__aside {
1343
+ display: none;
1344
+ }
1345
+ }
1346
+
1347
+ @media (max-width: 767px) {
1348
+ .pm-site-header {
1349
+ gap: var(--pm-space-2);
1350
+ padding: 0 var(--pm-space-3);
1351
+ }
1352
+
1353
+ .pm-site-header .pm-site-header__menu {
1354
+ display: inline-flex;
1355
+ }
1356
+
1357
+ .pm-site-header .pm-site-header__nav,
1358
+ .pm-site-header .pm-site-header__tools .pm-view-menu,
1359
+ .pm-site-header .pm-site-header__tools .pm-toolbar--bar,
1360
+ .pm-site-header .pm-site-header__tools .pm-site-link,
1361
+ .pm-site-header .pm-site-search-button__text,
1362
+ .pm-site-header .pm-site-search-button .pm-ui-kbd {
1363
+ display: none;
1364
+ }
1365
+
1366
+ .pm-site-search-button {
1367
+ min-width: 0;
1368
+ }
1369
+
1370
+ .pm-site__body {
1371
+ display: block;
1372
+ }
1373
+
1374
+ .pm-site__sidebar {
1375
+ display: none;
1376
+ }
1377
+
1378
+ .pm-site-localnav {
1379
+ position: sticky;
1380
+ top: var(--pm-site-header-height);
1381
+ z-index: calc(var(--pm-z-site-header) - 1);
1382
+ display: flex;
1383
+ justify-content: space-between;
1384
+ padding: var(--pm-space-1) var(--pm-space-3);
1385
+ border-bottom: var(--pm-size-hairline) solid var(--pm-color-line);
1386
+ background: var(--pm-color-bg);
1387
+ font-family: var(--pm-font-sans);
1388
+ }
1389
+
1390
+ .pm-site__main {
1391
+ padding: var(--pm-space-6) var(--pm-space-4) var(--pm-space-10);
1392
+ }
1393
+
1394
+ .pm-site-pager {
1395
+ grid-template-columns: 1fr;
1396
+ }
1397
+
1398
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__documents {
1399
+ grid-template-columns: minmax(0, 1fr);
1400
+ }
1401
+
1402
+ .pm-site[data-pm-site-theme='course'] .pm-site-home__hero,
1403
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-home__hero {
1404
+ padding-block: var(--pm-space-4);
1405
+ }
1406
+
1407
+ .pm-site[data-pm-site-layout='landing'] .pm-view--document > .pm-section:first-child {
1408
+ padding-block: var(--pm-space-8) var(--pm-space-12);
1409
+ }
1410
+
1411
+ .pm-site-landing {
1412
+ gap: var(--pm-space-10);
1413
+ padding: var(--pm-space-6) var(--pm-space-4) var(--pm-space-10);
1414
+ }
1415
+
1416
+ .pm-site-landing__hero[data-with-image] {
1417
+ grid-template-columns: minmax(0, 1fr);
1418
+ }
1419
+
1420
+ .pm-site-landing__hero-visual img {
1421
+ max-block-size: var(--pm-site-landing-image-mobile-max);
1422
+ }
1423
+
1424
+ .pm-site-landing__hero,
1425
+ .pm-site[data-pm-site-theme='showcase'] .pm-site-landing__hero {
1426
+ padding: var(--pm-space-6) var(--pm-space-4);
1427
+ }
1428
+
1429
+ .pm-sheet-canvas {
1430
+ padding: var(--pm-space-3) var(--pm-space-3) var(--pm-space-8);
1431
+ }
1432
+ }
1433
+
1434
+ @media (min-width: 768px) {
1435
+ .pm-site-menu__panel .pm-site-menu__tools {
1436
+ display: none;
1437
+ }
1438
+ }
1439
+
1440
+ @media (max-width: 440px) {
1441
+ .pm-sheet-canvas {
1442
+ padding: 0;
1443
+ }
1444
+
1445
+ .pm-sheet {
1446
+ min-height: 100vh;
1447
+ border-radius: 0;
1448
+ box-shadow: none;
1449
+ }
1450
+ }