@opendirectory.dev/skills 0.1.56 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,333 @@
1
+ # Page Library — graphic-case-study
2
+
3
+ 7 page section types for A4 portrait case studies. Each section is a content block placed within a `<section class="slide">`. Multiple sections can stack vertically within a single page.
4
+
5
+ All dimensions assume: viewport 1200px wide × 1697px tall (A4 portrait).
6
+
7
+ ---
8
+
9
+ ## 1. cover
10
+
11
+ **Purpose:** Opening page -- customer name, headline result, logos
12
+ **Density:** Very open
13
+ **Content limits:** Headline 12 words max (leads with number), customer name, optional category label, logo placeholders
14
+
15
+ **HTML structure:**
16
+ ```html
17
+ <section class="slide page--cover">
18
+ <div class="page-inner">
19
+ <div class="cover-top">
20
+ <span class="cover-label reveal">Customer Success Story</span>
21
+ </div>
22
+ <div class="cover-body">
23
+ <h1 class="cover-headline reveal">[Headline result — leads with number]</h1>
24
+ <p class="cover-company reveal">[Customer name]</p>
25
+ </div>
26
+ <div class="cover-bottom">
27
+ <div class="logo-group reveal">
28
+ <div class="logo-box logo-customer">[CSS initials or img]</div>
29
+ <span class="logo-sep">×</span>
30
+ <div class="logo-box logo-vendor">[CSS initials or img]</div>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </section>
35
+ ```
36
+
37
+ **CSS approach:**
38
+ - `.page-inner`: `display: flex; flex-direction: column; justify-content: space-between; height: 100%; padding: var(--page-padding);`
39
+ - `.cover-headline`: `font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -0.03em; line-height: 1.1; max-width: 20ch;`
40
+ - `.cover-label`: uppercase, caption size, accent color or muted
41
+ - `.logo-box`: `width: clamp(48px, 6vw, 80px); height: clamp(48px, 6vw, 80px); display: flex; align-items: center; justify-content: center;` -- use CSS-generated initials when no logo URL provided
42
+
43
+ **Background:** Style preset's primary (often the most distinctive background of the preset -- dark, full-color, or richly styled). This is the first impression.
44
+
45
+ **Do NOT:** Put challenge/solution text here. Cover = one idea only.
46
+
47
+ ---
48
+
49
+ ## 2. overview
50
+
51
+ **Purpose:** At-a-glance customer profile
52
+ **Density:** Moderate
53
+ **Content limits:** 4 fact cells max (label + value each). No paragraph text.
54
+
55
+ **HTML structure:**
56
+ ```html
57
+ <div class="section--overview reveal">
58
+ <h2 class="section-label">At a Glance</h2>
59
+ <div class="overview-grid">
60
+ <div class="fact-cell">
61
+ <span class="fact-label">Industry</span>
62
+ <span class="fact-value">B2B SaaS</span>
63
+ </div>
64
+ <div class="fact-cell">
65
+ <span class="fact-label">Company size</span>
66
+ <span class="fact-value">200-500 employees</span>
67
+ </div>
68
+ <div class="fact-cell">
69
+ <span class="fact-label">Location</span>
70
+ <span class="fact-value">San Francisco, CA</span>
71
+ </div>
72
+ <div class="fact-cell">
73
+ <span class="fact-label">Use case</span>
74
+ <span class="fact-value">Revenue operations</span>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ ```
79
+
80
+ **CSS approach:**
81
+ - `.overview-grid`: `display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(0.75rem, 2%, 1.5rem);`
82
+ - `.fact-cell`: preset card background + border, `border-radius: var(--card-radius); padding: clamp(0.75rem, 1.5%, 1.25rem);`
83
+ - `.fact-label`: caption size, muted color, uppercase, 0.1em tracking
84
+ - `.fact-value`: body size, primary text color, font-weight: 600
85
+
86
+ ---
87
+
88
+ ## 3. challenge
89
+
90
+ **Purpose:** The customer's problem before your product
91
+ **Density:** Moderate
92
+ **Content limits:** Context paragraph (2-3 sentences) + 3 pain points (1 sentence each)
93
+
94
+ **HTML structure:**
95
+ ```html
96
+ <div class="section--challenge">
97
+ <h2 class="section-heading reveal">The Challenge</h2>
98
+ <div class="challenge-body">
99
+ <p class="challenge-context reveal">[Context paragraph]</p>
100
+ <ul class="pain-list">
101
+ <li class="pain-item reveal">[Pain point 1]</li>
102
+ <li class="pain-item reveal">[Pain point 2]</li>
103
+ <li class="pain-item reveal">[Pain point 3]</li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ ```
108
+
109
+ **CSS approach:**
110
+ - Two-column layout at full page: `display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4%, 3rem);` OR single-column if stacking with other sections
111
+ - `.pain-list`: no browser bullets -- use `list-style: none; display: flex; flex-direction: column; gap: clamp(0.5rem, 1%, 1rem);`
112
+ - `.pain-item::before`: `content: "—"; color: var(--accent); margin-right: 0.75em;`
113
+ - `.section-heading`: `clamp(1.25rem, 2.5vw, 2rem)` weight 700
114
+
115
+ **Signature element for warm-earth style:** Drop cap on opening paragraph:
116
+ ```css
117
+ .challenge-context::first-letter {
118
+ font-family: var(--font-display);
119
+ font-size: clamp(3rem, 7vw, 5rem);
120
+ float: left;
121
+ margin: 0.05em 0.12em 0 0;
122
+ color: var(--accent);
123
+ line-height: 0.8;
124
+ }
125
+ ```
126
+
127
+ ---
128
+
129
+ ## 4. solution
130
+
131
+ **Purpose:** How your product addressed the challenge
132
+ **Density:** Moderate
133
+ **Content limits:** 2-3 feature callouts (name 3 words max + 1-sentence description each)
134
+
135
+ **HTML structure:**
136
+ ```html
137
+ <div class="section--solution">
138
+ <h2 class="section-heading reveal">The Solution</h2>
139
+ <div class="feature-grid">
140
+ <div class="feature-card reveal">
141
+ <div class="feature-icon">[CSS shape]</div>
142
+ <div class="feature-name">Feature Name</div>
143
+ <p class="feature-desc">One sentence describing the outcome this feature delivers.</p>
144
+ </div>
145
+ <!-- repeat for 2-3 features -->
146
+ </div>
147
+ </div>
148
+ ```
149
+
150
+ **CSS approach:**
151
+ - `.feature-grid`: `display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: clamp(0.75rem, 2%, 1.5rem);`
152
+ - `.feature-card`: preset card background + border + border-radius, `padding: clamp(1rem, 2%, 1.75rem);`
153
+ - `.feature-icon`: CSS-generated shape (circle, square, hexagon outline) using `::before` or inline shape elements, 32–48px, accent color or accent-light fill
154
+ - `.feature-name`: `font-size: clamp(0.875rem, 1.25vw, 1rem); font-weight: 700; margin-bottom: 0.5em;`
155
+ - `.feature-desc`: body size, secondary color
156
+
157
+ **CSS icon patterns (no images needed):**
158
+ ```css
159
+ /* Circle icon */
160
+ .feature-icon {
161
+ width: clamp(32px, 3vw, 48px);
162
+ height: clamp(32px, 3vw, 48px);
163
+ border-radius: 50%;
164
+ background: rgba(var(--accent-rgb), 0.12);
165
+ border: 2px solid var(--accent);
166
+ margin-bottom: 1rem;
167
+ }
168
+ /* Or: filled square with rounded corner */
169
+ .feature-icon {
170
+ width: clamp(32px, 3vw, 48px);
171
+ height: clamp(32px, 3vw, 48px);
172
+ background: var(--accent);
173
+ border-radius: 6px;
174
+ margin-bottom: 1rem;
175
+ }
176
+ ```
177
+
178
+ ---
179
+
180
+ ## 5. results
181
+
182
+ **Purpose:** Measurable impact -- the most important section
183
+ **Density:** Open (numbers need space)
184
+ **Content limits:** 3 metrics (number + label + 1-line context each). Optional 2-sentence narrative.
185
+
186
+ **HTML structure:**
187
+ ```html
188
+ <div class="section--results">
189
+ <h2 class="section-heading reveal">The Results</h2>
190
+ <div class="stat-row">
191
+ <div class="stat-item stat-item--hero reveal" style="--i:0">
192
+ <div class="stat-number" data-count="80" data-suffix="%">0%</div>
193
+ <div class="stat-label">Time saved on reporting</div>
194
+ <div class="stat-context">Down from 20 hours per week</div>
195
+ </div>
196
+ <div class="stat-item reveal" style="--i:1">
197
+ <div class="stat-number" data-count="95" data-suffix="%">0%</div>
198
+ <div class="stat-label">Reduction in errors</div>
199
+ <div class="stat-context">Across all report types</div>
200
+ </div>
201
+ <div class="stat-item reveal" style="--i:2">
202
+ <div class="stat-number" data-prefix="$" data-count="200" data-suffix="K">$0K</div>
203
+ <div class="stat-label">Annual cost savings</div>
204
+ <div class="stat-context">Labor and tooling combined</div>
205
+ </div>
206
+ </div>
207
+ <!-- optional -->
208
+ <p class="results-narrative reveal">[2-sentence narrative]</p>
209
+ </div>
210
+ ```
211
+
212
+ **CSS approach:**
213
+ - `.stat-row`: `display: flex; gap: clamp(1.5rem, 4%, 3rem); align-items: flex-start;` (horizontal, 3 stats)
214
+ - `.stat-item`: `flex: 1; display: flex; flex-direction: column; gap: 0.5rem;`
215
+ - `.stat-number`: `font-family: var(--font-display); font-size: clamp(2.5rem, 7vw, 5rem); font-weight: 400; letter-spacing: -0.04em; line-height: 0.9; color: var(--text-secondary);`
216
+ - `.stat-item--hero .stat-number`: same but `color: var(--accent);` and `font-size: clamp(3rem, 8vw, 5.5rem);`
217
+ - `.stat-label`: `font-size: clamp(0.7rem, 1vw, 0.875rem); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-secondary);`
218
+ - `.stat-context`: `font-size: clamp(0.65rem, 0.9vw, 0.8rem); color: var(--text-muted);`
219
+
220
+ **Stagger animation:**
221
+ ```css
222
+ .stat-item {
223
+ opacity: 0;
224
+ transform: translateY(20px);
225
+ transition: opacity 0.6s ease, transform 0.6s ease;
226
+ transition-delay: calc(var(--i) * 0.15s);
227
+ }
228
+ .slide.visible .stat-item { opacity: 1; transform: none; }
229
+ ```
230
+
231
+ **ZERO body copy competing with the numbers.** The optional narrative goes BELOW the stat row in smaller body text, clearly subordinate.
232
+
233
+ ---
234
+
235
+ ## 6. testimonial
236
+
237
+ **Purpose:** Customer voice -- builds trust
238
+ **Density:** Very open
239
+ **Content limits:** Quote 40 words max + name + title + company
240
+
241
+ **HTML structure:**
242
+ ```html
243
+ <div class="section--testimonial">
244
+ <blockquote class="testimonial-quote reveal">
245
+ <div class="quote-mark">"</div>
246
+ <p class="quote-text">[Customer quote, 40 words max]</p>
247
+ <footer class="quote-attribution">
248
+ <span class="attribution-name">[Name]</span>
249
+ <span class="attribution-role">[Title], [Company]</span>
250
+ </footer>
251
+ </blockquote>
252
+ </div>
253
+ ```
254
+
255
+ **CSS approach:**
256
+ - `.section--testimonial`: `display: flex; align-items: center; justify-content: center; padding: clamp(2rem, 5%, 4rem);`
257
+ - `.quote-mark`: `position: absolute; font-family: var(--font-display); font-size: clamp(4rem, 12vw, 8rem); opacity: 0.08; top: -0.2em; left: -0.1em; color: var(--accent); line-height: 1; pointer-events: none; user-select: none;`
258
+ - `.quote-text`: `font-family: var(--font-display); font-style: italic; font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.5; color: var(--text-primary);`
259
+ - `.attribution-name`: `font-weight: 700; font-size: var(--label-size);`
260
+ - `.attribution-role`: `color: var(--text-muted); font-size: var(--label-size);`
261
+ - Testimonial section background: subtle accent tint (accent at 4-6% opacity) or preset's alt section bg
262
+
263
+ **Do NOT:** Add bullet points, headings, or any other content inside a testimonial section.
264
+
265
+ ---
266
+
267
+ ## 7. closing-cta
268
+
269
+ **Purpose:** Clear next step -- drives action
270
+ **Density:** Open
271
+ **Content limits:** Headline 5 words max + CTA action text 3 words + email + URL (both required)
272
+
273
+ **HTML structure:**
274
+ ```html
275
+ <div class="section--cta">
276
+ <div class="cta-inner reveal">
277
+ <div class="cta-logo">[Vendor logo or CSS initials]</div>
278
+ <h2 class="cta-headline">[Headline -- 5 words max]</h2>
279
+ <p class="cta-sub">[Optional 1-sentence context]</p>
280
+ <div class="cta-contacts">
281
+ <a href="mailto:[email]" class="cta-email">[email]</a>
282
+ <a href="[url]" class="cta-url">[url]</a>
283
+ </div>
284
+ </div>
285
+ </div>
286
+ ```
287
+
288
+ **CSS approach:**
289
+ - `.section--cta`: preset's darkest or most distinctive background -- this is the closing statement
290
+ - `.cta-headline`: `font-family: var(--font-display); font-size: clamp(1.5rem, 4vw, 3rem); font-weight: var(--display-weight); color: var(--cta-text); letter-spacing: -0.02em;`
291
+ - `.cta-email`: `font-size: clamp(0.9rem, 1.5vw, 1.25rem); font-weight: 600;`
292
+ - `.cta-url`: `font-size: clamp(0.8rem, 1.2vw, 1rem); opacity: 0.7;`
293
+ - No bullet lists, no feature lists, no repetition of stats.
294
+
295
+ **One action only.** Email + URL -- both mandatory (fails QA if either missing).
296
+
297
+ ---
298
+
299
+ ## Standard Page Assemblies
300
+
301
+ ### 1-pager (1 page)
302
+ ```
303
+ <section class="slide page--cover-compact">
304
+ [cover section -- condensed version]
305
+ [challenge-inline -- 2 bullet lines max]
306
+ [solution-inline -- 1 sentence + 3 micro stats]
307
+ [results-inline -- 3 stats in smaller size]
308
+ [cta-inline -- email + url at bottom]
309
+ </section>
310
+ ```
311
+ 1-pager is a summary card. Every section is abbreviated. Nothing is full-depth.
312
+
313
+ ### 2-pager (2 pages)
314
+ ```
315
+ Page 1: <section class="slide">
316
+ [cover]
317
+ [challenge-solution stacked]
318
+ </section>
319
+
320
+ Page 2: <section class="slide">
321
+ [results]
322
+ [testimonial -- if available]
323
+ [closing-cta]
324
+ </section>
325
+ ```
326
+
327
+ ### 4-pager (4 pages)
328
+ ```
329
+ Page 1: <section class="slide">[cover]</section>
330
+ Page 2: <section class="slide">[overview] + [challenge]</section>
331
+ Page 3: <section class="slide">[solution] + [results]</section>
332
+ Page 4: <section class="slide">[testimonial] + [closing-cta]</section>
333
+ ```
@@ -0,0 +1,346 @@
1
+ # Style Presets — graphic-case-study
2
+
3
+ 9 business-oriented style presets. Each is fully self-contained -- complete CSS token set, no "derive from" chains.
4
+
5
+ Choose based on the vendor's brand and audience. When in doubt: clean-slate for enterprise B2B, midnight-editorial for tech/AI companies, warm-earth for agencies and services.
6
+
7
+ ---
8
+
9
+ ## 1. clean-slate
10
+
11
+ **Best for:** Enterprise B2B, sales teams, customer-facing materials, any audience that expects professionalism
12
+ **Feeling:** Trustworthy, clear, confident, enterprise-safe
13
+
14
+ ```
15
+ Background: #FFFFFF outer / #FFFFFF page / #F8F8F8 alt sections / #F4F4F4 footer
16
+ Text primary: #111111
17
+ Text secondary: #555555
18
+ Text muted: #999999
19
+ Accent: #0F172A (near-black navy)
20
+ Accent light: #E0F2FE (light blue for pill/badge backgrounds)
21
+ Accent text: #FFFFFF
22
+ Divider: #E8E8E8
23
+ Card border: #E0E0E0
24
+ Card radius: 16px
25
+ Card shadow: 0 2px 8px rgba(0, 0, 0, 0.06)
26
+
27
+ Display font: 'Plus Jakarta Sans', Arial, Helvetica, sans-serif
28
+ Body font: 'Plus Jakarta Sans', Arial, Helvetica, sans-serif
29
+ Google Fonts: https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;800&display=swap
30
+
31
+ Display weight: 800
32
+ Body weight: 400 / 500
33
+ ```
34
+
35
+ **Signature elements:**
36
+ - Rounded card containers (`border-radius: 16px`) on all fact cells, feature cards, stat containers
37
+ - Badge pills for category labels (`border-radius: 100px; background: #E0F2FE; color: #0F172A; padding: 0.2em 0.8em`)
38
+ - Generous whitespace -- push toward maximum clamp values
39
+ - Hero stat in dark `#0F172A` (high contrast, authoritative -- no color distraction)
40
+ - Cover background: `#0F172A` full dark (inversion for premium feel)
41
+ - Closing CTA: `#0F172A` full bg with white headline and white CTA
42
+
43
+ ---
44
+
45
+ ## 2. midnight-editorial
46
+
47
+ **Best for:** Tech, AI, developer-focused companies, premium B2B, thought leadership
48
+ **Feeling:** Editorial authority, premium, considered
49
+
50
+ ```
51
+ Background: #0A0A0A outer / #111111 page / #1A1A1A elevated cards / #080808 footer
52
+ Text primary: #F2F2F2
53
+ Text secondary: #AAAAAA
54
+ Text muted: #555555
55
+ Accent: #D8F90A (yellow-green)
56
+ Accent text: #0A0A0A (dark text on accent)
57
+ Divider: #2A2A2A
58
+ Card border: #222222
59
+
60
+ Display font: 'Instrument Serif', Georgia, 'Times New Roman', serif
61
+ Body font: Inter, Arial, Helvetica, sans-serif
62
+ Google Fonts: https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@400;500;600;700&display=swap
63
+
64
+ Display weight: 400
65
+ Body weight: 400 / 600
66
+ ```
67
+
68
+ **Signature elements:**
69
+ - Thin `<hr>` separators (`border: none; border-top: 1px solid #2A2A2A; width: 40px; margin: 0`)
70
+ - Oversized section numbers at `opacity: 0.06` as absolute background elements
71
+ - Instrument Serif italic on testimonial quotes (literary weight)
72
+ - Hero stat number in `#D8F90A` accent
73
+ - Cover: `#D8F90A` full-bg inversion with `#0A0A0A` text (unmissable)
74
+ - Closing CTA: `#D8F90A` full bg with `#0A0A0A` text
75
+
76
+ ---
77
+
78
+ ## 3. matt-gray
79
+
80
+ **Best for:** Internal business reviews, board materials, professional presentations to mixed audiences
81
+ **Feeling:** Safe, professional, accessible, clean
82
+
83
+ ```
84
+ Background: #F5F5F5 outer / #FFFFFF page / #EEEEEE section alt / #F8F8F8 footer
85
+ Text primary: #1A1A1A
86
+ Text secondary: #444444
87
+ Text muted: #888888
88
+ Accent: #2563EB (blue)
89
+ Accent text: #FFFFFF
90
+ Divider: #E5E5E5
91
+ Card border: #DDDDDD
92
+ Card shadow: 0 1px 3px rgba(0, 0, 0, 0.08)
93
+
94
+ Display font: 'DM Sans', Arial, Helvetica, sans-serif
95
+ Body font: 'DM Sans', Arial, Helvetica, sans-serif
96
+ Google Fonts: https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700;800&display=swap
97
+
98
+ Display weight: 700
99
+ Body weight: 400 / 500
100
+ ```
101
+
102
+ **Signature elements:**
103
+ - 4px left border on section headings and fact cells (`border-left: 4px solid #2563EB; padding-left: 1rem`)
104
+ - Subtle drop shadow on stat containers
105
+ - Hero stat in accent blue `#2563EB`
106
+ - Section headings use `#EEEEEE` alt background
107
+ - Closing CTA: `#1A1A1A` full dark bg with white text and blue button
108
+
109
+ ---
110
+
111
+ ## 4. brutalist
112
+
113
+ **Best for:** Standout sales materials, design-forward agencies, brands that want to be remembered
114
+ **Feeling:** Direct, raw, confident, uncompromising
115
+
116
+ ```
117
+ Background: #FFFFFF outer / #FFFFFF page
118
+ Text primary: #000000
119
+ Text secondary: #333333
120
+ Accent: #FF3300 (red) or #FFE500 (yellow)
121
+ Accent text: #000000
122
+ Divider: #000000 (solid black)
123
+ Border: 3px solid #000000 (heavy)
124
+ Border-radius: 0 (zero everywhere -- absolute rule)
125
+
126
+ Display font: 'Archivo Black', Arial Black, Arial, sans-serif
127
+ Body font: 'Space Grotesk', Arial, sans-serif
128
+ Google Fonts: https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@400;500;700&display=swap
129
+
130
+ Display weight: 900
131
+ Body weight: 400 / 700
132
+ ```
133
+
134
+ **Signature elements:**
135
+ - Heavy borders everywhere: `border: 3px solid #000000` on ALL cards, tables, containers, page sections
136
+ - Zero border-radius on every element -- this is a hard rule, never soften
137
+ - Oversized section numbers fully visible (`opacity: 1`) in accent color
138
+ - Cover: accent color full bg (`#FF3300` or `#FFE500`) with `#000000` text
139
+ - Hero stat in accent color, extreme size
140
+ - Closing CTA: `#000000` full bg with white text and accent-color button/border
141
+
142
+ **DO NOT apply rounded corners, gradients, or drop shadows to brutalist case studies.**
143
+
144
+ ---
145
+
146
+ ## 5. mint-pixel-corporate
147
+
148
+ **Best for:** SaaS sales, product-focused companies, tech startups, growth-stage B2B
149
+ **Feeling:** Fresh, modern, startup-professional
150
+
151
+ ```
152
+ Background: #F0FAF7 outer / #FFFFFF page / #E8F5F0 alt sections / #F0FAF7 footer
153
+ Text primary: #1A2E2A
154
+ Text secondary: #4A6B62
155
+ Text muted: #7A9B92
156
+ Accent: #00B894 (mint)
157
+ Accent text: #1A2E2A
158
+ Divider: #D1E8E1
159
+ Card border: #C5DFD7
160
+ Card radius: 10px
161
+
162
+ Display font: 'Manrope', Arial, Helvetica, sans-serif
163
+ Body font: 'Manrope', Arial, Helvetica, sans-serif
164
+ Google Fonts: https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700;800&display=swap
165
+
166
+ Display weight: 800
167
+ Body weight: 400 / 500
168
+ ```
169
+
170
+ **Signature elements:**
171
+ - Mint accent pills for feature labels and category tags (`border-radius: 100px; background: #00B894; color: #1A2E2A`)
172
+ - CSS `radial-gradient` dot pattern on cover background:
173
+ ```css
174
+ background-image: radial-gradient(circle, #00B894 1px, transparent 1px);
175
+ background-size: 24px 24px;
176
+ background-color: #1A2E2A;
177
+ ```
178
+ - Hero stat in mint `#00B894`
179
+ - Feature cards with mint border (`border: 2px solid #00B894`)
180
+ - Closing CTA: `#1A2E2A` dark bg with dot pattern + mint text and white button
181
+
182
+ ---
183
+
184
+ ## 6. product-minimal
185
+
186
+ **Best for:** Product companies, design-forward B2B, companies presenting to design-savvy buyers
187
+ **Feeling:** Maximum whitespace, purposeful restraint, design system precision
188
+
189
+ ```
190
+ Background: #FAFAFA outer / #FAFAFA page / #F4F4F4 alt / #F0F0F0 footer
191
+ Text primary: #18181B
192
+ Text secondary: #71717A
193
+ Text muted: #A1A1AA
194
+ Accent: #8B5CF6 (violet)
195
+ Accent text: #FFFFFF
196
+ Divider: #E4E4E7
197
+ Card shadow: 0 1px 3px rgba(0, 0, 0, 0.08)
198
+ Card radius: 12px
199
+
200
+ Display font: 'Syne', Arial, Helvetica, sans-serif
201
+ Body font: 'IBM Plex Sans', Arial, Helvetica, sans-serif
202
+ Google Fonts: https://fonts.googleapis.com/css2?family=Syne:wght@400;700;800&family=IBM+Plex+Sans:wght@400;500;600&display=swap
203
+
204
+ Display weight: 700-800
205
+ Body weight: 400 / 500
206
+ ```
207
+
208
+ **Signature elements:**
209
+ - Single accent element per section rule: violet appears in AT MOST ONE element per section
210
+ - Subtle CSS drop shadow on cards (`box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08)`)
211
+ - Very generous padding (use maximum clamp values everywhere)
212
+ - Hero stat in violet `#8B5CF6` with thin violet top-border on stat container
213
+ - Cover: `#18181B` full dark bg with Syne display font in white
214
+ - Closing CTA: violet background (`#8B5CF6`) with white text
215
+
216
+ ---
217
+
218
+ ## 7. magazine-red
219
+
220
+ **Best for:** Marketing agencies, bold companies, brand-forward case studies, attention-commanding materials
221
+ **Feeling:** Authoritative, editorial, high energy
222
+
223
+ ```
224
+ Background: #1A1A1A outer / #111111 page / #1E1E1E alt / #0D0D0D footer
225
+ Text primary: #FFFFFF
226
+ Text secondary: #CCCCCC
227
+ Text muted: #888888
228
+ Accent: #E63329 (red)
229
+ Divider: #2A2A2A
230
+
231
+ Display font: 'Fraunces', Georgia, 'Times New Roman', serif
232
+ Body font: 'Work Sans', Arial, Helvetica, sans-serif
233
+ Google Fonts: https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,900;1,900&family=Work+Sans:wght@400;500;600&display=swap
234
+
235
+ Display weight: 900
236
+ Body weight: 400 / 500
237
+ ```
238
+
239
+ **Signature elements:**
240
+ - 8px full-width red band separator: `<div style="width:100%; height:8px; background:#E63329; margin: clamp(1rem, 2vw, 2rem) 0">`
241
+ - Editorial section numbers at `opacity: 0.25` in red
242
+ - Testimonial section inverted to white bg with dark text (only white section in the deck)
243
+ - Fraunces italic for quote text (extreme editorial weight)
244
+ - Hero stat in red `#E63329`, large
245
+ - Closing CTA: full red background (`#E63329`) with white text
246
+
247
+ ---
248
+
249
+ ## 8. soft-cloud
250
+
251
+ **Best for:** Onboarding materials, customer education, HR/people companies, approachable SaaS
252
+ **Feeling:** Friendly, accessible, soft, welcoming
253
+
254
+ ```
255
+ Background: #EEF2FF outer / #FFFFFF page / #F5F3FF alt / #EEF2FF footer
256
+ Text primary: #1E1B4B
257
+ Text secondary: #4C4A7B
258
+ Text muted: #9896C0
259
+ Accent: #6366F1 (indigo)
260
+ Accent light: #E0E7FF (light indigo for card backgrounds)
261
+ Accent text: #FFFFFF
262
+ Divider: #DDD6FE
263
+ Card radius: 24px
264
+ Card shadow: 0 4px 16px rgba(99, 102, 241, 0.08)
265
+
266
+ Display font: 'Outfit', Arial, Helvetica, sans-serif
267
+ Body font: 'Outfit', Arial, Helvetica, sans-serif
268
+ Google Fonts: https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap
269
+
270
+ Display weight: 700
271
+ Body weight: 400 / 500
272
+ ```
273
+
274
+ **Signature elements:**
275
+ - Generous border-radius (`border-radius: 24px`) on all cards, callout blocks, stat containers
276
+ - Gradient section backgrounds: `linear-gradient(135deg, #EEF2FF 0%, #E0E7FF 50%, #DDD6FE 100%)`
277
+ - Badge pills on key points (`border-radius: 100px; background: #E0E7FF; color: #6366F1`)
278
+ - Hero stat in indigo `#6366F1` on `#F5F3FF` elevated card bg
279
+ - Closing CTA: indigo gradient (`linear-gradient(135deg, #6366F1 0%, #8B5CF6 100%)`) with white text
280
+
281
+ ---
282
+
283
+ ## 9. warm-earth (case-study-exclusive)
284
+
285
+ **Best for:** Agencies, consultancies, service businesses, health/education tech, companies that sell on trust
286
+ **Feeling:** Trusted, grounded, human, warm authority
287
+
288
+ ```
289
+ Background: #FDF6EF outer / #FFFFFF page / #FAF0E4 alt sections / #F5EBD8 footer
290
+ Text primary: #2C1A0E
291
+ Text secondary: #6B4C30
292
+ Text muted: #A08060
293
+ Accent: #D4622A (burnt orange)
294
+ Accent light: #FDE8D8 (peach -- for pill/badge backgrounds)
295
+ Accent text: #FFFFFF
296
+ Divider: #E8D5BF
297
+ Card border: #E0C9A8
298
+ Card radius: 10px
299
+ Card shadow: 0 2px 8px rgba(44, 26, 14, 0.06)
300
+
301
+ Display font: 'Lora', Georgia, 'Times New Roman', serif
302
+ Body font: 'Source Sans 3', Arial, Helvetica, sans-serif
303
+ Google Fonts: https://fonts.googleapis.com/css2?family=Lora:wght@400;600;700&family=Source+Sans+3:wght@400;600&display=swap
304
+
305
+ Display weight: 700
306
+ Body weight: 400 / 600
307
+ ```
308
+
309
+ **Signature elements:**
310
+ - Warm off-white background (`#FDF6EF`) -- not pure white, not gray. The warmth starts with the canvas.
311
+ - Accent pills in peach (`background: #FDE8D8; color: #D4622A; border-radius: 100px`) for category labels
312
+ - **Drop cap on challenge page opening paragraph:**
313
+ ```css
314
+ .challenge-context::first-letter {
315
+ font-family: 'Lora', Georgia, serif;
316
+ font-size: clamp(3rem, 7vw, 5rem);
317
+ float: left;
318
+ margin: 0.05em 0.12em 0 0;
319
+ color: var(--accent);
320
+ line-height: 0.8;
321
+ }
322
+ ```
323
+ - Hero stat in burnt orange `#D4622A`
324
+ - Section headings: `border-left: 4px solid #D4622A; padding-left: 1rem` (no full-background inversion -- subtle accent)
325
+ - Cover: warm-dark background `#2C1A0E` with off-white text `#F5EBD8` and burnt-orange accent label
326
+ - Closing CTA: `#2C1A0E` full dark bg with `#FDE8D8` peach headline, white CTA button with burnt orange border
327
+
328
+ ---
329
+
330
+ ## DO NOT USE -- Style Slop Checklist
331
+
332
+ Before outputting any HTML, verify none of these are present:
333
+
334
+ | Pattern | Why it's wrong |
335
+ |---|---|
336
+ | Inter as display font | Zero typographic character -- reads as default AI output |
337
+ | Purple-to-blue gradient on white background | Most overused AI aesthetic -- immediately signals undesigned |
338
+ | Every section same background color | No visual rhythm -- the PDF reads as one flat block |
339
+ | Identical section layouts throughout | No typographic thinking -- copy-pasted template feel |
340
+ | `box-shadow` on everything | Overused "depth" signal with no real depth |
341
+ | `border-radius: 8px` on everything (especially brutalist) | Softening that fights the style's aesthetic intent |
342
+ | Accent color on 5+ elements per section | Over-branded, destroys scarcity = destroys premium feel |
343
+ | Helvetica Neue / Arial as display font | Generic -- no personality at display size |
344
+ | Stat numbers at body text size | Breaks the entire purpose of the results section |
345
+ | "Thank You" as closing-cta headline | No action, no contact info = completely wasted page |
346
+ | Logo placeholder box with no styling | Unfinished -- use CSS initials at minimum |