Canvas
Brand brief — TVL · Composer (Scroll)DESIGN.md

DESIGN.md — Taiho Ventures (TVL · Composer, Scroll / "v2")

Per-style brand authority for src/styles/43-tvl-composer/. Round-4 fork of 42-tvl-toi — same Sumi · Ocean type/palette DNA, evolved into a scroll-effects-driven, single long-scroll template ("Taiho Ventures v2"). Two structural moves vs. round 3: (1) the page is motion-led — a parallaxing carousel hero, a word-by-word illuminated statement, a pinned horizontal decade axis, a scroll-scrubbed by-the-numbers grid, a pinned orbit for investment criteria, and a ribboned outcomes river for the portfolio; (2) it is built as swappable section slots so alternate section treatments (the design system holds dozens) can be exposed later as client-facing composer controls (URL-param + localStorage driven). Source: Claude Design project e0cf0312… (Taiho Ventures v2.dc.html + its imported section files). Now a 4-page site (2026-06-25): this scroll template is the home; dedicated About, Investment Focus, and Portfolio pages compose the same slot seam under page-scoped slot ids (see the §9 Additions log). Treat sections 1–7 as canonical truth.


1. Aesthetic Anchor

Primary family: Warm Editorial → cooled to a clinical white (carried from 42). Japanese-heritage editorial (Mincho display) on a near-white ground. Secondary remix: Motion as the new texture. Where 42 used a torn duotone photo for atmosphere, v2 uses scroll-driven motion — reveals, scrubs, pins, ignitions — as the primary atmospheric layer. The ground stays cool and quiet; the page behaves alive. Reference brands: Taiho Pharmaceutical (heritage + flame) × Flagship Pioneering / a16z bio (institutional restraint) × Stripe / Linear (considered scroll choreography). Visual atmosphere: Quiet, cool, precise — then kinetic on scroll. Long generous sections, each one a single editorial idea that resolves as you reach it. Teal (Ocean) is the only saturated voice and it does the "lighting up."

2. Brand Voice

Copy is locked / verbatim from the client deck / v2 design. Design applies to fixed copy; it does not author new copy.

Voice SSOT: docs/brand-voice.md now supersedes this section for any TVL-facing prose — read it before writing/editing copy. The adjectives/examples below are descriptive context, not the authority; where they conflict, brand-voice.md wins. (The portfolio's four M&A acquirers are Merck, J&J, Sanofi, and Eli Lilly — Lilly acquired Orna in Feb 2026, so the site's "J&J, Eli Lilly, Sanofi" copy is correct.)

Adjectives: institutional, precise, understated, mission-led, unhurried. Voice anchor: Orwell — plain craftsman voice, concrete nouns, claims backed by named outcomes (Arcus, Halda, J&J, Lilly, Sanofi, Merck). Says: "A decade of backing biotech innovation." · "Patient, long-term capital." · "Where conviction leads." Avoids: "ecosystem", "premier", "world-class", "disruptive", growth-stage hype, exclamation, contact/response promises.

3. Color Palette & Roles

Mode: Light everywhere — no dark surfaces (carried directive). The --so-paper-deep Sky tint backs the Decade Axis; everything else sits on --so-paper. Tokens (theme.css :root): --so-paper #FCFEFE (ground) · --so-paper-deep #EAF7F4 (decade band) · --so-wash #DDF2EE · --so-rule #D7E1E0 (hairline) · --so-ink #15201E · --so-ink-soft #3C4B4B · --so-sepia #5C6B6A · --so-sepia-soft #9CADAC · --so-accent #08817C (Ocean) · --so-accent-deep #06605C · --so-sky #8FD4CE · --so-focus #E41B14 (eyebrows) · --so-ochre #B9831A + --so-gold #FDB913 (the "realized"/exit accent — by-the-numbers gold cells, acquired river lane). Notes: No gradients, no drop shadows on chrome. Depth = flat Sky tints, hairlines, and motion. Color lands on type, the duotone-free schematic graphics, and the scroll states.

4. Typography Rules

