<!--
ROLE: You are a senior product designer + frontend engineer pair.
TASK: Treat the DESIGN.md below as the SINGLE SOURCE OF TRUTH for visual style.
Every component you produce in this codebase must:
  • Reuse the color tokens declared in YAML frontmatter (no ad-hoc hex values)
  • Use the typography scale (display / h1 / h2 / body / label / mono) verbatim
  • Match the radius scale (button / card / pill) to the named tier
  • Honor the elevation table for shadows
  • Respect the motion section (durations, easings, reduced-motion)
  • Pass the contrast pairs in the accessibility section
INPUT: Project files at ${CWD}.
OUTPUT: Code, not paragraphs. Quote the relevant section number when you cite a token (e.g. "per §3 Typography Rules").
PRINCIPLE: A token used once is a one-off; a token used three times is a system. Prefer system fidelity over local cleverness.
-->

---
name: Amplitude
tagline: 'Light-canvas digital-analytics surface — IBM Plex Sans, grey #565656 body, black full-pill CTAs and a signature #1e61f0 blue.'
updated_at: 2026-05-29T21:44:39.784Z
published_at: 2026-05-29T21:44:39.784Z
author: webdesignhot
source_url: https://amplitude.com
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [saas, dev-tools]
tags: [light, sans, structured, data, analytics]
preview_swatch: ['#ffffff', '#1e61f0', '#000000']
related: [datadog, vercel, linear]
description: 'Amplitude''s marketing surface is a bright white-canvas analytics product page built on **IBM Plex Sans** — the IBM-commissioned humanist-grotesque that reads as engineering-neutral rather than branded. Body copy runs at a soft grey `#565656` over `#ffffff`, headlines hit 60px at weight 700, and the primary CTA is a pure-black full-pill (`9999px`) "Get started". The signature is a confident `#1e61f0` blue — the checkbox / interactive accent — applied with restraint against an otherwise monochrome black-and-grey type system. Structured, data-forward, and chromatically disciplined: a digital-analytics platform dressed as a clean technical document.'


# Canonical 8-role aliases (bg / text / brand / border / accent / muted / surface / danger).
# Maps role names to this entry's actual token names so role-aware
# downstream tools resolve `theme.background` → entry's `bg`, etc.
# Auto-generated by scripts/add-aliases.mjs — do not edit manually;
# regenerate after changing color token names.
aliases:
  background: bg
  foreground: text
  primary: brand
  primary-foreground: on-brand
  muted: text-muted
  border: border
  ring: brand
colors:
  bg: '#ffffff'                   # body canvas, paper white
  bg-soft: '#f7f8f9'              # secondary section band, faint cool tint
  bg-cool: '#f2f4f7'             # alternation band, slightly cooler
  surface: '#ffffff'             # raised card panel — white card on tinted band
  surface-hover: '#f7f8f9'       # subtle row / card hover state
  bg-dark: '#1a1f23'             # dark CTA / dark section band (Solutions CTA)
  bg-deep: '#0c0e10'             # deeper dark band, footer floor
  text: '#565656'               # primary body copy — soft warm grey
  text-strong: '#000000'        # headline-grade black (--color-text-primary)
  text-muted: '#6e6e6e'         # secondary copy, slightly lighter than body
  text-soft: '#8a8a8a'          # captions, metadata
  text-faint: '#a8a8a8'         # disabled, very low priority
  text-on-dark: '#ffffff'       # text on dark CTA / dark section
  text-on-dark-muted: '#b4b8bc' # secondary text on dark
  brand: '#1e61f0'              # signature blue — interactive accent (--color-checkbox-checked)
  brand-hover: '#1850cf'        # pressed / hover state for blue surfaces
  brand-deep: '#1543ad'         # deepest variant, active state
  brand-soft: '#eaf0fe'         # tinted blue surface for callouts / selection
  brand-tint: 'rgba(30, 97, 240, 0.10)'  # ambient blue tint for focus rings
  link: '#1e61f0'              # links inherit brand blue
  link-hover: '#1850cf'
  cta-black: '#000000'         # the primary "Get started" pill fill
  cta-black-hover: '#1a1f23'   # hover darkens toward dark-section grey
  on-cta-black: '#ffffff'
  on-brand: '#ffffff'
  border: '#e3e6ea'            # cool-grey hairline, default card edge
  border-soft: '#eef0f3'       # softer divider
  border-strong: '#cfd4da'     # emphasised divider, input borders
  border-dark: 'rgba(255,255,255,0.12)'  # divider on dark surfaces
  success: '#1f9d57'           # green for positive metric / trend up
  warning: '#c77700'           # amber for threshold / caution
  danger: '#d33b3b'            # red for error / trend down
  info: '#1e61f0'             # informational — maps to brand blue

typography:
  display:
    family: 'IBM Plex Sans, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'
    weights: [500, 600, 700]
    opentype-features: ['kern', 'liga']
  body:
    family: 'IBM Plex Sans, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'
    weights: [400, 500, 600]
    opentype-features: ['kern', 'liga']
  mono:
    family: 'IBM Plex Mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace'
    weights: [400, 500]
    opentype-features: ['tnum', 'zero']
  scale:
    display-hero:    { size: 72, weight: 700, lineHeight: 1.0,  tracking: '-0.03em',  family: display, opentype: 'default' }
    display-lg:      { size: 60, weight: 700, lineHeight: 1.05, tracking: '-0.025em', family: display, opentype: 'default' }
    h1:              { size: 60, weight: 700, lineHeight: 1.05, tracking: '-0.022em', family: display, opentype: 'default' }
    h2:              { size: 44, weight: 600, lineHeight: 1.1,  tracking: '-0.018em', family: display, opentype: 'default' }
    h3:              { size: 32, weight: 600, lineHeight: 1.2,  tracking: '-0.012em', family: display, opentype: 'default' }
    h4:              { size: 24, weight: 600, lineHeight: 1.25, tracking: '-0.006em', family: display, opentype: 'default' }
    h5:              { size: 20, weight: 600, lineHeight: 1.3,  tracking: '0',        family: body,    opentype: 'default' }
    body-lg:         { size: 18, weight: 400, lineHeight: 1.55, tracking: '0',        family: body,    opentype: 'default' }
    body:            { size: 16, weight: 400, lineHeight: 1.55, tracking: '0',        family: body,    opentype: 'default' }
    body-medium:     { size: 16, weight: 500, lineHeight: 1.55, tracking: '0',        family: body,    opentype: 'default' }
    body-sm:         { size: 14, weight: 400, lineHeight: 1.5,  tracking: '0',        family: body,    opentype: 'default' }
    label:           { size: 13, weight: 500, lineHeight: 1.4,  tracking: '0.01em',   family: body,    opentype: 'default' }
    caption:         { size: 12, weight: 500, lineHeight: 1.4,  tracking: '0.02em',   family: body,    opentype: 'default' }
    eyebrow:         { size: 12, weight: 600, lineHeight: 1.3,  tracking: '0.08em',   family: body,    opentype: 'default', transform: uppercase }
    code-inline:     { size: 14, weight: 400, lineHeight: 1.5,  tracking: '0',        family: mono,    opentype: 'tnum' }
    code-block:      { size: 13, weight: 400, lineHeight: 1.6,  tracking: '0',        family: mono,    opentype: 'tnum' }
    chart-tick:      { size: 11, weight: 500, lineHeight: 1.2,  tracking: '0',        family: mono,    opentype: 'tnum' }
    metric-value:    { size: 40, weight: 700, lineHeight: 1.0,  tracking: '-0.02em',  family: display, opentype: 'tnum' }

