You've taken the first step towards executive-grade strategy, responsible AI, and a community of leaders reshaping industries. Everything you need to hit your next inflection point starts here.
Your New Home Base
The Infinity Partners platform is built for leaders who move fast and think clearly. Here's what's available to you as a member.
Navigate AI adoption with confidence. Our platform surfaces strategic frameworks, governance models, and real-world case studies so your organisation leads responsibly.
Access curated market intelligence, brand positioning playbooks, and executive-grade marketing strategies tailored to C-suite leaders.
From operating model redesign to transformation roadmaps — our consulting resources give you the frameworks elite firms use, at your fingertips.
Stay ahead of market shifts with continuously updated insights, briefings, and trend analyses delivered directly through your member dashboard.
Every resource is reviewed by our senior advisors. No noise — only signal. Build on a foundation of peer-reviewed executive thinking.
Connect directly with fellow members across industries. Raise questions, share wins, and co-create solutions with a network of serious operators.
Grow Together
Membership isn't just access to tools — it's entry into a living ecosystem of ambitious executives building the next generation of business acumen.
Infinity Partners Summit — bringing network members together to share ideas, challenges, and victories.
Attend curated in-person and virtual events designed for senior leaders. No filler — just high-signal conversations with people who've been in the room.
Infinity Partners members span markets, industries, and time zones. Your next strategic partner, advisor, or collaborator is already in the network.
Forge meaningful alliances with operators who share your ambition. Our facilitated introductions connect you with exactly the right people at the right time.
As the network grows, local chapters will bring members together in their home cities for roundtables, dinners, and collaborative working sessions.
Your Onboarding Roadmap
Four simple steps to get fully embedded in the Infinity Partners ecosystem and start realising value immediately.
Head to alpha.infinitypr.ai and sign in with the credentials from your onboarding email. Your dashboard is ready and waiting.
Tell the network who you are and what you're working on. A complete profile helps us match you with the right advisors, resources, and peers.
Browse our three core practices — Executive Marketing, Responsible AI, and Management Consulting — and start with what matters most to your growth right now.
Introduce yourself in the member community, attend an upcoming meetup, and start building alliances that extend well beyond this platform.
The ecosystem is live. The community is growing. And the advisors are ready. Dive in, explore the platform, and reach out if you need a hand getting started.
Design System Reference
A comprehensive reference documenting every design token, typographic rule, gradient definition, shadow value, border-radius, and component pattern applied across the Infinity Partners platform. Use this guide to replicate the exact look and feel on a complementary parallel platform.
All colors are declared as HSL values on :root and consumed via Tailwind semantic utilities (e.g. bg-primary, text-foreground). The site ships a dark-first theme; a .dark class mirrors :root and a .light class overrides for isolated light surfaces.
Base / Background
--backgroundhsl(224 28% 6%) → bg-background / text-background
--foregroundhsl(210 20% 94%) → text-foreground
Card / Popover
--cardhsl(224 25% 9%) → bg-card
--card-foregroundhsl(210 20% 94%) → text-card-foreground
--popoverhsl(224 25% 9%) → bg-popover
--popover-foregroundhsl(210 20% 94%) → text-popover-foreground
Primary (Cyan)
--primary (dark)hsl(165 100% 50%) → bg-primary / text-primary
--primary-foregroundhsl(224 28% 6%) → text-primary-foreground
--primary (:root default)hsl(0 0% 100%) — white fallback before .dark is applied
Secondary (Purple)
--secondary (dark)hsl(262 100% 50%) → bg-secondary / text-secondary
--secondary-foregroundhsl(0 0% 100%) → text-secondary-foreground
Muted
--mutedhsl(224 20% 14%) → bg-muted
--muted-foregroundhsl(220 15% 60%) → text-muted-foreground
Accent
--accent (dark)hsl(165 100% 50%) → bg-accent
--accent-foregroundhsl(224 28% 6%) → text-accent-foreground
Destructive
--destructivehsl(0 62% 50%) → bg-destructive
--destructive-foregroundhsl(0 0% 100%)
Border / Input / Ring
--borderhsl(224 20% 16%) → border-border
--inputhsl(224 20% 14%) → bg-input
--ring (dark)hsl(165 100% 50%) → ring-ring
Light Surface Overrides (.light class)
--backgroundhsl(0 0% 99%)
--primaryhsl(165 90% 38%)
--secondaryhsl(262 80% 55%)
--mutedhsl(220 14% 96%)
--muted-foregroundhsl(220 10% 50%)
--borderhsl(220 14% 90%)
Two typefaces are loaded (Google Fonts via index.html). All heading elements share a negative letter-spacing for the premium executive aesthetic.
Font Families
Body / UI — font-family: body'Inter', system-ui, sans-serif → applied to <body>
Headings — font-family: headings'Space Grotesk', system-ui, sans-serif → applied to h1–h6
Heading Defaults (CSS rule on h1–h6)
font-weight700 (Tailwind: font-bold)
letter-spacing-0.02em (Tailwind: tracking-tight)
Heading Scale (Tailwind classes used in-code)
h1 (hero)text-4xl / md:text-5xl / lg:text-6xl → 2.25rem / 3rem / 3.75rem
h2 (section)text-3xl / md:text-4xl → 1.875rem / 2.25rem
h3 (card)text-base / md:text-lg → 1rem / 1.125rem
Body Scale
Lead paragraphtext-lg / md:text-xl → 1.125rem / 1.25rem | leading-relaxed (1.625)
Standard bodytext-base → 1rem | leading-relaxed
Small / card bodytext-sm → 0.875rem | leading-relaxed
Label / eyebrowtext-sm font-semibold uppercase tracking-widest (0.1em)
Badge / captiontext-xs → 0.75rem
Font Weights Used
Boldfont-bold → 700 (headings, step numbers)
Semiboldfont-semibold → 600 (card titles, labels)
Mediumfont-medium → 500 (badge text, nav items)
Regularfont-normal → 400 (body copy)
Gradient Text Utilities
.text-gradient-cyanlinear-gradient(135deg, hsl(165 100% 50%) 0%, hsl(180 100% 55%) 100%) — clip to text
.text-gradient-purplelinear-gradient(135deg, hsl(262 100% 70%) 0%, hsl(280 100% 65%) 100%) — clip to text
.text-gradient-brandlinear-gradient(135deg, hsl(165 100% 50%) 0%, hsl(262 100% 65%) 100%) — clip to text
Live Examples
H1 — Space Grotesk 700
H2 — Space Grotesk 700
H3 — Space Grotesk 700
Lead body — Inter 400, text-muted-foreground
Card body — Inter 400 small
Eyebrow label
--radius: 9999px sets the global shadcn radius variable to fully pill-shaped. Component-level overrides are applied where pill shape would break usability (e.g. dropdown panels).
Global Token
--radius9999px → used by shadcn Button, Badge, Input, etc. → fully pill-shaped
Nav Dropdown Override (CSS layer: components)
nav .absolute.rounded-mdborder-radius: 12px !important → prevents menu items being clipped by pill radius
Tailwind Utilities Used Per Element
Section wrapper imagerounded-2xl → 16px
Feature / pillar cardsrounded-2xl → 16px
Step cards (next steps)rounded-2xl → 16px
Icon container (large)rounded-xl → 12px
Icon container (small)rounded-xl → 12px
Badge / pill labelrounded-full → 9999px (inherits --radius)
Code / token swatchesrounded-md → 6px
Buttons (shadcn default)rounded-full → 9999px (via --radius)
Visual Demonstration
All gradients are stored as CSS custom properties and exposed as Tailwind utility classes under @layer utilities. Apply with style={{ background: "var(--gradient-*)" }} or the matching utility class.
Hero Background
--gradient-hero / .bg-gradient-herolinear-gradient( 135deg, hsl(224 35% 5%) 0%, hsl(250 30% 10%) 50%, hsl(262 40% 8%) 100% ) Dark navy → subtle purple tint → deep purple-navy
Section Divider
--gradient-section / .bg-gradient-sectionlinear-gradient( 180deg, hsl(224 28% 6%) 0%, hsl(250 25% 8%) 50%, hsl(224 28% 6%) 100% ) Background → slightly lighter midpoint → back to background
Card Gradient
--gradient-card / .bg-gradient-cardlinear-gradient( 180deg, hsl(224 25% 10%) 0%, hsl(224 25% 7%) 100% ) Top-lit card surface
Cyan Glow (radial)
--gradient-glow-cyan / .bg-gradient-glow-cyanradial-gradient( ellipse 80% 60% at 50% 50%, hsl(165 100% 50% / 0.12) 0%, transparent 70% ) Used as pointer-events-none overlay on hero & CTA sections
Purple Glow (radial)
--gradient-glow-purple / .bg-gradient-glow-purpleradial-gradient( ellipse 80% 60% at 50% 50%, hsl(262 100% 50% / 0.12) 0%, transparent 70% ) Applied at opacity-60 as secondary overlay
Video Overlay
--gradient-video-overlay / .bg-gradient-video-overlaylinear-gradient( 180deg, hsl(224 35% 5% / 0.75) 0%, hsl(224 35% 5% / 0.55) 50%, hsl(224 35% 5% / 0.15) 100% ) Ensures text legibility over video backgrounds
Image Overlay (inline — community card)
(inline Tailwind)bg-gradient-to-t from-black/60 via-black/20 to-transparent — bottom-up text-protection overlay on images
Gradient Text (applied via background-clip: text)
.text-gradient-cyanlinear-gradient(135deg, hsl(165 100% 50%) 0%, hsl(180 100% 55%) 100%)
.text-gradient-purplelinear-gradient(135deg, hsl(262 100% 70%) 0%, hsl(280 100% 65%) 100%)
.text-gradient-brandlinear-gradient(135deg, hsl(165 100% 50%) 0%, hsl(262 100% 65%) 100%)
Five shadow levels are defined as CSS custom properties and exposed as utility classes. Glow shadows double as accessibility focus indicators for interactive elements.
--shadow-soft / .shadow-soft0 4px 24px -4px hsl(0 0% 0% / 0.4)
--shadow-card / .shadow-card0 8px 32px -8px hsl(0 0% 0% / 0.5) → applied to feature & step cards
--shadow-glow-cyan / .shadow-glow-cyan0 0 40px hsl(165 100% 50% / 0.25)
--shadow-glow-purple / .shadow-glow-purple0 0 40px hsl(262 100% 50% / 0.2)
--shadow-deep / .shadow-deep0 16px 64px hsl(0 0% 0% / 0.6)
Glow Border Utilities
.border-glow-cyanborder-color: hsl(165 100% 50% / 0.6) box-shadow: 0 0 12px hsl(165 100% 50% / 0.2), inset 0 0 8px hsl(165 100% 50% / 0.05)
.border-glow-purpleborder-color: hsl(262 100% 50% / 0.5) box-shadow: 0 0 12px hsl(262 100% 50% / 0.2), inset 0 0 8px hsl(262 100% 50% / 0.05)
Borders use semantic tokens. Interactive elements shift border color on hover to signal affordance.
Default card/section borderborder-border → hsl(224 20% 16%)
Hover state (cards, steps)hover:border-primary/40 → hsl(165 100% 50% / 0.4) in dark
Badge / pill borderborder-primary/40 → hsl(165 100% 50% / 0.4)
Focus ringring-ring → hsl(165 100% 50%) | ring-offset: 2px
Glass card borderhsl(224 20% 20% / 0.6)
Glass card cyan borderhsl(165 100% 50% / 0.15)
Global reset (*)@apply border-border → every element defaults to the border token
Two glassmorphism utility classes provide the premium SaaS frosted-glass feel used on interactive overlays and modals.
.glass-card
background: hsl(224 25% 9% / 0.7); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid hsl(224 20% 20% / 0.6);
.glass-card-cyan
background: hsl(165 100% 50% / 0.05); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid hsl(165 100% 50% / 0.15);
All keyframe animations are declared in @layer utilities and exposed as Tailwind utility classes. Reduced-motion media query disables all animations.
.animate-marquee — Logo ticker scroll
@keyframes marquee {
from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
animation: marquee 35s linear infinite;.animate-fade-up — Section entrance
@keyframes fadeUp {
from { opacity: 0; transform: translateY(28px); }
to { opacity: 1; transform: translateY(0); }
}
animation: fadeUp 0.7s ease-out forwards;.animate-fade-in — Soft reveal
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
animation: fadeIn 0.9s ease-out forwards;.animate-float — Hero visual float
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
animation: float 6s ease-in-out infinite;.animate-pulse-glow — AI/tech accent pulse
@keyframes pulseGlow {
0%, 100% { opacity: 0.5; }
50% { opacity: 1; }
}
animation: pulseGlow 2.5s ease-in-out infinite;Framer Motion (in-code transitions)
repeat valueInfinity (JS constant — never a string)
whileInView patternkey on useLocation().pathname if animation must re-run on route change
Easing identifierscamelCase: easeInOut, easeOut, linear (not quoted strings)
Hover transitions (Tailwind)
Card bordertransition-colors duration-300
Button arrow icontransition-transform group-hover:translate-x-1
Reduced-motion override
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}Recurring UI patterns used across sections, documented with Tailwind class signatures.
Feature / Pillar Card
rounded-2xl border border-border bg-card p-6
flex flex-col gap-4
hover:border-primary/40 transition-colors duration-300
boxShadow: var(--shadow-card)
Icon container: w-11 h-11 rounded-xl bg-primary/10
flex items-center justify-center shrink-0
Icon: w-5 h-5 text-primaryBadge / Eyebrow Pill
inline-flex items-center gap-2 px-4 py-1.5 rounded-full border border-primary/40 bg-primary/10 text-primary text-sm font-medium
Section Header Block (centered)
text-center mb-14
Eyebrow: text-primary text-sm font-semibold
uppercase tracking-widest mb-3
H2: text-3xl md:text-4xl font-bold
text-foreground mb-4
Lead: text-muted-foreground text-lg
max-w-2xl mx-autoNumbered Step Card
flex flex-col sm:flex-row gap-6
rounded-2xl border border-border bg-card
p-6 md:p-8
hover:border-primary/40 transition-colors duration-300
boxShadow: var(--shadow-card)
Step number: text-4xl font-bold text-primary/20
Title row: flex items-center gap-2
CheckCircle w-4 h-4 text-primary + h3Buttons (shadcn — size="lg")
Primary (default): bg-primary text-primary-foreground
rounded-full px-8 py-3 font-medium
hover: opacity-90
Outline variant: border-border text-foreground
rounded-full px-8 py-3
hover: bg-mutedImage with Bottom-Text Overlay
Wrapper: rounded-2xl overflow-hidden aspect-[4/3]
Image: w-full h-full object-cover
Overlay: absolute inset-0
bg-gradient-to-t from-black/60 via-black/20
to-transparent
Caption: absolute bottom-6 left-6 right-6
text-white text-sm font-mediumSection Container
<section> py-20 md:py-28
Inner container:
container max-w-6xl mx-auto px-6 (standard)
container max-w-5xl mx-auto px-6 (narrower — steps)
container max-w-3xl mx-auto px-6 (centred CTA / hero)
Grid gap: gap-6 (feature grid) | gap-8 (2-col)
gap-5 (community pillars) | gap-10 (image+pillars)The layout uses Tailwind's default 4px-base spacing scale. Key values used consistently across sections are listed below.
Section Vertical Padding
Standardpy-20 md:py-28 → 5rem / 7rem
Container Max-Widths
Hero / CTA (centred)max-w-3xl → 48rem
Steps / contentmax-w-5xl → 64rem
Feature gridsmax-w-6xl → 72rem
Horizontal paddingpx-6 → 1.5rem (all containers)
Grid Configurations
Feature gridgrid-cols-1 / md:grid-cols-2 / lg:grid-cols-3 — gap-6
Community (image + pillars)grid-cols-1 / lg:grid-cols-2 — gap-10
Pillar cardsgrid-cols-1 / sm:grid-cols-2 — gap-5
Step cardsflex flex-col gap-6
Common Spacing Values
Section header bottom marginmb-14 → 3.5rem
Card internal gapgap-4 (features) / gap-3 (pillars)
Button group gapgap-4
Badge bottom marginmb-6
H1/H2 bottom marginmb-6 (hero h1) / mb-4 (section h2)
Lead paragraph bottom marginmb-8 (hero) / mb-10 (CTA)
Z-Index Layering
Section contentrelative z-10
Background overlaysabsolute inset-0 pointer-events-none (no z-index — stacked in DOM order)
Background image (faded)absolute inset-0 opacity-10 pointer-events-none
Overflow & Scroll
Gradient sectionsoverflow-hidden (clips glow bleed)
htmlscroll-behavior: smooth
bodyoverflow-wrap: break-word
Globalhtml, body max-width: 100%
Flex/Grid children:where(.flex,.grid) > * { min-width: 0 } — prevents overflow blowout
Copy-paste this block into the target platform's root CSS file, then map each variable to the corresponding framework tokens (Tailwind, CSS Modules, styled-components, etc.). Values shown are the authoritative dark theme defaults.
:root {
/* ── Semantic color tokens ── */
--background: hsl(224 28% 6%);
--foreground: hsl(210 20% 94%);
--card: hsl(224 25% 9%);
--card-foreground: hsl(210 20% 94%);
--popover: hsl(224 25% 9%);
--popover-foreground: hsl(210 20% 94%);
--primary: hsl(165 100% 50%); /* Cyan brand accent */
--primary-foreground: hsl(224 28% 6%);
--secondary: hsl(262 100% 50%); /* Purple accent */
--secondary-foreground: hsl(0 0% 100%);
--muted: hsl(224 20% 14%);
--muted-foreground: hsl(220 15% 60%);
--accent: hsl(165 100% 50%);
--accent-foreground: hsl(224 28% 6%);
--destructive: hsl(0 62% 50%);
--destructive-foreground: hsl(0 0% 100%);
--border: hsl(224 20% 16%);
--input: hsl(224 20% 14%);
--ring: hsl(165 100% 50%);
--radius: 9999px; /* Pill-shaped global radius */
/* ── Gradient tokens ── */
--gradient-hero: linear-gradient(
135deg,
hsl(224 35% 5%) 0%,
hsl(250 30% 10%) 50%,
hsl(262 40% 8%) 100%
);
--gradient-section: linear-gradient(
180deg,
hsl(224 28% 6%) 0%,
hsl(250 25% 8%) 50%,
hsl(224 28% 6%) 100%
);
--gradient-card: linear-gradient(
180deg,
hsl(224 25% 10%) 0%,
hsl(224 25% 7%) 100%
);
--gradient-glow-cyan: radial-gradient(
ellipse 80% 60% at 50% 50%,
hsl(165 100% 50% / 0.12) 0%,
transparent 70%
);
--gradient-glow-purple: radial-gradient(
ellipse 80% 60% at 50% 50%,
hsl(262 100% 50% / 0.12) 0%,
transparent 70%
);
--gradient-video-overlay: linear-gradient(
180deg,
hsl(224 35% 5% / 0.75) 0%,
hsl(224 35% 5% / 0.55) 50%,
hsl(224 35% 5% / 0.15) 100%
);
/* ── Shadow tokens ── */
--shadow-soft: 0 4px 24px -4px hsl(0 0% 0% / 0.4);
--shadow-card: 0 8px 32px -8px hsl(0 0% 0% / 0.5);
--shadow-glow-cyan: 0 0 40px hsl(165 100% 50% / 0.25);
--shadow-glow-purple: 0 0 40px hsl(262 100% 50% / 0.2);
--shadow-deep: 0 16px 64px hsl(0 0% 0% / 0.6);
}
/* ── Typography ── */
body {
font-family: 'Inter', system-ui, sans-serif;
background: var(--background);
color: var(--foreground);
-webkit-font-smoothing: antialiased;
overflow-wrap: break-word;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Space Grotesk', system-ui, sans-serif;
font-weight: 700;
letter-spacing: -0.02em;
}
/* ── Utility classes ── */
.glass-card {
background: hsl(224 25% 9% / 0.7);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid hsl(224 20% 20% / 0.6);
}
.glass-card-cyan {
background: hsl(165 100% 50% / 0.05);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid hsl(165 100% 50% / 0.15);
}
.border-glow-cyan {
border-color: hsl(165 100% 50% / 0.6);
box-shadow: 0 0 12px hsl(165 100% 50% / 0.2),
inset 0 0 8px hsl(165 100% 50% / 0.05);
}
.border-glow-purple {
border-color: hsl(262 100% 50% / 0.5);
box-shadow: 0 0 12px hsl(262 100% 50% / 0.2),
inset 0 0 8px hsl(262 100% 50% / 0.05);
}
.text-gradient-cyan {
background: linear-gradient(135deg, hsl(165 100% 50%) 0%, hsl(180 100% 55%) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.text-gradient-purple {
background: linear-gradient(135deg, hsl(262 100% 70%) 0%, hsl(280 100% 65%) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.text-gradient-brand {
background: linear-gradient(135deg, hsl(165 100% 50%) 0%, hsl(262 100% 65%) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}