<!--
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: Pika
tagline: A cream-canvas AI video studio in custom Telka type, with peach and black pill CTAs.
updated_at: 2026-05-28T23:10:59.523Z
published_at: 2026-05-28T23:10:59.523Z
author: webdesignhot
source_url: https://pika.art
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [ai, media]
tags: [light, bold, sans, ai, video, warm, playful]
preview_swatch: ['#fcfaf7', '#ffd184', '#000000']
related: [krea]
description: 'Pika''s site is a warm-light AI video studio. The canvas is a cream off-white `#fcfaf7` — not clinical white, a hair of warmth that softens the generative-AI register into something playful — and the type is **Telka**, a custom geometric grotesque, with the wide **Telka Extended** cut carrying the display: the h1 lands at 48px / weight **900**, set near-black `#0d0d0d`. The defining structural move is the two-CTA grammar: a soft peach `#ffd184` button (dark text) for the inviting primary action, and a hard black `#000000` button (white text) for the do-it-now generate action, both at a generous 18px radius. Where Krea commits to absolute black and Swiss restraint, Pika does the opposite — a warm cream room, a fat-weight display face, and rounded peach-and-black pills that read playful rather than austere. The body runs Telka at a light 300 weight, so the page reads relaxed and approachable while the 900-weight headlines carry all the punch.'


# 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

themes:
  default: light
  available: [light]
  switch-via: 'Light-only. The cream canvas is the brand surface across the entire marketing site and web studio; no dark variant is offered. The black CTA supplies the only true dark field on the page.'

colors:
  bg: '#fcfaf7'                  # cream off-white canvas — rgb(252, 250, 247)
  bg-alt: '#f5f1ea'             # one step warmer/darker for inset bands
  surface: '#ffffff'            # pure-white raised card on cream ground
  surface-soft: '#fbf7f0'       # softest panel fill, barely off the canvas
  text: '#0d0d0d'               # near-black display ink — rgb(13, 13, 13)
  text-strong: '#000000'        # absolute black for max-emphasis headings + CTA fill
  text-muted: '#5c5c5c'         # muted grey for captions, secondary copy
  text-soft: '#8a8a8a'          # quietest labels, placeholder, meta
  text-faint: '#b8b8b8'         # disabled text, hairline dividers as text
  brand: '#ffd184'              # peach — primary CTA fill, rgb(255, 209, 132)
  brand-deep: '#f5be63'         # pressed/active peach
  brand-soft: 'rgba(255, 209, 132, 0.30)'  # peach wash for highlight pills
  on-brand: '#222222'           # dark ink on peach — rgb(34, 34, 34)
  ink-cta-bg: '#000000'         # black generate-button fill
  ink-cta-text: '#ffffff'       # white text on black/dark CTA
  dark-cta-bg: '#222222'        # near-black "Try on Web" fill — rgb(34, 34, 34)
  link: '#0d0d0d'               # links use the near-black ink
  link-hover: '#000000'         # deepen to absolute black on hover
  selected-bg: 'rgba(255, 209, 132, 0.30)'  # peach-wash selection
  disabled: '#b8b8b8'
  border: 'rgba(13, 13, 13, 0.10)'       # 10% near-black hairline on cream
  border-strong: 'rgba(13, 13, 13, 0.18)' # emphasized rule on inputs
  border-subtle: 'rgba(13, 13, 13, 0.05)' # quietest division
  success-bg: 'rgba(34, 197, 94, 0.12)'
  success-text: '#15803d'
  warning-bg: 'rgba(245, 190, 99, 0.20)'
  warning-text: '#92600c'
  danger-bg: 'rgba(220, 38, 38, 0.10)'
  danger-text: '#b91c1c'
  info-bg: 'rgba(13, 13, 13, 0.06)'
  info-text: '#0d0d0d'

typography:
  display:
    family: 'telkaExtended, telka, system-ui, -apple-system, sans-serif'
    weights: [500, 600, 700, 900]
    opentype-features: ['kern', 'liga']
  body:
    family: 'telka, system-ui, -apple-system, sans-serif'
    weights: [300, 400, 500, 600]
    opentype-features: ['kern']
  mono:
    family: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace'
    weights: [400, 500]
    opentype-features: ['tnum']
  scale:
    display-hero:    { size: 80, weight: 900, lineHeight: 1.0,  tracking: '-0.03em',  family: display, opentype: 'kern liga' }
    display-lg:      { size: 56, weight: 900, lineHeight: 1.05, tracking: '-0.02em',  family: display, opentype: 'kern liga' }
    h1:              { size: 48, weight: 900, lineHeight: 1.05, tracking: '-0.02em',  family: display }
    h2:              { size: 32, weight: 700, lineHeight: 1.15, tracking: '-0.012em', family: display }
    h3:              { size: 24, weight: 600, lineHeight: 1.25, tracking: '-0.005em', family: display }
    h4:              { size: 20, weight: 600, lineHeight: 1.3,  tracking: '0',        family: display }
    h5:              { size: 16, weight: 600, lineHeight: 1.4,  tracking: '0',        family: body }
    eyebrow:         { size: 12, weight: 600, lineHeight: 1.4,  tracking: '0.06em',   family: body, transform: uppercase }
    body-lg:         { size: 18, weight: 300, lineHeight: 1.55, tracking: '0',        family: body }
    body:            { size: 16, weight: 300, lineHeight: 1.55, tracking: '0',        family: body }
    body-sm:         { size: 14, weight: 300, lineHeight: 1.5,  tracking: '0',        family: body }
    label:           { size: 13, weight: 500, lineHeight: 1.4,  tracking: '0',        family: body }
    caption:         { size: 12, weight: 500, lineHeight: 1.4,  tracking: '0.02em',   family: body }
    code:            { size: 13, weight: 400, lineHeight: 1.55, tracking: '0',        family: mono, opentype: 'tnum' }

