---
version: alpha
name: "Epic Games"
description: "Epic Games is the cinematic alternative to Steam's engineering-room storefront — a pure-black `#000000` canvas spilled across every page, anchored by a confident **Epic Blue** (`#0078f2`) that carries every \"Get\" button, every \"Wishlist\" pill, and every primary CTA. Display copy runs **Brutal Type**, Epic's custom display sans, at large 56–80px sizes with negative tracking — game cover art occupies 60–80% of every band, and the resulting page reads less like a software storefront and more like a Fortnite trailer poster scrolling past the viewer. Cards are ink-black `#202024` rectangles with 4px radius, and the merchandising voice is bold, cinematic, and saturated — the opposite of Steam's muted utilitarian voice. Free Game Friday, Mega Sale percent-off banners, and Fortnite battle-pass takeovers turn the storefront into a marketing surface every week."
colors:
  bg: "#000000"
  bg-alt: "#0a0a0a"
  bg-deep: "#000000"
  surface: "#202024"
  surface-soft: "#2a2a2e"
  surface-strong: "#3a3a3e"
  surface-elevated: "#1a1a1e"
  surface-charcoal: "#171717"
  surface-bright: "#f5f5f5"
  text: "#ffffff"
  text-soft: "#dadada"
  text-muted: "#9ca0a4"
  text-faint: "#6e7177"
  text-disabled: "#4a4d51"
  text-link: "#0078f2"
  brand: "#0078f2"
  brand-hover: "#1a8cf7"
  brand-active: "#0061c4"
  brand-deep: "#005ab8"
  brand-pale: "#9bcaff"
  on-brand: "#ffffff"
  cta-bg: "#0078f2"
  cta-text: "#ffffff"
  free-game-yellow: "#ffce00"
  free-game-bg: "#382e00"
  fortnite-yellow: "#ffce00"
  fortnite-blue: "#0078f2"
  unreal-engine: "#00b2ff"
  rocket-league: "#0066ff"
  fall-guys: "#ff5cff"
  link-default: "#0078f2"
  link-hover: "#1a8cf7"
  link-visited: "#0078f2"
  border: "#3a3a3e"
  border-soft: "#202024"
  border-strong: "#0078f2"
  scrim: "rgba(0,0,0,0.85)"
  shadow-card: "rgba(0,0,0,0.6)"
  shadow-elev: "rgba(0,0,0,0.8)"
  shadow-blue-glow: "rgba(0,120,242,0.4)"
  discount-bg: "#26bbff"
  discount-text: "#000000"
  achievement: "#ffce00"
  success: "#3ad481"
  warning: "#ff9c2a"
  danger: "#ff4248"
  info: "#0078f2"
typography:
  display:
    fontFamily: "Brutal Type"
    fontSize: "80px"
    lineHeight: 1.5
    letterSpacing: "-0.04em"
  body:
    fontFamily: "Inter"
    fontSize: "14px"
    lineHeight: 1.5
  mono:
    fontFamily: "Roboto Mono"
rounded:
  button: "6px"
  card: "8px"
  pill: "9999px"
spacing:
  xs: "4px"
  sm: "8px"
  md: "16px"
  lg: "32px"
  xl: "64px"
---

## Overview

## Overview

Epic Games is the cinematic alternative to Steam's engineering-room storefront. Where Steam reads as a control panel, Epic reads as a movie poster — a **pure-black** `#000000` canvas spilled across every page with no surface variation, anchored by a confident **Epic Blue** (`#0078f2`) that carries every "Get" button, every "Wishlist" pill, and every primary CTA. Game cover art occupies 60–80% of every band — full-bleed 1920×1080 hero banners with cinematic gradient masks at the bottom, 16:9 capsule tiles in 4-up carousel rails, and Fortnite battle-pass takeovers that paint the entire homepage yellow for a season.

