privateboard 0.1.2 → 0.1.4

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.
@@ -29,6 +29,22 @@
29
29
  action / nq question / etc. — never as a decorative fill. */
30
30
  --em: #C9A46B;
31
31
  --em-deep: #B58950;
32
+
33
+ /* Cross-spine token aliases · the unified design system in
34
+ report.html references --ink/--ink-soft/etc. (which a16z /
35
+ anthropic / etc. spines use). Boardroom-dark's native names
36
+ are --text / --text-soft / --line — alias them so unified
37
+ selectors resolve correctly. */
38
+ --ink: var(--text);
39
+ --ink-soft: var(--text-soft);
40
+ --ink-mid: var(--text-soft);
41
+ --ink-faint: var(--text-faint);
42
+ --ink-muted: var(--text-faint);
43
+ --paper: var(--bg);
44
+ --paper-soft: var(--panel-2);
45
+ --rule: var(--line-bright);
46
+ --rule-soft: var(--line);
47
+ --warn: var(--red);
32
48
  /* Sans + serif both carry explicit CJK fallbacks so Chinese body
33
49
  text doesn't drop characters when "Human Sans"/"Inter"/Charter
34
50
  load but lack CJK glyphs. Songti SC / STSong sit at the deep end
@@ -49,9 +65,15 @@
49
65
  "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
50
66
  "Source Han Sans CN", "Songti SC",
51
67
  system-ui, sans-serif;
68
+ /* Serif spine still serif for Latin headlines, but Chinese glyphs
69
+ fall through to PingFang SC first (sans) — user preference is
70
+ that Chinese reads in PingFang globally. Songti / Source Han
71
+ Serif sit deep as last-resort fallbacks. */
52
72
  --serif: "Charter", "Source Serif Pro", "Iowan Old Style",
53
- "Georgia", "Songti SC", "STSong", "Source Han Serif CN",
54
- "Noto Serif CJK SC", "PingFang SC", serif;
73
+ "Georgia",
74
+ "PingFang SC", "PingFang TC", "Hiragino Sans GB",
75
+ "Source Han Sans CN", "Noto Sans CJK SC",
76
+ "Songti SC", "STSong", serif;
55
77
  }
56
78
 
57
79
  * { box-sizing: border-box; margin: 0; padding: 0; }