Headline: Shippori Mincho B1 (400 light statements / subheads, 700 display). Body: Hanken Grotesk (300 long-form, 400 UI, 500 eyebrows/buttons). Pairing: High-contrast humanist Mincho serif vs. clean grotesk. Serif carries voice; sans carries information. Banned: Inter, Roboto, Open Sans, Lato, system stacks, Space Grotesk. No Japanese glyphs as decorative texture.

5. Layout & Density

Grid: Asymmetric editorial. Content column max-width 1320px, gutters 24px (mobile) / 80px (desktop) — the .tv-shell / inline max-width:1320px columns. Section rhythm: Each section is a full scroll beat. Several are pinned/scrubbed and reserve extra track height (Who·260vh, Decade ~pin+0.78vh×steps, Numbers ~pin+2.4vh, Orbit ~(N-1)·88+100vh). Narrow/short viewports fall back to non-pinned "flat"/"stack" layouts (CSS-owned via [data-mode] / .tv-stack), never breaking. Close: portfolio river → offices Atlas → light footer. No dark inversion.

6. Atmosphere & Media

Hero: solid near-white, oversized parallaxing ghost numeral, word-mask headline reveal, segmented auto-advance carousel (6.5s, hover/tab-hidden pause, swipe). Motion catalogue: scroll progress bar; frosted-on-scroll header; word-by-word illuminate; pinned horizontal decade axis with year-fill + card focus; scrubbed stat grid with count-up + gold exit reveal; pinned criteria orbit (rotating ring, docking nodes, cross-fading panes); SVG ribbon "river" (grown source bars, drawn ribbons, flowing dashes, count-ups). Media stance: schematic / type-led — the Taiho logomark is the one real mark; the "map" is a deliberate schematic placeholder ([ map of menlo park ]). Portfolio marks live in the river chips as links, not logo art. (FPO stamping from round 3 is not carried — v2 has no placeholder photography; revisit if real hero imagery is introduced.) Reduced motion: every effect resolves to its end-state under prefers-reduced-motion / html.tv-calm.

7. Do's and Don'ts

Do:

Don't:

8. Agent Prompt Guide

8a. Section contract (invariants — read before touching sections/variants)

The live composer was removed (2026-06-29). Sections are now fixed: each screen renders one chosen variant per slot via components/Section.tsx, and initSections in index.client.ts boots them. The alternate variant components still ship in components/ (so any can be hand-wired back), but Slot/ComposerPanel/composer.ts and the swap controller are gone. These invariants still hold:

  1. Init key match. Section emits data-section-init={init}; that exact string MUST be a key in the INITS map in index.client.ts. Mismatch ⇒ the section renders but has no motion (no error). A section with no JS (e.g. Offices Atlas) just omits initinitSections still runs reveal on every [data-section] wrapper.
  2. No anchor id on variant <section>s. The Section wrapper owns the in-page anchor id (who/decade/look/portfolio/offices/…); variant components must NOT set it, or a component that also hardcodes the id produces a duplicate and #anchor jumps to the wrong one.
  3. One intentional quirk (don't "fix"): the hero keys on [data-carousel], not [data-cx], specifically so the shared FrameLayout enhancer doesn't double-init it.

Note: init*(scope) fns still return a teardown (legacy of the swap controller); nothing calls it now, so a section's motion is one-shot. To swap a section, change its screen's <Section init> + the imported component — no URL/localStorage state is involved anymore.

9. Notes & References

Created: 2026-06-24 as 43-tvl-composer (Round 4). Lineage: 40-sumi-ocean-cvc42-tvl-toi (round 3) → 43-tvl-composer (round 4, scroll/composer). Source: Claude Design project e0cf0312-a498-44fe-9760-73cdb16d7e61Taiho Ventures v2.dc.html and imported sections: Who We Are · Illuminated, Timeline · Decade Axis, By the Numbers · Portfolio Grid, What We Look For · Orbit Scroll, Portfolio · Outcomes River. The project holds many alternate variants per section (the future composer options).

Additions log:

Live site View the real, full-screen site Everything above is a framed preview. Open the live build — full width, no browser mockup, every section interactive.
Open live site
Open →
Open →
Open →
Open →
Open →

Legal Notice

Open →
Open →
Restricted

Design Canvas

Enter the access key to continue.