@davmash/bygone 0.8.16 → 0.9.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.
package/web/presenter.css CHANGED
@@ -1,5 +1,5 @@
1
1
  :root {
2
- --tour-rail-width: 360px;
2
+ --tour-rail-width: 300px;
3
3
  --tour-accent-bright: #a99fff;
4
4
  --tour-surface: #11131a;
5
5
  --tour-border: rgba(255, 255, 255, 0.09);
@@ -7,7 +7,7 @@
7
7
  --tour-faint: rgba(232, 235, 246, 0.72);
8
8
  --tour-body: #eef1fa;
9
9
  --tour-body-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
10
- --tour-narrative-height: 296px;
10
+ --tour-narrative-height: min(38vh, 360px);
11
11
  }
12
12
 
13
13
  .tour-mode-controls { display: grid; gap: 6px; margin: 12px 0; }
@@ -37,6 +37,53 @@ body.tour-derived-mode #tour-narrative { display: none; }
37
37
  display: none;
38
38
  }
39
39
 
40
+ .tour-review-toggle,
41
+ .tour-review button {
42
+ border: 1px solid var(--tour-border);
43
+ border-radius: 6px;
44
+ padding: 7px 10px;
45
+ color: var(--tour-body);
46
+ background: rgba(255, 255, 255, 0.06);
47
+ font: inherit;
48
+ cursor: pointer;
49
+ }
50
+
51
+ .tour-review-toggle { margin-top: 12px; }
52
+ .tour-review-toggle:hover, .tour-review button:hover { border-color: var(--tour-accent-bright); }
53
+ .tour-review-toggle:focus-visible, .tour-review button:focus-visible { outline: 2px solid var(--tour-accent-bright); outline-offset: 2px; }
54
+ .tour-review[hidden], .tour-review-toggle[hidden] { display: none; }
55
+
56
+ .tour-review {
57
+ position: fixed;
58
+ top: 16px;
59
+ right: 16px;
60
+ z-index: 160;
61
+ display: flex;
62
+ flex-direction: column;
63
+ box-sizing: border-box;
64
+ width: min(480px, calc(100vw - var(--tour-rail-width) - 32px));
65
+ max-height: calc(100vh - 32px);
66
+ border: 1px solid var(--tour-border);
67
+ border-radius: 10px;
68
+ background: var(--tour-surface);
69
+ color: var(--tour-body);
70
+ box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5);
71
+ font: 13px/1.5 var(--tour-body-font);
72
+ }
73
+
74
+ .tour-review-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--tour-border); }
75
+ .tour-review-heading h2 { margin: 0; font-size: 18px; }
76
+ .tour-review-content { overflow-y: auto; padding: 0 18px 18px; min-height: 0; overflow-wrap: anywhere; }
77
+ .tour-review-content h3 { color: var(--tour-accent-bright); font-size: 13px; margin: 22px 0 10px; }
78
+ .tour-review-item { border-top: 1px solid var(--tour-border); padding: 12px 0; }
79
+ .tour-review-item h4 { font-size: 14px; margin: 0 0 6px; }
80
+ .tour-review-item p { margin: 6px 0 10px; white-space: pre-wrap; }
81
+ .tour-review-provenance, .tour-review-range, .tour-review-next { color: var(--tour-muted); }
82
+ .tour-review-range { font-size: 12px; }
83
+ .tour-review-evidence { display: block; width: 100%; text-align: left; margin: 6px 0; overflow-wrap: anywhere; }
84
+ #tour-review-status:empty { display: none; }
85
+ #tour-review-status { margin: 0; padding: 12px 18px; border-top: 1px solid var(--tour-border); }
86
+
40
87
  .tour-sidebar-hide,
41
88
  .tour-sidebar-show {
42
89
  border: 1px solid var(--tour-border);
@@ -117,10 +164,6 @@ body.tour-mode #container {
117
164
  margin-top: var(--tour-narrative-height);
118
165
  }
119
166
 
120
- body.tour-mode.tour-discussion #container {
121
- visibility: hidden;
122
- }
123
-
124
167
  .tour-overview {
125
168
  position: relative;
126
169
  padding: 24px 46px 18px 22px;
@@ -128,12 +171,42 @@ body.tour-mode.tour-discussion #container {
128
171
  }
129
172
 
130
173
  .tour-overview h1 {
174
+ display: flex;
175
+ align-items: center;
176
+ min-width: 0;
131
177
  margin: 0 0 10px;
132
178
  font-size: 20px;
133
179
  line-height: 1.25;
134
180
  text-wrap: balance;
135
181
  }
136
182
 
