---
name: ce-deck-design
description: Create and format Google Slides presentations using the Curious Endeavor editorial design system. Use when asked to create a deck, pitch deck, presentation, or slides — for CE or any client. GATE — before starting any deck work, ask the user "Is this a CE deck? We have a design system for that." If yes, follow this skill. If no, fall back to slide-layout. Triggers on "make a deck", "create a presentation", "build slides", "pitch deck", "new deck", "format slides".
---

# CE Deck Design System

## ⛔ MANDATORY GATE
Before ANY deck/slide/presentation work:
1. Ask: **"Is this a CE deck? We have a design system for that — can you confirm?"**
2. If YES → follow this skill exactly. No deviation.
3. If NO → use `slide-layout/SKILL.md` instead.

## Design Philosophy
- **Editorial restraint.** More white space than content on every slide.
- **One accent color.** Red only. Never competing with another hue.
- **Three fonts, strict roles.** Serif for character, mono for structure, sans for readability.
- **No borders, no gradients, no drop shadows, no decorative elements.**
- **Content sits on white (or on a scrim over images). Period.**

## Color Palette

| Token | RGB | Hex | Use |
|-------|-----|-----|-----|
| `RED` | `(0.80, 0, 0)` | `#CC0000` | Section labels, names, accent headlines, numbers |
| `DARK` | `(0.10, 0.10, 0.10)` | `#1A1A1A` | Primary headlines |
| `GRAY` | `(0.40, 0.40, 0.40)` | `#666666` | Body text, descriptions |
| `LIGHT_GRAY` | `(0.60, 0.60, 0.60)` | `#999999` | Captions, footnotes, source lines |
| `WHITE` | `(1, 1, 1)` | `#FFFFFF` | Backgrounds, text on dark |
| `BLACK` | `(0, 0, 0)` | `#000000` | Shape fills, scrim base |
| `LINE_GRAY` | `(0.93, 0.93, 0.93)` | `#EDEDED` | Horizontal rules only |

**No other colors.** Ever.

## Typography

| Role | Font | Size | Weight | Color | Example |
|------|------|------|--------|-------|---------|
| Section label | JetBrains Mono | 10pt | Bold | RED | `THE PREMISE` |
| Headline | Playfair Display | 24pt | Regular | DARK | `Anyone can wear the mask.` |
| Cover headline | Playfair Display | 32–40pt | Regular | RED or WHITE | `Into the Spider-Verse` |
| Body | DM Sans | 12pt | Regular | GRAY | Paragraph text |
| Name | Playfair Display | 12pt | Bold | RED | `Assaf Dagan` |
| Role/subtitle | DM Sans | 10pt | Regular | RED | `Strategy & Creative` |
| Number | JetBrains Mono | 10pt | Regular | RED | `01` |
| Caption/source | DM Sans | 10pt | Regular | LIGHT_GRAY | `Source: Box Office Mojo` |
| URL/tagline | DM Sans | 10pt | Regular | RED | `www.curiousendeavor.com` |

## Page Constants (EMU)

```
PAGE_W    = 9,144,000    (10 inches)
PAGE_H    = 5,143,500    (5.63 inches)
MARGIN    = 457,200      (0.5 inches)
LABEL_X   = 457,245
LABEL_Y   = 302,064
HEAD_X    = 457,250
HEAD_Y    = 579,136
RULE_Y    = 1,150,000    (horizontal rule under headline)
CONTENT_Y = 1,300,000    (content zone starts here)
FOOTER_Y  = 4,200,000    (footnotes, sources)
```

## Header Pattern (every content slide)
Every content slide (not covers or full-bleed dividers) uses this exact header:

```
┌─────────────────────────────────────────────────────┐
│ THE SECTION LABEL    (JetBrains Mono 10pt bold RED) │  y=302,064
│                                                     │
│ Headline in Playfair  (24pt regular DARK)           │  y=579,136
│─────────────────────────────────────────────────────│  y=1,150,000 (LINE_GRAY rule)
│                                                     │
│ [content zone]                                      │  y=1,300,000+
│                                                     │
│ Source / footnote     (DM Sans 10pt LIGHT_GRAY)     │  y=4,200,000+
└─────────────────────────────────────────────────────┘
```

- Section label: ALL CAPS, always.
- Headline: sentence case, one line preferred, two max.
- Horizontal rule: full width (`MARGIN` to `PAGE_W - MARGIN`), weight 9525 EMU, color `LINE_GRAY`.

## Slide Types

### 1. Cover
```
┌─────────────────────────────────────────┐
│ LABEL (Mono 10pt RED)       y=302,064   │
│                                         │
│                                         │
│ Title (Playfair 32-40pt RED)  y≈1,600k  │
│                                         │
│ Subtitle (DM Sans 14pt GRAY)  y≈2,600k │
│                                         │
│ URL/tagline (DM Sans 10pt RED) y≈4,343k │
└─────────────────────────────────────────┘
```
- White background OR full-bleed image with scrim (see Image Treatments).
- Title in RED on white, or WHITE on scrim.
- Max 2 text elements below title.