radius:
  micro: 2
  sm: 4
  md: 6
  lg: 8
  xl: 12
  card: 8
  button: 6
  pill: 9999

spacing:
  base: 4
  scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96, 128]

layout:
  page-width: 1280
  prose-width: 720
  feature-width: 1080
  header-height: 64
  gutter: 24
  section: 96

components:
  button-primary:
    bg: '#000000'
    text: '#ffffff'
    padding: '12px 24px'
    radius: 9999
    font: 'IBM Plex Sans 15/600'
    hover: 'bg #1a1f23'
    use: 'Get started — black full-pill primary CTA'
  button-dark:
    bg: '#1a1f23'
    text: '#ffffff'
    padding: '12px 20px'
    radius: 6
    font: 'IBM Plex Sans 15/600'
    hover: 'bg #0c0e10'
    use: 'Amplitude Solutions → — dark 6px secondary, with arrow'
  button-secondary:
    bg: '#ffffff'
    text: '#171717'
    border: '1px solid #cfd4da'
    padding: '12px 24px'
    radius: 9999
    font: 'IBM Plex Sans 15/600'
    hover: 'bg #f7f8f9'
    use: 'Sign Up — white outlined full-pill, paired with primary'
  button-brand:
    bg: '#1e61f0'
    text: '#ffffff'
    padding: '12px 24px'
    radius: 9999
    font: 'IBM Plex Sans 15/600'
    hover: 'bg #1850cf'
    use: 'rare blue-fill CTA on dark sections / in-product accents'
  button-link:
    bg: 'transparent'
    text: '#1e61f0'
    underline: 'on-hover'
    use: 'inline link CTA, "Learn more →"'
  card-feature:
    bg: '#ffffff'
    border: '1px solid #e3e6ea'
    radius: 8
    padding: '24px'
    shadow: 'none'
    use: 'feature grid card — hairline only, no shadow'
  card-elevated:
    bg: '#ffffff'
    border: '1px solid #e3e6ea'
    radius: 8
    padding: '24px'
    shadow: 'rgba(15,23,42,0.05) 0 8px 24px -6px'
    use: 'pricing card, customer-quote card with subtle lift'
  card-metric:
    bg: '#ffffff'
    border: '1px solid #e3e6ea'
    radius: 8
    padding: '20px'
    use: 'KPI / stat card — large tnum metric value over grey label'
  badge-tag:
    bg: '#eaf0fe'
    text: '#1543ad'
    radius: 9999
    padding: '2px 10px'
    font: 'IBM Plex Sans 12/600'
  input-text:
    bg: '#ffffff'
    border: '1px solid #cfd4da'
    radius: 6
    padding: '10px 14px'
    height: 40
    focus: '2px solid #1e61f0 + ring rgba(30,97,240,0.20)'
  checkbox:
    bg: '#ffffff'
    border: '1px solid #cfd4da'
    radius: 4
    checked-bg: '#1e61f0'
    checked-mark: '#ffffff'
    use: 'the canonical blue accent surface (--color-checkbox-checked)'
  nav-top:
    bg: 'rgba(255,255,255,0.92)'
    text: '#171717'
    height: 64
    border-bottom: '1px solid #e3e6ea'
    backdrop: 'blur(12px)'

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.2, 0, 0, 1)'
  ease-decel: 'cubic-bezier(0.0, 0, 0.2, 1)'
  duration-fast: 150
  duration-standard: 240
  duration-slow: 320
  duration-chart: 400
  reduced-motion: 'respects prefers-reduced-motion: reduce — chart redraws snap to final state, hover lifts collapse to opacity-only'

breakpoints:
  mobile: 640
  tablet: 1024
  desktop: 1280
  wide: 1536

shadows:
  none: 'none'
  whisper: 'rgba(15,23,42,0.04) 0 1px 2px'
  ambient: 'rgba(15,23,42,0.05) 0 8px 24px -6px'
  standard: 'rgba(15,23,42,0.08) 0 16px 40px -12px'
  elevated: 'rgba(15,23,42,0.12) 0 28px 56px -16px'
  ring: '0 0 0 2px rgba(30,97,240,0.40)'

accessibility:
  contrast-text-on-bg: 7.0
  contrast-strong-on-bg: 21.0
  contrast-text-on-brand: 4.8
  contrast-on-cta-black: 21.0
  contrast-text-on-dark: 14.9
  focus-ring: '2px solid #1e61f0 + 2px outer rgba(30,97,240,0.20)'
  reduced-motion-honored: true

dark-mode: optional

