Light
profile banner · company cover · avatar




Clear Signal. Right Audience.
Version 2 · October 2026
Logo
Four corner brackets lock onto a red signal square inside a square outline. The outline is solid: Black on light grounds, White on dark grounds, never a tint. The horizontal lockup is the primary logo. The stacked lockup is secondary, for narrow or square spaces. The descriptor lockup adds “Programmatic media, fully managed” for introductions. Use the icon alone where space is square or tiny, and the wordmark alone only where the mark already appears nearby.
Icon centred above the wordmark. Use it where the horizontal lockup would get too small: square spaces, narrow columns, merch, signage. The horizontal lockup stays the default.
Icon, wordmark and “PROGRAMMATIC MEDIA, FULLY MANAGED” in Geist Mono, uppercase and widely tracked, running the exact width of the wordmark. For decks, email signatures, event screens and introductions. Not to be confused with the tagline, “Clear Signal. Right Audience.”, which is set separately.
An app-tile version (Black square, reversed mark) is in logos/icon/tile/ for social and app use.
Every variant ships as SVG (text outlined), transparent PNG (2000 px wide for the lockups and wordmark, 1024 px for the icon) and vector PDF.
The same mark with the outline in solid Signal Red #FF2A1F. A secondary logo for moments that can carry more colour: merch, swag, campaign graphics, event backdrops. The primary logo stays the black / white outline everywhere else, including the website, documents and LinkedIn. Never place it on a red ground. Horizontal, icon, stacked and descriptor lockups, for light and dark grounds, as SVG, PNG and PDF in logos/alternate-red-outline/.
Unit x = the side of the red signal square (¼ of the mark height). Keep at least 2x clear on every side of every lockup (horizontal, stacked, descriptor) and of the icon. No type, edges or other graphics inside it.
Favicons
At 16 px the outline can’t survive, so the 16 px favicon is a bold version of the mark (heavier brackets, larger square, no outline), drawn pixel by pixel. From 32 px up it is the full mark with its solid white outline, with 32, 48 and 64 px hinted to whole pixels. favicon.ico holds 16, 32 and 48 px.