### 2. Three-Column
```
┌─────────────────────────────────────────┐
│ LABEL + Headline + Rule                 │
├─────────────┬─────────────┬─────────────┤
│ 01          │ 02          │ 03          │
│ Title       │ Title       │ Title       │
│ Description │ Description │ Description │
└─────────────┴─────────────┴─────────────┘
```
- Column width: 2,610,000 EMU each
- Column gap: 142,500 EMU
- `col_x = MARGIN + (index × (2,610,000 + 142,500))`
- Numbers: JetBrains Mono 10pt RED
- Titles: Playfair 15–20pt RED
- Descriptions: DM Sans 12pt GRAY

### 3. Team/People Grid
```
┌─────────────────────────────────────────┐
│ LABEL + Headline + Rule                 │
├────────────┬────────────┬───────────────┤
│ [photo]    │ [photo]    │ [photo]       │
│ Name       │ Name       │ Name          │
│ Role       │ Role       │ Role          │
│ Bio        │ Bio        │ Bio           │
└────────────┴────────────┴───────────────┘
```
- 2-across or 3-across depending on count (2×2 for 4 people, 3-across for 3).
- Photo: square or circle, placed above name.
- Name: Playfair 12pt bold RED.
- Role: DM Sans 10pt RED.
- Bio: DM Sans 10pt GRAY.

### 4. Section Divider (Breathing Room)
- Header pattern only (label + headline). No body content.
- OR: full-bleed image with scrim + label + large headline (32–40pt WHITE).

### 5. Text-Left / Image-Right
```
┌────────────────────┬────────────────────┐
│ LABEL              │                    │
│ Headline           │                    │
│                    │     IMAGE          │
│ Body text          │   (flush right,    │
│ (left 45%)         │    full height)    │
│                    │                    │
└────────────────────┴────────────────────┘
```
- Text zone: max width 3,900,000 EMU (≈43%).
- Image: `x = PAGE_W - image_width`, `y = 0`, `height = PAGE_H`.
- Portrait images: width ≈ 3,429,000 EMU (≈37.5%).
- Landscape images: width ≈ 4,400,000 EMU (≈48%).

### 6. Closing/Quote
- Centered text (Playfair 24–28pt RED or WHITE).
- Attribution below (DM Sans 12pt DARK + GRAY).
- White background OR full-bleed image with heavy scrim (70%).

## Image Treatments

### Full-Bleed
1. `createImage` at `(0, 0)` covering `PAGE_W × PAGE_H`.
2. Black rectangle scrim on top, same dimensions.
3. Scrim opacity: 50% for section dividers, 55% for covers, 70% for quote slides.
4. All text uses WHITE (except section label stays RED).
5. Text boxes: set background to `BLACK, alpha=0` (transparent).

### Image-Right
1. Image positioned flush right: `x = PAGE_W - image_width`.
2. Image height = `PAGE_H` (full slide height), `y = 0`.
3. All text constrained to left zone (max width 3,900,000 EMU).
4. No overlap. No text on top of the image.

### Images in Columns
1. Landscape image above each column's text content.
2. Image width = column width (2,610,000 EMU).
3. Image placed between rule (y=1,150,000) and number (y≈2,850,000).
4. Maintains column alignment — image left edge = column left edge.

## Construction Rules (Non-Negotiable)

1. **All slides use BLANK layout.** Never use predefined layouts.
2. **All text boxes get explicit background.** White on white slides, transparent on scrims.
3. **All text boxes get outline disabled** (`propertyState: NOT_RENDERED`).
4. **Section labels are ALWAYS all-caps.**
5. **Maximum 40–60 words per content slide.** If you need more, split into two slides.
6. **Maximum 3 columns.** Never 4+.
7. **Font sizes are exact.** Don't round, don't approximate.
8. **Colors are exact.** Use the RGB values from the palette table.
9. **Horizontal rules** use `createLine` with `STRAIGHT` category, weight 9525 EMU.
10. **Images must not overlap text.** If text-left/image-right, text stays in its zone.

## Implementation

Use `gws-auth slides presentations batchUpdate` with `--params` and `--json`.
For the full API helper functions and a working build script, see `references/api-helpers.md`.

## Deck Structure Guidelines

A typical CE deck follows this narrative arc:
1. **Cover** — title + one-line thesis
2. **Problem/Gap** — what's broken or missing
3. **Opportunity** — what becomes possible
4. **Team/System** — who builds/runs it
5. **Deliverables** — what the client gets (use three-column or images-in-columns)
6. **Business Case** — why it matters (three-column with numbers)
7. **Closing** — quote, CTA, or contact

Not every deck needs all types. But every deck needs the header pattern and the type system.