lineage:
  summary: |
    Amplitude''s marketing surface is a bright white-canvas analytics page
    that reads as a clean technical document rather than a branded campaign.
    The type system is **IBM Plex Sans** — the IBM-commissioned humanist
    grotesque designed by Mike Abbink and Bold Monday — which carries a
    neutral, engineering-credible register: it reads as "made by people who
    care about systems" rather than "made by a marketing team." Headlines
    hit 60px at weight 700 in black `#000`, body copy runs at a soft warm
    grey `#565656`, and the whole page stays monochrome until the signature
    `#1e61f0` blue appears as the interactive accent — the checkbox-checked
    colour, the link colour, the focus ring. The primary CTA inverts the
    usual SaaS playbook: rather than fill the button with brand blue,
    Amplitude ships a pure-black full-pill (`9999px`) "Get started",
    reserving the blue for smaller interactive moments. This is the
    discipline of a data product — colour is signal, not decoration. The
    black pill borrows the confident monochrome CTA from Vercel and Linear;
    the white-canvas density and structured feature grids echo Datadog and
    the broader observability-marketing playbook; and the choice of Plex
    over a proprietary face signals "open, technical, neutral" the way
    Datadog''s custom NationalWeb signals "enterprise-bespoke". The result
    is a surface that feels measured and quantitative — every chromatic
    decision earns its place, and the one bold colour is spent on the one
    thing that matters: the action the user is meant to take.
  influences:
    - name: IBM Plex (Bold Monday)
      role: 'Foundation typeface — humanist grotesque commissioned by IBM, neutral engineering register across display and body'
      url: https://www.ibm.com/plex/
    - name: Vercel
      role: 'Monochrome black full-pill primary CTA, white-canvas restraint, single-accent discipline'
      url: https://vercel.com
    - name: Datadog
      role: 'Adjacent data-product marketing — white canvas, structured feature grids, charts-as-proof density'
      url: https://www.datadoghq.com
    - name: Linear
      role: 'Tight-tracking 60px+ display headlines, near-monochrome palette with a single saturated accent'
      url: https://linear.app
    - name: Mixpanel
      role: 'Direct product-analytics competitor — useful contrast for how blue accent and metric-card register are deployed'
      url: https://mixpanel.com
---

## 1. Visual Theme & Atmosphere

Amplitude's marketing surface is a bright, white-canvas analytics page that reads like a well-set technical document. The body floor is pure `#ffffff` — no warm cream, no cool tilt — and the running copy sits at a soft warm grey `#565656`, a deliberately quiet body colour that keeps black reserved for the headlines. Display type hits 60px at weight 700 in true black `#000`, set in **IBM Plex Sans**, the IBM-commissioned humanist grotesque that carries a neutral, engineering-credible register. Nothing on the page shouts; the atmosphere is measured, quantitative, and self-assured.

The signature gesture is chromatic restraint. The page is almost entirely monochrome — black headlines, grey body, white surfaces, cool-grey hairlines — until a single confident blue, `#1e61f0`, appears as the interactive accent. That blue is the checkbox-checked colour, the link colour, the focus ring; it is *signal*, not decoration. Where consumer SaaS sprays accent colour across gradients and illustrations, Amplitude spends its one bold hue only where the user is meant to act or where state must read at a glance. This is the discipline of a data product: colour carries information, so it is rationed.

The primary call-to-action inverts the conventional SaaS move. Rather than fill the hero button with brand blue, Amplitude ships a pure-black full-pill (`9999px` radius) "Get started", paired with a white outlined pill "Sign Up" and a dark `#1a1f23` 6px "Amplitude Solutions →". The black pill is the confident monochrome CTA borrowed from the Vercel / Linear school; the blue stays in the wings. The pill geometry is the one soft, friendly note in an otherwise rectilinear system — buttons are fully rounded while cards and inputs keep tight 6–8px corners.

The overall mood is "clean instrument panel." The white canvas and structured feature grids echo the observability-marketing playbook (Datadog, New Relic), but Amplitude is lighter and quieter — fewer simultaneous chart series, more whitespace, more breathing room between sections. IBM Plex doing every text role reinforces the neutral, systems-minded feel: this is a tool made by people who care about how things are measured, presented without theatrics.

**Key Characteristics:**
- Pure-white `#ffffff` canvas — no warm or cool tilt, intentionally neutral
- Soft warm-grey `#565656` body copy with true-black `#000` headlines — a deliberate two-tone text hierarchy
- IBM Plex Sans handles every text role — humanist grotesque, engineering-neutral register
- 60px hero headlines at weight 700 with `-0.022em` tracking — confident without aggression
- Signature `#1e61f0` blue as the *only* accent — checkbox, link, focus ring; colour as signal, not decoration
- Black full-pill (`9999px`) primary CTA — monochrome confidence, blue held in reserve
- Pill buttons against tight 6–8px cards/inputs — a single soft note in a rectilinear system
- Hairline borders over shadows — depth from tonal contrast, not drop shadows
- Tabular figures on every metric and chart axis — quantitative discipline
- Data-forward, structured layout — feature grids and metric cards over hero illustration

## 2. Color Palette & Roles

### Primary
- **Canvas** (`#ffffff`): Paper-white page floor — no warm or cool tilt, intentionally neutral.
- **Text** (`#565656`): Primary body copy — a soft warm grey that keeps black reserved for headlines (live `rgb(86,86,86)`).
- **Brand** (`#1e61f0`): The signature interactive blue — checkbox-checked, links, focus ring, accent (live `--color-checkbox-checked`).

### Brand & Accent
- **Signal Blue** (`#1e61f0`): The one accent colour. Applied with restraint — links, the checkbox-checked state, focus rings, and rare blue-fill CTAs on dark sections. Never a dominant surface.
- **Brand Hover** (`#1850cf`): Pressed / hover state for any blue surface.
- **Brand Deep** (`#1543ad`): Deepest variant — active state, badge text on `brand-soft`.
- **Brand Soft** (`#eaf0fe`): Tinted blue surface for callouts, selection backgrounds, and tag fills.
- **Brand Tint** (`rgba(30,97,240,0.10)`): Ambient blue for focus-ring halos.

### Interactive
- **Link** = `#1e61f0` signal blue, no underline by default; underline appears on hover only.
- **Link Hover** = `#1850cf` darker blue.
- **CTA Primary** = `#000000` black full-pill — hover darkens toward `#1a1f23`.
- **CTA Dark** = `#1a1f23` dark grey 6px — hover to `#0c0e10`.
- **Active / Pressed** = `#1543ad` deep blue on blue surfaces; `#0c0e10` on dark surfaces.
- **Disabled** = opacity 50% on filled buttons; `#a8a8a8` text-faint on `#f7f8f9` for disabled labels.
- **Selected** = `#eaf0fe` brand-soft background with `#1543ad` text.