@@ -82,7 +104,7 @@ html, body {
82
104
  the right. Reads like a journal masthead. */
83
105
  .top-rule {
84
106
  background: var(--bg);
85
- border-bottom: 0.5px solid var(--line-bright);
107
+ border-bottom: 1px solid var(--line-bright);
86
108
  padding: 18px 32px;
87
109
  display: flex;
88
110
  justify-content: space-between;
@@ -198,14 +220,14 @@ html, body {
198
220
  grid-template-columns: repeat(4, 1fr);
199
221
  gap: 28px;
200
222
  padding-top: 24px;
201
- border-top: 0.5px solid var(--line-bright);
223
+ border-top: 1px solid var(--line-bright);
202
224
  }
203
225
  @media (max-width: 720px) {
204
226
  .cover-byline { grid-template-columns: repeat(2, 1fr); gap: 20px; }
205
227
  }
206
228
  .byline-block .label {
207
229
  font-family: var(--mono);
208
- font-size: 9.5px;
230
+ font-size: 10px;
209
231
  letter-spacing: 0.28em;
210
232
  text-transform: uppercase;
211
233
  color: var(--text-faint);
@@ -213,7 +235,7 @@ html, body {
213
235
  margin-bottom: 8px;
214
236
  }
215
237
  .byline-block .value {
216
- font-size: 13.5px;
238
+ font-size: 14px;
217
239
  color: var(--text);
218
240
  font-weight: 500;
219
241
  line-height: 1.45;
@@ -223,7 +245,7 @@ html, body {
223
245
  width: 22px; height: 22px;
224
246
  image-rendering: pixelated;
225
247
  image-rendering: crisp-edges;
226
- border: 0.5px solid var(--line-strong);
248
+ border: 1px solid var(--line-strong);
227
249
  background: var(--bg);
228
250
  margin-left: -6px;
229
251
  }
@@ -232,7 +254,7 @@ html, body {
232
254
  .cover-versions {
233
255
  margin-top: 22px;
234
256
  padding-top: 22px;
235
- border-top: 0.5px solid var(--line-bright);
257
+ border-top: 1px solid var(--line-bright);
236
258
  display: flex;
237
259
  align-items: center;
238
260
  gap: 12px;
@@ -240,7 +262,7 @@ html, body {
240
262
  }
241
263
  .cover-versions-label {
242
264
  font-family: var(--mono);
243
- font-size: 9.5px;
265
+ font-size: 10px;
244
266
  letter-spacing: 0.28em;
245
267
  text-transform: uppercase;
246
268
  color: var(--text-faint);
@@ -251,7 +273,7 @@ html, body {
251
273
  align-items: center;
252
274
  gap: 8px;
253
275
  padding: 5px 10px;
254
- border: 0.5px solid var(--line-bright);
276
+ border: 1px solid var(--line-bright);
255
277
  color: var(--text-soft);
256
278
  text-decoration: none;
257
279
  font-family: var(--mono);
@@ -307,7 +329,7 @@ html, body {
307
329
  text-transform: uppercase;
308
330
  margin: 64px 0 14px;
309
331
  padding-bottom: 12px;
310
- border-bottom: 0.5px solid var(--line-bright);
332
+ border-bottom: 1px solid var(--line-bright);
311
333
  }
312
334
  .body h2 {
313
335
  font-size: 34px;
@@ -348,32 +370,29 @@ html, body {
348
370
  .body em { color: var(--em-deep); font-style: italic; }
349
371
  .body code {
350
372
  background: var(--panel-2);
351
- border: 0.5px solid var(--line-bright);
373
+ border: 1px solid var(--line-bright);
352
374
  padding: 1px 7px;
353
375
  font-family: "SF Mono", Menlo, Consolas, monospace;
354
- font-size: 11.5px;
376
+ font-size: 12px;
355
377
  color: var(--text);
356
378
  letter-spacing: 0.02em;
357
379
  }
358
380
  .body code.badge-confidence-high { color: var(--lime); border-color: var(--lime-dim); }
359
381
  .body code.badge-confidence-medium { color: #C99826; border-color: rgba(201, 152, 38, 0.35); }
360
382
  .body code.badge-confidence-low { color: #C85A5A; border-color: rgba(200, 90, 90, 0.35); }
361
- .body code.badge-priority-p0 {
362
- background: var(--lime);
363
- color: var(--bg);
364
- border-color: var(--lime);
365
- font-weight: 700;
366
- letter-spacing: 0.12em;
367
- }
368
- .body code.badge-priority-p1 { background: var(--panel-3); color: var(--text); font-weight: 700; }
369
- .body code.badge-priority-p2 { color: var(--text-soft); }
383
+ /* Priority badges · typographic only (no fill, no border) · the
384
+ shared base in report.html locks down padding / background / border
385
+ with !important. Spine only encodes priority via colour + weight. */
386
+ .body code.badge-priority-p0 { color: var(--lime); }
387
+ .body code.badge-priority-p1 { color: var(--text); }
388
+ .body code.badge-priority-p2 { color: var(--text-faint); }
370
389
 
371
390
  .body blockquote {
372
391
  padding: 8px 0 8px 28px;
373
392
  margin: 22px 0;
374
393
  color: var(--text-soft);
375
394
  font-style: italic;
376
- font-size: 16.5px;
395
+ font-size: 17px;
377
396
  line-height: 1.6;
378
397
  position: relative;
379
398
  }
@@ -397,21 +416,21 @@ html, body {
397
416
  background: transparent;
398
417
  margin: 0 0 56px;
399
418
  padding: 36px 0 32px;
400
- border-top: 1.5px solid var(--text);
401
- border-bottom: 0.5px solid var(--line-bright);
419
+ border-top: 2px solid var(--text);
420
+ border-bottom: 1px solid var(--line-bright);
402
421
  position: relative;
403
422
  }
404
423
  .body section.section-bottom-line::before {
405
424
  content: "";
406
425
  position: absolute;
407
- top: -1.5px;
426
+ top: -2px;
408
427
  left: 0;
409
428
  width: 56px;
410
- height: 1.5px;
429
+ height: 2px;
411
430
  background: var(--lime);
412
431
  }
413
432
  .body h2.section-bottom-line {
414
- font-size: 10.5px;
433
+ font-size: 11px;
415
434
  color: var(--text-faint);
416
435
  text-transform: uppercase;
417
436
  letter-spacing: 0.28em;
@@ -449,7 +468,7 @@ html, body {
449
468
 
450
469
  /* Thesis · anchor substitute. Pull-statement treatment, no panel. */
451
470
  .body h2.section-thesis {
452
- font-size: 10.5px;
471
+ font-size: 11px;
453
472
  color: var(--text-faint);
454
473
  text-transform: uppercase;
455
474
  letter-spacing: 0.22em;
@@ -473,7 +492,7 @@ html, body {
473
492
  }
474
493
  .body section.section-thesis p:first-child em { color: var(--text); font-style: italic; font-family: var(--serif); }
475
494
  .body section.section-thesis p:not(:first-child) {
476
- font-size: 14.5px;
495
+ font-size: 15px;
477
496
  line-height: 1.65;
478
497
  color: var(--text-soft);
479
498
  }
@@ -489,7 +508,7 @@ html, body {
489
508
  }
490
509
  .body section.section-working-hypothesis p {
491
510
  font-family: var(--serif);
492
- font-size: 17.5px;
511
+ font-size: 18px;
493
512
  line-height: 1.72;
494
513
  color: var(--text);
495
514
  font-weight: 400;
@@ -567,10 +586,10 @@ html, body {
567
586
  counter-increment: bigidea;
568
587
  position: relative;
569
588
  padding: 18px 0 18px 72px;
570
- border-top: 0.5px solid var(--line-bright);
589
+ border-top: 1px solid var(--line-bright);
571
590
  line-height: 1.6;
572
591
  }
573
- .body section.section-big-ideas ol > li:last-child { border-bottom: 0.5px solid var(--line-bright); }
592
+ .body section.section-big-ideas ol > li:last-child { border-bottom: 1px solid var(--line-bright); }
574
593
  .body section.section-big-ideas ol > li::before {
575
594
  content: counter(bigidea);
576
595
  position: absolute;
@@ -583,7 +602,7 @@ html, body {
583
602
  font-size: 32px;
584
603
  line-height: 1;
585
604
  }
586
- .body section.section-big-ideas ol > li p { margin: 6px 0; font-size: 14.5px; }
605
+ .body section.section-big-ideas ol > li p { margin: 6px 0; font-size: 15px; }
587
606
  .body section.section-big-ideas ol > li p:first-child strong {
588
607
  font-family: var(--serif);
589
608
  font-size: 22px;
@@ -598,11 +617,11 @@ html, body {
598
617
  background: transparent;
599
618
  padding: 14px 0 14px 0;
600
619
  font-style: normal;
601
- font-size: 14.5px;
620
+ font-size: 15px;
602
621
  color: var(--text-soft);
603
622
  margin: 18px 0;
604
- border-top: 0.5px solid var(--line-bright);
605
- border-bottom: 0.5px solid var(--line-bright);
623
+ border-top: 1px solid var(--line-bright);
624
+ border-bottom: 1px solid var(--line-bright);
606
625
  }
607
626
  .body section.section-convergence blockquote::before { display: none; }
608
627
  .body section.section-convergence blockquote strong { color: var(--text); }
@@ -612,7 +631,7 @@ html, body {
612
631
 
613
632
  .body section.section-planning-assumption {
614
633
  background: var(--panel-2);
615
- border: 0.5px solid var(--line-bright);
634
+ border: 1px solid var(--line-bright);
616
635
  padding: 22px 28px;
617
636
  margin: 18px 0 28px;
618
637
  position: relative;
@@ -620,10 +639,10 @@ html, body {
620
639
  .body section.section-planning-assumption::before {
621
640
  content: "";
622
641
  position: absolute;
623
- top: -0.5px;
642
+ top: -1px;
624
643
  left: 0;
625
644
  width: 48px;
626
- height: 1.5px;
645
+ height: 2px;
627
646
  background: var(--accent);
628
647
  }
629
648
  .body section.section-planning-assumption blockquote {
@@ -733,7 +752,7 @@ html, body {
733
752
  align-items: baseline;
734
753
  gap: 6px 12px;
735
754
  margin: 0 0 14px;
736
- font-size: 12.5px;
755
+ font-size: 13px;
737
756
  line-height: 1.6;
738
757
  color: var(--text);
739
758
  }
@@ -745,7 +764,7 @@ html, body {
745
764
  }
746
765
  .rec-meta-label {
747
766
  font-family: var(--mono);
748
- font-size: 9.5px;
767
+ font-size: 10px;
749
768
  color: var(--text-faint);
750
769
  letter-spacing: 0.28em;
751
770
  text-transform: uppercase;
@@ -779,7 +798,7 @@ html, body {
779
798
  flex: 0 0 auto;
780
799
  font-family: var(--mono);
781
800
  font-style: normal;
782
- font-size: 9.5px;
801
+ font-size: 10px;
783
802
  color: var(--text-faint);
784
803
  letter-spacing: 0.28em;
785
804
  text-transform: uppercase;
@@ -804,9 +823,9 @@ html, body {
804
823
  padding: 22px 0 22px 64px;
805
824
  margin: 0;
806
825
  line-height: 1.6;
807
- border-top: 0.5px solid var(--line-bright);
826
+ border-top: 1px solid var(--line-bright);
808
827
  }
809
- .body section.section-the-bet ol > li:last-child { border-bottom: 0.5px solid var(--line-bright); }
828
+ .body section.section-the-bet ol > li:last-child { border-bottom: 1px solid var(--line-bright); }
810
829
  .body section.section-the-bet ol > li::before {
811
830
  content: counter(rec, decimal-leading-zero);
812
831
  position: absolute; top: 24px; left: 0;
@@ -816,20 +835,20 @@ html, body {
816
835
  font-size: 22px;
817
836
  line-height: 1;
818
837
  }
819
- .body section.section-the-bet ol > li p { margin: 6px 0; font-size: 14.5px; }
820
- .body section.section-the-bet ol > li p:first-child strong { font-size: 16.5px; color: var(--text); }
838
+ .body section.section-the-bet ol > li p { margin: 6px 0; font-size: 15px; }
839
+ .body section.section-the-bet ol > li p:first-child strong { font-size: 17px; color: var(--text); }
821
840
  .body section.section-the-bet > blockquote {
822
841
  margin-top: 24px;
823
842
  background: rgba(181, 112, 106, 0.06);
824
843
  padding: 14px 20px;
825
- border-top: 1.5px solid var(--red);
844
+ border-top: 2px solid var(--red);
826
845
  font-style: normal;
827
846
  }
828
847
 
829
848
  /* Why Now · single-callout treatment. */
830
849
  .body section.section-why-now {
831
850
  background: var(--panel-2);
832
- border: 0.5px solid var(--line-bright);
851
+ border: 1px solid var(--line-bright);
833
852
  padding: 24px 28px;
834
853
  margin: 22px 0 32px;
835
854
  position: relative;
@@ -837,13 +856,13 @@ html, body {
837
856
  .body section.section-why-now::before {
838
857
  content: "";
839
858
  position: absolute;
840
- top: -0.5px;
859
+ top: -1px;
841
860
  left: 0;
842
861
  width: 56px;
843
- height: 1.5px;
862
+ height: 2px;
844
863
  background: var(--accent);
845
864
  }
846
- .body section.section-why-now p { font-size: 14.5px; line-height: 1.65; }
865
+ .body section.section-why-now p { font-size: 15px; line-height: 1.65; }
847
866
  .body section.section-why-now p:first-child { color: var(--text); font-weight: 500; }
848
867
 
849
868
  /* Two Paths · 2-column comparison block. */
@@ -862,7 +881,7 @@ html, body {
862
881
  }
863
882
  .body section.section-two-paths .path .path-tag {
864
883
  font-family: var(--mono);
865
- font-size: 9.5px;
884
+ font-size: 10px;
866
885
  letter-spacing: 0.28em;
867
886
  text-transform: uppercase;
868
887
  color: var(--text-faint);
@@ -870,7 +889,7 @@ html, body {
870
889
  margin-bottom: 8px;
871
890
  }
872
891
  .body section.section-two-paths .path h3 { font-size: 16px; margin: 0 0 10px; }
873
- .body section.section-two-paths .path p { font-size: 13.5px; color: var(--text-soft); margin: 6px 0; }
892
+ .body section.section-two-paths .path p { font-size: 14px; color: var(--text-soft); margin: 6px 0; }
874
893
 
875
894
  .body section.section-pre-mortem table.md-table { margin: 18px 0; }
876
895
 
@@ -965,7 +984,7 @@ html, body {
965
984
  text-transform: uppercase;
966
985
  letter-spacing: 0.22em;
967
986
  font-weight: 700;
968
- border-top: 0.5px solid var(--line-bright);
987
+ border-top: 1px solid var(--line-bright);
969
988
  }
970
989
  .body section.section-methodology { color: var(--text-soft); font-size: 12px; line-height: 1.55; }
971
990
  .body section.section-methodology p { margin: 8px 0; }
@@ -973,20 +992,20 @@ html, body {
973
992
  .body section.section-methodology strong {
974
993
  color: var(--text);
975
994
  font-family: var(--mono);
976
- font-size: 11.5px;
995
+ font-size: 12px;
977
996
  }
978
997
 
979
998
  .body table.md-table {
980
999
  width: 100%;
981
1000
  border-collapse: collapse;
982
1001
  margin: 22px 0 24px;
983
- font-size: 13.5px;
984
- border-top: 1.5px solid var(--text);
1002
+ font-size: 14px;
1003
+ border-top: 2px solid var(--text);
985
1004
  }
986
1005
  .body table.md-table th,
987
1006
  .body table.md-table td {
988
1007
  padding: 12px 14px;
989
- border-bottom: 0.5px solid var(--line-bright);
1008
+ border-bottom: 1px solid var(--line-bright);
990
1009
  text-align: left;
991
1010
  vertical-align: top;
992
1011
  line-height: 1.55;
@@ -996,10 +1015,10 @@ html, body {
996
1015
  color: var(--text-faint);
997
1016
  font-family: var(--mono);
998
1017
  font-weight: 700;
999
- font-size: 10px;
1018
+ font-size: 12px;
1000
1019
  letter-spacing: 0.16em;
1001
1020
  text-transform: uppercase;
1002
- border-bottom: 0.5px solid var(--line-strong);
1021
+ border-bottom: 1px solid var(--line-strong);
1003
1022
  padding: 10px 14px;
1004
1023
  }
1005
1024
  .body table.md-table td:first-child {
@@ -1011,7 +1030,7 @@ html, body {
1011
1030
 
1012
1031
  .body pre.codeblock {
1013
1032
  background: var(--panel-2);
1014
- border: 0.5px solid var(--line-bright);
1033
+ border: 1px solid var(--line-bright);
1015
1034
  padding: 12px 14px;
1016
1035
  margin: 14px 0;
1017
1036
  overflow-x: auto;
@@ -1026,8 +1045,8 @@ html, body {
1026
1045
  each chart already reads as the caption; this is its frame. */
1027
1046
  .body pre.mermaid {
1028
1047
  background: var(--panel-2);
1029
- border-top: 1.5px solid var(--text);
1030
- border-bottom: 0.5px solid var(--line-bright);
1048
+ border-top: 2px solid var(--text);
1049
+ border-bottom: 1px solid var(--line-bright);
1031
1050
  padding: 28px 24px 24px;
1032
1051
  margin: 22px 0 28px;
1033
1052
  text-align: center;
@@ -1060,7 +1079,7 @@ html, body {
1060
1079
  .foot-rule {
1061
1080
  margin: 56px 32px 0;
1062
1081
  padding: 18px 0;
1063
- border-top: 0.5px solid var(--line-bright);
1082
+ border-top: 1px solid var(--line-bright);
1064
1083
  text-align: center;
1065
1084
  font-family: var(--mono);
1066
1085
  font-size: 10px;
@@ -1082,17 +1101,56 @@ html, body {
1082
1101
 
1083
1102
  /* ─── Metric strip · per-spine treatment ─────────────────────────
1084
1103
  Inherits the spine-agnostic baseline in public/report.html's inline
1085
- <style>; this block tweaks surface, accent + typography to match
1086
- the spine's voice. No `border-left`, no parallel borders against
1087
- adjacent .chapter-num / section h2. */
1104
+ <style> (Swiss-editorial layout: big thin numerals top, mute mono
1105
+ label bottom, hairline grid, no card surfaces). This block only
1106
+ re-skins palette tokens — the layout is constant across spines. */
1088
1107
  .body .metric-strip-intro { color: var(--text-soft); }
1089
- .body .metric-card {
1090
- background: var(--panel-2);
1091
- border-color: var(--line-bright);
1092
- }
1093
1108
  .body .metric-value { color: var(--text); }
1094
1109
  .body .metric-card[data-trend="up"] .metric-value { color: var(--em); }
1095
1110
  .body .metric-card[data-trend="down"] .metric-value { color: var(--red); }
1096
1111
  .body .metric-trend[data-trend="up"] { color: var(--em); }
1097
1112
  .body .metric-trend[data-trend="down"] { color: var(--red); }
1098
1113
  .body .metric-label { color: var(--accent); }
1114
+
1115
+ /* ─── Path comparison · per-spine treatment ──────────────────────
1116
+ Inherits spine-agnostic baseline. boardroom-dark uses lime / red
1117
+ on the cool charcoal panels — sharp without competing with the
1118
+ prose. */
1119
+ .body .path-comparison .path { background: var(--panel-2); border-color: var(--line-bright); }
1120
+ .body .path-comparison .path-weak { border-top-color: var(--red); }
1121
+ .body .path-comparison .path-strong { border-top-color: var(--em); }
1122
+ .body .path-comparison .path-weak .path-tag { color: var(--red); }
1123
+ .body .path-comparison .path-strong .path-tag { color: var(--em); }
1124
+ .body .path-comparison .path-name { color: var(--text); }
1125
+ .body .path-comparison .path li { color: var(--text-soft); border-color: var(--line); }
1126
+ .body .path-comparison .path-weak li::before { background: var(--red); }
1127
+ .body .path-comparison .path-strong li::before { background: var(--em); }
1128
+ .body .path-comparison-implication { color: var(--text-soft); }
1129
+
1130
+ /* ─── Views-compared · per-spine · boardroom-dark ──────────────
1131
+ Hairline frame · accent stripe on TOP (per project rule).
1132
+ Alignment uses `--em` (gold); divergence uses `--red`. */
1133
+ .body .vc-section-label { color: var(--em); border-color: var(--line-bright); }
1134
+ .body .views-compared-alignment .vc-card {
1135
+ border-color: var(--line-bright);
1136
+ border-top-color: var(--em);
1137
+ }
1138
+ .body .vc-card-headline { color: var(--text); }
1139
+ .body .vc-chip { color: var(--text-soft); border-color: var(--line-bright); }
1140
+ .body .vc-card-note { color: var(--text-soft); }
1141
+ .body .vc-fork { border-color: var(--line-bright); border-top-color: var(--red); }
1142
+ .body .vc-fork-hinge { color: var(--text); }
1143
+ .body .vc-side { border-color: var(--line); }
1144
+ .body .vc-side-label { color: var(--red); }
1145
+ .body .vc-side-stance { color: var(--text-soft); }
1146
+ .body .vc-fork-resolution { color: var(--text-soft); border-top-color: var(--line); }
1147
+ .body .vc-resolution-label { color: var(--text-faint); }
1148
+ .body .vc-row-name { color: var(--text); }
1149
+ .body .vc-row-stance { color: var(--em); }
1150
+ .body .vc-row-position { color: var(--text-soft); }
1151
+ .body .vc-row-quote { color: var(--text); }
1152
+ .body .views-compared-synthesis {
1153
+ border-color: var(--line-bright);
1154
+ border-top-color: var(--text-faint);
1155
+ }
1156
+ .body .vc-synthesis-body { color: var(--text); }