Sample · How agents reshape diligence
A workshop on wiring an agentic research loop into a junior analyst workflow.
Internal · Design System
Every component used on the site, with variants visible in all three modes. New components land here in the same change that introduces them.
Surface element using --fx-card-* tokens.
Mode determines shadow intensity, border treatment, and hover behavior.
Default card surface in current mode.
Forced hover styling for inspection.
const dojo = await VCDojo.start();
<div class="ds-card"> <h3 class="ds-card-title">Title</h3> <p class="ds-card-body">Body</p> </div> /* Tokens read */ --fx-card-bg, --fx-card-border, --fx-card-border-hover, --fx-card-shadow, --fx-card-shadow-hover, --color-text, --color-text-muted, --font-display
Calendar-style card for the webinars collection.
Status (Upcoming / Live / Recorded) is inferred at render time from date_scheduled via inferWebinarStatus().
A workshop on wiring an agentic research loop into a junior analyst workflow.
A workshop on wiring an agentic research loop into a junior analyst workflow.
A workshop on wiring an agentic research loop into a junior analyst workflow.
<WebinarCard data={entry.data} href="/webinars/[id]" />
/* Props */
data: { title, lede?, date_scheduled, durationMinutes?,
presenters?, rsvpUrl?, recordingUrl? }
href?: link to detail page
statusOverride?: 'Upcoming' | 'Live' | 'Recorded' (design-system use only)
/* Tokens read */
--fx-card-bg, --fx-card-border, --fx-card-border-hover,
--fx-card-shadow, --fx-card-shadow-hover,
--color-text, --color-text-muted, --color-primary, --color-accent,
--color-surface, --color-border, --color__bone,
--font-display, --font-code Primary, secondary (outlined), ghost.
Subtle text-link row with an auto-inserted bright dot between children. Pass plain <a> tags — the separator comes from CSS.
Default
Brand Kit Design SystemThree links
Brand Kit Design System ChangelogCustom separator (slash) + accent color
Brand Kit Design System ChangelogConstrained width (maxWidth=320px)
Brand Kit Design System Changelog Webinars<TextLinkSpan> <a href="/brand-kit">Brand Kit</a> <a href="/design-system">Design System</a> </TextLinkSpan> /* Props (all optional) */ width?: CSS width (default: auto) minWidth?: CSS min-width (default: max-content — keeps links on one line) maxWidth?: CSS max-width (default: 80%) separator?: glyph (default: "•") separatorColor?: CSS color (default: var(--color-primary)) class?: extra class name(s) /* Tokens read */ --color-text-muted, --color-text, --color-primary, --font-code /* Internal CSS vars (overridable via props above) */ --tls-width, --tls-min-width, --tls-max-width, --tls-separator, --tls-separator-color
Prev / next chapter card used by BookReaderLayout.
Two variants: inline adapts to the reader's container size (full → slim → chevron) for the top triptych beside the banner; block is always full for chapter-end placement.
The visible variant of the inline cards below depends on the width of the catalog page itself — resize the window to see them flex.
Variant: block — chapter-end pair
Earn the inbound, route the inbound, say "no" fast and well, and get invited to oversubscribed rounds.
Next Chapter 04Personal brand, fast trust, and valuation gymnastics — what makes the founder pick you.
Variant: inline — top-triptych adaptive (no container here, so full fidelity always shown; in BookReaderLayout this collapses by container size)
<ContentPreviewNavCard
direction="prev" /* or "next" */
number={3}
title="Thesis, Diligence & Pushing Deals Through"
lede="Build a point of view…"
tags={['Investment-Thesis', 'Diligence-Sprints']}
href="/read/venture-handbook/.../"
variant="inline" /* or "block" */
/>
/* Tokens */
--fx-card-bg, --fx-card-border, --color-primary,
--color-text, --color-text-muted, --color-border,
--font-display, --font-body, --font-code
/* Container queries (only fire under .book-reader-page → container reader) */
< 768px → chevron only
768–1023 → slim, no tags, 2-line lede
1024–1279 → ~200px wide, 3-line lede, 2 tags
≥1280 (landscape) → full fidelity, 4-line lede Carry mode-adaptive intensity. Same names across modes; values shift.
| Token | Purpose |
|---|---|
| --fx-glow-opacity | Base glow opacity (0–1) — light: subtle, dark: moderate, vibrant: max |
| --fx-glow-spread | Glow spread radius — scales with mode intensity |
| --fx-card-bg | Card background, mode-adaptive |
| --fx-card-border | Card border at rest |
| --fx-card-border-hover | Card border on hover |
| --fx-card-shadow | Card shadow at rest |
| --fx-card-shadow-hover | Card shadow on hover |
| --fx-headline-gradient | Display headline gradient — none in light, gradient in dark/vibrant |
| --fx-flare-color | Color for canvas/Three.js elements (resolved via getComputedStyle) |
As components grow, sub-pages will be added (e.g., /design-system/page-headers).
The 3-mode + theme toggle widget used on /brand-kit and /design-system.
Site-wide layout wrapper. Applies theme class on <html>, boots theme + mode switchers, imports global.css.
Bare HTML skeleton with pre-paint mode-application script (avoids FOUC).
Calendar-style card for webinars collection entries; status inferred from date_scheduled.
Composites brand-font HTML title text over an Ideogram-generated, text-stripped base image. Used for changelog banners. Mode-aware scrim adapts to light/dark/vibrant.
Sticky site chrome — wordmark + nav + ModeToggle. Rendered by BaseThemeLayout on every page.
3-mode chrome cycle button (light → dark → vibrant). Reads window.modeSwitcher; CSS-driven icon visibility.
Universal social-icon row. Pass a URL per platform to show that link; omit to hide. Renders nothing if no platforms passed. Brand-aware hover via --color-primary so the row tracks the active mode.
Primary hero composition for marketing pages. Eyebrow + h1 (gradient via --fx-headline-gradient) + h2 + supporting paragraph + optional CTA. Used on /dojo as the 2/3-width hero.
Secondary card-style CTA that lives next to a hero (typically 1/3 width). Title + body HTML + trailing attribution + optional secondary action. Mode-aware card surface.
Inline-flex row of subtle text links auto-separated by a bright dot. Children are plain <a> tags; the dot is inserted between them by CSS pseudo-elements. Used for low-emphasis nav rows (e.g. footer-style links inline below a primary CTA).
Section that renders a 1/2/3-column responsive grid of "areas of venture" cards. Sourced from the Venture Handbook chapter structure; used at the bottom of /dojo.
Page chrome around a single chapter. Wraps BaseThemeLayout. Composes ReadingProgressBar + skip link + top triptych (prev card + banner + next card) + ChapterMeta + tags + "in this chapter" outline + body slot + bottom prev/next cards. Container queries (NOT viewport media) drive four layout modes (Mobile / Tablet / Half-Screen / Desktop) per width AND aspect ratio.
Thin top-of-viewport stripe that tracks scroll position relative to the article body bounding rect (not the viewport). 3px tall, --color-primary fill, rAF-throttled scroll listener. Inline <script> via define:vars; respects prefers-reduced-motion (kills the width transition).
Slim, code-font row immediately below the chapter banner. Renders Chapter NN · X min read · word count · author · updated date · source org as a horizontal definition-list. Reading time computed by caller as ceil(words / 220).
Renders a date (Date object, ISO date string, or full ISO timestamp) in one of a small set of named styles inside a semantic <time datetime="YYYY-MM-DD"> element. Default style "long" → "April 26, 2026" (preferred for body prose and chapter meta). Other styles: "medium", "short", "iso", "reverse-medium" ("2026, Apr. 26"), "year-only". Backed by lib/format-date.ts which handles UTC normalization to avoid timezone-shift bugs.
Prev / next chapter preview card. Visual echo of AreasOfVentureGrid (--fx-card-* tokens, number-in-corner motif, lede + tags rhythm) with direction-aware chevron (top-left for prev, top-right for next). Two variants: "inline" adapts to reader container size — full → slim → chevron-only — for the top triptych; "block" is always full for chapter-end placement.