### Neutral Scale
`#ffffff` (Canvas) → `#f7f8f9` (Bg Soft) → `#f2f4f7` (Bg Cool) → `#eef0f3` (Border Soft) → `#e3e6ea` (Border) → `#cfd4da` (Border Strong) → `#a8a8a8` (Text Faint) → `#8a8a8a` (Text Soft) → `#6e6e6e` (Text Muted) → `#565656` (Text) → `#1a1f23` (Bg Dark) → `#0c0e10` (Bg Deep) → `#000000` (Text Strong / CTA Black).

The neutral scale is near-neutral with a barely-perceptible cool tint on the lightest bands (`#f7f8f9`, `#f2f4f7`) and a warm tilt on the body grey (`#565656`). The combination of warm-grey body and pure-black headlines is the most distinctive neutral choice — it produces a softer, more readable body register than a single near-black would.

### Surface & Borders
- **Bg Soft** (`#f7f8f9`): Secondary section background — light alternation band.
- **Bg Cool** (`#f2f4f7`): Slightly cooler alternation band for variety.
- **Surface** (`#ffffff`): Raised card panel — white card lifting off a tinted band.
- **Surface Hover** (`#f7f8f9`): Subtle hover state for cards and list rows.
- **Border** (`#e3e6ea`): Default cool-grey hairline. Used on every card edge.
- **Border Soft** (`#eef0f3`): Softer divider — lighter than default.
- **Border Strong** (`#cfd4da`): Emphasised divider, input borders, table rules.
- **Border Dark** (`rgba(255,255,255,0.12)`): Divider on dark surfaces.

### Dark Surfaces
- **Bg Dark** (`#1a1f23`): Dark CTA fill and dark section band — the "Amplitude Solutions" button colour.
- **Bg Deep** (`#0c0e10`): Deeper dark band, footer floor, pressed dark state.

### Shadow Colors
Amplitude prefers hairline borders and tonal layering to drop shadows. When shadows do appear they are neutral cool-grey (`rgba(15,23,42,...)`), never brand-tinted.
- **Whisper** (`rgba(15,23,42,0.04) 0 1px 2px`): Faintest elevation — metric cards.
- **Ambient** (`rgba(15,23,42,0.05) 0 8px 24px -6px`): Soft drop on pricing / quote cards.
- **Standard** (`rgba(15,23,42,0.08) 0 16px 40px -12px`): Dropdown menus, popovers.
- **Elevated** (`rgba(15,23,42,0.12) 0 28px 56px -16px`): Modal-grade lift.

### Semantic
- **Success** (`#1f9d57`): Green for positive metric / trend-up indicators.
- **Warning** (`#c77700`): Amber for thresholds and caution states.
- **Danger** (`#d33b3b`): Red for errors and trend-down indicators.
- **Info** (`#1e61f0`): Informational — maps to the brand blue.

## 3. Typography Rules

