kalei/initial mockups/claude_implementation_instr...

1192 lines
47 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kalei — Claude Code Implementation Instructions
> **Purpose:** This document tells Claude Code everything it needs to know to build pixel-perfect, interactive HTML mockups for every screen in the Kalei app.
>
> **Read this file first, then follow the build order at the bottom.**
---
## 1. What You're Building
You are building **64 interactive HTML mockup screens** for Kalei, a mobile mental wellness app. Each screen is a standalone `.html` file that:
- Renders at **390 × 844px** (iPhone 14 viewport) inside a rounded device frame
- Uses the shared `design-system.css` for all tokens, typography, components, and layout
- References SVG assets from the `assets/` folder for icons, patterns, decorations, and visualizations
- Includes micro-interactions and state transitions using CSS animations + minimal vanilla JS
- Can be viewed in any browser by opening the file directly (no build step, no server)
**Output format:** Single-file HTML per screen. All CSS beyond `design-system.css` goes in a `<style>` block. All JS goes in a `<script>` block. No frameworks, no npm, no React — pure HTML + CSS + JS.
---
## 2. Repository Map
```
Kalei/
├── docs/
│ ├── brand/
│ │ ├── kalei-brand-guidelines.md ← Color palette, typography, voice & tone
│ │ └── kalei-brand-metaphor.md ← Kaleidoscope metaphor deep dive
│ ├── product/
│ │ ├── kalei-complete-user-journey.md ← **PRIMARY REF** — all 64 screens described
│ │ ├── kalei-complete-design.md ← Feature specs, interactions, flows
│ │ ├── kalei-mirror-feature.md ← Mirror (journaling) deep dive
│ │ └── kalei-spectrum-phase2.md ← Spectrum analytics specs
│ ├── technical/
│ │ ├── kalei-user-journey-technical-map.md ← API endpoints, DB schemas, component tree
│ │ └── kalei-system-architecture-plan.md ← Tech stack, infrastructure
│ └── build-phases/ ← Phase 04 roadmaps
├── initial mockups/
│ ├── claude_implementation_instructions.md ← **THIS FILE**
│ ├── assets/
│ │ ├── design-system.css ← **IMPORT IN EVERY SCREEN**
│ │ ├── ASSET-INDEX.md ← Catalog of all SVG elements
│ │ ├── preview-all-assets.html ← Visual preview of all SVGs
│ │ ├── icons-tab-bar.svg ← 5 navigation icons (active + inactive)
│ │ ├── icons-distortions.svg ← 10 cognitive distortion icons
│ │ ├── icons-actions.svg ← 30 action/UI icons
│ │ ├── fragment-icons.svg ← Fragment ◇ in 5 sizes, 8 colors
│ │ ├── decorative-shards.svg ← Background shards, auras, dividers
│ │ ├── patterns-kaleidoscope.svg ← 7 kaleidoscope pattern variants
│ │ ├── progress-indicators.svg ← Rings, bars, dots, streaks
│ │ ├── evidence-wall.svg ← Mosaic tiles and connection system
│ │ ├── loading-animations.svg ← Spinners, skeletons, AI thinking
│ │ ├── device-chrome.svg ← Status bar, tab bar, nav header
│ │ └── spectrum-visualizations.svg ← 5 analytics chart types
│ │
│ └── screens/ ← **OUTPUT DIRECTORY**
│ ├── onboarding/ ← Screens 19
│ ├── turn/ ← Screens 1014
│ ├── mirror/ ← Screens 1519
│ ├── lens/ ← Screens 2030
│ ├── gallery/ ← Screens 3134
│ ├── you/ ← Screens 3543
│ ├── ritual/ ← Screens 4449
│ ├── spectrum/ ← Screens 5057
│ ├── modals/ ← Screens 5861
│ └── system-states/ ← Screens 6264 + loading/error/offline
├── logo-mockups/
│ └── finalists/
│ └── soft-elegance-final.svg ← **LOGO & VISUAL DNA SOURCE**
└── research/ ← Academic PDFs (context only, don't reference)
```
---
## 3. Visual DNA — The Soft-Elegance Language
Every visual decision descends from `soft-elegance-final.svg`. Study it before building anything.
### 3.1 Core Principles
| Principle | How It Manifests |
|-----------|-----------------|
| **Crystalline geometry** | Diamond ◇ as the universal shape — fragments, icons, tiles, data points |
| **Jewel tone gradients** | Each color is a gradient pair: light stop → dark stop (e.g., `#C4B5FD``#7C3AED` for Amethyst) |
| **Glow, not shadow** | Elements glow outward with `box-shadow: 0 0 Npx rgba(color, 0.3)`. No traditional drop shadows. |
| **Breathing animations** | Slow pulsing opacity/scale on decorative elements (6s cycle) |
| **Prismatic color cycling** | Gradient that shifts through Amethyst → Sapphire → Emerald → Amber → Rose |
| **Dark void canvas** | #050508 base with layered surfaces (#0A0E1A → #121628#1C2240) |
| **Screen blend mode** | Overlapping translucent elements blend additively for a light-through-glass effect |
### 3.2 Color System
```css
/* Backgrounds (darkest → lightest) */
--void: #050508; /* Deepest bg, device frame bg */
--kalei-navy: #0A0E1A; /* Primary surface (cards, tab bar) */
--deep-glass: #121628; /* Elevated surface (inputs, modals) */
--twilight: #1C2240; /* Borders, dividers, inactive elements */
/* Jewel Tones — each feature "owns" a color */
--amethyst: #8B5CF6; /* Turn ◇ — primary accent */
--sapphire: #3B82F6; /* Gallery ▦ — info */
--emerald: #10B981; /* Lens ◎ — success, growth */
--amber: #F59E0B; /* Mirror ✦ — fragments, awareness */
--rose: #EC4899; /* Social, sharing */
--ruby: #EF4444; /* Error, destructive, crisis */
--indigo: #6366F1; /* Extended palette */
/* Text hierarchy */
--pure-light: #FFFFFF; /* Titles, primary values */
--soft-light: #E2E8F0; /* Body text */
--dim-light: #94A3B8; /* Secondary text, labels */
--faint-light: #475569; /* Tertiary, placeholders */
```
### 3.3 Typography
```css
/* Display: Space Grotesk — titles and hero text */
--font-display: 'Space Grotesk', 'Inter', sans-serif;
/* Body: Inter — everything else */
--font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
```
| Class | Size | Weight | Use |
|-------|------|--------|-----|
| `.display-xl` | 40px | 700 | Splash, hero moments |
| `.display-lg` | 32px | 700 | Section heroes |
| `.display-md` | 24px | 600 | Card titles |
| `.heading` | 20px | 600 | Nav titles, section heads |
| `.subheading` | 16px | 600 | Subsection heads |
| `.body-lg` | 17px | 400 | Primary reading text (journal, reframes) |
| `.body` | 15px | 400 | Standard body |
| `.body-sm` | 13px | 400 | Metadata, timestamps |
| `.label` | 11px | 500 | Uppercase labels, section headers |
### 3.4 Feature → Color → Icon Mapping
| Tab | Feature | Color | Icon Shape | Gradient Stops |
|-----|---------|-------|------------|----------------|
| Turn | Reframing | Amethyst | Diamond ◇ | `#C4B5FD``#7C3AED` |
| Mirror | Journaling | Amber | Hexagon ✦ | `#FDE68A``#D97706` |
| Lens | Goals | Emerald | Circle ◎ | `#6EE7B7``#059669` |
| Gallery | Collection | Sapphire | Grid ▦ | `#93C5FD``#2563EB` |
| You | Profile | Soft Light | Circle ● | `#E2E8F0``#94A3B8` |
---
## 4. Screen Template — Every File Starts Here
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=390, initial-scale=1">
<title>Kalei — [Screen Name]</title>
<link rel="stylesheet" href="../assets/design-system.css">
<style>
/* Screen-specific styles go here */
</style>
</head>
<body>
<div class="device-frame">
<!-- STATUS BAR (always present except splash) -->
<div class="status-bar">
<span class="time">9:41</span>
<div class="icons">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="1" y="7" width="2.5" height="5" rx="0.5" fill="#E2E8F0" opacity="0.4"/>
<rect x="4.5" y="5" width="2.5" height="7" rx="0.5" fill="#E2E8F0" opacity="0.6"/>
<rect x="8" y="3" width="2.5" height="9" rx="0.5" fill="#E2E8F0" opacity="0.8"/>
<rect x="11.5" y="1" width="2.5" height="11" rx="0.5" fill="#E2E8F0"/>
</svg>
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M 2,8 C 4,4 12,4 14,8" stroke="#E2E8F0" stroke-width="1.2" fill="none" stroke-linecap="round"/>
<path d="M 4,10 C 6,7 10,7 12,10" stroke="#E2E8F0" stroke-width="1" fill="none" opacity="0.8" stroke-linecap="round"/>
<circle cx="8" cy="12" r="1.2" fill="#E2E8F0"/>
</svg>
<svg width="24" height="12" viewBox="0 0 24 12" fill="none">
<rect x="0.5" y="0.5" width="21" height="11" rx="2.5" stroke="#E2E8F0" stroke-width="1" opacity="0.5"/>
<rect x="22" y="3" width="2" height="6" rx="1" fill="#E2E8F0" opacity="0.3"/>
<rect x="2" y="2" width="16" height="8" rx="1.5" fill="#10B981" opacity="0.9"/>
</svg>
</div>
</div>
<!-- NAV HEADER (present on non-root screens) -->
<div class="nav-header">
<a class="nav-back" href="#">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M12 4L6 10L12 16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<span class="nav-title">[Title]</span>
<span class="nav-action"><!-- optional right icon --></span>
</div>
<!-- SCREEN CONTENT -->
<div class="screen-content">
<!-- Unique screen content goes here -->
</div>
<!-- TAB BAR (present on main tab screens) -->
<div class="tab-bar">
<a class="tab-item active" data-tab="turn">
<svg width="24" height="24" viewBox="0 0 24 24">
<path d="M12 2L20 12L12 22L4 12Z" fill="currentColor" opacity="0.9"/>
<path d="M12 2L20 12L12 12Z" fill="white" opacity="0.15"/>
</svg>
<span class="tab-label">Turn</span>
</a>
<a class="tab-item inactive" data-tab="mirror">
<svg width="24" height="24" viewBox="0 0 24 24">
<path d="M12 3L16 8L18 14L12 19L6 14L8 8Z" stroke="currentColor" fill="none" stroke-width="1.2"/>
</svg>
<span class="tab-label">Mirror</span>
</a>
<a class="tab-item inactive" data-tab="lens">
<svg width="24" height="24" viewBox="0 0 24 24">
<circle cx="12" cy="12" r="9" stroke="currentColor" fill="none" stroke-width="1.2"/>
<circle cx="12" cy="12" r="4" stroke="currentColor" fill="none" stroke-width="0.8"/>
</svg>
<span class="tab-label">Lens</span>
</a>
<a class="tab-item inactive" data-tab="gallery">
<svg width="24" height="24" viewBox="0 0 24 24">
<rect x="3" y="3" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/>
<rect x="13.5" y="3" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/>
<rect x="3" y="13.5" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/>
<rect x="13.5" y="13.5" width="7.5" height="7.5" rx="1.5" stroke="currentColor" fill="none" stroke-width="1"/>
</svg>
<span class="tab-label">Gallery</span>
</a>
<a class="tab-item inactive" data-tab="you">
<svg width="24" height="24" viewBox="0 0 24 24">
<circle cx="12" cy="9" r="4" stroke="currentColor" fill="none" stroke-width="1.2"/>
<path d="M4 20C4 16 8 14 12 14C16 14 20 16 20 20" stroke="currentColor" fill="none" stroke-width="1.2" stroke-linecap="round"/>
</svg>
<span class="tab-label">You</span>
</a>
</div>
</div>
<script>
// Screen-specific interactions go here
</script>
</body>
</html>
```
### Template Rules
1. **Tab bar** is only present on the 5 root tab screens and their immediate children (Turn Home, Mirror Home, Lens Dashboard, Gallery All Patterns, You Profile). Sub-screens (detail views, creation flows) use nav-header + back button instead, no tab bar.
2. **Nav header** is hidden on root tab screens (tab bar acts as navigation). Show it on all sub-screens with a back chevron and centered title.
3. **Status bar** is always present except on the Splash screen (Screen 1).
4. **Active tab** changes color per feature — set the correct `data-tab` attribute and `active` class.
5. **Screen content** has `flex: 1` and scrolls vertically. Use `screen-content centered` for splash/onboarding screens.
---
## 5. SVG Asset Usage Guide
### 5.1 How to Use SVGs in Mockups
The SVG files are **reference sheets** — each contains multiple elements arranged on a canvas for visual cataloging. You should **not embed the entire SVG file**. Instead:
**Option A: Inline the specific SVG element** (preferred for icons and small elements)
```html
<!-- Inline just the Amethyst fragment diamond -->
<svg width="24" height="24" viewBox="0 0 24 24">
<defs>
<linearGradient id="grAmethyst" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#C4B5FD"/>
<stop offset="100%" stop-color="#7C3AED"/>
</linearGradient>
</defs>
<path d="M12 2L20 12L12 22L4 12Z" fill="url(#grAmethyst)"/>
<path d="M12 2L20 12L12 12Z" fill="#fff" opacity="0.15"/>
</svg>
```
**Option B: CSS recreation** (preferred for backgrounds, auras, decorations)
```css
.breathing-aura {
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
background: radial-gradient(circle, rgba(139,92,246,0.2), transparent 70%);
filter: blur(40px);
animation: breathing 6s ease-in-out infinite;
}
```
**Option C: Use `<object>` or `<img>` for complex patterns** (kaleidoscope hero, evidence wall mosaic)
```html
<!-- Only when the full pattern is needed -->
<object data="../assets/patterns-kaleidoscope.svg" type="image/svg+xml"
style="width: 200px; height: 200px;"></object>
```
### 5.2 Asset → Screen Mapping
| SVG File | Used In Screens |
|----------|----------------|
| `icons-tab-bar.svg` | All tab bar screens (reference for inline SVGs) |
| `icons-distortions.svg` | Mirror Fragment Detail (#18), Mirror Reflection (#19), Spectrum (#5057) |
| `icons-actions.svg` | Every screen — navigation, actions, status indicators |
| `fragment-icons.svg` | Turn Results (#13), Mirror Highlight (#17), Evidence Wall (#3943) |
| `decorative-shards.svg` | Onboarding (#29), Turn Home (#10), splash backgrounds |
| `patterns-kaleidoscope.svg` | Splash (#1), Welcome (#2), Turn Animation (#12), Gallery Detail (#33), Pattern Share (#61) |
| `progress-indicators.svg` | Lens Dashboard (#20), Ritual Streak (#49), You Stats (#36) |
| `evidence-wall.svg` | Evidence Wall screens (#3943) |
| `loading-animations.svg` | System states, Turn Animation (#12), AI Thinking states |
| `device-chrome.svg` | Reference for status bar, tab bar, nav header (already in template) |
| `spectrum-visualizations.svg` | Spectrum screens (#5057) |
### 5.3 The Fragment ◇ — Universal Element
The diamond fragment `◇` appears everywhere. Build it as a reusable inline SVG:
```html
<!-- Fragment: size options xs(12) sm(16) md(24) lg(36) xl(48) -->
<svg class="fragment" width="24" height="24" viewBox="0 0 24 24">
<defs>
<linearGradient id="grFrag" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#C4B5FD"/>
<stop offset="100%" stop-color="#7C3AED"/>
</linearGradient>
<filter id="fragGlow">
<feGaussianBlur stdDeviation="1.5" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<g filter="url(#fragGlow)">
<path d="M12 2L20 12L12 22L4 12Z" fill="url(#grFrag)" opacity="0.9"/>
<path d="M12 2L20 12L12 12Z" fill="#fff" opacity="0.15"/>
</g>
</svg>
```
Color variants — swap the gradient stops:
- **Amethyst:** `#C4B5FD``#7C3AED` (Turn, primary)
- **Amber:** `#FDE68A``#D97706` (Mirror, detected fragments)
- **Emerald:** `#6EE7B7``#059669` (Lens, success)
- **Sapphire:** `#93C5FD``#2563EB` (Gallery, info)
- **Rose:** `#F9A8D4``#DB2777` (social)
- **Ruby:** `#FCA5A5``#DC2626` (error)
---
## 6. Component Patterns
### 6.1 Fragment Highlight (Mirror Feature)
When AI detects a cognitive distortion in journal text, that text gets an amber underline highlight with a pulsing fragment icon:
```html
<span class="fragment-highlight">I always mess everything up</span>
<span class="fragment-icon">
<svg width="12" height="12" viewBox="0 0 12 12">
<path d="M6 1L10 6L6 11L2 6Z" fill="#F59E0B"/>
<path d="M6 1L10 6L6 6Z" fill="#fff" opacity="0.2"/>
</svg>
</span>
```
### 6.2 Reframe Block (Turn Results)
Three perspectives shown after a Turn:
```html
<div class="reframe-block amethyst">
<div class="reframe-label">Perspective Shift</div>
<div class="reframe-text">What if "messing up" is actually how you learn what works?</div>
</div>
<div class="reframe-block sapphire">
<div class="reframe-label">Evidence Check</div>
<div class="reframe-text">Think of three recent things you handled well.</div>
</div>
<div class="reframe-block emerald">
<div class="reframe-label">Action Step</div>
<div class="reframe-text">Pick one small win from today and write it down tonight.</div>
</div>
```
### 6.3 Chat Bubbles (Mirror Session)
```html
<div class="chat-bubble user">
I've been feeling really overwhelmed at work lately. Everything feels like it's piling up.
</div>
<div class="chat-bubble ai">
It sounds like you're carrying a lot right now. Can you tell me more about what feels most overwhelming?
</div>
```
### 6.4 Card with Kaleidoscope Pattern
```html
<div class="card card-pattern">
<div class="pattern-visual">
<!-- Inline mini kaleidoscope SVG here -->
<svg width="120" height="120" viewBox="0 0 120 120" style="mix-blend-mode: screen;">
<!-- 6 blades at 60° intervals, using feature color gradient -->
</svg>
</div>
<div class="pattern-content">
<div class="body" style="color: var(--soft-light);">My first reframe</div>
<div class="body-sm" style="color: var(--dim-light);">Feb 21, 2026 • 3 perspectives</div>
</div>
</div>
```
### 6.5 Progress Ring
```html
<div class="progress-ring" style="width: 80px; height: 80px;">
<svg width="80" height="80" viewBox="0 0 80 80">
<circle cx="40" cy="40" r="34" fill="none" stroke="var(--twilight)" stroke-width="4"/>
<circle cx="40" cy="40" r="34" fill="none" stroke="var(--emerald)" stroke-width="4"
stroke-dasharray="213.6" stroke-dashoffset="59.8" stroke-linecap="round"/>
</svg>
<span class="progress-text">72%</span>
<span class="progress-label">Complete</span>
</div>
```
### 6.6 Evidence Wall Tile
```html
<div class="evidence-tile" style="
width: 100px; height: 100px;
background: var(--kalei-navy);
border: 1px solid var(--emerald);
border-radius: 12px;
display: flex; align-items: center; justify-content: center; flex-direction: column;
box-shadow: 0 0 12px rgba(16,185,129,0.2);
">
<svg width="24" height="24" viewBox="0 0 24 24">
<path d="M12 2L20 12L12 22L4 12Z" fill="#10B981" opacity="0.8"/>
</svg>
<span class="body-sm" style="color: var(--emerald-light); margin-top: 4px;">Goal Met</span>
</div>
```
### 6.7 Toast Notifications
```html
<!-- Success toast -->
<div style="
position: absolute; top: 70px; left: 50%; transform: translateX(-50%);
background: var(--deep-glass); border: 1px solid var(--emerald);
border-radius: 999px; padding: 8px 20px;
display: flex; align-items: center; gap: 8px;
box-shadow: 0 0 16px rgba(16,185,129,0.2);
animation: fadeIn 0.3s ease;
">
<svg width="16" height="16" viewBox="0 0 16 16">
<path d="M8 1L13 8L8 15L3 8Z" fill="#10B981"/>
</svg>
<span class="body-sm" style="color: var(--soft-light); font-weight: 500;">Turn saved</span>
</div>
```
---
## 7. Interaction Patterns
### 7.1 The Turn Animation Sequence
The signature moment. When a user submits a thought for reframing:
1. **Collapse** (0.3s): Input text compresses into a single diamond fragment at center
2. **Multiply** (0.4s): One fragment splits into 3, each drifting to a position
3. **Crystallize** (0.5s): Each fragment rotates 60° and settles into its reframe block position
4. **Settle** (0.3s): Reframe text fades in below each fragment
Implement with CSS `@keyframes` and `animation-delay` staggering:
```css
@keyframes turnCollapse {
0% { opacity: 1; transform: scale(1); }
100% { opacity: 0; transform: scale(0.3) translateY(-50px); }
}
@keyframes turnMultiply {
0% { opacity: 0; transform: scale(0.3); }
50% { opacity: 1; transform: scale(1.2); }
100% { opacity: 1; transform: scale(1) translateX(var(--offset-x)) translateY(var(--offset-y)); }
}
@keyframes turnSettle {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
```
### 7.2 Fragment Detection Animation (Mirror)
When AI detects a cognitive distortion mid-session:
1. Text gets amber underline (grows from left to right, 0.4s)
2. Tiny fragment ◇ pulses into existence beside the text
3. A subtle amber glow radiates from the highlighted text
4. Fragment detail card slides up as a half-sheet
### 7.3 Kaleidoscope Pattern Generation
For Turn results and Gallery cards, generate unique-looking patterns:
```html
<svg width="120" height="120" viewBox="0 0 120 120" style="mix-blend-mode: screen;">
<defs>
<linearGradient id="blade1" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#C4B5FD" stop-opacity="0.7"/>
<stop offset="100%" stop-color="#7C3AED" stop-opacity="0.3"/>
</linearGradient>
</defs>
<!-- 6 blades at 60° intervals -->
<g transform="translate(60,60)">
<g><path d="M0,0 L8,-45 L0,-50 L-8,-45Z" fill="url(#blade1)"/></g>
<g transform="rotate(60)"><path d="M0,0 L8,-45 L0,-50 L-8,-45Z" fill="url(#blade1)"/></g>
<g transform="rotate(120)"><path d="M0,0 L8,-45 L0,-50 L-8,-45Z" fill="url(#blade1)"/></g>
<g transform="rotate(180)"><path d="M0,0 L8,-45 L0,-50 L-8,-45Z" fill="url(#blade1)"/></g>
<g transform="rotate(240)"><path d="M0,0 L8,-45 L0,-50 L-8,-45Z" fill="url(#blade1)"/></g>
<g transform="rotate(300)"><path d="M0,0 L8,-45 L0,-50 L-8,-45Z" fill="url(#blade1)"/></g>
<!-- Core glow -->
<circle r="8" fill="white" opacity="0.15" filter="blur(3px)"/>
</g>
</svg>
```
Vary patterns per screen by changing: blade count (3 or 6), blade length, gradient colors, rotation offset, core glow size.
### 7.4 Breathing Aura (Background Decoration)
Place behind hero content on onboarding and Turn screens:
```css
.screen-aura {
position: absolute;
top: 30%;
left: 50%;
transform: translate(-50%, -50%);
width: 300px;
height: 300px;
border-radius: 50%;
background: radial-gradient(circle, rgba(139,92,246,0.15) 0%, transparent 70%);
filter: blur(60px);
animation: breathing 6s ease-in-out infinite;
pointer-events: none;
z-index: 0;
}
```
---
## 8. The 10 Cognitive Distortions
These appear in Mirror as detected "fragments." Each has an icon, color tint, and label:
| # | Distortion | Icon Concept | Detection Example |
|---|-----------|--------------|-------------------|
| 1 | Catastrophizing | Shattered diamond with explosion lines | "Everything is going to fall apart" |
| 2 | Black-and-White | Half-filled diamond (split) | "I always fail" / "It's never good enough" |
| 3 | Mind Reading | Diamond with eye inside | "They probably think I'm stupid" |
| 4 | Fortune Telling | Diamond with spiral/clock | "This will definitely go wrong" |
| 5 | Personalization | Diamond with arrow pointing inward | "It's all my fault" |
| 6 | Discounting Positives | Diamond with minus/strikethrough | "That doesn't count" |
| 7 | Emotional Reasoning | Diamond with wave/heart | "I feel it, so it must be true" |
| 8 | Should Statements | Diamond with gavel/ruler | "I should be better by now" |
| 9 | Labeling | Diamond with tag | "I'm such a failure" |
| 10 | Overgeneralization | Diamond with infinite loop | "This always happens to me" |
All distortion icons use **Amber** as their base color since they're detected in Mirror.
---
## 9. Screen-by-Screen Build Specifications
### Onboarding (Screens 19) → `screens/onboarding/`
**Screen 1: `01-splash.html`**
- No status bar, no nav, no tab bar
- Full device-frame is #050508 void
- Centered: breathing kaleidoscope logo (from `soft-elegance-final.svg` simplified — 6 blades, core glow, slow rotation)
- Below logo: "Kalei" in Space Grotesk 32px, #E2E8F0
- Animation: logo fades in (0.5s), breathes for 1.5s, auto-transitions (add "tap to continue" fallback)
**Screen 2: `02-welcome.html`**
- Status bar visible
- Centered layout (`.screen-content.centered`)
- Hero: 6-blade prismatic kaleidoscope pattern (large, ~200px), breathing animation
- Below: "Same pieces." line 1, "New angle." line 2 — Space Grotesk display-lg
- Subtle breathing aura behind pattern (amethyst tint)
- CTA: "See how it works" — `.btn-primary` full width at bottom
- No tab bar, no nav header
**Screen 3: `03-fragment-intro.html`**
- Single amber fragment ◇ centered, pulsing with glow
- Copy: "Your thoughts are like pieces of glass in a kaleidoscope."
- Tap interaction: fragment pulses larger, then copy continues: "Sometimes you see sharp edges. Sometimes beautiful patterns."
- CTA: "Next" at bottom
**Screen 4: `04-turn-demo.html`**
- Pre-filled thought: "I always mess everything up" in a text card
- Auto-animated Turn sequence plays after 1s delay
- Shows the collapse → multiply → crystallize → settle animation
- 3 reframe blocks appear with sample perspectives
- CTA: "That's the Turn" → next screen
**Screen 5: `05-style-selection.html`**
- Heading: "Choose your coaching style"
- 4 radio options using `.radio-option`:
- Stoic Clarity — "Direct truths, no sugarcoating"
- Compassionate — "Warmth first, gentle nudges"
- Pragmatic — "Practical steps, skip the fluff"
- Growth-Oriented — "Challenge me to stretch"
- Each has a small icon (inline SVG fragment in the matching style)
- CTA: "Continue" — enabled when one is selected
**Screen 6: `06-notifications.html`**
- Centered layout
- Icon: bell with fragment accent
- Heading: "Stay on track"
- Body: "Gentle reminders to check in with yourself"
- Two buttons: "Allow Notifications" (primary), "Not now" (ghost)
**Screen 7: `07-account-creation.html`**
- Apple Sign In button (full width, dark with Apple logo)
- Google Sign In button (full width, outlined)
- Divider with "or"
- Email input + Password input
- "Create Account" primary button
- "Already have an account? Sign in" ghost link
**Screen 8: `08-first-turn.html`**
- Heading: "What's on your mind?"
- Large textarea with placeholder: "Type a thought that's been bothering you..."
- Fragment hint: small dim text "The Turn will show you new angles"
- Submit button: "Turn the kaleidoscope" (amethyst primary)
- Decorative: subtle amethyst breathing aura behind textarea
**Screen 9: `09-welcome-complete.html`**
- Centered layout
- Personalized kaleidoscope pattern (using their coaching style color)
- Heading: "You're ready"
- Subtext: "Your kaleidoscope is set. Let's find some new angles."
- CTA: "Enter Kalei" — transitions to Turn Home
---
### Turn Tab (Screens 1014) → `screens/turn/`
**Screen 10: `10-turn-home.html`**
- Tab bar with Turn active (amethyst)
- No nav header (root tab screen)
- Greeting: "Good morning, [Name]" — heading class
- Subtext: "What's weighing on you?" — body, dim-light
- Large textarea card with rounded corners, deep-glass bg
- Placeholder: "Something happened today..."
- Below textarea: recent Turn history cards (23 sample cards with mini kaleidoscope patterns)
- Section header: "RECENT TURNS" with "See all" action link
- Floating action: "Turn the kaleidoscope" button at bottom (above tab bar)
- Breathing aura behind greeting area
**Screen 11: `11-turn-input-active.html`**
- Same as Turn Home but textarea is focused (amethyst border glow)
- Text typed: "I completely bombed my presentation today and everyone saw"
- Character count in bottom-right of textarea
- Submit button fully visible and active
- Keyboard visible (simple CSS representation or just reduced content area)
**Screen 12: `12-turn-animation.html`**
- The signature Turn animation playing
- Input text visible at top, then collapses
- 3 fragments emerge and drift to positions
- This is the transition state between input and results
- Background: subtle prismatic shimmer
**Screen 13: `13-turn-results.html`**
- Nav header: "Your Turn" with back chevron
- Original thought in a dim card at top: "I completely bombed my presentation..."
- Below: 3 reframe blocks (amethyst, sapphire, emerald) with AI-generated perspectives
- Detected distortions: chips showing "Catastrophizing" and "Overgeneralization" in amber
- Actions row: Save (bookmark icon), Share (share icon), Try Another (refresh icon)
- Kaleidoscope pattern unique to this Turn between the thought and reframes
- No tab bar (sub-screen)
**Screen 14: `14-turn-history.html`**
- Nav header: "Turn History" with back chevron
- List of Turn cards, each showing:
- Mini kaleidoscope thumbnail (left)
- First line of original thought (truncated)
- Date + number of perspectives
- Detected distortion chips
- Filter chips at top: All, This Week, Saved
- No tab bar
---
### Mirror Tab (Screens 1519) → `screens/mirror/`
**Screen 15: `15-mirror-home.html`**
- Tab bar with Mirror active (amber)
- Greeting area with amber accent
- "Start a session" primary card — large, with hexagonal Mirror icon
- Streak indicator: "3 days" with amber flame
- Recent sessions list (23 cards showing date, duration, fragment count)
- Section: "YOUR FRAGMENTS" — grid of recent detected distortion chips with counts
**Screen 16: `16-mirror-session.html`**
- Nav header: "Mirror Session" with close (X) button on right
- Chat bubble interface
- User messages (right-aligned, amethyst-tinted bg)
- AI responses (left-aligned, kalei-navy bg)
- Input accessory bar at bottom with text field + send button
- 34 exchanges shown
- No tab bar (full-screen session)
**Screen 17: `17-mirror-fragment-highlight.html`**
- Same as active session but with a detected fragment
- One user message has amber `.fragment-highlight` underline on a phrase
- Tiny amber fragment ◇ pulses beside the highlighted text
- Amber glow radiates from the highlight
- Hint text: "Fragment detected" in amber label below the message
**Screen 18: `18-mirror-fragment-detail.html`**
- Half-sheet modal (`.modal-overlay` + `.modal-sheet`)
- Behind: the chat session dimmed by scrim
- Sheet content:
- Grab handle
- Distortion name: "Catastrophizing" in amber heading
- Icon from `icons-distortions.svg` (inline)
- Highlighted text quoted
- Explanation: 12 sentences about this distortion
- "Turn this thought" button (amethyst) — links to Turn with pre-filled text
- "Dismiss" ghost button
**Screen 19: `19-mirror-reflection.html`**
- Nav header: "Session Reflection"
- Session summary card:
- Duration: "12 minutes"
- Words written: "847"
- Fragments detected: 3 (with distortion chips)
- Mood check: "How are you feeling now?" with 5 emoji-like options (abstract geometric, not actual emoji)
- Key themes identified (AI-generated tags)
- "Save Session" primary button
- "Start a Turn" secondary button
---
### Lens Tab (Screens 2030) → `screens/lens/`
**Screen 20: `20-lens-dashboard.html`**
- Tab bar with Lens active (emerald)
- Heading: "Your Lens" in emerald
- Active goals list (23 goal cards):
- Progress ring (left) showing completion %
- Goal title + next action step
- Days remaining chip
- "Add New Goal" button (emerald primary)
- Section: "DAILY AFFIRMATION" — card with today's auto-generated affirmation
- Section: "REHEARSALS" — upcoming/recent rehearsal sessions
**Screens 2126: `21-lens-create-step1.html` through `26-lens-create-step6.html`**
- 6-step goal creation wizard
- Step progress dots at top (`.step-progress`)
- Nav header: "New Goal" with step indicator
- **Step 1 — Name:** "What do you want to achieve?" + text input
- **Step 2 — Why:** "Why does this matter to you?" + textarea (emotional driver)
- **Step 3 — Obstacles:** "What might get in the way?" + add multiple obstacle chips
- **Step 4 — If-Then Plans:** For each obstacle, create an if-then implementation intention
- **Step 5 — Milestones:** Break goal into 35 milestones with target dates
- **Step 6 — Visualization:** "Close your eyes and imagine achieving this" — guided prompt + "Save Goal" CTA
- Each step: emerald accent, previous/next buttons
**Screen 27: `27-lens-goal-detail.html`**
- Nav header: goal title
- Large progress ring (emerald)
- Milestone checklist with completion states
- If-Then plans listed
- "Start Rehearsal" button (emerald)
- "Log Progress" button (secondary)
**Screen 28: `28-lens-affirmation.html`**
- Centered, full-screen card feel
- Today's AI-generated affirmation in display-md
- Decorative: emerald breathing aura behind text
- Mini kaleidoscope with emerald tint
- "Reflect on this" button → opens Mirror with affirmation as prompt
**Screens 2930: `29-rehearsal-session.html`, `30-rehearsal-complete.html`**
- **Session:** Guided visualization interface
- Soft emerald background glow
- Step-by-step prompts appearing one at a time with fade-in
- Timer ring showing session progress
- "I can see it" / "Next" progression
- Breathing guide animation (expanding/contracting circle)
- **Complete:** Session summary
- Vividness rating (15 stars or fragments)
- "How real did it feel?" slider
- Session added to Evidence Wall notification
---
### Gallery Tab (Screens 3134) → `screens/gallery/`
**Screen 31: `31-gallery-all.html`**
- Tab bar with Gallery active (sapphire)
- Toggle: "Patterns" / "Keepsakes" at top
- Grid of pattern cards (2 columns):
- Each card: mini kaleidoscope visual, thought preview, date, distortion chips
- Sapphire accent on active/selected
- Sorting: "Recent" / "Most Reframed" chips
**Screen 32: `32-gallery-keepsakes.html`**
- Same layout but showing saved/bookmarked Turns
- Each card: kaleidoscope pattern, saved reframe text, source thought (dim)
- Heart/bookmark icon indicating saved state
**Screen 33: `33-gallery-detail.html`**
- Nav header: "Pattern" with back + share action
- Large kaleidoscope pattern visualization
- Original thought
- All 3 reframe perspectives
- Detected distortions with explanations
- "Turn again" button (get fresh perspectives)
- Metadata: date, coaching style used
**Screen 34: `34-gallery-search.html`**
- Search input at top (sapphire focus border)
- Filter chips: distortion types, date ranges, features
- Results list updating as filters change
---
### You Tab (Screens 3543) → `screens/you/`
**Screen 35: `35-you-profile.html`**
- Tab bar with You active (soft light)
- Avatar circle (initial or placeholder)
- Name, member since date
- Stats row: Turns taken, Mirror sessions, Active goals
- Quick links: Settings, Subscription, Data & Privacy
- Section: "EVIDENCE WALL" — preview mosaic (link to full view)
- Section: "SPECTRUM" — preview card (Phase 2, Prism badge)
**Screen 36: `36-you-stats.html`**
- Nav header: "Your Stats"
- Stat blocks: Total Turns, Mirror Sessions, Goals Completed, Streak Days
- Bar chart: Turns per week (simple CSS bars)
- Top distortions: ranked list with amber bars showing frequency
- Most used feature breakdown
**Screen 37: `37-you-settings.html`**
- Nav header: "Settings"
- Sections with `.card-action` items:
- Profile: Edit name, coaching style
- Notifications: link to #62
- Appearance: (future: themes)
- Data & Privacy: Export (#63), Delete Account (#64)
- About: Version, Terms, Privacy Policy
**Screen 38: `38-you-subscription.html`**
- Nav header: "Subscription"
- Current plan card (Free or Prism)
- If Free: comparison table showing Free vs Prism features
- Prism pricing: "$7.99/month" with prismatic text gradient
- Feature bullets for Prism: Unlimited turns, Mirror sessions, Spectrum access, Priority AI
- CTA: "Upgrade to Prism" (prismatic gradient button)
**Screens 3943: Evidence Wall** (See Section 10 below for detailed specs)
---
### Ritual (Screens 4449) → `screens/ritual/`
**Screen 44: `44-ritual-templates.html`**
- Nav header: "Choose Your Ritual" with back
- 3 ritual template cards:
- **Morning Clarity** (Amethyst): Mirror reflection → Turn reframe → Lens affirmation
- **Evening Wind-Down** (Sapphire): Mirror journal → Turn gratitude → Lens review
- **Quick Reset** (Emerald): Turn single thought → Mirror check-in (2 min)
- Each card shows: name, duration, steps preview, accent color
**Screens 4547: `45-ritual-morning.html`, `46-ritual-evening.html`, `47-ritual-quick.html`**
- Active ritual flow
- Step progress at top showing current step
- Current step content fills the screen:
- Mirror step: simplified journaling interface
- Turn step: quick reframe input
- Lens step: affirmation display or goal check-in
- "Next Step" button at bottom
- Timer running in header
**Screen 48: `48-ritual-complete.html`**
- Celebration screen
- Prismatic kaleidoscope animation (success burst from `loading-animations.svg` reference)
- "Ritual Complete" heading
- Stats: time taken, steps completed, streak count
- Evidence Wall tile preview: "New tile earned!"
- CTA: "Done" returns to Turn Home
**Screen 49: `49-ritual-streak.html`**
- Nav header: "Ritual Streak"
- Calendar view (week by week) with amber-filled completed days
- Current streak count (large display number)
- Longest streak record
- Heat map of ritual completion times
---
### Spectrum (Screens 5057) → `screens/spectrum/`
**Screen 50: `50-spectrum-dashboard.html`**
- Nav header: "Spectrum" with Prism badge
- 5 preview cards linking to each visualization:
- The River (prismatic flowing band)
- Your Glass (radar chart thumbnail)
- Turn Impact (before/after bars)
- Rhythm Detection (bubble chart)
- Growth Trajectory (line chart)
- Time range selector: Week / Month / All Time
- Overall insight card with AI-generated summary
**Screens 5155:** Each is a full-screen visualization detail
- **51: `51-spectrum-river.html`** — Flowing prismatic band showing emotional patterns over time, with fragment data points. Reference `spectrum-visualizations.svg` River section.
- **52: `52-spectrum-glass.html`** — Radar/spider chart showing balance across features. Reference Glass section.
- **53: `53-spectrum-impact.html`** — Before/after bar pairs showing Turn effectiveness. Ruby (before) → Emerald (after).
- **54: `54-spectrum-rhythm.html`** — Time-of-day bubble chart showing when user is most active/reflective.
- **55: `55-spectrum-growth.html`** — Line chart with fragment data points and milestone markers showing progress trajectory.
**Screens 5657: Summaries**
- **56: `56-spectrum-weekly.html`** — AI-generated weekly summary with key metrics, top distortions, recommended actions
- **57: `57-spectrum-monthly.html`** — Deeper monthly analysis with trend arrows, comparison to previous month, growth areas
---
### Modals & System (Screens 5864) → `screens/modals/` and `screens/system-states/`
**Screen 58: `58-upgrade-modal.html`**
- `.modal-overlay.centered` + `.modal-card`
- Prismatic gradient border on card
- "Unlock Kalei Prism" heading
- Feature preview (3 key benefits)
- Price: "$7.99/month"
- "Start Free Trial" primary button
- "Maybe Later" ghost button
**Screen 59: `59-rate-limit.html`**
- Toast or inline card showing: "You've used your free turns for today"
- Upgrade CTA
- Timer showing when limit resets
**Screen 60: `60-crisis-response.html`**
- Full-screen safety response
- Ruby accent throughout
- "We're here for you" heading
- Crisis hotline numbers
- "Talk to someone now" button (ruby primary)
- "I'm okay, continue" secondary option
- Breathing exercise link
**Screen 61: `61-pattern-share.html`**
- Share sheet modal
- Pattern card preview (how it'll look when shared)
- Share targets: Copy Link, Messages, More...
- Generated image: kaleidoscope pattern + thought + app branding
**Screen 62: `62-notification-settings.html`**
- Nav header: "Notifications"
- Toggle rows for each notification type:
- Daily Ritual Reminder
- Mirror Check-in
- Weekly Spectrum Summary
- Streak Alerts
- Time picker for reminder times
**Screen 63: `63-data-export.html`**
- Nav header: "Export Your Data"
- Explanation of what gets exported
- Format options: JSON, PDF summary
- "Export Data" primary button
- Processing state with loading animation
**Screen 64: `64-account-deletion.html`**
- Nav header: "Delete Account"
- Warning card (ruby border)
- Explanation of what gets deleted (irreversible)
- Confirmation text input: "Type DELETE to confirm"
- "Delete My Account" button (ruby, disabled until confirmed)
- "Cancel" ghost button
---
## 10. Evidence Wall — Detailed Build Spec
The Evidence Wall is Kalei's mastery tracking mosaic. Tiles are earned through activities and form a growing visual tapestry.
### Tile Types
| Type | Shape | Earned From | Color |
|------|-------|------------|-------|
| Diamond | ◇ | Completing a Turn | Amethyst |
| Hexagon | ⬡ | Mirror session | Amber |
| Circle | ● | Lens goal milestone | Emerald |
| Rectangle | ▭ | Ritual completion | Sapphire |
| Triangle | △ | Streak achievement | Rose |
### States
- **Screen 39 (Empty):** Ghost tile outlines with dashed borders, CTA "Complete your first Turn to earn a tile"
- **Screen 40 (Early, 35 tiles):** Tiles placed with gaps, faint connection lines between them
- **Screen 41 (Mid, 1015 tiles):** Denser arrangement, connection web forming, pattern emerging
- **Screen 42 (Full, 20+ tiles):** Rich mosaic with glowing connections, celebration state
- **Screen 43 (Tile Detail):** Tap a tile → half-sheet showing: tile type, date earned, source activity, related thought/goal
### Layout Algorithm (CSS Grid)
```css
.evidence-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
padding: 16px;
}
.evidence-tile {
aspect-ratio: 1;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid;
position: relative;
}
/* Some tiles span 2 columns or rows for visual interest */
.evidence-tile.wide { grid-column: span 2; aspect-ratio: 2/1; }
.evidence-tile.tall { grid-row: span 2; aspect-ratio: 1/2; }
```
---
## 11. Monetization & Rate Limiting UI
### Free Tier (Kalei)
- 3 Turns/day, 1 Mirror session/day, 3 Lens goals max
- No Spectrum access
- Basic Ritual templates only
### Prism Tier ($7.99/month)
- Unlimited Turns & Mirror sessions
- Unlimited goals
- Full Spectrum access
- Advanced Ritual customization
- Priority AI processing
### UI Implications
- Show `Prism` badge (prismatic gradient chip) next to premium features
- When rate-limited: inline card with count remaining, upgrade CTA
- Subscription screen: comparison table with checkmarks
---
## 12. Build Order — Priority Sequence
Build screens in this order, which follows the user journey and ensures shared components are established first:
### Phase 1: Foundation (build first)
1. `01-splash.html` — establishes breathing logo animation
2. `02-welcome.html` — establishes onboarding layout + hero pattern
3. `10-turn-home.html` — establishes tab bar + greeting + card layout
4. `13-turn-results.html` — establishes reframe blocks + distortion chips
### Phase 2: Core Loop
5. `03-fragment-intro.html`
6. `04-turn-demo.html`
7. `05-style-selection.html`
8. `06-notifications.html`
9. `07-account-creation.html`
10. `08-first-turn.html`
11. `09-welcome-complete.html`
12. `11-turn-input-active.html`
13. `12-turn-animation.html`
14. `14-turn-history.html`
### Phase 3: Mirror Feature
15. `15-mirror-home.html`
16. `16-mirror-session.html`
17. `17-mirror-fragment-highlight.html`
18. `18-mirror-fragment-detail.html`
19. `19-mirror-reflection.html`
### Phase 4: Lens + Rehearsal
20. `20-lens-dashboard.html`
21. `21-lens-create-step1.html` through `26-lens-create-step6.html`
22. `27-lens-goal-detail.html`
23. `28-lens-affirmation.html`
24. `29-rehearsal-session.html`
25. `30-rehearsal-complete.html`
### Phase 5: Gallery + You
26. `31-gallery-all.html`
27. `32-gallery-keepsakes.html`
28. `33-gallery-detail.html`
29. `34-gallery-search.html`
30. `35-you-profile.html`
31. `36-you-stats.html`
32. `37-you-settings.html`
33. `38-you-subscription.html`
### Phase 6: Evidence Wall + Ritual
34. `39-evidence-wall-empty.html`
35. `40-evidence-wall-early.html`
36. `41-evidence-wall-mid.html`
37. `42-evidence-wall-full.html`
38. `43-evidence-wall-detail.html`
39. `44-ritual-templates.html`
40. `45-ritual-morning.html`
41. `46-ritual-evening.html`
42. `47-ritual-quick.html`
43. `48-ritual-complete.html`
44. `49-ritual-streak.html`
### Phase 7: Spectrum (Phase 2)
45. `50-spectrum-dashboard.html`
46. `51-spectrum-river.html`
47. `52-spectrum-glass.html`
48. `53-spectrum-impact.html`
49. `54-spectrum-rhythm.html`
50. `55-spectrum-growth.html`
51. `56-spectrum-weekly.html`
52. `57-spectrum-monthly.html`
### Phase 8: System & Modals
53. `58-upgrade-modal.html`
54. `59-rate-limit.html`
55. `60-crisis-response.html`
56. `61-pattern-share.html`
57. `62-notification-settings.html`
58. `63-data-export.html`
59. `64-account-deletion.html`
---
## 13. Quality Checklist
Before considering any screen complete, verify:
- [ ] Device frame renders at exactly 390 × 844px with 44px rounded corners
- [ ] Status bar shows 9:41, signal bars, wifi icon, green battery
- [ ] Tab bar (if present) has correct active tab with feature color
- [ ] All text uses design system typography classes (no raw font sizes)
- [ ] All colors use CSS custom properties (`var(--amethyst)`, not `#8B5CF6`)
- [ ] Fragment diamonds use gradient fills with specular highlight
- [ ] Glow effects use `box-shadow` with color at 0.3 opacity (not drop-shadow)
- [ ] Breathing animations use 6s `ease-in-out infinite` cycle
- [ ] No native emoji anywhere — use geometric SVG abstractions
- [ ] Cards use `--kalei-navy` background with `--twilight` borders
- [ ] Buttons follow the component system (`.btn-primary`, `.btn-secondary`, `.btn-ghost`)
- [ ] Interactive elements have hover/active states defined
- [ ] Content doesn't overflow the device frame
- [ ] Scrollable areas have hidden scrollbars (`.screen-content` handles this)
- [ ] Links between screens use relative paths (`../turn/10-turn-home.html`)
---
## 14. Key Documents to Read
Read these documents in this order for full context:
1. **This file** — you're here
2. **`assets/ASSET-INDEX.md`** — what SVG elements exist
3. **`assets/design-system.css`** — all tokens, components, utilities
4. **`docs/product/kalei-complete-user-journey.md`** — every screen described in detail
5. **`docs/product/kalei-complete-design.md`** — feature specs and interaction patterns
6. **`docs/brand/kalei-brand-guidelines.md`** — voice, tone, visual principles
7. **`docs/technical/kalei-user-journey-technical-map.md`** — API/DB context (for realistic mock data)
8. **`logo-mockups/finalists/soft-elegance-final.svg`** — the visual DNA source
---
*Built for Kalei — Same pieces. New angle.*