radius:
  micro: 2
  sm: 4
  md: 8
  lg: 12
  xl: 16
  cta: 18
  pill: 9999

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

layout:
  page-width: 1280
  prose-width: 720
  site-gutter: 'clamp(20px, 5vw, 64px)'
  header-height: 64
  grid-columns: 12
  section-rhythm: '64-128px'

components:
  button-primary:
    background: '#ffd184'
    text: '#222222'
    padding: '10px 18px'
    radius: 18
    border: 'none'
    font: 'Telka 500 / 15px'
    hover-bg: '#f5be63'
    use: 'Primary invitation CTA — peach pill, dark text (Sign Up, Get started).'
  button-generate:
    background: '#000000'
    text: '#ffffff'
    padding: '10px 18px'
    radius: 18
    border: 'none'
    font: 'Telka 500 / 15px'
    hover-bg: '#1a1a1a'
    use: 'Do-it-now action CTA — black pill, white text (Generate).'
  button-dark:
    background: '#222222'
    text: '#ffffff'
    padding: '10px 18px'
    radius: 18
    border: 'none'
    font: 'Telka 500 / 15px'
    hover-bg: '#000000'
    use: 'Secondary dark CTA — near-black pill (Try on Web).'
  button-ghost:
    background: 'transparent'
    text: '#0d0d0d'
    padding: '10px 18px'
    radius: 18
    border: '1px solid rgba(13, 13, 13, 0.18)'
    font: 'Telka 500 / 15px'
    hover-bg: 'rgba(13, 13, 13, 0.04)'
    use: 'Quiet outline twin — nav and tertiary actions on cream.'
  card:
    background: '#ffffff'
    border: '1px solid rgba(13, 13, 13, 0.10)'
    radius: 16
    padding: '24px'
    use: 'Content card — pure-white fill lifting off the cream ground.'
  card-video-tile:
    background: '#f5f1ea'
    border: 'none'
    radius: 16
    padding: '0'
    aspect-ratio: '16 / 9'
    use: 'Generated-clip tile — rounded 16px frame, video bleeds to edge.'
  input:
    background: '#ffffff'
    border: '1px solid rgba(13, 13, 13, 0.18)'
    radius: 8
    padding: '10px 14px'
    font: 'Telka 300 / 15px'
    placeholder-color: '#8a8a8a'
    focus-ring: '0 0 0 3px rgba(255, 209, 132, 0.50)'
    use: 'Form fields, search.'
  prompt-input:
    background: '#ffffff'
    border: '1px solid rgba(13, 13, 13, 0.10)'
    radius: 18
    padding: '14px 16px 14px 20px'
    font: 'Telka 300 / 16px'
    inner-button: '40px black circle, white arrow'
    use: 'Studio prompt — wide rounded box with a black send button.'
  badge-tag:
    background: 'rgba(255, 209, 132, 0.30)'
    text: '#222222'
    padding: '4px 12px'
    radius: 9999
    font: 'Telka 500 / 12px'
    use: 'Style / category chip — peach-wash pill.'
  nav-link:
    background: 'transparent'
    text: '#0d0d0d'
    padding: '8px 12px'
    font: 'Telka 500 / 15px'
    hover-text: '#5c5c5c'

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.2, 0, 0, 1)'
  ease-bounce: 'cubic-bezier(0.34, 1.56, 0.64, 1)'
  duration-fast: 150
  duration-standard: 240
  duration-slow: 320
  reduced-motion: 'respects prefers-reduced-motion: reduce — looping demo clips pause to a poster frame, transforms collapse to opacity.'

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

shadows:
  none: 'none'
  ambient: 'rgba(13, 13, 13, 0.05) 0 1px 2px'
  standard: 'rgba(13, 13, 13, 0.08) 0 4px 16px'
  elevated: 'rgba(13, 13, 13, 0.12) 0 16px 40px -8px'
  modal: 'rgba(13, 13, 13, 0.20) 0 24px 64px -12px'
  ring: '0 0 0 3px rgba(255, 209, 132, 0.50)'

accessibility:
  contrast-text-on-bg: 18.9         # #0d0d0d on #fcfaf7 — AAA at all sizes
  contrast-text-muted-on-bg: 7.0    # #5c5c5c on #fcfaf7 — AAA at body sizes
  contrast-text-soft-on-bg: 3.9     # #8a8a8a on #fcfaf7 — AA large / placeholder only
  contrast-on-brand-on-brand: 8.9   # #222222 on #ffd184 peach — AAA at body sizes
  contrast-white-on-black-cta: 21.0 # #ffffff on #000000 generate CTA — AAA
  contrast-white-on-dark-cta: 15.9  # #ffffff on #222222 — AAA at all sizes
  focus-ring: '3px peach glow rgba(255, 209, 132, 0.50) with 2px offset; falls back to 2px solid #0d0d0d outline where peach lacks contrast on white.'
  reduced-motion-honored: true
  keyboard-nav: 'tab order: skip-link → masthead → primary CTA → hero prompt → footer; Esc dismisses modals.'
  prose-line-length: 'capped at 720px on text pages; studio + gallery bleed wider.'

dark-mode: none                    # Pika is light-only; the cream canvas is the brand surface.
colors-dark: none                  # no dark variant offered.
---

## 1. Visual Theme & Atmosphere

