privateboard 0.1.2 → 0.1.3
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/dist/cli.js +3355 -940
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/public/agent-profile.js +17 -7
- package/public/app.js +3775 -434
- package/public/index.html +2357 -265
- package/public/onboarding.js +36 -9
- package/public/quote-cta.css +49 -5
- package/public/quote-cta.js +215 -17
- package/public/report/spines/a16z-thesis.css +212 -97
- package/public/report/spines/anthropic-essay.css +564 -221
- package/public/report/spines/boardroom-dark.css +130 -72
- package/public/report/spines/gartner-note.css +83 -48
- package/public/report/spines/mckinsey-deck.css +81 -31
- package/public/report/spines/openai-paper.css +96 -35
- package/public/report.html +3576 -197
- package/public/room-settings.js +11 -8
- package/public/themes.css +15 -2
- package/public/user-settings.css +19 -8
- package/public/user-settings.js +37 -162
|
@@ -36,19 +36,30 @@
|
|
|
36
36
|
--oxblood: #7A2E1A;
|
|
37
37
|
--oxblood-deep: #4F1D10;
|
|
38
38
|
|
|
39
|
+
/* Cross-spine token aliases · used by the unified design system. */
|
|
40
|
+
--accent: var(--gold);
|
|
41
|
+
--warn: var(--oxblood);
|
|
42
|
+
|
|
39
43
|
/* Confidence — text only, no fill */
|
|
40
44
|
--conf-high: #3F5C2F;
|
|
41
45
|
--conf-mid: #6E541A;
|
|
42
46
|
--conf-low: #7A2E1A;
|
|
43
47
|
|
|
44
|
-
/* Type · CJK
|
|
48
|
+
/* Type · CJK chain anchors on PingFang SC so Chinese glyphs render
|
|
49
|
+
as PingFang globally (user preference). Songti SC remains as a
|
|
50
|
+
last-resort fallback for headless contexts that can't reach
|
|
51
|
+
PingFang's font directory. */
|
|
45
52
|
--serif: "Charter", "Source Serif Pro", "Iowan Old Style", Georgia,
|
|
46
|
-
"
|
|
53
|
+
"PingFang SC", "PingFang TC", "Hiragino Sans GB",
|
|
54
|
+
"Source Han Sans CN", "Noto Sans CJK SC",
|
|
55
|
+
"Songti SC", "STSong", serif;
|
|
47
56
|
--sans: "Inter", "Helvetica Neue", "Arial", -apple-system, BlinkMacSystemFont,
|
|
48
|
-
"
|
|
49
|
-
"Source Han Sans CN", "Noto Sans CJK SC",
|
|
57
|
+
"PingFang SC", "PingFang TC", "Hiragino Sans GB",
|
|
58
|
+
"Source Han Sans CN", "Noto Sans CJK SC",
|
|
59
|
+
"Songti SC", "STSong", sans-serif;
|
|
50
60
|
--mono: "SF Mono", "JetBrains Mono", "Menlo",
|
|
51
|
-
"
|
|
61
|
+
"PingFang SC", "PingFang TC", "Hiragino Sans GB",
|
|
62
|
+
"Source Han Sans CN", "Songti SC", "STSong", monospace;
|
|
52
63
|
}
|
|
53
64
|
|
|
54
65
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
@@ -56,7 +67,7 @@ html, body {
|
|
|
56
67
|
background: var(--paper);
|
|
57
68
|
color: var(--ink);
|
|
58
69
|
font-family: var(--sans);
|
|
59
|
-
font-size:
|
|
70
|
+
font-size: 15px;
|
|
60
71
|
line-height: 1.65;
|
|
61
72
|
-webkit-font-smoothing: antialiased;
|
|
62
73
|
text-rendering: optimizeLegibility;
|
|
@@ -77,7 +88,7 @@ html, body {
|
|
|
77
88
|
display: flex; justify-content: space-between; align-items: center;
|
|
78
89
|
gap: 14px;
|
|
79
90
|
font-family: var(--mono);
|
|
80
|
-
font-size:
|
|
91
|
+
font-size: 11px;
|
|
81
92
|
letter-spacing: 0.18em;
|
|
82
93
|
text-transform: uppercase;
|
|
83
94
|
border-bottom: 1px solid var(--rule);
|
|
@@ -106,15 +117,6 @@ html, body {
|
|
|
106
117
|
position: relative;
|
|
107
118
|
border-bottom: 1px solid var(--rule);
|
|
108
119
|
}
|
|
109
|
-
/* Single thin gold rule across the top — the only ornament. */
|
|
110
|
-
.cover::before {
|
|
111
|
-
content: "";
|
|
112
|
-
position: absolute;
|
|
113
|
-
top: 0; left: 56px; right: 56px;
|
|
114
|
-
height: 1px;
|
|
115
|
-
background: var(--gold);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
120
|
.cover-tag {
|
|
119
121
|
display: flex;
|
|
120
122
|
align-items: center;
|
|
@@ -168,7 +170,7 @@ html, body {
|
|
|
168
170
|
@media (max-width: 720px) { .cover-byline { grid-template-columns: repeat(2, 1fr); gap: 22px; } }
|
|
169
171
|
.byline-block .label {
|
|
170
172
|
font-family: var(--mono);
|
|
171
|
-
font-size:
|
|
173
|
+
font-size: 10px;
|
|
172
174
|
letter-spacing: 0.24em;
|
|
173
175
|
text-transform: uppercase;
|
|
174
176
|
color: var(--gold);
|
|
@@ -177,7 +179,7 @@ html, body {
|
|
|
177
179
|
}
|
|
178
180
|
.byline-block .value {
|
|
179
181
|
font-family: var(--sans);
|
|
180
|
-
font-size:
|
|
182
|
+
font-size: 13px;
|
|
181
183
|
color: var(--ink);
|
|
182
184
|
font-weight: 400;
|
|
183
185
|
line-height: 1.5;
|
|
@@ -200,7 +202,7 @@ html, body {
|
|
|
200
202
|
}
|
|
201
203
|
.cover-versions-label {
|
|
202
204
|
font-family: var(--mono);
|
|
203
|
-
font-size:
|
|
205
|
+
font-size: 10px;
|
|
204
206
|
letter-spacing: 0.24em;
|
|
205
207
|
text-transform: uppercase;
|
|
206
208
|
color: var(--ink-faint);
|
|
@@ -267,13 +269,15 @@ html, body {
|
|
|
267
269
|
font-weight: 500;
|
|
268
270
|
}
|
|
269
271
|
.body p {
|
|
270
|
-
margin:
|
|
272
|
+
margin: 14px 0;
|
|
271
273
|
line-height: 1.7;
|
|
272
274
|
color: var(--ink-soft);
|
|
273
|
-
|
|
275
|
+
/* 16px · comfortable reading register, body dominant over the
|
|
276
|
+
14px table cells. Earlier 14.5 / 13.5 swings were too tight. */
|
|
277
|
+
font-size: 16px;
|
|
274
278
|
}
|
|
275
|
-
.body ul, .body ol { margin:
|
|
276
|
-
.body li { margin:
|
|
279
|
+
.body ul, .body ol { margin: 14px 0 18px 22px; }
|
|
280
|
+
.body li { margin: 8px 0; line-height: 1.7; color: var(--ink-soft); font-size: 15px; }
|
|
277
281
|
.body strong { color: var(--ink); font-weight: 600; }
|
|
278
282
|
.body em { color: var(--gold-deep); font-style: italic; }
|
|
279
283
|
|
|
@@ -283,7 +287,7 @@ html, body {
|
|
|
283
287
|
border: 1px solid var(--rule-strong);
|
|
284
288
|
padding: 1px 7px;
|
|
285
289
|
font-family: var(--mono);
|
|
286
|
-
font-size:
|
|
290
|
+
font-size: 12px;
|
|
287
291
|
color: var(--ink);
|
|
288
292
|
letter-spacing: 0.04em;
|
|
289
293
|
border-radius: 2px;
|
|
@@ -292,18 +296,12 @@ html, body {
|
|
|
292
296
|
.body code.badge-confidence-high { color: var(--conf-high); border-color: rgba(63, 92, 47, 0.4); }
|
|
293
297
|
.body code.badge-confidence-medium { color: var(--conf-mid); border-color: rgba(110, 84, 26, 0.4); }
|
|
294
298
|
.body code.badge-confidence-low { color: var(--conf-low); border-color: rgba(122, 46, 26, 0.4); }
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
.body code.badge-priority-p1 {
|
|
300
|
-
|
|
301
|
-
font-weight: 600; letter-spacing: 0.12em;
|
|
302
|
-
}
|
|
303
|
-
.body code.badge-priority-p2 {
|
|
304
|
-
background: transparent; color: var(--ink-faint); border-color: var(--rule-strong);
|
|
305
|
-
letter-spacing: 0.1em;
|
|
306
|
-
}
|
|
299
|
+
/* Priority badges · typographic only · a16z uses gold-deep for the
|
|
300
|
+
strong-priority accent (matches its accent throughout) and ink /
|
|
301
|
+
ink-faint for the rest. */
|
|
302
|
+
.body code.badge-priority-p0 { color: var(--gold-deep); }
|
|
303
|
+
.body code.badge-priority-p1 { color: var(--ink); }
|
|
304
|
+
.body code.badge-priority-p2 { color: var(--ink-faint); }
|
|
307
305
|
|
|
308
306
|
.body blockquote {
|
|
309
307
|
padding: 14px 0;
|
|
@@ -325,7 +323,7 @@ html, body {
|
|
|
325
323
|
background: transparent;
|
|
326
324
|
margin: 0 0 44px;
|
|
327
325
|
padding: 0 0 36px;
|
|
328
|
-
border-top:
|
|
326
|
+
border-top: 2px solid var(--ink);
|
|
329
327
|
padding-top: 28px;
|
|
330
328
|
border-bottom: 1px solid var(--rule);
|
|
331
329
|
}
|
|
@@ -367,7 +365,7 @@ html, body {
|
|
|
367
365
|
margin: 0 0 44px;
|
|
368
366
|
padding: 28px 0 36px;
|
|
369
367
|
background: transparent;
|
|
370
|
-
border-top:
|
|
368
|
+
border-top: 2px solid var(--ink);
|
|
371
369
|
border-bottom: 1px solid var(--rule);
|
|
372
370
|
}
|
|
373
371
|
.body section.section-thesis p:first-child {
|
|
@@ -386,7 +384,7 @@ html, body {
|
|
|
386
384
|
font-style: italic;
|
|
387
385
|
}
|
|
388
386
|
.body section.section-thesis p:not(:first-child) {
|
|
389
|
-
font-size:
|
|
387
|
+
font-size: 15px; color: var(--ink-soft); font-style: normal;
|
|
390
388
|
}
|
|
391
389
|
|
|
392
390
|
/* ─── Working hypothesis ────────────────────────────────────── */
|
|
@@ -410,7 +408,7 @@ html, body {
|
|
|
410
408
|
research-note's strategic frame. */
|
|
411
409
|
.body h2.section-strategic-outlook {
|
|
412
410
|
font-family: var(--mono);
|
|
413
|
-
font-size:
|
|
411
|
+
font-size: 11px;
|
|
414
412
|
color: var(--gold);
|
|
415
413
|
text-transform: uppercase;
|
|
416
414
|
letter-spacing: 0.26em;
|
|
@@ -420,7 +418,7 @@ html, body {
|
|
|
420
418
|
.body section.section-strategic-outlook {
|
|
421
419
|
margin: 0 0 44px;
|
|
422
420
|
padding: 28px 0 36px;
|
|
423
|
-
border-top:
|
|
421
|
+
border-top: 2px solid var(--ink);
|
|
424
422
|
border-bottom: 1px solid var(--rule);
|
|
425
423
|
}
|
|
426
424
|
.body section.section-strategic-outlook p:first-child {
|
|
@@ -465,7 +463,7 @@ html, body {
|
|
|
465
463
|
top: 24px; left: 0;
|
|
466
464
|
font-family: var(--mono);
|
|
467
465
|
font-weight: 500;
|
|
468
|
-
font-size:
|
|
466
|
+
font-size: 11px;
|
|
469
467
|
color: var(--gold);
|
|
470
468
|
line-height: 1;
|
|
471
469
|
letter-spacing: 0.16em;
|
|
@@ -482,7 +480,7 @@ html, body {
|
|
|
482
480
|
letter-spacing: -0.005em;
|
|
483
481
|
}
|
|
484
482
|
.body section.section-critical-assumptions ol > li p {
|
|
485
|
-
font-size:
|
|
483
|
+
font-size: 14px;
|
|
486
484
|
line-height: 1.6;
|
|
487
485
|
color: var(--ink-soft);
|
|
488
486
|
}
|
|
@@ -511,7 +509,7 @@ html, body {
|
|
|
511
509
|
border-top: 1px solid var(--gold);
|
|
512
510
|
}
|
|
513
511
|
.body section.section-scenario-tree h3:first-of-type {
|
|
514
|
-
border-top:
|
|
512
|
+
border-top: 2px solid var(--ink);
|
|
515
513
|
padding-top: 18px;
|
|
516
514
|
}
|
|
517
515
|
.body section.section-scenario-tree p {
|
|
@@ -537,7 +535,7 @@ html, body {
|
|
|
537
535
|
.body section.section-scenario-tree ul > li {
|
|
538
536
|
position: relative;
|
|
539
537
|
padding-left: 14px;
|
|
540
|
-
font-size:
|
|
538
|
+
font-size: 14px;
|
|
541
539
|
line-height: 1.6;
|
|
542
540
|
color: var(--ink-soft);
|
|
543
541
|
margin: 4px 0;
|
|
@@ -554,22 +552,22 @@ html, body {
|
|
|
554
552
|
Override the default md-table treatment with a tighter,
|
|
555
553
|
institutional-feel grid. Mono headers, hairline rules. */
|
|
556
554
|
.body section.section-leading-indicators table.md-table {
|
|
557
|
-
font-size:
|
|
558
|
-
border-top:
|
|
555
|
+
font-size: 14px;
|
|
556
|
+
border-top: 2px solid var(--ink);
|
|
559
557
|
}
|
|
560
558
|
.body section.section-leading-indicators table.md-table th {
|
|
561
559
|
background: transparent;
|
|
562
560
|
color: var(--gold);
|
|
563
561
|
font-family: var(--mono);
|
|
564
562
|
font-weight: 600;
|
|
565
|
-
font-size:
|
|
563
|
+
font-size: 12px;
|
|
566
564
|
letter-spacing: 0.22em;
|
|
567
565
|
text-transform: uppercase;
|
|
568
566
|
padding: 10px 12px;
|
|
569
567
|
}
|
|
570
568
|
.body section.section-leading-indicators table.md-table td {
|
|
571
569
|
padding: 12px;
|
|
572
|
-
font-size:
|
|
570
|
+
font-size: 14px;
|
|
573
571
|
color: var(--ink-soft);
|
|
574
572
|
vertical-align: top;
|
|
575
573
|
line-height: 1.5;
|
|
@@ -579,7 +577,7 @@ html, body {
|
|
|
579
577
|
font-weight: 600;
|
|
580
578
|
color: var(--ink);
|
|
581
579
|
font-family: var(--mono);
|
|
582
|
-
font-size:
|
|
580
|
+
font-size: 14px;
|
|
583
581
|
letter-spacing: 0.04em;
|
|
584
582
|
width: 26%;
|
|
585
583
|
}
|
|
@@ -615,7 +613,7 @@ html, body {
|
|
|
615
613
|
font-size: 16px; line-height: 1.3; margin: 0 0 10px; font-weight: 600;
|
|
616
614
|
}
|
|
617
615
|
.body section.section-headline-findings .pillar p {
|
|
618
|
-
font-size:
|
|
616
|
+
font-size: 14px; color: var(--ink-soft); line-height: 1.6; margin: 8px 0;
|
|
619
617
|
}
|
|
620
618
|
|
|
621
619
|
/* ─── Big Ideas · disciplined typographic list ───────────────── */
|
|
@@ -666,7 +664,7 @@ html, body {
|
|
|
666
664
|
border-top: 1px solid var(--gold);
|
|
667
665
|
border-bottom: 1px solid var(--rule);
|
|
668
666
|
}
|
|
669
|
-
.body section.section-why-now p { font-size:
|
|
667
|
+
.body section.section-why-now p { font-size: 15px; line-height: 1.65; color: var(--ink); }
|
|
670
668
|
.body section.section-why-now p:first-child { font-weight: 500; color: var(--ink); }
|
|
671
669
|
|
|
672
670
|
/* ─── The Bet · disciplined numbered list ───────────────────── */
|
|
@@ -737,7 +735,7 @@ html, body {
|
|
|
737
735
|
border-bottom: 1px solid var(--rule);
|
|
738
736
|
}
|
|
739
737
|
.body section.section-two-paths > p:first-child {
|
|
740
|
-
font-size:
|
|
738
|
+
font-size: 15px; color: var(--ink-soft); margin-bottom: 16px;
|
|
741
739
|
}
|
|
742
740
|
|
|
743
741
|
/* ─── Recommendations / Considerations · editorial cards ───── */
|
|
@@ -751,17 +749,34 @@ html, body {
|
|
|
751
749
|
|
|
752
750
|
.body section.section-recommendations li.rec-item,
|
|
753
751
|
.body section.section-considerations li.rec-item {
|
|
754
|
-
padding: 0;
|
|
752
|
+
padding: 0;
|
|
753
|
+
/* Bigger inter-card gap (36 → 48) so each recommendation reads as
|
|
754
|
+
its own block; the user's complaint about the section was
|
|
755
|
+
"stacked / hard to see clearly" — most of that was the cards
|
|
756
|
+
packing too tight against each other after they each grew
|
|
757
|
+
critical-dependency + risk rows. */
|
|
758
|
+
margin: 48px 0 0;
|
|
759
|
+
list-style: none;
|
|
760
|
+
border: none;
|
|
755
761
|
}
|
|
756
762
|
.body section.section-recommendations li.rec-item:first-child,
|
|
757
763
|
.body section.section-considerations li.rec-item:first-child { margin-top: 22px; }
|
|
758
764
|
.body section.section-recommendations li.rec-item::before,
|
|
759
765
|
.body section.section-considerations li.rec-item::before { display: none; }
|
|
760
766
|
|
|
761
|
-
|
|
767
|
+
/* Header row · "01 P0 ──────────" with a subtle hairline that
|
|
768
|
+
delimits the card without screaming. P0 still gets a gold tint to
|
|
769
|
+
carry priority, but no longer paints a 2px gold bar — the
|
|
770
|
+
priority badge itself is enough signal. */
|
|
771
|
+
.rec-rule {
|
|
772
|
+
display: flex;
|
|
773
|
+
align-items: center;
|
|
774
|
+
gap: 12px;
|
|
775
|
+
margin-bottom: 18px;
|
|
776
|
+
}
|
|
762
777
|
.rec-num {
|
|
763
778
|
font-family: var(--mono);
|
|
764
|
-
font-size:
|
|
779
|
+
font-size: 11px;
|
|
765
780
|
font-weight: 500;
|
|
766
781
|
color: var(--ink-faint);
|
|
767
782
|
letter-spacing: 0.2em;
|
|
@@ -773,37 +788,55 @@ html, body {
|
|
|
773
788
|
font-size: 10px;
|
|
774
789
|
padding: 2px 8px;
|
|
775
790
|
}
|
|
776
|
-
.rec-rule-line {
|
|
777
|
-
|
|
791
|
+
.rec-rule-line {
|
|
792
|
+
flex: 1 1 auto;
|
|
793
|
+
height: 1px;
|
|
794
|
+
background: var(--rule);
|
|
795
|
+
display: block;
|
|
796
|
+
opacity: 0.7;
|
|
797
|
+
}
|
|
778
798
|
.rec-priority-p0 .rec-num { color: var(--gold); }
|
|
799
|
+
|
|
800
|
+
/* Action title · serif display, 19px so it reads as the card's
|
|
801
|
+
headline. Slight bump from 18 → 19 since body p is now 16px. */
|
|
779
802
|
.rec-action {
|
|
780
803
|
font-family: var(--serif);
|
|
781
|
-
font-size:
|
|
782
|
-
line-height: 1.
|
|
804
|
+
font-size: 19px;
|
|
805
|
+
line-height: 1.35;
|
|
783
806
|
color: var(--ink);
|
|
784
807
|
font-weight: 600;
|
|
785
808
|
letter-spacing: -0.012em;
|
|
786
809
|
margin: 0 0 14px;
|
|
787
810
|
max-width: 64ch;
|
|
788
811
|
}
|
|
812
|
+
|
|
813
|
+
/* Rationale · normal body register. Bumped 14 → 15.5 so it tracks
|
|
814
|
+
the new 16px body baseline (still slightly tighter to keep the
|
|
815
|
+
meta strip below readable as secondary). */
|
|
789
816
|
.rec-rationale {
|
|
790
|
-
font-size:
|
|
817
|
+
font-size: 16px;
|
|
791
818
|
line-height: 1.7;
|
|
792
819
|
color: var(--ink-soft);
|
|
793
|
-
margin: 0 0
|
|
820
|
+
margin: 0 0 16px;
|
|
794
821
|
max-width: 64ch;
|
|
795
822
|
}
|
|
823
|
+
|
|
824
|
+
/* Meta strip · compressed inline label/value pairs. Same as before
|
|
825
|
+
but slightly larger gap so 3-4 pairs don't collide on one row. */
|
|
796
826
|
.rec-meta {
|
|
797
|
-
display: flex;
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
827
|
+
display: flex;
|
|
828
|
+
flex-wrap: wrap;
|
|
829
|
+
align-items: baseline;
|
|
830
|
+
gap: 6px 14px;
|
|
831
|
+
margin: 0 0 12px;
|
|
832
|
+
font-size: 13px;
|
|
833
|
+
line-height: 1.65;
|
|
801
834
|
color: var(--ink);
|
|
802
835
|
}
|
|
803
836
|
.rec-meta-pair { display: inline-flex; align-items: baseline; gap: 7px; min-width: 0; }
|
|
804
837
|
.rec-meta-label {
|
|
805
838
|
font-family: var(--mono);
|
|
806
|
-
font-size:
|
|
839
|
+
font-size: 10px;
|
|
807
840
|
color: var(--gold);
|
|
808
841
|
letter-spacing: 0.22em;
|
|
809
842
|
text-transform: uppercase;
|
|
@@ -811,29 +844,62 @@ html, body {
|
|
|
811
844
|
}
|
|
812
845
|
.rec-meta-value { color: var(--ink); font-weight: 500; }
|
|
813
846
|
.rec-meta-sep { color: var(--ink-muted); }
|
|
847
|
+
|
|
848
|
+
/* Dependency · "DEPENDS ON — body". Same shape as risk row but in a
|
|
849
|
+
neutral ink-mid colour so it doesn't compete with the warning
|
|
850
|
+
register of the risk row. */
|
|
851
|
+
.rec-dependency {
|
|
852
|
+
display: flex;
|
|
853
|
+
align-items: flex-start;
|
|
854
|
+
gap: 8px;
|
|
855
|
+
font-size: 13px;
|
|
856
|
+
line-height: 1.65;
|
|
857
|
+
color: var(--ink-mid);
|
|
858
|
+
margin: 0 0 8px;
|
|
859
|
+
padding: 0;
|
|
860
|
+
background: transparent;
|
|
861
|
+
}
|
|
862
|
+
.rec-dependency-prefix {
|
|
863
|
+
font-family: var(--mono);
|
|
864
|
+
font-size: 10px;
|
|
865
|
+
color: var(--ink-faint);
|
|
866
|
+
letter-spacing: 0.22em;
|
|
867
|
+
text-transform: uppercase;
|
|
868
|
+
font-weight: 500;
|
|
869
|
+
flex: 0 0 auto;
|
|
870
|
+
}
|
|
871
|
+
.rec-dependency-sep { color: var(--ink-faint); margin: 0 2px; flex: 0 0 auto; }
|
|
872
|
+
.rec-dependency-text { flex: 1 1 auto; }
|
|
873
|
+
|
|
874
|
+
/* Risk · "RISK IF SKIPPED — body". Stripped the oxblood top-border
|
|
875
|
+
that gave every card a coloured rule (per the project rule about
|
|
876
|
+
not piling adjacent borders); the oxblood prefix + italic body do
|
|
877
|
+
the warning work themselves. Slightly larger body so it tracks
|
|
878
|
+
the rest of the card's new sizing. */
|
|
814
879
|
.rec-risk {
|
|
815
|
-
display: flex;
|
|
816
|
-
|
|
817
|
-
|
|
880
|
+
display: flex;
|
|
881
|
+
align-items: flex-start;
|
|
882
|
+
gap: 8px;
|
|
883
|
+
font-size: 13px;
|
|
884
|
+
line-height: 1.65;
|
|
818
885
|
color: var(--oxblood-deep);
|
|
819
886
|
margin: 0;
|
|
820
|
-
|
|
821
|
-
padding: 12px 0 4px;
|
|
887
|
+
padding: 0;
|
|
822
888
|
background: transparent;
|
|
823
|
-
|
|
889
|
+
font-style: italic;
|
|
824
890
|
}
|
|
825
891
|
.rec-risk-text { flex: 1 1 auto; }
|
|
826
892
|
.rec-risk-prefix {
|
|
827
893
|
font-family: var(--mono);
|
|
828
894
|
font-style: normal;
|
|
829
|
-
font-size:
|
|
895
|
+
font-size: 10px;
|
|
830
896
|
color: var(--oxblood);
|
|
831
897
|
letter-spacing: 0.24em;
|
|
832
898
|
text-transform: uppercase;
|
|
833
899
|
font-weight: 500;
|
|
834
|
-
|
|
900
|
+
flex: 0 0 auto;
|
|
835
901
|
}
|
|
836
|
-
.rec-risk-sep { color: var(--oxblood); margin
|
|
902
|
+
.rec-risk-sep { color: var(--oxblood); margin: 0 2px; flex: 0 0 auto; }
|
|
837
903
|
|
|
838
904
|
/* ─── New Questions · op-ed cards ──────────────────────────── */
|
|
839
905
|
.body section.section-new-questions ol { padding: 0; margin: 24px 0 0; list-style: none; }
|
|
@@ -845,7 +911,7 @@ html, body {
|
|
|
845
911
|
.nq-rule { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
|
|
846
912
|
.nq-num {
|
|
847
913
|
font-family: var(--mono);
|
|
848
|
-
font-size:
|
|
914
|
+
font-size: 11px;
|
|
849
915
|
font-weight: 500;
|
|
850
916
|
color: var(--gold);
|
|
851
917
|
letter-spacing: 0.22em;
|
|
@@ -856,7 +922,7 @@ html, body {
|
|
|
856
922
|
flex: 0 0 auto;
|
|
857
923
|
display: inline-flex; align-items: baseline; gap: 6px;
|
|
858
924
|
font-family: var(--mono);
|
|
859
|
-
font-size:
|
|
925
|
+
font-size: 10px;
|
|
860
926
|
letter-spacing: 0.2em;
|
|
861
927
|
text-transform: uppercase;
|
|
862
928
|
color: var(--ink-faint);
|
|
@@ -939,7 +1005,7 @@ html, body {
|
|
|
939
1005
|
}
|
|
940
1006
|
.body section.section-planning-assumption blockquote {
|
|
941
1007
|
border: none; padding: 0; margin: 0; background: none;
|
|
942
|
-
font-style: normal; font-size:
|
|
1008
|
+
font-style: normal; font-size: 15px;
|
|
943
1009
|
}
|
|
944
1010
|
.body section.section-planning-assumption blockquote::before { display: none; }
|
|
945
1011
|
.body section.section-planning-assumption blockquote strong:first-child {
|
|
@@ -958,8 +1024,8 @@ html, body {
|
|
|
958
1024
|
width: 100%;
|
|
959
1025
|
border-collapse: collapse;
|
|
960
1026
|
margin: 22px 0 28px;
|
|
961
|
-
font-size:
|
|
962
|
-
border-top:
|
|
1027
|
+
font-size: 14px;
|
|
1028
|
+
border-top: 2px solid var(--ink);
|
|
963
1029
|
}
|
|
964
1030
|
.body table.md-table th, .body table.md-table td {
|
|
965
1031
|
padding: 12px 14px;
|
|
@@ -973,11 +1039,11 @@ html, body {
|
|
|
973
1039
|
color: var(--ink-faint);
|
|
974
1040
|
font-family: var(--mono);
|
|
975
1041
|
font-weight: 500;
|
|
976
|
-
font-size:
|
|
1042
|
+
font-size: 12px;
|
|
977
1043
|
letter-spacing: 0.18em;
|
|
978
1044
|
text-transform: uppercase;
|
|
979
1045
|
}
|
|
980
|
-
.body table.md-table td:first-child { font-weight: 600; color: var(--ink); }
|
|
1046
|
+
.body table.md-table td:first-child { font-weight: 600; color: var(--ink); font-size: 14px; }
|
|
981
1047
|
|
|
982
1048
|
/* ─── Methodology footer ──────────────────────────────────── */
|
|
983
1049
|
.body h2.section-methodology {
|
|
@@ -993,14 +1059,14 @@ html, body {
|
|
|
993
1059
|
}
|
|
994
1060
|
.body section.section-methodology {
|
|
995
1061
|
color: var(--ink-faint);
|
|
996
|
-
font-size:
|
|
1062
|
+
font-size: 13px;
|
|
997
1063
|
line-height: 1.65;
|
|
998
1064
|
}
|
|
999
1065
|
.body section.section-methodology strong {
|
|
1000
1066
|
color: var(--ink-soft);
|
|
1001
1067
|
font-family: var(--mono);
|
|
1002
1068
|
font-weight: 500;
|
|
1003
|
-
font-size:
|
|
1069
|
+
font-size: 11px;
|
|
1004
1070
|
letter-spacing: 0.12em;
|
|
1005
1071
|
text-transform: uppercase;
|
|
1006
1072
|
}
|
|
@@ -1011,7 +1077,7 @@ html, body {
|
|
|
1011
1077
|
border-bottom: 1px solid var(--rule);
|
|
1012
1078
|
padding: 14px 0;
|
|
1013
1079
|
font-family: var(--mono);
|
|
1014
|
-
font-size:
|
|
1080
|
+
font-size: 13px;
|
|
1015
1081
|
color: var(--ink-soft);
|
|
1016
1082
|
margin: 18px 0;
|
|
1017
1083
|
overflow-x: auto;
|
|
@@ -1058,16 +1124,13 @@ html, body {
|
|
|
1058
1124
|
<style>; this block tweaks surface, accent + typography to match
|
|
1059
1125
|
the spine's voice. No `border-left`, no parallel borders against
|
|
1060
1126
|
adjacent .chapter-num / section h2. */
|
|
1127
|
+
/* Inherits the Swiss-editorial baseline. a16z signatures: gold-deep
|
|
1128
|
+
label colour (the spine's accent) + oxblood downside trend. The
|
|
1129
|
+
earlier card-surface tint + gold-soft frame was retired — under
|
|
1130
|
+
the baseline's hairline-grid layout it produced a doubled frame
|
|
1131
|
+
around each cell. */
|
|
1061
1132
|
.body .metric-strip-intro {
|
|
1062
1133
|
color: var(--ink-soft);
|
|
1063
|
-
font-family: var(--mono);
|
|
1064
|
-
font-size: 11px;
|
|
1065
|
-
}
|
|
1066
|
-
.body .metric-card {
|
|
1067
|
-
background: var(--gold-pale, rgba(201, 164, 107, 0.06));
|
|
1068
|
-
border: 0.5px solid var(--gold-soft, rgba(201, 164, 107, 0.18));
|
|
1069
|
-
padding: 16px 18px;
|
|
1070
|
-
min-height: 104px;
|
|
1071
1134
|
}
|
|
1072
1135
|
.body .metric-label {
|
|
1073
1136
|
color: var(--gold-deep);
|
|
@@ -1075,9 +1138,6 @@ html, body {
|
|
|
1075
1138
|
}
|
|
1076
1139
|
.body .metric-value {
|
|
1077
1140
|
color: var(--ink);
|
|
1078
|
-
font-size: 30px;
|
|
1079
|
-
font-weight: 800;
|
|
1080
|
-
letter-spacing: -0.015em;
|
|
1081
1141
|
}
|
|
1082
1142
|
.body .metric-card[data-trend="up"] .metric-value { color: var(--gold-deep); }
|
|
1083
1143
|
.body .metric-card[data-trend="down"] .metric-value { color: var(--oxblood-deep); }
|
|
@@ -1085,3 +1145,58 @@ html, body {
|
|
|
1085
1145
|
.body .metric-trend[data-trend="down"] { color: var(--oxblood-deep); }
|
|
1086
1146
|
.body .metric-qualifier { color: var(--ink-soft); }
|
|
1087
1147
|
.body .metric-attribution { color: var(--ink-faint); letter-spacing: 0.08em; }
|
|
1148
|
+
|
|
1149
|
+
/* Colophon · 56px horizontal gutter to match this spine's wider
|
|
1150
|
+
body padding (most spines use 32px; a16z is the outlier). Without
|
|
1151
|
+
this the brand card sits flush with the .doc edge while the body
|
|
1152
|
+
content above sits 56px inset — visibly misaligned. */
|
|
1153
|
+
.colophon { margin: 32px 56px 8px; }
|
|
1154
|
+
|
|
1155
|
+
/* ─── Path comparison · per-spine treatment ──────────────────────
|
|
1156
|
+
a16z uses oxblood (weak) / gold-deep (strong) — investment-thesis
|
|
1157
|
+
"the contrarian read vs the obvious bet" framing. */
|
|
1158
|
+
.body .path-comparison .path {
|
|
1159
|
+
background: var(--gold-pale, rgba(201, 164, 107, 0.06));
|
|
1160
|
+
border: 1px solid var(--gold-soft, rgba(201, 164, 107, 0.18));
|
|
1161
|
+
border-top-width: 3px;
|
|
1162
|
+
}
|
|
1163
|
+
.body .path-comparison .path-weak { border-top-color: var(--oxblood-deep); }
|
|
1164
|
+
.body .path-comparison .path-strong { border-top-color: var(--gold-deep); }
|
|
1165
|
+
.body .path-comparison .path-weak .path-tag { color: var(--oxblood-deep); }
|
|
1166
|
+
.body .path-comparison .path-strong .path-tag { color: var(--gold-deep); }
|
|
1167
|
+
.body .path-comparison .path-name { color: var(--ink); font-weight: 600; }
|
|
1168
|
+
.body .path-comparison .path li { color: var(--ink-soft); }
|
|
1169
|
+
.body .path-comparison .path-weak li::before { background: var(--oxblood-deep); }
|
|
1170
|
+
.body .path-comparison .path-strong li::before { background: var(--gold-deep); }
|
|
1171
|
+
.body .path-comparison-implication { color: var(--ink-soft); }
|
|
1172
|
+
|
|
1173
|
+
/* ─── Views-compared · per-spine · a16z-thesis ─────────────────
|
|
1174
|
+
Hairline frame · accent stripe on TOP (per project rule).
|
|
1175
|
+
Alignment uses gold-deep, divergence uses oxblood-deep. */
|
|
1176
|
+
.body .vc-section-label { color: var(--gold-deep); border-color: var(--gold-soft, rgba(201, 164, 107, 0.2)); }
|
|
1177
|
+
.body .views-compared-alignment .vc-card {
|
|
1178
|
+
border-color: var(--gold-soft, rgba(201, 164, 107, 0.2));
|
|
1179
|
+
border-top-color: var(--gold-deep);
|
|
1180
|
+
}
|
|
1181
|
+
.body .vc-card-headline { color: var(--ink); font-weight: 600; }
|
|
1182
|
+
.body .vc-chip { color: var(--ink-soft); border-color: var(--gold-soft, rgba(201, 164, 107, 0.25)); }
|
|
1183
|
+
.body .vc-card-note { color: var(--ink-soft); }
|
|
1184
|
+
.body .vc-fork {
|
|
1185
|
+
border-color: var(--gold-soft, rgba(201, 164, 107, 0.2));
|
|
1186
|
+
border-top-color: var(--oxblood-deep, var(--gold-deep));
|
|
1187
|
+
}
|
|
1188
|
+
.body .vc-fork-hinge { color: var(--ink); }
|
|
1189
|
+
.body .vc-side { border-color: var(--gold-soft, rgba(201, 164, 107, 0.18)); }
|
|
1190
|
+
.body .vc-side-label { color: var(--oxblood-deep, var(--gold-deep)); }
|
|
1191
|
+
.body .vc-side-stance { color: var(--ink-soft); }
|
|
1192
|
+
.body .vc-fork-resolution { color: var(--ink-soft); border-top-color: var(--gold-soft, rgba(201, 164, 107, 0.18)); }
|
|
1193
|
+
.body .vc-resolution-label { color: var(--ink-faint); }
|
|
1194
|
+
.body .vc-row-name { color: var(--ink); font-weight: 600; }
|
|
1195
|
+
.body .vc-row-stance { color: var(--gold-deep); }
|
|
1196
|
+
.body .vc-row-position { color: var(--ink-soft); }
|
|
1197
|
+
.body .vc-row-quote { color: var(--ink); }
|
|
1198
|
+
.body .views-compared-synthesis {
|
|
1199
|
+
border-color: var(--gold-soft, rgba(201, 164, 107, 0.2));
|
|
1200
|
+
border-top-color: var(--ink-faint);
|
|
1201
|
+
}
|
|
1202
|
+
.body .vc-synthesis-body { color: var(--ink); }
|