183
+ .tour-overview h1 > button#tour-title {
184
+ box-sizing: border-box;
185
+ min-width: 0;
186
+ padding: 0;
187
+ color: inherit;
188
+ border: 0;
189
+ border-left: 2px solid transparent;
190
+ background: none;
191
+ font: inherit;
192
+ text-align: left;
193
+ cursor: pointer;
194
+ }
195
+
196
+ .tour-overview h1 > button#tour-title:hover,
197
+ .tour-overview h1 > button#tour-title:focus-visible {
198
+ color: #fff;
199
+ }
200
+
201
+ .tour-overview h1 > button#tour-title:focus-visible {
202
+ outline: 2px solid var(--tour-accent-bright);
203
+ outline-offset: 3px;
204
+ }
205
+
206
+ .tour-overview h1 > button#tour-title.is-active {
207
+ border-left-color: rgba(169, 159, 255, 0.72);
208
+ }
209
+
137
210
  .tour-source {
138
211
  display: inline-block;
139
212
  margin-bottom: 10px;
@@ -300,12 +373,14 @@ body.tour-mode.tour-discussion #container {
300
373
  right: 0;
301
374
  left: var(--tour-rail-width);
302
375
  z-index: 90;
303
- height: var(--tour-narrative-height);
376
+ height: min(38vh, 360px);
377
+ min-height: 0;
378
+ max-height: none;
304
379
  box-sizing: border-box;
305
380
  display: flex;
306
381
  flex-direction: column;
307
- overflow: auto;
308
- padding: 20px 26px 18px;
382
+ overflow: hidden;
383
+ padding: 12px 24px 16px;
309
384
  color: #f5f6fb;
310
385
  border-bottom: 1px solid var(--tour-border);
311
386
  background: #151821;
@@ -317,68 +392,42 @@ body.tour-mode.tour-discussion #container {
317
392
  display: none;
318
393
  }
319
394
 