Pika opens as a warm, sunlit room. The canvas is a cream off-white `#fcfaf7` — not the clinical `#ffffff` of an enterprise dashboard, not the absolute `#000` of a gallery-AI tool, but a soft paper white with a faint warm cast that reads "approachable" before a single word is processed. Against that cream ground the headline sits in near-black `#0d0d0d`, set in **Telka Extended** — a wide, custom geometric grotesque — at 48px / weight **900**. The fat display weight is the brand's loudest move: where Krea refuses to bold and trusts Swiss restraint, Pika does the opposite, leaning into a chunky, confident, almost editorial-poster headline that gives the playful-AI register its punch.

The defining structural decision is the **two-CTA grammar**. Pika ships two differently-coded primary actions side by side: a soft peach `#ffd184` pill with dark text for the *inviting* action ("Sign Up", "Get started"), and a hard black `#000000` pill with white text for the *do-it-now* action ("Generate"). A third near-black `#222222` pill carries supporting actions ("Try on Web"). All three share the same generous **18px radius** — rounder than the 8px most SaaS uses, soft enough to feel friendly, tight enough to stay crisp. The peach-vs-black pairing is instantly recognisable from a thumbnail: warm invitation next to decisive black.

The body copy runs Telka at a light **300 weight**, which is the counterweight to the 900 display. The contrast between feather-light body and ultra-bold headline is the page's core typographic tension — relaxed and unhurried in the running text, emphatic and poster-like in the titles. There are no gradients fighting the cream, no neon, no dark-mode drama. The warmth comes from the canvas tint and the peach accent; the energy comes from the weight contrast and the rounded pills.

The atmospheric vocabulary: **cream-canvas, warm-light, Telka-Extended-900, feather-300-body, peach-and-black, rounded-18px-pills, playful-confident, two-CTA-grammar, poster-headline, sunlit-studio.** Section rhythm runs 64–128px between blocks — slightly tighter than a gallery hang, breezy rather than austere. Cards lift off the cream with pure-white fills and soft low-opacity shadows; the depth is gentle, never heavy. The whole effect is an AI video tool that feels like a creative toy box rather than a control panel.

**Key Characteristics**
- Cream off-white canvas `#fcfaf7` — warm paper, not clinical white
- Telka Extended display at 48px / weight **900** — chunky poster headlines
- Telka body at light **300** weight — feather-light running text, big weight contrast
- Two-CTA grammar — peach `#ffd184` invitation + black `#000` do-it-now
- 18px CTA radius — rounded, friendly pills (rounder than 8px SaaS default)
- Near-black ink `#0d0d0d` as primary text, absolute `#000` for max emphasis
- Peach accent `#ffd184` is the only warm chroma in an otherwise neutral page
- Pure-white cards lift off the cream with soft, low-opacity shadows
- Light-only — no dark variant; the cream is the brand surface
- Playful-warm register — creative toy box, not enterprise control panel

## 2. Color Palette & Roles

### Primary

- **bg** `#fcfaf7` — cream off-white gallery canvas; the warm paper ground (rgb 252, 250, 247).
- **text** `#0d0d0d` — near-black display + body ink; the primary value contrast on cream (rgb 13, 13, 13).
- **text-strong** `#000000` — absolute black for max-emphasis headings and the generate CTA fill.
- **bg-alt** `#f5f1ea` — one warm step down for inset bands and clip-tile placeholders.

### Brand & Accent

- **brand** `#ffd184` — peach; the primary invitation CTA fill and the only warm chroma on the page (rgb 255, 209, 132).
- **brand-deep** `#f5be63` — pressed / active peach for the hover state.
- **brand-soft** `rgba(255, 209, 132, 0.30)` — peach wash for highlight pills, selection, and the focus glow.
- **on-brand** `#222222` — dark ink that sits on the peach button (rgb 34, 34, 34).

### Interactive (the CTA family)

- **ink-cta-bg** `#000000` — black "Generate" pill; the decisive do-it-now action.
- **ink-cta-text** `#ffffff` — white text on the black / dark pills.
- **dark-cta-bg** `#222222` — near-black "Try on Web" pill; supporting dark action (rgb 34, 34, 34).
- **link** `#0d0d0d` — links use the near-black ink, underlined for affordance.
- **link-hover** `#000000` — deepens to absolute black on hover.
- **selected-bg** `rgba(255, 209, 132, 0.30)` — peach-wash selection / active chip.
- **disabled** `#b8b8b8` — neutral disabled chrome.

### Neutral Scale

- **text** `#0d0d0d` — near-black ink (rgb 13, 13, 13).
- **text-muted** `#5c5c5c` — muted grey for captions and secondary copy.
- **text-soft** `#8a8a8a` — quietest labels, placeholders, meta.
- **text-faint** `#b8b8b8` — disabled text, faint dividers.

### Surface & Borders

- **surface-0 (page)** — `#fcfaf7` cream canvas.
- **surface-1 (inset band)** — `#f5f1ea` warm step-down.
- **surface-2 (card)** — `#ffffff` pure white, lifting off the cream.
- **surface-soft** — `#fbf7f0` softest panel, barely off the canvas.
- **border** `rgba(13, 13, 13, 0.10)` — 10% near-black hairline, the default rule on cream.
- **border-strong** `rgba(13, 13, 13, 0.18)` — emphasized rule on inputs and dividers.
- **border-subtle** `rgba(13, 13, 13, 0.05)` — quietest division.

### Shadow Colors

Shadows on Pika are **near-black, very-low-opacity, and soft**. The cream canvas wants gentle depth, so cards lift with `rgba(13, 13, 13, 0.05–0.12)` at wide blur radii — a soft drop rather than a hard edge. The brand never tints shadows with the peach; the warmth stays in fills, the shadows stay neutral. Most depth is read as a pure-white card floating a few pixels above the cream, not as a heavy cast.

### Semantic

