One brand color, used with discipline.
Ufo Green #35FF67 is the only brand color. Reserved for status nodes — shipped dot, live indicator, focus ring, atmospheric brand asset. Never a CTA fill, never a decorative border, never body text. Tinted neutrals carry every other surface.
— Brand
— Neutral scale (50 → 950)
--neutral-700: #313f3e) so they feel cohesive with the brand color, not lifeless next to it.— Semantic (dark theme)
- +Use brand green for live indicators, focus rings, status dots
- +Use brand green in atmospheric hero BG drift (treated as brand-asset image)
- +Use white #F7F7F7 fill for primary CTAs on dark surfaces
- +Tint all neutrals toward the brand hue for cohesion
- −Use green as a CTA fill
- −Use green as a decorative border on cards or alerts
- −Use green for body text or link colors
- −Use any brand color in light-mode UI chrome (light = monochromatic)
- −Use pure #000 or pure #fff anywhere
Two families, used at scale.
Space Grotesk does display + mono. Manrope does body. No third family. Italic on display copy is forbidden — italic emphasis lives in body only.
— Display scale (Space Grotesk)
— Body (Manrope)
Lead paragraph weight. Use beneath display headlines, in hero subheads, and at the top of long-form prose. Cap line length at 65–75ch to keep reading rhythm comfortable.
Default body. Used for paragraph copy in cards, descriptions, feature bullets. Italic emphasis lives here, never on display copy.
Captions, table cells, secondary metadata. Pricing card feature bullets use this size.
— Mono / Eyebrow (Space Grotesk uppercase + tracking)
- +Sentence case for every heading, button, label
- +ALL CAPS — Category 1: eyebrow labels (mono, ≤4 words, 0.14em–0.22em tracking)
- +ALL CAPS — Category 2: display caps (Space Grotesk fontWeight ≤400, tight tracking, 48px+) — signature hero treatment
- +text-wrap: balance on h1/h2/h3 for clean line breaks
- +Cap body line length at 65–75ch
- −Italic display copy (use Manrope italic in body if needed)
- −Title Case headings
- −ALL CAPS at Space Grotesk fontWeight ≥500 (caps display is light-weight only)
- −Inter, Roboto, Söhne, GT Walsheim, PP Editorial, Blauer Nue
- −Body text below 16px on mobile
- −Mixing 5+ font sizes (use the fixed scale)
4px base scale. Sharp corners, no exceptions.
Granular enough for card padding (24–32) and big enough for section rhythm (96–120). Radii tokens preserved but every value resolves to 0px. Sharp corners are non-negotiable across the system.
— Spacing scale
120px desktop / 64px mobile via .r-section-y. Container max width 1440px, gutter 32px desktop / 20px mobile via .r-container. Card interior padding 24–32px. Gap over margins for sibling spacing.— Radii (all 0px)
The atom kit.
5 atoms ship the system. Compose them into chrome (NavBar, Footer) and sections (Hero, Pricing). Every component obeys the tokens above.
— Button
— Pill
— SectionEyebrow
— StatusRail
— Icon
Icon.tsx. Inherit currentColor. Standard sizes 16/20/24, stroke 1.5–1.7. Never colored, never mixed weights.Asymmetric splits beat 50/50.
Four-fr eyebrow rail + eight-fr content carries most sections. Section rhythm at 120/64. Container max 1440 with responsive gutter.
— Asymmetric 4-8 grid (.r-grid-4-8)
900px. Legacy pattern used by archived sections. Live homepage now uses the asymmetric section-head (.vservices-top, 3fr/2fr) and sticky-rail spec grid (.vprocess-grid) variants documented below.— Hero 5-7 grid (.r-grid-5-7)
— Responsive breakpoints
— Sticky-rail spec grid (.vprocess-grid)
eyebrow + h2 + body
position: sticky; top: 160px while RHS card stack scrolls past. First instance: Process.tsx. Use when the section has 3+ ordered cards and a stable explanatory header.— Asymmetric section-head (.vservices-top, 3fr/2fr)
Display headline.
align-items: end) anchor the h2 baseline to the proof line. Collapses to single column at 800px. First instance: Services section. Use for section headers with a meaty opening + supporting credibility beat.— Outcome ticker marquee (.vservices-ticker-wrap)
.vticker animation (40s) with scoped uppercase override + slower 140s duration for outcome content. Honesty rule: every chip must be a verified hard metric OR a true capability statement of method. Never fabricate. First instance: Services section bottom band.— Bracket-box callout (.vbracket-box)
Contact.tsx closing CTA.Calm exponential ease-out. Settle, don't overshoot.
One easing curve covers the system. Hero atmospheric drift is the only persistent motion. Hover lifts 2px, never scale. No bounce, no springs, no parallax.
— Easing + timing
— Hover lift demo (translateY -2px, dim fill)
— Atmospheric drift (live)
- +translateY(-2px) on card and button hover
- +200ms transition on state changes
- +Respect prefers-reduced-motion universally
- +Use transform + opacity (compositor-friendly)
- −Bouncy / elastic / spring-overshoot easing
- −Scroll-jacking
- −Parallax (especially mobile)
- −Custom cursors
- −Scale animations on hover
- −Animating width / height / top / left / margin
Bold, direct, slightly punk.
Confrontational without being mean. Names the problem plainly. Refuses hedging. Plain language at 6th–7th grade reading level. Hormozi-meets-builder-tool clarity.
— Required phrases (must appear near CTAs)
- "30-day satisfaction window."
- "You own your code."
— Forbidden phrases (HARD BAN)
— Forbidden words (corporate filler + AI tells)
— Voice rules
If you're about to write any of these, stop.
Match-and-refuse. Single page of system bans. Each item also lives in DESIGN.md but here on one screen for fast lookup.
— Color
- ×Pure #000 or #fff
- ×Green CTA fill
- ×Green decorative border (cards, callouts, side stripes)
- ×Green body text or link color
- ×Any brand color in light-mode UI chrome
- ×Gradient text (background-clip: text + gradient)
— Type
- ×Italic display copy
- ×Title Case headings
- ×ALL CAPS at Space Grotesk fontWeight ≥500 (caps display is light-weight only)
- ×Inter, Roboto, Söhne, GT Walsheim, PP Editorial New, Blauer Nue
- ×Body copy below 16px on mobile
— Layout
- ×Rounded corners (any border-radius > 0)
- ×Side-stripe borders (>1px border-left/right as accent)
- ×Identical card grids (same-sized icon + heading + text repeated)
- ×Nested cards
- ×Hero-metric SaaS template (big number + small label + gradient)
- ×Stock photography
- ×Carousels for testimonials
— Motion
- ×Bouncy / elastic / spring-overshoot easing
- ×Scroll-jacking
- ×Parallax (especially mobile)
- ×Custom cursors
- ×Magnetic effects
- ×Animations of width / height / top / left / margin
- ×Hover-only functionality
— Voice
- ×Em dashes (use commas, colons, periods, parens)
- ×"free" as service descriptor
- ×"cancel anytime" / "no contract" / "no risk"
- ×Corporate filler word list (Section 7)
- ×AI-signature verbs (delve, showcase, demystify)
- ×Emoji
- ×Exclamation marks in success states
— Components / UX
- ×Modal as first thought (exhaust inline + progressive alternatives first)
- ×"Built by Otis Burgos" or any entity language in footers
- ×Core Industries reference on VENTR surfaces
- ×Microsoft Clarity (REMOVED — replaced with PostHog at Frontrunner+)
- ×Pricing on any public web surface (PMC lock #21 — pricing is hidden universally; vetting form qualifies, Discovery anchors verbally)
- ×"No upfront cost" copy (REMOVED revision-9)
- ×Standalone web design as a service line (Lane 3 always bundles web with automation; standalone web = decline)
- ×Emoji as UI element
- ×Unicode-as-icon (✓, ★, ●) — use SVG instead
- ×Mixed icon weights
- ×Colored icons (always inherit currentColor)
- ×PNG icons in production (SVG only)