320
- .tour-narrative-resizer {
321
- position: fixed;
322
- z-index: 120;
323
- top: calc(var(--tour-narrative-height) - 4px);
324
- right: 0;
325
- left: var(--tour-rail-width);
326
- height: 8px;
327
- cursor: row-resize;
328
- touch-action: none;
329
- }
330
-
331
- .tour-narrative-resizer:hover,
332
- .tour-narrative-resizer:focus-visible,
333
- body.is-resizing-tour-narrative .tour-narrative-resizer {
334
- background: rgba(169, 159, 255, 0.75);
335
- outline: none;
336
- }
337
-
338
- body:not(.tour-mode) .tour-narrative-resizer,
339
- body.tour-discussion .tour-narrative-resizer {
340
- display: none;
341
- }
342
-
343
- .tour-narrative-nav {
344
- display: grid;
345
- grid-template-columns: auto minmax(0, 1fr) auto;
395
+ .tour-narrative-toolbar {
396
+ display: flex;
397
+ min-width: 0;
346
398
  gap: 12px;
347
399
  align-items: center;
348
- margin-bottom: 14px;
349
- padding: 0 0 10px;
400
+ flex-shrink: 0;
401
+ margin: 0 0 10px;
402
+ padding: 0 0 8px;
350
403
  border-bottom: 1px solid var(--tour-border);
351
404
  background: rgba(255, 255, 255, 0.025);
352
405
  }
353
406
 
354
- .tour-narrative-nav button {
355
- min-width: 72px;
356
- padding: 7px 10px;
407
+ .tour-narrative-toolbar button {
408
+ padding: 5px 9px;
357
409
  color: var(--tour-muted);
358
- border: 1px solid transparent;
359
- border-radius: 6px;
360
- background: transparent;
410
+ border: 1px solid var(--tour-border);
411
+ border-radius: 5px;
412
+ background: rgba(255, 255, 255, 0.035);
361
413
  cursor: pointer;
362
- transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, box-shadow 120ms ease;
414
+ font: inherit;
363
415
  }
364
416
 
365
- .tour-narrative-nav button:hover,
366
- .tour-narrative-nav button:focus-visible {
417
+ .tour-narrative-toolbar button:hover:not(:disabled),
418
+ .tour-narrative-toolbar button:focus-visible,
419
+ .tour-narrative-toolbar button[aria-pressed="true"] {
367
420
  color: #fff;
368
- border-color: var(--tour-border);
369
- background: rgba(255, 255, 255, 0.05);
421
+ border-color: rgba(169, 159, 255, 0.55);
422
+ background: rgba(169, 159, 255, 0.13);
370
423
  }
371
424
 
372
- .tour-narrative-nav button:focus-visible {
425
+ .tour-narrative-toolbar button:focus-visible {
373
426
  outline: none;
374
427
  box-shadow: 0 0 0 2px rgba(128, 117, 255, 0.28);
375
428
  }
376
429
 
377
- .tour-narrative-nav button:last-child {
378
- justify-self: end;
379
- }
380
-
381
- .tour-narrative-nav button:disabled {
430
+ .tour-narrative-toolbar button:disabled {
382
431
  opacity: 0.35;
383
432
  cursor: default;
384
433
  }
@@ -499,31 +548,16 @@ body.tour-discussion .tour-narrative-resizer {
499
548
  }
500
549
 
501
550
  .tour-breadcrumb {
551
+ flex: 1 1 auto;
502
552
  min-width: 0;
503
553
  color: var(--tour-muted);
504
554
  font-family: var(--vscode-editor-font-family, monospace);
505
- text-align: center;
555
+ text-align: left;
506
556
  white-space: nowrap;
507
557
  overflow: hidden;
508
558
  text-overflow: ellipsis;
509
559
  }
510
560
 
511
- .tour-rail-sections {
512
- display: grid;
513
- flex: 1;
514
- min-height: 0;
515
- grid-template-rows: minmax(150px, 1fr) minmax(150px, 1fr);
516
- }
517
-
518
- .tour-rail-section {
519
- display: flex;
520
- flex-direction: column;
521
- overflow: hidden;
522
- min-height: 0;
523
- }
524
-
525
- .tour-rail-section + .tour-rail-section { border-top: 1px solid var(--tour-border); }
526
-
527
561
  .tour-rail-heading {
528
562
  display: flex;
529
563
  align-items: center;
@@ -634,15 +668,8 @@ body.tour-discussion .tour-narrative-resizer {
634
668
 
635
669
  .tour-file.is-omitted .tour-file-meta { color: #d7aa7b; }
636
670
 
637
- .tour-chapter-title {
638
- margin: 15px 10px 7px;
639
- color: var(--tour-muted);
640
- font-weight: 750;
641
- letter-spacing: 0.09em;
642
- text-transform: uppercase;
643
- }
644
-
645
671
  .tour-scene {
672
+ box-sizing: border-box;
646
673
  display: grid;
647
674
  width: 100%;
648
675
  grid-template-columns: 24px minmax(0, 1fr);
@@ -651,6 +678,7 @@ body.tour-discussion .tour-narrative-resizer {
651
678
  padding: 9px 10px;
652
679
  color: #e5e7f0;
653
680
  border: 1px solid transparent;
681
+ border-left-width: 2px;
654
682
  border-radius: 7px;
655
683
  background: transparent;
656
684
  text-align: left;
@@ -661,11 +689,6 @@ body.tour-discussion .tour-narrative-resizer {
661
689
  background: rgba(255, 255, 255, 0.045);
662
690
  }
663
691
 
664
- .tour-scene.is-active {
665
- border-color: rgba(128, 117, 255, 0.44);
666
- background: linear-gradient(90deg, rgba(101, 83, 255, 0.25), rgba(101, 83, 255, 0.07));
667
- }
668
-
669
692
  .tour-scene-number {
670
693
  padding-top: 1px;
671
694
  color: var(--tour-muted);
@@ -755,28 +778,57 @@ body.tour-discussion .tour-narrative-resizer {
755
778
  line-height: 1.35;
756
779
  }
757
780
 
758
- .tour-narrative-layout {
759
- display: grid;
760
- grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
761
- gap: 18px 24px;
781
+ .tour-reading-item {
782
+ box-sizing: border-box;
783
+ min-width: 0;
784
+ padding: 9px 12px 11px 14px;
785
+ overflow-wrap: anywhere;
786
+ border-left: 2px solid transparent;
762
787
  }
763
788
 
764
- .tour-narrative-prose,
765
- .tour-narrative-side {
766
- min-width: 0;
789
+ .tour-reading-item + .tour-reading-item {
790
+ margin-top: 2px;
767
791
  }
768
792
 
769
- .tour-narrative-prose {
770
- display: flex;
771
- flex-direction: column;
772
- gap: 6px;
793
+ .tour-reading-item.is-active {
794
+ border-left-color: rgba(169, 159, 255, 0.72);
773
795
  }
774
796
 
775
- .tour-narrative-side {
776
- display: flex;
777
- flex-direction: column;
778
- gap: 10px;
779
- align-self: start;
797
+ .tour-reading-item h1,
798
+ .tour-reading-item h2,
799
+ .tour-reading-item h3 {
800
+ margin: 0 0 8px;
801
+ line-height: 1.3;
802
+ text-wrap: balance;
803
+ }
804
+
805
+ .tour-reading-item[data-reading-kind="title"] h1 {
806
+ color: #fff;
807
+ font-size: 22px;
808
+ font-weight: 750;
809
+ }
810
+
811
+ .tour-reading-item[data-reading-kind="chapter"] h2 {
812
+ color: var(--tour-accent-bright);
813
+ font-size: 16px;
814
+ font-weight: 750;
815
+ }
816
+
817
+ .tour-reading-item[data-reading-kind="scene"] h2 {
818
+ color: #fff;
819
+ font-size: 20px;
820
+ font-weight: 700;
821
+ }
822
+
823
+ .tour-reading-item[data-reading-kind="step"] h3,
824
+ .tour-reading-item .tour-step-title {
825
+ color: #fff;
826
+ font-size: 18px;
827
+ font-weight: 700;
828
+ }
829
+
830
+ #tour-narrative-content > .tour-reading-item:last-child {
831
+ min-height: max(0px, var(--tour-reading-viewport, 0px));
780
832
  }
781
833
 
782
834
  .tour-narrative-chapter {
@@ -789,7 +841,7 @@ body.tour-discussion .tour-narrative-resizer {
789
841
 
790
842
  .tour-narrative h2 {
791
843
  margin: 0 0 7px;
792
- font-size: 19px;
844
+ font-size: 20px;
793
845
  text-wrap: balance;
794
846
  }
795
847
 
@@ -831,21 +883,73 @@ body.tour-discussion .tour-narrative-resizer {
831
883
  background: rgba(255, 255, 255, 0.015);
832
884
  }
833
885
 
834
- .tour-step {
835
- box-sizing: border-box;
836
- padding: 11px 13px 11px 15px;
837
- border-left: 2px solid rgba(166, 140, 255, 0.46);
838
- background: rgba(255, 255, 255, 0.02);
839
- }
840
-
841
- .tour-step[hidden],
842
886
  .tour-step-requirement[hidden],
843
887
  .tour-connection[hidden] {
844
888
  display: none;
845
889
  }
846
890
 
847
- .tour-step-title { color: #fff; font-size: 13px; font-weight: 750; }
848
- .tour-step-body { margin: 3px 0 0; color: var(--tour-body); line-height: 1.45; }
891
+ .tour-step-body { margin: 8px 0 0; max-width: 85ch; color: var(--tour-body); font-size: 15px; line-height: 1.6; }
892
+
893
+ .tour-step-context {
894
+ margin: 0 0 9px;
895
+ }
896
+
897
+ .tour-step-context > summary {
898
+ display: flex;
899
+ align-items: center;
900
+ min-width: 0;
901
+ gap: 6px;
902
+ padding: 4px 0;
903
+ overflow-wrap: anywhere;
904
+ color: var(--tour-muted);
905
+ font-size: 13px;
906
+ line-height: 1.4;
907
+ cursor: pointer;
908
+ list-style: none;
909
+ }
910
+
911
+ .tour-step-context > summary::before {
912
+ color: var(--tour-faint);
913
+ content: "▸";
914
+ }
915
+
916
+ .tour-step-context[open] > summary::before {
917
+ content: "▾";
918
+ }
919
+
920
+ .tour-step-context > summary::-webkit-details-marker {
921
+ display: none;
922
+ }
923
+
924
+ .tour-step-context > summary::marker {
925
+ content: "";
926
+ }
927
+
928
+ .tour-step-context > summary:hover,
929
+ .tour-step-context > summary:focus-visible {
930
+ color: #fff;
931
+ }
932
+
933
+ .tour-step-context > summary:focus-visible {
934
+ outline: 2px solid var(--tour-accent-bright);
935
+ outline-offset: 2px;
936
+ }
937
+
938
+ .tour-step-context-body {
939
+ margin: 2px 0 8px;
940
+ padding: 7px 0 3px 12px;
941
+ color: var(--tour-muted);
942
+ border-left: 1px solid rgba(169, 159, 255, 0.28);
943
+ font-size: 13px;
944
+ line-height: 1.45;
945
+ }
946
+
947
+ .tour-step-context-body .tour-narrative-summary,
948
+ .tour-step-context-body .tour-narrative-bullets,
949
+ .tour-step-context-body .tour-narrative-tags,
950
+ .tour-step-context-body .tour-narrative-takeaway {
951
+ color: inherit;
952
+ }
849
953
 
850
954
  .tour-step-requirement {
851
955
  display: flex;
@@ -891,173 +995,396 @@ body.tour-discussion .tour-narrative-resizer {
891
995
  font-family: var(--vscode-editor-font-family, monospace);
892
996
  }
893
997
 
894
- body.tour-discussion .tour-narrative {
895
- display: block;
896
- bottom: 0;
897
- height: auto;
898
- padding: clamp(48px, 10vh, 100px) clamp(44px, 8vw, 120px);
998
+ .tour-step-code {
999
+ display: flex;
1000
+ flex-wrap: wrap;
1001
+ gap: 7px 10px;
1002
+ align-items: center;
1003
+ margin-top: 10px;
899
1004
  }
900
1005
 
901
- body.tour-discussion .tour-narrative-nav {
902
- margin-bottom: clamp(22px, 4vh, 36px);
1006
+ .tour-step-code[hidden] {
1007
+ display: none;
903
1008
  }
904
1009
 
905
- body.tour-discussion .tour-narration-controls {
906
- max-width: 1000px;
907
- margin-bottom: clamp(18px, 3vh, 28px);
1010
+ .tour-step-code-location {
1011
+ flex: 1 1 12rem;
1012
+ min-width: 0;
1013
+ overflow-wrap: anywhere;
1014
+ color: var(--tour-faint);
1015
+ font-family: var(--vscode-editor-font-family, monospace);
1016
+ white-space: normal;
908
1017
  }
909
1018
 
910
- body.tour-discussion .tour-narrative-layout {
911
- display: block;
1019
+ .tour-show-in-code {
1020
+ flex: none;
1021
+ padding: 4px 8px;
1022
+ color: var(--tour-accent-bright);
1023
+ border: 1px solid rgba(169, 159, 255, 0.35);
1024
+ border-radius: 5px;
1025
+ background: rgba(169, 159, 255, 0.07);
1026
+ cursor: pointer;
1027
+ font: inherit;
912
1028
  }
913
1029
 
914
- body.tour-discussion .tour-narrative h2 {
915
- max-width: 900px;
916
- font-size: clamp(30px, 4vw, 56px);
1030
+ .tour-show-in-code:hover,
1031
+ .tour-show-in-code:focus-visible {
1032
+ color: #fff;
1033
+ border-color: rgba(169, 159, 255, 0.7);
1034
+ background: rgba(169, 159, 255, 0.14);
1035
+ outline: none;
1036
+ }
1037
+
1038
+ .tour-commit-oid {
1039
+ margin-right: 6px;
1040
+ color: var(--tour-accent-bright);
1041
+ font-family: var(--vscode-editor-font-family, monospace);
1042
+ }
1043
+
1044
+ /* Keep the complete reading order in one scrollable narrative viewport. */
1045
+ .tour-narrative-content {
1046
+ flex: 1 1 auto;
1047
+ min-height: 0;
1048
+ overflow-x: hidden;
1049
+ overflow-y: auto;
1050
+ padding-right: 8px;
1051
+ }
1052
+
1053
+ .tour-audio-settings > summary, .tour-details > summary {
1054
+ cursor: pointer; color: var(--tour-muted); padding: 5px 0; line-height: 1.5;
1055
+ }
1056
+ .tour-audio-settings > summary:hover, .tour-details > summary:hover { color: #fff; }
1057
+ .tour-audio-settings > summary:focus-visible,
1058
+ .tour-details > summary:focus-visible { outline: 2px solid var(--tour-accent-bright); outline-offset: 2px; }
1059
+ .tour-audio-settings > summary[hidden] { display: none; }
1060
+ .tour-narration-dock {
1061
+ display: flex;
1062
+ align-items: center;
1063
+ gap: 6px;
1064
+ margin-left: auto;
1065
+ min-width: 0;
1066
+ }
1067
+ .tour-audio-settings { min-width: 0; }
1068
+ .tour-audio-settings[hidden] { display: none; }
1069
+ .tour-narration-dock .tour-narration-controls {
1070
+ margin: 0;
1071
+ padding: 0;
1072
+ border: 0;
1073
+ background: none;
1074
+ }
1075
+ .tour-narration-dock #tour-listen {
1076
+ display: inline-flex;
1077
+ align-items: center;
1078
+ gap: 5px;
1079
+ color: var(--tour-accent-bright);
1080
+ }
1081
+ .tour-narration-dock #tour-listen svg { width: 12px; height: 12px; fill: currentColor; }
1082
+ .tour-narration-dock #tour-narration { flex-shrink: 0; }
1083
+ .tour-narration-dock #tour-narration-voice { max-width: 150px; }
1084
+ .tour-narration-dock .tour-narration-status {
1085
+ min-width: 0;
1086
+ white-space: normal;
1087
+ overflow-wrap: anywhere;
1088
+ }
1089
+ .tour-details { margin-top: 10px; font-size: 12px; }
1090
+ .tour-details .tour-source { display: inline-block; margin-top: 8px; }
1091
+ .tour-details .tour-source[hidden] { display: none; }
1092
+ .tour-files[hidden],
1093
+ .tour-outline-children[hidden] { display: none; }
1094
+
1095
+ .tour-outline-group {
1096
+ margin: 0 0 5px;
1097
+ border-left: 2px solid transparent;
1098
+ }
1099
+
1100
+ .tour-outline-group.has-active {
1101
+ border-left-color: rgba(169, 159, 255, 0.58);
1102
+ }
1103
+
1104
+ .tour-outline-heading {
1105
+ display: flex;
1106
+ min-width: 0;
1107
+ align-items: stretch;
1108
+ }
1109
+
1110
+ .tour-outline-toggle {
1111
+ flex: 0 0 28px;
1112
+ width: 28px;
1113
+ padding: 0;
1114
+ color: var(--tour-muted);
1115
+ border: 0;
1116
+ background: transparent;
1117
+ cursor: pointer;
1118
+ font: inherit;
1119
+ line-height: 1.2;
1120
+ text-align: center;
1121
+ }
1122
+
1123
+ .tour-outline-toggle:hover,
1124
+ .tour-outline-toggle:focus-visible {
1125
+ color: #fff;
1126
+ background: rgba(255, 255, 255, 0.045);
1127
+ }
1128
+
1129
+ .tour-outline-toggle:focus-visible {
1130
+ outline: 2px solid var(--tour-accent-bright);
1131
+ outline-offset: -2px;
917
1132
  }
918
1133
 
919
- body.tour-discussion .tour-narrative-summary {
920
- max-width: 980px;
921
- font-size: clamp(16px, 1.8vw, 24px);
1134
+ .tour-outline-heading > .tour-scene,
1135
+ .tour-outline-heading > .tour-chapter-link {
1136
+ flex: 1 1 auto;
1137
+ min-width: 0;
922
1138
  }
923
1139
 
924
- body.tour-discussion .tour-narrative-bullets {
1140
+ .tour-outline-children {
925
1141
  display: grid;
926
- max-width: 1000px;
927
- gap: 10px;
928
- margin-top: 24px;
929
- font-size: 15px;
1142
+ gap: 3px;
1143
+ margin: 2px 0 10px 28px;
1144
+ border-left: 1px solid var(--tour-border);
1145
+ padding-left: 9px;
930
1146
  }
931
1147
 
932
- body.tour-discussion .tour-narrative-takeaway {
933
- max-width: 620px;
934
- font-size: 14px;
1148
+ .tour-outline-step {
1149
+ box-sizing: border-box;
1150
+ border: 1px solid transparent;
1151
+ border-left: 2px solid transparent;
1152
+ border-radius: 5px;
1153
+ background: none;
1154
+ color: var(--tour-muted);
1155
+ font: 12px/1.5 var(--tour-body-font);
1156
+ text-align: left;
1157
+ padding: 8px 10px 8px 9px;
1158
+ cursor: pointer;
1159
+ overflow-wrap: anywhere;
935
1160
  }
1161
+ .tour-outline-step:hover { background: rgba(255,255,255,.05); }
1162
+ .tour-outline-step.is-active { border-left-color: rgba(169,159,255,.72); }
1163
+ .tour-outline-step:focus-visible { outline: 2px solid var(--tour-accent-bright); outline-offset: 1px; }
936
1164
 
937
- .tour-commit-oid {
938
- margin-right: 6px;
939
- color: var(--tour-accent-bright);
940
- font-family: var(--vscode-editor-font-family, monospace);
1165
+ .tour-chapter-link {
1166
+ display: block;
1167
+ box-sizing: border-box;
1168
+ min-width: 0;
1169
+ padding: 8px 10px;
1170
+ overflow-wrap: anywhere;
1171
+ color: var(--tour-muted);
1172
+ border: 1px solid transparent;
1173
+ border-left: 2px solid transparent;
1174
+ border-radius: 7px;
1175
+ background: transparent;
1176
+ text-align: left;
1177
+ cursor: pointer;
1178
+ font: inherit;
1179
+ }
1180
+
1181
+ .tour-chapter-link:hover {
1182
+ background: rgba(255, 255, 255, 0.045);
941
1183
  }
942
1184
 
1185
+ .tour-chapter-link.is-active,
1186
+ .tour-scene.is-active {
1187
+ border-left-color: rgba(169, 159, 255, 0.72);
1188
+ }
1189
+
1190
+ .tour-chapter-link:focus-visible {
1191
+ outline: 2px solid var(--tour-accent-bright);
1192
+ outline-offset: 1px;
1193
+ }
1194
+
1195
+ #tour-listen { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
1196
+ #tour-listen svg { width: 14px; height: 14px; fill: currentColor; }
1197
+
943
1198
  @media (max-width: 1100px) {
944
1199
  :root {
945
1200
  --tour-rail-width: 285px;
946
- --tour-narrative-height: 380px;
1201
+ --tour-narrative-height: min(38vh, 360px);
947
1202
  }
948
1203
 
949
- .tour-narrative-layout {
950
- grid-template-columns: minmax(0, 1fr);
951
- }
952
1204
  }
953
1205
 
954
- @media (max-width: 720px) {
955
- :root {
956
- --tour-rail-height: clamp(190px, 28vh, 260px);
957
- --tour-rail-width: 0px;
958
- --tour-narrative-height: clamp(300px, 42vh, 380px);
959
- }
960
-
961
- body.tour-mode {
962
- --tour-rail-width: 0px;
1206
+ @media (prefers-reduced-motion: reduce) {
1207
+ .tour-narration-segment {
1208
+ transition: none;
963
1209
  }
1210
+ }
964
1211
 
965
- .tour-shell {
966
- inset: 0 0 auto;
967
- display: grid;
968
- width: 100%;
969
- height: var(--tour-rail-height);
970
- grid-template-columns: minmax(190px, 0.85fr) minmax(0, 1.15fr);
971
- grid-template-rows: auto minmax(0, 1fr) auto;
972
- border-right: 0;
973
- border-bottom: 1px solid var(--tour-border);
974
- box-shadow: 0 16px 36px rgba(0, 0, 0, 0.22);
975
- }
1212
+ /* Exploration shares the evidence viewer, while both authored tours keep narration. */
1213
+ .tour-mode-label { color: var(--tour-muted); font-size: 12px; }
1214
+ .tour-mode-tabs { display: flex; flex-wrap: wrap; gap: 5px; }
1215
+ .tour-mode-tabs button { padding: 5px 8px; border: 1px solid var(--tour-border); border-radius: 5px; background: var(--tour-surface); color: var(--tour-body); font: inherit; font-size: 12px; cursor: pointer; }
1216
+ .tour-mode-tabs button:hover { border-color: var(--tour-accent-bright); }
1217
+ .tour-mode-tabs button.is-active { color: #fff; border-color: var(--tour-accent-bright); background: rgba(169, 159, 255, 0.13); }
1218
+ .tour-mode-tabs button:focus-visible { outline: 2px solid var(--tour-accent-bright); outline-offset: 2px; }
1219
+ .tour-mode-description { margin: 2px 0; color: var(--tour-muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
1220
+ .tour-evidence-controls { display: grid; gap: 6px; }
1221
+ .tour-evidence-controls[hidden] { display: none; }
1222
+ .tour-evidence-actions { display: flex; flex-wrap: wrap; gap: 6px; }
1223
+ .tour-evidence-actions button { padding: 5px 8px; border: 1px solid var(--tour-border); border-radius: 5px; background: var(--tour-surface); color: var(--tour-body); font: inherit; font-size: 12px; cursor: pointer; }
1224
+ .tour-evidence-actions button:hover { border-color: var(--tour-accent-bright); }
1225
+ .tour-evidence-actions button:disabled { opacity: .5; cursor: default; }
1226
+ #tour-compare-scope { font-size: 12px; overflow-wrap: anywhere; }
1227
+ body.tour-derived-mode .tour-search { display: none; }
1228
+ body.tour-derived-mode .tour-overview { flex-shrink: 0; }
1229
+ body.tour-derived-mode .tour-shell { overflow-y: auto; }
1230
+
1231
+ /* File inspection remains nested beneath the narrated directory overview. */
1232
+ .tour-directory-breadcrumb {
1233
+ display: flex;
1234
+ align-items: center;
1235
+ flex-wrap: wrap;
1236
+ gap: 8px;
1237
+ padding-block: 8px;
1238
+ font: 12px var(--tour-body-font);
1239
+ color: var(--tour-muted);
1240
+ }
1241
+ .tour-directory-breadcrumb[hidden],
1242
+ .tour-directory-breadcrumb [hidden],
1243
+ body.tour-directory-overview #directory-return-toolbar,
1244
+ body.tour-directory-file-open #file-info { display: none; }
1245
+ .tour-directory-breadcrumb button {
1246
+ border: 0;
1247
+ border-radius: 4px;
1248
+ padding: 4px 6px;
1249
+ background: transparent;
1250
+ color: var(--tour-accent-bright);
1251
+ font: inherit;
1252
+ cursor: pointer;
1253
+ }
1254
+ .tour-directory-breadcrumb button:hover { background: rgba(255, 255, 255, 0.07); }
1255
+ .tour-directory-breadcrumb button:focus-visible { outline: 2px solid var(--tour-accent-bright); }
1256
+ .tour-directory-file { overflow-wrap: anywhere; color: var(--tour-body); }
1257
+ .tour-directory-narration-context { margin-left: auto; color: var(--tour-faint); }
976
1258
 
977
- .tour-sidebar-resizer {
978
- display: none;
979
- }
1259
+ /* Present uses one task navigator; secondary tools no longer compete for rail space. */
1260
+ .tour-overview {
1261
+ flex: 0 0 auto;
1262
+ padding: 16px 44px 12px 16px;
1263
+ }
980
1264
 
981
- body.tour-sidebar-hidden {
982
- --tour-rail-height: 0px;
983
- }
1265
+ .tour-overview h1 { margin-bottom: 6px; font-size: 18px; }
1266
+ .tour-mode-controls { margin: 8px 0 0; }
1267
+ .tour-review-toggle { margin-top: 8px; }
1268
+ .tour-details { margin-top: 8px; }
984
1269
 
985
- .tour-overview {
986
- grid-row: 1 / span 3;
987
- overflow: auto;
988
- padding: 16px;
989
- border-right: 1px solid var(--tour-border);
990
- border-bottom: 0;
991
- }
1270
+ .tour-navigator-tabs {
1271
+ display: grid;
1272
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1273
+ gap: 4px;
1274
+ padding: 8px;
1275
+ border-bottom: 1px solid var(--tour-border);
1276
+ }
992
1277
 
993
- .tour-overview h1 {
994
- font-size: 17px;
995
- }
1278
+ .tour-navigator-tabs button {
1279
+ min-width: 0;
1280
+ padding: 7px 5px;
1281
+ overflow: hidden;
1282
+ color: var(--tour-muted);
1283
+ border: 1px solid transparent;
1284
+ border-radius: 5px;
1285
+ background: transparent;
1286
+ font: inherit;
1287
+ text-overflow: ellipsis;
1288
+ white-space: nowrap;
1289
+ cursor: pointer;
1290
+ }
996
1291
 
997
- .tour-search {
998
- grid-column: 2;
999
- grid-row: 1;
1000
- padding: 7px 8px 4px;
1001
- }
1292
+ .tour-navigator-tabs button:hover { background: rgba(255, 255, 255, 0.05); }
1293
+ .tour-navigator-tabs button.is-active { color: #fff; border-color: var(--tour-border); background: rgba(169, 159, 255, 0.13); }
1294
+ .tour-navigator-tabs button:focus-visible { outline: 2px solid var(--tour-accent-bright); outline-offset: 1px; }
1002
1295
 
1003
- .tour-search-results { max-height: 72px; }
1296
+ .tour-navigator-content,
1297
+ .tour-navigator-panel,
1298
+ .tour-commits-host {
1299
+ display: flex;
1300
+ flex: 1;
1301
+ min-height: 0;
1302
+ overflow: hidden;
1303
+ }
1004
1304
 
1005
- .tour-rail-sections {
1006
- grid-column: 2;
1007
- grid-row: 2;
1008
- }
1305
+ .tour-navigator-panel { flex-direction: column; }
1306
+ .tour-navigator-panel[hidden] { display: none; }
1307
+ .tour-search-disclosure { flex: 0 0 auto; border-bottom: 1px solid var(--tour-border); }
1308
+ .tour-search-disclosure > summary { padding: 8px 12px; color: var(--tour-muted); cursor: pointer; }
1309
+ .tour-search-disclosure > summary:hover { color: #fff; }
1310
+ .tour-search-disclosure > summary:focus-visible { outline: 2px solid var(--tour-accent-bright); outline-offset: -2px; }
1311
+ .tour-search-disclosure .tour-search { border-bottom: 0; }
1312
+ .tour-scenes, .tour-files { min-height: 0; }
1313
+ .tour-evidence-controls { flex: 0 0 auto; padding: 8px; border-bottom: 1px solid var(--tour-border); }
1314
+ .tour-commits-host { flex-direction: column; }
1315
+ .tour-commits-section { flex: 0 0 auto; max-height: 34%; }
1009
1316
 
1010
- .tour-commits-section {
1011
- grid-column: 2;
1012
- grid-row: 3;
1013
- max-height: 72px;
1014
- }
1317
+ #history-rail.present-navigation-rail {
1318
+ width: 100%;
1319
+ min-width: 0;
1320
+ flex: 1 1 auto;
1321
+ padding: 0;
1322
+ border: 0;
1323
+ background: transparent;
1324
+ }
1015
1325
 
1016
- .tour-narrative {
1017
- top: var(--tour-rail-height);
1018
- left: 0;
1019
- padding: 16px 18px;
1020
- }
1326
+ .present-navigation-rail .history-rail-tabs { padding: 8px 8px 4px; }
1327
+ .present-navigation-rail .history-rail-tabs[hidden] { display: none; }
1328
+ .present-navigation-rail .history-rail-list { padding: 4px 8px 10px; }
1021
1329
 
1022
- .tour-narrative-resizer {
1023
- top: calc(var(--tour-rail-height) + var(--tour-narrative-height) - 4px);
1024
- left: 0;
1025
- }
1330
+ /* Narrative remains a stable viewport above the evidence. */
1331
+ .tour-narrative {
1332
+ height: min(38vh, 360px);
1333
+ max-height: none;
1334
+ padding: 10px 18px 12px;
1335
+ }
1026
1336
 
1027
- body.tour-mode #container {
1028
- width: 100vw;
1029
- height: calc(100vh - var(--tour-rail-height) - var(--tour-narrative-height));
1030
- margin-top: calc(var(--tour-rail-height) + var(--tour-narrative-height));
1031
- margin-left: 0;
1032
- }
1337
+ .tour-narrative-toolbar { margin-bottom: 6px; padding-bottom: 6px; }
1338
+ .tour-narrative-content { flex: 1 1 auto; }
1033
1339
 
1034
- body.tour-discussion .tour-narrative {
1035
- top: var(--tour-rail-height);
1036
- padding: clamp(28px, 7vh, 56px) 24px;
1037
- }
1340
+ @media (max-width: 720px) {
1341
+ :root { --tour-rail-width: 0px; }
1038
1342
 
1039
- .tour-narrative-nav {
1040
- gap: 6px;
1343
+ .tour-shell {
1344
+ inset: 0 auto 0 0;
1345
+ display: flex;
1346
+ width: min(88vw, 340px);
1347
+ height: 100vh;
1348
+ border-right: 1px solid var(--tour-border);
1349
+ border-bottom: 0;
1350
+ box-shadow: 18px 0 45px rgba(0, 0, 0, 0.34);
1041
1351
  }
1042
1352
 
1043
- .tour-narrative-nav button {
1044
- min-width: 64px;
1045
- padding-inline: 7px;
1353
+ .tour-overview {
1354
+ overflow: visible;
1355
+ padding: 14px 44px 10px 14px;
1356
+ border-right: 0;
1357
+ border-bottom: 1px solid var(--tour-border);
1046
1358
  }
1047
1359
 
1048
- .tour-narration-controls select {
1049
- max-width: 150px;
1050
- }
1360
+ .tour-sidebar-resizer { display: none; }
1361
+ .tour-narrative { top: 0; left: 0; height: min(38vh, 360px); padding: 10px 14px 12px; }
1362
+ .tour-narrative-toolbar { gap: 6px; }
1363
+ .tour-narration-controls select { max-width: 150px; }
1364
+ .tour-narration-status { width: 100%; margin-left: 0; text-align: left; }
1051
1365
 
1052
- .tour-narration-status {
1053
- width: 100%;
1366
+ body.tour-mode #container {
1367
+ width: 100vw;
1368
+ height: calc(100vh - var(--tour-narrative-height));
1369
+ margin-top: var(--tour-narrative-height);
1054
1370
  margin-left: 0;
1055
- text-align: left;
1056
1371
  }
1057
1372
  }
1058
-
1059
- @media (prefers-reduced-motion: reduce) {
1060
- .tour-narration-segment {
1061
- transition: none;
1062
- }
1373
+ .tour-commit-legend {
1374
+ padding: 6px 12px;
1375
+ margin: 0;
1376
+ font-size: 12px;
1377
+ opacity: .7;
1378
+ display: flex;
1379
+ flex-wrap: wrap;
1380
+ gap: 4px 12px;
1381
+ }
1382
+ .tour-commit-legend > span { white-space: nowrap; }
1383
+ .tour-range-swatch {
1384
+ display: inline-block;
1385
+ width: 3px;
1386
+ height: 10px;
1387
+ margin-right: 5px;
1388
+ border-radius: 2px;
1389
+ background: var(--bygone-tour-range-color, #a99bf5);
1063
1390
  }