- **success** — bg `rgba(34, 197, 94, 0.12)`, text `#15803d` (green-700).
- **warning** — bg `rgba(245, 190, 99, 0.20)`, text `#92600c` (amber-800) — borrows the peach family at low saturation.
- **danger** — bg `rgba(220, 38, 38, 0.10)`, text `#b91c1c` (red-700).
- **info** — bg `rgba(13, 13, 13, 0.06)`, text `#0d0d0d` — neutral on the warm-light page; Pika doesn't introduce a cold info-blue.

Note: semantic text uses **700–800 step colours** so it stays AA-legible against the bright cream ground while keeping the warm, calm register. Saturated 500s would feel loud on the paper.

## 3. Typography Rules

### Font Family

- **Display**: `telkaExtended, telka, system-ui, -apple-system, sans-serif` — Telka Extended, the wide cut of Pika's custom geometric grotesque, carries every headline. The extended width plus weight 900 is the brand's poster signature.
- **Body**: `telka, system-ui, -apple-system, sans-serif` — Telka regular-width at a light 300 weight sets all running copy; the feather-light body is the deliberate counterweight to the 900 display.
- **Mono**: `ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace` — for prompt parameters, durations, dimensions, seed values, and rare inline code.
- **OpenType features**: `kern` and `liga` always on; `tnum` (tabular figures) in mono for clip durations and dimensions.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Letter Spacing | OT Features | Notes |
|---|---|---|---|---|---|---|---|
| Display Hero | Telka Extended | 80px | 900 | 1.0 | -0.03em | kern liga | Major launch / campaign hero |
| Display Large | Telka Extended | 56px | 900 | 1.05 | -0.02em | kern liga | Section opener |
| H1 | Telka Extended | 48px | 900 | 1.05 | -0.02em | liga | Homepage hero — the signature |
| H2 | Telka Extended | 32px | 700 | 1.15 | -0.012em | liga | Major section heading |
| H3 | Telka Extended | 24px | 600 | 1.25 | -0.005em | — | Sub-section heading |
| H4 | Telka Extended | 20px | 600 | 1.3 | normal | — | Card heading |
| H5 | Telka | 16px | 600 | 1.4 | normal | — | Inline emphasis |
| Eyebrow | Telka | 12px | 600 | 1.4 | 0.06em | uppercase | Section pre-label |
| Body Large | Telka | 18px | 300 | 1.55 | normal | — | Lede paragraph |
| Body | Telka | 16px | 300 | 1.55 | normal | — | Default body |
| Body Small | Telka | 14px | 300 | 1.5 | normal | — | Compact UI body |
| Label | Telka | 13px | 500 | 1.4 | normal | — | UI labels, chips, buttons |
| Caption | Telka | 12px | 500 | 1.4 | 0.02em | — | Image captions, helper |
| Caption Tabular | mono | 12px | 500 | 1.4 | normal | tnum | Clip duration, dimensions |
| Code | mono | 13px | 400 | 1.55 | normal | tnum | Prompt params, seeds |

### Principles

- **The 900-vs-300 weight contrast is the brand statement.** Telka Extended at weight 900 for display and Telka at weight 300 for body is the single most identifying typographic move. The fat headline carries all the energy; the feather body keeps the page relaxed.
- **Display always uses the Extended cut.** Headlines (h1–h4) are Telka *Extended*; body and labels are regular Telka. Don't set a headline in the regular width — the poster character collapses.
- **Negative tracking scales with size.** -0.03em at 80px, -0.02em at 48px, easing to normal by 20px and below. Big type tightens; small type stays open.
- **Body stays light (300).** Telka at 300 is the brand's reading weight; bumping body to 400+ loses the relaxed, airy feel. Reserve 500 for labels and buttons where legibility at small sizes matters.
- **Eyebrows are 12px / 600 / uppercase / 0.06em.** A compact, slightly-tracked pre-label sets section context without competing with the 900 headline.
- **Mono only for data.** Clip durations (`0:08`), dimensions (`1280×720`), seeds, and prompt parameters — never UI chrome or button labels.
- **No italics in display.** Italics belong to citations and image captions in body copy.
- **Line length capped at 720px.** On text pages running copy never exceeds the prose width; studio and gallery views bleed wider for the work.

## 4. Component Stylings

### Buttons

**Primary (Peach Invitation)**
- Background: `#ffd184` peach. Text: `#222222`, Telka 500 / 15px.
- Padding: `10px 18px`. Radius: `18px`. No border.
- Hover: bg → `#f5be63`; transition `240ms ease-standard`.
- Active: slight 0.98× press; bg holds `#f5be63`.
- Focus: 3px peach glow `rgba(255, 209, 132, 0.50)` with 2px offset.
- Use: Inviting primary CTA — *Sign Up, Get started, Join.*

**Generate (Black Do-It-Now)**
- Background: `#000000`. Text: `#ffffff`, Telka 500 / 15px.
- Padding: `10px 18px`. Radius: `18px`. No border.
- Hover: bg → `#1a1a1a`.
- Use: Decisive action CTA — *Generate, Render, Create.* The black pill is the moment of commitment.

**Dark Secondary (Near-Black)**
- Background: `#222222`. Text: `#ffffff`, Telka 500 / 15px.
- Padding: `10px 18px`. Radius: `18px`. No border.
- Hover: bg → `#000000`.
- Use: Supporting dark action — *Try on Web, Open app.*

**Ghost (Quiet Outline)**
- Background: transparent. Text: `#0d0d0d`, Telka 500 / 15px.
- Border: `1px solid rgba(13, 13, 13, 0.18)`. Padding: `10px 18px`. Radius: `18px`.
- Hover: bg → `rgba(13, 13, 13, 0.04)`; border → `rgba(13, 13, 13, 0.30)`.
- Use: Tertiary actions, nav, "Learn more" on cream.