### Font Family
- **Display & Body** — `IBM Plex Sans`, fallback `system-ui, -apple-system, "Segoe UI", Roboto, sans-serif`. The IBM-commissioned humanist grotesque (Mike Abbink / Bold Monday) handles every text role on the marketing surface — display, body, UI, label, caption. (The probe's `Twemoji Country Flags` h1 font is an emoji-flag fallback artifact, not the real display face — Amplitude renders headlines in Plex Sans.)
- **Mono** — `IBM Plex Mono`, fallback `ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace`. The matching Plex Mono carries code samples, chart-axis values, and tabular metric readouts.
- **OpenType** — `kern` and `liga` default-on for text roles; `tnum` (tabular numerals) and `zero` (slashed zero) enabled on every numerical surface — chart axes, metric values, percentages.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Letter Spacing | OT Features | Notes |
|------|------|-----:|-------:|------------:|---------------:|-------------|-------|
| display-hero    | IBM Plex Sans | 72 | 700 | 1.0  | -0.03em  | default    | Oversize campaign hero |
| display-lg      | IBM Plex Sans | 60 | 700 | 1.05 | -0.025em | default    | Secondary hero |
| h1             | IBM Plex Sans | 60 | 700 | 1.05 | -0.022em | default    | Homepage h1 — live 60px/700 |
| h2             | IBM Plex Sans | 44 | 600 | 1.1  | -0.018em | default    | Section heads — live 44px/600 |
| h3             | IBM Plex Sans | 32 | 600 | 1.2  | -0.012em | default    | Sub-section heads |
| h4             | IBM Plex Sans | 24 | 600 | 1.25 | -0.006em | default    | Feature / card title |
| h5             | IBM Plex Sans | 20 | 600 | 1.3  | 0        | default    | Inline emphasis head |
| body-lg        | IBM Plex Sans | 18 | 400 | 1.55 | 0        | default    | Hero subhead, large prose — live body 18px/400 |
| body           | IBM Plex Sans | 16 | 400 | 1.55 | 0        | default    | Default running text |
| body-medium    | IBM Plex Sans | 16 | 500 | 1.55 | 0        | default    | Inline emphasis |
| body-sm        | IBM Plex Sans | 14 | 400 | 1.5  | 0        | default    | Captions, table cells |
| label          | IBM Plex Sans | 13 | 500 | 1.4  | +0.01em  | default    | Form labels, table headers |
| caption        | IBM Plex Sans | 12 | 500 | 1.4  | +0.02em  | default    | Metadata, footnote |
| eyebrow        | IBM Plex Sans | 12 | 600 | 1.3  | +0.08em  | uppercase  | Section eyebrow above headline |
| code-inline    | IBM Plex Mono | 14 | 400 | 1.5  | 0        | tnum       | Inline code in prose |
| code-block     | IBM Plex Mono | 13 | 400 | 1.6  | 0        | tnum       | Code samples |
| chart-tick     | IBM Plex Mono | 11 | 500 | 1.2  | 0        | tnum       | Chart axis values |
| metric-value   | IBM Plex Sans | 40 | 700 | 1.0  | -0.02em  | tnum       | Large KPI number on stat cards |

### Principles

- **Single-typeface discipline** — IBM Plex Sans does every text role, with Plex Mono for code and figures. No editorial serif, no second display face. The unified Plex family reinforces the neutral, systems-minded register.
- **Two-tone text hierarchy** — Headlines in true black `#000`, body in soft grey `#565656`. The grey body is the distinctive choice: it keeps black reserved for emphasis and produces a calmer reading register than a single near-black.
- **Display weight 700, heads 600** — The 60px hero hits weight 700; section heads (44px) step down to 600. Confident without the display-bold theatrics of an 800/900 face.
- **Negative tracking scales with size** — `-0.03em` at the hero down to `0` at 16px. Tightening the display produces the engineered feel without crushing body legibility.
- **Body line-height 1.55** — Marketing-prose-friendly, calibrated for the homepage's long feature scrolls.
- **Tabular numerals everywhere numerical** — `tnum` is on for every metric card, chart axis, and percentage; slashed `zero` distinguishes from `O` in figures.
- **Plex Mono for code and figures** — The matching mono keeps the type voice unified rather than dropping to a generic system mono.
- **IBM Plex lineage** — Plex was commissioned by IBM (designed by Mike Abbink with Bold Monday) as an open, neutral corporate face. Its engineering-credible, non-proprietary register is exactly the signal a data-analytics brand wants.

## 4. Component Stylings

### Buttons

**`button-primary`** — The hero CTA. Background pure black `#000000`, white text, 12×24 padding, **full pill (`9999px`)**, IBM Plex Sans 15/600. Hover darkens to `#1a1f23`. Used on "Get started". The monochrome black pill is the brand's signature CTA — blue is deliberately *not* used here.

**`button-dark`** — Dark secondary. Background `#1a1f23`, white text, 12×20 padding, **6px radius** (note: not a pill), IBM Plex Sans 15/600, often with a trailing `→`. Hover to `#0c0e10`. Used on "Amplitude Solutions →".

**`button-secondary`** — White outlined pill. Background `#ffffff`, `#171717` text, 1px `#cfd4da` border, 12×24 padding, full pill, IBM Plex Sans 15/600. Hover background `#f7f8f9`. Used on "Sign Up", paired beside the black primary.

**`button-brand`** — Blue-fill pill. Background `#1e61f0`, white text, 12×24 padding, full pill, IBM Plex Sans 15/600. Hover to `#1850cf`. Used rarely — typically on dark sections where a black pill would disappear, or for in-product accents.

**`button-link`** — Inline link CTA. Text-only, `#1e61f0` brand blue, underline on hover. Used as "Learn more →" at the end of feature paragraphs.

### Cards

**`card-feature`** — White background, 1px `#e3e6ea` hairline, 8px radius, 24px padding, **no shadow**. Holds icon + title + body. The default card chrome; depth comes from the white card against a `#f7f8f9` band.

**`card-elevated`** — White background, 1px `#e3e6ea` hairline, 8px radius, 24px padding, soft `rgba(15,23,42,0.05) 0 8px 24px -6px` ambient shadow. Used on pricing tiers and customer-quote cards that benefit from a subtle lift.

**`card-metric`** — White background, 1px `#e3e6ea` hairline, 8px radius, 20px padding. Holds a large tabular `metric-value` (40/700, tnum) over a grey `body-sm` label. The quantitative proof card — "2.5x conversion lift", "40% faster insights".

### Badges & Tags

**`badge-tag`** — Background `#eaf0fe` (brand-soft), `#1543ad` text, full pill (9999px), 2×10 padding, IBM Plex Sans 12/600. Used for "New" / "Beta" / category tags.

**`badge-status-success`** — `rgba(31,157,87,0.12)` background, `#1f9d57` text, 4px radius. Positive / trend-up indicator.

**`badge-status-warning`** — `rgba(199,119,0,0.12)` background, `#c77700` text, 4px radius. Threshold / caution.

**`badge-status-danger`** — `rgba(211,59,59,0.12)` background, `#d33b3b` text, 4px radius. Error / trend-down.

### Inputs / Forms

**`input-text`** — White background, 1px `#cfd4da` border, 6px radius, 10×14 padding, 40px height. Focus → 2px `#1e61f0` border + 2px `rgba(30,97,240,0.20)` outer ring.

**`input-search`** — Same as input-text with a leading magnifying-glass icon, used on docs and integrations search.

**`checkbox`** — White 18px box, 1px `#cfd4da` border, 4px radius. **Checked state fills `#1e61f0`** with a white tick — this is the canonical brand-blue surface (`--color-checkbox-checked`), the single most literal use of the accent on the whole site.

**`select`** — White background, 1px `#cfd4da` border, 6px radius, downward chevron right. Opens to a list with row-hover `#f7f8f9`.

### Navigation

**`nav-top`** — 64px tall, `rgba(255,255,255,0.92)` with `backdrop-filter: blur(12px)`, 1px `#e3e6ea` bottom border. Amplitude wordmark left (in `#171717`, not blue), primary nav (Platform, Solutions, Resources, Pricing), right cluster (Sign Up white pill, "Get started" black pill primary).

**`nav-mega`** — Multi-column dropdown opens on hover for "Platform" and "Solutions". White surface, 8px radius, ambient shadow, multi-column grid of feature links with category eyebrows.

**`nav-side-docs`** — Left sidebar on docs pages. ~240px wide, `#fafafa` background, IBM Plex Sans 14/500 link list with indent for nested items; active item carries a `#1e61f0` left rule.

### Decorative

**`band-metric-callout`** — Numerical proof band. Background `#f7f8f9`, 96px vertical padding, 3-up grid of `metric-value` numbers in black `#000` with grey labels below — the quantitative density signal.

**`hero-band-dark`** — Rare full-bleed dark section (`#1a1f23`) used on campaign features. White text, blue-fill primary button, brand-blue accents on illustration.

## 5. Layout Principles

### Spacing System
- **Base unit**: 4px.
- **Tokens**: 0 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128.
- **Section padding (vertical)**: 96px on marketing — generous breathing room, looser than Datadog's 80px density. Amplitude is the calmer, airier cousin of the observability playbook.
- **Card internal padding**: 24px default; 32px on pricing cards; 20px on dense metric cards.

### Grid & Container
- **Max content width**: 1280px centred — the standard modern-SaaS measure.
- **Editorial body**: 12-column grid with 24px gutters.
- **Hero**: text-centred or 6/6 split (copy left, product mock or metric cards right) on desktop. Feature sections alternate text-left / text-right for rhythm.
- **Prose width**: 720px max for long-form docs and blog copy — calibrated for ~75-character measure in Plex Sans.

### Whitespace Philosophy
Generous but not indulgent. The 96px section rhythm and ample inter-card gutters give the page room to breathe, which is the deliberate contrast to denser observability marketing — Amplitude wants each metric and feature to land singly rather than as a wall of data. Whitespace is the second restraint mechanism alongside colour: both are rationed to keep signal high.

### Section Cadence
White → soft band (`#f7f8f9`) → white → metric-callout band → white → dark CTA section (`#1a1f23`) → light footer. Tonal alternation creates implicit elevation without borders or heavy shadows. The dark section appears once per page, anchoring the final conversion gesture.

## 6. Shapes & Radius Scale

- **Micro** (2px) — inline tag highlights, pre-pill chips
- **Sm** (4px) — checkboxes, dense status badges
- **Md** (6px) — default input radius, dark secondary button
- **Lg** (8px) — cards, metric cards, popovers
- **Xl** (12px) — large callouts, hero cards
- **Pill** (9999px) — primary / secondary CTAs, tag chips, avatar placeholders

The defining tension is **pills for buttons, tight corners for everything else**. The primary "Get started" and secondary "Sign Up" CTAs are full pills (`9999px`), while cards land at 8px and inputs at 6px. This creates a clear two-family hierarchy: buttons are soft and friendly (invite the tap), containers are crisp and rectilinear (hold the data). The one exception is the dark "Amplitude Solutions →" button at 6px — a deliberately squarer secondary that reads as more "utility" than the pill primaries.

Compound radii appear on metric cards where a coloured header strip meets the card body — `8px 8px 0 0` on the strip, square where it meets the canvas.

## 7. Depth & Elevation

| Level | Treatment | Use |
|-------|-----------|-----|
| 0 Flat | No shadow | Body text, hero copy, nav, metric callout numbers |
| 1 Hairline | 1px `#e3e6ea` | Default card chrome — every feature card, every metric card |
| 2 Whisper | `rgba(15,23,42,0.04) 0 1px 2px` | Stat cards, micro-elevation hints |
| 3 Ambient | `rgba(15,23,42,0.05) 0 8px 24px -6px` | Pricing card lift, quote card |
| 4 Standard | `rgba(15,23,42,0.08) 0 16px 40px -12px` | Dropdown menus, popovers |
| 5 Elevated | `rgba(15,23,42,0.12) 0 28px 56px -16px` | Modal dialogs, command palette |

**Shadow Philosophy**: Hairlines first, shadows second. The default card uses a 1px `#e3e6ea` border with no shadow — depth comes from the white card's contrast against the `#f7f8f9` band. Shadows appear only when a surface must lift off a same-coloured surface (white card on white, modal on white). All shadows are neutral cool-grey (`rgba(15,23,42,...)`), never brand-tinted. The blue is reserved for action and state; it is never used as atmospheric tint.

## 8. Interaction & Motion ✨

### Easing Curves
- **Standard** — `cubic-bezier(0.4, 0, 0.2, 1)` for hover transitions, button state changes, card hover lifts
- **Emphasized** — `cubic-bezier(0.2, 0, 0, 1)` for chart redraws, modal entries, mega-nav reveals
- **Decel** — `cubic-bezier(0.0, 0, 0.2, 1)` for scroll-triggered fades entering view

### Duration Buckets
- **Fast** (150ms) — colour shifts, hover state changes
- **Standard** (240ms) — card hover lift, button press, dropdown open
- **Slow** (320ms) — modal entry, mega-nav reveal
- **Chart** (400ms) — metric chart series redraw, axis-tick updates

### Per-Component Micro-States
- **Button-primary hover** — `bg #000` → `#1a1f23` over 150ms standard ease. No translate, no shadow change.
- **Button-brand hover** — `bg #1e61f0` → `#1850cf` over 150ms standard.
- **Button-secondary hover** — `bg #ffffff` → `#f7f8f9` over 150ms; border stays `#cfd4da`.
- **Card-elevated hover** — shadow intensifies from ambient to standard over 240ms; no translate.
- **Checkbox check** — box fills `#1e61f0` and the tick draws in over 150ms standard ease.
- **Link hover** — colour `#1e61f0` → `#1850cf` over 150ms; underline grows from 0 to 1px.
- **Mega-nav** — hover-open after ~100ms delay; fade + 8px upward slide at 240ms emphasized ease.

### Page Transitions
No page-transition animation — navigations are immediate. Within-page anchor jumps use smooth scroll at ~600ms standard ease. Feature-section reveals on scroll use a fade + 16px upward slide at 400ms decel ease, triggered when ~20% of the section enters the viewport.

### Reduced Motion
Honours `prefers-reduced-motion: reduce`. All transitions collapse to opacity-only. Chart redraws snap to final state instead of animating series. Scroll-triggered reveals become immediate (no fade, no slide). Hover lifts collapse to colour-only changes.

## 9. Accessibility & A11y ✨

### Contrast Pairs
Computed against the live tokens (`bg #ffffff`, `text #565656`, `text-strong #000000`, `brand #1e61f0`):
- **Headline on bg** (`#000000` on `#ffffff`) = **21.0:1** (AAA at all sizes)
- **Body on bg** (`#565656` on `#ffffff`) = **7.0:1** (AAA at body sizes)
- **Text-muted on bg** (`#6e6e6e` on `#ffffff`) = **5.2:1** (AA at body sizes)
- **Brand on bg** (`#1e61f0` on `#ffffff`) = **4.8:1** (AA at body sizes, AAA at large) — links pass at 16px
- **White on brand** (`#ffffff` on `#1e61f0`) = **4.4:1** (AA at large / UI; pair with 15px+/600 button text)
- **White on CTA-black** (`#ffffff` on `#000000`) = **21.0:1** (AAA) — the primary pill is maximum contrast
- **White on bg-dark** (`#ffffff` on `#1a1f23`) = **14.9:1** (AAA)
- **Badge text on brand-soft** (`#1543ad` on `#eaf0fe`) = **6.6:1** (AAA)

Note the brand blue on white is `4.8:1` — comfortably AA for links and large/UI text, but blue body copy below 14px should be avoided; use `#1543ad` (brand-deep, ~7.4:1) where small blue text is unavoidable.

### Focus Indicators
2px solid `#1e61f0` brand-blue ring + 2px outer `rgba(30,97,240,0.20)` halo on every interactive element. Inputs swap their border colour to `#1e61f0` on focus rather than using a separate ring. Skip-to-content link visible on first Tab, anchored top-left of viewport.

### ARIA Patterns
- **Mega-nav** — `role="menu"` with `aria-haspopup` on top-level triggers, arrow-key nav within submenus
- **Search combobox** — `role="combobox"` with `aria-expanded`, `aria-controls`, `aria-activedescendant`
- **Modal dialog** — `role="dialog"` + `aria-modal="true"` + focus trap + `Escape` to close
- **Chart / metric cards** — `role="img"` with descriptive `aria-label` summarising the value; data table fallback in `<details>`
- **Tab patterns** — `role="tablist"` with arrow-key navigation, `aria-selected` on active tab
- **Checkbox** — native `<input type="checkbox">` or `role="checkbox"` with `aria-checked` reflecting the blue-fill state

### Keyboard Navigation
Standard tab order top-down, left-to-right. Arrow keys navigate within tab groups, mega-nav columns, and combobox options. `Escape` closes any open overlay. `Enter` / `Space` activate buttons and toggle checkboxes. Skip-to-content jumps past nav.

### Screen Reader Hints
- Metric / chart cards include a hidden `<table>` with the same numbers — readers get values, not just visuals.
- The wordmark glyph uses `aria-hidden="true"`; the wordmark text carries the label.
- Status badges include `aria-label` describing the state even when colour-coded.

### Reduced Motion
Honoured globally — see §8 for behaviour.

## 10. Responsive Behavior

| Breakpoint | Width | Key Changes |
|------------|------:|-------------|
| Mobile     | < 640  | Top nav → hamburger; display-hero 60 → 34px; product mock / metric cards stack below copy; feature grid → 1-col; CTA pair stacks vertically |
| Tablet     | 640–1024 | Top nav condenses, secondary nav behind "More"; metric cards 2-up; feature grid → 2-col |
| Desktop    | 1024–1280 | Hero 6/6 split; feature grids 3-up; metric callout 3-up |
| Wide       | 1280–1536 | Full layout; feature grids 3–4-up; mockups full-fidelity |

### Touch Targets
Primary CTA pills 44 × 44px minimum. Metric-card tap regions span the full card. Compliance footnote text (12px) is non-interactive and never used as a tap target.

### Collapsing Strategy
- **Top nav** → hamburger sheet at mobile; mega-nav columns flatten to accordion
- **Hero** → copy + mock stack vertically; metric cards reflow to a single column
- **Feature grid** → 3-up → 2-up → 1-up
- **Metric callout** → 3-up → 1-col, values stay tabular
- **Pricing tiers** → 3-up → 1-col (recommended tier first)
- **Footer** → multi-col link grid → 2-col → accordion sections

### Image Behavior
Product mocks ship as responsive PNG with WebP fallback at 1x and 2x. Logos are SVG with explicit `aria-label`. Hero illustrations are SVG with `max-width` constraints — no `width: 100%` without a cap, to prevent over-scaling on ultra-wide.

### Container Queries
Used on metric cards — the large `metric-value` steps down a tier when the card's container falls below ~240px so the tabular figure never clips. Feature cards adjust internal padding from 24px (wide) to 16px (narrow) via container query.

## 11. Content & Voice ✨

### Tone
Amplitude's voice is **quantitative and credible** — it speaks in measurable outcomes ("understand what drives growth", "turn product data into decisions") rather than hype. The register is technically literate but plain-spoken: it avoids both crypto-finance bombast and legacy-enterprise jargon. Claims are anchored to numbers; the brand speaks as an instrument, not a personality.

### Microcopy Patterns
- **Button verbs** — "Get started", "Sign Up", "Get a demo", "View pricing". Action-oriented imperatives.
- **Section eyebrows** — uppercase 12/600 +0.08em — "PRODUCT ANALYTICS", "EXPERIMENTATION", "CDP". The eyebrow names the category before the headline names the value.
- **Error messages** — direct, no apology theatrics. "We couldn't load that report. Retry or [contact support]." with a retry CTA.
- **Empty states** — instructional. "No events tracked yet. [Install the SDK]" with the action linked inline.
- **Success confirmations** — minimal. "Saved." with a checkmark — no celebration toast.

### CTA Verb Conventions
- **Primary action** — "Get started" (the black pill, top and bottom of page)
- **Secondary** — "Sign Up", "Get a demo", "Learn more →"
- **Tertiary** — "Read the docs", "View on GitHub", "See pricing"
- Amplitude prefers "Get started" over "Sign up" on the primary — it signals self-service before the form appears.

### Empty States
"No data yet" patterns explain why and what to do next: "No events have streamed from your app yet. Install the Amplitude SDK — [quickstart guide]." Empty states never apologise; they instruct toward the next quantitative step.

## 12. Dark Mode & Theming ✨

Amplitude's marketing surface is **light-default** with rare full-bleed dark section punctuation (`#1a1f23`). The in-product analytics app supports a full dark theme (out of scope for this marketing-surface document).

For dark section punctuation, the token swap is minimal:
- `bg` → `#1a1f23`
- `text` → `#ffffff`
- `text-muted` → `#b4b8bc`
- `border` → `rgba(255,255,255,0.12)`
- Brand blue `#1e61f0` stays unchanged — it reads cleanly on both white and dark backgrounds
- On dark sections the primary CTA switches from black-pill to **blue-fill pill** (`button-brand`), since a black pill would vanish against `#1a1f23`
- Cards on dark sections use a `#0c0e10` background with `rgba(255,255,255,0.12)` border

Amplitude's marketing site does not implement a user-toggleable dark theme — the dark sections are content-driven, not preference-driven.

## 13. Lineage & Influences

Amplitude's marketing surface is a bright white-canvas analytics page that reads as a clean technical document rather than a branded campaign. The type system is **IBM Plex Sans** — the IBM-commissioned humanist grotesque designed by Mike Abbink with Bold Monday — which carries a neutral, engineering-credible register: it reads as "made by people who care about systems" rather than "made by a marketing team." Headlines hit 60px at weight 700 in black `#000`, body copy runs at a soft warm grey `#565656`, and the whole page stays monochrome until the signature `#1e61f0` blue appears as the interactive accent — the checkbox-checked colour, the link colour, the focus ring. Colour is signal, not decoration.

What it borrows: the monochrome black full-pill primary CTA and single-accent restraint from Vercel and Linear; the white-canvas density and structured feature grids from the observability-marketing playbook (Datadog, New Relic); and the choice of a neutral, open typeface (Plex rather than a proprietary face) to signal "technical, open, systems-minded" — the inverse of Datadog's bespoke NationalWeb but the same underlying goal of typographic credibility. What it rejects: gradient hero treatments, glass-morphism and neumorphism, accent-colour-as-surface (blue is action and state, never atmosphere), warm-cream canvases, and the data-overload density of a Bloomberg-terminal — Amplitude keeps fewer simultaneous chart series and more whitespace so each metric lands singly.

**Influences:**
- **IBM Plex (Bold Monday)** — Foundation typeface; humanist grotesque commissioned by IBM for a neutral engineering register. https://www.ibm.com/plex/
- **Vercel** — Monochrome black full-pill primary CTA, white-canvas restraint, single-accent discipline. https://vercel.com
- **Datadog** — Adjacent data-product marketing; white canvas, structured feature grids, charts-as-proof. https://www.datadoghq.com
- **Linear** — Tight-tracking 60px+ display headlines, near-monochrome palette with one saturated accent. https://linear.app
- **Mixpanel** — Direct product-analytics competitor; contrast for how blue accent and metric cards are deployed. https://mixpanel.com

## 14. Do's and Don'ts

### Do
- Keep `#1e61f0` blue as the *only* accent — links, checkbox-checked, focus ring; spend it where the user acts or where state must read
- Ship the primary CTA as a **black** full-pill (`#000` / `9999px`) — the monochrome confidence is the signature
- Set body copy at the soft grey `#565656` and reserve true black `#000` for headlines
- Use IBM Plex Sans for every text role, Plex Mono for code and figures
- Hold the two-family radius hierarchy: pills for buttons, 6–8px for cards / inputs
- Anchor sections at 96px vertical padding — airier than Datadog, room for each metric to land
- Use `tnum` and `zero` OpenType features on every metric, axis, and percentage
- Layer white cards on `#f7f8f9` bands for implicit elevation — hairline border, no shadow by default
- Keep shadows neutral cool-grey — never blue-tinted
- Switch the primary CTA to the blue-fill pill only on dark sections, where black would vanish

### Don't
- Don't fill the primary CTA with brand blue on light sections — black is the standard primary
- Don't use blue as a background or atmospheric tint — it is action and state, never surface
- Don't set body copy in pure black — the `#565656` grey body is the calmer, intended register
- Don't introduce a second display typeface or an editorial serif — Plex does every role
- Don't warm the white canvas with a cream tilt — the canvas is neutral `#ffffff`
- Don't add gradient hero treatments, glass-morphism, or neumorphism — the system stays flat
- Don't square off the CTA buttons — the full pill is the friendly note in a rectilinear system
- Don't run blue body text below 14px on white (4.8:1) — use `#1543ad` brand-deep for small blue text
- Don't crowd the page with simultaneous chart series — fewer series, more whitespace is the Amplitude register
- Don't drop to a generic system mono — Plex Mono keeps the type voice unified

## 15. Agent Prompt Guide

### Quick Color Reference
- Brand (accent blue): `#1e61f0`
- Brand hover: `#1850cf`
- Brand deep (small blue text): `#1543ad`
- Headline / strong text: `#000000`
- Body text (grey): `#565656`
- Body bg (canvas): `#ffffff`
- Section band: `#f7f8f9`
- CTA black (primary pill): `#000000`
- Dark section / dark button: `#1a1f23`
- Border (hairline): `#e3e6ea`

### Example Component Prompts

- "Create an Amplitude hero band: white `#ffffff` background, 60px IBM Plex Sans weight 700 headline with `-0.022em` tracking in black `#000`, body-large 18/400 sub in grey `#565656`, primary CTA a **black full-pill** (`#000`, `9999px`, 12×24, white 15/600) reading `Get started`, secondary white outlined pill (`1px #cfd4da` border, `#171717` text) reading `Sign Up`."
- "Design a metric card: white bg, 1px `#e3e6ea` border, 8px radius, 20px padding. Large tabular metric value (40px IBM Plex Sans weight 700, `tnum`) in black `#000` reading `2.5x`, grey `#565656` 14px label below reading `conversion lift`. No shadow — hairline only."
- "Build a feature grid band: `#f7f8f9` bg, 96px vertical padding, 3-column grid of white feature cards (1px `#e3e6ea`, 8px radius, 24px padding). Each card: blue `#1e61f0` icon, h4 24/600 black title, body 16/400 grey copy, `Learn more →` link in `#1e61f0`."
- "Compose a checkbox + form row: white `input-text` (1px `#cfd4da`, 6px radius, 40px tall), and an 18px checkbox that fills `#1e61f0` with a white tick when checked. Focus state: 2px `#1e61f0` border + 2px `rgba(30,97,240,0.20)` ring."
- "Render a dark CTA section: full-bleed `#1a1f23` bg, 96px section padding, 44px IBM Plex Sans weight 600 white headline, body-large `#b4b8bc` sub, primary CTA a **blue-fill pill** (`#1e61f0`, `9999px`) reading `Get started` (black would vanish here)."
- "Draw a pricing tier card: white bg, 1px `#e3e6ea` border, 8px radius, 32px padding, ambient `rgba(15,23,42,0.05) 0 8px 24px -6px` shadow. Tier name in eyebrow `+0.08em` uppercase grey, price in 40px Plex Sans 700 `tnum` black, feature checklist in 16/400 grey with `#1f9d57` checkmarks, CTA black full-pill."

### Iteration Guide

1. Start with the white `#ffffff` canvas and IBM Plex Sans at 60/700/`-0.022em` in black — that's the brand register.
2. Set body copy to grey `#565656`, not black. The two-tone text hierarchy (black heads, grey body) is the calm, readable signature.
3. Make the primary CTA a **black** full-pill. If your design has a blue primary on a light section, recolour it black and demote the blue to links / focus / checkbox.
4. Spend `#1e61f0` blue only on interaction and state — links, focus ring, checkbox-checked, blue-fill CTAs on dark sections. Never as a background.
5. Hold the radius split: pills (`9999px`) for buttons, 6–8px for cards and inputs. If everything is rounded the same amount, you've lost the two-family hierarchy.
6. Cards default to 8px radius with a `#e3e6ea` hairline and no shadow. Reach for shadow only on lifted surfaces (pricing, modal).
7. Section padding 96px vertical — airier than Datadog's 80. If it feels cramped, you're drifting toward observability-density territory.
8. Put `tnum` and `zero` on every metric, axis, and percentage — quantitative discipline is the whole point of an analytics brand.