Display copy runs **Brutal Type** (Epic's custom display sans, occasionally paired with "Heading Now" depending on context) at large 56–80px sizes with negative tracking. The wordmark, hero headlines, and CTA labels all run uppercase with 0.04em tracking — Epic's signature trade dress. Body type drops to Inter / Brutal Type at 14/400 with comfortable 1.5 leading. The result reads less like a software storefront and more like a Fortnite trailer poster scrolling past the viewer.

Cards are warm-ink `#202024` rectangles with **4px radius** — subtly rounded but unmistakably rectangular. Buttons round at the same 4px and pad generously: 14×28px, 48px height, white-on-Epic-Blue fill. Inputs at 6px radius. The Mega Sale teal-blue (`#26bbff`) discount tag punches against any cover art with `#000000` text — Epic's most distinctive merchandising element.

Photography is the design. Every featured game gets a cinematic horizontal hero (Fortnite Chapter X, Alan Wake II, Cyberpunk 2077) with a gradient mask burning into the bottom 30% so the title and Get button can sit legibly. Free Game Friday — the platform's marquee retention mechanic — gets a yellow-bordered banner that reads "FREE NOW" anchored top-left of the giveaway capsule.

The brand position is **bold cinematic merchandising**. Epic rejects Steam's muted utilitarian voice — every hero is loud, every CTA is uppercase, every section is presented like a magazine cover. Where Steam optimises for tens of thousands of games per pixel, Epic optimises for one game per fold.

**Key Characteristics:**
- Pure-black `#000000` canvas spilled across every page — Epic's signature, no surface variation
- Epic Blue (`#0078f2`) is the universal primary CTA and brand accent — bright, confident, single voltage
- Brutal Type custom display sans at 56–80px / 800 with -0.02 to -0.04em negative tracking on hero copy
- Uppercase 0.04em-tracked CTAs ("GET", "WISHLIST", "BUY NOW") — the brand's loud-poster voice
- 4px-radius rectangular cards (`#202024`) with subtle blue glow on hover
- Mega Sale teal-blue (`#26bbff`) discount tag with black text — Epic's distinct sale voltage
- Free Game Friday yellow-on-black "FREE NOW" banner — the platform's retention hook
- Fortnite battle-pass yellow `#ffce00` season takeover paints the homepage every 12 weeks
- 1920×1080 full-bleed hero banners with gradient mask at bottom for the title + Get button

## Colors

### Primary
- **Canvas** (`#000000`): pure black — every page, every section, every band. The platform's signature
- **Bg Alt** (`#0a0a0a`): slightly cooler alt section band
- **Card** (`#202024`): warm-ink card surface for game tiles
- **Surface Soft** (`#2a2a2e`): hovered card lift
- **Surface Strong** (`#3a3a3e`): selected sidebar, deeply pressed card
- **Surface Elevated** (`#1a1a1e`): elevated panels
- **Surface Charcoal** (`#171717`): dropdown floor, alt tile

### Brand
- **Epic Blue** (`#0078f2`): primary CTA, brand accent, link, focused border
- **Epic Blue Hover** (`#1a8cf7`): brightened hover
- **Epic Blue Active** (`#0061c4`): pressed
- **Epic Blue Deep** (`#005ab8`): deeper variant for inactive tabs
- **Epic Blue Pale** (`#9bcaff`): disabled tint

### Accent
- **Free Game Yellow** (`#ffce00`): "Free Now" yellow flag — Free Game Friday signal
- **Free Game Bg** (`#382e00`): dark amber surface behind the free-game indicator
- **Fortnite Yellow** (`#ffce00`): same hex as free-game — Fortnite's brand yellow
- **Mega Sale Teal-Blue** (`#26bbff`): the sale discount tag colour
- **Unreal Engine** (`#00b2ff`): brighter cyan accent on Unreal docs/marketing
- **Rocket League Blue** (`#0066ff`): franchise-specific
- **Fall Guys Magenta** (`#ff5cff`): franchise-specific

### Interactive
- **Link** (`#0078f2`): same hex as brand — Epic doesn't differentiate
- **Link Hover** (`#1a8cf7`): brightens
- **Link Visited** (`#0078f2`): unchanged
- **Disabled** (`#4a4d51`): muted ink
- **Selected** (`#0078f2`): selected radio / checkbox

### Neutral Scale
- **Text** (`#ffffff`) — primary white on black
- **Text Soft** (`#dadada`) — secondary copy
- **Text Muted** (`#9ca0a4`) — tertiary metadata, "Released 2024"
- **Text Faint** (`#6e7177`) — captions, timestamps
- **Text Disabled** (`#4a4d51`) — disabled
- **Border** (`#3a3a3e`) — default low-contrast hairline
- **Border Soft** (`#202024`) — divider between rows
- **Border Strong** (`#0078f2`) — focused input

### Surface & Borders
- **Bg** (`#000000`)
- **Bg Alt** (`#0a0a0a`)
- **Surface** (`#202024`)
- **Surface Soft** (`#2a2a2e`)
- **Surface Strong** (`#3a3a3e`)
- **Surface Elevated** (`#1a1a1e`)
- **Surface Charcoal** (`#171717`)

### Shadow Colors
Epic stays mostly flat. The capsule blue glow (`0 0 16px rgba(0,120,242,0.4)`) is the brand's signature interactive shadow — a soft Epic-Blue halo on hovered tiles. Modal drop shadow runs neutral `rgba(0,0,0,0.8)` 0 8px 32px.

### Semantic
- **Success** (`#3ad481`): success green for "Successfully purchased"
- **Warning** (`#ff9c2a`): advisory orange
- **Danger** (`#ff4248`): validation red
- **Info** (`#0078f2`): info — same hex as brand

## Typography

### Font Family

**Primary**: `Brutal Type` — Epic's custom display sans, occasionally paired with `Heading Now` depending on context (Heading Now is used on Unreal Engine marketing). Falls back to `Inter`, `"Helvetica Neue"`, `Helvetica`, `sans-serif`. Brutal Type is a geometric sans with sharp terminals, designed for cinematic display use at 48px+. Weights: 400, 600, 800.

**Body**: `Inter` is the body workhorse on the Epic Games Store; Brutal Type appears on display only. On Unreal Engine marketing pages the body switches to Inter or system sans.

**Mono**: `"Roboto Mono", Menlo, Consolas, "Courier New", monospace` — appears in Unreal Engine documentation inline code.

**OpenType features**: `kern` enabled by default; `tnum` on prices; `ss01` enabled on Brutal Type display sizes for an alternate `g` form that gives Epic's headlines their slightly geometric character.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Letter Spacing | OT Features | Notes |
|------|------|------|--------|-------------|----------------|-------------|-------|
| display-hero | Brutal Type | 80 | 800 | 0.95 | -0.04em | ss01 | Marketing landing hero ("Free Now") |
| display-xl | Brutal Type | 64 | 800 | 1.0 | -0.03em | — | Mega Sale headline |
| display-lg | Brutal Type | 48 | 800 | 1.05 | -0.02em | — | Featured game banner |
| display-md | Brutal Type | 36 | 800 | 1.1 | -0.01em | — | Section headline |
| display-sm | Brutal Type | 28 | 700 | 1.15 | -0.01em | — | Game detail H1 |
| section-head | Brutal Type | 22 | 700 | 1.2 | 0 | — | "Discover", "Browse", "Free Games" |
| sub-section | Brutal Type | 18 | 600 | 1.25 | 0 | — | Carousel rail title |
| capsule-title | Brutal Type | 16 | 600 | 1.3 | 0 | — | Game card title |
| body-md | Inter | 14 | 400 | 1.5 | 0 | — | Default body |
| body-sm | Inter | 13 | 400 | 1.4 | 0 | — | Sidebar metadata |
| body-xs | Inter | 12 | 400 | 1.4 | 0 | — | Caption, footer micro |
| nav-link | Brutal Type | 14 | 700 | 1.0 | 0.04em | uppercase | "STORE · NEWS · DISTRIBUTE · SUPPORT" |
| sub-nav-link | Inter | 13 | 500 | 1.0 | 0 | — | Sub-nav anchors |
| button-cta | Brutal Type | 14 | 700 | 1.0 | 0.04em | uppercase | "GET", "WISHLIST", "BUY NOW" |
| button-md | Inter | 13 | 600 | 1.0 | 0.02em | — | Secondary CTAs |
| button-sm | Inter | 12 | 600 | 1.0 | 0 | — | Inline pills |
| price | Inter | 14 | 700 | 1.0 | 0 | tnum | Price text |
| discount-pct | Inter | 14 | 700 | 1.0 | 0 | — | "-50%" teal-blue |
| badge | Inter | 11 | 700 | 1.0 | 0.05em | uppercase | "FREE NOW", "COMING SOON", "NEW" |
| metadata | Inter | 12 | 400 | 1.3 | 0 | tnum | Player counts, release year |
| code | Roboto Mono | 13 | 400 | 1.4 | 0 | — | Unreal Engine doc inline code |

### Principles

- **Display goes huge with negative tracking.** Hero copy at 64–80px / 800 with -0.02 to -0.04em — Epic's headlines are unmistakably loud and cinematic.
- **Uppercase 0.04em tracking on CTAs and nav.** Brutal Type uppercase is the brand voice — Steam uses 0.5px (uppercase) on smaller labels; Epic uses uppercase on every primary CTA at button-CTA size.
- **Body is Inter, display is Brutal Type.** The two-family separation keeps long-form descriptions legible while preserving display drama.
- **Tabular numerals on every price.** `tnum` on prices and player counts.
- **Brutal Type substitutes**: when Brutal isn't available, fall back to a heavy geometric sans like Inter at weight 800 with -0.02em tracking; close enough to preserve the trade dress.
- **No serifs anywhere.** Epic refuses serif typography — the brand is geometric-sans throughout.
- **Hero parallax is type-aware.** Display copy stays anchored as the hero image parallax-scrolls behind it.

## Layout

### Spacing System

- Base unit: **4px**
- Scale: `4 · 8 · 12 · 16 · 20 · 24 · 32 · 48 · 64 · 80 · 96 · 128 · 160`
- Section gap (vertical): **96–160px** between hero and first carousel; **64–80px** between subsequent rails. Epic gives editorial sections cinematic breath
- Card internal padding: **0** around the cover image (image fills to corners), **12px** below for metadata stack
- Gutters: **16–24px** between game tiles in carousels; **96–128px** between major page bands

### Grid & Container

- Max content width: **1408px** centred
- Homepage: full-bleed hero (1920×1080 maximum, scales down) → 4-up `capsule-lg` discover rail → 6-up `capsule-md` browse rail → news carousel → footer
- Game detail: 2-column with image gallery left (~58%), buy box right (~36%); below the fold, full-width description, screenshots, reviews
- Footer: 4-column link list at desktop on `#000000`

### Whitespace Philosophy

Epic gives **cinematic breath**. 96–160px between hero and the first rail, 64–80px between subsequent rails. Inside any rail, capsules nestle with 16–24px gutters. The brand position: "this is one game per fold; we don't shout density."

### Section Cadence

Epic's section cadence runs **hero → rail → rail → editorial → rail**. The page rhythm imitates a Fortnite season trailer: a single dominant hero opens, then a sequence of curated rails follows. There is no decorative chrome between sections; the canvas-black background is uninterrupted.

### Breakpoints

| Name | Width | Key Changes |
|------|-------|-------------|
| Mobile | <600px | Top nav collapses to logo + hamburger; hero scales 80px → 36px; capsules stack 1-up |
| Tablet | 600–1024px | Capsule rails 2–3-up; hero scales to 48px; sub-nav becomes horizontal scroll |
| Desktop | 1024–1280px | 4-up capsule rails; full primary nav |
| Wide | 1280–1408px | Content caps at 1408px; outer gutters grow to ~80px |

### Touch Targets

- Primary CTAs: 48px height — meets AAA
- Wishlist heart: 48×48
- Tile entire 256×144 tap target
- Carousel paddle: 48×48 — meets AAA

### Collapsing Strategy

- Top nav: utilities collapse first; hamburger drawer at 1024px
- Sub-nav: horizontal scroll with edge fade
- Hero: full-bleed at every breakpoint; only the title block reflows
- Game detail: 2-column splits to single-column stack; buy-box becomes sticky bottom bar
- Section padding: 160px desktop → 96px tablet → 64px mobile

### Image Behavior

Hero banners use art-directed crops (1920×1080 desktop, 768×1024 mobile portrait) so the central subject stays centred when the band collapses. Capsule cover art preserves 16:9 ratio at every breakpoint. All non-critical imagery lazy-loads.

### Container Queries

Used in the right-rail buy box: when the rail narrows below ~340px, edition selectors collapse to dropdown.

## Elevation & Depth

| Level | Treatment | Use |
|-------|-----------|-----|
| 0 — Flat | no shadow | Body, hero bands, footer (~85% of surfaces) |
| 1 — Capsule glow | `0 0 16px rgba(0,120,242,0.4)` | Hovered tile — Epic Blue halo |
| 2 — Card soft | `rgba(0,0,0,0.6) 0 4px 12px` | Achievement card, popover |
| 3 — Modal | `rgba(0,0,0,0.8) 0 8px 32px` | Centred dialogs |
| 4 — Scrim | `rgba(0,0,0,0.85)` | Modal backdrop |

### Shadow Philosophy

Depth comes from **the canvas-vs-card surface separation** (`#000000` body vs `#202024` cards) and **the hero gradient mask** (transparent → 0.7-black bottom band on hero banners). The capsule blue glow is Epic's branded interactive shadow — a halo that signals "this is a clickable game." No multi-layer atmospheric Stripe-style shadows; Epic stays cinematic-flat.

## Shapes

| Tier | Value | Use |
|------|-------|-----|
| None | 0px | Hero banners, full-bleed bands, sub-nav, footer |
| Micro | 2px | Discount tag, dropdown trigger |
| Small | 4px | Game tiles, capsules, buttons, modal triggers — the dominant radius |
| Medium | 6px | Form inputs |
| Large | 8px | Modal containers, larger feature cards |
| XL | 12px | Marketing hero panels |
| Pill | 9999px | Filter pills, Fortnite battle-pass takeover pills |

The radius vocabulary is **4px-dominant**. Epic's geometry sits between Steam's 2px-rectangular and modern soft 8px-cards — confidently rounded but unmistakably structured.

## Components

### Buttons

**`button-cta`** — the universal Epic Blue (`#0078f2`) primary CTA. White uppercase Brutal Type 14/700/0.04em label, 4px radius, 14×28px padding, 48px height. Used for "GET", "BUY NOW", "ADD TO CART", "INSTALL". Hover brightens to `#1a8cf7`. Active deepens to `#0061c4`. The single most prominent CTA on Epic.

**`button-secondary`** — outline white CTA over dark: transparent fill, 1px white border, white text. Same shape as primary. Used for "WISHLIST", "SAVE FOR LATER", "ADD TO LIBRARY".

**`button-text-link`** — plain Epic-Blue text in `#0078f2`, no surface — the universal inline link style. Hover brightens to `#1a8cf7`.

**`button-fortnite`** — Fortnite battle-pass yellow `#ffce00` fill, black text. Used only on Fortnite-themed marketing pages and battle-pass takeovers.

### Cards

**`game-tile`** — 16:9 cover-art card with title/price/badge stacked beneath. `#202024` floor, 4px radius, no internal padding around the image (image fills to corners), 12px below for metadata. Hover: surface lifts to `#2a2a2e` and the blue glow `0 0 16px rgba(0,120,242,0.4)` fades in.

**`capsule-md`** — 256×144 standard tile in carousel rails.

**`capsule-lg`** — 512×288 large featured tile in "Discover" rail.

**`hero-banner`** — full-bleed 1920×1080 cover art with a `transparent → rgba(0,0,0,0.7)` vertical gradient at the bottom 30% for legibility of the overlaid title and Get button. The page's largest visual moment.

### Badges, Tags, Pills

**`free-game-banner`** — yellow-on-black "FREE NOW" banner with 2px `#ffce00` border, anchored top-left of a free-game capsule. The platform's most distinctive merchandising element after the discount tag.

**`discount-tag`** — Mega Sale teal-blue (`#26bbff`) rectangle with black text in 14/700, 2px radius, 4×8px padding. Anchored bottom-left of every discounted capsule. The contrast against pure-black canvas makes it pop without competing with the brand blue.

**`pill-filter`** + **`pill-filter-active`** — pill toggles for "Free", "On Sale", "Coming Soon" filters. Default `#202024` floor with white text; active flips to `#0078f2` Epic Blue.

**`badge-coming-soon`** — small "COMING SOON" tag in 11/700 uppercase 0.05em with white text on transparent — applied to capsule corner.

### Inputs / Forms

**`text-input`** — `#202024` fill, white text, 1px `#3a3a3e` hairline, 6px radius, 48px height, 12×16px padding. On focus, border thickens to 2px `#0078f2` and a 2px Epic-Blue ring fades in.

**`search-bar`** — top-bar search field. `#202024` fill, 4px radius, 40px height, magnifier icon at left in `#9ca0a4`. Expands width on focus.

### Navigation

**`primary-nav`** — top nav with semi-translucent `rgba(0,0,0,0.95)` floor and backdrop blur, 80px tall, sticky on scroll. Epic Games wordmark anchored left in white, "STORE · NEWS · DISTRIBUTE · SUPPORT" in Brutal Type 14/700 uppercase 0.04em. Account utilities + cart anchored right.

**`sub-nav`** — 56px tall sub-band on store pages: `#0a0a0a` floor, "Discover · Browse · News · Sales · Free Games" in Inter 13/500 with `#dadada` ink.

**`carousel-paddle`** — 48×48 round paddle with `rgba(0,0,0,0.7)` floor, fades in on hover-over rail.

### Modals & Toasts

**`modal`** — `#202024` floor, 8px radius, 1px `#3a3a3e` border, white ink. Centred over `rgba(0,0,0,0.85)` scrim. Close X anchored top-right.

**`toast`** — bottom-centre `#202024` floor with white text, 8px radius, 1px hairline, 16×24px padding.

### Decorative

**`fortnite-takeover-band`** — full-bleed `#ffce00` Fortnite-yellow band painted across the homepage during a battle-pass season. Black ink display, black-on-yellow CTAs. Reverts to default canvas after 12 weeks.

### Easing
- **Standard**: `cubic-bezier(0.4, 0, 0.2, 1)` — default for hover, focus
- **Emphasized**: `cubic-bezier(0.2, 0, 0, 1)` — modal entry, carousel slide

### Durations

| Bucket | Value | Use |
|--------|-------|-----|
| Fast | 150ms | Hover colour swap, button press deepen |
| Standard | 240ms | Tile lift + blue glow on hover |
| Slow | 360ms | Carousel slide, modal enter, hero parallax |

### Per-Component Recipes

- **Tile hover**: surface lifts `#202024` → `#2a2a2e` + blue glow `0 0 16px rgba(0,120,242,0.4)` over 240ms.
- **Carousel slide**: horizontal carousel slides 360ms emphasized; momentum on touch.
- **Button press**: bg deepens `#0078f2` → `#0061c4` over 150ms on `:active`.
- **Hero parallax**: hero banner parallax-scrolls at 0.5x scroll velocity — the title block stays anchored as the cover art slides slowly. Reduced-motion suppresses.
- **Free Game Friday banner**: yellow border subtle pulse (`#ffce00` outline expands 1.0 → 1.02 → 1.0 over 2s loop) — drives attention to the giveaway.
- **Modal enter**: scrim fades in 200ms, dialog translates `translateY(16px) → 0` + opacity 0 → 1 over 240ms emphasized.
- **Link hover**: text colour transitions `#0078f2` → `#1a8cf7` over 150ms.

### Page Transitions

Page-to-page navigation uses short `200ms` opacity crossfade — Epic adds slightly more theatricality than Steam's hard-cut.

### Reduced Motion

Respects `prefers-reduced-motion: reduce`. Tile lift + glow degrade to a colour-only hover. Hero parallax disables. Free-game banner pulse stops. Carousel slide degrades to opacity crossfade.

### Contrast Pairs

| Pair | Ratio | Level |
|------|-------|-------|
| #ffffff text on #000000 canvas | 21.0 | AAA maximum |
| #ffffff on #0078f2 CTA | 4.5 | AA at body sizes |
| #0078f2 link on #000000 | 4.5 | AA |
| #dadada soft on #000000 | 13.5 | AAA |
| #9ca0a4 muted on #000000 | 6.5 | AA |
| #ffce00 free-game on #000000 | 16.0 | AAA |
| #000000 on #26bbff Mega Sale tag | 11.0 | AAA |

The white-on-Epic-Blue CTA pair sits at exactly 4.5 — AA at body sizes. Epic compensates by using uppercase 14/700 button labels (above the AA threshold for "large text"). The `#ffce00` free-game banner against pure-black is an exceptional 16.0 contrast — designed for unmissable visibility.

### Focus Indicators

Focus ring is **2px solid `#0078f2`** with 2px outline-offset — Epic Blue ring around buttons, inputs, links. Inputs gain a thicker border on `:focus-visible`.

### ARIA Patterns

- **Search bar**: `role="search"`, input `aria-label="Search Epic Games Store"`
- **Game tile**: entire tile wrapped in `<a>` with verbose `aria-label` — "Cyberpunk 2077, $39.99, 50 percent off, RPG, free until Thursday"
- **Wishlist button**: `aria-pressed` + label "Add to wishlist" / "Remove from wishlist"
- **Free-game banner**: `aria-label="Free now until Thursday — claim before October 12"`
- **Carousel paddle**: `aria-label="Previous featured game"` / "Next featured game"
- **Hero banner**: `role="region"` `aria-label="Featured: [Game name]"`

### Keyboard Navigation

- Tab traverses: top nav → search → main hero CTA → carousels → footer
- Inside carousel rail: arrow keys cycle horizontally
- Esc closes modals
- Wishlist shortcut: `w` (when game-detail page is focused)

### Screen Reader Hints

Verbose `aria-label` on icon-only buttons. Discount tag includes the actual delta ("50 percent off, $39.99 down from $79.99"). Free-game banner clearly states the deadline.

### Reduced Motion

Tile lift + glow degrade to colour-only. Hero parallax disabled. Free-game banner pulse stops. Carousel slide → opacity crossfade.

### Tone

Bold, cinematic, gaming-magazine. Epic's voice is "the platform that gives you free games every Thursday and the season everyone is talking about." Headlines lead with confidence ("Free Now", "Mega Sale", "Coming Soon") rather than discovery. Section heads run uppercase Brutal Type — they read as posters, not anchors.

### Microcopy Patterns

- **Button verbs**: "GET", "BUY NOW", "WISHLIST", "PLAY", "INSTALL", "ADD TO LIBRARY" — outcome-named, uppercase
- **Error message recipe**: confident + actionable — "We couldn't process this purchase. Try a different payment method or contact support."
- **Success confirmations**: celebratory — "It's yours! [Game name] is now in your library."
- **Field labels**: short — "Email", "Password", "Display name"
- **Stock urgency**: "Free until Thursday at 11:00 AM ET" — names the deadline

### Empty States

Empty wishlist: "Your wishlist is empty. Browse the store and tap the heart on any game to save it for later."

Empty library: "Your library is empty. Get started with a free game or browse the store."

Empty search: "No results for [query]. Try a different keyword or browse by genre."

### CTA Verb Conventions

- Primary: **"GET"** (the brand's signature for free / claim), **"BUY NOW"**, **"ADD TO CART"**, **"INSTALL"**, **"PLAY"**
- Save: **"WISHLIST"** — the universal save verb
- Tertiary: **"SEE MORE"**, **"VIEW DETAILS"**, **"WATCH TRAILER"**
- Avoided: "Submit", "Click here", "Sign up free" (Epic prefers outcome verbs)

**Dark-only on the storefront.** Epic Games Store is dark-only — no light variant. The pure-black canvas is the brand position; inverting to white would destroy the cinematic poster aesthetic. The Unreal Engine marketing site (unrealengine.com) does have a light-mode counterpart for documentation surfaces, but the games storefront remains dark.

The deepest surface is `#000000` (canvas itself); the lightest active surface is `#3a3a3e` (selected sidebar). The whole storefront lives within ~25% lightness range.

Epic's visual lineage runs through three traditions: **PC-game-magazine cover design** (PC Gamer covers from the 90s and 2000s — bold display type, full-bleed cinematic photography, single dominant CTA); **Fortnite's saturated youth-gaming aesthetic** (the 2017 Fortnite Battle Royale launch established Epic's loud-yellow/blue chromatic voice that spilled into the storefront); and **streaming-platform editorial layout** (Netflix-style row-of-tiles + hero combo translated into game merchandising).

The current Epic Games Store launched in 2018, deliberately positioned against Steam's engineering-room aesthetic. Where Steam optimised for catalogue density (940px column, 184×69 capsules, lime discount tags), Epic optimised for poster-style merchandising (1408px column, 256×144 tiles, full-bleed 1920×1080 heroes, Mega Sale teal-blue tags). The Free Game Friday programme — anchored by the yellow "FREE NOW" banner — is the platform's user-acquisition signature.

What Epic rejects: muted typography, narrow content columns, dense capsule grids, multi-tier review summaries (Epic shows star ratings only, no "Overwhelmingly Positive" tier), serif typography, and any chrome that competes with the cinematic hero. The brand position: **gaming as Hollywood, not gaming as engineering**.

**Influences:**
- PC Gamer / GameInformer / Edge magazine covers — bold display, cinematic photography
- Fortnite (Epic's own franchise) — saturated yellow/blue chromatic palette
- Netflix homepage — hero + row-of-tiles editorial pattern
- Brutal Type / Heading Now — Epic's commissioned display sans
- Apple TV+ / Disney+ — cinematic hero treatment, full-bleed photography
- Battle.net — competing PC storefront with similar bold-display merchandising

## Do's and Don'ts

**Do**
- Anchor the page on pure-black `#000000` — Epic's signature single canvas
- Use Epic Blue (`#0078f2`) for every primary CTA, every link, every focused border
- Render display headlines in Brutal Type at 64–80px / 800 with -0.02 to -0.04em negative tracking
- Run CTAs in uppercase Brutal Type 14/700 with 0.04em tracking — "GET", "WISHLIST", "BUY NOW"
- Use 4px-radius rectangles for tiles, capsules, buttons — the dominant geometry
- Render game tiles with 16:9 cover art filling to corners, metadata stacked beneath
- Use Mega Sale teal-blue (`#26bbff`) discount tag with black text — Epic's distinct sale voltage
- Anchor a yellow-on-black "FREE NOW" banner on free-game capsules — the platform's retention signature
- Use full-bleed 1920×1080 hero banners with gradient mask `transparent → rgba(0,0,0,0.7)` at the bottom
- Leave 96–160px between hero and first rail — Epic gives cinematic breath
- Apply blue glow `0 0 16px rgba(0,120,242,0.4)` on hovered tiles

**Don't**
- Don't introduce a light-mode storefront variant — the pure-black canvas is the brand
- Don't use sentence-case CTAs — Epic CTAs are always uppercase
- Don't soften hero negative tracking — display copy needs -0.02em or more to read as Epic
- Don't pair Brutal Type with serifs — the brand is geometric-sans throughout
- Don't compete the discount tag colour with Epic Blue — teal-blue `#26bbff` keeps merchandising distinct
- Don't run tile gutters tighter than 16px — Epic isn't a density storefront
- Don't introduce dense data-table layouts — Epic doesn't merchandise like Steam
- Don't make Free Game Friday subtle — the yellow border is meant to be unmissable
- Don't replace Brutal Type with a humanist sans — geometric is the brand
- Don't pluralise "wishlist" — "Wishlist" is the singular noun
- Don't use red/orange/green for primary CTAs — Epic Blue is the only commerce voltage

### Quick Color Reference

```
Canvas:           #000000
Card:             #202024
Card Hover:       #2a2a2e
Epic Blue:        #0078f2
Brand Hover:      #1a8cf7
Brand Active:     #0061c4
Free Game Yellow: #ffce00
Mega Sale Tag:    #26bbff
Text:             #ffffff
Text Soft:        #dadada
Text Muted:       #9ca0a4
Border:           #3a3a3e
Blue Glow:        rgba(0,120,242,0.4)
```

### Example Component Prompts

- "Create an Epic Games primary CTA: 4px-radius button with Epic Blue `#0078f2` fill, white uppercase Brutal Type 14/700/0.04em label 'GET', 14×28px padding, 48px height. Hover brightens to `#1a8cf7`. Active deepens to `#0061c4`."
- "Build an Epic game tile: 256×144 cover-art card with `#202024` floor, 4px radius, no internal padding around image. Below the image: title in Brutal Type 16/600 white, price row with discount tag `#26bbff` 'Mega Sale -50%' if applicable, and a small badge 'COMING SOON' or 'NEW' in 11/700 uppercase. On hover: surface lifts to `#2a2a2e` and blue glow `0 0 16px rgba(0,120,242,0.4)` fades in."
- "Design an Epic top nav: sticky 80px tall with semi-translucent `rgba(0,0,0,0.95)` floor + backdrop blur. Epic Games wordmark anchored left in white. Nav items 'STORE · NEWS · DISTRIBUTE · SUPPORT' in Brutal Type 14/700 uppercase 0.04em. Account avatar + cart icon flush right. Below: 56px sub-nav with `#0a0a0a` floor and 'Discover · Browse · News · Sales · Free Games' in Inter 13/500."
- "Build an Epic Free Game Friday banner: 2px `#ffce00` border on `#000000` floor, 4px radius, 8×16px padding. Text 'FREE NOW' in Inter 11/700 uppercase 0.05em yellow `#ffce00`. Optional countdown text 'Until Thursday 11AM ET' in white. Banner pulses subtle scale 1.0 → 1.02 every 2s loop."
- "Create an Epic hero banner: full-bleed 1920×1080 game cover art with gradient mask `linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%)` at the bottom 30% for legibility. Title block overlaid bottom-left in Brutal Type 80/800/-0.04em white. Below the title: Epic Blue 'GET' CTA pill + outline white 'WISHLIST' pill. The hero parallax-scrolls at 0.5x scroll velocity behind the title block."
- "Design an Epic Mega Sale discount tag: `#26bbff` teal-blue rectangle with black text in Inter 14/700 '-50%', 2px radius, 4×8px padding. Anchored bottom-left of any discounted capsule."

### Iteration Guide

1. **Start with pure black.** If your canvas isn't `#000000`, it isn't Epic. Lock the canvas first.
2. **Epic Blue is the only blue.** `#0078f2` for every link, every CTA, every focused border.
3. **CTAs are uppercase Brutal Type.** "GET", "WISHLIST", "BUY NOW" — sentence-case is wrong.
4. **Display goes huge with negative tracking.** Hero copy at 64–80px / 800 / -0.02 to -0.04em.
5. **Free Game Friday is unmissable.** Yellow `#ffce00` border on black with 11/700 uppercase 'FREE NOW' label.
6. **Mega Sale tag is teal-blue.** `#26bbff` with black text — don't compete with Epic Blue.
7. **Tiles are 16:9 with 4px radius.** No 3:4 portrait, no 1:1 square — 16:9 is canonical.
8. **Cinematic breath.** 96–160px between hero and the first rail. If your page feels dense, you're doing Steam.