### Cards

**Content Card**
- Background: `#ffffff`. Border: `1px solid rgba(13, 13, 13, 0.10)`. Radius: `16px`. Padding: `24px`.
- Shadow: `rgba(13, 13, 13, 0.05) 0 1px 2px` at rest; on hover `rgba(13, 13, 13, 0.08) 0 4px 16px`.
- Use: Feature card, pricing tier, blog entry — pure white lifting off the cream.

**Clip Tile (Gallery)**
- Background: `#f5f1ea` (placeholder ground while clip loads). Border: none. Radius: `16px`. Aspect: 16:9.
- Hover: 1.02× scale + `rgba(13, 13, 13, 0.12) 0 16px 40px -8px` soft shadow.
- Use: Generated-clip gallery — videos auto-loop muted, radius matches the card system.

**Inset Card**
- Background: `#fbf7f0`. Border: `1px solid rgba(13, 13, 13, 0.05)`. Radius: `12px`. Padding: `16px`.
- Use: Quiet info zone — tip callout, in-feed announcement on the cream.

### Badges, Tags, Pills

**Tag Chip** — bg `rgba(255, 209, 132, 0.30)` peach wash, text `#222222`, Telka 500 / 12px, padding `4px 12px`, radius `9999`. Hover deepens the wash to `0.40`.

**Neutral Chip** — bg `rgba(13, 13, 13, 0.06)`, text `#0d0d0d`, radius `9999`. Used for non-brand categories and filters.

**Eyebrow Label** — no chrome, just type. Telka 600 / 12px / uppercase / 0.06em tracking, colour `#5c5c5c`.

### Inputs / Forms

**Text Input**
- Background: `#ffffff`. Border: `1px solid rgba(13, 13, 13, 0.18)`. Radius: `8px`. Padding: `10px 14px`.
- Font: Telka 300 / 15px. Placeholder: `#8a8a8a`.
- Focus: `0 0 0 3px rgba(255, 209, 132, 0.50)` peach glow, border → `#0d0d0d`.
- Error: border → `#b91c1c`, helper red below.

**Prompt Input (Studio)**
- Background: `#ffffff`. Border: `1px solid rgba(13, 13, 13, 0.10)`. Radius: `18px`. Padding: `14px 16px 14px 20px`.
- Font: Telka 300 / 16px. Placeholder: `#8a8a8a`.
- Inner button: 40px black `#000000` circle with white arrow icon, hard-right.
- Focus: peach glow grows to 3px.
- Use: Studio entry — the wide rounded prompt box where you describe a clip.

### Navigation

- Header height `64px`. Background `#fcfaf7` (cream), `backdrop-filter: blur(10px)` + a `border-subtle` hairline on scroll.
- Logo: Pika wordmark in near-black `#0d0d0d`, Telka Extended.
- Nav links: Telka 500 / 15px, colour `#0d0d0d`, padding `8px 12px`. Hover: text → `#5c5c5c`.
- Right-side: ghost link cluster + peach "Sign Up" pill + (in-app) black "Generate" pill.
- Mobile (<640px): hamburger collapses to a full-screen cream sheet; links stack at 18px / 500.

### Optional Components

**Dropdown Menu** — bg `#ffffff`, border `rgba(13, 13, 13, 0.10)`, radius `12px`, shadow `rgba(13, 13, 13, 0.12) 0 16px 40px -8px`. Items: Telka 300 / 15px, hover bg `rgba(13, 13, 13, 0.04)`.

**Tooltip** — bg `#0d0d0d`, text `#ffffff`, radius `8px`, padding `6px 10px`, font `12px / 500`.

**Toast** — bg `#ffffff`, border `rgba(13, 13, 13, 0.10)`, radius `12px`, padding `12px 16px`, shadow `rgba(13, 13, 13, 0.12) 0 8px 24px -4px`.

**Modal** — bg `#ffffff`, radius `16px`, shadow `rgba(13, 13, 13, 0.20) 0 24px 64px -12px`, max-width `560px`. Backdrop: 40% black over the cream.

## 5. Layout Principles

### Spacing System

- **Base unit**: 4px.
- **Scale**: 0, 4, 8, 12, 16, 24, 32, 48, 64, 96, 128 — breezy but compact.
- **Density observation**: Pika is *medium-dense* at the chrome level (64–128px section rhythm) and *packed* at the gallery level (tight clip-tile grids). The marketing chrome breathes; the studio and gallery pack tiles edge to edge.

### Grid & Container

- **Page max width**: `1280px` — a comfortable centred frame, narrower than Krea's 1440 cinematic span.
- **Site gutter**: `clamp(20px, 5vw, 64px)` — generous on desktop, tight on mobile.
- **Grid**: 12 columns with 24px gutters.
- **Hero treatment**: 48px Telka Extended headline, 18px light body below, peach + black CTA pair, then the prompt box or demo-clip strip.

### Whitespace Philosophy

The whitespace is **warm and breezy**. Section gutters run 64–128px between major blocks; minor blocks sit on 32–64px gaps; intra-section spacing uses 16–32px. The cream canvas makes generous space feel inviting rather than empty — the warmth fills the gaps the way an off-white wall does in a sunlit room.

### Section Cadence

- Hero (cream, headline + CTA pair + prompt) → Feature ladder (cream, white cards) → Clip gallery (cream, packed 16:9 tile grid) → Pricing (cream, white tier cards) → CTA band → Footer (`#f5f1ea` warm inset).
- The whole site stays on the cream canvas; the only true dark fields are the black CTAs and the occasional clip thumbnail.
- Section breaks are vertical space plus occasional 1px `border-subtle` hairlines.

## 6. Shapes & Radius Scale