<link rel="icon" href="/favicon.ico" sizes="16x16 32x32 48x48"> <link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32.png"> <link rel="icon" type="image/png" sizes="64x64" href="/favicons/favicon-64.png"> <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png"> <link rel="manifest" href="/favicons/site.webmanifest"> <meta name="theme-color" content="#0A0A0A">
Colour
Mostly Black and White, with neutral grays for the crowd and structure. Signal Red marks what has been found: one focus per layout. Never use red for long text.
Primary · text, marks, dark grounds
Primary · light grounds, reversed type
Accent · the found signal; one focus per layout
Gray · surfaces, cards; rings & grid on white
Gray · the crowd (dots), rules; secondary text on dark
Gray · secondary text on white; the crowd on dark
Gray · rings, grid and rules on Black
* CMYK values are approximate, converted mathematically from RGB with no colour profile. Always ask for a printer proof; match Signal Red to a proof, not to a screen. For large Black areas in print, ask the printer for a rich black.
Typography
Geist for everything people read; Geist Mono, set uppercase and tracked, for eyebrows, labels and data. Headlines are tight (−0.05em) and set solid. Both fonts are open source (SIL OFL 1.1) and bundled in fonts/.
Aa
400 Regular · 500 Medium · 600 Semibold · 700 Bold
Aa
500 Medium · uppercase · +0.10–0.12em
| Style · sample | Family · weight | Desktop (1440) | Mobile (≤ 600) |
|---|---|---|---|
| H1 · hero headline The advertising solution for | Geist 700 | 60 / 60 px · −0.05em | clamp 26–46 px (35 px at 390) / 1.0 · −0.05em |
| H2 · section One managed team for every screen. | Geist 700 | 48 / 50 px · −0.04em | 30 / 32 px · −0.04em |
| H3 · tagline, card title Clear Signal. Right Audience. | Geist 600 | 28 / 31 px · −0.025em | 19 / 21 px · −0.025em |
| Body · subhead Customized campaigns that create real connections across display, video, CTV, and audio channels. | Geist 400 | 18 / 26 px | 15 / 22 px |
| Nav link Why Full Signal Media | Geist 500 | 15 px · −0.005em | menu: Geist 600 20 px / 52 px rows |
| Button Let’s talk | Geist 600 | 16 px (nav 14 px) · −0.01em | 15 px · 48 px min height |
| Eyebrow · caption Programmatic media, fully managed | Geist Mono 500 | 13 px · +0.12em · uppercase | 11 px · +0.12em · uppercase |
| Data label (callout) Audience found 10/60 | Geist Mono 500 | 13 px · +0.10em · uppercase | 11 px |
Tagline
Set in Geist 600 in the ink colour, with the pulsing square marker (core + outline box) to its left. The marker is the same one that finds people in the hero.
Clear Signal. Right Audience.
Clear Signal. Right Audience.
Clear Signal. Right Audience.
Clear Signal. Right Audience.
Clear Signal. Right Audience.
clear signal, right audience
Motion
A red square core inside an ink outline box. The core breathes between full and half opacity and never switches off; a soft red halo grows and fades behind it. One shape everywhere: radar finds, the tagline, the callout dot and the phone eyebrow.
| Use | Core | Outline box | Halo |
|---|---|---|---|
| Hero radar · desktop (1440 canvas) | 15 × 15 px | 34 × 34 px, 2 px stroke | 17 px, 2 px stroke, grows to 2.5× |
| Hero radar · tablet | Scales with the radar box (720-unit drawing; ≈ 0.8–1.1×) | ||
| Hero radar · phone ≤ 600 | Not shown: no radar on phones | ||
| Tagline · desktop | 11.5 px | 25 px, 2.1 px stroke (30 px box) | 12.3 px, grows to 2.5× |
| Tagline · mobile | 9.2 px | 20 px, 1.7 px stroke (24 px box) | 9.8 px, grows to 2.5× |
| Callout dot · desktop / tablet | 10 px / 9 px | none | 1.5 px ring, grows to 2.5× |
| Eyebrow dot · phone | 7 px | none | none |
/* Pulsing square marker: the core never switches off (opacity 1 -> .5 -> 1) */
.marker-core { fill: #FF2A1F; animation: fsm-breathe 2.2s ease-in-out infinite; }
.marker-box { fill: none; stroke: currentColor; stroke-width: 2; } /* --ink */
.marker-halo { fill: none; stroke: #FF2A1F; stroke-width: 2;
transform-box: fill-box; transform-origin: center;
animation: fsm-halo 2.2s cubic-bezier(.2,.6,.35,1) infinite; }
@keyframes fsm-breathe { 0%, 100% { opacity: 1 } 50% { opacity: .5 } }
@keyframes fsm-halo { 0% { transform: scale(1); opacity: .6 } 75%, 100% { transform: scale(2.5); opacity: 0 } }
@media (prefers-reduced-motion: reduce) {
.marker-core { animation: none; } .marker-halo { display: none; }
}
Website
Live and animated, not screenshots: each frame below loads hero/index.html. One revolution finds ten of sixty, they hold and pulse, a clean reset, a fresh ten each cycle. The headline rotates through nine audiences (2.6 s each). The icon-only light/dark button sits at the far right of the nav: try it. Phones drop the radar, hide the button and stay light.

?theme=dark, or the nav button

hero/index.html + hero.css + hero.js: production-ready, no dependencies, fonts in hero/fonts/.<html data-theme>; label and aria-label switch (moon in light, sun in dark); red focus ring on keyboard focus.?theme=dark · ?frame=found (freeze on the found state) · ?t=6.4.Interface
Light
Dark
| Element | Default | Hover | Focus (keyboard) |
|---|---|---|---|
| Primary button | Ink fill, ground-colour label · Geist 600 16 px · padding 15 × 26 px · square corners | Signal Red fill, white label | 2 px Signal Red outline, 3 px offset |
| Secondary button | Transparent, 1.5 px ink inset border, ink label | Ink fill, ground-colour label | 2 px Signal Red outline, 3 px offset |
| Nav link | Geist 500 15 px, ink | 60 % opacity | 2 px Signal Red outline |
| Nav “Let’s talk” | Primary button, 14 px, padding 10 × 18 px | Signal Red fill | 2 px Signal Red outline |
| Theme toggle | Icon only, 18 px glyph, 36 px round hit area, no box · rightmost in the nav · moon in light, sun in dark | Concrete / Scope Smoke circle behind the glyph | 2 px Signal Red outline |
| Token | Used for | Light | Dark |
|---|---|---|---|
--bg | Page ground | #FFFFFF | #0A0A0A |
--ink | Text, logo ink, outline boxes, radar rim | #0A0A0A | #FFFFFF |
--mid | Secondary text (eyebrow, subhead, “/60”) | #5C5C5C | #B9B7B1 |
--dot | The crowd (unfound people) | #B9B7B1 | #5C5C5C |
--faint | Rings, grid, nav rule | #E9E8E4 | #222222 |
--tick | Small dividers | #B9B7B1 | #5C5C5C |
--red | Signal: markers, rotating phrase, focus ring | #FF2A1F | #FF2A1F |
--btn / --btnink | Primary button fill / label | #0A0A0A / #FFFFFF | #FFFFFF / #0A0A0A |
--wo | Sweep wedge opacity | .10 | .17 |
--hover | Theme-toggle hover tint | #E9E8E4 | #222222 |
Social
One design, light and dark: the logo, the tagline on one line, the descriptor under it, and the radar cropped at the right edge with a few found squares and the “Audience found” callout. Personal profile banner 1584 × 396; company cover 1512 × 256 (LinkedIn’s current spec) and 1128 × 191; each as PNG at 1x and 2x, plus SVG sources. On the profile banner the text, the found squares and the callout sit inside the phone app’s centre crop and clear of the profile photo on desktop and phone.










Ryan’s page-logo design: the icon centred on White or Black. The mark fills 66 % of the tile (Ryan’s: 70 %) so the bracket corners stay inside LinkedIn’s circle crop.
Ryan’s original PNGs are kept, unchanged, in linkedin/ryan-originals/ for reference. Note: the file named “dark-company-cover” there is actually light (identical pixels to the white one); the true dark company cover is the one above.
Files
| Folder | Files |
|---|---|
logos/horizontal/ | 24 |
logos/stacked/ | 24 |
logos/descriptor/ | 24 |
logos/icon/ | 27 |
logos/wordmark/ | 24 |
logos/alternate-red-outline/ | 24 |
favicons/ | 13 |
linkedin/1584x396/ | 4 |
linkedin/1512x256/ | 4 |
linkedin/1128x191/ | 4 |
linkedin/avatar/ | 6 |
linkedin/svg/ | 4 |
linkedin/ryan-originals/ | 7 |
hero/ | 11 |
fonts/ | 5 |
Full contents, usage notes and the font licence: README.txt. A PDF of this page: brand-kit.pdf.