privateboard 0.1.0 → 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 +5281 -989
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/public/agent-overlay.js +3 -3
- package/public/agent-profile.css +5 -4
- package/public/agent-profile.js +35 -9
- package/public/app.js +4408 -580
- package/public/avatar-skill.js +6 -9
- package/public/home.html +1750 -0
- package/public/{prototype-dashboard.html → index.html} +2426 -321
- package/public/onboarding.js +40 -13
- package/public/quote-cta.css +269 -0
- package/public/quote-cta.js +553 -0
- package/public/report/spines/a16z-thesis.css +234 -87
- package/public/report/spines/anthropic-essay.css +587 -191
- package/public/report/spines/boardroom-dark.css +141 -67
- package/public/report/spines/gartner-note.css +105 -23
- package/public/report/spines/mckinsey-deck.css +102 -15
- package/public/report/spines/openai-paper.css +117 -20
- package/public/report.html +3882 -148
- package/public/room-settings.css +6 -4
- package/public/room-settings.js +19 -13
- package/public/themes.css +15 -2
- package/public/user-settings.css +37 -8
- package/public/user-settings.js +68 -164
|
@@ -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);
|
|
@@ -248,7 +250,6 @@ html, body {
|
|
|
248
250
|
font-size: 24px;
|
|
249
251
|
line-height: 1.24;
|
|
250
252
|
margin: 0 0 18px;
|
|
251
|
-
max-width: 720px;
|
|
252
253
|
letter-spacing: -0.018em;
|
|
253
254
|
font-weight: 600;
|
|
254
255
|
}
|
|
@@ -268,13 +269,15 @@ html, body {
|
|
|
268
269
|
font-weight: 500;
|
|
269
270
|
}
|
|
270
271
|
.body p {
|
|
271
|
-
margin:
|
|
272
|
+
margin: 14px 0;
|
|
272
273
|
line-height: 1.7;
|
|
273
274
|
color: var(--ink-soft);
|
|
274
|
-
|
|
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;
|
|
275
278
|
}
|
|
276
|
-
.body ul, .body ol { margin:
|
|
277
|
-
.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; }
|
|
278
281
|
.body strong { color: var(--ink); font-weight: 600; }
|
|
279
282
|
.body em { color: var(--gold-deep); font-style: italic; }
|
|
280
283
|
|
|
@@ -284,7 +287,7 @@ html, body {
|
|
|
284
287
|
border: 1px solid var(--rule-strong);
|
|
285
288
|
padding: 1px 7px;
|
|
286
289
|
font-family: var(--mono);
|
|
287
|
-
font-size:
|
|
290
|
+
font-size: 12px;
|
|
288
291
|
color: var(--ink);
|
|
289
292
|
letter-spacing: 0.04em;
|
|
290
293
|
border-radius: 2px;
|
|
@@ -293,18 +296,12 @@ html, body {
|
|
|
293
296
|
.body code.badge-confidence-high { color: var(--conf-high); border-color: rgba(63, 92, 47, 0.4); }
|
|
294
297
|
.body code.badge-confidence-medium { color: var(--conf-mid); border-color: rgba(110, 84, 26, 0.4); }
|
|
295
298
|
.body code.badge-confidence-low { color: var(--conf-low); border-color: rgba(122, 46, 26, 0.4); }
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
}
|
|
300
|
-
.body code.badge-priority-p1 {
|
|
301
|
-
|
|
302
|
-
font-weight: 600; letter-spacing: 0.12em;
|
|
303
|
-
}
|
|
304
|
-
.body code.badge-priority-p2 {
|
|
305
|
-
background: transparent; color: var(--ink-faint); border-color: var(--rule-strong);
|
|
306
|
-
letter-spacing: 0.1em;
|
|
307
|
-
}
|
|
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); }
|
|
308
305
|
|
|
309
306
|
.body blockquote {
|
|
310
307
|
padding: 14px 0;
|
|
@@ -326,7 +323,7 @@ html, body {
|
|
|
326
323
|
background: transparent;
|
|
327
324
|
margin: 0 0 44px;
|
|
328
325
|
padding: 0 0 36px;
|
|
329
|
-
border-top:
|
|
326
|
+
border-top: 2px solid var(--ink);
|
|
330
327
|
padding-top: 28px;
|
|
331
328
|
border-bottom: 1px solid var(--rule);
|
|
332
329
|
}
|
|
@@ -368,7 +365,7 @@ html, body {
|
|
|
368
365
|
margin: 0 0 44px;
|
|
369
366
|
padding: 28px 0 36px;
|
|
370
367
|
background: transparent;
|
|
371
|
-
border-top:
|
|
368
|
+
border-top: 2px solid var(--ink);
|
|
372
369
|
border-bottom: 1px solid var(--rule);
|
|
373
370
|
}
|
|
374
371
|
.body section.section-thesis p:first-child {
|
|
@@ -387,7 +384,7 @@ html, body {
|
|
|
387
384
|
font-style: italic;
|
|
388
385
|
}
|
|
389
386
|
.body section.section-thesis p:not(:first-child) {
|
|
390
|
-
font-size:
|
|
387
|
+
font-size: 15px; color: var(--ink-soft); font-style: normal;
|
|
391
388
|
}
|
|
392
389
|
|
|
393
390
|
/* ─── Working hypothesis ────────────────────────────────────── */
|
|
@@ -411,7 +408,7 @@ html, body {
|
|
|
411
408
|
research-note's strategic frame. */
|
|
412
409
|
.body h2.section-strategic-outlook {
|
|
413
410
|
font-family: var(--mono);
|
|
414
|
-
font-size:
|
|
411
|
+
font-size: 11px;
|
|
415
412
|
color: var(--gold);
|
|
416
413
|
text-transform: uppercase;
|
|
417
414
|
letter-spacing: 0.26em;
|
|
@@ -421,7 +418,7 @@ html, body {
|
|
|
421
418
|
.body section.section-strategic-outlook {
|
|
422
419
|
margin: 0 0 44px;
|
|
423
420
|
padding: 28px 0 36px;
|
|
424
|
-
border-top:
|
|
421
|
+
border-top: 2px solid var(--ink);
|
|
425
422
|
border-bottom: 1px solid var(--rule);
|
|
426
423
|
}
|
|
427
424
|
.body section.section-strategic-outlook p:first-child {
|
|
@@ -466,7 +463,7 @@ html, body {
|
|
|
466
463
|
top: 24px; left: 0;
|
|
467
464
|
font-family: var(--mono);
|
|
468
465
|
font-weight: 500;
|
|
469
|
-
font-size:
|
|
466
|
+
font-size: 11px;
|
|
470
467
|
color: var(--gold);
|
|
471
468
|
line-height: 1;
|
|
472
469
|
letter-spacing: 0.16em;
|
|
@@ -483,7 +480,7 @@ html, body {
|
|
|
483
480
|
letter-spacing: -0.005em;
|
|
484
481
|
}
|
|
485
482
|
.body section.section-critical-assumptions ol > li p {
|
|
486
|
-
font-size:
|
|
483
|
+
font-size: 14px;
|
|
487
484
|
line-height: 1.6;
|
|
488
485
|
color: var(--ink-soft);
|
|
489
486
|
}
|
|
@@ -512,7 +509,7 @@ html, body {
|
|
|
512
509
|
border-top: 1px solid var(--gold);
|
|
513
510
|
}
|
|
514
511
|
.body section.section-scenario-tree h3:first-of-type {
|
|
515
|
-
border-top:
|
|
512
|
+
border-top: 2px solid var(--ink);
|
|
516
513
|
padding-top: 18px;
|
|
517
514
|
}
|
|
518
515
|
.body section.section-scenario-tree p {
|
|
@@ -538,7 +535,7 @@ html, body {
|
|
|
538
535
|
.body section.section-scenario-tree ul > li {
|
|
539
536
|
position: relative;
|
|
540
537
|
padding-left: 14px;
|
|
541
|
-
font-size:
|
|
538
|
+
font-size: 14px;
|
|
542
539
|
line-height: 1.6;
|
|
543
540
|
color: var(--ink-soft);
|
|
544
541
|
margin: 4px 0;
|
|
@@ -555,22 +552,22 @@ html, body {
|
|
|
555
552
|
Override the default md-table treatment with a tighter,
|
|
556
553
|
institutional-feel grid. Mono headers, hairline rules. */
|
|
557
554
|
.body section.section-leading-indicators table.md-table {
|
|
558
|
-
font-size:
|
|
559
|
-
border-top:
|
|
555
|
+
font-size: 14px;
|
|
556
|
+
border-top: 2px solid var(--ink);
|
|
560
557
|
}
|
|
561
558
|
.body section.section-leading-indicators table.md-table th {
|
|
562
559
|
background: transparent;
|
|
563
560
|
color: var(--gold);
|
|
564
561
|
font-family: var(--mono);
|
|
565
562
|
font-weight: 600;
|
|
566
|
-
font-size:
|
|
563
|
+
font-size: 12px;
|
|
567
564
|
letter-spacing: 0.22em;
|
|
568
565
|
text-transform: uppercase;
|
|
569
566
|
padding: 10px 12px;
|
|
570
567
|
}
|
|
571
568
|
.body section.section-leading-indicators table.md-table td {
|
|
572
569
|
padding: 12px;
|
|
573
|
-
font-size:
|
|
570
|
+
font-size: 14px;
|
|
574
571
|
color: var(--ink-soft);
|
|
575
572
|
vertical-align: top;
|
|
576
573
|
line-height: 1.5;
|
|
@@ -580,7 +577,7 @@ html, body {
|
|
|
580
577
|
font-weight: 600;
|
|
581
578
|
color: var(--ink);
|
|
582
579
|
font-family: var(--mono);
|
|
583
|
-
font-size:
|
|
580
|
+
font-size: 14px;
|
|
584
581
|
letter-spacing: 0.04em;
|
|
585
582
|
width: 26%;
|
|
586
583
|
}
|
|
@@ -616,7 +613,7 @@ html, body {
|
|
|
616
613
|
font-size: 16px; line-height: 1.3; margin: 0 0 10px; font-weight: 600;
|
|
617
614
|
}
|
|
618
615
|
.body section.section-headline-findings .pillar p {
|
|
619
|
-
font-size:
|
|
616
|
+
font-size: 14px; color: var(--ink-soft); line-height: 1.6; margin: 8px 0;
|
|
620
617
|
}
|
|
621
618
|
|
|
622
619
|
/* ─── Big Ideas · disciplined typographic list ───────────────── */
|
|
@@ -667,7 +664,7 @@ html, body {
|
|
|
667
664
|
border-top: 1px solid var(--gold);
|
|
668
665
|
border-bottom: 1px solid var(--rule);
|
|
669
666
|
}
|
|
670
|
-
.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); }
|
|
671
668
|
.body section.section-why-now p:first-child { font-weight: 500; color: var(--ink); }
|
|
672
669
|
|
|
673
670
|
/* ─── The Bet · disciplined numbered list ───────────────────── */
|
|
@@ -738,7 +735,7 @@ html, body {
|
|
|
738
735
|
border-bottom: 1px solid var(--rule);
|
|
739
736
|
}
|
|
740
737
|
.body section.section-two-paths > p:first-child {
|
|
741
|
-
font-size:
|
|
738
|
+
font-size: 15px; color: var(--ink-soft); margin-bottom: 16px;
|
|
742
739
|
}
|
|
743
740
|
|
|
744
741
|
/* ─── Recommendations / Considerations · editorial cards ───── */
|
|
@@ -752,17 +749,34 @@ html, body {
|
|
|
752
749
|
|
|
753
750
|
.body section.section-recommendations li.rec-item,
|
|
754
751
|
.body section.section-considerations li.rec-item {
|
|
755
|
-
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;
|
|
756
761
|
}
|
|
757
762
|
.body section.section-recommendations li.rec-item:first-child,
|
|
758
763
|
.body section.section-considerations li.rec-item:first-child { margin-top: 22px; }
|
|
759
764
|
.body section.section-recommendations li.rec-item::before,
|
|
760
765
|
.body section.section-considerations li.rec-item::before { display: none; }
|
|
761
766
|
|
|
762
|
-
|
|
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
|
+
}
|
|
763
777
|
.rec-num {
|
|
764
778
|
font-family: var(--mono);
|
|
765
|
-
font-size:
|
|
779
|
+
font-size: 11px;
|
|
766
780
|
font-weight: 500;
|
|
767
781
|
color: var(--ink-faint);
|
|
768
782
|
letter-spacing: 0.2em;
|
|
@@ -774,37 +788,55 @@ html, body {
|
|
|
774
788
|
font-size: 10px;
|
|
775
789
|
padding: 2px 8px;
|
|
776
790
|
}
|
|
777
|
-
.rec-rule-line {
|
|
778
|
-
|
|
791
|
+
.rec-rule-line {
|
|
792
|
+
flex: 1 1 auto;
|
|
793
|
+
height: 1px;
|
|
794
|
+
background: var(--rule);
|
|
795
|
+
display: block;
|
|
796
|
+
opacity: 0.7;
|
|
797
|
+
}
|
|
779
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. */
|
|
780
802
|
.rec-action {
|
|
781
803
|
font-family: var(--serif);
|
|
782
|
-
font-size:
|
|
783
|
-
line-height: 1.
|
|
804
|
+
font-size: 19px;
|
|
805
|
+
line-height: 1.35;
|
|
784
806
|
color: var(--ink);
|
|
785
807
|
font-weight: 600;
|
|
786
808
|
letter-spacing: -0.012em;
|
|
787
809
|
margin: 0 0 14px;
|
|
788
810
|
max-width: 64ch;
|
|
789
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). */
|
|
790
816
|
.rec-rationale {
|
|
791
|
-
font-size:
|
|
817
|
+
font-size: 16px;
|
|
792
818
|
line-height: 1.7;
|
|
793
819
|
color: var(--ink-soft);
|
|
794
|
-
margin: 0 0
|
|
820
|
+
margin: 0 0 16px;
|
|
795
821
|
max-width: 64ch;
|
|
796
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. */
|
|
797
826
|
.rec-meta {
|
|
798
|
-
display: flex;
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
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;
|
|
802
834
|
color: var(--ink);
|
|
803
835
|
}
|
|
804
836
|
.rec-meta-pair { display: inline-flex; align-items: baseline; gap: 7px; min-width: 0; }
|
|
805
837
|
.rec-meta-label {
|
|
806
838
|
font-family: var(--mono);
|
|
807
|
-
font-size:
|
|
839
|
+
font-size: 10px;
|
|
808
840
|
color: var(--gold);
|
|
809
841
|
letter-spacing: 0.22em;
|
|
810
842
|
text-transform: uppercase;
|
|
@@ -812,29 +844,62 @@ html, body {
|
|
|
812
844
|
}
|
|
813
845
|
.rec-meta-value { color: var(--ink); font-weight: 500; }
|
|
814
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. */
|
|
815
879
|
.rec-risk {
|
|
816
|
-
display: flex;
|
|
817
|
-
|
|
818
|
-
|
|
880
|
+
display: flex;
|
|
881
|
+
align-items: flex-start;
|
|
882
|
+
gap: 8px;
|
|
883
|
+
font-size: 13px;
|
|
884
|
+
line-height: 1.65;
|
|
819
885
|
color: var(--oxblood-deep);
|
|
820
886
|
margin: 0;
|
|
821
|
-
|
|
822
|
-
padding: 12px 0 4px;
|
|
887
|
+
padding: 0;
|
|
823
888
|
background: transparent;
|
|
824
|
-
|
|
889
|
+
font-style: italic;
|
|
825
890
|
}
|
|
826
891
|
.rec-risk-text { flex: 1 1 auto; }
|
|
827
892
|
.rec-risk-prefix {
|
|
828
893
|
font-family: var(--mono);
|
|
829
894
|
font-style: normal;
|
|
830
|
-
font-size:
|
|
895
|
+
font-size: 10px;
|
|
831
896
|
color: var(--oxblood);
|
|
832
897
|
letter-spacing: 0.24em;
|
|
833
898
|
text-transform: uppercase;
|
|
834
899
|
font-weight: 500;
|
|
835
|
-
|
|
900
|
+
flex: 0 0 auto;
|
|
836
901
|
}
|
|
837
|
-
.rec-risk-sep { color: var(--oxblood); margin
|
|
902
|
+
.rec-risk-sep { color: var(--oxblood); margin: 0 2px; flex: 0 0 auto; }
|
|
838
903
|
|
|
839
904
|
/* ─── New Questions · op-ed cards ──────────────────────────── */
|
|
840
905
|
.body section.section-new-questions ol { padding: 0; margin: 24px 0 0; list-style: none; }
|
|
@@ -846,7 +911,7 @@ html, body {
|
|
|
846
911
|
.nq-rule { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
|
|
847
912
|
.nq-num {
|
|
848
913
|
font-family: var(--mono);
|
|
849
|
-
font-size:
|
|
914
|
+
font-size: 11px;
|
|
850
915
|
font-weight: 500;
|
|
851
916
|
color: var(--gold);
|
|
852
917
|
letter-spacing: 0.22em;
|
|
@@ -857,7 +922,7 @@ html, body {
|
|
|
857
922
|
flex: 0 0 auto;
|
|
858
923
|
display: inline-flex; align-items: baseline; gap: 6px;
|
|
859
924
|
font-family: var(--mono);
|
|
860
|
-
font-size:
|
|
925
|
+
font-size: 10px;
|
|
861
926
|
letter-spacing: 0.2em;
|
|
862
927
|
text-transform: uppercase;
|
|
863
928
|
color: var(--ink-faint);
|
|
@@ -940,7 +1005,7 @@ html, body {
|
|
|
940
1005
|
}
|
|
941
1006
|
.body section.section-planning-assumption blockquote {
|
|
942
1007
|
border: none; padding: 0; margin: 0; background: none;
|
|
943
|
-
font-style: normal; font-size:
|
|
1008
|
+
font-style: normal; font-size: 15px;
|
|
944
1009
|
}
|
|
945
1010
|
.body section.section-planning-assumption blockquote::before { display: none; }
|
|
946
1011
|
.body section.section-planning-assumption blockquote strong:first-child {
|
|
@@ -959,8 +1024,8 @@ html, body {
|
|
|
959
1024
|
width: 100%;
|
|
960
1025
|
border-collapse: collapse;
|
|
961
1026
|
margin: 22px 0 28px;
|
|
962
|
-
font-size:
|
|
963
|
-
border-top:
|
|
1027
|
+
font-size: 14px;
|
|
1028
|
+
border-top: 2px solid var(--ink);
|
|
964
1029
|
}
|
|
965
1030
|
.body table.md-table th, .body table.md-table td {
|
|
966
1031
|
padding: 12px 14px;
|
|
@@ -974,11 +1039,11 @@ html, body {
|
|
|
974
1039
|
color: var(--ink-faint);
|
|
975
1040
|
font-family: var(--mono);
|
|
976
1041
|
font-weight: 500;
|
|
977
|
-
font-size:
|
|
1042
|
+
font-size: 12px;
|
|
978
1043
|
letter-spacing: 0.18em;
|
|
979
1044
|
text-transform: uppercase;
|
|
980
1045
|
}
|
|
981
|
-
.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; }
|
|
982
1047
|
|
|
983
1048
|
/* ─── Methodology footer ──────────────────────────────────── */
|
|
984
1049
|
.body h2.section-methodology {
|
|
@@ -994,14 +1059,14 @@ html, body {
|
|
|
994
1059
|
}
|
|
995
1060
|
.body section.section-methodology {
|
|
996
1061
|
color: var(--ink-faint);
|
|
997
|
-
font-size:
|
|
1062
|
+
font-size: 13px;
|
|
998
1063
|
line-height: 1.65;
|
|
999
1064
|
}
|
|
1000
1065
|
.body section.section-methodology strong {
|
|
1001
1066
|
color: var(--ink-soft);
|
|
1002
1067
|
font-family: var(--mono);
|
|
1003
1068
|
font-weight: 500;
|
|
1004
|
-
font-size:
|
|
1069
|
+
font-size: 11px;
|
|
1005
1070
|
letter-spacing: 0.12em;
|
|
1006
1071
|
text-transform: uppercase;
|
|
1007
1072
|
}
|
|
@@ -1012,7 +1077,7 @@ html, body {
|
|
|
1012
1077
|
border-bottom: 1px solid var(--rule);
|
|
1013
1078
|
padding: 14px 0;
|
|
1014
1079
|
font-family: var(--mono);
|
|
1015
|
-
font-size:
|
|
1080
|
+
font-size: 13px;
|
|
1016
1081
|
color: var(--ink-soft);
|
|
1017
1082
|
margin: 18px 0;
|
|
1018
1083
|
overflow-x: auto;
|
|
@@ -1053,3 +1118,85 @@ html, body {
|
|
|
1053
1118
|
font-size: 11px;
|
|
1054
1119
|
}
|
|
1055
1120
|
.placeholder.error { color: var(--oxblood); }
|
|
1121
|
+
|
|
1122
|
+
/* ─── Metric strip · per-spine treatment ─────────────────────────
|
|
1123
|
+
Inherits the spine-agnostic baseline in public/report.html's inline
|
|
1124
|
+
<style>; this block tweaks surface, accent + typography to match
|
|
1125
|
+
the spine's voice. No `border-left`, no parallel borders against
|
|
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. */
|
|
1132
|
+
.body .metric-strip-intro {
|
|
1133
|
+
color: var(--ink-soft);
|
|
1134
|
+
}
|
|
1135
|
+
.body .metric-label {
|
|
1136
|
+
color: var(--gold-deep);
|
|
1137
|
+
font-weight: 700;
|
|
1138
|
+
}
|
|
1139
|
+
.body .metric-value {
|
|
1140
|
+
color: var(--ink);
|
|
1141
|
+
}
|
|
1142
|
+
.body .metric-card[data-trend="up"] .metric-value { color: var(--gold-deep); }
|
|
1143
|
+
.body .metric-card[data-trend="down"] .metric-value { color: var(--oxblood-deep); }
|
|
1144
|
+
.body .metric-trend[data-trend="up"] { color: var(--gold-deep); }
|
|
1145
|
+
.body .metric-trend[data-trend="down"] { color: var(--oxblood-deep); }
|
|
1146
|
+
.body .metric-qualifier { color: var(--ink-soft); }
|
|
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); }
|