| Tier | Value | Use |
|---|---|---|
| Micro | 2px | Decorative dividers, icon-corner inheritance |
| Standard (sm) | 4px | Compact chips, tight tags |
| Comfortable (md) | 8px | Text inputs, small controls |
| Relaxed (lg) | 12px | Inset cards, dropdowns, toasts |
| Large (xl) | 16px | Content cards, clip tiles, modals |
| CTA | 18px | Buttons — Pika's signature rounded pill |
| Pill | 9999px | Tag chips, filter pills, avatar |

Pika's signature radius is **18px on buttons** — rounder than the 8px most SaaS uses, soft enough to feel playful, tight enough to stay crisp. Cards and clip tiles land at 16px; inputs at 8px; chips fully round at `9999px`. There are no zero-radius surfaces; the whole system reads soft and friendly, in keeping with the warm-light register.

## 7. Depth & Elevation

| Level | Treatment | Use |
|---|---|---|
| 0 | Flat — no shadow | Cream page canvas, hero, body sections |
| 1 | `rgba(13,13,13,0.05) 0 1px 2px` | Resting cards, chips |
| 2 | `rgba(13,13,13,0.08) 0 4px 16px` | Hover-lifted cards |
| 3 | `rgba(13,13,13,0.12) 0 16px 40px -8px` | Clip tile hover, dropdowns, popovers |
| 4 | `rgba(13,13,13,0.20) 0 24px 64px -12px` | Modals, dialogs |

### Shadow Philosophy

Pika's depth is **soft, neutral, and low-opacity**. The cream canvas wants gentle lift, so cards float a few pixels above the ground with near-black shadows at 5–20% opacity and wide blur — a soft drop, never a hard edge. The primary elevation cue is a pure-white card surface against the warm cream, so most separation reads as the value step (`#fcfaf7` → `#ffffff`) before the shadow even registers. The brand never tints shadows with the peach — warmth lives in fills, shadows stay neutral grey-black.

## 8. Interaction & Motion

### Easing Curves

- **`ease-standard`**: `cubic-bezier(0.4, 0, 0.2, 1)` — default for hover, focus, colour transitions.
- **`ease-emphasized`**: `cubic-bezier(0.2, 0, 0, 1)` — punchier exit; modal enter, hero reveal.
- **`ease-bounce`**: `cubic-bezier(0.34, 1.56, 0.64, 1)` — a slight overshoot for playful moments (CTA press-release, chip add). Used sparingly to match the friendly register.

### Duration Buckets

- **Fast (150ms)** — colour transitions, focus rings, link hovers.
- **Standard (240ms)** — button hover, card hover, dropdown reveal.
- **Slow (320ms)** — modal enter/exit, section fade-in, clip-tile reveal.

### Per-Component Micro-States

- **Button hover (peach)**: bg `#ffd184` → `#f5be63` over 240ms; no transform.
- **Button hover (black/dark)**: bg `#000000` → `#1a1a1a` (or `#222` → `#000`) over 240ms.
- **Button press**: 0.98× scale with `ease-bounce` on release.
- **Card hover**: shadow level 1 → 2 over 240ms; no border change.
- **Clip tile hover**: scale 1.02× over 240ms + level-3 soft shadow; clip plays.
- **Link hover**: colour `#0d0d0d` → `#000000` over 150ms; underline thickens.
- **Input focus**: 3px peach glow fades in over 150ms; border picks up `#0d0d0d`.

### Page Transitions

Demo clips auto-play loops with `prefers-reduced-motion` honoured (they pause to a poster frame). Below-fold sections use `IntersectionObserver` to fade in at 80% viewport, 320ms, 12px translate-up.

### Reduced Motion

`@media (prefers-reduced-motion: reduce)` — looping demo clips pause and show a static poster; all transforms (scale, bounce, translate) collapse to opacity-only; durations halve.

## 9. Accessibility & A11y

### Contrast Pairs

- **`#0d0d0d` text on `#fcfaf7` cream bg**: 18.9:1 — AAA at all sizes.
- **`#5c5c5c` muted on `#fcfaf7` bg**: 7.0:1 — AAA at body sizes.
- **`#8a8a8a` soft on `#fcfaf7` bg**: 3.9:1 — AA large only; reserve for placeholders, not running copy.
- **`#222222` text on `#ffd184` peach CTA**: 8.9:1 — AAA at body sizes; safe for the peach button.
- **`#ffffff` text on `#000000` generate CTA**: 21.0:1 — AAA at all sizes.
- **`#ffffff` text on `#222222` dark CTA**: 15.9:1 — AAA at all sizes.
- **`#0d0d0d` text on `#ffffff` card**: 20.1:1 — AAA at all sizes.

### Focus Indicators

- Default ring: 3px peach glow `rgba(255, 209, 132, 0.50)` with 2px offset.
- On pure-white surfaces where the peach glow lacks contrast, fall back to a 2px solid `#0d0d0d` outline.
- All interactive surfaces show a visible focus state.

### ARIA Patterns

- **Navigation**: `<nav aria-label="Main">` with skip-link to `#main-content`.
- **Studio prompt**: `<form aria-label="Describe your video">` with `aria-label` on the input and the black send button.
- **Clip gallery**: `aria-label="Generated video gallery"`; each clip has `aria-label` matching its prompt caption.
- **Dialog**: `role="dialog" aria-modal="true" aria-labelledby` with focus trap and Esc-to-close.
- **Live regions**: `aria-live="polite"` for generation-status messages ("Generating…", "Done").

### Keyboard Navigation

- Tab order: skip-link → masthead nav → primary CTA → hero prompt → gallery → footer.
- Arrow keys navigate within the clip grid; Space/Enter activates a tile.
- `Esc` closes dropdowns and modals.

