CardBase
Reusable card surface
A shared primitive for repeated editorial, directory, and CTA cards.
/CERAMIC
Clay while we shape it, ceramic when it ships. Every token renders from app/token-source.css, then hardens into reliable components across the site.
Ceramic keeps the system practical and expressive: flexible enough to mold into different product surfaces, strict enough to ship as a dependable interface. This section renders directly from lib/design-tokens.ts, while CSS values are globally sourced from app/token-source.css.
Brand accent scale anchored at --primary-500.
--primary-50#FDF2EE--primary-100#FAE4DC--primary-200#F4C5B3--primary-300#EDA087--primary-400#E07B5D--primary-500#CC5536--primary-600#B8472C--primary-700#9E3D25--primary-800#7D3020--primary-900#5C2318--primary-950#3D170FWarm black scale anchored at --deep-900.
--deep-50#F5F4F4--deep-100#E8E6E7--deep-200#D1CECE--deep-300#B5B0B2--deep-400#928B8E--deep-500#706769--deep-600#544D50--deep-700#443A3D--deep-800#3F3538--deep-900#3C3235--deep-950#1E191BNeutral scale tinted with the Special Black undertone.
--gray-0#FFFFFF--gray-50#F7F5F5--gray-100#EEEEEE--gray-200#E3E1E2--gray-300#D4D0D1--gray-400#BDB7B9--gray-500#A09899--gray-600#8F898B--gray-700#756E70--gray-800#635B5E--gray-900#3C3235--gray-950#241E20One visible outline, no stacked shadows. Shared by cards, links, buttons, and fields.
--focus-ring-colorcurrentColor--focus-ring-widthvar(--border-width-focus)--focus-ring-offsetvar(--space-1)Surface roles used by shared layout and card primitives.
--color-bg-defaultvar(--gray-0)--color-bg-subtlevar(--gray-50)--color-bg-uivar(--gray-100)--color-bg-inversevar(--deep-900)--color-bg-brandvar(--primary-600)Text roles that shift correctly inside theme classes.
--color-text-primaryvar(--deep-900)--color-text-secondaryvar(--gray-800)--color-text-mutedvar(--gray-700)--color-text-brandvar(--primary-600)--color-text-on-brandvar(--gray-0)--color-text-on-inversevar(--gray-0)Low-contrast rules for page grids and repeated cards.
--color-border-mutedvar(--gray-200)--color-border-defaultvar(--gray-400)--color-border-strongvar(--gray-900)--color-border-brandvar(--primary-500)Button and active-state roles.
--color-interactive-primaryvar(--primary-600)--color-interactive-primary-hovervar(--primary-700)--color-interactive-primary-activevar(--primary-700)--color-interactive-primary-textvar(--gray-0)Type scale, weight, and tracking tokens.
--font-sans'TWK Lausanne', 'Helvetica Neue', 'Arial', sans-serif--font-display'TWK Lausanne', 'Helvetica Neue', 'Arial', sans-serif--font-mono'JetBrains Mono', 'Menlo', 'Consolas', monospace--fw-light350--fw-medium500--fw-bold700--type-display-xlclamp(4rem, 8vw, 7rem)--type-displayclamp(3rem, 6vw, 5rem)--type-h1clamp(2.25rem, 4.5vw, 4rem)--type-h2clamp(1.75rem, 3.5vw, 3rem)--type-h3clamp(1.375rem, 2.5vw, 2rem)--type-body-lg1.125rem--type-body1rem--type-body-sm0.875rem--type-eyebrow0.75remShared spacing scale used by layouts and controls.
--space-14px--space-28px--space-312px--space-416px--space-520px--space-624px--space-832px--space-1040px--space-1248px--space-1664px--space-2080px--space-2496px--space-32128pxBrick Red scale
Special Black scale
Neutral gray scale
Background
--color-bg-defaultvar(--gray-0)--color-bg-subtlevar(--gray-50)--color-bg-inversevar(--deep-900)--color-bg-brandvar(--primary-600)Text
--color-text-primaryvar(--deep-900)--color-text-secondaryvar(--gray-800)--color-text-mutedvar(--gray-700)--color-text-on-inversevar(--gray-0)TWK Lausanne — three weights used: 350 (body/display), 500 (medium), 700 (bold)
Aa
--fw-light
Aa
--fw-medium
Aa
--fw-bold
.text-display-xl--type-display-xlWHO KNOW.
.text-display--type-displayWE CO-BUILD
.text-h1--type-h1Built in Doha.
.text-h2--type-h2Co-building globally.
.text-h3--type-h3Domain Expert Fellows
.text-h4--type-h4Venture Description
--type-eyebrow// THE STUDIO · DOHA · GLOBAL CO-BUILDING
--type-body-lgFellows bring deep industry knowledge. The Studio brings the rest.
--type-bodyReal-time risk intelligence for data centre development in arid regions.
--type-body-smCustom tailoring the most experienced AI-workforce.
--space-14px--space-28px--space-312px--space-416px--space-624px--space-832px--space-1040px--space-1248px--space-1664px--space-2080px--space-2496pxTWK Lausanne. Sentence-case headings: hero 36–64px, section 28–48px, card 20–32px. Warm dark surfaces, white text and brick accents follow semantic colour roles. Cards enter individually and repeat when scrolling back. The homepage film uses an opaque rising layer followed by a zoom; this is a media-specific interaction.
Shared homepage geometry. Rounded rectangles, not pills. Grouped logo grids round only their outer container.
--radius-cardvar(--radius-card-base)--radius-mediavar(--radius-md)--radius-controlvar(--radius-md)--card-gapvar(--space-6)Repeat on viewport re-entry. Cards reveal in reading order; navigation follows scroll direction. Reduced motion keeps content visible.
--motion-reveal-duration840ms--motion-stagger180ms--motion-reveal-distancevar(--space-6)--motion-reveal-easecubic-bezier(.22, 1, .36, 1)--motion-nav-durationvar(--dur-slow)--dur-fast120ms
hover / micro interactions
--dur-med220ms
colour transitions, fades
--dur-slow420ms
layout shifts, panels
--ease-standardcubic-bezier(0.2, 0.0, 0.0, 1.0)
General enter — fast start, ease out
Framer Motion ease (page reveals)SITE_MOTION.ease
Repeatable entrance — 840ms, 180ms between cards
REVEAL ANIMATION PREVIEW
LogoGrid with preserved empty slots
The Utopia StudioDirectoryLayout
Shared list pages use the same filter, search, empty, and card grid behaviour.
Components
Filter buttons, search input, and result grid stay aligned.
States
Zero-result views use the same surface, type, and border tokens.
Keyboard focus uses one 2px outline with a 4px offset, in the control’s text color. No glow or stacked rings. Tab through the controls to try the shared focus-visible behavior.
SURFACE: --deep-900 (default)
John Doe
Real-time risk intelligence for data centre development.
SURFACE: --primary-500 (CTA)
FELLOWSHIP PROGRAMME
BRING THE BOTTLENECK ONLY YOU CAN SEE.
none (0px)
architectural default
sm (2px)
micro elements
md (4px)
tags only
pill (9999px)
avoid — rarely used
--color-border-mutedSection dividers
--color-border-defaultDefault borders
--color-border-strongStrong borders