### Screen Reader Hints

- Decorative looping background clips with no semantic content: `aria-hidden="true"`.
- Generated clips carry an `aria-label` matching the prompt that produced them.
- Icon-only buttons (the black send arrow) carry an `aria-label`.

### Reduced Motion

Honoured globally. Demo clips pause to a poster frame; tile-scale and bounce hovers disabled; durations halved.

## 10. Responsive Behavior

### Breakpoints

| Name | Width | Use |
|---|---|---|
| Mobile | < 640px | Single-column, stacked CTAs, full-bleed clip tiles |
| Tablet | 640–1024px | 2-column tile grid, condensed nav |
| Desktop | 1024–1280px | 3-column tile grid, full nav |
| Wide | 1280–1536px | Page locks at 1280px; gutters expand |
| Ultra | > 1536px | Centred 1280px frame; cream fills the margins |

### Touch Targets

- Minimum tap target: 44×44px.
- CTA pills: 44px minimum height on mobile; the peach + black pair stacks vertically below 640px.
- Clip tile: the full tile is the tap target; controls reveal on tap.

### Collapsing Strategy

- **Header**: full nav at ≥1024px; hamburger sheet below.
- **Hero**: 48px → 40px → 32px headline across desktop/tablet/mobile.
- **CTA pair**: side-by-side ≥640px; stacked full-width below.
- **Tile grid**: 3-up → 2-up → 1-up across sizes.
- **Section spacing**: 128px → 96px → 64px across sizes.

### Image Behavior

- Demo clips use `<video autoplay muted loop playsinline>` with a poster frame for `prefers-reduced-motion`.
- Static images use `srcset` with breakpoint-derived sizes; native lazy-loading.
- Aspect ratio is locked at 16:9 for clip tiles; cards size to content.

### Container Queries

Used inside feature cards to switch icon-left vs. icon-top layout when card width crosses 320px.

## 11. Content & Voice

### Tone

**Playful, warm, and direct.** Pika writes like a friendly creative collaborator, not a control panel — short, energetic sentences, an occasional exclamation, and verbs that invite making. The 900-weight headlines back up a confident, upbeat voice; the copy positions Pika as a fun, fast way to make video, not an intimidating professional suite.

### Microcopy Patterns

- **Button verbs**: "Sign Up," "Generate," "Try on Web," "Create," "Remix," "Share." Action-first and short.
- **Error messages**: "That didn't render. Try a different prompt, or [contact support]." — friendly, never blaming.
- **Success confirmations**: "Your video's ready." "Saved to your library." Brief and warm.
- **Loading states**: "Generating your video…" with a soft progress indicator.

### Empty States

- *"No videos yet. Describe something and hit Generate."* — explain, offer the next step.
- *"Nothing matches that search."* — search empty.
- Encouraging, never apologetic — empty is a starting point, not a failure.

### CTA Verb Conventions

- Primary (peach): "Sign Up," "Get started," "Join"
- Action (black): "Generate," "Create," "Render"
- Secondary (dark/ghost): "Try on Web," "Watch the demo," "See examples"
- Footer: "Pricing," "Discord," "Careers," "API"

The voice is **invitational with creative energy** — describe it, generate it, remix it. The warmth of the cream canvas is matched by the warmth of the copy.

## 12. Dark Mode & Theming

**Light-only — no dark variant offered.** The cream canvas `#fcfaf7` is the brand surface across the entire marketing site and the web studio. There is no `prefers-color-scheme: dark` inversion; the only true dark fields on the page are the black `#000000` "Generate" pill, the near-black `#222222` "Try on Web" pill, and the occasional dark clip thumbnail.

This is a deliberate identity choice, not an omission. The warmth of the off-white ground and the peach accent are the brand — a dark inversion would lose both. If a low-light reading mode is ever needed, it should warm-shift (a deep warm charcoal, not a cold `#000`) and keep the peach accent intact, rather than flip to a Krea-style absolute-black gallery. For now: the single rule is that Pika lives on cream.

## 13. Lineage & Influences

Pika's design DNA is **warm-minimal canvas + fat-weight display poster typography + a friendly, rounded pill grammar**. It sits in the playful-AI lineage rather than the austere-AI one: where Krea commits to absolute black and Swiss restraint, Pika reaches for a warm cream room, a chunky 900-weight custom grotesque, and rounded peach-and-black CTAs that read like a creative toy box. The off-white `#fcfaf7` canvas borrows the "intentional, not default-white" philosophy that Vercel's `#fafafa` and Notion's warm surfaces popularised, but pushes it warmer and pairs it with energy rather than calm. The two-CTA grammar — soft peach invitation beside hard black action — is the brand's most distinctive structural decision.

What it inherits: the warm off-white canvas as a signal of "a person designed this on purpose" (Vercel, Notion); a single custom display typeface carrying brand personality (Stripe-era marketing polish ported onto a playful register); rounded, friendly geometry over hard corners. What it borrows from contemporaries: the clip-tile gallery hero pattern common to the creative-AI category. What it rejects: the dark-mode-first, absolute-black gallery aesthetic of Krea and the cold blue-on-clinical-white of enterprise SaaS — Pika is warm, light, and rounded by deliberate contrast.

**Named influences:**

- **Vercel** — the off-white "intentional, not pure-white" canvas philosophy and near-black-on-near-white type discipline; Pika warms the same idea toward cream. *https://vercel.com*
- **Notion** — warm off-white surface as a deliberate signal of approachability over clinical enterprise white. *https://notion.so*
- **Stripe** — single-typeface-carries-the-brand polish; the marketing-grade craft of a custom display face. *https://stripe.com*
- **Krea** — the adjacent creative-AI peer Pika defines itself against; the clip-tile gallery pattern shared, the dark-gallery aesthetic deliberately inverted to warm-light. *https://www.krea.ai*
- **Linear** — restrained, considered chrome and the discipline of a tight token system underneath the playful surface. *https://linear.app*

## 14. Do's and Don'ts

### Do

- **Do** keep the canvas at warm cream `#fcfaf7`. The off-white warmth is the brand; never flatten it to clinical `#ffffff`.
- **Do** set display in Telka Extended at weight **900**. The chunky poster headline is the signature.
- **Do** run body copy in Telka at a light **300** weight — the 900-vs-300 contrast is the core typographic tension.
- **Do** use the two-CTA grammar: peach `#ffd184` for the inviting action, black `#000000` for the do-it-now action.
- **Do** keep CTA radius at **18px** — Pika's signature rounded pill.
- **Do** put dark text `#222222` on the peach button; peach is too light for white text.
- **Do** lift cards with pure-white `#ffffff` fills and soft, low-opacity neutral shadows.
- **Do** keep section rhythm at 64–128px — breezy and warm, not austere.
- **Do** use the peach as the only warm chroma; let the work carry the colour.
- **Do** keep the voice playful, warm, and action-first.

### Don't

- **Don't** ship a dark mode. Pika is light-only; an absolute-black inversion loses the warm identity.
- **Don't** set body copy heavier than 300 — Telka loses its relaxed, airy feel.
- **Don't** set headlines in regular Telka; the Extended cut is what makes them poster-like.
- **Don't** put white text on the peach button — contrast fails; use `#222222`.
- **Don't** use the peach as a large background fill; it stays in CTAs and small wash accents.
- **Don't** flatten the canvas to clinical `#ffffff` — the cream warmth is the brand.
- **Don't** square off the CTAs to 8px; the 18px rounding is the friendly signature.
- **Don't** tint shadows with peach; shadows stay neutral grey-black.
- **Don't** introduce a cold info-blue; Pika's semantic palette stays warm and neutral.
- **Don't** apologise in microcopy — empty states are starting points, not failures.

## 15. Agent Prompt Guide

### Quick Color Reference

```
bg: #fcfaf7
bg-alt: #f5f1ea
surface: #ffffff
text: #0d0d0d
text-strong: #000000
text-muted: #5c5c5c
brand (peach CTA): #ffd184
on-brand (text on peach): #222222
ink-cta-bg (black Generate): #000000
dark-cta-bg (Try on Web): #222222
border: rgba(13, 13, 13, 0.10)
```

### Example Component Prompts

1. **"Create a Pika-style hero — warm cream `#fcfaf7` canvas, 48px headline in Telka Extended weight **900** near-black `#0d0d0d` with -0.02em tracking, 18px light body (Telka 300) in `#5c5c5c` below. Below the copy, two rounded 18px CTA pills side by side: a peach `#ffd184` 'Sign Up' with dark `#222222` text, and a black `#000000` 'Generate' with white text."**

2. **"Design a Pika prompt box — pure-white `#ffffff` field on cream, `1px rgba(13,13,13,0.10)` border, 18px radius, 14px×16px×14px×20px padding, placeholder in `#8a8a8a` Telka 300 / 16px. A 40px black `#000000` circle with a white arrow icon sits hard-right. Focus shows a 3px peach glow."**

3. **"Build a Pika feature card — pure-white `#ffffff` background lifting off the cream, `1px rgba(13,13,13,0.10)` border, 16px radius, 24px padding, 20px Telka Extended 600 heading in `#0d0d0d`, 16px Telka 300 body in `#5c5c5c`. Soft `rgba(13,13,13,0.05) 0 1px 2px` shadow at rest, deepening on hover."**

4. **"Compose a Pika nav — 64px header on cream `#fcfaf7`, wordmark hard-left in Telka Extended near-black. Link list Telka 500 / 15px `#0d0d0d` with `#5c5c5c` hover. Right-side: a ghost-outline link cluster plus a peach `#ffd184` 'Sign Up' pill at 18px radius with dark text."**

5. **"Render a Pika clip-tile gallery — 3-column 16:9 grid on cream, each tile a 16px-radius rounded frame with `#f5f1ea` placeholder ground, video bleeding to edge and auto-looping muted. Hover scales 1.02× with a soft `rgba(13,13,13,0.12) 0 16px 40px -8px` shadow. Prompt caption below in Telka 300 / 12px `#5c5c5c`."**

6. **"Create a Pika CTA band — full-width cream `#fcfaf7` section, 56px Telka Extended 900 headline centred in `#0d0d0d`, 18px Telka 300 subhead in `#5c5c5c`, and a single black `#000000` 'Generate' pill (white text, 18px radius) below."**

### Iteration Guide

1. **Start with cream `#fcfaf7`.** If the bg is pure `#ffffff` or a cold grey, you've lost the brand. The warm off-white is the entry ticket.
2. **Set the headline in Telka Extended at 900.** If it's a regular-width or medium-weight headline, the poster character collapses. Fat-weight Extended is the signature.
3. **Drop body to weight 300.** The 900-vs-300 contrast is the core tension; a 400+ body reads heavier and less playful.
4. **Use both CTA codes.** Peach `#ffd184` invites, black `#000000` commits. If everything is one colour, the two-CTA grammar is missing.
5. **Round the buttons to 18px.** 8px reads SaaS-generic; 18px is Pika's friendly pill.
6. **Put `#222222` text on the peach.** White on peach fails contrast — dark ink is mandatory on the peach fill.
7. **Keep shadows soft and neutral.** Near-black at 5–12% opacity, wide blur — never a hard edge, never peach-tinted.
8. **Warm the voice.** Replace "Render output" with "Generate your video"; keep copy action-first and friendly.
