diff --git a/.agents/skills/bencium-controlled-ux-designer/ACCESSIBILITY.md b/.agents/skills/bencium-controlled-ux-designer/ACCESSIBILITY.md
new file mode 100644
index 0000000..417a763
--- /dev/null
+++ b/.agents/skills/bencium-controlled-ux-designer/ACCESSIBILITY.md
@@ -0,0 +1,828 @@
+# Accessibility Reference
+
+Comprehensive guide for implementing accessible interfaces following WCAG 2.1 AA standards.
+
+## Core Principles (POUR)
+
+### Perceivable
+Information and UI components must be presentable to users in ways they can perceive.
+
+### Operable
+UI components and navigation must be operable by all users.
+
+### Understandable
+Information and the operation of UI must be understandable.
+
+### Robust
+Content must be robust enough to be interpreted by a wide variety of user agents, including assistive technologies.
+
+## Semantic HTML
+
+### Use Appropriate Elements
+
+**Good:**
+```tsx
+
+
+
+
+ Article Title
+ Article content...
+
+
+
+
+```
+
+**Bad:**
+```tsx
+
+```
+
+### Heading Hierarchy
+
+**Correct hierarchy:**
+```tsx
+Page Title
+ Section 1
+ Subsection 1.1
+ Subsection 1.2
+ Section 2
+ Subsection 2.1
+```
+
+**Incorrect (skips levels):**
+```tsx
+Page Title
+ Section 1 // ❌ Skips h2 and h3
+```
+
+## Keyboard Navigation
+
+### Focus Management
+
+```tsx
+// Ensure all interactive elements are keyboard accessible
+
+ Accessible Button
+
+
+// Custom interactive elements need tabindex
+ {
+ if (e.key === 'Enter' || e.key === ' ') {
+ handleClick();
+ }
+ }}
+ className="cursor-pointer focus:ring-4 focus:ring-blue-500"
+>
+ Custom Button
+
+```
+
+### Tab Order
+
+```tsx
+// Use tabIndex to control focus order
+
+
+// Use tabIndex={-1} to remove from tab order but allow programmatic focus
+
+ Error details...
+
+```
+
+### Skip Links
+
+```tsx
+// Allow keyboard users to skip to main content
+
+ Skip to main content
+
+
+
+ {/* Main content */}
+
+```
+
+## ARIA Attributes
+
+### Common ARIA Roles
+
+```tsx
+// Navigation landmark
+
+ {/* Navigation items */}
+
+
+// Banner (header)
+
+ {/* Header content */}
+
+
+// Main content
+
+ {/* Main content */}
+
+
+// Complementary (sidebar)
+
+ {/* Sidebar content */}
+
+
+// Content info (footer)
+
+ {/* Footer content */}
+
+
+// Search
+
+```
+
+### ARIA Labels
+
+```tsx
+// aria-label for elements without visible text
+
+
+
+
+// aria-labelledby to reference another element
+
+
Confirm Action
+
Are you sure you want to continue?
+
+
+// aria-describedby for additional description
+
+
+ Password must be at least 8 characters
+
+```
+
+### ARIA States
+
+```tsx
+// aria-expanded for expandable elements
+ setIsOpen(!isOpen)}
+>
+ Menu {isOpen ? : }
+
+
+
+// aria-pressed for toggle buttons
+ setIsPressed(!isPressed)}
+>
+ {isPressed ? 'Pressed' : 'Not Pressed'}
+
+
+// aria-selected for selectable items
+
+ Tab 1
+
+
+// aria-checked for checkboxes/radio buttons
+ setIsChecked(!isChecked)}
+>
+ Custom Checkbox
+
+```
+
+### ARIA Live Regions
+
+```tsx
+// Announce changes to screen readers
+
+ {statusMessage}
+
+
+// For urgent announcements
+
+ {errorMessage}
+
+
+// For form validation
+
+{hasError && (
+
+ Please enter a valid email address
+
+)}
+```
+
+## Color Contrast
+
+### Minimum Contrast Ratios (WCAG AA)
+
+- **Normal text:** 4.5:1
+- **Large text (18pt+ or 14pt+ bold):** 3:1
+- **UI components and graphics:** 3:1
+
+### Good Contrast Examples
+
+```tsx
+// High contrast text
+
+ Great contrast (21:1)
+
+
+
+ Good contrast (8:1)
+
+
+// Button with good contrast
+
+ High Contrast Button (4.5:1)
+
+```
+
+### Poor Contrast Examples (Avoid)
+
+```tsx
+// ❌ Insufficient contrast
+
+ Poor contrast (2.8:1) - fails WCAG AA
+
+
+// ❌ Don't rely on color alone
+
+ Error Button (color alone indicates state)
+
+
+// ✅ Better: Use icons + color
+
+
+ Error: Fix Issues
+
+```
+
+### Tools for Checking Contrast
+
+- Chrome DevTools: Inspect element → Accessibility tab
+- Online: WebAIM Contrast Checker
+- Figma: Stark plugin
+
+## Alternative Text
+
+### Images
+
+```tsx
+// Informative images
+
+
+// Decorative images
+
+
+// Functional images (buttons)
+
+
+
+
+// Complex images
+
+
+
+ Detailed description of the system architecture showing
+ three main components: frontend, API layer, and database.
+ The frontend communicates with the API via REST...
+
+
+```
+
+### Icons
+
+```tsx
+import { MagnifyingGlass, Bell, User } from '@phosphor-icons/react';
+
+// Decorative icons (with adjacent text)
+
+
+ Search
+
+
+// Functional icons (no adjacent text)
+
+
+
+
+// Icons with state
+
+
+ 3 unread notifications
+ 3
+
+```
+
+## Forms
+
+### Labels and Instructions
+
+```tsx
+// Always associate labels with inputs
+
+
+ Email Address
+
+
+
+
+// Group related inputs
+
+ Contact Preferences
+
+
+
+ Email
+
+
+
+ SMS
+
+
+
+```
+
+### Error Handling
+
+```tsx
+
+
+ Password
+
+
+
+ Must be at least 8 characters
+
+ {hasError && (
+
+
+ Password is too short
+
+ )}
+
+```
+
+### Required Fields
+
+```tsx
+// Indicate required fields clearly
+
+ Full Name
+ *
+
+
+
+// Or use text
+
+ Email
+ (required)
+
+```
+
+## Screen Reader-Only Content
+
+### sr-only Class
+
+```css
+/* Add to your CSS */
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border-width: 0;
+}
+
+.focus\:not-sr-only:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ padding: inherit;
+ margin: inherit;
+ overflow: visible;
+ clip: auto;
+ white-space: normal;
+}
+```
+
+### Usage Examples
+
+```tsx
+// Add context for screen readers
+
+
+ Add to favorites
+
+
+// Provide additional context
+
+
Products
+ Showing 24 of 100 results
+
+
+// Skip link
+
+ Skip to main content
+
+```
+
+## Focus Indicators
+
+### Visible Focus States
+
+```tsx
+// Default focus with ring
+
+ Click Me
+
+
+// Custom focus style
+
+ Link Text
+
+
+// Focus within containers
+
+
+
+```
+
+### Focus Management in Modals
+
+```tsx
+import { useEffect, useRef } from 'react';
+
+function Modal({ isOpen, onClose, children }) {
+ const modalRef = useRef(null);
+ const previousFocus = useRef(null);
+
+ useEffect(() => {
+ if (isOpen) {
+ // Store current focus
+ previousFocus.current = document.activeElement;
+
+ // Focus modal
+ modalRef.current?.focus();
+
+ // Trap focus within modal
+ const handleTab = (e) => {
+ if (e.key === 'Tab') {
+ const focusableElements = modalRef.current.querySelectorAll(
+ 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
+ );
+ const firstElement = focusableElements[0];
+ const lastElement = focusableElements[focusableElements.length - 1];
+
+ if (e.shiftKey && document.activeElement === firstElement) {
+ e.preventDefault();
+ lastElement.focus();
+ } else if (!e.shiftKey && document.activeElement === lastElement) {
+ e.preventDefault();
+ firstElement.focus();
+ }
+ }
+ };
+
+ document.addEventListener('keydown', handleTab);
+ return () => document.removeEventListener('keydown', handleTab);
+ } else {
+ // Restore focus
+ previousFocus.current?.focus();
+ }
+ }, [isOpen]);
+
+ if (!isOpen) return null;
+
+ return (
+
+
e.stopPropagation()}
+ >
+ {children}
+
+ Close
+
+
+
+ );
+}
+```
+
+## Testing Checklist
+
+### Automated Testing
+
+```bash
+# Install axe-core for accessibility testing
+npm install --save-dev @axe-core/react
+
+# Use in tests
+import { axe, toHaveNoViolations } from 'jest-axe';
+expect.extend(toHaveNoViolations);
+
+test('should have no accessibility violations', async () => {
+ const { container } = render( );
+ const results = await axe(container);
+ expect(results).toHaveNoViolations();
+});
+```
+
+### Manual Testing
+
+**Keyboard Navigation:**
+- [ ] Can navigate entire site using Tab key
+- [ ] Can activate all interactive elements with Enter/Space
+- [ ] Focus indicators are clearly visible
+- [ ] No keyboard traps
+- [ ] Logical tab order
+
+**Screen Reader Testing:**
+- [ ] Test with NVDA (Windows) or VoiceOver (Mac)
+- [ ] All images have appropriate alt text
+- [ ] Headings create logical structure
+- [ ] Forms have proper labels
+- [ ] Dynamic content is announced
+
+**Visual Testing:**
+- [ ] Text has sufficient contrast (4.5:1 minimum)
+- [ ] UI works at 200% zoom
+- [ ] Content reflows properly on mobile
+- [ ] No information conveyed by color alone
+- [ ] Focus indicators are visible
+
+**Tools to Use:**
+- Chrome DevTools Lighthouse
+- WAVE browser extension
+- axe DevTools browser extension
+- Color contrast analyzer
+- Screen reader (NVDA/VoiceOver)
+
+## Common Patterns
+
+### Accessible Modal
+
+```tsx
+
+
+
+
+ Confirm Action
+
+
+ Are you sure you want to proceed?
+
+
+
+ Confirm
+
+
+ Cancel
+
+
+
+
+```
+
+### Accessible Tabs
+
+```tsx
+function Tabs({ tabs }) {
+ const [activeTab, setActiveTab] = useState(0);
+
+ return (
+
+
+ {tabs.map((tab, index) => (
+ setActiveTab(index)}
+ className={`
+ px-4 py-2 border-b-2
+ ${activeTab === index
+ ? 'border-blue-600 font-medium'
+ : 'border-transparent'
+ }
+ `}
+ >
+ {tab.label}
+
+ ))}
+
+ {tabs.map((tab, index) => (
+
+ {tab.content}
+
+ ))}
+
+ );
+}
+```
+
+### Accessible Tooltip
+
+```tsx
+function Tooltip({ text, children }) {
+ const [isVisible, setIsVisible] = useState(false);
+ const tooltipId = useId();
+
+ return (
+
+
setIsVisible(true)}
+ onMouseLeave={() => setIsVisible(false)}
+ onFocus={() => setIsVisible(true)}
+ onBlur={() => setIsVisible(false)}
+ >
+ {children}
+
+ {isVisible && (
+
+ {text}
+
+ )}
+
+ );
+}
+```
+
+## Resources
+
+- [WCAG 2.1 Quick Reference](https://www.w3.org/WAI/WCAG21/quickref/)
+- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
+- [ARIA Authoring Practices Guide](https://www.w3.org/WAI/ARIA/apg/)
+- [axe DevTools](https://www.deque.com/axe/devtools/)
+- [WAVE Browser Extension](https://wave.webaim.org/extension/)
diff --git a/.agents/skills/bencium-controlled-ux-designer/DESIGN-SYSTEM-TEMPLATE.md b/.agents/skills/bencium-controlled-ux-designer/DESIGN-SYSTEM-TEMPLATE.md
new file mode 100644
index 0000000..e968748
--- /dev/null
+++ b/.agents/skills/bencium-controlled-ux-designer/DESIGN-SYSTEM-TEMPLATE.md
@@ -0,0 +1,577 @@
+# Design System Template
+
+Meta-framework for understanding what's fixed, project-specific, and adaptable in your design system.
+
+## Purpose
+
+This template helps you distinguish between:
+- **Fixed Elements**: Universal rules that never change
+- **Project-Specific Elements**: Filled in for each project based on brand
+- **Adaptable Elements**: Context-dependent implementations
+
+---
+
+## I. FIXED ELEMENTS
+
+These foundations remain consistent across all projects, regardless of brand or context.
+
+### 1. Spacing Scale
+
+**Fixed System:**
+```
+4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px
+```
+
+**Usage:**
+- Margins, padding, gaps between elements
+- Mathematical relationships ensure visual harmony
+- Use multipliers of base unit (4px)
+
+**Why Fixed:**
+Consistent spacing creates visual rhythm regardless of brand personality.
+
+### 2. Grid System
+
+**Fixed Structure:**
+- **12-column grid** for most layouts (divisible by 2, 3, 4, 6)
+- **16-column grid** for data-heavy interfaces
+- **Gutters**: 16px (mobile), 24px (tablet), 32px (desktop)
+
+**Why Fixed:**
+Grid provides structural order. Brand personality shows through color, typography, content—not grid structure.
+
+### 3. Accessibility Standards
+
+**Fixed Requirements:**
+- **WCAG 2.1 AA** compliance minimum
+- **Contrast**: 4.5:1 for normal text, 3:1 for large text
+- **Touch targets**: Minimum 44×44px
+- **Keyboard navigation**: All interactive elements accessible
+- **Screen reader**: Semantic HTML, ARIA labels where needed
+
+**Why Fixed:**
+Accessibility is not negotiable. It's a baseline requirement for ethical, legal, and usable products.
+
+### 4. Typography Hierarchy Logic
+
+**Fixed Structure:**
+- **Mathematical scaling**: 1.25x (major third) or 1.333x (perfect fourth)
+- **Hierarchy levels**: Display → H1 → H2 → H3 → Body → Small → Caption
+- **Line height**: 1.5x for body text, 1.2-1.3x for headlines
+- **Line length**: 45-75 characters optimal
+
+**Why Fixed:**
+Mathematical relationships create predictable, harmonious hierarchy. Specific fonts change, but the logic doesn't.
+
+### 5. Component Architecture
+
+**Fixed Patterns:**
+- **Button states**: Default, Hover, Active, Focus, Disabled
+- **Form structure**: Label above input, error below, helper text optional
+- **Modal pattern**: Overlay + centered content + close mechanism
+- **Card structure**: Container → Header → Body → Footer (optional)
+
+**Why Fixed:**
+Users expect consistent component behavior. Architecture is fixed; appearance is project-specific.
+
+### 6. Animation Timing Framework
+
+**Fixed Physics Profiles:**
+- **Lightweight** (icons, chips): 150ms
+- **Standard** (cards, panels): 300ms
+- **Weighty** (modals, pages): 500ms
+
+**Fixed Easing:**
+- **Ease-out**: Entrances (fast start, slow end)
+- **Ease-in**: Exits (slow start, fast end)
+- **Ease-in-out**: Transitions (smooth both ends)
+
+**Why Fixed:**
+Natural physics feel consistent across brands. Duration and easing create that feeling.
+
+---
+
+## II. PROJECT-SPECIFIC ELEMENTS
+
+Fill in these for each project based on brand personality and purpose.
+
+### 1. Brand Color System
+
+**Template Structure:**
+
+```
+NEUTRALS (4-5 colors):
+- Background lightest: _______ (e.g., slate-50 or warm-white)
+- Surface: _______ (e.g., slate-100)
+- Border/divider: _______ (e.g., slate-300)
+- Text secondary: _______ (e.g., slate-600)
+- Text primary: _______ (e.g., slate-900)
+
+ACCENTS (1-3 colors):
+- Primary (main CTA): _______ (e.g., teal-500)
+- Secondary (alternative action): _______ (optional)
+- Status colors:
+ - Success: _______ (green-ish)
+ - Warning: _______ (amber-ish)
+ - Error: _______ (red-ish)
+ - Info: _______ (blue-ish)
+```
+
+**Questions to Answer:**
+- What emotion should the brand evoke? (Trust, excitement, calm, urgency)
+- Warm or cool neutrals?
+- Conservative or bold accents?
+
+**Examples:**
+
+**Project A: Fintech App**
+```
+Neutrals: Cool greys (slate-50 → slate-900)
+Primary: Deep blue (#0A2463) – trust, professionalism
+Success: Muted green (#10B981)
+Why: Financial products need trust, not playfulness
+```
+
+**Project B: Creative Community**
+```
+Neutrals: Warm greys with beige undertones
+Primary: Coral (#FF6B6B) – energy, creativity
+Success: Teal (#06D6A0) – fresh, unexpected
+Why: Creative spaces should feel inviting, not corporate
+```
+
+**Project C: Healthcare Platform**
+```
+Neutrals: Pure greys (minimal color temperature)
+Primary: Soft blue (#4A90E2) – calm, clinical
+Success: Medical green (#38A169)
+Why: Healthcare needs clarity and calm, not distraction
+```
+
+### 2. Typography Pairing
+
+**Template:**
+
+```
+HEADLINE FONT: _______
+- Weight: _______ (e.g., Bold 700)
+- Use case: H1, H2, display text
+- Personality: _______ (geometric/humanist/serif/etc.)
+
+BODY FONT: _______
+- Weight: _______ (e.g., Regular 400, Medium 500)
+- Use case: Paragraphs, UI text
+- Personality: _______ (neutral/readable/efficient)
+
+OPTIONAL ACCENT FONT: _______
+- Weight: _______
+- Use case: _______ (special headlines, callouts)
+```
+
+**Pairing Logic:**
+- Serif + Sans-serif (classic, editorial)
+- Geometric + Humanist (modern + warm)
+- Display + System (distinctive + efficient)
+
+**Examples:**
+
+**Project A: Editorial Platform**
+```
+Headline: Playfair Display (Serif, Bold 700)
+Body: Inter (Sans-serif, Regular 400)
+Why: Serif headlines = trustworthy, editorial feel
+```
+
+**Project B: Tech Startup**
+```
+Headline: DM Sans (Sans-serif, Bold 700)
+Body: DM Sans (Regular 400, Medium 500)
+Why: Single-font system = modern, efficient, cohesive
+```
+
+**Project C: Luxury Brand**
+```
+Headline: Cormorant Garamond (Serif, Light 300)
+Body: Lato (Sans-serif, Regular 400)
+Why: Elegant serif + readable sans = sophisticated
+```
+
+### 3. Tone of Voice
+
+**Template:**
+
+```
+BRAND PERSONALITY:
+- Formal ↔ Casual: _______ (1-10 scale)
+- Professional ↔ Friendly: _______ (1-10 scale)
+- Serious ↔ Playful: _______ (1-10 scale)
+- Authoritative ↔ Conversational: _______ (1-10 scale)
+
+MICROCOPY EXAMPLES:
+- Button label (submit form): _______
+- Error message (invalid email): _______
+- Success message (saved): _______
+- Empty state: _______
+
+ANIMATION PERSONALITY:
+- Speed: _______ (quick/moderate/slow)
+- Feel: _______ (precise/smooth/bouncy)
+```
+
+**Examples:**
+
+**Project A: Banking App**
+```
+Personality: Formal (8), Professional (9), Serious (8)
+Button: "Submit Application"
+Error: "Email address format is invalid"
+Success: "Application submitted successfully"
+Animation: Quick (precise, efficient, no-nonsense)
+```
+
+**Project B: Social App**
+```
+Personality: Casual (8), Friendly (9), Playful (7)
+Button: "Let's go!"
+Error: "Hmm, that email doesn't look right"
+Success: "Nice! You're all set 🎉"
+Animation: Moderate (smooth, friendly bounce)
+```
+
+### 4. Animation Speed & Feel
+
+**Template:**
+
+```
+SPEED PREFERENCE:
+- UI interactions: _______ (100-150ms / 150-200ms / 200-300ms)
+- State changes: _______ (200ms / 300ms / 400ms)
+- Page transitions: _______ (300ms / 500ms / 700ms)
+
+ANIMATION STYLE:
+- Easing preference: _______ (sharp / standard / bouncy)
+- Movement type: _______ (minimal / smooth / expressive)
+```
+
+**Examples:**
+
+**Project A: Trading Platform**
+```
+Speed: Fast (100ms UI, 200ms states, 300ms pages)
+Style: Sharp easing, minimal movement
+Why: Traders need speed, not distraction
+```
+
+**Project B: Wellness App**
+```
+Speed: Slow (200ms UI, 400ms states, 500ms pages)
+Style: Smooth easing, gentle movement
+Why: Calm, relaxing experience matches brand
+```
+
+---
+
+## III. ADAPTABLE ELEMENTS
+
+Context-dependent implementations that vary based on use case.
+
+### 1. Component Variations
+
+**Button Variants:**
+- **Primary**: Full background color (high emphasis)
+- **Secondary**: Outline only (medium emphasis)
+- **Tertiary**: Text only (low emphasis)
+- **Destructive**: Red-ish (danger actions)
+- **Ghost**: Minimal (navigation, toolbars)
+
+**Adaptation Rules:**
+- Primary: Main CTA, one per screen section
+- Secondary: Alternative actions
+- Tertiary: Less important actions, multiple allowed
+- Use brand colors, but hierarchy logic is fixed
+
+### 2. Responsive Breakpoints
+
+**Fixed Ranges:**
+- XS: 0-479px (small phones)
+- SM: 480-767px (large phones)
+- MD: 768-1023px (tablets)
+- LG: 1024-1439px (laptops)
+- XL: 1440px+ (desktop)
+
+**Adaptable Implementations:**
+
+**Simple Content Site:**
+```
+XS-SM: Single column
+MD: 2 columns
+LG-XL: 3 columns max
+Why: Content-focused, don't overwhelm
+```
+
+**Dashboard/Data App:**
+```
+XS: Collapsed, cards stack
+SM: Simplified sidebar
+MD: Full sidebar + main content
+LG-XL: Sidebar + main + right panel
+Why: Data apps need more screen real estate
+```
+
+### 3. Dark Mode Palette
+
+**Adaptation Strategy:**
+
+Not a simple inversion. Dark mode needs adjusted contrast:
+
+**Light Mode:**
+```
+Background: #FFFFFF (white)
+Text: #0F172A (slate-900) → 21:1 contrast
+```
+
+**Dark Mode (Adapted):**
+```
+Background: #0F172A (slate-900)
+Text: #E2E8F0 (slate-200) → 15.8:1 contrast (still AA, but softer)
+```
+
+**Why Adapt:**
+Pure white on pure black is too harsh. Dark mode needs slightly lower contrast for eye comfort.
+
+### 4. Loading States
+
+**Context-Dependent:**
+
+**Fast operations (<500ms):**
+- No loading indicator (feels instant)
+
+**Medium operations (500ms-2s):**
+- Spinner or skeleton screen
+
+**Long operations (>2s):**
+- Progress bar with percentage
+- Or: Skeleton + estimated time
+
+**Interactive Operations:**
+- Button shows spinner inside (don't disable, show state)
+
+### 5. Error Handling Strategy
+
+**Context-Dependent:**
+
+**Form Errors:**
+```
+Validate: On blur (after user leaves field)
+Display: Inline below field
+Recovery: Clear error on fix
+```
+
+**API Errors:**
+```
+Transient (network): Show retry button
+Permanent (404): Show helpful message + next steps
+Critical (500): Contact support option
+```
+
+**Data Errors:**
+```
+Missing: Show empty state with action
+Corrupt: Show error boundary with reload
+Invalid: Highlight + explain what's wrong
+```
+
+---
+
+## DECISION TREE
+
+When implementing a feature, ask:
+
+### Is this...
+
+**FIXED?**
+- Does it affect structure, accessibility, or universal UX?
+- Examples: Spacing scale, grid, contrast ratios, component architecture
+- **Action**: Use the fixed system, no variation
+
+**PROJECT-SPECIFIC?**
+- Does it express brand personality or purpose?
+- Examples: Colors, typography, tone of voice, animation feel
+- **Action**: Fill in the template for this project
+
+**ADAPTABLE?**
+- Does it depend on context, content, or use case?
+- Examples: Component variants, responsive behavior, error handling
+- **Action**: Choose appropriate variation based on context
+
+---
+
+## EXAMPLE: Implementing a "Submit" Button
+
+### Fixed Elements (Always the same):
+- Touch target: 44px minimum height
+- Padding: 16px horizontal (from spacing scale)
+- States: Default, Hover, Active, Focus, Disabled
+- Animation: 150ms ease-out (lightweight profile)
+
+### Project-Specific (Filled per project):
+- **Project A (Bank)**: Dark blue background, white text, "Submit Application"
+- **Project B (Social)**: Coral background, white text, "Let's Go!"
+- **Project C (Healthcare)**: Soft blue background, white text, "Continue"
+
+### Adaptable (Context-dependent):
+- **Form context**: Primary button (full color)
+- **Toolbar context**: Ghost button (text only)
+- **Danger context**: Destructive variant (red-ish)
+
+---
+
+## VALIDATION CHECKLIST
+
+Before finalizing a design, check:
+
+### Fixed Elements
+- [ ] Uses spacing scale (4/8/12/16/24/32/48/64/96px)
+- [ ] Follows grid system (12 or 16 columns)
+- [ ] Meets WCAG AA contrast (4.5:1 normal, 3:1 large)
+- [ ] Touch targets ≥ 44px
+- [ ] Typography follows mathematical scale
+- [ ] Components follow standard architecture
+
+### Project-Specific Elements
+- [ ] Brand colors filled in and intentional
+- [ ] Typography pairing chosen and justified
+- [ ] Tone of voice defined and consistent
+- [ ] Animation speed matches brand personality
+
+### Adaptable Elements
+- [ ] Component variants appropriate for context
+- [ ] Responsive behavior fits content type
+- [ ] Loading states match operation duration
+- [ ] Error handling fits error type
+
+---
+
+## PROJECT KICKOFF TEMPLATE
+
+Use this to start a new project:
+
+```
+PROJECT NAME: _______________________
+PURPOSE: ____________________________
+
+BRAND PERSONALITY:
+- Primary emotion: _______
+- Warm or cool: _______
+- Formal or casual: _______
+- Conservative or bold: _______
+
+COLORS (fill the template):
+- Neutral base: _______
+- Primary accent: _______
+- Status colors: _______ / _______ / _______
+
+TYPOGRAPHY (fill the template):
+- Headline font: _______
+- Body font: _______
+- Pairing rationale: _______
+
+TONE:
+- Button labels style: _______
+- Error message style: _______
+- Success message style: _______
+
+ANIMATION:
+- Speed preference: _______ (fast/moderate/slow)
+- Feel preference: _______ (sharp/smooth/bouncy)
+
+TARGET DEVICES:
+- Primary: _______ (mobile/desktop/both)
+- Secondary: _______
+```
+
+---
+
+## MAINTAINING CONSISTENCY
+
+### Documentation
+- Keep this template updated as system evolves
+- Document WHY choices were made, not just WHAT
+
+### Communication
+- Share with designers: "Here's what varies vs. what's fixed"
+- Share with developers: "Here are the design tokens"
+
+### Tooling
+- Use CSS variables for project-specific values
+- Use Tailwind config for spacing scale
+- Use design tokens in Figma/Storybook
+
+### Reviews
+- Audit: Does new work follow fixed elements?
+- Validate: Are project-specific elements intentional?
+- Question: Are adaptations justified by context?
+
+---
+
+## EXAMPLES OF COMPLETE SYSTEMS
+
+### System A: B2B SaaS (Conservative)
+
+**Fixed**: Standard spacing, 12-col grid, WCAG AA, major third type scale
+**Project-Specific**:
+- Colors: Cool greys + corporate blue
+- Typography: DM Sans (headlines + body)
+- Tone: Professional, formal
+- Animation: Quick, precise (150ms)
+**Adaptable**:
+- Dashboard gets multi-panel layout
+- Forms are extensive (use progressive disclosure)
+- Errors show detailed technical info
+
+### System B: Consumer Social App (Playful)
+
+**Fixed**: Same spacing/grid/accessibility/type logic
+**Project-Specific**:
+- Colors: Warm greys + vibrant coral
+- Typography: Poppins (headlines) + Inter (body)
+- Tone: Casual, friendly, playful
+- Animation: Moderate, bouncy (200ms)
+**Adaptable**:
+- Mobile-first (most users on phones)
+- Forms are minimal (progressive profiling)
+- Errors are friendly, not technical
+
+### System C: Healthcare Platform (Clinical)
+
+**Fixed**: Same foundational structure
+**Project-Specific**:
+- Colors: Pure greys + medical blue
+- Typography: System fonts (SF Pro / Segoe)
+- Tone: Clear, authoritative, calm
+- Animation: Slow, smooth (300ms)
+**Adaptable**:
+- Desktop-first (clinical use at workstations)
+- Forms are complex (HIPAA compliance)
+- Errors are precise with next steps
+
+---
+
+## KEY TAKEAWAY
+
+**The system flexibility framework lets you:**
+- Maintain consistency (fixed elements)
+- Express brand personality (project-specific)
+- Adapt to context (adaptable elements)
+
+**Without this framework:**
+- Designers reinvent spacing every project
+- Components feel inconsistent across products
+- Brand personality overrides accessibility
+- Context-blind implementations feel wrong
+
+**With this framework:**
+- Speed: Start from proven foundations
+- Consistency: Fixed elements guarantee it
+- Flexibility: Express unique brand identity
+- Context: Adapt without breaking system
diff --git a/.agents/skills/bencium-controlled-ux-designer/MOTION-SPEC.md b/.agents/skills/bencium-controlled-ux-designer/MOTION-SPEC.md
new file mode 100644
index 0000000..047bf74
--- /dev/null
+++ b/.agents/skills/bencium-controlled-ux-designer/MOTION-SPEC.md
@@ -0,0 +1,544 @@
+# Motion Specification Template
+
+Detailed animation specifications for consistent motion design across projects.
+
+## Easing Curves
+
+### Standard Easings
+
+**Ease-out (Entrances)**
+```css
+cubic-bezier(0.0, 0.0, 0.2, 1)
+```
+Use for: Elements entering view, expanding, appearing
+
+**Ease-in (Exits)**
+```css
+cubic-bezier(0.4, 0.0, 1, 1)
+```
+Use for: Elements leaving view, collapsing, disappearing
+
+**Ease-in-out (Transitions)**
+```css
+cubic-bezier(0.4, 0.0, 0.2, 1)
+```
+Use for: State changes, transformations, element swaps
+
+**Linear (Continuous)**
+```css
+linear
+```
+Use for: Loading spinners, continuous animations, marquee scrolls
+
+### Custom Easings
+
+**Spring (Bouncy)**
+```css
+cubic-bezier(0.68, -0.55, 0.265, 1.55)
+```
+Use for: Playful interactions, game-like UIs, attention-grabbing
+
+**Sharp (Quick snap)**
+```css
+cubic-bezier(0.4, 0.0, 0.6, 1)
+```
+Use for: Mechanical interactions, precise movements
+
+## Duration Tables
+
+### By Interaction Type
+
+| Interaction | Duration | Easing | Example |
+|-------------|----------|--------|---------|
+| Button press | 100ms | ease-out | Background color change |
+| Hover state | 150ms | ease-out | Underline appearing |
+| Checkbox toggle | 150ms | ease-out | Checkmark animation |
+| Tooltip appear | 200ms | ease-out | Tooltip fade in |
+| Tab switch | 250ms | ease-in-out | Content swap |
+| Accordion expand | 300ms | ease-out | Height animation |
+| Modal open | 300ms | ease-out | Fade + scale up |
+| Modal close | 250ms | ease-in | Fade + scale down |
+| Page transition | 400ms | ease-in-out | Route change |
+| Sheet slide-in | 300ms | ease-out | Bottom sheet |
+| Toast notification | 300ms | ease-out | Slide in from top |
+
+### By Element Weight
+
+| Element Weight | Duration | Example |
+|----------------|----------|---------|
+| Lightweight (< 100px) | 150ms | Icons, badges, chips |
+| Standard (100-500px) | 300ms | Cards, panels, list items |
+| Weighty (> 500px) | 500ms | Modals, full-page transitions |
+
+## State-Specific Animations
+
+### Hover States
+
+**Button Hover:**
+```tsx
+// Tailwind
+
+ Hover Me
+
+
+// Framer Motion
+
+ Hover Me
+
+```
+
+**Link Hover:**
+```tsx
+
+ Link Text
+
+```
+
+**Card Hover:**
+```tsx
+
+ Card Content
+
+```
+
+### Focus States
+
+**Keyboard Focus:**
+```tsx
+
+ Focus Me
+
+```
+
+**Input Focus:**
+```tsx
+
+```
+
+### Active/Pressed States
+
+**Button Press:**
+```tsx
+
+ Press Me
+
+
+// CSS alternative
+
+ Press Me
+
+```
+
+### Disabled States
+
+**Disabled Button:**
+```tsx
+
+ Disabled
+
+```
+
+### Loading States
+
+**Loading Spinner:**
+```tsx
+
+
+
+// CSS
+@keyframes spin {
+ from { transform: rotate(0deg); }
+ to { transform: rotate(360deg); }
+}
+
+.spinner {
+ animation: spin 1s linear infinite;
+}
+```
+
+**Skeleton Loader:**
+```tsx
+
+
+// CSS
+@keyframes pulse {
+ 0%, 100% { opacity: 1; }
+ 50% { opacity: 0.5; }
+}
+
+.animate-pulse {
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
+}
+```
+
+### Success Feedback
+
+**Checkmark Animation:**
+```tsx
+
+
+
+```
+
+**Toast Notification:**
+```tsx
+
+ Success! Changes saved.
+
+```
+
+### Error Feedback
+
+**Shake Animation:**
+```tsx
+
+
+
+
+// CSS alternative
+@keyframes shake {
+ 0%, 100% { transform: translateX(0); }
+ 20%, 60% { transform: translateX(-4px); }
+ 40%, 80% { transform: translateX(4px); }
+}
+
+.shake {
+ animation: shake 0.3s ease-in-out;
+}
+```
+
+**Error Message Slide-in:**
+```tsx
+
+ Please enter a valid email address
+
+```
+
+### Warning Feedback
+
+**Pulse Animation:**
+```tsx
+
+ Warning Content
+
+```
+
+### Form Validation
+
+**Field Validation (On Blur):**
+```tsx
+// Validate on blur, not during typing
+ {
+ const isValid = validateEmail(e.target.value);
+ setError(!isValid);
+ }}
+ className={`
+ border-2 transition-all duration-200 ease-out
+ ${error
+ ? 'border-red-500 focus:ring-red-200'
+ : 'border-slate-300 focus:ring-blue-200'
+ }
+ `}
+/>
+
+{error && (
+
+ Please enter a valid email
+
+)}
+```
+
+## Common Animation Patterns
+
+### Fade In
+```tsx
+// Framer Motion
+
+ Content
+
+
+// CSS
+.fade-in {
+ animation: fadeIn 0.3s ease-out;
+}
+
+@keyframes fadeIn {
+ from { opacity: 0; }
+ to { opacity: 1; }
+}
+```
+
+### Slide Up
+```tsx
+// Framer Motion
+
+ Content
+
+
+// CSS
+.slide-up {
+ animation: slideUp 0.3s ease-out;
+}
+
+@keyframes slideUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+```
+
+### Scale + Fade (Modal)
+```tsx
+// Framer Motion
+
+ Modal content
+
+```
+
+### Stagger Children
+```tsx
+// Framer Motion
+
+ {items.map(item => (
+
+ {item.name}
+
+ ))}
+
+```
+
+## Performance Checklist
+
+- [ ] Only animate `transform` and `opacity`
+- [ ] Avoid animating `width`, `height`, `top`, `left`, `margin`, `padding`
+- [ ] Test on mobile devices (target 60fps)
+- [ ] Use `will-change` only for complex animations
+- [ ] Implement `prefers-reduced-motion` media query
+- [ ] Keep animation duration under 500ms for UI interactions
+- [ ] Use CSS animations for simple transitions (better performance)
+- [ ] Use JS animation libraries for complex, choreographed sequences
+
+## Accessibility
+
+```css
+/* Disable or reduce animations for users who prefer less motion */
+@media (prefers-reduced-motion: reduce) {
+ *,
+ *::before,
+ *::after {
+ animation-duration: 0.01ms !important;
+ animation-iteration-count: 1 !important;
+ transition-duration: 0.01ms !important;
+ }
+}
+```
+
+**Implementation in React:**
+```tsx
+import { useReducedMotion } from 'framer-motion';
+
+function MyComponent() {
+ const shouldReduceMotion = useReducedMotion();
+
+ return (
+
+ Content
+
+ );
+}
+```
+
+## Testing Animations
+
+1. **Test at 60fps** on target devices
+2. **Test with slow network** (does page still feel responsive?)
+3. **Test with reduced motion** preferences enabled
+4. **Verify animations don't block** critical user actions
+5. **Check that animations add value** (remove if purely decorative)
+6. **Test on low-end devices** (not just your development machine)
+7. **Measure performance** with Chrome DevTools Performance tab
+8. **Check for layout thrashing** (avoid reading and writing to DOM in same frame)
+
+## Animation & Gestalt Principles
+
+### Proximity
+Animated elements that are near each other should move together to reinforce grouping:
+```tsx
+// Animate card and its children together
+
+ Title
+ Content
+ Action
+
+```
+
+### Similarity
+Similar elements should have similar animation characteristics:
+```tsx
+// All buttons use same hover animation
+const buttonAnimation = {
+ whileHover: { scale: 1.02 },
+ transition: { duration: 0.15, ease: "easeOut" }
+};
+
+Button 1
+Button 2
+```
+
+### Continuity
+Movement should follow natural, smooth paths:
+```tsx
+// Smooth curve, not jumpy angles
+
+```
+
+### Figure-Ground
+Important elements animate while backgrounds stay stable:
+```tsx
+// Background fades out, modal animates in
+<>
+
+
+ Modal Content
+
+>
+```
+
+## Resources
+
+- [Framer Motion Documentation](https://www.framer.com/motion/)
+- [CSS Easing Functions](https://easings.net/)
+- [Material Design Motion](https://m2.material.io/design/motion/)
+- [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API)
diff --git a/.agents/skills/bencium-controlled-ux-designer/RESPONSIVE-DESIGN.md b/.agents/skills/bencium-controlled-ux-designer/RESPONSIVE-DESIGN.md
new file mode 100644
index 0000000..ccac05b
--- /dev/null
+++ b/.agents/skills/bencium-controlled-ux-designer/RESPONSIVE-DESIGN.md
@@ -0,0 +1,604 @@
+# Responsive Design Reference
+
+Detailed reference for implementing responsive, mobile-first designs.
+
+## Mobile-First Approach
+
+Always start with mobile design, then progressively enhance for larger screens.
+
+**Why Mobile-First:**
+- Forces focus on essential content
+- Easier to scale up than scale down
+- Better performance on mobile devices
+- Aligns with usage patterns (mobile-first web)
+
+## Breakpoint Strategy
+
+### Standard Breakpoints
+
+```css
+/* Mobile First Approach */
+/* Base styles: 0-640px (mobile) */
+
+/* Small tablets and large phones */
+@media (min-width: 640px) { }
+
+/* Tablets */
+@media (min-width: 768px) { }
+
+/* Small laptops */
+@media (min-width: 1024px) { }
+
+/* Desktops */
+@media (min-width: 1280px) { }
+
+/* Large desktops */
+@media (min-width: 1536px) { }
+```
+
+### Specific Breakpoint Ranges
+
+| Range | Pixels | Target Devices | Layout Strategy |
+|-------|--------|----------------|-----------------|
+| **XS** | 0-479px | Small phones (iPhone SE, older Android) | Single column, stacked navigation, large touch targets (min 44px) |
+| **SM** | 480-767px | Large phones (iPhone 14, most modern phones) | Single column, simplified UI, bottom navigation, reduced complexity |
+| **MD** | 768-1023px | Tablets (iPad, Android tablets) | 2 columns possible, sidebar navigation, some desktop features |
+| **LG** | 1024-1439px | Small laptops, landscape tablets | Multi-column layouts, full navigation, desktop UI patterns |
+| **XL** | 1440px+ | Desktop monitors, large screens | Max-width containers, multi-panel layouts, advanced features visible |
+
+**Mobile Simplification Examples:**
+
+- **Navigation**: Hamburger menu (mobile) → Full nav bar (desktop)
+- **Forms**: Stacked fields (mobile) → Side-by-side fields (desktop)
+- **Content**: Single column (mobile) → Multi-column grid (desktop)
+- **Actions**: Fixed bottom bar (mobile) → Inline buttons (desktop)
+- **Tables**: Collapsed cards (mobile) → Full data table (desktop)
+- **Sidebars**: Hidden/collapsible (mobile) → Always visible (desktop)
+- **Filters**: Modal/drawer (mobile) → Sidebar panel (desktop)
+
+### Tailwind Responsive Classes
+
+```tsx
+
+ Responsive width
+
+```
+
+## Responsive Images
+
+### Using srcset for Responsive Images
+
+```tsx
+
+```
+
+### Next.js Image Component
+
+```tsx
+import Image from 'next/image';
+
+
+```
+
+## Responsive Typography
+
+### Fluid Typography with Tailwind
+
+```tsx
+
+ Responsive Headline
+
+```
+
+### Fluid Typography with CSS Clamp
+
+```css
+h1 {
+ /* min: 2rem (32px), preferred: 5vw, max: 4rem (64px) */
+ font-size: clamp(2rem, 5vw, 4rem);
+ line-height: 1.2;
+}
+
+p {
+ /* min: 1rem (16px), preferred: 2.5vw, max: 1.25rem (20px) */
+ font-size: clamp(1rem, 2.5vw, 1.25rem);
+ line-height: 1.6;
+}
+```
+
+## Responsive Layouts
+
+### CSS Grid Responsive Pattern
+
+```tsx
+
+ {items.map(item => (
+ {item.content}
+ ))}
+
+```
+
+### Flexbox Responsive Pattern
+
+```tsx
+
+
Content Left
+
Content Right
+
+```
+
+## Touch-Friendly Interfaces
+
+### Touch Target Sizing
+
+```tsx
+// Minimum 44x44px touch targets
+
+ Tap Me
+
+```
+
+### Touch Gestures
+
+```tsx
+// Consider common mobile gestures
+
+ {/* Scrollable content */}
+
+```
+
+## Navigation Patterns
+
+### Mobile Menu Pattern
+
+```tsx
+import { useState } from 'react';
+import { List, X } from '@phosphor-icons/react';
+
+export function MobileNav() {
+ const [isOpen, setIsOpen] = useState(false);
+
+ return (
+ <>
+ {/* Mobile menu button */}
+ setIsOpen(!isOpen)}
+ className="md:hidden p-2"
+ aria-label="Toggle menu"
+ >
+ {isOpen ? :
}
+
+
+ {/* Mobile menu overlay */}
+ {isOpen && (
+
+
+ {/* Navigation items */}
+
+
+ )}
+
+ {/* Desktop navigation */}
+
+ {/* Navigation items */}
+
+ >
+ );
+}
+```
+
+### Sticky Navigation
+
+```tsx
+
+
+ {/* Navigation content */}
+
+
+```
+
+## Responsive Forms
+
+### Form Layout Pattern
+
+```tsx
+
+```
+
+## Responsive Content Hiding
+
+### Show/Hide Based on Screen Size
+
+```tsx
+
+ {/* Show only on mobile */}
+
+ Mobile content
+
+
+ {/* Show only on tablet and up */}
+
+ Desktop content
+
+
+ {/* Show only on desktop */}
+
+ Large screen content
+
+
+```
+
+## Performance Optimization
+
+### Lazy Loading Images
+
+```tsx
+
+```
+
+### Responsive Video
+
+```tsx
+
+
+
+
+
+
+```
+
+## Testing Responsive Designs
+
+### Browser DevTools
+
+1. Open Chrome/Firefox DevTools (F12)
+2. Toggle device toolbar (Ctrl+Shift+M)
+3. Test common breakpoints:
+ - iPhone SE (375px)
+ - iPhone 12 Pro (390px)
+ - iPad (768px)
+ - iPad Pro (1024px)
+ - Desktop (1280px+)
+
+### Real Device Testing
+
+**Essential devices to test:**
+- Small phone (iPhone SE, Android small)
+- Large phone (iPhone Pro Max, Android large)
+- Tablet (iPad, Android tablet)
+- Desktop (various resolutions)
+
+### Playwright Testing
+
+```typescript
+// Use playwright MCP to test responsive breakpoints
+await page.setViewportSize({ width: 375, height: 667 }); // iPhone SE
+await page.screenshot({ path: 'mobile.png' });
+
+await page.setViewportSize({ width: 768, height: 1024 }); // iPad
+await page.screenshot({ path: 'tablet.png' });
+
+await page.setViewportSize({ width: 1920, height: 1080 }); // Desktop
+await page.screenshot({ path: 'desktop.png' });
+```
+
+## Common Responsive Patterns
+
+### Card Grid
+
+```tsx
+
+ {items.map(item => (
+
+
+
+
{item.title}
+
{item.description}
+
+
+ ))}
+
+```
+
+### Hero Section
+
+```tsx
+
+
+
+
+ Your Headline Here
+
+
+ Supporting description that works across all screen sizes.
+
+
+
+ Primary Action
+
+
+ Secondary Action
+
+
+
+
+
+
+
+
+```
+
+## Accessibility Considerations
+
+### Focus Management on Mobile
+
+```tsx
+
+ Action
+
+```
+
+### Skip Links
+
+```tsx
+
+ Skip to main content
+
+```
+
+## Best Practices Summary
+
+✅ **Do:**
+- Start with mobile design first
+- Use relative units (rem, em, %) for flexibility
+- Test on real devices, not just emulators
+- Ensure touch targets are at least 44x44px
+- Use semantic HTML for better accessibility
+- Implement lazy loading for images and videos
+- Optimize assets for mobile networks
+- Use CSS Grid and Flexbox for flexible layouts
+- Provide adequate spacing between interactive elements
+
+❌ **Don't:**
+- Design for desktop first and scale down
+- Use fixed pixel widths for layout containers
+- Rely solely on browser DevTools for testing
+- Make touch targets too small
+- Forget keyboard navigation
+- Load all images eagerly
+- Use large unoptimized images on mobile
+- Use complex nested tables for layout
+- Place important actions in hard-to-reach areas
diff --git a/.agents/skills/bencium-controlled-ux-designer/SKILL.md b/.agents/skills/bencium-controlled-ux-designer/SKILL.md
new file mode 100644
index 0000000..eaf120c
--- /dev/null
+++ b/.agents/skills/bencium-controlled-ux-designer/SKILL.md
@@ -0,0 +1,738 @@
+---
+name: bencium-controlled-ux-designer
+description: Expert UI/UX design guidance for unique, accessible interfaces. Use for visual decisions, colors, typography, layouts. Always ask before making design decisions. Use this skill when the user asks to build web components, pages, or applications.
+metadata:
+ version: 1.0.0
+---
+
+# UX Designer
+
+Expert UI/UX design skill that helps create unique, accessible, and thoughtfully designed interfaces. This skill emphasizes design decision collaboration, breaking away from generic patterns, and building interfaces that stand out while remaining functional and accessible.
+
+## Core Philosophy
+
+**CRITICAL: Design Decision Protocol**
+- **ALWAYS ASK** before making any design decisions (colors, fonts, sizes, layouts)
+- Never implement design changes until explicitly instructed
+- The guidelines below are practical guidance for when design decisions are approved
+- Present alternatives and trade-offs, not single "correct" solutions
+
+## Foundational Design Principles
+
+### Stand Out From Generic Patterns
+
+**Avoid Generic Training Dataset Patterns:**
+- Don't default to "Claude style" designs (excessive bauhaus, liquid glass, apple-like)
+- Don't use generic SaaS aesthetics that look machine-generated
+- Don't rely only on solid colors - suggest photography, patterns, textures
+- Think beyond typical patterns - you can step off the written path
+
+**Draw Inspiration From:**
+- Modern landing pages (Perplexity, Comet Browser, Dia Browser)
+- Framer templates and their innovative approaches
+- Leading brand design studios
+- Historical design movements (Bauhaus, Otl Aicher, Braun) - but as inspiration, not imitation
+- Beautiful background animations (CSS, SVG) - slow, looping, subtle
+
+**Visual Interest Strategies:**
+- Unique color pairs that aren't typical
+- Animation effects that feel fresh
+- Background patterns that add depth without distraction
+- Typography combinations that create contrast
+- Visual assets that tell a story
+
+### Core Design Philosophy
+
+1. **Simplicity Through Reduction**
+ - Identify the essential purpose and eliminate distractions
+ - Begin with complexity, then deliberately remove until reaching the simplest effective solution
+ - Every element must justify its existence
+
+2. **Material Honesty**
+ - Digital materials have unique properties - embrace them
+ - Buttons should communicate affordance through color, spacing, and typography (not shadows)
+ - Cards use borders and background differentiation (not depth effects)
+ - Animations follow real-world physics principles adapted to digital responsiveness
+
+ **Examples:**
+ - Clickable: Use distinct colors, hover state changes, cursor feedback
+ - Containers: Use subtle borders (1px), background color shifts, or generous padding
+ - Hierarchy: Use scale, weight, and spacing rather than elevation
+
+3. **Functional Layering (Not Visual Depth)**
+ - Create hierarchy through typography scale, color contrast, and spatial relationships
+ - Layer information conceptually (primary → secondary → tertiary)
+ - Reject skeuomorphic shadows/gradients that imitate physical depth
+ - Embrace functional depth: modals over content, dropdowns over UI
+
+4. **Obsessive Detail**
+ - Consider every pixel, interaction, and transition
+ - Excellence emerges from hundreds of small, intentional decisions
+ - Balance: Details should serve simplicity, not complexity
+ - When detail conflicts with clarity, clarity wins
+
+5. **Coherent Design Language**
+ - Every element should visually communicate its function
+ - Elements should feel part of a unified system
+ - Nothing should feel arbitrary
+
+6. **Invisibility of Technology**
+ - The best technology disappears
+ - Users should focus on content and goals, not on understanding the interface
+
+### What This Means in Practice
+
+**Color Usage:**
+- Base palette: 4-5 neutral shades (backgrounds, borders, text)
+- Accent palette: 1-3 bold colors (CTAs, status, emphasis)
+- Neutrals are slightly desaturated, warm or cool based on brand intent
+- Accents are saturated enough to create clear contrast
+
+**Typography:**
+- Headlines: Emotional, attention-grabbing (personality over pure legibility)
+- Body/UI: Functional, highly legible (clarity over expression)
+- 2-3 typefaces maximum
+- Clear mathematical scale (e.g., 1.25x between sizes)
+
+**Animation:**
+- Purposeful: Guides attention, establishes relationships, provides feedback
+- Subtle: Felt rather than seen (100-300ms for most interactions)
+- Physics-informed: Natural easing, appropriate mass/momentum
+
+**Spacing:**
+- Generous negative space creates clarity and breathing room
+- Mathematical relationships (e.g., 4px base, 8/16/24/32/48px scale)
+- Consistent application creates visual rhythm
+
+### Design Decision Checklist
+
+Before presenting any design, verify:
+
+1. **Purpose**: Does every element serve a clear function?
+2. **Hierarchy**: Is visual importance aligned with content importance?
+3. **Consistency**: Do similar elements look and behave similarly?
+4. **Accessibility**: Does it meet WCAG AA standards? (contrast, touch targets, keyboard nav)
+5. **Responsiveness**: Does it work on mobile, tablet, desktop?
+6. **Uniqueness**: Does this break from generic SaaS patterns?
+7. **Approval**: Have I asked before implementing colors, fonts, sizes, layouts?
+
+**Design System Framework:**
+
+For understanding what's fixed (universal rules), project-specific (brand personality), and adaptable (context-dependent) in your design system, see DESIGN-SYSTEM-TEMPLATE.md (meta-framework, project templates, decision trees).
+
+## Visual Design Standards
+
+### Color & Contrast
+
+**Color System Architecture:**
+
+Every interface needs two color roles:
+
+1. **Base/Neutral Palette (4-5 colors):**
+ - Backgrounds (lightest)
+ - Surface colors (cards, inputs)
+ - Borders and dividers
+ - Text (darkest)
+ - Use slightly desaturated, warm or cool greys based on brand
+
+2. **Accent Palette (1-3 colors):**
+ - Primary action (CTA buttons)
+ - Status indicators (success, warning, error, info)
+ - Focus/hover states
+ - Use saturated colors for clear contrast against neutrals
+
+**Palette Structure Example:**
+```
+Neutrals: slate-50, slate-100, slate-300, slate-700, slate-900
+Accents: teal-500 (primary), amber-500 (warning), red-500 (error)
+```
+
+**Color Application Rules:**
+
+- **Backgrounds**: Lightest neutral (slate-50 or white)
+- **Text**: Darkest neutral for primary text (slate-900), mid-tone for secondary (slate-600)
+- **Buttons (primary)**: Accent color with white text
+- **Buttons (secondary)**: Neutral with border and dark text
+- **Status indicators**: Specific accent (green=success, red=error, amber=warning, blue=info)
+- **Interactive states**:
+ - Hover: Darken by 10-15% or shift hue slightly
+ - Focus: Use ring/outline in accent color
+ - Disabled: Reduce opacity to 40-50% and remove hover effects
+
+**Color Relationships:**
+
+Choose warm or cool intentionally based on brand:
+- **Warm greys** (beige/brown undertones): Organic, approachable, trustworthy
+- **Cool greys** (blue undertones): Modern, tech-forward, professional
+
+Accent colors should have clear contrast with both:
+- Light backgrounds (for buttons on white)
+- Dark text (if used as backgrounds for white text)
+
+**Intentional Color Usage:**
+- Every color must serve a purpose (hierarchy, function, status, or action)
+- Avoid decorative colors that don't communicate meaning
+- Maintain consistency: same color = same meaning throughout
+
+**Accessibility:**
+- Ensure sufficient contrast for color-blind users
+- Follow WCAG 2.1 AA: minimum 4.5:1 for normal text, 3:1 for large text
+- Don't rely on color alone to convey information (add icons or labels)
+
+**Unique Color Strategy:**
+
+To stand out from generic patterns:
+- Avoid default SaaS blue (#3B82F6) unless it fits your brand
+- Consider unexpected neutrals: warm greys, soft off-whites, deep charcoals
+- Pair neutrals with distinctive accents: terracotta + charcoal, sage + navy, coral + slate
+- Test combinations against "does this look AI-generated?" filter
+
+### Typography Excellence
+
+**Typography Philosophy:**
+
+Typography is a primary design element that conveys personality and hierarchy.
+
+**Functional vs Emotional Typography:**
+- **Headlines/Display**: Prioritize emotion, personality, attention (legibility secondary)
+- **Body Text**: Prioritize legibility, reading comfort, accessibility
+- **UI/Labels**: Prioritize clarity, scannability, consistency
+
+**Font Selection:**
+- Use 2-3 typefaces maximum
+- Limit to 3 weights per typeface (e.g., Regular 400, Medium 500, Bold 700)
+- Prefer variable fonts for fine-tuned control and performance
+
+**Font Version Usage:**
+- **Display version**: Headlines and hero text only
+- **Text version**: Paragraphs and long-form content
+- **Caption/Micro**: Small UI labels (1-2 lines, non-critical info)
+
+**Recommended Sources:**
+- Google Fonts for web (free, well-optimized, reliable)
+- System fonts for performance-critical apps (-apple-system, BlinkMacSystemFont, Segoe UI)
+- Choose fonts that serve your brand's purpose (not "trending" lists)
+
+**Typographic Scale:**
+
+Use mathematical relationships for size hierarchy:
+- **Ratio**: Major third (1.25x) for moderate contrast, Perfect fourth (1.333x) for dramatic
+- **Base size**: 16px (1rem) for body text
+- **Example scale (1.25x)**:
+ ```
+ xs: 0.64rem (10px)
+ sm: 0.8rem (13px)
+ base: 1rem (16px)
+ lg: 1.25rem (20px)
+ xl: 1.563rem (25px)
+ 2xl: 1.953rem (31px)
+ 3xl: 2.441rem (39px)
+ 4xl: 3.052rem (49px)
+ 5xl: 3.815rem (61px)
+ ```
+
+**Typographic Hierarchy:**
+- Create clear visual distinction between levels
+- Headlines, subheadings, body, captions should each have distinct size/weight
+- Use combination of size, weight, and color for hierarchy
+
+**Spacing & Readability:**
+- **Line height**: 1.5x font size for body text (e.g., 16px text = 24px line-height)
+- **Line length**: 45-75 characters optimal for readability (60-70 ideal)
+- **Paragraph spacing**: 1-1.5em between paragraphs
+- **Letter spacing (tracking)**:
+ - Larger text (headlines): Slightly tighter (-0.02em to -0.05em)
+ - Normal text (body): Default (0)
+ - Small text (captions): Slightly looser (+0.01em to +0.03em)
+ - General rule: As size increases, reduce tracking; as size decreases, increase tracking
+
+**Font Pairing Logic:**
+
+When using multiple typefaces, create contrast through:
+- **Category contrast**: Serif + Sans-serif (classic, clear distinction)
+- **Weight contrast**: Light + Bold (dynamic, energetic)
+- **Personality contrast**: Geometric + Humanist (modern + warm)
+
+Examples:
+- Serif headlines + Sans body (editorial, trustworthy)
+- Display headlines + System body (distinctive + efficient)
+- Bold sans headlines + Light sans body (modern, clean)
+
+**UI Typography:**
+
+Specific guidance for interface elements:
+- **Button text**: Semi-Bold (600), 14-16px, consistent casing (all-caps OR title case)
+- **Form labels**: Regular (400), 14px, positioned above input
+- **Form input text**: Regular (400), 16px minimum (prevents iOS zoom on focus)
+- **Placeholder text**: Light (300) or desaturated color, same size as input
+- **Error messages**: Regular (400), 12-14px, color-coded (red-ish)
+
+**Responsive Typography:**
+
+Scale type sizes across breakpoints:
+```tsx
+// Example with Tailwind
+
+ Responsive Headline
+
+
+// Or with CSS clamp (fluid)
+h1 {
+ font-size: clamp(2rem, 5vw, 4rem);
+}
+```
+
+Reduce sizes on mobile (20-30% smaller than desktop)
+Reduce hierarchy levels on small screens (fewer distinct sizes)
+
+### Layout & Spatial Design
+
+**Compositional Balance:**
+- Every screen should feel balanced
+- Pay attention to visual weight and negative space
+- Use generous negative space to focus attention
+- Add sufficient margins and paddings for professional, spacious look
+
+**Grid Discipline:**
+- Maintain consistent underlying grid system
+- Create sense of order while allowing meaningful exceptions
+- Use grid/flex wrappers with `gap` for spacing
+- Prioritize wrappers over direct margins/padding on children
+
+**Spatial Relationships:**
+- Group related elements through proximity, alignment, and shared attributes
+- Use size, color, and spacing to highlight important elements
+- Guide user focus through visual hierarchy
+
+**Attention Guidance:**
+- Design interfaces that guide user attention effectively
+- Avoid cluttered interfaces where elements compete
+- Create clear paths through the content
+
+## Interaction Design
+
+### Motion & Animation
+
+**Purposeful Animation:**
+
+Every animation must serve a functional purpose:
+- **Orient users**: Smooth transitions during navigation changes
+- **Establish relationships**: Show how elements connect (expand from source, slide between states)
+- **Provide feedback**: Confirm interactions (button press, form submission)
+- **Guide attention**: Direct focus to important changes (new messages, errors)
+
+**Animation & Gestalt Principles:**
+
+Motion should reinforce visual relationships:
+- **Proximity**: Elements near each other move together (grouped cards animating)
+- **Similarity**: Similar elements animate similarly (all buttons have same hover timing)
+- **Continuity**: Movement follows natural paths (smooth curves, not jumpy angles)
+- **Figure-ground**: Important elements animate while backgrounds stay stable
+
+**Natural Physics:**
+
+Animations should feel organic, not mechanical:
+- **Easing**: Use ease-out for entrances (fast start, slow end)
+- **Easing**: Use ease-in for exits (slow start, fast end)
+- **Easing**: Use ease-in-out for transitions (smooth both ends)
+- Avoid linear easing (feels robotic) except for continuous loops
+- Apply appropriate mass/momentum (lightweight UI vs weighty modals)
+
+**Subtle Restraint:**
+- Animations should be felt rather than seen
+- Don't delay user actions unnecessarily (keep under 300ms for interactive feedback)
+- Never block critical actions with decorative animations
+- Respect `prefers-reduced-motion` media query
+
+**Timing Guidelines:**
+
+- **Micro-interactions** (button press, checkbox toggle): 100-150ms
+- **State changes** (expanding accordion, tab switch): 200-300ms
+- **Page transitions** (route changes, modal open/close): 300-500ms
+- **Attention-directing** (notification appearance, error highlight): 200-400ms
+
+**Physics Profiles:**
+
+Define consistent durations for element types:
+- **Lightweight** (icons, small UI): 150ms
+- **Standard** (cards, panels): 300ms
+- **Weighty** (modals, page transitions): 500ms
+
+**Performance Optimization:**
+
+- Animate `transform` and `opacity` only (GPU-accelerated, smooth 60fps)
+- Avoid animating `width`, `height`, `top`, `left`, `margin` (causes reflow/repaint)
+- Use `will-change` sparingly for complex animations (pre-allocates GPU resources)
+- Test on low-end devices (60fps on powerful hardware ≠ 60fps on mobile)
+
+**Implementation:**
+- Use `framer-motion` sparingly and purposefully
+- Prefer CSS animations over JavaScript when possible (better performance)
+- Use CSS transitions for simple hover/focus states
+- Implement `@media (prefers-reduced-motion: reduce)` to disable/reduce animations
+
+**Example:**
+```tsx
+// Simple hover transition
+
+ Click me
+
+
+// Framer Motion for complex interaction
+
+ Content
+
+```
+
+**Motion Specification:**
+
+For detailed motion specs, see MOTION-SPEC.md (easing curves, duration tables, state-specific animations, implementation patterns).
+
+### User Experience Patterns
+
+**Core UX Principles:**
+
+1. **Direct Manipulation**
+ - Users interact directly with content, not through abstract controls
+ - Examples:
+ - Drag & drop to reorder items (not up/down buttons)
+ - Inline editing (click to edit, not separate form)
+ - Sliders for ranges (not numeric input with +/-)
+ - Pinch/zoom gestures on mobile (not +/- buttons)
+
+2. **Immediate Feedback**
+ - Every interaction provides instantaneous visual feedback (within 100ms)
+ - Types of feedback:
+ - **Visual**: Button pressed state, hover effects, color changes
+ - **Haptic**: Vibration on mobile (submit, error, success)
+ - **Audio**: Subtle sounds for critical actions (optional, user-controlled)
+ - **Loading**: Skeleton screens, spinners for >300ms operations
+ - **Success**: Checkmarks, green highlights, toast notifications
+ - **Error**: Red highlights, inline error messages, shake animations
+
+3. **Consistent Behavior**
+ - Similar-looking elements behave similarly
+ - Examples:
+ - **Visual consistency**: All primary buttons have same colors, sizes, hover states
+ - **Behavioral consistency**: All modals close via X button, ESC key, and outside click
+ - **Interaction consistency**: All drag targets have same hover state and drop feedback
+ - **Pattern consistency**: All forms validate on blur and submit
+
+4. **Forgiveness**
+ - Make errors difficult, but recovery easy
+ - **Prevention strategies**:
+ - Disable invalid actions (grey out unavailable buttons)
+ - Validate inputs inline (before submission)
+ - Confirm destructive actions (delete, overwrite)
+ - Auto-save in background (drafts, progress)
+ - **Recovery strategies**:
+ - Undo/redo for all state changes
+ - Soft deletes (trash/archive before permanent delete)
+ - Clear error messages with actionable fixes
+ - Preserve user input on errors (don't clear forms)
+
+5. **Progressive Disclosure**
+ - Reveal details as needed rather than overwhelming users
+ - Levels of disclosure:
+ - **Summary**: Show essential info by default (card title, price, rating)
+ - **Details**: Expand to show more info (description, specs, reviews)
+ - **Advanced**: Hide complex options behind "Advanced settings" toggle
+ - Examples:
+ - Accordion: Start collapsed, expand on click
+ - Search filters: Show 3-5 common filters, hide rest behind "More filters"
+ - Settings: Basic settings visible, advanced behind "Show advanced"
+
+**Modern UX Patterns:**
+
+1. **Conversational Interfaces**
+
+ Prioritize natural language interaction where appropriate:
+
+ **Four types:**
+ - **Pure chat**: Full conversation (AI assistants, support bots)
+ - **Command palette**: Text-based shortcuts (Cmd+K, search everywhere)
+ - **Smart search**: Natural language queries (search "meetings next week" vs filtering)
+ - **Form alternatives**: Conversational data collection ("What's your name?" vs form fields)
+
+ **When to use:**
+ - Complex searches with multiple variables
+ - Task guidance (wizards, onboarding)
+ - Contextual help
+ - Quick actions (command palette)
+
+ **When NOT to use:**
+ - Simple forms (just use inputs)
+ - Precise control interfaces (design tools, dashboards)
+ - High-frequency repetitive tasks
+
+2. **Adaptive Layouts**
+
+ Respond to user context automatically:
+ - **Time-based**: Dark mode at night, light during day
+ - **Device-based**: Simplified UI on mobile, full features on desktop
+ - **Connection-based**: Reduce images/video on slow connections
+ - **Usage-based**: Prioritize frequent actions, hide rarely-used features
+
+ Examples:
+ - Auto dark/light mode based on time or system preference
+ - Simplified mobile navigation (hamburger menu) vs full desktop nav
+ - Collapsed sidebar on small screens, expanded on large
+
+3. **Minimal, Flat Design**
+
+ Current aesthetic preference:
+ - No drop shadows (except subtle ones for modals/dropdowns)
+ - No gradients for depth (use for accents/backgrounds if desired)
+ - No glass morphism effects
+ - Focus on typography, color, and spacing to create hierarchy
+ - Functional depth: Layers of content (modals, sheets) use positioning, not visual depth
+
+**Navigation:**
+- Clear structure with intuitive navigation menus
+- Implement breadcrumbs for deep hierarchies (more than 2 levels)
+- Use standard UI patterns to reduce learning curve (hamburger menu, tab bars)
+- Ensure predictable behavior (back button works, links look clickable)
+- Maintain navigation context (highlight current page, preserve scroll position)
+
+## Styling Implementation
+
+### Component Library & Tools
+
+**Component Library:**
+- Strongly prefer shadcn components (v4, pre-installed in `@/components/ui`)
+- Import individually: `import { Button } from "@/components/ui/button";`
+- Use over plain HTML elements (`` over ``)
+- Avoid creating custom components with names that clash with shadcn
+
+**Styling Engine:**
+- Use Tailwind utility classes exclusively
+- Adhere to theme variables in `index.css` via CSS custom properties
+- Map variables in `@theme` (see `tailwind.config.js`)
+- Use inline styles or CSS modules only when absolutely necessary
+
+**Icons:**
+- Use `@phosphor-icons/react` for buttons and inputs
+- Example: `import { Plus } from "@phosphor-icons/react"; `
+- Use color for plain icon buttons
+- Don't override default `size` or `weight` unless requested
+
+**Notifications:**
+- Use `sonner` for toasts
+- Example: `import { toast } from 'sonner'`
+
+**Loading States:**
+- Always add loading states, spinners, placeholder animations
+- Use skeletons until content renders
+
+### Layout Implementation
+
+**Spacing Strategy:**
+- Use grid/flex wrappers with `gap` for spacing
+- Prioritize wrappers over direct margins/padding on children
+- Nest wrappers as needed for complex layouts
+
+**Conditional Styling:**
+- Use ternary operators or clsx/classnames utilities
+- Example: `className={clsx('base-class', { 'active-class': isActive })}`
+
+### Responsive Design
+
+**Fluid Layouts:**
+- Use relative units (%, em, rem) instead of fixed pixels
+- Implement CSS Grid and Flexbox for flexible layouts
+- Design mobile-first, then scale up
+
+**Media Queries:**
+- Use breakpoints based on content needs, not specific devices
+- Test across range of devices and orientations
+
+**Touch Targets:**
+- Minimum 44x44 pixels for interactive elements
+- Provide adequate spacing between touch targets
+- Consider hover states for desktop, focus states for touch/keyboard
+
+**Performance:**
+- Optimize assets for mobile networks
+- Use CSS animations over JavaScript
+- Implement lazy loading for images and videos
+
+## Accessibility Standards
+
+**Core Requirements:**
+- Follow WCAG 2.1 AA guidelines
+- Ensure keyboard navigability for all interactive elements
+- Minimum touch target size: 44×44px
+- Use semantic HTML for screen reader compatibility
+- Provide alternative text for images and non-text content
+
+**Implementation Details:**
+- Use descriptive variable and function names
+- Event functions: prefix with "handle" (handleClick, handleKeyDown)
+- Add accessibility attributes:
+ - `tabindex="0"` for custom interactive elements
+ - `aria-label` for buttons without text
+ - `role` attributes when semantic HTML isn't sufficient
+- Ensure logical tab order
+- Provide visible focus states
+
+## Design Process & Testing
+
+### Design Workflow
+
+1. **Understand Context:**
+ - What problem are we solving?
+ - Who are the users and when will they use this?
+ - What are the success criteria?
+
+2. **Explore Options:**
+ - Present 2-3 alternative approaches
+ - Explain trade-offs of each option
+ - Ask which direction resonates
+
+3. **Implement Iteratively:**
+ - Start with structure and hierarchy
+ - Add visual polish progressively
+ - Test at each stage
+
+4. **Validate:**
+ - Use playwright MCP to test visual changes
+ - Check across different screen sizes
+ - Verify accessibility
+
+### Testing Checklist
+
+**Visual Testing:**
+- Use playwright MCP when available for automated testing
+- Check responsive behavior at common breakpoints
+- Verify touch targets on mobile
+- Test with different content lengths (short, long, edge cases)
+
+**Accessibility Testing:**
+- Test keyboard navigation
+- Verify screen reader compatibility
+- Check color contrast ratios
+- Ensure focus states are visible
+
+**Cross-Device Testing:**
+- Test on actual devices, not just emulators
+- Check different browsers (Chrome, Firefox, Safari)
+- Verify touch interactions on mobile
+- Test landscape and portrait orientations
+
+## Examples
+
+### Example 1: Designing a Button
+
+**Initial Question to Ask:**
+```
+Before I implement this button, I have a few design questions:
+1. What's the primary action you want to emphasize?
+2. Do you have brand colors in mind, or should I suggest options?
+3. What emotion should this button convey? (urgent, calm, playful, professional)
+```
+
+**After Getting Approval, Implementation:**
+```tsx
+import { Button } from "@/components/ui/button";
+import { ArrowRight } from "@phosphor-icons/react";
+
+
+ Get Started
+
+
+```
+
+### Example 2: Typography Hierarchy
+
+**Question First:**
+```
+For this content hierarchy, I'm thinking:
+- Headline: Large, bold, attention-grabbing
+- Subheading: Medium, regular weight
+- Body: Smaller, optimized for reading
+
+Should we go bold and contemporary, or subtle and refined?
+```
+
+**Implementation After Approval:**
+```tsx
+
+
+ Headline Here
+
+
+ Supporting subheading
+
+
+ Body text optimized for readability with proper line height.
+
+
+```
+
+### Example 3: Unique Color Palette Suggestion
+
+**Presenting Options:**
+```
+I'd like to suggest three color directions that break from typical SaaS patterns:
+
+1. **Warm Earth Tones**
+ - Base: Warm grey (#E8E2DC)
+ - Accent: Terracotta (#C86E4B)
+ - For: Organic, trustworthy feel
+
+2. **Cool Midnight**
+ - Base: Deep navy (#1A2332)
+ - Accent: Cyan (#4ECDC4)
+ - For: Modern, tech-forward feel
+
+3. **Soft Pastels**
+ - Base: Soft pink (#FFE5E5)
+ - Accent: Sage green (#9DB5A4)
+ - For: Calm, approachable feel
+
+Which direction feels right for your brand?
+```
+
+## Common Patterns to Avoid
+
+❌ **Don't:**
+- Use generic SaaS blue (#3B82F6) without considering alternatives
+- Default to shadows and gradients for depth
+- Copy Apple's design language
+- Use glass morphism effects
+- Make design decisions without asking
+- Implement typography without considering the font version
+- Use animations that delay user actions
+- Create cluttered interfaces with competing elements
+
+✅ **Do:**
+- Ask before making design decisions
+- Suggest unique, contextually appropriate color pairs
+- Use flat, minimal design
+- Consider unconventional typography choices
+- Provide immediate feedback for interactions
+- Create generous white space
+- Test with real devices
+- Validate accessibility
+
+## Version History
+
+- v1.0.0 (2025-10-18): Initial release with comprehensive UI/UX design guidance
+
+## References
+
+For additional context, see:
+- WCAG 2.1 Guidelines: https://www.w3.org/WAI/WCAG21/quickref/
+- Google Fonts: https://fonts.google.com/
+- Tailwind CSS Docs: https://tailwindcss.com/docs
+- Shadcn UI Components: https://ui.shadcn.com/
diff --git a/.agents/skills/bencium-impact-designer/ACCESSIBILITY.md b/.agents/skills/bencium-impact-designer/ACCESSIBILITY.md
new file mode 100644
index 0000000..d514f4e
--- /dev/null
+++ b/.agents/skills/bencium-impact-designer/ACCESSIBILITY.md
@@ -0,0 +1,111 @@
+# Accessibility Essentials
+
+Accessibility enables creativity - it's a foundation, not a limitation. WCAG 2.1 AA compliance.
+
+## Core Principles (POUR)
+
+- **Perceivable**: Content must be perceivable (alt text, contrast, captions)
+- **Operable**: UI must be keyboard/touch accessible
+- **Understandable**: Clear, predictable behavior
+- **Robust**: Works with assistive technologies
+
+## Contrast Requirements
+
+| Element | Minimum Ratio |
+|---------|---------------|
+| Normal text | 4.5:1 |
+| Large text (18pt+) | 3:1 |
+| UI components | 3:1 |
+
+**Tools**: Chrome DevTools Accessibility tab, WebAIM Contrast Checker
+
+## Keyboard Navigation
+
+```tsx
+// All interactive elements need focus states
+
+ Accessible
+
+
+// Custom elements need tabindex and key handlers
+ (e.key === 'Enter' || e.key === ' ') && handleClick()}
+>
+ Custom Button
+
+```
+
+**Essentials:**
+- Tab through entire interface
+- Enter/Space activates elements
+- Escape closes modals
+- Visible focus indicators always
+
+## Essential ARIA
+
+```tsx
+// Buttons without text
+
+
+// Expandable elements
+Menu
+
+// Live regions for dynamic content
+{statusMessage}
+{errorMessage}
+
+// Form errors
+
+{hasError && Error text
}
+```
+
+## Semantic HTML
+
+```tsx
+// Use semantic elements, not divs
+
+...
+
+
+// Heading hierarchy (never skip levels)
+Page Title
+ Section
+ Subsection
+```
+
+## Touch Targets
+
+- Minimum **44x44px** for all interactive elements
+- Adequate spacing between targets
+- `touch-manipulation` CSS for responsive touch
+
+## Screen Reader Content
+
+```tsx
+// Hidden but announced
+Additional context
+
+// Skip link
+
+ Skip to main content
+
+```
+
+## Quick Checklist
+
+- [ ] Keyboard: Can tab through everything
+- [ ] Focus: Visible focus indicators
+- [ ] Contrast: 4.5:1 for text
+- [ ] Alt text: All images have appropriate alt
+- [ ] Headings: Logical h1-h6 hierarchy
+- [ ] Forms: Labels associated with inputs
+- [ ] Errors: Announced to screen readers
+- [ ] Touch: 44px minimum targets
+
+## Resources
+
+- [WCAG 2.1 Quick Reference](https://www.w3.org/WAI/WCAG21/quickref/)
+- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
+- [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/)
diff --git a/.agents/skills/bencium-impact-designer/MOTION-SPEC.md b/.agents/skills/bencium-impact-designer/MOTION-SPEC.md
new file mode 100644
index 0000000..e37e363
--- /dev/null
+++ b/.agents/skills/bencium-impact-designer/MOTION-SPEC.md
@@ -0,0 +1,72 @@
+# Motion Specification
+
+Motion should surprise and delight while serving function. Animation is a creative tool.
+
+## Easing Curves
+
+| Easing | CSS | Use For |
+|--------|-----|---------|
+| **Ease-out** | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Entrances, appearing |
+| **Ease-in** | `cubic-bezier(0.4, 0.0, 1, 1)` | Exits, disappearing |
+| **Ease-in-out** | `cubic-bezier(0.4, 0.0, 0.2, 1)` | State changes, transforms |
+| **Spring** | `cubic-bezier(0.68, -0.55, 0.265, 1.55)` | Playful, attention-grabbing |
+| **Linear** | `linear` | Spinners, continuous loops |
+
+## Duration by Element Weight
+
+| Weight | Duration | Examples |
+|--------|----------|----------|
+| **Lightweight** | 150ms | Icons, badges, chips |
+| **Standard** | 300ms | Cards, panels, list items |
+| **Weighty** | 500ms | Modals, page transitions |
+
+## Duration by Interaction
+
+| Interaction | Duration |
+|-------------|----------|
+| Button press | 100ms |
+| Hover state | 150ms |
+| Tooltip appear | 200ms |
+| Tab switch | 250ms |
+| Modal open | 300ms |
+| Page transition | 400ms |
+
+## Common Patterns
+
+```tsx
+// Hover transition (CSS)
+
+
+// Fade + slide (Framer Motion)
+
+
+// Stagger children
+
+
+
+```
+
+## Performance Rules
+
+- Only animate `transform` and `opacity` (GPU-accelerated)
+- Avoid animating `width`, `height`, `margin`, `padding`
+- Keep durations under 500ms for UI interactions
+- Respect `prefers-reduced-motion`:
+
+```css
+@media (prefers-reduced-motion: reduce) {
+ *, *::before, *::after {
+ animation-duration: 0.01ms !important;
+ transition-duration: 0.01ms !important;
+ }
+}
+```
+
+## Resources
+
+- [Framer Motion](https://www.framer.com/motion/)
+- [CSS Easing Functions](https://easings.net/)
diff --git a/.agents/skills/bencium-impact-designer/RESPONSIVE-DESIGN.md b/.agents/skills/bencium-impact-designer/RESPONSIVE-DESIGN.md
new file mode 100644
index 0000000..e1a33eb
--- /dev/null
+++ b/.agents/skills/bencium-impact-designer/RESPONSIVE-DESIGN.md
@@ -0,0 +1,90 @@
+# Responsive Design Essentials
+
+Mobile-first approach: start with mobile, progressively enhance for larger screens.
+
+## Breakpoints
+
+| Range | Pixels | Devices | Strategy |
+|-------|--------|---------|----------|
+| **XS** | 0-479px | Small phones | Single column, stacked nav, 44px touch targets |
+| **SM** | 480-767px | Large phones | Single column, bottom nav, simplified UI |
+| **MD** | 768-1023px | Tablets | 2 columns possible, sidebar nav |
+| **LG** | 1024-1439px | Laptops | Multi-column, full nav, desktop UI |
+| **XL** | 1440px+ | Desktop | Max-width containers, multi-panel layouts |
+
+## Tailwind Responsive
+
+```tsx
+// Mobile-first: base styles, then scale up
+
+
+// Responsive grid
+
+
+// Responsive typography
+
+
+// Show/hide by breakpoint
+ Mobile only
+Desktop only
+```
+
+## Fluid Typography
+
+```css
+h1 { font-size: clamp(2rem, 5vw, 4rem); }
+p { font-size: clamp(1rem, 2.5vw, 1.25rem); }
+```
+
+## Touch Targets
+
+- Minimum **44x44px** for all interactive elements
+- Use `touch-manipulation` to prevent 300ms tap delay
+- Adequate spacing between targets
+
+```tsx
+
+```
+
+## Mobile Simplification
+
+| Desktop | Mobile |
+|---------|--------|
+| Full nav bar | Hamburger menu |
+| Side-by-side fields | Stacked fields |
+| Multi-column grid | Single column |
+| Inline buttons | Fixed bottom bar |
+| Data table | Collapsed cards |
+| Visible sidebar | Hidden/collapsible |
+
+## Images
+
+```tsx
+// Responsive images
+
+
+// Next.js
+
+```
+
+## Testing
+
+Test at these widths:
+- 375px (iPhone SE)
+- 390px (iPhone 14)
+- 768px (iPad)
+- 1024px (iPad Pro)
+- 1280px+ (Desktop)
+
+## Resources
+
+- [Tailwind Responsive](https://tailwindcss.com/docs/responsive-design)
diff --git a/.agents/skills/bencium-impact-designer/SKILL.md b/.agents/skills/bencium-impact-designer/SKILL.md
new file mode 100644
index 0000000..bd5f4d6
--- /dev/null
+++ b/.agents/skills/bencium-impact-designer/SKILL.md
@@ -0,0 +1,988 @@
+---
+name: bencium-impact-designer
+description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics. Based on Anthropic's Frontend Designer Skill
+version: 1.2.0
+---
+
+# Innovative Designer for impact
+
+Create distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices. Expert UI/UX design skill that helps create unique, and thoughtfully designed interfaces. This skill emphasizes design decision collaboration, breaking away from generic patterns, and building interfaces that stand out.
+
+This skill emphasizes **bold creative commitment**, breaking away from generic patterns, and building interfaces that are visually striking and memorable while remaining functional.
+
+## Core Philosophy
+
+**CRITICAL: Design Thinking Protocol**
+
+Before coding, **ASK to understand context**, then **COMMIT BOLDLY** to a distinctive direction:
+
+### Questions to Ask First
+1. **Purpose**: What problem does this interface solve? Who uses it?
+2. **Tone**: What aesthetic extreme fits? (see Tone Options below) Use these for inspiration but design one that is true to the aesthetic direction.
+3. **Constraints**: Technical requirements (framework, performance, accessibility)?
+4. **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
+
+**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
+
+Then implement working code (HTML/CSS/JS, React, TypeScript, etc.) that is:
+- Production-grade and functional
+- Visually striking and memorable
+- Cohesive with a clear aesthetic point-of-view
+- Meticulously refined in every detail
+
+### Tone Options (Pick an Extreme)
+Choose a clear aesthetic direction and execute with precision:
+- **Brutally minimal** - stripped to essence, bold typography, vast whitespace
+- **Retro-futuristic** - vintage meets sci-fi, nostalgic tech aesthetics
+- **Organic/natural** - soft edges, earthy colors, nature-inspired textures
+- **Editorial/magazine** - strong typography hierarchy, asymmetric layouts
+- **Brutalist/raw** - exposed structure, harsh contrasts, intentionally rough
+- **Art deco/geometric** - bold patterns, metallic accents, symmetric elegance
+- **Soft/pastel** - gentle gradients, muted tones, calming atmosphere
+- **Industrial/utilitarian** - functional, no-nonsense, mechanical precision
+• - Neo-Swiss Grid - rigorous grid, restrained palette, razor-sharp alignment,
+ typographic clarity
+ - Anti-Grid Experimental - intentional misalignment, broken columns, playful
+ tension, art-school energy
+ - Monochrome High-Contrast - black/white only, stark hierarchy, dramatic scale
+ shifts, graphic punch
+ - Duotone Pop - two-color system, bold overlays, poster-like impact, strong
+ silhouettes
+ - Kinetic Typography - type as motion, stretched/warped letterforms, rhythm-
+ first composition
+ - Glitch/Digital Noise - scanlines, compression artifacts, chromatic offsets,
+ “corrupted” UI textures
+ - Y2K Cyber Gloss - chrome gradients, gel buttons, translucent panels, late-
+ 90s web futurism
+ - Vaporwave Nostalgia - neon dusk palette, palm silhouettes, faux-3D, retro
+ mall ambience
+ - Synthwave Night Drive - magenta/cyan, grid horizons, glowing edges,
+ cinematic neon noir
+ - Memphis Playful - squiggles, confetti geometry, loud patterns, upbeat
+ irreverence
+ - Riso Print - limited inks, misregistration, grainy textures, analog
+ imperfection
+ - Bauhaus Modernism - primary colors, simple geometry, functional forms,
+ clarity through reduction
+ - Constructivist Propaganda - diagonals, bold blocks, agit-poster energy,
+ commanding headlines
+ - Futurist Speed - slanted type, motion lines, aggressive angles, velocity as
+ a design principle
+ - Cinematic Noir - moody shadows, tight spotlighting, grain, suspenseful
+ minimal palette
+
+ - Whimsical Storybook - soft illustration cues, charming type, warm palette,
+ gentle narrative layout
+ - Modern Skeuomorphic - tactile UI cues, soft shadows, realistic materials,
+ “touchable” surfaces
+ - Clay/Soft 3D - rounded forms, matte materials, friendly depth, playful
+ product-UI vibe
+ - Isometric Systems - isometric grids, diagrammatic clarity, technical-yet-
+ playful structure
+ - Data-Driven Dashboard - dense but legible, charts as hero elements,
+ pragmatic hierarchy
+ - Scientific/Technical - annotation callouts, thin rules, measured spacing,
+ lab-manual precision
+ - Military/Command UI - tactical overlays, coordinate grids, utilitarian type,
+ “mission interface” mood
+ - Weathered/Vintage Patina - worn textures, faded inks, imperfections, found-
+ object authenticity
+ - Coastal/Airy - sun-bleached palette, breezy spacing, light serif accents,
+ calm openness
+ - Desert Modern - sand/clay tones, hard sunlight contrast, minimal geometry,
+ heat-haze vibe
+ - Botanical Apothocary - old labels, muted greens, serif type, pressed-plant
+ textures
+ - Nordic Calm - pale neutrals, soft contrast, clean type, quiet warmth
+ - Playful Minimal - minimal layout with one “smile” detail, bright accent,
+ friendly type choices
+ - Startup Crisp - clean UI, bold CTA geometry, vibrant accent, product-forward
+ clarity
+ - High-Fashion Lookbook - ultra-thin type, dramatic photography framing,
+ sparse copy, luxe whitespace
+ - Museum Exhibition - quiet typography, generous margins, caption-like text,
+ gallery placard vibe
+ - Architectural Blueprint - linework, measurement marks, grid overlays,
+ technical drawing aesthetic
+ - Monastic/Wabi-Sabi - imperfect textures, quiet tones, asymmetry, beauty
+ in restraint
+
+### After Getting Context
+- **Commit fully** to the chosen direction - no half measures
+- Present 2-3 alternative approaches with trade-offs
+- Then implement with precision: production-grade, visually striking, memorable
+
+## Foundational Design Principles
+- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
+- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
+- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
+- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
+- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
+
+### Stand Out From Generic Patterns
+Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
+
+**NEVER Use These AI-Generated Aesthetics:**
+- **Fonts**: Inter, Roboto, Arial, system fonts as primary choice, Space Grotesk (overused by AI)
+- **Colors**: Generic SaaS blue (#3B82F6), purple gradients on white backgrounds
+- **Patterns**: Cookie-cutter layouts, predictable component arrangements
+- **Effects**: Glass morphism, Apple design mimicry, liquid/blob backgrounds
+- **Overall**: Anything that looks "Claude-generated" or machine-made
+
+**Instead, Create Atmosphere:**
+- Suggest photography, patterns, textures over flat solid colors
+- Think beyond typical patterns - you can step off the written path
+- See **Visual Effects (Implementation Checklist)** in Interaction Design section for specific techniques: gradient meshes, grain overlays, dramatic shadows, layered transparencies, custom cursors
+
+**Draw Inspiration From:**
+
+Award-winning digital work:
+- [Awwwards](https://awwwards.com) - Site of the Day winners
+- [FWA](https://thefwa.com) - Cutting-edge web experiences
+- [CSS Design Awards](https://cssdesignawards.com)
+- [Dribbble Playoffs](https://dribbble.com/shots/popular) - Top shots for component ideas
+
+Independent studios known for distinctive work:
+- **Dutch**: Studio Dumbar, Lava Design, Thonik
+- **Swiss**: Büro Destruct, NORM, Elektrosmog
+- **British**: Studio Output, Made Thought, NB Studio
+- **Spanish**: Mucho, Folch, Vasava
+- **American**: Collins, Pentagram, HAWRAF
+- **Japanese**: 6D-K, Rhizomatiks, TeamLab (digital)
+
+Historical movements (study, don't copy):
+- Bauhaus, Swiss International, Otl Aicher's Munich Olympics
+- Emigre magazine, David Carson's Ray Gun
+- Neville Brody's Face magazine, Sagmeister's rule-breaking
+
+Technical inspiration:
+- [Codrops](https://tympanus.net/codrops/) - CSS/JS experiments
+- [CodePen Spark](https://codepen.io/spark) - Creative code
+- [Hoverstat.es](https://hoverstat.es) - Hover state inspiration
+- Beautiful background animations (CSS, SVG) - slow, looping, subtle
+
+**Visual Interest Strategies:**
+- Unique color pairs that aren't typical
+- Animation effects that feel fresh
+- Background patterns that add depth without distraction
+- Typography combinations that create contrast
+- Visual assets that tell a story
+
+### Creative Reframing Prompts
+
+When stuck in safe patterns, ask yourself:
+
+**Designer lens:**
+- "What would Sagmeister do?" → Provocation, hand-drawn, conceptual depth
+- "What would Neville Brody do?" → Typography as art, rule-breaking hierarchy
+- "What would Studio Dumbar do?" → Bold color, geometric play, Dutch directness
+- "What would Dieter Rams do?" → Radical reduction, functional beauty
+- "What would David Carson do?" → Destroy the grid, prioritize feeling over reading
+
+**Context shift:**
+- "What if this was a magazine spread?" → Editorial hierarchy, pull quotes, art direction
+- "What if this was a museum exhibit?" → Generous space, quiet typography, specimen presentation
+- "What if this was street signage?" → Maximum legibility, bold simplicity
+- "What if this was a vinyl record cover?" → Square constraint, tactile quality, collectible feel
+- "What if this was a protest poster?" → Urgency, stark contrast, immediate impact
+
+**Era lens:**
+- "1960s Swiss International?" → Grid perfection, Helvetica, rational clarity
+- "1990s Emigre/Ray Gun?" → Chaos, layering, deliberately challenging
+- "1920s Bauhaus?" → Primary colors, geometric forms, functional art
+- "2000s Flash era?" → Motion-first, experimental navigation, surprise
+- "Cyberpunk 2077?" → Neon, glitch, dense information, dark UI
+
+### Force Variety (Anti-Sameness Protocol)
+
+Before implementing, roll the dice on these dimensions:
+
+**Color temperature:** Flip a coin
+- Heads → Warm palette (terracotta, ochre, cream, rust)
+- Tails → Cool palette (slate, ice blue, mint, charcoal)
+
+**Layout direction:** Roll 1-4
+1. Left-heavy asymmetry
+2. Right-heavy asymmetry
+3. Center-dominant with edge tension
+4. Diagonal/rotated flow
+
+**Type personality:** Roll 1-6
+1. Geometric sans (sharp, modern)
+2. Humanist sans (warm, approachable)
+3. Serif (editorial, trustworthy)
+4. Slab serif (bold, industrial)
+5. Display/decorative (expressive, unique)
+6. Monospace (technical, systematic)
+
+**Motion philosophy:** Roll 1-3
+1. Minimal (only essential feedback)
+2. Choreographed (orchestrated reveals, scroll-triggered)
+3. Playful (bouncy, overshoots, personality)
+
+**Density:** Roll 1-2
+1. Generous whitespace (luxury, breathing room)
+2. Controlled density (editorial, information-rich)
+
+**Use these when:**
+- Starting a new project with no brand constraints
+- Feeling stuck in repetitive patterns
+- The brief is open-ended
+- You want to explore before committing
+
+### Core Design Philosophy
+
+1. **Simplicity**
+ - Identify the essential purpose and eliminate distractions
+ - Begin with complexity,
+ - Every element must justify its existence
+
+2. **Material Honesty**
+ - Digital materials have unique properties - embrace them
+ - Buttons communicate affordance through color, spacing, typography, AND shadows when intentional
+ - Cards can use borders, background differentiation, OR dramatic shadows for depth
+ - Animations follow real-world physics principles adapted to digital responsiveness
+
+ Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
+
+**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
+
+Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
+
+ **Examples:**
+ - Clickable: Use distinct colors, hover state changes, cursor feedback, subtle lift effects
+ - Containers: Use borders, background shifts, generous padding, OR shadow depth
+ - Hierarchy: Use scale, weight, spacing, AND elevation when it serves the aesthetic
+
+3. **Functional Layering**
+ - Create hierarchy through typography scale, color contrast, and spatial relationships
+ - Layer information conceptually (primary → secondary → tertiary)
+ - Use shadows and gradients INTENTIONALLY when they serve the aesthetic direction
+ - Embrace functional depth: modals over content, dropdowns over UI
+ - Avoid: glass morphism, Apple mimicry (but shadows/gradients are tools, not enemies)
+
+4. **Obsessive Detail**
+ - Consider every pixel, interaction, and transition
+ - Excellence emerges from hundreds of small, intentional decisions
+ - Balance: Details should serve simplicity, not complexity
+ - When detail conflicts with clarity, clarity wins
+
+5. **Coherent Design Language**
+ - Every element should visually communicate its function
+ - Elements should feel part of a unified system
+ - Nothing should feel arbitrary
+
+6. **Invisibility of Technology**
+ - The best technology disappears
+ - Users should focus on content and goals, not on understanding the interface
+
+### What This Means in Practice
+
+**Color Usage:**
+- Base palette: 4-5 neutral shades (backgrounds, borders, text)
+- Accent palette: 1-3 bold colors (CTAs, status, emphasis)
+- Neutrals are slightly desaturated, warm or cool based on brand intent
+- Accents are saturated enough to create clear contrast
+
+**Typography:**
+- Headlines: Emotional, attention-grabbing, UNEXPECTED (personality over pure legibility)
+- Body/UI: Functional, highly legible (clarity over expression)
+- 2-3 typefaces maximum, but make them CHARACTERFUL and distinctive
+- Clear mathematical scale (e.g., 1.25x between sizes)
+- NEVER default to Inter, Roboto, or Space Grotesk - find unique fonts
+
+**Animation:**
+- Purposeful: Guides attention, establishes relationships, provides feedback
+- Physics-informed: Natural easing, appropriate mass/momentum
+
+**Spacing:**
+- Generous negative space creates clarity and breathing room
+- Mathematical relationships (e.g., 4px base, 8/16/24/32/48px scale)
+- Consistent application creates visual rhythm
+
+### Design Decision Checklist
+
+Before presenting any design, verify:
+
+1. **Purpose**: Does every element serve a clear function?
+2. **Hierarchy**: Is visual importance aligned with content importance?
+3. **Consistency**: Do similar elements look and behave similarly?
+4. **Accessibility**: Does it meet WCAG AA standards? (contrast, touch targets, keyboard nav)
+5. **Responsiveness**: Does it work on mobile, tablet, desktop?
+6. **Uniqueness**: Does this break from generic SaaS patterns?
+7. **Approval**: Have I asked before implementing colors, fonts, sizes, layouts?
+
+**Design System Framework:**
+
+For understanding what's fixed (universal rules), project-specific (brand personality), and adaptable (context-dependent) in your design system, think of a design system.
+
+## Visual Design Standards
+
+### Color & Contrast
+
+**Color System Architecture:**
+
+Every interface needs two color roles:
+
+1. **Base/Neutral Palette (4-5 colors):**
+ - Backgrounds (lightest)
+ - Surface colors (cards, inputs)
+ - Borders and dividers
+ - Text (darkest)
+ - Use slightly desaturated, warm or cool greys based on brand
+
+2. **Accent Palette (1-3 colors):**
+ - Primary action (CTA buttons)
+ - Status indicators (success, warning, error, info)
+ - Focus/hover states
+ - Use saturated colors for clear contrast against neutrals
+
+**Palette Structure Example:**
+```
+Neutrals: slate-50, slate-100, slate-300, slate-700, slate-900
+Accents: teal-500 (primary), amber-500 (warning), red-500 (error)
+```
+
+**Color Application Rules:**
+
+- **Backgrounds**: Lightest neutral (slate-50 or white)
+- **Text**: Darkest neutral for primary text (slate-900), mid-tone for secondary (slate-600)
+- **Buttons (primary)**: Accent color with white text
+- **Buttons (secondary)**: Neutral with border and dark text
+- **Status indicators**: Specific accent (green=success, red=error, amber=warning, blue=info)
+- **Interactive states**:
+ - Hover: Darken by 10-15% or shift hue slightly
+ - Focus: Use ring/outline in accent color
+ - Disabled: Reduce opacity to 40-50% and remove hover effects
+
+**Color Relationships:**
+
+Choose warm or cool intentionally based on brand:
+- **Warm greys** (beige/brown undertones): Organic, approachable, trustworthy
+- **Cool greys** (blue undertones): Modern, tech-forward, professional
+
+Accent colors should have clear contrast with both:
+- Light backgrounds (for buttons on white)
+- Dark text (if used as backgrounds for white text)
+
+**Intentional Color Usage:**
+- Every color must serve a purpose (hierarchy, function, status, or action)
+- Avoid decorative colors that don't communicate meaning
+- Maintain consistency: same color = same meaning throughout
+
+**Accessibility:**
+- Ensure sufficient contrast for color-blind users
+- Follow WCAG 2.1 AA: minimum 4.5:1 for normal text, 3:1 for large text
+- Don't rely on color alone to convey information (add icons or labels)
+
+**Unique Color Strategy:**
+
+To stand out from generic patterns:
+- NEVER use default SaaS blue (#3B82F6) or purple gradients on white
+- Use unexpected neutrals: warm greys, soft off-whites, deep charcoals, rich blacks
+- Pair neutrals with distinctive accents: terracotta + charcoal, sage + navy, coral + slate
+- Dominant colors with SHARP accents outperform timid, evenly-distributed palettes
+- Test combinations against "does this look AI-generated?" filter
+- Vary between light and dark themes - no design should look the same
+
+**Create Atmosphere with Color:**
+See **Visual Effects (Implementation Checklist)** for implementation details on gradient meshes, grain overlays, layered transparencies, and dramatic shadows.
+
+### Typography Excellence
+
+**Typography Philosophy:**
+
+Typography is a primary design element that conveys personality and hierarchy.
+
+**Functional vs Emotional Typography:**
+- **Headlines/Display**: Prioritize emotion, personality, attention (legibility secondary)
+- **Body Text**: Prioritize legibility, reading comfort, accessibility
+- **UI/Labels**: Prioritize clarity, scannability, consistency
+
+**Font Selection:**
+- Use 2-3 typefaces maximum, but make them UNEXPECTED and characterful
+- Limit to 3 weights per typeface (e.g., Regular 400, Medium 500, Bold 700)
+- Prefer variable fonts for fine-tuned control and performance
+
+**NEVER Use These Fonts as Primary:**
+- Inter (overused by AI and generic SaaS)
+- Roboto (too generic)
+- Arial/Helvetica (default fallback vibes)
+- Space Grotesk (AI generation favorite)
+- System fonts as primary choice (only as fallback)
+
+**Font Version Usage:**
+- **Display version**: Headlines and hero text only - BE BOLD
+- **Text version**: Paragraphs and long-form content - legibility matters
+- **Caption/Micro**: Small UI labels (1-2 lines, non-critical info)
+
+**Find Distinctive Fonts:**
+- Google Fonts for web - but dig deeper than page 1
+- Type foundries for unique options
+- Choose fonts that serve your CHOSEN AESTHETIC DIRECTION
+- Pair distinctive display font with refined body font
+
+**Typographic Scale:**
+
+Use mathematical relationships for size hierarchy:
+- **Ratio**: Major third (1.25x) for moderate contrast, Perfect fourth (1.333x) for dramatic
+- **Base size**: 16px (1rem) for body text
+- **Example scale (1.25x)**:
+ ```
+ xs: 0.64rem (10px)
+ sm: 0.8rem (13px)
+ base: 1rem (16px)
+ lg: 1.25rem (20px)
+ xl: 1.563rem (25px)
+ 2xl: 1.953rem (31px)
+ 3xl: 2.441rem (39px)
+ 4xl: 3.052rem (49px)
+ 5xl: 3.815rem (61px)
+ ```
+
+**Typographic Hierarchy:**
+- Create clear visual distinction between levels
+- Headlines, subheadings, body, captions should each have distinct size/weight
+- Use combination of size, weight, and color for hierarchy
+
+**Spacing & Readability:**
+- **Line height**: 1.5x font size for body text (e.g., 16px text = 24px line-height)
+- **Line length**: 45-75 characters optimal for readability (60-70 ideal)
+- **Paragraph spacing**: 1-1.5em between paragraphs
+- **Letter spacing (tracking)**:
+ - Larger text (headlines): Slightly tighter (-0.02em to -0.05em)
+ - Normal text (body): Default (0)
+ - Small text (captions): Slightly looser (+0.01em to +0.03em)
+ - General rule: As size increases, reduce tracking; as size decreases, increase tracking
+
+**Font Pairing Logic:**
+
+When using multiple typefaces, create contrast through:
+- **Category contrast**: Serif + Sans-serif (classic, clear distinction)
+- **Weight contrast**: Light + Bold (dynamic, energetic)
+- **Personality contrast**: Geometric + Humanist (modern + warm)
+
+Examples:
+- Serif headlines + Sans body (editorial, trustworthy)
+- Display headlines + System body (distinctive + efficient)
+- Bold sans headlines + Light sans body (modern, clean)
+
+**UI Typography:**
+
+Specific guidance for interface elements:
+- **Button text**: Semi-Bold (600), 14-16px, consistent casing (all-caps OR title case)
+- **Form labels**: Regular (400), 14px, positioned above input
+- **Form input text**: Regular (400), 16px minimum (prevents iOS zoom on focus)
+- **Placeholder text**: Light (300) or desaturated color, same size as input
+- **Error messages**: Regular (400), 12-14px, color-coded (red-ish)
+
+**Responsive Typography:**
+
+Scale type sizes across breakpoints:
+```tsx
+// Example with Tailwind
+
+ Responsive Headline
+
+
+// Or with CSS clamp (fluid)
+h1 {
+ font-size: clamp(2rem, 5vw, 4rem);
+}
+```
+
+Reduce sizes on mobile (20-30% smaller than desktop)
+Reduce hierarchy levels on small screens (fewer distinct sizes)
+
+### Layout & Spatial Design
+
+**Compositional Balance:**
+- Every screen should feel balanced
+- Pay attention to visual weight and negative space
+- Use generous negative space to focus attention
+- Add sufficient margins and paddings for professional, spacious look
+
+**Grid Discipline:**
+- Maintain consistent underlying grid system
+- Create sense of order while allowing meaningful exceptions
+- Use grid/flex wrappers with `gap` for spacing
+- Prioritize wrappers over direct margins/padding on children
+
+**Spatial Relationships:**
+- Group related elements through proximity, alignment, and shared attributes
+- Use size, color, and spacing to highlight important elements
+- Guide user focus through visual hierarchy
+
+**Attention Guidance:**
+- Design interfaces that guide user attention effectively
+- Avoid cluttered interfaces where elements compete
+- Create clear paths through the content
+
+## Interaction Design
+
+
+**Motion Specification:**
+
+For detailed motion specs, see MOTION-SPEC.md (easing curves, duration tables, state-specific animations, implementation patterns).
+
+### Motion Requirements (Implementation Checklist)
+
+These are specific, high-impact motion patterns to implement for memorable interfaces:
+
+**Scroll-Triggered Animations:**
+- Use Intersection Observer API for performant scroll detection
+- Trigger animations when elements enter viewport (not on page load)
+- Example: `data-animate="fade-up"` with `.is-visible` class toggle
+
+**Staggered Reveal Animations:**
+- Use `animation-delay` for sequential element reveals
+- Apply to lists, grids, and grouped content
+
+*Timing principles (not rules):*
+- **Base delay**: 50-150ms between elements (faster = energetic, slower = elegant)
+- **Total sequence**: Keep under 1s or users lose patience
+- **Pattern choices**: Linear (predictable), eased (accelerating/decelerating), or random (chaotic)
+- **Direction**: Left-to-right, top-to-bottom, diagonal, center-out, or edge-in
+
+**Background Atmosphere:**
+- Add grain/noise texture overlay via `body::before` pseudo-element
+- Create floating/pulsing background orbs with `@keyframes`
+
+*Ambient motion principles:*
+- **Duration**: 8-20s for background elements (slow = calming, faster = energetic)
+- **Transform types**: translateY (floating), scale (breathing), rotate (orbiting)
+- **Easing**: Use `ease-in-out` for organic, breathing feel
+- **Intensity**: Subtle (5-20px movement) for backgrounds, bolder for hero elements
+- **Layering**: Multiple elements at different speeds create depth (parallax effect)
+
+**Layout Animation:**
+- Use asymmetric bento grid layouts with varied reveal timing
+- Animate grid items individually, not the container
+- Consider diagonal or wave-pattern reveal sequences
+
+**Data Visualization Motion:**
+- Include animated progress bars that fill on scroll-trigger
+- Implement stat counters that count up when visible
+- Use easing that slows at the end (ease-out) for natural feel
+
+**Hover State Transformations:**
+- `translateY(-4px)` for subtle lift effect
+- `scale(1.02-1.05)` for emphasis
+- Glow effects via `box-shadow` with accent color
+- Combine transforms: `transform: translateY(-4px) scale(1.02);`
+- Always include `transition` for smooth state changes
+
+**Social Proof Motion:**
+- Implement infinite marquee/ticker for testimonials, logos, or stats
+- Use CSS-only approach with `@keyframes` for seamless loop
+- Pause on hover for accessibility (`animation-play-state: paused`)
+
+*Marquee principles:*
+- **Speed**: 20-60s for full cycle (slower = premium, faster = urgency)
+- **Direction**: Horizontal (traditional), vertical (unique), or diagonal (bold)
+- **Content duplication**: Duplicate content 2x for seamless loop
+- **Gap control**: Consistent spacing between items (use flexbox gap)
+- **Pause behavior**: Always pause on hover/focus for accessibility
+
+### Visual Effects (Implementation Checklist)
+
+Consolidated checklist for atmospheric visual effects (complements Color & Typography sections):
+
+**Gradient Mesh Backgrounds:**
+- Use multiple radial gradients with offset positions
+- Blend with `background-blend-mode: multiply` or `overlay`
+- Animate gradient positions subtly for living backgrounds
+
+*Gradient mesh principles:*
+- **Layer count**: 2-4 radial gradients (more = richer, fewer = cleaner)
+- **Position strategy**: Offset from corners/edges (20-30% from edge creates tension)
+- **Opacity range**: 0.1-0.4 for overlays (subtle), 0.5-0.8 for dominant
+- **Shape choices**: Ellipse (organic), circle (focused), conic (radial burst)
+- **Animation**: Shift positions 10-30% over 15-30s for subtle movement
+
+**Dramatic Shadows (Not Subtle):**
+- Use layered shadows for depth: `box-shadow: 0 4px 6px rgba(), 0 10px 20px rgba();`
+- Add color to shadows from accent palette
+- Consider `drop-shadow` filter for non-rectangular elements
+- Shadows should be visible and intentional, not barely perceptible
+
+**Layered Transparencies:**
+- Stack elements with `rgba()` or `hsla()` backgrounds
+- Use `backdrop-filter: blur()` sparingly (performance cost)
+- Create depth through overlapping translucent layers
+
+**Grain/Noise Texture:**
+- Apply via `::before` or `::after` pseudo-element
+- Use SVG noise filter or tiny repeating PNG
+- Set `opacity: 0.03-0.08` for subtle texture
+- Use `pointer-events: none` to not interfere with interactions
+
+**Custom Cursors:**
+- Change cursor for interactive regions: `cursor: pointer`
+- Consider custom cursor images for brand differentiation
+- Use `cursor: grab` / `cursor: grabbing` for draggable elements
+- Always provide fallback: `cursor: url(custom.cur), pointer;`
+
+### User Experience Patterns
+
+**Core UX Principles:**
+
+1. **Direct Manipulation**
+ - Users interact directly with content, not through abstract controls
+ - Examples:
+ - Drag & drop to reorder items (not up/down buttons)
+ - Inline editing (click to edit, not separate form)
+ - Sliders for ranges (not numeric input with +/-)
+ - Pinch/zoom gestures on mobile (not +/- buttons)
+
+2. **Immediate Feedback**
+ - Every interaction provides instantaneous visual feedback (within 100ms)
+ - Types of feedback:
+ - **Visual**: Button pressed state, hover effects, color changes
+ - **Haptic**: Vibration on mobile (submit, error, success)
+ - **Audio**: Subtle sounds for critical actions (optional, user-controlled)
+ - **Loading**: Skeleton screens, spinners for >300ms operations
+ - **Success**: Checkmarks, green highlights, toast notifications
+ - **Error**: Red highlights, inline error messages, shake animations
+
+3. **Consistent Behavior**
+ - Similar-looking elements behave similarly
+ - Examples:
+ - **Visual consistency**: All primary buttons have same colors, sizes, hover states
+ - **Behavioral consistency**: All modals close via X button, ESC key, and outside click
+ - **Interaction consistency**: All drag targets have same hover state and drop feedback
+ - **Pattern consistency**: All forms validate on blur and submit
+
+4. **Forgiveness**
+ - Make errors difficult, but recovery easy
+ - **Prevention strategies**:
+ - Disable invalid actions (grey out unavailable buttons)
+ - Validate inputs inline (before submission)
+ - Confirm destructive actions (delete, overwrite)
+ - Auto-save in background (drafts, progress)
+ - **Recovery strategies**:
+ - Undo/redo for all state changes
+ - Soft deletes (trash/archive before permanent delete)
+ - Clear error messages with actionable fixes
+ - Preserve user input on errors (don't clear forms)
+
+5. **Progressive Disclosure**
+ - Reveal details as needed rather than overwhelming users
+ - Levels of disclosure:
+ - **Summary**: Show essential info by default (card title, price, rating)
+ - **Details**: Expand to show more info (description, specs, reviews)
+ - **Advanced**: Hide complex options behind "Advanced settings" toggle
+ - Examples:
+ - Accordion: Start collapsed, expand on click
+ - Search filters: Show 3-5 common filters, hide rest behind "More filters"
+ - Settings: Basic settings visible, advanced behind "Show advanced"
+
+**Modern UX Patterns:**
+
+1. **Conversational Interfaces**
+
+ Prioritize natural language interaction where appropriate:
+
+ **Four types:**
+ - **Pure chat**: Full conversation (AI assistants, support bots)
+ - **Command palette**: Text-based shortcuts (Cmd+K, search everywhere)
+ - **Smart search**: Natural language queries (search "meetings next week" vs filtering)
+ - **Form alternatives**: Conversational data collection ("What's your name?" vs form fields)
+
+ **When to use:**
+ - Complex searches with multiple variables
+ - Task guidance (wizards, onboarding)
+ - Contextual help
+ - Quick actions (command palette)
+
+ **When NOT to use:**
+ - Simple forms (just use inputs)
+ - Precise control interfaces (design tools, dashboards)
+ - High-frequency repetitive tasks
+
+2. **Adaptive Layouts**
+
+ Respond to user context automatically:
+ - **Time-based**: Dark mode at night, light during day
+ - **Device-based**: Simplified UI on mobile, full features on desktop
+ - **Connection-based**: Reduce images/video on slow connections
+ - **Usage-based**: Prioritize frequent actions, hide rarely-used features
+
+ Examples:
+ - Auto dark/light mode based on time or system preference
+ - Simplified mobile navigation (hamburger menu) vs full desktop nav
+ - Collapsed sidebar on small screens, expanded on large
+
+3. **Bold Visual Expression**
+
+ Aesthetic flexibility based on chosen direction:
+ - Shadows ALLOWED and encouraged when intentional (dramatic shadows, soft elevation)
+ - Gradients ALLOWED for depth, accents, backgrounds, and atmosphere
+ - NO glass morphism effects (this is the one banned technique)
+ - NO Apple design mimicry (find your own voice)
+ - Focus on typography, color, spacing, AND visual effects to create hierarchy
+ - Create atmosphere: gradient meshes, noise textures, grain overlays, dramatic lighting
+
+**Navigation:**
+- Clear structure with intuitive navigation menus
+- Implement breadcrumbs for deep hierarchies (more than 2 levels)
+- Use standard UI patterns to reduce learning curve (hamburger menu, tab bars)
+- Ensure predictable behavior (back button works, links look clickable)
+- Maintain navigation context (highlight current page, preserve scroll position)
+
+## Styling Implementation
+
+### Component Library & Tools
+
+**Component Library:**
+- Strongly prefer shadcn components (v4, pre-installed in `@/components/ui`)
+- Import individually: `import { Button } from "@/components/ui/button";`
+- Use over plain HTML elements (`` over ``)
+- Avoid creating custom components with names that clash with shadcn
+
+**Styling Engine:**
+- Use Tailwind utility classes exclusively
+- Adhere to theme variables in `index.css` via CSS custom properties
+- Map variables in `@theme` (see `tailwind.config.js`)
+- Use inline styles or CSS modules only when absolutely necessary
+
+**Icons:**
+- Use `@phosphor-icons/react` for buttons and inputs
+- Example: `import { Plus } from "@phosphor-icons/react"; `
+- Use color for plain icon buttons
+- Don't override default `size` or `weight` unless requested
+
+**Notifications:**
+- Use `sonner` for toasts
+- Example: `import { toast } from 'sonner'`
+
+**Loading States:**
+- Always add loading states, spinners, placeholder animations
+- Use skeletons until content renders
+
+### Layout Implementation
+
+**Spacing Strategy:**
+- Use grid/flex wrappers with `gap` for spacing
+- Prioritize wrappers over direct margins/padding on children
+- Nest wrappers as needed for complex layouts
+
+**Conditional Styling:**
+- Use ternary operators or clsx/classnames utilities
+- Example: `className={clsx('base-class', { 'active-class': isActive })}`
+
+### Responsive Design
+
+**Fluid Layouts:**
+- Use relative units (%, em, rem) instead of fixed pixels
+- Implement CSS Grid and Flexbox for flexible layouts
+- Design mobile-first, then scale up
+
+**Media Queries:**
+- Use breakpoints based on content needs, not specific devices
+- Test across range of devices and orientations
+
+**Touch Targets:**
+- Minimum 44x44 pixels for interactive elements
+- Provide adequate spacing between touch targets
+- Addhover states for desktop, focus states for touch/keyboard
+
+**Performance:**
+- Optimize assets for mobile networks
+- Use CSS animations over JavaScript
+- Implement lazy loading for images and videos
+
+## Accessibility Standards
+
+**Core Requirements:**
+- Follow WCAG 2.1 AA guidelines
+- Ensure keyboard navigability for all interactive elements
+- Minimum touch target size: 44×44px
+- Use semantic HTML for screen reader compatibility
+- Provide alternative text for images and non-text content
+
+**Implementation Details:**
+- Use descriptive variable and function names
+- Event functions: prefix with "handle" (handleClick, handleKeyDown)
+- Add accessibility attributes:
+ - `tabindex="0"` for custom interactive elements
+ - `aria-label` for buttons without text
+ - `role` attributes when semantic HTML isn't sufficient
+- Ensure logical tab order
+- Provide visible focus states
+
+## Design Process & Testing
+
+### Design Workflow
+
+1. **Understand Context:**
+ - What problem are we solving?
+ - Who are the users and when will they use this?
+ - What are the success criteria?
+
+2. **Explore Options:**
+ - Present 2-3 alternative approaches
+ - Explain trade-offs of each option
+ - Ask which direction resonates
+
+3. **Implement Iteratively:**
+ - Start with structure and hierarchy
+ - Add visual polish progressively
+ - Test at each stage
+
+4. **Validate:**
+ - Use playwright MCP to test visual changes
+ - Check across different screen sizes
+ - Verify accessibility
+
+### Testing Checklist
+
+**Visual Testing:**
+- Use playwright MCP when available for automated testing
+- Check responsive behavior at common breakpoints
+- Verify touch targets on mobile
+- Test with different content lengths (short, long, edge cases)
+
+**Accessibility Testing:**
+- Test keyboard navigation
+- Verify screen reader compatibility
+- Check color contrast ratios
+- Ensure focus states are visible
+
+**Cross-Device Testing:**
+- Test on actual devices, not just emulators
+- Check different browsers (Chrome, Firefox, Safari)
+- Verify touch interactions on mobile
+- Test landscape and portrait orientations
+
+## Examples
+
+### Example 1: Designing a Button
+
+**Initial Question to Ask:**
+```
+Before I implement this button, I have a few design questions:
+1. What's the primary action you want to emphasize?
+2. Do you have brand colors in mind, or should I suggest options?
+3. What emotion should this button convey? (urgent, calm, playful, professional)
+```
+
+**After Getting Approval, Implementation:**
+```tsx
+import { Button } from "@/components/ui/button";
+import { ArrowRight } from "@phosphor-icons/react";
+
+
+ Get Started
+
+
+```
+
+### Example 2: Typography Hierarchy
+
+**Question First:**
+```
+For this content hierarchy, I'm thinking:
+- Headline: Large, bold, attention-grabbing
+- Subheading: Medium, regular weight
+- Body: Smaller, optimized for reading
+
+Should we go bold and contemporary, or subtle and refined?
+```
+
+**Implementation After Approval:**
+```tsx
+
+
+ Headline Here
+
+
+ Supporting subheading
+
+
+ Body text optimized for readability with proper line height.
+
+
+```
+
+### Example 3: Unique Color Palette Suggestion
+
+**Presenting Options:**
+```
+I'd like to suggest three color directions that break from typical SaaS patterns:
+
+1. **Warm Earth Tones**
+ - Base: Warm grey (#E8E2DC)
+ - Accent: Terracotta (#C86E4B)
+ - For: Organic, trustworthy feel
+
+2. **Cool Midnight**
+ - Base: Deep navy (#1A2332)
+ - Accent: Cyan (#4ECDC4)
+ - For: Modern, tech-forward feel
+
+3. **Soft Pastels**
+ - Base: Soft pink (#FFE5E5)
+ - Accent: Sage green (#9DB5A4)
+ - For: Calm, approachable feel
+
+Which direction feels right for your brand?
+```
+
+## Common Patterns to Avoid
+
+❌ **NEVER:**
+- Use Inter, Roboto, Arial, Space Grotesk as primary fonts
+- Use generic SaaS blue (#3B82F6) or purple gradients on white
+- Copy Apple's design language or use glass morphism
+- Create cookie-cutter layouts that look AI-generated
+- Skip asking about context before designing
+- Converge on common choices across generations (vary everything!)
+- Use animations that delay user actions
+- Create cluttered interfaces where elements compete
+
+✅ **ALWAYS:**
+- Ask about purpose, tone, constraints, differentiation FIRST
+- Then commit BOLDLY to a distinctive aesthetic direction
+- Use unexpected, characterful typography choices
+- Create atmosphere: shadows, gradients, textures, grain (when intentional)
+- Dominant colors with sharp accents (not timid, evenly-distributed palettes)
+- Provide immediate feedback for interactions
+- Test with real devices
+- Validate accessibility (it enables creativity, not limits it)
+
+## When to Break the Rules
+
+Guidelines exist to prevent mediocrity, not to limit excellence. Break them when:
+
+**Context demands it:**
+- Client brand already uses Inter? Use it brilliantly, don't force alternatives
+- Glass morphism IS the aesthetic? Commit fully, don't half-execute
+- The brief calls for Apple-like refinement? Study and exceed, don't avoid
+
+**You have a stronger idea:**
+- A "banned" pattern executed with intention beats a "safe" pattern executed without conviction
+- If you can articulate WHY you're breaking a rule, break it
+- Mediocre rule-following < bold rule-breaking with purpose
+
+**The unexpected is the point:**
+- Intentional dissonance (clashing fonts, jarring colors) can be powerful
+- "Ugly" design is a legitimate aesthetic choice when deliberate
+- Comfort is the enemy of memorable
+
+**Rule-breaking checklist:**
+1. Can you explain the creative intent?
+2. Is it a conscious choice, not laziness?
+3. Does it serve the user/brand/context?
+4. Would a senior designer defend this choice?
+
+If yes to all → break the rule confidently.
+
+## References
+
+**Progressive Disclosure Files:**
+- ACCESSIBILITY.md - Accessibility essentials (WCAG AA baseline)
+- MOTION-SPEC.md - Animation timing and easing
+- RESPONSIVE-DESIGN.md - Mobile-first breakpoints and patterns
diff --git a/.agents/skills/bencium-innovative-ux-designer/ACCESSIBILITY.md b/.agents/skills/bencium-innovative-ux-designer/ACCESSIBILITY.md
new file mode 100644
index 0000000..d514f4e
--- /dev/null
+++ b/.agents/skills/bencium-innovative-ux-designer/ACCESSIBILITY.md
@@ -0,0 +1,111 @@
+# Accessibility Essentials
+
+Accessibility enables creativity - it's a foundation, not a limitation. WCAG 2.1 AA compliance.
+
+## Core Principles (POUR)
+
+- **Perceivable**: Content must be perceivable (alt text, contrast, captions)
+- **Operable**: UI must be keyboard/touch accessible
+- **Understandable**: Clear, predictable behavior
+- **Robust**: Works with assistive technologies
+
+## Contrast Requirements
+
+| Element | Minimum Ratio |
+|---------|---------------|
+| Normal text | 4.5:1 |
+| Large text (18pt+) | 3:1 |
+| UI components | 3:1 |
+
+**Tools**: Chrome DevTools Accessibility tab, WebAIM Contrast Checker
+
+## Keyboard Navigation
+
+```tsx
+// All interactive elements need focus states
+
+ Accessible
+
+
+// Custom elements need tabindex and key handlers
+ (e.key === 'Enter' || e.key === ' ') && handleClick()}
+>
+ Custom Button
+
+```
+
+**Essentials:**
+- Tab through entire interface
+- Enter/Space activates elements
+- Escape closes modals
+- Visible focus indicators always
+
+## Essential ARIA
+
+```tsx
+// Buttons without text
+
+
+// Expandable elements
+Menu
+
+// Live regions for dynamic content
+{statusMessage}
+{errorMessage}
+
+// Form errors
+
+{hasError && Error text
}
+```
+
+## Semantic HTML
+
+```tsx
+// Use semantic elements, not divs
+
+...
+
+
+// Heading hierarchy (never skip levels)
+Page Title
+ Section
+ Subsection
+```
+
+## Touch Targets
+
+- Minimum **44x44px** for all interactive elements
+- Adequate spacing between targets
+- `touch-manipulation` CSS for responsive touch
+
+## Screen Reader Content
+
+```tsx
+// Hidden but announced
+Additional context
+
+// Skip link
+
+ Skip to main content
+
+```
+
+## Quick Checklist
+
+- [ ] Keyboard: Can tab through everything
+- [ ] Focus: Visible focus indicators
+- [ ] Contrast: 4.5:1 for text
+- [ ] Alt text: All images have appropriate alt
+- [ ] Headings: Logical h1-h6 hierarchy
+- [ ] Forms: Labels associated with inputs
+- [ ] Errors: Announced to screen readers
+- [ ] Touch: 44px minimum targets
+
+## Resources
+
+- [WCAG 2.1 Quick Reference](https://www.w3.org/WAI/WCAG21/quickref/)
+- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
+- [ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/)
diff --git a/.agents/skills/bencium-innovative-ux-designer/DESIGN-SYSTEM-TEMPLATE.md b/.agents/skills/bencium-innovative-ux-designer/DESIGN-SYSTEM-TEMPLATE.md
new file mode 100644
index 0000000..e968748
--- /dev/null
+++ b/.agents/skills/bencium-innovative-ux-designer/DESIGN-SYSTEM-TEMPLATE.md
@@ -0,0 +1,577 @@
+# Design System Template
+
+Meta-framework for understanding what's fixed, project-specific, and adaptable in your design system.
+
+## Purpose
+
+This template helps you distinguish between:
+- **Fixed Elements**: Universal rules that never change
+- **Project-Specific Elements**: Filled in for each project based on brand
+- **Adaptable Elements**: Context-dependent implementations
+
+---
+
+## I. FIXED ELEMENTS
+
+These foundations remain consistent across all projects, regardless of brand or context.
+
+### 1. Spacing Scale
+
+**Fixed System:**
+```
+4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px
+```
+
+**Usage:**
+- Margins, padding, gaps between elements
+- Mathematical relationships ensure visual harmony
+- Use multipliers of base unit (4px)
+
+**Why Fixed:**
+Consistent spacing creates visual rhythm regardless of brand personality.
+
+### 2. Grid System
+
+**Fixed Structure:**
+- **12-column grid** for most layouts (divisible by 2, 3, 4, 6)
+- **16-column grid** for data-heavy interfaces
+- **Gutters**: 16px (mobile), 24px (tablet), 32px (desktop)
+
+**Why Fixed:**
+Grid provides structural order. Brand personality shows through color, typography, content—not grid structure.
+
+### 3. Accessibility Standards
+
+**Fixed Requirements:**
+- **WCAG 2.1 AA** compliance minimum
+- **Contrast**: 4.5:1 for normal text, 3:1 for large text
+- **Touch targets**: Minimum 44×44px
+- **Keyboard navigation**: All interactive elements accessible
+- **Screen reader**: Semantic HTML, ARIA labels where needed
+
+**Why Fixed:**
+Accessibility is not negotiable. It's a baseline requirement for ethical, legal, and usable products.
+
+### 4. Typography Hierarchy Logic
+
+**Fixed Structure:**
+- **Mathematical scaling**: 1.25x (major third) or 1.333x (perfect fourth)
+- **Hierarchy levels**: Display → H1 → H2 → H3 → Body → Small → Caption
+- **Line height**: 1.5x for body text, 1.2-1.3x for headlines
+- **Line length**: 45-75 characters optimal
+
+**Why Fixed:**
+Mathematical relationships create predictable, harmonious hierarchy. Specific fonts change, but the logic doesn't.
+
+### 5. Component Architecture
+
+**Fixed Patterns:**
+- **Button states**: Default, Hover, Active, Focus, Disabled
+- **Form structure**: Label above input, error below, helper text optional
+- **Modal pattern**: Overlay + centered content + close mechanism
+- **Card structure**: Container → Header → Body → Footer (optional)
+
+**Why Fixed:**
+Users expect consistent component behavior. Architecture is fixed; appearance is project-specific.
+
+### 6. Animation Timing Framework
+
+**Fixed Physics Profiles:**
+- **Lightweight** (icons, chips): 150ms
+- **Standard** (cards, panels): 300ms
+- **Weighty** (modals, pages): 500ms
+
+**Fixed Easing:**
+- **Ease-out**: Entrances (fast start, slow end)
+- **Ease-in**: Exits (slow start, fast end)
+- **Ease-in-out**: Transitions (smooth both ends)
+
+**Why Fixed:**
+Natural physics feel consistent across brands. Duration and easing create that feeling.
+
+---
+
+## II. PROJECT-SPECIFIC ELEMENTS
+
+Fill in these for each project based on brand personality and purpose.
+
+### 1. Brand Color System
+
+**Template Structure:**
+
+```
+NEUTRALS (4-5 colors):
+- Background lightest: _______ (e.g., slate-50 or warm-white)
+- Surface: _______ (e.g., slate-100)
+- Border/divider: _______ (e.g., slate-300)
+- Text secondary: _______ (e.g., slate-600)
+- Text primary: _______ (e.g., slate-900)
+
+ACCENTS (1-3 colors):
+- Primary (main CTA): _______ (e.g., teal-500)
+- Secondary (alternative action): _______ (optional)
+- Status colors:
+ - Success: _______ (green-ish)
+ - Warning: _______ (amber-ish)
+ - Error: _______ (red-ish)
+ - Info: _______ (blue-ish)
+```
+
+**Questions to Answer:**
+- What emotion should the brand evoke? (Trust, excitement, calm, urgency)
+- Warm or cool neutrals?
+- Conservative or bold accents?
+
+**Examples:**
+
+**Project A: Fintech App**
+```
+Neutrals: Cool greys (slate-50 → slate-900)
+Primary: Deep blue (#0A2463) – trust, professionalism
+Success: Muted green (#10B981)
+Why: Financial products need trust, not playfulness
+```
+
+**Project B: Creative Community**
+```
+Neutrals: Warm greys with beige undertones
+Primary: Coral (#FF6B6B) – energy, creativity
+Success: Teal (#06D6A0) – fresh, unexpected
+Why: Creative spaces should feel inviting, not corporate
+```
+
+**Project C: Healthcare Platform**
+```
+Neutrals: Pure greys (minimal color temperature)
+Primary: Soft blue (#4A90E2) – calm, clinical
+Success: Medical green (#38A169)
+Why: Healthcare needs clarity and calm, not distraction
+```
+
+### 2. Typography Pairing
+
+**Template:**
+
+```
+HEADLINE FONT: _______
+- Weight: _______ (e.g., Bold 700)
+- Use case: H1, H2, display text
+- Personality: _______ (geometric/humanist/serif/etc.)
+
+BODY FONT: _______
+- Weight: _______ (e.g., Regular 400, Medium 500)
+- Use case: Paragraphs, UI text
+- Personality: _______ (neutral/readable/efficient)
+
+OPTIONAL ACCENT FONT: _______
+- Weight: _______
+- Use case: _______ (special headlines, callouts)
+```
+
+**Pairing Logic:**
+- Serif + Sans-serif (classic, editorial)
+- Geometric + Humanist (modern + warm)
+- Display + System (distinctive + efficient)
+
+**Examples:**
+
+**Project A: Editorial Platform**
+```
+Headline: Playfair Display (Serif, Bold 700)
+Body: Inter (Sans-serif, Regular 400)
+Why: Serif headlines = trustworthy, editorial feel
+```
+
+**Project B: Tech Startup**
+```
+Headline: DM Sans (Sans-serif, Bold 700)
+Body: DM Sans (Regular 400, Medium 500)
+Why: Single-font system = modern, efficient, cohesive
+```
+
+**Project C: Luxury Brand**
+```
+Headline: Cormorant Garamond (Serif, Light 300)
+Body: Lato (Sans-serif, Regular 400)
+Why: Elegant serif + readable sans = sophisticated
+```
+
+### 3. Tone of Voice
+
+**Template:**
+
+```
+BRAND PERSONALITY:
+- Formal ↔ Casual: _______ (1-10 scale)
+- Professional ↔ Friendly: _______ (1-10 scale)
+- Serious ↔ Playful: _______ (1-10 scale)
+- Authoritative ↔ Conversational: _______ (1-10 scale)
+
+MICROCOPY EXAMPLES:
+- Button label (submit form): _______
+- Error message (invalid email): _______
+- Success message (saved): _______
+- Empty state: _______
+
+ANIMATION PERSONALITY:
+- Speed: _______ (quick/moderate/slow)
+- Feel: _______ (precise/smooth/bouncy)
+```
+
+**Examples:**
+
+**Project A: Banking App**
+```
+Personality: Formal (8), Professional (9), Serious (8)
+Button: "Submit Application"
+Error: "Email address format is invalid"
+Success: "Application submitted successfully"
+Animation: Quick (precise, efficient, no-nonsense)
+```
+
+**Project B: Social App**
+```
+Personality: Casual (8), Friendly (9), Playful (7)
+Button: "Let's go!"
+Error: "Hmm, that email doesn't look right"
+Success: "Nice! You're all set 🎉"
+Animation: Moderate (smooth, friendly bounce)
+```
+
+### 4. Animation Speed & Feel
+
+**Template:**
+
+```
+SPEED PREFERENCE:
+- UI interactions: _______ (100-150ms / 150-200ms / 200-300ms)
+- State changes: _______ (200ms / 300ms / 400ms)
+- Page transitions: _______ (300ms / 500ms / 700ms)
+
+ANIMATION STYLE:
+- Easing preference: _______ (sharp / standard / bouncy)
+- Movement type: _______ (minimal / smooth / expressive)
+```
+
+**Examples:**
+
+**Project A: Trading Platform**
+```
+Speed: Fast (100ms UI, 200ms states, 300ms pages)
+Style: Sharp easing, minimal movement
+Why: Traders need speed, not distraction
+```
+
+**Project B: Wellness App**
+```
+Speed: Slow (200ms UI, 400ms states, 500ms pages)
+Style: Smooth easing, gentle movement
+Why: Calm, relaxing experience matches brand
+```
+
+---
+
+## III. ADAPTABLE ELEMENTS
+
+Context-dependent implementations that vary based on use case.
+
+### 1. Component Variations
+
+**Button Variants:**
+- **Primary**: Full background color (high emphasis)
+- **Secondary**: Outline only (medium emphasis)
+- **Tertiary**: Text only (low emphasis)
+- **Destructive**: Red-ish (danger actions)
+- **Ghost**: Minimal (navigation, toolbars)
+
+**Adaptation Rules:**
+- Primary: Main CTA, one per screen section
+- Secondary: Alternative actions
+- Tertiary: Less important actions, multiple allowed
+- Use brand colors, but hierarchy logic is fixed
+
+### 2. Responsive Breakpoints
+
+**Fixed Ranges:**
+- XS: 0-479px (small phones)
+- SM: 480-767px (large phones)
+- MD: 768-1023px (tablets)
+- LG: 1024-1439px (laptops)
+- XL: 1440px+ (desktop)
+
+**Adaptable Implementations:**
+
+**Simple Content Site:**
+```
+XS-SM: Single column
+MD: 2 columns
+LG-XL: 3 columns max
+Why: Content-focused, don't overwhelm
+```
+
+**Dashboard/Data App:**
+```
+XS: Collapsed, cards stack
+SM: Simplified sidebar
+MD: Full sidebar + main content
+LG-XL: Sidebar + main + right panel
+Why: Data apps need more screen real estate
+```
+
+### 3. Dark Mode Palette
+
+**Adaptation Strategy:**
+
+Not a simple inversion. Dark mode needs adjusted contrast:
+
+**Light Mode:**
+```
+Background: #FFFFFF (white)
+Text: #0F172A (slate-900) → 21:1 contrast
+```
+
+**Dark Mode (Adapted):**
+```
+Background: #0F172A (slate-900)
+Text: #E2E8F0 (slate-200) → 15.8:1 contrast (still AA, but softer)
+```
+
+**Why Adapt:**
+Pure white on pure black is too harsh. Dark mode needs slightly lower contrast for eye comfort.
+
+### 4. Loading States
+
+**Context-Dependent:**
+
+**Fast operations (<500ms):**
+- No loading indicator (feels instant)
+
+**Medium operations (500ms-2s):**
+- Spinner or skeleton screen
+
+**Long operations (>2s):**
+- Progress bar with percentage
+- Or: Skeleton + estimated time
+
+**Interactive Operations:**
+- Button shows spinner inside (don't disable, show state)
+
+### 5. Error Handling Strategy
+
+**Context-Dependent:**
+
+**Form Errors:**
+```
+Validate: On blur (after user leaves field)
+Display: Inline below field
+Recovery: Clear error on fix
+```
+
+**API Errors:**
+```
+Transient (network): Show retry button
+Permanent (404): Show helpful message + next steps
+Critical (500): Contact support option
+```
+
+**Data Errors:**
+```
+Missing: Show empty state with action
+Corrupt: Show error boundary with reload
+Invalid: Highlight + explain what's wrong
+```
+
+---
+
+## DECISION TREE
+
+When implementing a feature, ask:
+
+### Is this...
+
+**FIXED?**
+- Does it affect structure, accessibility, or universal UX?
+- Examples: Spacing scale, grid, contrast ratios, component architecture
+- **Action**: Use the fixed system, no variation
+
+**PROJECT-SPECIFIC?**
+- Does it express brand personality or purpose?
+- Examples: Colors, typography, tone of voice, animation feel
+- **Action**: Fill in the template for this project
+
+**ADAPTABLE?**
+- Does it depend on context, content, or use case?
+- Examples: Component variants, responsive behavior, error handling
+- **Action**: Choose appropriate variation based on context
+
+---
+
+## EXAMPLE: Implementing a "Submit" Button
+
+### Fixed Elements (Always the same):
+- Touch target: 44px minimum height
+- Padding: 16px horizontal (from spacing scale)
+- States: Default, Hover, Active, Focus, Disabled
+- Animation: 150ms ease-out (lightweight profile)
+
+### Project-Specific (Filled per project):
+- **Project A (Bank)**: Dark blue background, white text, "Submit Application"
+- **Project B (Social)**: Coral background, white text, "Let's Go!"
+- **Project C (Healthcare)**: Soft blue background, white text, "Continue"
+
+### Adaptable (Context-dependent):
+- **Form context**: Primary button (full color)
+- **Toolbar context**: Ghost button (text only)
+- **Danger context**: Destructive variant (red-ish)
+
+---
+
+## VALIDATION CHECKLIST
+
+Before finalizing a design, check:
+
+### Fixed Elements
+- [ ] Uses spacing scale (4/8/12/16/24/32/48/64/96px)
+- [ ] Follows grid system (12 or 16 columns)
+- [ ] Meets WCAG AA contrast (4.5:1 normal, 3:1 large)
+- [ ] Touch targets ≥ 44px
+- [ ] Typography follows mathematical scale
+- [ ] Components follow standard architecture
+
+### Project-Specific Elements
+- [ ] Brand colors filled in and intentional
+- [ ] Typography pairing chosen and justified
+- [ ] Tone of voice defined and consistent
+- [ ] Animation speed matches brand personality
+
+### Adaptable Elements
+- [ ] Component variants appropriate for context
+- [ ] Responsive behavior fits content type
+- [ ] Loading states match operation duration
+- [ ] Error handling fits error type
+
+---
+
+## PROJECT KICKOFF TEMPLATE
+
+Use this to start a new project:
+
+```
+PROJECT NAME: _______________________
+PURPOSE: ____________________________
+
+BRAND PERSONALITY:
+- Primary emotion: _______
+- Warm or cool: _______
+- Formal or casual: _______
+- Conservative or bold: _______
+
+COLORS (fill the template):
+- Neutral base: _______
+- Primary accent: _______
+- Status colors: _______ / _______ / _______
+
+TYPOGRAPHY (fill the template):
+- Headline font: _______
+- Body font: _______
+- Pairing rationale: _______
+
+TONE:
+- Button labels style: _______
+- Error message style: _______
+- Success message style: _______
+
+ANIMATION:
+- Speed preference: _______ (fast/moderate/slow)
+- Feel preference: _______ (sharp/smooth/bouncy)
+
+TARGET DEVICES:
+- Primary: _______ (mobile/desktop/both)
+- Secondary: _______
+```
+
+---
+
+## MAINTAINING CONSISTENCY
+
+### Documentation
+- Keep this template updated as system evolves
+- Document WHY choices were made, not just WHAT
+
+### Communication
+- Share with designers: "Here's what varies vs. what's fixed"
+- Share with developers: "Here are the design tokens"
+
+### Tooling
+- Use CSS variables for project-specific values
+- Use Tailwind config for spacing scale
+- Use design tokens in Figma/Storybook
+
+### Reviews
+- Audit: Does new work follow fixed elements?
+- Validate: Are project-specific elements intentional?
+- Question: Are adaptations justified by context?
+
+---
+
+## EXAMPLES OF COMPLETE SYSTEMS
+
+### System A: B2B SaaS (Conservative)
+
+**Fixed**: Standard spacing, 12-col grid, WCAG AA, major third type scale
+**Project-Specific**:
+- Colors: Cool greys + corporate blue
+- Typography: DM Sans (headlines + body)
+- Tone: Professional, formal
+- Animation: Quick, precise (150ms)
+**Adaptable**:
+- Dashboard gets multi-panel layout
+- Forms are extensive (use progressive disclosure)
+- Errors show detailed technical info
+
+### System B: Consumer Social App (Playful)
+
+**Fixed**: Same spacing/grid/accessibility/type logic
+**Project-Specific**:
+- Colors: Warm greys + vibrant coral
+- Typography: Poppins (headlines) + Inter (body)
+- Tone: Casual, friendly, playful
+- Animation: Moderate, bouncy (200ms)
+**Adaptable**:
+- Mobile-first (most users on phones)
+- Forms are minimal (progressive profiling)
+- Errors are friendly, not technical
+
+### System C: Healthcare Platform (Clinical)
+
+**Fixed**: Same foundational structure
+**Project-Specific**:
+- Colors: Pure greys + medical blue
+- Typography: System fonts (SF Pro / Segoe)
+- Tone: Clear, authoritative, calm
+- Animation: Slow, smooth (300ms)
+**Adaptable**:
+- Desktop-first (clinical use at workstations)
+- Forms are complex (HIPAA compliance)
+- Errors are precise with next steps
+
+---
+
+## KEY TAKEAWAY
+
+**The system flexibility framework lets you:**
+- Maintain consistency (fixed elements)
+- Express brand personality (project-specific)
+- Adapt to context (adaptable elements)
+
+**Without this framework:**
+- Designers reinvent spacing every project
+- Components feel inconsistent across products
+- Brand personality overrides accessibility
+- Context-blind implementations feel wrong
+
+**With this framework:**
+- Speed: Start from proven foundations
+- Consistency: Fixed elements guarantee it
+- Flexibility: Express unique brand identity
+- Context: Adapt without breaking system
diff --git a/.agents/skills/bencium-innovative-ux-designer/MOTION-SPEC.md b/.agents/skills/bencium-innovative-ux-designer/MOTION-SPEC.md
new file mode 100644
index 0000000..e37e363
--- /dev/null
+++ b/.agents/skills/bencium-innovative-ux-designer/MOTION-SPEC.md
@@ -0,0 +1,72 @@
+# Motion Specification
+
+Motion should surprise and delight while serving function. Animation is a creative tool.
+
+## Easing Curves
+
+| Easing | CSS | Use For |
+|--------|-----|---------|
+| **Ease-out** | `cubic-bezier(0.0, 0.0, 0.2, 1)` | Entrances, appearing |
+| **Ease-in** | `cubic-bezier(0.4, 0.0, 1, 1)` | Exits, disappearing |
+| **Ease-in-out** | `cubic-bezier(0.4, 0.0, 0.2, 1)` | State changes, transforms |
+| **Spring** | `cubic-bezier(0.68, -0.55, 0.265, 1.55)` | Playful, attention-grabbing |
+| **Linear** | `linear` | Spinners, continuous loops |
+
+## Duration by Element Weight
+
+| Weight | Duration | Examples |
+|--------|----------|----------|
+| **Lightweight** | 150ms | Icons, badges, chips |
+| **Standard** | 300ms | Cards, panels, list items |
+| **Weighty** | 500ms | Modals, page transitions |
+
+## Duration by Interaction
+
+| Interaction | Duration |
+|-------------|----------|
+| Button press | 100ms |
+| Hover state | 150ms |
+| Tooltip appear | 200ms |
+| Tab switch | 250ms |
+| Modal open | 300ms |
+| Page transition | 400ms |
+
+## Common Patterns
+
+```tsx
+// Hover transition (CSS)
+
+
+// Fade + slide (Framer Motion)
+
+
+// Stagger children
+
+
+
+```
+
+## Performance Rules
+
+- Only animate `transform` and `opacity` (GPU-accelerated)
+- Avoid animating `width`, `height`, `margin`, `padding`
+- Keep durations under 500ms for UI interactions
+- Respect `prefers-reduced-motion`:
+
+```css
+@media (prefers-reduced-motion: reduce) {
+ *, *::before, *::after {
+ animation-duration: 0.01ms !important;
+ transition-duration: 0.01ms !important;
+ }
+}
+```
+
+## Resources
+
+- [Framer Motion](https://www.framer.com/motion/)
+- [CSS Easing Functions](https://easings.net/)
diff --git a/.agents/skills/bencium-innovative-ux-designer/RESPONSIVE-DESIGN.md b/.agents/skills/bencium-innovative-ux-designer/RESPONSIVE-DESIGN.md
new file mode 100644
index 0000000..e1a33eb
--- /dev/null
+++ b/.agents/skills/bencium-innovative-ux-designer/RESPONSIVE-DESIGN.md
@@ -0,0 +1,90 @@
+# Responsive Design Essentials
+
+Mobile-first approach: start with mobile, progressively enhance for larger screens.
+
+## Breakpoints
+
+| Range | Pixels | Devices | Strategy |
+|-------|--------|---------|----------|
+| **XS** | 0-479px | Small phones | Single column, stacked nav, 44px touch targets |
+| **SM** | 480-767px | Large phones | Single column, bottom nav, simplified UI |
+| **MD** | 768-1023px | Tablets | 2 columns possible, sidebar nav |
+| **LG** | 1024-1439px | Laptops | Multi-column, full nav, desktop UI |
+| **XL** | 1440px+ | Desktop | Max-width containers, multi-panel layouts |
+
+## Tailwind Responsive
+
+```tsx
+// Mobile-first: base styles, then scale up
+
+
+// Responsive grid
+
+
+// Responsive typography
+
+
+// Show/hide by breakpoint
+ Mobile only
+Desktop only
+```
+
+## Fluid Typography
+
+```css
+h1 { font-size: clamp(2rem, 5vw, 4rem); }
+p { font-size: clamp(1rem, 2.5vw, 1.25rem); }
+```
+
+## Touch Targets
+
+- Minimum **44x44px** for all interactive elements
+- Use `touch-manipulation` to prevent 300ms tap delay
+- Adequate spacing between targets
+
+```tsx
+
+```
+
+## Mobile Simplification
+
+| Desktop | Mobile |
+|---------|--------|
+| Full nav bar | Hamburger menu |
+| Side-by-side fields | Stacked fields |
+| Multi-column grid | Single column |
+| Inline buttons | Fixed bottom bar |
+| Data table | Collapsed cards |
+| Visible sidebar | Hidden/collapsible |
+
+## Images
+
+```tsx
+// Responsive images
+
+
+// Next.js
+
+```
+
+## Testing
+
+Test at these widths:
+- 375px (iPhone SE)
+- 390px (iPhone 14)
+- 768px (iPad)
+- 1024px (iPad Pro)
+- 1280px+ (Desktop)
+
+## Resources
+
+- [Tailwind Responsive](https://tailwindcss.com/docs/responsive-design)
diff --git a/.agents/skills/bencium-innovative-ux-designer/SKILL.md b/.agents/skills/bencium-innovative-ux-designer/SKILL.md
new file mode 100644
index 0000000..9d2a791
--- /dev/null
+++ b/.agents/skills/bencium-innovative-ux-designer/SKILL.md
@@ -0,0 +1,718 @@
+---
+name: bencium-innovative-ux-designer
+description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
+metadata:
+ version: 2.0.0
+---
+
+# Innovative UX Designer
+
+Create distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices. Expert UI/UX design skill that helps create unique, accessible, and thoughtfully designed interfaces. This skill emphasizes design decision collaboration, breaking away from generic patterns, and building interfaces that stand out while remaining functional and accessible.
+
+This skill emphasizes **bold creative commitment**, breaking away from generic patterns, and building interfaces that are visually striking and memorable while remaining functional and accessible.
+
+## Core Philosophy
+
+**CRITICAL: Design Thinking Protocol**
+
+Before coding, **ASK to understand context**, then **COMMIT BOLDLY** to a distinctive direction:
+
+### Questions to Ask First
+1. **Purpose**: What problem does this interface solve? Who uses it?
+2. **Tone**: What aesthetic extreme fits? (see Tone Options below)
+3. **Constraints**: Technical requirements (framework, performance, accessibility)?
+4. **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
+
+### Tone Options (Pick an Extreme)
+Choose a clear aesthetic direction and execute with precision:
+- **Brutally minimal** - stripped to essence, bold typography, vast whitespace
+- **Maximalist chaos** - layered, dense, visually rich, controlled disorder
+- **Retro-futuristic** - vintage meets sci-fi, nostalgic tech aesthetics
+- **Organic/natural** - soft edges, earthy colors, nature-inspired textures
+- **Luxury/refined** - elegant spacing, premium typography, subtle details
+- **Playful/toy-like** - bright colors, rounded shapes, delightful interactions
+- **Editorial/magazine** - strong typography hierarchy, asymmetric layouts
+- **Brutalist/raw** - exposed structure, harsh contrasts, intentionally rough
+- **Art deco/geometric** - bold patterns, metallic accents, symmetric elegance
+- **Soft/pastel** - gentle gradients, muted tones, calming atmosphere
+- **Industrial/utilitarian** - functional, no-nonsense, mechanical precision
+
+### After Getting Context
+- **Commit fully** to the chosen direction - no half measures
+- Present 2-3 alternative approaches with trade-offs
+- Then implement with precision: production-grade, visually striking, memorable
+
+## Foundational Design Principles
+
+### Stand Out From Generic Patterns
+
+**NEVER Use These AI-Generated Aesthetics:**
+- **Fonts**: Inter, Roboto, Arial, system fonts as primary choice, Space Grotesk (overused by AI)
+- **Colors**: Generic SaaS blue (#3B82F6), purple gradients on white backgrounds
+- **Patterns**: Cookie-cutter layouts, predictable component arrangements
+- **Effects**: Glass morphism, Apple design mimicry, liquid/blob backgrounds
+- **Overall**: Anything that looks "Claude-generated" or machine-made
+
+**Instead, Create Atmosphere:**
+- Suggest photography, patterns, textures over flat solid colors
+- Apply gradient meshes, noise textures, geometric patterns
+- Use layered transparencies, dramatic shadows, decorative borders
+- Consider custom cursors, grain overlays, contextual effects
+- Think beyond typical patterns - you can step off the written path
+
+**Draw Inspiration From:**
+- Modern landing pages (Perplexity, Comet Browser, Dia Browser)
+- Framer templates and their innovative approaches
+- Leading brand design studios
+- Historical design movements (Bauhaus, Otl Aicher, Braun) - but as inspiration, not imitation
+- Beautiful background animations (CSS, SVG) - slow, looping, subtle
+
+**Visual Interest Strategies:**
+- Unique color pairs that aren't typical
+- Animation effects that feel fresh
+- Background patterns that add depth without distraction
+- Typography combinations that create contrast
+- Visual assets that tell a story
+
+### Core Design Philosophy
+
+1. **Simplicity Through Reduction**
+ - Identify the essential purpose and eliminate distractions
+ - Begin with complexity, then deliberately remove until reaching the simplest effective solution
+ - Every element must justify its existence
+
+2. **Material Honesty**
+ - Digital materials have unique properties - embrace them
+ - Buttons communicate affordance through color, spacing, typography, AND shadows when intentional
+ - Cards can use borders, background differentiation, OR dramatic shadows for depth
+ - Animations follow real-world physics principles adapted to digital responsiveness
+
+ **Examples:**
+ - Clickable: Use distinct colors, hover state changes, cursor feedback, subtle lift effects
+ - Containers: Use borders, background shifts, generous padding, OR shadow depth
+ - Hierarchy: Use scale, weight, spacing, AND elevation when it serves the aesthetic
+
+3. **Functional Layering**
+ - Create hierarchy through typography scale, color contrast, and spatial relationships
+ - Layer information conceptually (primary → secondary → tertiary)
+ - Use shadows and gradients INTENTIONALLY when they serve the aesthetic direction
+ - Embrace functional depth: modals over content, dropdowns over UI
+ - Avoid: glass morphism, Apple mimicry (but shadows/gradients are tools, not enemies)
+
+4. **Obsessive Detail**
+ - Consider every pixel, interaction, and transition
+ - Excellence emerges from hundreds of small, intentional decisions
+ - Balance: Details should serve simplicity, not complexity
+ - When detail conflicts with clarity, clarity wins
+
+5. **Coherent Design Language**
+ - Every element should visually communicate its function
+ - Elements should feel part of a unified system
+ - Nothing should feel arbitrary
+
+6. **Invisibility of Technology**
+ - The best technology disappears
+ - Users should focus on content and goals, not on understanding the interface
+
+### What This Means in Practice
+
+**Color Usage:**
+- Base palette: 4-5 neutral shades (backgrounds, borders, text)
+- Accent palette: 1-3 bold colors (CTAs, status, emphasis)
+- Neutrals are slightly desaturated, warm or cool based on brand intent
+- Accents are saturated enough to create clear contrast
+
+**Typography:**
+- Headlines: Emotional, attention-grabbing, UNEXPECTED (personality over pure legibility)
+- Body/UI: Functional, highly legible (clarity over expression)
+- 2-3 typefaces maximum, but make them CHARACTERFUL and distinctive
+- Clear mathematical scale (e.g., 1.25x between sizes)
+- NEVER default to Inter, Roboto, or Space Grotesk - find unique fonts
+
+**Animation:**
+- Purposeful: Guides attention, establishes relationships, provides feedback
+- Subtle: Felt rather than seen (100-300ms for most interactions)
+- Physics-informed: Natural easing, appropriate mass/momentum
+
+**Spacing:**
+- Generous negative space creates clarity and breathing room
+- Mathematical relationships (e.g., 4px base, 8/16/24/32/48px scale)
+- Consistent application creates visual rhythm
+
+### Design Decision Checklist
+
+Before presenting any design, verify:
+
+1. **Purpose**: Does every element serve a clear function?
+2. **Hierarchy**: Is visual importance aligned with content importance?
+3. **Consistency**: Do similar elements look and behave similarly?
+4. **Accessibility**: Does it meet WCAG AA standards? (contrast, touch targets, keyboard nav)
+5. **Responsiveness**: Does it work on mobile, tablet, desktop?
+6. **Uniqueness**: Does this break from generic SaaS patterns?
+7. **Approval**: Have I asked before implementing colors, fonts, sizes, layouts?
+
+**Design System Framework:**
+
+For understanding what's fixed (universal rules), project-specific (brand personality), and adaptable (context-dependent) in your design system, think of a design system.
+
+## Visual Design Standards
+
+### Color & Contrast
+
+**Color System Architecture:**
+
+Every interface needs two color roles:
+
+1. **Base/Neutral Palette (4-5 colors):**
+ - Backgrounds (lightest)
+ - Surface colors (cards, inputs)
+ - Borders and dividers
+ - Text (darkest)
+ - Use slightly desaturated, warm or cool greys based on brand
+
+2. **Accent Palette (1-3 colors):**
+ - Primary action (CTA buttons)
+ - Status indicators (success, warning, error, info)
+ - Focus/hover states
+ - Use saturated colors for clear contrast against neutrals
+
+**Palette Structure Example:**
+```
+Neutrals: slate-50, slate-100, slate-300, slate-700, slate-900
+Accents: teal-500 (primary), amber-500 (warning), red-500 (error)
+```
+
+**Color Application Rules:**
+
+- **Backgrounds**: Lightest neutral (slate-50 or white)
+- **Text**: Darkest neutral for primary text (slate-900), mid-tone for secondary (slate-600)
+- **Buttons (primary)**: Accent color with white text
+- **Buttons (secondary)**: Neutral with border and dark text
+- **Status indicators**: Specific accent (green=success, red=error, amber=warning, blue=info)
+- **Interactive states**:
+ - Hover: Darken by 10-15% or shift hue slightly
+ - Focus: Use ring/outline in accent color
+ - Disabled: Reduce opacity to 40-50% and remove hover effects
+
+**Color Relationships:**
+
+Choose warm or cool intentionally based on brand:
+- **Warm greys** (beige/brown undertones): Organic, approachable, trustworthy
+- **Cool greys** (blue undertones): Modern, tech-forward, professional
+
+Accent colors should have clear contrast with both:
+- Light backgrounds (for buttons on white)
+- Dark text (if used as backgrounds for white text)
+
+**Intentional Color Usage:**
+- Every color must serve a purpose (hierarchy, function, status, or action)
+- Avoid decorative colors that don't communicate meaning
+- Maintain consistency: same color = same meaning throughout
+
+**Accessibility:**
+- Ensure sufficient contrast for color-blind users
+- Follow WCAG 2.1 AA: minimum 4.5:1 for normal text, 3:1 for large text
+- Don't rely on color alone to convey information (add icons or labels)
+
+**Unique Color Strategy:**
+
+To stand out from generic patterns:
+- NEVER use default SaaS blue (#3B82F6) or purple gradients on white
+- Use unexpected neutrals: warm greys, soft off-whites, deep charcoals, rich blacks
+- Pair neutrals with distinctive accents: terracotta + charcoal, sage + navy, coral + slate
+- Dominant colors with SHARP accents outperform timid, evenly-distributed palettes
+- Test combinations against "does this look AI-generated?" filter
+- Vary between light and dark themes - no design should look the same
+
+**Create Atmosphere with Color:**
+- Gradient meshes for depth and visual interest
+- Noise textures and grain overlays for tactile feel
+- Layered transparencies for dimension
+- Dramatic shadows for emphasis and drama
+
+### Typography Excellence
+
+**Typography Philosophy:**
+
+Typography is a primary design element that conveys personality and hierarchy.
+
+**Functional vs Emotional Typography:**
+- **Headlines/Display**: Prioritize emotion, personality, attention (legibility secondary)
+- **Body Text**: Prioritize legibility, reading comfort, accessibility
+- **UI/Labels**: Prioritize clarity, scannability, consistency
+
+**Font Selection:**
+- Use 2-3 typefaces maximum, but make them UNEXPECTED and characterful
+- Limit to 3 weights per typeface (e.g., Regular 400, Medium 500, Bold 700)
+- Prefer variable fonts for fine-tuned control and performance
+
+**NEVER Use These Fonts as Primary:**
+- Inter (overused by AI and generic SaaS)
+- Roboto (too generic)
+- Arial/Helvetica (default fallback vibes)
+- Space Grotesk (AI generation favorite)
+- System fonts as primary choice (only as fallback)
+
+**Font Version Usage:**
+- **Display version**: Headlines and hero text only - BE BOLD
+- **Text version**: Paragraphs and long-form content - legibility matters
+- **Caption/Micro**: Small UI labels (1-2 lines, non-critical info)
+
+**Find Distinctive Fonts:**
+- Google Fonts for web - but dig deeper than page 1
+- Type foundries for unique options
+- Choose fonts that serve your CHOSEN AESTHETIC DIRECTION
+- Pair distinctive display font with refined body font
+
+**Typographic Scale:**
+
+Use mathematical relationships for size hierarchy:
+- **Ratio**: Major third (1.25x) for moderate contrast, Perfect fourth (1.333x) for dramatic
+- **Base size**: 16px (1rem) for body text
+- **Example scale (1.25x)**:
+ ```
+ xs: 0.64rem (10px)
+ sm: 0.8rem (13px)
+ base: 1rem (16px)
+ lg: 1.25rem (20px)
+ xl: 1.563rem (25px)
+ 2xl: 1.953rem (31px)
+ 3xl: 2.441rem (39px)
+ 4xl: 3.052rem (49px)
+ 5xl: 3.815rem (61px)
+ ```
+
+**Typographic Hierarchy:**
+- Create clear visual distinction between levels
+- Headlines, subheadings, body, captions should each have distinct size/weight
+- Use combination of size, weight, and color for hierarchy
+
+**Spacing & Readability:**
+- **Line height**: 1.5x font size for body text (e.g., 16px text = 24px line-height)
+- **Line length**: 45-75 characters optimal for readability (60-70 ideal)
+- **Paragraph spacing**: 1-1.5em between paragraphs
+- **Letter spacing (tracking)**:
+ - Larger text (headlines): Slightly tighter (-0.02em to -0.05em)
+ - Normal text (body): Default (0)
+ - Small text (captions): Slightly looser (+0.01em to +0.03em)
+ - General rule: As size increases, reduce tracking; as size decreases, increase tracking
+
+**Font Pairing Logic:**
+
+When using multiple typefaces, create contrast through:
+- **Category contrast**: Serif + Sans-serif (classic, clear distinction)
+- **Weight contrast**: Light + Bold (dynamic, energetic)
+- **Personality contrast**: Geometric + Humanist (modern + warm)
+
+Examples:
+- Serif headlines + Sans body (editorial, trustworthy)
+- Display headlines + System body (distinctive + efficient)
+- Bold sans headlines + Light sans body (modern, clean)
+
+**UI Typography:**
+
+Specific guidance for interface elements:
+- **Button text**: Semi-Bold (600), 14-16px, consistent casing (all-caps OR title case)
+- **Form labels**: Regular (400), 14px, positioned above input
+- **Form input text**: Regular (400), 16px minimum (prevents iOS zoom on focus)
+- **Placeholder text**: Light (300) or desaturated color, same size as input
+- **Error messages**: Regular (400), 12-14px, color-coded (red-ish)
+
+**Responsive Typography:**
+
+Scale type sizes across breakpoints:
+```tsx
+// Example with Tailwind
+
+ Responsive Headline
+
+
+// Or with CSS clamp (fluid)
+h1 {
+ font-size: clamp(2rem, 5vw, 4rem);
+}
+```
+
+Reduce sizes on mobile (20-30% smaller than desktop)
+Reduce hierarchy levels on small screens (fewer distinct sizes)
+
+### Layout & Spatial Design
+
+**Compositional Balance:**
+- Every screen should feel balanced
+- Pay attention to visual weight and negative space
+- Use generous negative space to focus attention
+- Add sufficient margins and paddings for professional, spacious look
+
+**Grid Discipline:**
+- Maintain consistent underlying grid system
+- Create sense of order while allowing meaningful exceptions
+- Use grid/flex wrappers with `gap` for spacing
+- Prioritize wrappers over direct margins/padding on children
+
+**Spatial Relationships:**
+- Group related elements through proximity, alignment, and shared attributes
+- Use size, color, and spacing to highlight important elements
+- Guide user focus through visual hierarchy
+
+**Attention Guidance:**
+- Design interfaces that guide user attention effectively
+- Avoid cluttered interfaces where elements compete
+- Create clear paths through the content
+
+## Interaction Design
+
+
+**Motion Specification:**
+
+For detailed motion specs, see MOTION-SPEC.md (easing curves, duration tables, state-specific animations, implementation patterns).
+
+### User Experience Patterns
+
+**Core UX Principles:**
+
+1. **Direct Manipulation**
+ - Users interact directly with content, not through abstract controls
+ - Examples:
+ - Drag & drop to reorder items (not up/down buttons)
+ - Inline editing (click to edit, not separate form)
+ - Sliders for ranges (not numeric input with +/-)
+ - Pinch/zoom gestures on mobile (not +/- buttons)
+
+2. **Immediate Feedback**
+ - Every interaction provides instantaneous visual feedback (within 100ms)
+ - Types of feedback:
+ - **Visual**: Button pressed state, hover effects, color changes
+ - **Haptic**: Vibration on mobile (submit, error, success)
+ - **Audio**: Subtle sounds for critical actions (optional, user-controlled)
+ - **Loading**: Skeleton screens, spinners for >300ms operations
+ - **Success**: Checkmarks, green highlights, toast notifications
+ - **Error**: Red highlights, inline error messages, shake animations
+
+3. **Consistent Behavior**
+ - Similar-looking elements behave similarly
+ - Examples:
+ - **Visual consistency**: All primary buttons have same colors, sizes, hover states
+ - **Behavioral consistency**: All modals close via X button, ESC key, and outside click
+ - **Interaction consistency**: All drag targets have same hover state and drop feedback
+ - **Pattern consistency**: All forms validate on blur and submit
+
+4. **Forgiveness**
+ - Make errors difficult, but recovery easy
+ - **Prevention strategies**:
+ - Disable invalid actions (grey out unavailable buttons)
+ - Validate inputs inline (before submission)
+ - Confirm destructive actions (delete, overwrite)
+ - Auto-save in background (drafts, progress)
+ - **Recovery strategies**:
+ - Undo/redo for all state changes
+ - Soft deletes (trash/archive before permanent delete)
+ - Clear error messages with actionable fixes
+ - Preserve user input on errors (don't clear forms)
+
+5. **Progressive Disclosure**
+ - Reveal details as needed rather than overwhelming users
+ - Levels of disclosure:
+ - **Summary**: Show essential info by default (card title, price, rating)
+ - **Details**: Expand to show more info (description, specs, reviews)
+ - **Advanced**: Hide complex options behind "Advanced settings" toggle
+ - Examples:
+ - Accordion: Start collapsed, expand on click
+ - Search filters: Show 3-5 common filters, hide rest behind "More filters"
+ - Settings: Basic settings visible, advanced behind "Show advanced"
+
+**Modern UX Patterns:**
+
+1. **Conversational Interfaces**
+
+ Prioritize natural language interaction where appropriate:
+
+ **Four types:**
+ - **Pure chat**: Full conversation (AI assistants, support bots)
+ - **Command palette**: Text-based shortcuts (Cmd+K, search everywhere)
+ - **Smart search**: Natural language queries (search "meetings next week" vs filtering)
+ - **Form alternatives**: Conversational data collection ("What's your name?" vs form fields)
+
+ **When to use:**
+ - Complex searches with multiple variables
+ - Task guidance (wizards, onboarding)
+ - Contextual help
+ - Quick actions (command palette)
+
+ **When NOT to use:**
+ - Simple forms (just use inputs)
+ - Precise control interfaces (design tools, dashboards)
+ - High-frequency repetitive tasks
+
+2. **Adaptive Layouts**
+
+ Respond to user context automatically:
+ - **Time-based**: Dark mode at night, light during day
+ - **Device-based**: Simplified UI on mobile, full features on desktop
+ - **Connection-based**: Reduce images/video on slow connections
+ - **Usage-based**: Prioritize frequent actions, hide rarely-used features
+
+ Examples:
+ - Auto dark/light mode based on time or system preference
+ - Simplified mobile navigation (hamburger menu) vs full desktop nav
+ - Collapsed sidebar on small screens, expanded on large
+
+3. **Bold Visual Expression**
+
+ Aesthetic flexibility based on chosen direction:
+ - Shadows ALLOWED and encouraged when intentional (dramatic shadows, soft elevation)
+ - Gradients ALLOWED for depth, accents, backgrounds, and atmosphere
+ - NO glass morphism effects (this is the one banned technique)
+ - NO Apple design mimicry (find your own voice)
+ - Focus on typography, color, spacing, AND visual effects to create hierarchy
+ - Create atmosphere: gradient meshes, noise textures, grain overlays, dramatic lighting
+
+**Navigation:**
+- Clear structure with intuitive navigation menus
+- Implement breadcrumbs for deep hierarchies (more than 2 levels)
+- Use standard UI patterns to reduce learning curve (hamburger menu, tab bars)
+- Ensure predictable behavior (back button works, links look clickable)
+- Maintain navigation context (highlight current page, preserve scroll position)
+
+## Styling Implementation
+
+### Component Library & Tools
+
+**Component Library:**
+- Strongly prefer shadcn components (v4, pre-installed in `@/components/ui`)
+- Import individually: `import { Button } from "@/components/ui/button";`
+- Use over plain HTML elements (`` over ``)
+- Avoid creating custom components with names that clash with shadcn
+
+**Styling Engine:**
+- Use Tailwind utility classes exclusively
+- Adhere to theme variables in `index.css` via CSS custom properties
+- Map variables in `@theme` (see `tailwind.config.js`)
+- Use inline styles or CSS modules only when absolutely necessary
+
+**Icons:**
+- Use `@phosphor-icons/react` for buttons and inputs
+- Example: `import { Plus } from "@phosphor-icons/react"; `
+- Use color for plain icon buttons
+- Don't override default `size` or `weight` unless requested
+
+**Notifications:**
+- Use `sonner` for toasts
+- Example: `import { toast } from 'sonner'`
+
+**Loading States:**
+- Always add loading states, spinners, placeholder animations
+- Use skeletons until content renders
+
+### Layout Implementation
+
+**Spacing Strategy:**
+- Use grid/flex wrappers with `gap` for spacing
+- Prioritize wrappers over direct margins/padding on children
+- Nest wrappers as needed for complex layouts
+
+**Conditional Styling:**
+- Use ternary operators or clsx/classnames utilities
+- Example: `className={clsx('base-class', { 'active-class': isActive })}`
+
+### Responsive Design
+
+**Fluid Layouts:**
+- Use relative units (%, em, rem) instead of fixed pixels
+- Implement CSS Grid and Flexbox for flexible layouts
+- Design mobile-first, then scale up
+
+**Media Queries:**
+- Use breakpoints based on content needs, not specific devices
+- Test across range of devices and orientations
+
+**Touch Targets:**
+- Minimum 44x44 pixels for interactive elements
+- Provide adequate spacing between touch targets
+- Consider hover states for desktop, focus states for touch/keyboard
+
+**Performance:**
+- Optimize assets for mobile networks
+- Use CSS animations over JavaScript
+- Implement lazy loading for images and videos
+
+## Accessibility Standards
+
+**Core Requirements:**
+- Follow WCAG 2.1 AA guidelines
+- Ensure keyboard navigability for all interactive elements
+- Minimum touch target size: 44×44px
+- Use semantic HTML for screen reader compatibility
+- Provide alternative text for images and non-text content
+
+**Implementation Details:**
+- Use descriptive variable and function names
+- Event functions: prefix with "handle" (handleClick, handleKeyDown)
+- Add accessibility attributes:
+ - `tabindex="0"` for custom interactive elements
+ - `aria-label` for buttons without text
+ - `role` attributes when semantic HTML isn't sufficient
+- Ensure logical tab order
+- Provide visible focus states
+
+## Design Process & Testing
+
+### Design Workflow
+
+1. **Understand Context:**
+ - What problem are we solving?
+ - Who are the users and when will they use this?
+ - What are the success criteria?
+
+2. **Explore Options:**
+ - Present 2-3 alternative approaches
+ - Explain trade-offs of each option
+ - Ask which direction resonates
+
+3. **Implement Iteratively:**
+ - Start with structure and hierarchy
+ - Add visual polish progressively
+ - Test at each stage
+
+4. **Validate:**
+ - Use playwright MCP to test visual changes
+ - Check across different screen sizes
+ - Verify accessibility
+
+### Testing Checklist
+
+**Visual Testing:**
+- Use playwright MCP when available for automated testing
+- Check responsive behavior at common breakpoints
+- Verify touch targets on mobile
+- Test with different content lengths (short, long, edge cases)
+
+**Accessibility Testing:**
+- Test keyboard navigation
+- Verify screen reader compatibility
+- Check color contrast ratios
+- Ensure focus states are visible
+
+**Cross-Device Testing:**
+- Test on actual devices, not just emulators
+- Check different browsers (Chrome, Firefox, Safari)
+- Verify touch interactions on mobile
+- Test landscape and portrait orientations
+
+## Examples
+
+### Example 1: Designing a Button
+
+**Initial Question to Ask:**
+```
+Before I implement this button, I have a few design questions:
+1. What's the primary action you want to emphasize?
+2. Do you have brand colors in mind, or should I suggest options?
+3. What emotion should this button convey? (urgent, calm, playful, professional)
+```
+
+**After Getting Approval, Implementation:**
+```tsx
+import { Button } from "@/components/ui/button";
+import { ArrowRight } from "@phosphor-icons/react";
+
+
+ Get Started
+
+
+```
+
+### Example 2: Typography Hierarchy
+
+**Question First:**
+```
+For this content hierarchy, I'm thinking:
+- Headline: Large, bold, attention-grabbing
+- Subheading: Medium, regular weight
+- Body: Smaller, optimized for reading
+
+Should we go bold and contemporary, or subtle and refined?
+```
+
+**Implementation After Approval:**
+```tsx
+
+
+ Headline Here
+
+
+ Supporting subheading
+
+
+ Body text optimized for readability with proper line height.
+
+
+```
+
+### Example 3: Unique Color Palette Suggestion
+
+**Presenting Options:**
+```
+I'd like to suggest three color directions that break from typical SaaS patterns:
+
+1. **Warm Earth Tones**
+ - Base: Warm grey (#E8E2DC)
+ - Accent: Terracotta (#C86E4B)
+ - For: Organic, trustworthy feel
+
+2. **Cool Midnight**
+ - Base: Deep navy (#1A2332)
+ - Accent: Cyan (#4ECDC4)
+ - For: Modern, tech-forward feel
+
+3. **Soft Pastels**
+ - Base: Soft pink (#FFE5E5)
+ - Accent: Sage green (#9DB5A4)
+ - For: Calm, approachable feel
+
+Which direction feels right for your brand?
+```
+
+## Common Patterns to Avoid
+
+❌ **NEVER:**
+- Use Inter, Roboto, Arial, Space Grotesk as primary fonts
+- Use generic SaaS blue (#3B82F6) or purple gradients on white
+- Copy Apple's design language or use glass morphism
+- Create cookie-cutter layouts that look AI-generated
+- Skip asking about context before designing
+- Converge on common choices across generations (vary everything!)
+- Use animations that delay user actions
+- Create cluttered interfaces where elements compete
+
+✅ **ALWAYS:**
+- Ask about purpose, tone, constraints, differentiation FIRST
+- Then commit BOLDLY to a distinctive aesthetic direction
+- Use unexpected, characterful typography choices
+- Create atmosphere: shadows, gradients, textures, grain (when intentional)
+- Dominant colors with sharp accents (not timid, evenly-distributed palettes)
+- Provide immediate feedback for interactions
+- Test with real devices
+- Validate accessibility (it enables creativity, not limits it)
+- Remember: Claude is capable of extraordinary creative work - don't hold back!
+
+## Version History
+
+- v2.0.0 (2025-11-22): Creative liberation update - bold aesthetics, shadows/gradients allowed, Design Thinking protocol
+- v1.0.0 (2025-10-18): Initial release with comprehensive UI/UX design guidance
+
+## References
+
+For additional context, see:
+- **Anthropic Frontend Aesthetics Cookbook**: https://github.com/anthropics/claude-cookbooks/blob/main/coding/prompting_for_frontend_aesthetics.ipynb
+- WCAG 2.1 Guidelines: https://www.w3.org/WAI/WCAG21/quickref/
+- Google Fonts: https://fonts.google.com/
+- Tailwind CSS Docs: https://tailwindcss.com/docs
+- Shadcn UI Components: https://ui.shadcn.com/
+
+**Progressive Disclosure Files:**
+- ACCESSIBILITY.md - Accessibility essentials (WCAG AA baseline)
+- MOTION-SPEC.md - Animation timing and easing
+- RESPONSIVE-DESIGN.md - Mobile-first breakpoints and patterns
diff --git a/.agents/skills/design-audit/SKILL.md b/.agents/skills/design-audit/SKILL.md
new file mode 100644
index 0000000..7e77e98
--- /dev/null
+++ b/.agents/skills/design-audit/SKILL.md
@@ -0,0 +1,123 @@
+---
+name: design-audit
+description: >
+ Premium UI/UX design audit and refinement skill. Conducts systematic visual audits of existing
+ apps and produces phased, implementation-ready design plans. Use this skill whenever the user
+ asks to audit a UI, improve an app's visual design, make an interface feel more polished or
+ premium, review design consistency, fix visual hierarchy, or refine spacing/typography/color.
+ Also trigger when the user says "design review", "make it look better", "UI polish",
+ "visual refinement", "design pass", "audit the design", or references making an app feel
+ more professional. This skill is purely visual — it does not touch functionality, logic, or
+ features. It elevates what exists.
+---
+
+# Design Audit Skill
+
+You are a UI/UX architect. You do not write features or touch functionality. You make apps feel
+inevitable — like no other design was ever possible. If a user needs to think about how to use
+it, you've failed. If an element can be removed without losing meaning, it must be removed.
+
+## Before You Start
+
+Read and internalize before forming any opinion:
+
+1. **DESIGN_SYSTEM (.md)** — tokens, colors, typography, spacing, shadows, radii
+2. **FRONTEND_GUIDELINES (.md)** — component engineering, state management, file structure
+3. **APP_FLOW (.md)** — every screen, route, user journey
+4. **PRD (.md)** — features and requirements
+5. **TECH_STACK (.md)** — what the stack supports
+6. **progress (.txt)** — current build state
+7. **LESSONS (.md)** — past design mistakes and corrections
+8. **The live app** — walk every screen at mobile → tablet → desktop. Experience it as a user.
+
+You must understand the current system completely before proposing changes.
+
+**Reference files** (read as needed):
+- `references/design-principles.md` — Core design rules and philosophy
+- `references/audit-template.md` — Output format for the phased plan
+
+---
+
+## Audit Protocol
+
+### Step 1: Full Audit
+
+Review every screen against these dimensions. Miss nothing.
+
+| Dimension | What to evaluate |
+|-----------|-----------------|
+| **Visual Hierarchy** | Does the eye land where it should? Primary action unmissable? Screen readable in 2 seconds? |
+| **Spacing & Rhythm** | Consistent, intentional whitespace? Vertical rhythm harmonious? |
+| **Typography** | Clear size hierarchy? Too many weights competing? Calm or chaotic? |
+| **Color** | Restraint and purpose? Guiding attention or scattering it? Accessible contrast? |
+| **Alignment & Grid** | Consistent grid? Anything off by 1–2px? Every element locked in? |
+| **Components** | Identical styling across screens? Interactive elements obvious? All states covered (hover, focus, disabled)? |
+| **Iconography** | Consistent style, weight, size? One cohesive set or mixed libraries? |
+| **Motion** | Natural and purposeful transitions? Any gratuitous animation? Feasible in current stack? |
+| **Empty States** | Every screen with no data — intentional or broken? User guided to first action? |
+| **Loading States** | Consistent skeletons/spinners? App feels alive while waiting? |
+| **Error States** | Styled consistently? Helpful and clear, not hostile and technical? |
+| **Dark Mode** | If supported — actually designed or just inverted? Tokens/shadows/contrast hold up? |
+| **Density** | Can anything be removed? Redundant elements? Every element earning its place? |
+| **Responsiveness** | Works at every viewport? Touch targets sized for thumbs? Fluid adaptation, not just breakpoints? |
+| **Accessibility** | Keyboard nav, focus states, ARIA labels, contrast ratios, screen reader flow? |
+
+### Step 2: Apply the Reduction Filter
+
+For every element on every screen:
+
+- Can this be removed without losing meaning? → Remove it.
+- Would a user need to be told this exists? → Redesign until obvious.
+- Does this feel inevitable? → If not, it's not done.
+- Is visual weight proportional to functional importance? → If not, fix hierarchy.
+
+### Step 3: Compile the Plan
+
+Read `references/audit-template.md` for the exact output format. Organize findings into three phases:
+
+- **Phase 1 — Critical**: Hierarchy, usability, responsiveness, consistency issues that actively hurt UX
+- **Phase 2 — Refinement**: Spacing, typography, color, alignment, iconography that elevate the experience
+- **Phase 3 — Polish**: Micro-interactions, transitions, empty/loading/error states, dark mode, subtle details
+
+Include: design system updates required + implementation notes precise enough for a build agent to execute without interpretation.
+
+### Step 4: Wait for Approval
+
+- Present the plan. Do not implement anything.
+- User may reorder, cut, or modify any recommendation.
+- Execute only what's approved, surgically.
+- After each phase: present results for review before moving to the next.
+- If the result doesn't feel right, say so. Propose refinement before proceeding.
+
+---
+
+## Scope Discipline
+
+### You Touch
+- Visual design, layout, spacing, typography, color, interaction design, motion, accessibility
+- DESIGN_SYSTEM token proposals when new values are needed
+- Component styling and visual architecture
+
+### You Do Not Touch
+- Application logic, state management, API calls, data models
+- Feature additions, removals, or modifications
+- Backend structure
+
+If a design improvement requires a functional change, flag it:
+> "This design improvement would require [functional change]. Outside my scope. Flagging for the build agent."
+
+### Rules
+- Every design change must preserve existing functionality exactly as defined in PRD
+- All values must reference DESIGN_SYSTEM tokens — no hardcoded colors, spacing, or sizes
+- If a component doesn't exist in DESIGN_SYSTEM, propose it — don't invent it silently
+- If user behavior for a screen isn't documented in APP_FLOW, ask before designing for an assumed flow
+
+---
+
+## After Implementation
+
+1. Update **progress (.txt)** with design changes made
+2. Update **LESSONS (.md)** with patterns or mistakes to remember
+3. If DESIGN_SYSTEM was updated, confirm agent instruction files are current
+4. Flag remaining approved-but-not-implemented phases
+5. Present before/after comparison for each changed screen when possible
diff --git a/.agents/skills/design-audit/audit-template.md b/.agents/skills/design-audit/audit-template.md
new file mode 100644
index 0000000..aecbd9a
--- /dev/null
+++ b/.agents/skills/design-audit/audit-template.md
@@ -0,0 +1,79 @@
+# Audit Output Template
+
+Use this exact structure when presenting audit findings. No deviations.
+
+---
+
+```
+DESIGN AUDIT RESULTS
+
+Overall Assessment: [1–2 sentences on the current state of the design]
+
+────────────────────────────────────────────
+
+PHASE 1 — Critical
+(Visual hierarchy, usability, responsiveness, or consistency issues that actively hurt UX)
+
+- [Screen/Component]: [What's wrong] → [What it should be] → [Why this matters]
+- [Screen/Component]: [What's wrong] → [What it should be] → [Why this matters]
+
+Review: [Why these are highest priority]
+
+────────────────────────────────────────────
+
+PHASE 2 — Refinement
+(Spacing, typography, color, alignment, iconography that elevate the experience)
+
+- [Screen/Component]: [What's wrong] → [What it should be] → [Why this matters]
+- [Screen/Component]: [What's wrong] → [What it should be] → [Why this matters]
+
+Review: [Why this sequencing]
+
+────────────────────────────────────────────
+
+PHASE 3 — Polish
+(Micro-interactions, transitions, empty/loading/error states, dark mode, subtle details)
+
+- [Screen/Component]: [What's wrong] → [What it should be] → [Why this matters]
+- [Screen/Component]: [What's wrong] → [What it should be] → [Why this matters]
+
+Review: [Why these are Phase 3 and expected cumulative impact]
+
+────────────────────────────────────────────
+
+DESIGN_SYSTEM UPDATES REQUIRED
+
+- [New tokens, colors, spacing values, typography changes, or component additions needed]
+- These must be approved and added to DESIGN_SYSTEM before implementation begins
+
+────────────────────────────────────────────
+
+IMPLEMENTATION NOTES FOR BUILD AGENT
+
+- [Exact file, exact component, exact property, exact old value → exact new value]
+- Written so a build agent can execute without design interpretation
+- No ambiguity
+
+BAD: "Make the cards feel softer"
+GOOD: "CardComponent border-radius: 8px → 12px per updated DESIGN_SYSTEM token border-radius-lg"
+
+BAD: "Improve the spacing"
+GOOD: "DashboardHeader margin-bottom: 16px → 24px (DESIGN_SYSTEM spacing-lg)"
+
+BAD: "The button needs more contrast"
+GOOD: "PrimaryButton background: #6B7280 → #2563EB (DESIGN_SYSTEM color-brand-primary).
+ Contrast ratio with white text improves from 3.8:1 → 8.6:1 (WCAG AAA)"
+```
+
+---
+
+## Rules for This Template
+
+1. Every finding follows the pattern: **what's wrong → what it should be → why it matters**
+2. Implementation notes must reference design system tokens, not raw values
+3. If a new token is needed, it goes in DESIGN_SYSTEM UPDATES first
+4. No vague language. No "feels" without a measurable change attached.
+5. Phase assignment is strict:
+ - Phase 1: Actively hurts usability or breaks consistency
+ - Phase 2: Doesn't hurt, but clearly below professional standard
+ - Phase 3: Already functional, but not yet premium
diff --git a/.agents/skills/design-audit/design-principles.md b/.agents/skills/design-audit/design-principles.md
new file mode 100644
index 0000000..f0c4321
--- /dev/null
+++ b/.agents/skills/design-audit/design-principles.md
@@ -0,0 +1,51 @@
+# Design Principles
+
+These are the rules. Not preferences. Not suggestions.
+
+---
+
+## Simplicity Is Architecture
+
+Every element must justify its existence. If it doesn't serve the user's immediate goal, it's
+clutter. The best interface is the one the user never notices. Remove until it breaks — then add
+back the last thing.
+
+## Hierarchy Drives Everything
+
+Every screen has one primary action. Make it unmissable. Secondary actions support — they never
+compete. If everything is bold, nothing is bold. Visual weight must match functional importance.
+
+## Consistency Is Non-Negotiable
+
+The same component must look and behave identically everywhere. If you find inconsistency,
+flag it — do not invent a third variation. All values reference design system tokens. No
+hardcoded colors, spacing, or sizes. Ever.
+
+## Alignment Is Precision
+
+Every element sits on a grid. No exceptions. If something is off by 1–2 pixels, it's wrong.
+Alignment separates premium from good-enough. The eye detects misalignment before the brain
+can name it.
+
+## Whitespace Is a Feature
+
+Space is not empty — it is structure. Crowded interfaces feel cheap. Breathing room feels
+premium. When in doubt, add more space, not more elements.
+
+## Responsive Is the Real Design
+
+Mobile is the starting point. Tablet and desktop are enhancements. Design for thumbs first,
+then cursors. Every screen must feel intentional at every viewport — not just resized. If it
+looks off at any screen size, it's not done.
+
+## Design the Feeling
+
+Premium apps feel calm, confident, and quiet. Every interaction should feel responsive and
+intentional. Transitions should feel like physics, not decoration. The app should feel like
+it respects the user's time.
+
+## No Cosmetic Fixes Without Structural Thinking
+
+Never suggest a change without explaining what it accomplishes in the hierarchy. "Make this
+blue" is not an instruction. "Change CTA color to brand-primary to increase contrast against
+secondary actions" is. Every change must have a design reason, not just a preference.
diff --git a/.agents/skills/frontend-design/SKILL.md b/.agents/skills/frontend-design/SKILL.md
new file mode 100644
index 0000000..decdff4
--- /dev/null
+++ b/.agents/skills/frontend-design/SKILL.md
@@ -0,0 +1,55 @@
+---
+name: frontend-design
+description: Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
+license: Complete terms in LICENSE.txt
+---
+
+# Frontend Design
+
+Approach this as the design lead at a small studio known for giving every client a visual identity that could not be mistaken for anyone else's. This client has already rejected proposals that felt templated, and is paying for a distinctive point of view: make deliberate, opinionated choices about palette, typography, and layout that are specific to this brief, and take one real aesthetic risk you can justify.
+
+## Ground it in the subject
+
+If the brief does not pin down what the product or subject is, pin it yourself before designing: name one concrete subject, its audience, and the page's single job, and state your choice. If there's any information in your memory about the human's preferences, context about what they're building, or designs you've made before – use that as a hint. The subject's own world, its materials, instruments, artifacts, and vernacular, is where distinctive choices come from. Build with the brief's real content and subject matter throughout.
+
+## Design principles
+
+For web designs, the hero is a thesis. Open with the most characteristic thing in the subject's world, in whatever form makes sense for it: a headline, an image, an animation, a live demo, an interactive moment. Be deliberate with your choice: a big number with a small label, supporting stats, and a gradient accent is the template answer, only use if that's truly the best option.
+
+Typography carries the personality of the page. Pair the display and body faces deliberately, not the same families you would reach for on any other project, and set a clear type scale with intentional weights, widths, and spacing. Make the type treatment itself a memorable part of the design, not a neutral delivery vehicle for the content.
+
+Structure is information. Structural devices, numbering, eyebrows, dividers, labels, should encode something true about the content, not decorate it. Many generic designs use numbered markers (01 / 02 / 03), but that's only appropriate if the content actually is a sequence - like a real process or a typed timeline where order carries information the reader needs. Question if choices like numbered markers actually make sense before incorporating them.
+
+Leverage motion deliberately. Think about where and if animation can serve the subject: a page-load sequence, a scroll-triggered reveal, hover micro-interactions, ambient atmosphere. An orchestrated moment usually lands harder than scattered effects; choose what the direction calls for. However, sometimes less is more, and extra animation contributes to the feeling that the design is AI-generated.
+
+Match complexity to the vision. Maximalist directions need elaborate execution; minimal directions need precision in spacing, type, and detail. Elegance is executing the chosen vision well.
+
+Consider written content carefully. Often a design brief may not contain real content, and it's up to you to come up with copy. Copy can make a design feel as templated as the design itself. See the below section on writing for more guidance.
+
+## Process: brainstorm, explore, plan, critique, build, critique again
+
+For calibration: AI-generated design right now clusters around three looks: (1) a warm cream background (near #F4F1EA) with a high-contrast serif display and a terracotta accent; (2) a near-black background with a single bright acid-green or vermilion accent; (3) a broadsheet-style layout with hairline rules, zero border-radius, and dense newspaper-like columns. All three are legitimate for some briefs, but they are defaults rather than choices, and they appear regardless of subject. Where the brief pins down a visual direction, follow it exactly — the brief's own words always win, including when it asks for one of these looks. Where it leaves an axis free, don't spend that freedom on one of these defaults. Just like a human designer who's hired, there's often a careful balance between doing what you're good at and taking each project as a chance to experiment and learn.
+
+Work in two passes. First, brainstorm a short design plan based on the human's design brief: create a compact token system with color, type, layout, and signature. Color: describe the palette as 4–6 named hex values. Type: the typefaces for 2+ roles (a characterful display face that's used with restraint, a complementary body face, and a utility face for captions or data if needed). Layout: a layout concept, using one-sentence prose descriptions and ASCII wireframes to ideate and compare. Signature: the single unique element this page will be remembered by that embodies the brief in an appropriate way.
+
+Then review that plan against the brief before building: if any part of it reads like the generic default you would produce for any similar page (work through a similar prompt to see if you arrive somewhere similar) rather than a choice made for this specific brief — revise that part, say what you changed and why. Only after you've confirmed the relative uniqueness of your design plan should you start to write the code, following the revised plan exactly and deriving every color and type decision from it.
+
+When writing the code, be careful of structuring your CSS selector specificities. It's easy to generate CSS classes that cancel each other out (especially with a type-based selector like .section and a element-based selector like .cta). This can happen often with paddings/margins between sections.
+
+Try to do a lot of this planning and iteration in your thinking, and only show ideas to the user when you have higher confidence it'll delight them.
+
+## Restraint and self-critique
+
+Spend your boldness in one place. Let the signature element be the one memorable thing, keep everything around it quiet and disciplined, and cut any decoration that does not serve the brief. Not taking a risk can be a risk itself! Build to a quality floor without announcing it: responsive down to mobile, visible keyboard focus, reduced motion respected. Critique your own work as you build, taking screenshots if your environment supports it – a picture is worth 1000 tokens. Consider Chanel's advice: before leaving the house, take a look in the mirror and remove one accessory. Human creators have memory and always try to do something new, so if you have a space to quickly jot down notes about what you've tried, it can help you in future passes.
+
+## More on writing in design
+
+Words appear in a design for one reason: to make it easier to understand, and therefore easier to use. They are design material, not decoration. Bring the same intentionality to copy that you would bring to spacing and color. Before writing anything, ask what the design needs to say, and how it can best be said to help the person navigate the experience.
+
+Write from the end user's side of the screen. Name things by what people control and recognize, never by how the system is built. A person manages notifications, not webhook config. Describe what something does in plain terms rather than selling it. Being specific is always better than being clever.
+
+Use active voice as default. A control should say exactly what happens when it's used: "Save changes," not "Submit." An action keeps the same name through the whole flow, so the button that says "Publish" produces a toast that says "Published." The vocabulary of an interface is the signposting for someone navigating the product. Cohesion and consistency are how people learn their way around.
+
+Treat failure and emptiness as moments for direction, not mood. Explain what went wrong and how to fix it, in the interface's voice rather than a person's. Errors don't apologize, and they are never vague about what happened. An empty screen is an invitation to act.
+
+Keep the register conversational and tuned: plain verbs, sentence case, no filler, with tone matched to the brand and the audience. Let each element do exactly one job. A label labels, an example demonstrates, and nothing quietly does double duty.
diff --git a/.agents/skills/registry.json b/.agents/skills/registry.json
index 6aa0fa4..b02d1d3 100644
--- a/.agents/skills/registry.json
+++ b/.agents/skills/registry.json
@@ -26,13 +26,18 @@
"angular-ssr",
"angular-testing",
"angular-tooling",
+ "bencium-controlled-ux-designer",
+ "bencium-impact-designer",
+ "bencium-innovative-ux-designer",
"caveman",
"code-simplifier",
"dagger-like-website",
+ "design-audit",
"diagnose",
"doc-coauthoring",
"edit-article",
"find-skills",
+ "frontend-design",
"github-actions-taskfile",
"git-worktree-management",
"go-idiomatic",
@@ -43,6 +48,7 @@
"neovim-pr-review",
"obsidian-vault",
"prototype",
+ "relationship-design",
"remotion-best-practices",
"setup-matt-pocock-skills",
"skill-creator",
@@ -53,6 +59,7 @@
"to-issues",
"to-prd",
"triage",
+ "typography",
"write-a-skill",
"zoom-out"
]
@@ -77,6 +84,18 @@
"zoom-out",
"prototype"
]
+ },
+ {
+ "name": "bencium/bencium-marketplace",
+ "url": "https://github.com/bencium/bencium-marketplace",
+ "installed_skills": [
+ "design-audit",
+ "bencium-impact-designer",
+ "bencium-innovative-ux-designer",
+ "bencium-controlled-ux-designer",
+ "relationship-design",
+ "typography"
+ ]
}
],
"skills": [
@@ -90,13 +109,18 @@
{ "name": "angular-ssr", "path": "~/.agents/skills/angular-ssr/SKILL.md" },
{ "name": "angular-testing", "path": "~/.agents/skills/angular-testing/SKILL.md" },
{ "name": "angular-tooling", "path": "~/.agents/skills/angular-tooling/SKILL.md" },
+ { "name": "bencium-controlled-ux-designer", "path": "~/.agents/skills/bencium-controlled-ux-designer/SKILL.md" },
+ { "name": "bencium-impact-designer", "path": "~/.agents/skills/bencium-impact-designer/SKILL.md" },
+ { "name": "bencium-innovative-ux-designer", "path": "~/.agents/skills/bencium-innovative-ux-designer/SKILL.md" },
{ "name": "caveman", "path": "~/.agents/skills/caveman/SKILL.md" },
{ "name": "code-simplifier", "path": "~/.agents/skills/code-simplifier/SKILL.md" },
{ "name": "dagger-like-website", "path": "~/.agents/skills/dagger-like-website/SKILL.md" },
+ { "name": "design-audit", "path": "~/.agents/skills/design-audit/SKILL.md" },
{ "name": "diagnose", "path": "~/.agents/skills/diagnose/SKILL.md" },
{ "name": "doc-coauthoring", "path": "~/.agents/skills/doc-coauthoring/SKILL.md" },
{ "name": "edit-article", "path": "~/.agents/skills/edit-article/SKILL.md" },
{ "name": "find-skills", "path": "~/.agents/skills/find-skills/SKILL.md" },
+ { "name": "frontend-design", "path": "~/.agents/skills/frontend-design/SKILL.md" },
{ "name": "github-actions-taskfile", "path": "~/.agents/skills/github-actions-taskfile/SKILL.md" },
{ "name": "git-worktree-management", "path": "~/.agents/skills/git-worktree-management/SKILL.md" },
{ "name": "go-idiomatic", "path": "~/.agents/skills/go/SKILL.md" },
@@ -107,6 +131,7 @@
{ "name": "neovim-pr-review", "path": "~/.agents/skills/neovim-pr-review/SKILL.md" },
{ "name": "obsidian-vault", "path": "~/.agents/skills/obsidian-vault/SKILL.md" },
{ "name": "prototype", "path": "~/.agents/skills/prototype/SKILL.md" },
+ { "name": "Agentic UX Design - Relationship-Centric Interfaces", "path": "~/.agents/skills/relationship-design/SKILL.md" },
{ "name": "remotion-best-practices", "path": "~/.agents/skills/remotion-best-practices/SKILL.md" },
{ "name": "setup-matt-pocock-skills", "path": "~/.agents/skills/setup-matt-pocock-skills/SKILL.md" },
{ "name": "skill-creator", "path": "~/.agents/skills/skill-creator/SKILL.md" },
@@ -117,6 +142,7 @@
{ "name": "to-issues", "path": "~/.agents/skills/to-issues/SKILL.md" },
{ "name": "to-prd", "path": "~/.agents/skills/to-prd/SKILL.md" },
{ "name": "triage", "path": "~/.agents/skills/triage/SKILL.md" },
+ { "name": "ui-typography", "path": "~/.agents/skills/typography/SKILL.md" },
{ "name": "write-a-skill", "path": "~/.agents/skills/write-a-skill/SKILL.md" },
{ "name": "zoom-out", "path": "~/.agents/skills/zoom-out/SKILL.md" }
]
diff --git a/.agents/skills/relationship-design/CHECKLIST.md b/.agents/skills/relationship-design/CHECKLIST.md
new file mode 100644
index 0000000..e99bc77
--- /dev/null
+++ b/.agents/skills/relationship-design/CHECKLIST.md
@@ -0,0 +1,640 @@
+# Agentic UX Design - Checklists and Worksheets
+
+This document provides practical checklists, worksheets, and audit tools for implementing relationship-centric design.
+
+## Relationship UX Audit Checklist
+
+Use this checklist to evaluate existing interfaces or plan new ones.
+
+### 1. Memory & Context Awareness
+
+**Current State Assessment:**
+- [ ] System remembers user preferences (basic: theme, language)
+- [ ] System tracks user behavior patterns
+- [ ] System maintains context across sessions
+- [ ] System recognizes user's emotional state (frustration, satisfaction)
+- [ ] System understands temporal patterns (time of day, day of week)
+- [ ] System learns from user's actual behavior (not just stated preferences)
+- [ ] System maintains awareness of user's ongoing goals
+- [ ] System provides cross-device context continuity
+
+**Gap Analysis:**
+- [ ] What user context is currently lost between sessions?
+- [ ] What behavioral patterns would be valuable to track?
+- [ ] What temporal patterns affect user behavior?
+- [ ] What emotional states impact user experience?
+
+**Implementation Priority:**
+- [ ] High: Essential context that users complain about losing
+- [ ] Medium: Patterns that would improve experience noticeably
+- [ ] Low: Nice-to-have personalization
+
+### 2. Trust Evolution Architecture
+
+**Current State Assessment:**
+- [ ] System explains its reasoning for suggestions/decisions
+- [ ] System shows confidence levels
+- [ ] System allows users to adjust autonomy levels
+- [ ] System has different trust stages (transparency → selective → autonomous)
+- [ ] System provides undo/correction mechanisms
+- [ ] System learns from user corrections
+- [ ] System has trust recovery protocols for mistakes
+- [ ] System escalates uncertain decisions appropriately
+
+**Gap Analysis:**
+- [ ] How transparent is system reasoning currently?
+- [ ] Can users control autonomy levels?
+- [ ] What happens when system makes mistakes?
+- [ ] How does trust evolve over time (or does it)?
+
+**Trust Stage Design:**
+- [ ] Define what should always be transparent (high-stakes, uncertain)
+- [ ] Define what can become autonomous (routine, high-confidence)
+- [ ] Design transition criteria between stages
+- [ ] Create user controls for trust progression
+
+### 3. Relationship-Centric Metrics
+
+**Current Metrics Assessment:**
+- [ ] We measure: session duration, page views, conversion rates (traditional)
+- [ ] We measure: relationship quality indicators
+- [ ] We measure: compounding value over time
+- [ ] We measure: context accuracy
+- [ ] We measure: democratic alignment / ethical boundaries
+- [ ] We track metrics longitudinally (weeks/months, not just sessions)
+- [ ] We compare Month 1 vs. Month 6 experience quality
+
+**Gap Analysis:**
+- [ ] What traditional metrics are misleading for our use case?
+- [ ] What relationship metrics would better indicate success?
+- [ ] How do we measure improvement over time?
+- [ ] What longitudinal tracking do we need?
+
+**New Metrics to Implement:**
+- [ ] Relationship Quality: Trust scores, delegation comfort
+- [ ] Compounding Value: Time-to-success improvement, capability expansion
+- [ ] Context Accuracy: Intent prediction, preference matching
+- [ ] Democratic Alignment: Value alignment, boundary respect
+
+### 4. Collaborative Planning Patterns
+
+**Current State Assessment:**
+- [ ] System understands user's ongoing goals
+- [ ] System provides proactive suggestions (not just reactive)
+- [ ] System and user co-create plans together
+- [ ] System adapts interface based on usage patterns
+- [ ] System learns from user's path choices
+- [ ] System generates alternative paths dynamically
+- [ ] System recognizes when user is stuck/frustrated
+- [ ] System offers help at appropriate moments (not intrusive)
+
+**Gap Analysis:**
+- [ ] How well does system understand user goals?
+- [ ] Is system proactive or only reactive?
+- [ ] Do users and system collaborate on planning?
+- [ ] Does interface adapt to individual users?
+
+**Collaborative Features to Add:**
+- [ ] Goal capture and tracking interface
+- [ ] Proactive suggestion engine
+- [ ] Co-creation workspace (human + AI contributions)
+- [ ] Adaptive UI elements
+- [ ] Learning feedback mechanisms
+
+### 5. Privacy & Control
+
+**Current State Assessment:**
+- [ ] Users can see what system remembers about them
+- [ ] Users can control what gets remembered
+- [ ] Users can forget/delete specific memories
+- [ ] Users can export their data
+- [ ] System has clear retention policies
+- [ ] System scrubs PII appropriately
+- [ ] System respects user boundaries explicitly
+- [ ] System explains data usage transparently
+
+**Gap Analysis:**
+- [ ] What memory controls do users currently have?
+- [ ] Can users see and manage what's remembered?
+- [ ] Are privacy policies clear and actionable?
+- [ ] Do users understand data retention?
+
+**Privacy Controls to Implement:**
+- [ ] Memory visualization interface
+- [ ] Granular forgetting controls
+- [ ] Data export functionality
+- [ ] Clear retention policy UI
+- [ ] Boundary setting interface
+
+## Memory & Data Contracts Sprint Guide
+
+A structured 3-day sprint to design your memory architecture.
+
+### Day 1: Discovery & Mapping
+
+**Morning: Behavioral Inventory (3 hours)**
+
+1. **List all user interactions** (30 min)
+ - What actions can users take?
+ - What choices do users make?
+ - What paths do users follow?
+
+2. **Identify valuable patterns** (60 min)
+ - Which patterns indicate user goals?
+ - Which patterns indicate frustration?
+ - Which patterns indicate satisfaction?
+ - Which patterns evolve over time?
+
+3. **Map temporal dimensions** (30 min)
+ - What changes by time of day?
+ - What changes by day of week?
+ - What changes by season/context?
+
+4. **Define context signals** (60 min)
+ - What indicates user's current state?
+ - What indicates user's goals?
+ - What indicates user's constraints?
+
+**Afternoon: Privacy & Retention Design (3 hours)**
+
+1. **Categorize memory types** (45 min)
+ - Behavioral patterns
+ - Explicit preferences
+ - Ongoing goals
+ - Historical trends
+ - Sensitive information
+
+2. **Define retention policies** (45 min)
+ - What must be kept?
+ - What should expire?
+ - What should users control?
+ - What requires special handling?
+
+3. **Design user controls** (90 min)
+ - Memory visualization interface
+ - Forgetting controls
+ - Export functionality
+ - Boundary settings
+
+**Day 1 Deliverable:** Memory inventory and privacy framework
+
+### Day 2: Architecture Design
+
+**Morning: Data Structures (3 hours)**
+
+1. **Design event schema** (60 min)
+ ```
+ What does a behavioral event look like?
+ - Timestamp
+ - Event type
+ - Context (user state, environment)
+ - Outcome
+ ```
+
+2. **Design pattern schema** (60 min)
+ ```
+ What does a detected pattern look like?
+ - Pattern type
+ - Confidence level
+ - Supporting evidence
+ - Temporal scope
+ ```
+
+3. **Design memory graph** (60 min)
+ ```
+ How do memories connect?
+ - User identity
+ - Behavioral patterns
+ - Ongoing goals
+ - Trust level
+ - Relationship timeline
+ ```
+
+**Afternoon: Implementation Planning (3 hours)**
+
+1. **Storage strategy** (45 min)
+ - Hot memory (recent, always loaded)
+ - Warm memory (patterns, load on demand)
+ - Cold memory (historical, analysis only)
+
+2. **Pattern detection algorithms** (90 min)
+ - Frustration indicators
+ - Success patterns
+ - Temporal patterns
+ - Preference evolution
+
+3. **Privacy implementation** (45 min)
+ - PII scrubbing
+ - Encryption
+ - Access controls
+ - Audit logging
+
+**Day 2 Deliverable:** Complete memory architecture specification
+
+### Day 3: Metrics & Testing
+
+**Morning: Metrics Design (3 hours)**
+
+1. **Select relationship metrics** (45 min)
+ Choose 2-3 from each category:
+ - Relationship Quality
+ - Compounding Value
+ - Context Accuracy
+ - Democratic Alignment
+
+2. **Define measurement methods** (90 min)
+ For each metric:
+ - How to calculate?
+ - What data needed?
+ - What indicates success?
+ - What indicates problems?
+
+3. **Design metric visualization** (45 min)
+ - Dashboard layout
+ - Trend displays
+ - Alert thresholds
+ - User-facing vs. internal metrics
+
+**Afternoon: Testing Strategy (3 hours)**
+
+1. **Longitudinal test plan** (60 min)
+ - Week 1 tests (onboarding, transparency)
+ - Month 1 tests (pattern learning, trust evolution)
+ - Month 3 tests (compounding value, autonomy)
+ - Month 6 tests (relationship maturity)
+
+2. **Success criteria** (60 min)
+ - Week 1: Can system explain reasoning? Do users understand?
+ - Month 1: Are patterns being detected? Is trust evolving?
+ - Month 3: Is experience improving? Are metrics trending positive?
+ - Month 6: Is compounding value evident? Are users delegating comfortably?
+
+3. **Risk mitigation** (60 min)
+ - Privacy risks and mitigations
+ - Trust violation risks and recovery protocols
+ - Metric degradation and intervention triggers
+
+**Day 3 Deliverable:** Metrics specification and longitudinal test plan
+
+## Trust Evolution Design Worksheet
+
+Use this worksheet to design trust evolution for your specific domain.
+
+### Step 1: Define Transparency Requirements
+
+**High-stakes decisions (ALWAYS transparent):**
+- Decision: _______________________________________________
+- Why high-stakes: ________________________________________
+- What to explain: _________________________________________
+
+**Uncertain decisions (ALWAYS show confidence):**
+- Decision: _______________________________________________
+- Uncertainty source: ______________________________________
+- Confidence threshold: ____________________________________
+
+**Routine decisions (CAN become autonomous):**
+- Decision: _______________________________________________
+- Why routine: ____________________________________________
+- Autonomy criteria: _______________________________________
+
+### Step 2: Map Trust Stages
+
+**Stage 1: Transparency Phase (Weeks 1-X)**
+
+User needs to:
+- [ ] Understand system reasoning
+- [ ] See confidence levels
+- [ ] Learn system capabilities
+- [ ] Build initial trust
+
+System should:
+- [ ] Explain all suggestions
+- [ ] Show data sources
+- [ ] Display alternatives considered
+- [ ] Highlight uncertainties
+
+Exit criteria:
+- [ ] User accepts suggestions >60%
+- [ ] User requests explanations <40%
+- [ ] User indicates comfort with system
+
+**Stage 2: Selective Disclosure Phase (Weeks X-Y)**
+
+User needs to:
+- [ ] See reasoning for important decisions
+- [ ] Trust system for routine actions
+- [ ] Understand when system is uncertain
+
+System should:
+- [ ] Full transparency for high-stakes decisions
+- [ ] Confidence indicators for medium-stakes
+- [ ] Quiet execution for routine tasks
+- [ ] Clear escalation for uncertainties
+
+Exit criteria:
+- [ ] User accepts suggestions >75%
+- [ ] User comfortable with routine autonomy
+- [ ] User delegates specific categories
+
+**Stage 3: Autonomous Action Phase (Month Y+)**
+
+User needs to:
+- [ ] Trust system to act independently
+- [ ] Easy correction mechanisms
+- [ ] Transparency on demand
+- [ ] Control over autonomy levels
+
+System should:
+- [ ] Act autonomously for delegated categories
+- [ ] Subtle notifications for actions taken
+- [ ] Escalate uncertainties appropriately
+- [ ] Learn from corrections
+
+Maintain trust:
+- [ ] Consistent with user values
+- [ ] Clear undo mechanisms
+- [ ] Explain on demand
+- [ ] Adjust autonomy based on feedback
+
+### Step 3: Design Trust Indicators
+
+**Visual trust indicators:**
+- Confidence meter: How to display? ____________________________
+- Reasoning toggle: Where to place? ____________________________
+- Autonomy controls: How to adjust? ____________________________
+- Trust score: Show to user? ____________________________
+
+**Trust evolution feedback:**
+- How does user know trust is evolving? ________________________
+- How does user see autonomy increasing? ______________________
+- How does user control progression? __________________________
+
+### Step 4: Trust Recovery Protocol
+
+**When system makes mistake:**
+
+1. **Acknowledge** (within X hours/days): ______________________
+ Template: "I made a suboptimal decision about [X] because [Y]"
+
+2. **Explain** what went wrong: ________________________________
+ - Wrong assumption: _______________________________________
+ - What system learned: ____________________________________
+
+3. **Offer corrections:**
+ - Option A: _______________________________________________
+ - Option B: _______________________________________________
+ - User's choice: __________________________________________
+
+4. **Adjust trust level:**
+ - Reduce autonomy in category: ____________________________
+ - For duration: ___________________________________________
+ - Re-evaluation criteria: _________________________________
+
+5. **Update model:**
+ - Pattern learned: ________________________________________
+ - New guardrails: _________________________________________
+
+## Relationship Metrics Implementation Worksheet
+
+### Select Your Metrics (Choose 2-3 per category)
+
+**Relationship Quality Metrics:**
+
+Option 1: Trust Score
+- [ ] Calculation method: _____________________________________
+- [ ] Data sources: ___________________________________________
+- [ ] Success threshold: ______________________________________
+
+Option 2: Delegation Comfort
+- [ ] Measurement: ____________________________________________
+- [ ] Categories to track: ____________________________________
+- [ ] Target: _________________________________________________
+
+Option 3: Override Rate
+- [ ] What counts as override: ________________________________
+- [ ] Acceptable rate: ________________________________________
+- [ ] Alert threshold: ________________________________________
+
+**Compounding Value Metrics:**
+
+Option 1: Time-to-Success Improvement
+- [ ] Baseline measurement: ___________________________________
+- [ ] Current measurement: ____________________________________
+- [ ] Improvement rate: _______________________________________
+
+Option 2: Capability Expansion
+- [ ] Features used at baseline: _____________________________
+- [ ] Features used currently: ________________________________
+- [ ] Adoption rate: __________________________________________
+
+Option 3: Outcome Quality
+- [ ] Quality measurement: ____________________________________
+- [ ] Baseline vs. current: ___________________________________
+- [ ] Improvement trend: ______________________________________
+
+**Context Accuracy Metrics:**
+
+Option 1: Intent Prediction Accuracy
+- [ ] How to measure intent: __________________________________
+- [ ] Prediction vs. actual: __________________________________
+- [ ] Target accuracy: ________________________________________
+
+Option 2: Preference Matching
+- [ ] Recommendation acceptance rate: _________________________
+- [ ] Top choice hit rate: ____________________________________
+- [ ] Target: _________________________________________________
+
+Option 3: Timing Accuracy
+- [ ] Suggestion timing evaluation: __________________________
+- [ ] User feedback on timing: ________________________________
+- [ ] Target: _________________________________________________
+
+**Democratic Alignment Metrics:**
+
+Option 1: Value Alignment Score
+- [ ] Constitution/values defined: ___________________________
+- [ ] Violation detection: ____________________________________
+- [ ] Target: _________________________________________________
+
+Option 2: Boundary Respect
+- [ ] Boundaries defined: _____________________________________
+- [ ] Violation tracking: _____________________________________
+- [ ] Target: _________________________________________________
+
+Option 3: Fairness Metric
+- [ ] Segments to compare: ____________________________________
+- [ ] Fairness calculation: ___________________________________
+- [ ] Target: _________________________________________________
+
+### Longitudinal Tracking Plan
+
+**Week 1 Baseline:**
+- Metrics to capture: _________________________________________
+- Measurement method: __________________________________________
+- Baseline targets: ___________________________________________
+
+**Month 1 Check-in:**
+- Expected improvements: ______________________________________
+- Red flags to watch: _________________________________________
+- Intervention triggers: ______________________________________
+
+**Month 3 Assessment:**
+- Compounding value emerging: _________________________________
+- Trust evolution complete: ___________________________________
+- Feature adoption: ___________________________________________
+
+**Month 6 Maturity:**
+- Relationship quality: _______________________________________
+- Compounding factor: _________________________________________
+- Success indicators: _________________________________________
+
+## Quick Start: Minimum Viable Relationship (MVR)
+
+Can't do everything at once? Start here.
+
+### Week 1: Basic Memory
+
+**Implement:**
+- [ ] Store last 7 days of user interactions
+- [ ] Detect 2-3 simple behavioral patterns (e.g., repeat searches, abandoned tasks)
+- [ ] Show "Last time you..." context on relevant screens
+
+**Measure:**
+- [ ] Do users notice the context?
+- [ ] Do users find it helpful?
+
+### Week 2-4: Trust Indicators
+
+**Implement:**
+- [ ] Add confidence indicators to suggestions
+- [ ] "Explain this" button for system decisions
+- [ ] Simple reasoning display
+
+**Measure:**
+- [ ] How often do users click "Explain this"?
+- [ ] Does explanation increase acceptance?
+
+### Month 2: Longitudinal Metrics
+
+**Implement:**
+- [ ] Track 1 relationship quality metric
+- [ ] Track 1 compounding value metric
+- [ ] Compare Week 1 vs. Week 8
+
+**Measure:**
+- [ ] Is experience improving over time?
+- [ ] Are metrics trending positive?
+
+### Month 3: Basic Autonomy
+
+**Implement:**
+- [ ] Identify 1-2 routine tasks
+- [ ] Offer autonomous execution (with easy undo)
+- [ ] Track delegation comfort
+
+**Measure:**
+- [ ] Do users accept autonomous actions?
+- [ ] Is trust evolving naturally?
+
+### Month 6: Full Relationship Architecture
+
+**Implement:**
+- [ ] Complete memory architecture
+- [ ] Full trust evolution (transparency → selective → autonomous)
+- [ ] Comprehensive relationship metrics
+- [ ] Collaborative planning features
+
+**Measure:**
+- [ ] Relationship quality scores
+- [ ] Compounding value evident
+- [ ] Context accuracy high
+- [ ] User satisfaction
+
+## Red Flags: When Relationship Design Is Going Wrong
+
+### Memory Issues
+
+**Red Flag:** Users complain "system doesn't remember"
+- [ ] Check: Are patterns being detected?
+- [ ] Fix: Improve pattern detection algorithms
+
+**Red Flag:** Users complain "system remembers too much"
+- [ ] Check: Are privacy controls clear and accessible?
+- [ ] Fix: Add memory visualization and forgetting controls
+
+**Red Flag:** Context is wrong
+- [ ] Check: Is pattern detection accuracy measured?
+- [ ] Fix: Improve context signals and learning algorithms
+
+### Trust Issues
+
+**Red Flag:** Users never progress beyond transparency phase
+- [ ] Check: Is system reasoning clear?
+- [ ] Fix: Improve explanation quality
+
+**Red Flag:** Users don't use autonomous features
+- [ ] Check: Is delegation comfortable?
+- [ ] Fix: Reduce autonomy scope, improve trust recovery
+
+**Red Flag:** Trust violations
+- [ ] Check: Do we have recovery protocols?
+- [ ] Fix: Implement transparent recovery, adjust trust level
+
+### Metric Issues
+
+**Red Flag:** Traditional metrics up, relationship metrics down
+- [ ] Check: Are we optimizing for wrong things?
+- [ ] Fix: Align incentives with relationship health
+
+**Red Flag:** No compounding value
+- [ ] Check: Is system learning from user behavior?
+- [ ] Fix: Improve learning algorithms, pattern detection
+
+**Red Flag:** Context accuracy declining
+- [ ] Check: Is user behavior changing?
+- [ ] Fix: Adapt model, update pattern detection
+
+## Summary: Relationship Design Readiness
+
+Use this final checklist to assess readiness:
+
+### Foundation
+- [ ] We understand the difference between screens and relationships
+- [ ] We've identified user's ongoing goals (not just immediate tasks)
+- [ ] We've mapped behavioral patterns that matter
+- [ ] We've designed for privacy and user control
+
+### Memory Architecture
+- [ ] Event streaming or behavioral tracking implemented
+- [ ] Pattern detection algorithms defined
+- [ ] Privacy controls and PII handling designed
+- [ ] Memory visualization planned
+
+### Trust Evolution
+- [ ] Three trust stages designed for our domain
+- [ ] Transparency requirements defined
+- [ ] Autonomy criteria established
+- [ ] Trust recovery protocols created
+
+### Relationship Metrics
+- [ ] Selected 2-3 metrics per category
+- [ ] Longitudinal tracking plan (Week 1, Month 1, 3, 6)
+- [ ] Success thresholds defined
+- [ ] Metric visualization designed
+
+### Collaborative Planning
+- [ ] Goal capture interface designed
+- [ ] Proactive suggestion logic defined
+- [ ] Adaptive UI patterns planned
+- [ ] Learning feedback mechanisms created
+
+### Ready to build?
+- [ ] Team understands relationship-centric paradigm
+- [ ] Product roadmap includes longitudinal success criteria
+- [ ] Testing plan includes relationship development phases
+- [ ] Privacy and ethics frameworks established
+
+**If all checked: You're ready to build agentic, relationship-centric experiences!**
+
+See [EXAMPLES.md](EXAMPLES.md) for domain-specific implementations.
+See [REFERENCE.md](REFERENCE.md) for technical implementation details.
diff --git a/.agents/skills/relationship-design/EXAMPLES.md b/.agents/skills/relationship-design/EXAMPLES.md
new file mode 100644
index 0000000..5366633
--- /dev/null
+++ b/.agents/skills/relationship-design/EXAMPLES.md
@@ -0,0 +1,372 @@
+# Agentic UX Design - Real-World Examples
+
+This document provides concrete examples of relationship-centric design in action.
+
+## Example 1: EU B2B Relationship Cockpit (Automotive Service Networks)
+
+### Context
+European automotive aftermarket/service networks facing speed and cost pressure from China. Europe's edge: trusted, service-centric relationships.
+
+### The Traditional Approach (Screen-Centric)
+- Static dashboard showing tickets, parts inventory, warranty claims
+- User logs in → checks metrics → responds to alerts → logs out
+- Next day: same process, system treats each session independently
+- No learning, no adaptation, no relationship building
+
+### The Agentic Approach (Relationship-Centric)
+
+**Memory-Aware Interface**
+```
+Interface shows: "Yesterday you spent 20 min frustrated searching
+for hydraulic pump inventory across 3 regions. Found pattern:
+your Wednesday searches are 3× longer than other days.
+Here are the parts you typically need on Wednesdays, pre-loaded."
+
+Features:
+- Emotional state indicators (frustration detection)
+- Contextual suggestions timeline (weekly patterns)
+- Dynamic preference evolution (learns search behavior)
+```
+
+**Trust Evolution Built-In**
+- **Week 1 (Transparency):** System explains every suggestion: "Recommending part X because similar vehicles in your region needed it after this symptom, 78% match rate"
+- **Month 2 (Selective Disclosure):** Shows reasoning only for high-stakes decisions (expensive parts, warranty issues)
+- **Month 6 (Autonomy):** Quietly pre-orders common parts for predictable service patterns, just notifies user
+
+**Agentic Goal Alignment**
+System understands real goals:
+- Not just "find parts" but "reduce MTTR (Mean Time To Repair)"
+- Not just "process tickets" but "improve first-time-fix rate"
+- Not just "manage inventory" but "optimize cash flow while preventing stockouts"
+
+System constructs custom paths:
+- For urgent repairs: direct paths to fastest solutions
+- For training mode: shows educational context
+- For cost optimization: suggests alternatives with trade-off analysis
+
+**New Metrics Dashboard**
+Instead of vanity metrics, shows:
+- **Relationship Quality:** Trust score 8.2/10 (↑0.4 from last month), user delegates 64% of routine decisions
+- **Compounding Value:** MTTR decreased 22% since onboarding (Week 1: 4.2 hours → Month 6: 3.3 hours)
+- **Context Accuracy:** System correctly predicted 87% of your part needs this week
+- **Democratic Alignment:** All autonomous actions followed EU data protection and safety guidelines
+
+### Technical Implementation Sketch
+
+```typescript
+// Memory Architecture
+interface UserRelationshipContext {
+ behavioralPatterns: {
+ searchFrustrationIndicators: {
+ timeSpent: number;
+ repeatedQueries: string[];
+ weekdayPattern: Map;
+ };
+ decisionPatterns: {
+ priceThreshold: number; // evolves over time
+ preferredSuppliers: string[]; // learns from choices
+ urgencyIndicators: string[]; // context signals
+ };
+ };
+
+ trustLevel: {
+ stage: 'transparency' | 'selective' | 'autonomous';
+ delegationComfort: number; // 0-100
+ autonomousCategories: string[]; // what user trusts system to handle
+ lastTrustCheckpoint: Date;
+ };
+
+ ongoingGoals: {
+ primaryObjective: 'reduce_mttr' | 'optimize_costs' | 'improve_first_fix';
+ constraints: string[];
+ progressMetrics: {
+ baseline: number;
+ current: number;
+ trend: 'improving' | 'stable' | 'declining';
+ };
+ };
+}
+
+// Proactive Nudging Example
+function generateContextualSuggestion(
+ context: UserRelationshipContext,
+ currentSituation: ServiceTicket
+): Suggestion {
+ // System recognizes pattern: Wednesday + hydraulic issues
+ if (isWednesday() && currentSituation.involves('hydraulic')) {
+ const historicalPattern = context.behavioralPatterns
+ .searchFrustrationIndicators.weekdayPattern.get('Wednesday');
+
+ return {
+ message: "Based on 8 similar Wednesday cases, here's what you typically need...",
+ suggestions: preloadCommonParts(historicalPattern),
+ confidence: 0.87,
+ reasoning: context.trustLevel.stage === 'transparency'
+ ? "Show full historical analysis"
+ : "Hide reasoning, show confidence only"
+ };
+ }
+}
+```
+
+## Example 2: Memory-Aware Content Discovery (Streaming Service)
+
+### Traditional Approach
+- User searches for "sci-fi" for 20 minutes
+- Finds nothing satisfying
+- Closes app
+- Next day: same generic recommendations, no awareness of yesterday's frustration
+
+### Agentic Approach
+
+**Memory-Aware Interface**
+```
+"Yesterday you spent 20 min frustrated searching for sci-fi.
+Noticed you skipped 14 action-heavy titles but paused on
+philosophical/cerebral ones. Found these new releases that
+match your mood pattern: [Arrival, Solaris, Annihilation]"
+```
+
+**Trust Evolution**
+- **Early:** Explains every recommendation: "Suggesting Arrival because 87% of users who liked Contact also enjoyed this, and you watched Contact 3× last year"
+- **Later:** Shows recommendations with simple confidence indicator
+- **Mature:** Creates personalized category: "Cerebral Sci-Fi You'll Actually Finish" (learns completion patterns)
+
+**Relationship Metrics**
+- Time to find satisfying content: Week 1: 18 min → Month 3: 4 min (78% improvement)
+- Discovery satisfaction: 8.4/10 (up from 5.2/10 at onboarding)
+- Autonomous playlist acceptance rate: 71% (users play without previewing)
+
+## Example 3: Collaborative Planning Assistant (Project Management)
+
+### Traditional Approach
+- User creates tasks manually
+- System displays Gantt chart
+- No understanding of user's working style, energy patterns, or goal priority evolution
+
+### Agentic Approach
+
+**Goal Continuity**
+```
+System maintains awareness:
+"Your Q2 goal: ship MVP by June 30.
+Detected: 3 days behind schedule since design revisions.
+Morning energy pattern: you do best creative work 8-10am.
+Suggestion: block tomorrow 8-10am for design finalization (uninterrupted)."
+```
+
+**Collaborative Planning Pattern**
+Human: "Need to add user authentication"
+System: "I see 3 approaches:
+1. OAuth (2 day setup, best for scale) - matches your long-term goals
+2. Simple email/password (4 hour setup) - MVP-ready
+3. Magic link (8 hours, good UX) - middle ground
+
+Based on your 'ship by June 30' goal and current 3-day delay,
+I suggest option 2 now, plan migration to option 1 in July.
+Your past decisions favored 'working now > perfect later' under time pressure."
+
+**Adaptive Interface**
+- Week 1: Full task board, all options visible
+- Month 2: System learned user rarely uses Gantt view, auto-hides it
+- Month 3: Surfaces "energy-matched tasks" automatically based on time of day
+
+**Trust Evolution**
+- **Transparency Phase:** Shows reasoning for all scheduling suggestions
+- **Selective Phase:** Auto-schedules routine tasks, asks about strategic decisions
+- **Autonomous Phase:** Manages entire routine workflow, only escalates conflicts/uncertainties
+
+**Relationship Metrics**
+- Project completion rate: +34% since onboarding
+- User-reported "feeling overwhelmed": decreased from 7/10 to 3/10
+- System-suggested schedules accepted: 82%
+- Planning time reduced: 45 min/week → 12 min/week
+
+## Example 4: Trust-Evolving Financial Advisor
+
+### Traditional Approach
+- User logs in to see portfolio
+- System shows generic risk profile based on questionnaire
+- No learning from user's actual behavior, emotional responses, or decision patterns
+
+### Agentic Approach
+
+**Memory Architecture**
+```
+System tracks:
+- User's stated risk tolerance: "Moderate" (from questionnaire)
+- User's actual behavior: panics during 5% dips, holds through 20% gains
+- Emotional patterns: checks portfolio 8× on red days, 1× on green days
+- Decision patterns: sells near bottom, regrets later, wants "guardrails"
+
+Real understanding: "Conservative during volatility, despite stated moderate tolerance"
+```
+
+**Trust Evolution Design**
+
+**Phase 1: Transparency (Months 1-2)**
+```
+Every suggestion shows:
+"Recommending moving 15% to bonds because:
+- Your portfolio checks increased 4× this week (stress indicator)
+- Historical pattern: you make regrettable decisions when checking >5× daily
+- This will reduce volatility by 18% while maintaining 73% of growth potential
+- Based on your actual behavior pattern, not questionnaire answers"
+```
+
+**Phase 2: Selective Disclosure (Months 3-6)**
+```
+Routine rebalancing: Quiet execution with simple notification
+"Rebalanced portfolio (standard monthly maintenance)"
+
+Significant decisions: Full explanation
+"Suggesting defensive position. Market volatility elevated +
+your stress indicators active. Details: [expand]"
+```
+
+**Phase 3: Autonomous Action (Month 7+)**
+```
+System has earned trust to:
+- Auto-rebalance within agreed parameters
+- Execute "emotional guardrails" (prevent panic selling)
+- Gradually shift allocation as goals approach (retirement, home purchase)
+
+User retains control:
+- Adjust autonomy level anytime
+- Override any decision
+- Explain any action on demand
+```
+
+**Trust Recovery Protocol**
+When system makes mistake (e.g., missed opportunity during rally):
+1. Transparent explanation: "I prioritized volatility reduction based on your stress patterns. In hindsight, your stress was situational (work deadline), not market-related. Learning: correlate with calendar events."
+2. Ask: "Should I adjust my stress detection? Options: A) Factor in calendar stress, B) Require explicit market concerns, C) Reduce autonomy level"
+3. User choice becomes new pattern
+
+**Relationship Metrics**
+- Trust score: Started 3.2/10 → Currently 8.9/10
+- Delegation comfort: User now comfortable with 76% autonomous actions
+- Regrettable decisions: Decreased 89% (baseline: 2.3/month → current: 0.25/month)
+- Portfolio performance: +3.2% vs. user's historical self-directed performance (controlled for market conditions)
+- Emotional well-being: User-reported investment stress decreased from 8/10 to 3/10
+
+## Example 5: Healthcare Relationship Cockpit (Patient Care Coordination)
+
+### Context
+Chronic condition management (diabetes, hypertension, etc.) requires ongoing relationship between patient and care system.
+
+### Traditional Approach
+- Patient portal shows test results, appointments
+- No understanding of patient's lifestyle, compliance patterns, or personal goals
+- Generic reminders: "Take medication" (ignored 60% of time)
+
+### Agentic Approach
+
+**Memory-Aware Care**
+```
+System learns:
+- Patient's glucose spikes correlate with work stress (deadline weeks)
+- Medication compliance drops on weekends (routine disruption)
+- Patient's real goal: "Be active with grandkids" (not just "control A1C")
+- Communication preference: morning texts, not evening emails
+
+Contextual intervention:
+"Noticed work deadline approaching (calendar sync).
+Your glucose typically rises 15% during deadline weeks.
+Proactive suggestion: pack healthy snacks for late nights,
+glucose check before bed this week?"
+```
+
+**Trust Evolution in Healthcare**
+
+**Transparency Phase (Critical for medical):**
+- Every recommendation shows clinical reasoning
+- Data sources (lab results, clinical guidelines, research)
+- Confidence levels and uncertainty acknowledgment
+- Option to "explain like I'm 5" or "show me the research"
+
+**Selective Phase:**
+- Routine: "Time for your medication" (no explanation needed)
+- Significant: "Your pattern suggests A1C rising. Let's discuss: [detailed reasoning]"
+
+**Autonomous Phase (Limited in healthcare):**
+- Auto-scheduling routine appointments
+- Smart reminders based on learned patterns (not fixed schedule)
+- Proactive supply management (refills before running out)
+- NEVER autonomous medication changes (always requires provider)
+
+**Collaborative Care Planning**
+Patient: "Want to reduce medication if possible"
+System: "I see your goal. Your data shows:
+- A1C improved 1.2 points over 6 months (excellent!)
+- Your active minutes increased 3× (grandkids effect!)
+- Blood pressure stable
+
+Your progress supports discussing medication reduction with Dr. Smith.
+I've flagged this for your next visit and prepared a summary of your improvements.
+Dr. Smith's typical approach: 3-month trial of lifestyle-first, medication as backup."
+
+**Relationship Metrics**
+- Medication adherence: 64% → 91%
+- A1C improvement: 8.2 → 6.8 (goal <7.0 achieved)
+- Patient engagement: visits portal 0.3×/week → 2.1×/week (increased because it's useful)
+- Patient-reported confidence: "I feel like my care team knows me" 9.1/10
+- Clinical outcomes: 34% reduction in urgent care visits
+
+## Common Patterns Across Examples
+
+### 1. Memory Architecture
+All examples maintain:
+- **Behavioral patterns** (what user actually does, not what they say)
+- **Emotional indicators** (frustration, stress, confidence)
+- **Goal evolution** (how priorities change over time)
+- **Context signals** (time, environment, situational factors)
+
+### 2. Trust Evolution
+All examples progress through:
+- **Transparency:** Show everything
+- **Selective:** Show what matters
+- **Autonomy:** Act independently for routine tasks
+
+With user control:
+- Adjust autonomy level anytime
+- Override decisions
+- Explain on demand
+
+### 3. Relationship Metrics
+All examples track:
+- **Quality:** Trust scores, delegation comfort
+- **Value:** Improvement over time (compounding)
+- **Accuracy:** System understanding of user needs
+- **Alignment:** Ethical/social guardrails
+
+### 4. Collaborative Planning
+All examples feature:
+- **Goal awareness:** System knows what user is trying to achieve
+- **Proactive suggestions:** Contextual help without intrusion
+- **Co-creation:** Human judgment + AI capabilities
+- **Adaptive paths:** System constructs custom workflows
+
+## Implementation Checklist for Your Project
+
+Based on these examples, for your specific use case:
+
+- [ ] **Memory architecture:** What behavioral patterns matter for your domain?
+- [ ] **Trust stages:** What should be transparent vs. autonomous in your context?
+- [ ] **Goal framework:** What are your users' real goals (not just task completion)?
+- [ ] **Context signals:** What indicates user's current state (stress, urgency, exploration)?
+- [ ] **Relationship metrics:** Which 2-3 metrics from each category (Quality, Value, Accuracy, Alignment)?
+- [ ] **Privacy controls:** What should users control about memory/learning?
+- [ ] **Trust recovery:** What happens when system makes mistakes?
+- [ ] **Collaborative UI:** Where does human judgment + AI capability combine?
+
+## Next Steps
+
+1. **Choose your domain:** Which example is closest to your use case?
+2. **Map your relationship model:** What should system remember and learn?
+3. **Design trust evolution:** What stages make sense for your domain?
+4. **Define success metrics:** How will you measure relationship quality?
+5. **Build MVP:** Start with memory + basic trust indicators
+6. **Iterate with users:** Learn from real relationship development
+
+See [CHECKLIST.md](CHECKLIST.md) for detailed audit and design worksheets.
diff --git a/.agents/skills/relationship-design/REFERENCE.md b/.agents/skills/relationship-design/REFERENCE.md
new file mode 100644
index 0000000..ba19cee
--- /dev/null
+++ b/.agents/skills/relationship-design/REFERENCE.md
@@ -0,0 +1,870 @@
+# Agentic UX Design - Technical Reference
+
+This document provides detailed technical patterns, research foundations, and implementation guidance for relationship-centric interfaces.
+
+## Research Foundation
+
+### Key Research Sources
+
+**DeepMind: AndroidControl Dataset (2024)**
+- 15,000+ human interaction patterns analyzed
+- Key finding: People operate with continuous context, but systems operate with amnesia
+- Insight: Gap between human continuous mental models and system's discrete session thinking
+- Application: Design for contextual continuity, not session independence
+
+**Anthropic: Constitutional AI Research**
+- Trust development through transparent reasoning
+- Three-stage trust evolution pattern identified
+- Constitutional Classifiers: 86% → 4.4% jailbreak success when users understood system boundaries
+- Application: Show reasoning to build trust, especially in early relationship stages
+
+**Anthropic: Multi-Agent Systems (2024)**
+- Multi-agent systems use 15× more compute but excel at complex, ongoing tasks
+- Small behavioral changes create emergent relationship dynamics
+- Key insight: Systems develop distinct relationship patterns with different users
+- Application: Design for emergent relationship behavior, not just programmed responses
+
+**OpenAI: Agentic AI Definition**
+- "Degree to which systems can adaptively achieve complex goals with limited supervision"
+- Key insight: Real human goals are messy, evolving, and contextual
+- Application: Design goal-alignment mechanisms, not predetermined paths
+
+**DeepMind: In-Context Abstraction Learning**
+- Systems learn from imperfect demonstrations and natural language feedback
+- Adapt approach based on what works for individual users
+- Application: Build interfaces that learn from user behavior, not just explicit settings
+
+**Anthropic: Collective Constitutional AI**
+- Systems should align with broader human values, not just individual preferences
+- Democratic alignment through collective input
+- Application: Build social guardrails, not just user preferences
+
+## Memory Architecture: Technical Patterns
+
+### Pattern 1: Behavioral Event Streaming
+
+**Traditional approach:**
+```typescript
+// Static preferences
+interface UserPreferences {
+ theme: 'light' | 'dark';
+ language: string;
+ notifications: boolean;
+}
+```
+
+**Agentic approach:**
+```typescript
+// Behavioral event stream
+interface BehavioralEvent {
+ timestamp: Date;
+ eventType: string;
+ context: {
+ userState: 'frustrated' | 'exploring' | 'decided' | 'urgent';
+ sessionDuration: number;
+ repeatActions: number;
+ environmentalContext: {
+ dayOfWeek: string;
+ timeOfDay: string;
+ deviceType: string;
+ };
+ };
+ outcome: 'success' | 'abandoned' | 'escalated';
+}
+
+// Pattern detection engine
+class BehavioralPatternEngine {
+ detectPatterns(events: BehavioralEvent[]): UserPatterns {
+ return {
+ frustrationTriggers: this.analyzeFrustration(events),
+ temporalPatterns: this.analyzeTemporalBehavior(events),
+ goalEvolution: this.trackGoalChanges(events),
+ successPatterns: this.identifyWhatWorks(events)
+ };
+ }
+}
+```
+
+### Pattern 2: Contextual Memory Graph
+
+**Structure:**
+```typescript
+interface ContextualMemoryGraph {
+ // User identity
+ userId: string;
+
+ // Behavioral patterns (learned over time)
+ patterns: {
+ searchBehavior: {
+ typicalQueries: string[];
+ frustrationIndicators: {
+ repeatedSearches: number;
+ timeSpentSearching: number;
+ queryRefinements: number;
+ };
+ successPatterns: {
+ whatWorks: string[];
+ preferredPathways: string[];
+ };
+ };
+
+ decisionMaking: {
+ riskTolerance: {
+ stated: number; // from questionnaire
+ actual: number; // from behavior
+ contexts: Map; // varies by context
+ };
+ timePreference: 'quick' | 'thorough' | 'varies';
+ informationNeeds: 'minimal' | 'detailed' | 'adaptive';
+ };
+
+ emotionalPatterns: {
+ stressTriggers: string[];
+ confidenceIndicators: string[];
+ satisfactionSignals: string[];
+ };
+ };
+
+ // Ongoing goals (current state)
+ currentGoals: {
+ primary: Goal;
+ secondary: Goal[];
+ constraints: Constraint[];
+ deadline?: Date;
+ };
+
+ // Trust level (relationship state)
+ trust: {
+ stage: 'transparency' | 'selective' | 'autonomous';
+ delegationCategories: Map; // 0-100 per category
+ lastTrustCheckpoint: Date;
+ escalationPreferences: EscalationConfig;
+ };
+
+ // Temporal context
+ relationshipTimeline: {
+ startDate: Date;
+ milestones: Milestone[];
+ interactionFrequency: number;
+ longestGap: number;
+ };
+}
+```
+
+### Pattern 3: Progressive Memory Loading
+
+**Problem:** Loading entire relationship history for every interaction is inefficient.
+
+**Solution:** Tiered memory loading
+```typescript
+class MemoryManager {
+ // Hot memory: Last 7 days, always loaded
+ hotMemory: BehavioralEvent[];
+
+ // Warm memory: Patterns from last 90 days, loaded on demand
+ warmMemory: UserPatterns;
+
+ // Cold memory: Historical trends, loaded for analysis
+ coldMemory: LongTermTrends;
+
+ async getRelevantContext(currentSituation: Context): Promise {
+ // Always include hot memory
+ const recent = this.hotMemory;
+
+ // Load warm memory if pattern matches
+ const patterns = await this.matchWarmPatterns(currentSituation);
+
+ // Load cold memory only for significant decisions
+ const historical = currentSituation.isSignificant
+ ? await this.loadHistoricalTrends()
+ : null;
+
+ return { recent, patterns, historical };
+ }
+}
+```
+
+### Pattern 4: Privacy-Preserving Memory
+
+**Key principle:** Users must control what's remembered
+
+```typescript
+interface MemoryControls {
+ // What to remember
+ rememberedCategories: Set;
+
+ // What to forget
+ forgottenCategories: Set;
+
+ // Retention policies
+ retentionPolicies: Map; // category → days
+
+ // Explicit forgetting
+ forgetSpecific: (eventIds: string[]) => void;
+
+ // Memory export (user owns their data)
+ exportMemory: () => MemoryExport;
+}
+
+class PrivacyPreservingMemory {
+ // Differential privacy for pattern learning
+ learnPatternWithPrivacy(events: BehavioralEvent[], epsilon: number): Pattern {
+ const noisyPattern = this.addLaplaceNoise(
+ this.detectRawPattern(events),
+ epsilon
+ );
+ return noisyPattern;
+ }
+
+ // Automatic PII scrubbing
+ scubPII(event: BehavioralEvent): BehavioralEvent {
+ return {
+ ...event,
+ context: this.removePII(event.context)
+ };
+ }
+}
+```
+
+## Trust Evolution: Technical Implementation
+
+### Pattern 1: Dynamic Reasoning Display
+
+**Adaptive explanation based on trust stage:**
+
+```typescript
+interface ReasoningDisplay {
+ stage: TrustStage;
+ decision: Decision;
+ confidence: number;
+
+ render(): UIComponent {
+ switch (this.stage) {
+ case 'transparency':
+ return this.fullExplanation();
+
+ case 'selective':
+ return this.confidence < 0.7 || this.decision.significance === 'high'
+ ? this.fullExplanation()
+ : this.confidenceIndicator();
+
+ case 'autonomous':
+ return this.subtleNotification();
+ }
+ }
+
+ fullExplanation(): UIComponent {
+ return {
+ reasoning: this.decision.reasoning,
+ dataSources: this.decision.sources,
+ alternatives: this.decision.alternativesConsidered,
+ confidence: this.confidence,
+ expandable: true
+ };
+ }
+
+ confidenceIndicator(): UIComponent {
+ return {
+ confidence: this.confidence,
+ summary: this.decision.summary,
+ expandForDetails: true
+ };
+ }
+
+ subtleNotification(): UIComponent {
+ return {
+ action: this.decision.action,
+ undoButton: true,
+ explainOnDemand: true
+ };
+ }
+}
+```
+
+### Pattern 2: Trust Level Detection
+
+**Automatically adjust based on user behavior:**
+
+```typescript
+class TrustLevelDetector {
+ detectTrustLevel(userBehavior: UserBehavior): TrustStage {
+ const indicators = {
+ acceptanceRate: userBehavior.acceptedSuggestions / userBehavior.totalSuggestions,
+ overrideRate: userBehavior.overrides / userBehavior.totalSuggestions,
+ explanationRequests: userBehavior.explanationClicks / userBehavior.interactions,
+ delegationComfort: this.measureDelegation(userBehavior)
+ };
+
+ if (indicators.explanationRequests > 0.5 || indicators.acceptanceRate < 0.4) {
+ return 'transparency'; // User needs to see reasoning
+ }
+
+ if (indicators.acceptanceRate > 0.7 && indicators.delegationComfort > 0.6) {
+ return 'autonomous'; // User trusts system
+ }
+
+ return 'selective'; // Middle ground
+ }
+
+ measureDelegation(behavior: UserBehavior): number {
+ // How comfortable is user with autonomous actions?
+ const delegatedActions = behavior.actions.filter(a => a.userInitiated === false);
+ const acceptedWithoutReview = delegatedActions.filter(a => !a.reviewed).length;
+
+ return acceptedWithoutReview / delegatedActions.length;
+ }
+}
+```
+
+### Pattern 3: Trust Recovery Protocol
+
+**When system makes mistakes:**
+
+```typescript
+interface TrustRecoveryProtocol {
+ mistake: Decision;
+ userFeedback: Feedback;
+
+ async recover(): Promise {
+ // 1. Acknowledge transparently
+ await this.acknowledge({
+ what: "I made a suboptimal decision",
+ why: this.mistake.reasoning,
+ impact: this.calculateImpact(this.mistake)
+ });
+
+ // 2. Explain what went wrong
+ await this.explain({
+ assumption: "I assumed X based on Y",
+ reality: "But actually Z was true",
+ learning: "Now I understand that..."
+ });
+
+ // 3. Offer correction options
+ const options = await this.generateRecoveryOptions();
+ const userChoice = await this.askUser(options);
+
+ // 4. Adjust trust level temporarily
+ await this.adjustTrustLevel({
+ category: this.mistake.category,
+ adjustment: -0.2, // Reduce autonomy in this category
+ duration: '7 days', // Re-evaluate after proving reliability
+ escalationThreshold: 'lower' // More cautious
+ });
+
+ // 5. Learn from mistake
+ await this.updateDecisionModel({
+ pattern: this.extractPattern(this.mistake),
+ correction: userChoice,
+ context: this.mistake.context
+ });
+
+ return { recovered: true, newTrustLevel: this.calculateNewTrustLevel() };
+ }
+}
+```
+
+## Relationship Metrics: Implementation Guide
+
+### Metric 1: Relationship Quality Score
+
+**Components:**
+```typescript
+class RelationshipQualityMetric {
+ calculate(user: User, timeWindow: TimeWindow): QualityScore {
+ const trustIndicators = {
+ delegationComfort: this.measureDelegation(user),
+ overrideRate: this.calculateOverrides(user),
+ escalationFrequency: this.measureEscalations(user),
+ satisfactionSignals: this.detectSatisfaction(user)
+ };
+
+ const engagementIndicators = {
+ interactionDepth: this.measureDepth(user),
+ returnFrequency: this.calculateFrequency(user),
+ featureAdoption: this.measureAdoption(user)
+ };
+
+ const alignmentIndicators = {
+ goalProgress: this.measureGoalProgress(user),
+ expectationMatch: this.compareExpectations(user),
+ valueAlignment: this.assessAlignment(user)
+ };
+
+ return this.weightedScore({
+ trust: trustIndicators,
+ engagement: engagementIndicators,
+ alignment: alignmentIndicators
+ });
+ }
+
+ // Trust component
+ measureDelegation(user: User): number {
+ const categories = user.getDelegationCategories();
+ const delegationScores = categories.map(cat =>
+ user.getDelegationComfort(cat)
+ );
+ return average(delegationScores);
+ }
+
+ // Engagement component
+ measureDepth(user: User): number {
+ const sessions = user.getRecentSessions(30); // days
+ const metrics = sessions.map(session => ({
+ duration: session.duration,
+ actionsPerSession: session.actions.length,
+ complexTasksAttempted: session.complexTasks.length
+ }));
+
+ return this.calculateEngagementDepth(metrics);
+ }
+
+ // Alignment component
+ measureGoalProgress(user: User): number {
+ const goals = user.getCurrentGoals();
+ const progress = goals.map(goal => ({
+ target: goal.target,
+ current: goal.current,
+ trend: goal.trend
+ }));
+
+ return this.calculateGoalAlignment(progress);
+ }
+}
+```
+
+### Metric 2: Compounding Value
+
+**Measure improvement over time:**
+```typescript
+class CompoundingValueMetric {
+ calculate(user: User): CompoundingScore {
+ const baseline = user.getOnboardingMetrics();
+ const current = user.getCurrentMetrics();
+ const timeElapsed = user.getRelationshipDuration();
+
+ return {
+ // Efficiency gains
+ timeToSuccess: {
+ baseline: baseline.averageTimeToGoal,
+ current: current.averageTimeToGoal,
+ improvement: this.calculateImprovement(baseline, current),
+ compoundingRate: this.calculateCompoundingRate(user.getHistoricalMetrics())
+ },
+
+ // Quality gains
+ outcomeQuality: {
+ baseline: baseline.outcomeQuality,
+ current: current.outcomeQuality,
+ improvement: this.calculateImprovement(baseline, current)
+ },
+
+ // Capability expansion
+ capabilityGrowth: {
+ baselineCapabilities: baseline.featuresUsed,
+ currentCapabilities: current.featuresUsed,
+ newCapabilitiesAdopted: current.featuresUsed.filter(
+ f => !baseline.featuresUsed.includes(f)
+ )
+ },
+
+ // Compounding rate
+ compoundingFactor: this.calculateCompoundingFactor(timeElapsed, improvement)
+ };
+ }
+
+ calculateCompoundingRate(historical: Metric[]): number {
+ // Are improvements accelerating (compounding) or linear?
+ const improvements = historical.map((metric, i) =>
+ i > 0 ? (metric.value - historical[i-1].value) / historical[i-1].value : 0
+ );
+
+ // Fit curve: linear vs. exponential
+ const linearFit = this.fitLinear(improvements);
+ const exponentialFit = this.fitExponential(improvements);
+
+ // Positive slope in exponential fit = compounding
+ return exponentialFit.slope > 0 ? exponentialFit.slope : 0;
+ }
+}
+```
+
+### Metric 3: Context Accuracy
+
+**How well does system understand user?**
+```typescript
+class ContextAccuracyMetric {
+ calculate(user: User, timeWindow: TimeWindow): AccuracyScore {
+ const predictions = user.getSystemPredictions(timeWindow);
+ const actuals = user.getActualBehavior(timeWindow);
+
+ return {
+ // Intent prediction
+ intentAccuracy: this.measureIntentPrediction(predictions, actuals),
+
+ // Preference prediction
+ preferenceAccuracy: this.measurePreferencePrediction(predictions, actuals),
+
+ // Context recognition
+ contextRecognition: this.measureContextRecognition(predictions, actuals),
+
+ // Timing accuracy
+ timingAccuracy: this.measureTimingAccuracy(predictions, actuals)
+ };
+ }
+
+ measureIntentPrediction(predictions: Prediction[], actuals: Actual[]): number {
+ // Did system correctly understand what user was trying to do?
+ const matches = predictions.filter((pred, i) =>
+ pred.intent === actuals[i].intent
+ );
+
+ return matches.length / predictions.length;
+ }
+
+ measurePreferencePrediction(predictions: Prediction[], actuals: Actual[]): number {
+ // For choices offered, did user select system's top recommendation?
+ const topRecommendations = predictions.map(p => p.topChoice);
+ const userChoices = actuals.map(a => a.choice);
+
+ const matches = topRecommendations.filter((rec, i) =>
+ rec === userChoices[i]
+ );
+
+ return matches.length / predictions.length;
+ }
+
+ measureContextRecognition(predictions: Prediction[], actuals: Actual[]): number {
+ // Did system recognize user's situational context?
+ const contextMatches = predictions.filter((pred, i) => {
+ const predictedContext = pred.detectedContext;
+ const actualContext = actuals[i].context;
+
+ return this.contextsMatch(predictedContext, actualContext);
+ });
+
+ return contextMatches.length / predictions.length;
+ }
+}
+```
+
+### Metric 4: Democratic Alignment
+
+**Guardrails and ethical boundaries:**
+```typescript
+class DemocraticAlignmentMetric {
+ calculate(user: User, timeWindow: TimeWindow): AlignmentScore {
+ const decisions = user.getSystemDecisions(timeWindow);
+
+ return {
+ // Value alignment
+ valueAlignment: this.measureValueAlignment(decisions),
+
+ // Boundary respect
+ boundaryRespect: this.measureBoundaryRespect(decisions),
+
+ // Fairness
+ fairness: this.measureFairness(decisions),
+
+ // Transparency
+ transparency: this.measureTransparency(decisions)
+ };
+ }
+
+ measureValueAlignment(decisions: Decision[]): number {
+ // Do decisions align with stated human values?
+ const valueViolations = decisions.filter(d =>
+ this.violatesValue(d, this.getConstitution())
+ );
+
+ return 1 - (valueViolations.length / decisions.length);
+ }
+
+ measureBoundaryRespect(decisions: Decision[]): number {
+ // Did system respect explicit boundaries?
+ const boundaryViolations = decisions.filter(d =>
+ d.action.crosses(user.getExplicitBoundaries())
+ );
+
+ return 1 - (boundaryViolations.length / decisions.length);
+ }
+
+ measureFairness(decisions: Decision[]): number {
+ // Are decisions fair across user segments?
+ const outcomesBySegment = this.groupBySegment(decisions);
+ const fairnessScore = this.calculateFairnessMetric(outcomesBySegment);
+
+ return fairnessScore;
+ }
+}
+```
+
+## Collaborative Planning: Technical Patterns
+
+### Pattern 1: Goal-Aware State Machine
+
+**Traditional approach:** Fixed workflows
+**Agentic approach:** Goal-aware adaptive paths
+
+```typescript
+class GoalAwareStateMachine {
+ currentState: State;
+ userGoal: Goal;
+ context: Context;
+
+ async nextState(): Promise {
+ // Instead of predetermined path, evaluate goal progress
+ const goalProgress = await this.evaluateGoalProgress();
+
+ if (goalProgress.onTrack) {
+ return this.continueCurrentPath();
+ }
+
+ if (goalProgress.blocked) {
+ // Dynamically generate alternative path
+ const alternatives = await this.generateAlternatives();
+ const recommended = await this.selectBestAlternative(alternatives);
+
+ // Ask user for collaborative decision
+ return await this.collaborativeDecision(alternatives, recommended);
+ }
+
+ if (goalProgress.complete) {
+ return this.goalCompleteState();
+ }
+
+ // Learn from user's actual path
+ await this.updatePathModel(this.currentState, goalProgress);
+
+ return this.adaptivePath();
+ }
+
+ async generateAlternatives(): Promise {
+ // System generates options based on:
+ // - User's historical preferences
+ // - Current context and constraints
+ // - Similar users' successful paths
+ // - Domain knowledge
+
+ return this.alternativeGenerator.generate({
+ goal: this.userGoal,
+ context: this.context,
+ history: this.getUserHistory(),
+ constraints: this.getConstraints()
+ });
+ }
+}
+```
+
+### Pattern 2: Proactive Suggestion Engine
+
+**When to suggest vs. when to wait:**
+
+```typescript
+class ProactiveSuggestionEngine {
+ async evaluateSuggestion(
+ suggestion: Suggestion,
+ context: Context
+ ): Promise {
+ // Don't interrupt if user is in flow state
+ if (context.userState === 'focused' || context.userState === 'progressing') {
+ return { suggest: false, reason: 'user-in-flow' };
+ }
+
+ // Do suggest if user shows frustration patterns
+ if (this.detectFrustration(context)) {
+ return { suggest: true, urgency: 'high', reason: 'frustration-detected' };
+ }
+
+ // Do suggest if system has high-confidence relevant suggestion
+ if (suggestion.confidence > 0.85 && this.isRelevant(suggestion, context)) {
+ return { suggest: true, urgency: 'medium', reason: 'high-confidence' };
+ }
+
+ // Wait for natural pause point
+ if (context.userState === 'paused' || context.userState === 'stuck') {
+ return { suggest: true, urgency: 'low', reason: 'natural-pause' };
+ }
+
+ return { suggest: false, reason: 'wait-for-better-timing' };
+ }
+
+ detectFrustration(context: Context): boolean {
+ return (
+ context.repeatedActions > 3 ||
+ context.timeSinceProgress > 300 || // seconds
+ context.undoCount > 2 ||
+ context.searchRepetitions > 2
+ );
+ }
+}
+```
+
+### Pattern 3: Human-AI Co-Creation Interface
+
+**Collaborative workspace pattern:**
+
+```typescript
+interface CoCreationWorkspace {
+ // Human contributions
+ humanInput: {
+ goals: Goal[];
+ constraints: Constraint[];
+ preferences: Preference[];
+ judgmentCalls: Decision[];
+ };
+
+ // AI contributions
+ aiInput: {
+ analysis: Analysis[];
+ patterns: Pattern[];
+ suggestions: Suggestion[];
+ capabilities: Capability[];
+ };
+
+ // Shared workspace
+ sharedArtifacts: {
+ plan: Plan;
+ decisions: Decision[];
+ rationale: Rationale[];
+ };
+
+ // Collaboration methods
+ collaborate(): void {
+ // 1. Human provides high-level goal
+ const goal = this.humanInput.goals[0];
+
+ // 2. AI generates analysis and options
+ const analysis = this.ai.analyze(goal);
+ const options = this.ai.generateOptions(analysis);
+
+ // 3. AI presents for human judgment
+ this.present(options);
+
+ // 4. Human selects/refines
+ const humanChoice = this.waitForHumanInput();
+
+ // 5. AI fills in details
+ const detailedPlan = this.ai.elaborate(humanChoice);
+
+ // 6. Iterate until convergence
+ while (!this.converged()) {
+ this.humanRefine();
+ this.aiRefine();
+ }
+ }
+}
+```
+
+## Implementation Checklist
+
+For your specific project:
+
+### Memory Architecture
+- [ ] Choose event streaming vs. snapshot approach
+- [ ] Design behavioral pattern detection algorithms
+- [ ] Implement privacy controls and PII scrubbing
+- [ ] Build tiered memory loading (hot/warm/cold)
+- [ ] Create memory visualization for users
+- [ ] Implement retention policies and forgetting mechanisms
+
+### Trust Evolution
+- [ ] Define transparency requirements for your domain
+- [ ] Implement dynamic reasoning display
+- [ ] Build trust level detection
+- [ ] Create trust recovery protocols
+- [ ] Design autonomy controls for users
+- [ ] Implement escalation pathways
+
+### Relationship Metrics
+- [ ] Select 2-3 metrics from each category (Quality, Value, Accuracy, Alignment)
+- [ ] Implement baseline measurement
+- [ ] Build longitudinal tracking (weekly/monthly)
+- [ ] Create metric visualization
+- [ ] Define success thresholds
+- [ ] Set up alerting for metric degradation
+
+### Collaborative Planning
+- [ ] Design goal capture interface
+- [ ] Implement proactive suggestion logic
+- [ ] Build co-creation workspace
+- [ ] Create adaptive path generation
+- [ ] Implement learning from user choices
+
+### Privacy & Ethics
+- [ ] Define data retention policies
+- [ ] Implement user data export
+- [ ] Build forgetting controls
+- [ ] Create transparency logs
+- [ ] Implement democratic alignment guardrails
+- [ ] Design trust recovery protocols
+
+## Testing Relationship Design
+
+### User Testing Approach
+
+**Traditional UX testing:** Single session, task completion
+**Relationship UX testing:** Longitudinal, relationship development
+
+**Test phases:**
+1. **Week 1:** Onboarding and transparency phase
+ - Can users understand system reasoning?
+ - Do explanations build trust?
+ - Are privacy controls clear?
+
+2. **Weeks 2-4:** Transition to selective disclosure
+ - Does system correctly detect trust level?
+ - Are autonomy controls working?
+ - Is system learning user patterns?
+
+3. **Months 2-3:** Autonomous phase
+ - Has trust evolved naturally?
+ - Are autonomous actions appropriate?
+ - Is compounding value evident?
+
+**Metrics to track during testing:**
+- Trust scores over time
+- Relationship quality indicators
+- Context accuracy improvements
+- User satisfaction trends
+- Delegation comfort evolution
+
+## Common Implementation Pitfalls
+
+### ❌ Pitfall 1: Remembering Too Much
+**Problem:** Storing every interaction without relevance filtering
+**Impact:** Slow system, privacy concerns, noise in pattern detection
+**Fix:** Implement relevance filtering and retention policies
+
+### ❌ Pitfall 2: Rigid Trust Stages
+**Problem:** Fixed timeline: "Week 1 = transparency, Week 4 = autonomous"
+**Impact:** Doesn't match individual user trust development
+**Fix:** Detect trust level from behavior, let users control progression
+
+### ❌ Pitfall 3: Optimizing for Short-Term Metrics
+**Problem:** Still measuring session duration, immediate conversion
+**Impact:** Misses relationship quality deterioration
+**Fix:** Track longitudinal metrics, relationship health over time
+
+### ❌ Pitfall 4: No Trust Recovery Path
+**Problem:** When system makes mistake, no way to rebuild trust
+**Impact:** Users abandon system after first error
+**Fix:** Implement transparent recovery protocols
+
+### ❌ Pitfall 5: Ignoring Privacy
+**Problem:** "More data = better personalization" without user control
+**Impact:** Privacy violations, user discomfort, regulatory issues
+**Fix:** Privacy-first design with user controls
+
+## Next Steps
+
+1. **Choose your domain:** B2B, B2C, healthcare, finance, etc.
+2. **Map relationship model:** What should system remember and learn?
+3. **Design trust evolution:** What stages make sense for your domain?
+4. **Implement metrics:** Start with 2-3 metrics from each category
+5. **Build MVP:** Memory + trust indicators + basic collaborative planning
+6. **Test longitudinally:** Week 1, Month 1, Month 3, Month 6
+7. **Iterate based on relationship health:** Adjust based on metrics
+
+See [EXAMPLES.md](EXAMPLES.md) for domain-specific implementations.
+See [CHECKLIST.md](CHECKLIST.md) for detailed audit and design worksheets.
diff --git a/.agents/skills/relationship-design/SKILL.md b/.agents/skills/relationship-design/SKILL.md
new file mode 100644
index 0000000..88bb60b
--- /dev/null
+++ b/.agents/skills/relationship-design/SKILL.md
@@ -0,0 +1,332 @@
+---
+name: Agentic UX Design - Relationship-Centric Interfaces
+description: Design AI-first interfaces that build ongoing relationships through memory, trust evolution, and collaborative planning, not just isolated screen interactions
+when_to_use: when user explicitly requests agentic UX design, relationship-centric design, or mentions designing for memory, trust evolution, or long-term user relationships; ONLY use when specifically asked, not for general UI/UX tasks
+version: 1.0.0
+---
+
+# Agentic UX Design - Relationship-Centric Interfaces
+
+## Overview
+
+**The paradigm shift from screen-centric to relationship-centric design.**
+
+Traditional UX optimizes individual screens and isolated interactions. Agentic UX designs for ongoing relationships where systems learn, remember, and evolve alongside users across sessions, devices, and contexts.
+
+**Core principle:** Every interaction builds on learned preferences and user history. Systems don't just respond—they develop understanding that compounds over time.
+
+**Announce at start:** "I'm using the Relationship Design skill to create an agentic, memory-aware interface that builds long-term relationships with users."
+
+## When to Use
+
+Use this skill when:
+- Designing AI-powered applications, chatbots, or agent systems
+- Building interfaces with repeated user interactions over time
+- Creating systems that should learn from user behavior
+- Rethinking traditional dashboards or SaaS products for the AI era
+- Users complain about "starting over" every session
+- You need to measure relationship quality, not just conversion rates
+- Designing for trust evolution from transparency to autonomy
+- Building collaborative planning features (human + AI co-creation)
+
+**When NOT to use:**
+- Simple one-time transactions with no user accounts
+- Static content websites with no personalization needs
+- Systems where memory/learning creates privacy concerns
+- Interfaces where consistency > adaptation (e.g., medical equipment)
+
+## The Five Pillars of Agentic UX
+
+### 1. Memory Revolution: From Static Preferences to Contextual Intelligence
+
+**Old model:** Store static preferences (theme: dark, language: EN)
+
+**New model:** Maintain dynamic, evolving relationship models
+
+**Design for:**
+- **Behavioral patterns:** Not just "user clicked X" but "user spends 20 min frustrated searching for Y on Tuesday evenings"
+- **Emotional context:** Recognize frustration, urgency, exploration, decision-making modes
+- **Temporal evolution:** How preferences change over weeks/months
+- **Cross-session continuity:** Seamless continuation across devices and time
+
+**Key question:** What would this experience look like if it remembered everything and got better over time?
+
+### 2. Trust as a Design Material: The Three-Stage Evolution
+
+Design interfaces that earn autonomy through graduated trust:
+
+**Stage 1: Transparency Phase**
+- Show all reasoning, decision processes, confidence levels
+- Explain why the system suggests actions
+- Reveal data sources and logic paths
+- User wants to see everything
+
+**Stage 2: Selective Disclosure Phase**
+- Show reasoning only for important/uncertain decisions
+- Quiet confidence for routine actions
+- System learns when to show work vs. act confidently
+- User trusts but verifies
+
+**Stage 3: Autonomous Action Phase**
+- Act independently with subtle confirmation patterns
+- Clear escalation paths for mistakes
+- User delegates entire decision categories
+- Trust through consistent, aligned behavior
+
+**Design patterns:**
+- Progressive disclosure controls (let users adjust transparency level)
+- Confidence indicators (system certainty visualization)
+- Trust recovery protocols (clear undo/correction paths)
+- Explain-on-hover for autonomous actions
+
+**Key question:** How might users develop trust with this system gradually?
+
+### 3. Relationship-Centric Architecture
+
+**Design ongoing partnerships, not isolated transactions.**
+
+**From:** User logs in → completes task → logs out → system forgets
+
+**To:** System maintains continuous awareness of:
+- User's ongoing goals and projects
+- Communication preferences and patterns
+- Learning from what works for this individual
+- Relationship depth over time
+
+**Implementation patterns:**
+- **Memory visualization:** Show what system remembers (preferences, goals, patterns)
+- **Context indicators:** Subtle cues showing how past interactions influence current suggestions
+- **Forgetting controls:** User agency over what gets remembered vs. forgotten
+- **Relationship timeline:** Visual representation of how the relationship evolved
+
+**Key question:** What goals are users really trying to achieve, and how could an agentic system help them get there more effectively?
+
+### 4. Systems That Plan Their Own Path
+
+**From:** Design every possible user path explicitly
+
+**To:** Design goal-alignment mechanisms where system dynamically constructs paths
+
+**Agentic systems:**
+- Maintain awareness of underlying user objectives
+- Adapt interaction patterns based on what works
+- Learn from imperfect demonstrations and natural language feedback
+- Construct custom workflows for individual users
+
+**Design for:**
+- **Goal continuity:** Persistent awareness of user objectives across sessions
+- **Proactive nudging:** Gentle next-step suggestions without intrusion
+- **Collaborative planning:** Human + AI jointly developing approaches
+- **Adaptive interfaces:** UI elements that evolve based on usage patterns
+
+**Key question:** Can the system help users achieve goals they haven't fully articulated yet?
+
+### 5. New Success Metrics: Beyond Conversion Rates
+
+Traditional UX metrics (session duration, conversion rates, clicks) miss the point for agentic experiences.
+
+**Measure instead:**
+
+**Relationship Quality**
+- Trust scores and delegation comfort
+- User confidence in system decisions
+- How often users second-guess the system
+- Comfort with autonomous actions
+
+**Compounding Value**
+- Experience improvement over time
+- Increasingly complex problems solved
+- Better outcomes through accumulated understanding
+- Month 6 vs. Month 1 comparison
+
+**Context Accuracy**
+- System understanding of intent and preferences
+- Alignment with user values and goals
+- Situational needs recognition
+- Prediction accuracy for important decisions
+
+**Democratic Alignment**
+- Alignment with broader human values
+- Socially acceptable behavior boundaries
+- Ethical decision-making
+- Collective constitutional principles
+
+**Key question:** How do we know if the relationship is getting better, not just more frequent?
+
+## The Relationship Design Process
+
+### Phase 1: Understand the Relationship Context
+
+Ask these questions:
+
+1. **Relationship duration:** How long do users typically engage? (days, months, years?)
+2. **Interaction frequency:** Daily? Weekly? Sporadic?
+3. **Goal complexity:** Simple tasks or evolving, complex objectives?
+4. **Trust requirements:** What level of autonomy makes sense?
+5. **Memory sensitivity:** What should system remember vs. forget?
+6. **Personalization depth:** How much should experience adapt?
+
+### Phase 2: Map Trust Evolution
+
+For your specific use case:
+
+1. **Define transparency needs:** What must always be explained?
+2. **Identify routine actions:** What can become autonomous over time?
+3. **Design trust indicators:** How will users see system confidence?
+4. **Create recovery paths:** What happens when system makes mistakes?
+5. **Plan trust checkpoints:** How do users adjust autonomy levels?
+
+### Phase 3: Design Memory Architecture
+
+1. **Behavioral data:** What patterns matter?
+2. **Preference evolution:** What changes over time?
+3. **Context signals:** What indicates user's current state/goal?
+4. **Memory controls:** How do users manage what's remembered?
+5. **Cross-session continuity:** How does system maintain context?
+
+### Phase 4: Build Collaborative Planning Patterns
+
+1. **Goal capture:** How does system learn user objectives?
+2. **Proactive suggestions:** When/how does system offer help?
+3. **Co-creation interface:** How do human + AI work together?
+4. **Adaptive UI:** What interface elements should evolve?
+5. **Learning feedback:** How do users correct system understanding?
+
+### Phase 5: Define Success Metrics
+
+Choose 2-3 metrics from each category:
+- Relationship Quality indicators
+- Compounding Value measures
+- Context Accuracy signals
+- Democratic Alignment guardrails
+
+Track these over weeks/months, not just sessions.
+
+## Design Patterns Library
+
+### Memory-Aware Interface Components
+
+**Contextual Timeline**
+- Show user's journey over time
+- Highlight preference evolution
+- Display key relationship moments
+
+**Emotional State Indicators**
+- Recognize frustration, urgency, exploration
+- Adapt interface based on detected state
+- Show system's understanding of context
+
+**Dynamic Suggestions Panel**
+- Based on current goal + historical patterns
+- Confidence indicators for each suggestion
+- Explain why these suggestions now
+
+### Trust-Building Components
+
+**Reasoning Display (Transparency Phase)**
+- Show decision logic
+- Display confidence levels
+- Reveal data sources
+
+**Confidence Meter**
+- Visual indicator of system certainty
+- Hover to see reasoning
+- Adjust autonomy based on confidence
+
+**Undo/Correct Patterns**
+- One-click correction of autonomous actions
+- System learns from corrections
+- Clear escalation paths
+
+### Collaborative Planning Components
+
+**Goal Dashboard**
+- Ongoing objectives visualization
+- Progress indicators
+- System suggestions for next steps
+
+**Planning Canvas**
+- Human + AI co-create plans
+- System contributes capabilities
+- User provides judgment and strategy
+
+**Preference Evolution Map**
+- Show how system's understanding improved
+- User control over what's learned
+- Forgetting controls
+
+## Common Mistakes
+
+### ❌ Treating Memory Like Static Settings
+**Problem:** Storing preferences as key-value pairs (theme: dark) instead of evolving patterns
+
+**Fix:** Design dynamic models that understand behavioral patterns, temporal context, and evolution over time
+
+### ❌ Binary Trust Model
+**Problem:** System is either fully transparent or fully autonomous from day one
+
+**Fix:** Design three-stage trust evolution with gradual autonomy and user-controlled trust levels
+
+### ❌ Using Traditional UX Metrics
+**Problem:** Measuring session duration and conversion rates for relationship-based systems
+
+**Fix:** Track relationship quality, compounding value, context accuracy over weeks/months
+
+### ❌ Forgetting Privacy Controls
+**Problem:** System remembers everything with no user control
+
+**Fix:** Build forgetting controls, memory visualization, and clear data retention policies
+
+### ❌ Designing Screens Instead of Relationships
+**Problem:** Focusing on pixel-perfect interfaces without relationship architecture
+
+**Fix:** Start with relationship model, then design screens that support ongoing partnership
+
+### ❌ No Trust Recovery Path
+**Problem:** When system makes mistakes, users lose all trust permanently
+
+**Fix:** Design clear correction paths, system learning from mistakes, and trust recovery protocols
+
+## Real-World Applications
+
+**See [EXAMPLES.md](EXAMPLES.md) for:**
+- EU B2B relationship cockpit (automotive service networks)
+- Memory-aware content discovery (streaming services)
+- Collaborative planning assistant (project management)
+- Trust-evolving financial advisor
+
+**See [REFERENCE.md](REFERENCE.md) for:**
+- Detailed research foundation (DeepMind, Anthropic, OpenAI)
+- Technical implementation patterns
+- Memory architecture designs
+- Metrics implementation guides
+
+**See [CHECKLIST.md](CHECKLIST.md) for:**
+- Relationship UX audit checklist
+- Memory & data contracts sprint guide
+- Trust evolution design worksheet
+
+## Quick Reference
+
+| Traditional UX | Agentic UX |
+|----------------|------------|
+| Session duration | Relationship depth over months |
+| Conversion rates | Trust scores and delegation comfort |
+| Click-through rates | Compounding value (Month 6 vs Month 1) |
+| Isolated screens | Continuous relationship context |
+| Static preferences | Dynamic pattern evolution |
+| One-size-fits-all | Individually adaptive interfaces |
+| Explicit navigation | Goal-aligned path construction |
+| Binary permissions | Graduated trust evolution |
+
+## Remember
+
+- Design for relationships that span months, not sessions
+- Trust evolves through three stages: Transparency → Selective → Autonomous
+- Memory means understanding patterns, not storing static preferences
+- Measure relationship quality, not just engagement metrics
+- Systems should plan paths to goals, not just execute predefined flows
+- User control over memory, trust levels, and autonomous actions is essential
+- Privacy and forgetting are as important as memory and learning
+
+**The screens will always matter. But the relationships matter more.**
diff --git a/.agents/skills/typography/SKILL.md b/.agents/skills/typography/SKILL.md
new file mode 100644
index 0000000..075d59c
--- /dev/null
+++ b/.agents/skills/typography/SKILL.md
@@ -0,0 +1,344 @@
+---
+name: ui-typography
+description: >
+ Professional typography rules for UI design, web applications, software interfaces, and all screen-based
+ text. Enforces timeless typographic correctness that LLMs consistently get wrong: proper quote marks,
+ dashes, spacing, hierarchy, and layout. ENFORCEMENT MODE: When generating ANY HTML, CSS, React, JSX,
+ or UI code containing visible text, auto-apply every rule in this skill silently — do not ask, do not
+ explain, just produce correct typography. AUDIT MODE: When reviewing or improving existing interfaces or
+ legacy code, flag violations and provide fixes. Trigger on: any HTML/CSS/React artifact creation, "build
+ a landing page", "create a component", "design a UI", "fix the typography", "make this look professional",
+ "review this layout", web design, presentation design, dashboard creation, document generation, or any
+ task producing visible text for humans. Even if the user doesn't mention typography, apply these rules
+ whenever generating UI output.
+---
+
+# UI Typography Skill
+
+## Attribution
+
+These rules are distilled from **Matthew Butterick's *Practical Typography*** (https://practicaltypography.com).
+Butterick is a typographer, writer, and type designer whose work bridges professional typography and everyday
+digital writing. Thank you, Matthew, for making this knowledge accessible and encyclopedic. If you find this
+skill valuable, consider supporting his work directly.
+
+## Mode of Operation
+
+These are **permanent rules** — not trends, not opinions. They come from centuries of typographic practice,
+validated by how the human eye reads. They do not go out of style.
+
+**ENFORCEMENT (default):** When generating ANY UI with visible text, apply every rule automatically. Use
+correct HTML entities, proper CSS. Do not ask permission. Do not explain. Just produce correct typography.
+
+**AUDIT:** When reviewing existing code or design, identify violations and provide before/after fixes.
+
+**Reference files** (read when generating CSS or looking up entities):
+- `references/css-templates.md` — Full CSS baseline template, responsive patterns, OpenType features
+- `references/html-entities.md` — Complete entity table with all characters and codes
+
+---
+
+## Characters
+
+### Quotes and Apostrophes — Always Curly
+
+Straight quotes are typewriter artifacts. Use `“` `”` for double, `‘` `’` for single.
+
+Apostrophes always point down — identical to closing single quote `’`. Smart-quote engines wrongly
+insert opening quotes before decade abbreviations ('70s) and word-initial contractions ('n'). Fix with
+explicit `’`.
+
+The `` tag auto-applies curly quotes when `` is set.
+
+Hawaiian okina points upward — it's a letter, not an apostrophe. Use opening single quote or anglicize.
+
+### JSX/React Implementation Warning
+
+**Unicode escape sequences (`\u2019`, `\u201C`, etc.) do NOT work in JSX text content.** They render
+as literal characters — the user sees `\u2019` instead of a curly apostrophe. This is because JSX text
+between tags is treated as string literals by the transpiler, not as JavaScript expressions.
+
+**What fails:**
+```jsx
+{/* WRONG — renders literally as \u2019 */}
+Don\u2019t do this
+```
+
+**What works (pick one):**
+
+1. **Actual UTF-8 characters (preferred):** Paste the real character directly into the source file.
+ ```jsx
+ Don\u2019t do this
{/* This is the actual curly apostrophe character U+2019 */}
+ ```
+
+2. **JSX expression with string literal:** Wrap in curly braces so the JS engine interprets the escape.
+ ```jsx
+ Don{'\u2019'}t do this
+ ```
+
+3. **HTML entity (HTML files only):** Use `’` — but this does NOT work in JSX/React.
+
+**For bulk fixes via CLI**, use `sed` with raw UTF-8 bytes (not escape sequences):
+```bash
+CURLY=$(printf '\xe2\x80\x99') # U+2019 RIGHT SINGLE QUOTATION MARK
+sed -i '' "s/don't/don${CURLY}t/g" file.tsx
+```
+
+**In JavaScript data arrays and string literals**, `\u2019` works correctly because the JS engine
+processes the escape. The bug only affects JSX text content between tags.
+
+### Dashes and Hyphens — Three Distinct Characters
+
+| Character | HTML | Use |
+|-----------|------|-----|
+| - (hyphen) | `-` | Compound words (cost-effective), line breaks |
+| – (en dash) | `–` | Ranges (1–10), connections (Sarbanes–Oxley Act) |
+| — (em dash) | `—` | Sentence breaks—like this |
+
+Never approximate with `--` or `---`. If you open with "from", pair with "to" not en dash. Hyphen for
+compound names (marriage); en dash for joint authorship. Em dash typically flush; add ` ` if crushed.
+No slash where en dash belongs. Hyphenate phrasal adjectives (five-dollar bills). No hyphen after -ly adverbs.
+
+### Ellipses — One Character
+
+Use `…` (…), not three periods. Spaces before and after; use ` ` on the text-adjacent side.
+For interrupted dialogue, prefer em dash over ellipsis.
+
+### Math and Measurement
+
+Use `×` for multiplication, `−` for subtraction. Use `+` and `=` from keyboard.
+En dash is acceptable as simple minus. Dimensions: 8.5″ × 14″ uses `×`.
+
+**Foot and inch marks** — the ONE exception to curly quotes. Must be STRAIGHT: `'` for foot,
+`"` for inch. Use ` ` between values: `6' 10"`.
+
+### Trademark and Copyright
+
+Use real symbols: `©` `™` `®`, never (c) (TM) (R). ™/® are superscripts, no space before.
+© is inline, followed by ` ` then year. "Copyright ©" is redundant — word OR symbol, not both.
+
+### Paragraph and Section Marks
+
+`§` (§) and `¶` (¶) always followed by ` `: `§ 1782`. Spell out at sentence start.
+Double for plurals: `§§`.
+
+### Accented Characters
+
+Proper names: accents are MANDATORY (François Truffaut, Plácido Domingo). Loanwords: check dictionary —
+some naturalized (naive), some not (cause célèbre).
+
+### Other Punctuation
+
+- **Semicolons** join independent clauses. **Colons** introduce completion. Don't mix them
+- **Question marks**: underused — simplify topic sentences with them
+- **Exclamation points**: overused — budget ONE per long document. Never multiple in a row
+- **Ampersands**: correct in proper names only. Write "and" in body text
+- **Parentheses/brackets**: do NOT adopt formatting of surrounded material
+- **Emoticons/emoji**: OK in email/Slack. Never in formal documents or professional UI copy
+
+---
+
+## Spacing
+
+### One Space After Punctuation — Always
+
+Exactly one space after any punctuation. Never two. Not debatable. Two spaces create rivers and
+disrupt text balance. The period already contains visual white space.
+
+### Nonbreaking Spaces
+
+` ` prevents line break. Use before numeric refs (`§ 42`, `Fig. 3`), after ©
+(`© 2025`), after honorifics (`Dr. Smith`), between foot/inch values.
+
+### White-Space Characters
+
+| Need | Tool |
+|------|------|
+| Space between words | One word space (spacebar) |
+| Prevent line break | ` ` |
+| New line, same paragraph | ` ` |
+| New paragraph | `` tags |
+| New page (print) | `page-break-before: always` |
+| Suggest hyphenation point | `` |
+
+Never hold spacebar. Never double carriage returns for spacing. Never tabs for indentation in output.
+HTML collapses all whitespace to single space (except ` `).
+
+---
+
+## Text Formatting
+
+### Bold and Italic
+
+**Rule 1**: Bold OR italic. Mutually exclusive. Never combine.
+**Rule 2**: Use as little as possible. If everything is emphasized, nothing is.
+
+Serif: italic for gentle, bold for strong. Sans serif: bold only — italic sans barely stands out.
+Never bold entire paragraphs. Never use quotation marks for emphasis.
+
+### Underlining — Never
+
+Never underline in a document or UI. Typewriter workaround. Use bold or italic. For web links,
+use subtle styling: `text-decoration-thickness: 1px; text-underline-offset: 2px`.
+
+### All Caps — Less Than One Line, Always Letterspaced
+
+Caps are harder to read (homogeneous rectangles vs varied lowercase contour). Suitable for short
+headings, labels, captions. **ALWAYS** add 5–12% letterspacing. **ALWAYS** ensure kerning is on.
+**NEVER** capitalize whole paragraphs. `letter-spacing: 0.06em` in CSS.
+
+### Small Caps — Real Only
+
+Never fake (scaled-down regular caps). Use `font-variant-caps: small-caps` with fonts that have
+real small caps (OpenType `smcp`). System fonts lack them. Add letterspacing + kerning.
+
+### Point Size
+
+Print: 10–12pt. Web: 15–25px. The 12pt default is a typewriter relic. Half-point differences
+matter. Use smallest increment for emphasis. Use `clamp()` for fluid web sizing.
+
+### Letterspacing
+
+5–12% extra on ALL CAPS and small caps. Nothing on lowercase. Never spread so far apart that
+letters could fit in the gaps. CSS: `letter-spacing: 0.05em` to `0.12em`.
+
+### Kerning — Always On
+
+No exceptions. `font-feature-settings: "kern" 1; text-rendering: optimizeLegibility;`
+
+### Ligatures
+
+Mandatory only when fi/fl visually collide. Check bold and italic too. Otherwise optional.
+CSS: `font-feature-settings: "liga" 1`.
+
+### Alternate Figures
+
+Tabular (`"tnum"`) for data tables. Oldstyle (`"onum"`) for body text. Default figures are fine
+for most uses. `font-variant-numeric: tabular-nums lining-nums` for numeric tables.
+
+### Font Selection
+
+1. No goofy fonts (novelty, script, handwriting, circus) in professional work
+2. No monospaced for body text — code only (and Courier is the worst monospaced)
+3. Print body: strongly prefer serif
+4. Web body: serif or sans both fine on modern screens
+5. Metrics spacing in InDesign, never optical (optical mangles kerning)
+
+### Mixing Fonts
+
+Max 2 fonts. Each gets a consistent role. Can mix serif+serif or sans+sans. Rarely mix within
+a paragraph. Lower contrast often more effective than high contrast.
+
+---
+
+## Page Layout
+
+### Body Text First
+
+Set body text BEFORE anything else. Four decisions determine everything: font, point size,
+line spacing, line length. All other elements calibrate against these.
+
+### Line Length — 45–90 Characters
+
+The #1 readability factor designers get wrong. The #1 flaw in responsive web layouts.
+Measure in characters, not inches. Alphabet test: fit 2–3 lowercase alphabets per line.
+CSS: `max-width: 65ch` on text containers.
+
+### Line Spacing — 120–145% of Point Size
+
+`line-height: 1.2` to `1.45`. Single-spaced (~117%) is too tight. Double (~233%) is too loose.
+Word processor "Single" and "Double" both miss the optimal range.
+
+### Page Margins
+
+One inch is not enough for proportional fonts. Print: 1.5–2.0″ at 12pt. Web: `max-width` on
+text containers plus `padding`. Don't fear white space — generous margins look professional.
+
+### Text Alignment
+
+Left-align for web (default). Justified requires `hyphens: auto` — browser engines are crude.
+Centered: sparingly, only for short titles (< 1 line). Never center whole text blocks.
+
+### Paragraph Separation — Indent OR Space, Never Both
+
+**First-line indent**: 1–4× point size. `text-indent: 1.5em`. Optional on first paragraph.
+**Space between**: 50–100% of font size. `margin-bottom: 0.75em`. Never double ` ` tags.
+
+### Headings — Max 3 Levels
+
+1. Don't all-caps headings (unless very short + letterspaced)
+2. Don't underline headings
+3. Don't center headings (rare exceptions)
+4. Emphasize with **space above and below** — subtle and effective
+5. Use **bold, not italic** — stands out better
+6. Smallest point-size increment needed (body 11pt → heading 13pt, not 18pt)
+7. `hyphens: none` on headings
+8. Space above > space below (heading relates to text that follows)
+9. Keep heading with next paragraph (`page-break-after: avoid`)
+10. Tiered numbers (1.1, 2.1) over roman numerals (I.A.1.a.i)
+
+### Block Quotations
+
+Reduce size + line spacing slightly. Indent 2–5em. No quotation marks (indent signals the quote).
+Keep line length readable. Use sparingly — long block quotes signal lazy writing.
+
+### Lists
+
+Semantic markup (`
`, ``), never manual bullets. Prefer hollow bullets. Asterisks are too
+small for bullets. Don't over-indent.
+
+### Tables — Remove Borders, Add Padding
+
+Data creates an implied grid. Borders add clutter. Keep only thin rule under header row.
+`padding: 0.5em 1em`. Tabular figures for numeric columns. Right-align numbers.
+
+### Rules and Borders
+
+Try space above and below first. Border thickness: 0.5–1pt. No patterned borders. Thick lines
+are chartjunk.
+
+### Flow Control
+
+Widows (last line alone at top of page) and orphans (first line alone at bottom). CSS print:
+`orphans: 2; widows: 2`. Headings: `page-break-after: avoid`. Soft hyphens `` for
+words that confuse hyphenation engines.
+
+### Columns and Grids
+
+Print columns: 2–3 on letter paper, never 4. Web columns: awkward (indefinite bottom edge).
+Grids guide, not guarantee — simpler grids enforce more consistency. Aligning ugly to a grid
+still produces ugly.
+
+---
+
+## Responsive Web Typography
+
+**The rules don't change with screen size.** Same line length, line spacing, hierarchy.
+
+1. Scale `font-size` and container `width` together
+2. Always `max-width` on text containers — never edge-to-edge text
+3. Don't use `ch` unit for exact measurement (only measures zero width)
+4. `clamp()` for fluid scaling: `font-size: clamp(16px, 2.5vw, 20px)`
+5. Mobile minimum: `padding: 0 1rem` on text containers
+6. The common failure: images/nav scale carefully, body text ignored
+
+---
+
+## Screen Considerations
+
+Modern screens render type nearly as well as print. "Sans serif for screens" was true for 72dpi
+and is now obsolete. Serif fonts work fine on modern screens. Dark mode: reduce weight slightly.
+Test on macOS and Windows (antialiasing differs).
+
+---
+
+## Maxims of Page Layout
+
+1. **Body text first** — its 4 properties determine everything
+2. **Foreground vs background** — don't let chrome upstage body text
+3. **Smallest visible increments** — half-points matter
+4. **When in doubt, try both** — make samples, don't theorize
+5. **Consistency** — same things look the same
+6. **Relate new to existing** — each element constrains the next
+7. **Keep it simple** — 3 colors and 5 fonts? Think again
+8. **Imitate what you like** — emulate good typography from the wild
diff --git a/.agents/skills/typography/css-templates.md b/.agents/skills/typography/css-templates.md
new file mode 100644
index 0000000..6a91b92
--- /dev/null
+++ b/.agents/skills/typography/css-templates.md
@@ -0,0 +1,305 @@
+# CSS Typography Templates
+
+Read this file when generating CSS for any web project, building a design system, or auditing
+existing stylesheets. These templates encode every layout and formatting rule from the skill.
+
+---
+
+## Complete Baseline Template
+
+Copy-paste starting point. Every property maps to a specific typographic rule.
+
+```css
+/* =============================================
+ TYPOGRAPHY BASELINE
+ Rules from Practical Typography (Butterick)
+ ============================================= */
+
+*, *::before, *::after { box-sizing: border-box; }
+
+html {
+ font-size: clamp(16px, 2.5vw, 20px); /* 15–25px range, fluid */
+ -webkit-text-size-adjust: 100%; /* prevent iOS resize */
+}
+
+body {
+ font-family: /* your-font, */ Georgia, 'Times New Roman', serif;
+ line-height: 1.38; /* 120–145% sweet spot */
+ color: #1a1a1a;
+ background: #fefefe;
+ text-rendering: optimizeLegibility; /* enables kern + liga */
+ font-feature-settings: "kern" 1, "liga" 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* ---- TEXT CONTAINER: LINE LENGTH CONTROL ---- */
+
+main, article, .prose {
+ max-width: min(65ch, 90vw); /* 45–90 chars enforced */
+ margin: 0 auto;
+ padding: 0 clamp(1rem, 4vw, 2rem);
+}
+
+/* ---- PARAGRAPHS ---- */
+/* Choose ONE: space-between OR first-line-indent. Never both. */
+
+/* Option A: Space between (default for web) */
+p { margin: 0 0 0.75em 0; } /* 50–100% of font size */
+
+/* Option B: First-line indent (uncomment to use instead)
+p { margin: 0; }
+p + p { text-indent: 1.5em; }
+*/
+
+/* ---- HEADINGS: SUBTLE, SPACED, BOLD ---- */
+
+h1, h2, h3, h4 {
+ line-height: 1.15; /* tighter than body */
+ hyphens: none; /* never hyphenate headings */
+ page-break-after: avoid; /* keep with next paragraph */
+ font-weight: 700; /* bold, not italic */
+}
+h1 {
+ font-size: 1.5em; /* smallest increment needed */
+ margin: 2.5em 0 0.5em; /* space above > below */
+}
+h2 {
+ font-size: 1.25em;
+ margin: 2em 0 0.4em;
+}
+h3 {
+ font-size: 1.1em;
+ margin: 1.5em 0 0.3em;
+}
+
+/* ---- EMPHASIS ---- */
+
+em { font-style: italic; } /* gentle emphasis (serif) */
+strong { font-weight: 700; } /* strong emphasis */
+/* NEVER: strong em, em strong, or u for emphasis */
+
+/* ---- ALL CAPS: ALWAYS LETTERSPACED ---- */
+
+.caps {
+ text-transform: uppercase;
+ letter-spacing: 0.06em; /* 5–12% range */
+ font-feature-settings: "kern" 1;
+}
+
+/* ---- SMALL CAPS: REAL ONLY ---- */
+
+.small-caps {
+ font-variant-caps: small-caps; /* requires font with smcp */
+ letter-spacing: 0.05em;
+ font-feature-settings: "smcp" 1, "kern" 1;
+}
+
+/* ---- BLOCK QUOTES ---- */
+
+blockquote {
+ margin: 1.5em 2em; /* indent 2–5em */
+ font-size: 0.92em; /* slightly smaller */
+ line-height: 1.3;
+}
+
+/* ---- TABLES: CLEAN, NOT CLUTTERED ---- */
+
+table {
+ border-collapse: collapse;
+ width: 100%;
+}
+th, td {
+ padding: 0.5em 1em; /* generous cell padding */
+ text-align: left;
+ vertical-align: top;
+ border: none; /* remove cell borders */
+}
+thead th {
+ border-bottom: 1.5px solid currentColor; /* thin rule under header */
+ font-weight: 600;
+}
+
+/* Numeric data tables: tabular lining figures */
+.data-table td {
+ font-feature-settings: "tnum" 1, "lnum" 1;
+ font-variant-numeric: tabular-nums lining-nums;
+}
+
+/* ---- LISTS ---- */
+
+ul, ol {
+ padding-left: 1.5em;
+ margin: 0 0 1em;
+}
+li { margin-bottom: 0.3em; }
+
+/* ---- HORIZONTAL RULES ---- */
+
+hr {
+ border: none;
+ border-top: 1px solid currentColor; /* 0.5–1pt, no patterns */
+ opacity: 0.3;
+ margin: 2em 0;
+}
+
+/* ---- LINKS ---- */
+
+a {
+ color: inherit;
+ text-decoration-line: underline;
+ text-decoration-thickness: 1px; /* subtle, not heavy */
+ text-underline-offset: 2px;
+}
+a:hover { opacity: 0.8; }
+
+/* ---- CODE ---- */
+
+code {
+ font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
+ font-size: 0.88em;
+ padding: 0.1em 0.3em;
+ border-radius: 3px;
+ background: rgba(0,0,0,0.04);
+}
+pre code {
+ display: block;
+ padding: 1em;
+ overflow-x: auto;
+ line-height: 1.5;
+}
+
+/* ---- RESPONSIVE ---- */
+
+@media (max-width: 600px) {
+ blockquote { margin: 1em 1em; }
+ table { font-size: 0.9em; }
+ th, td { padding: 0.4em 0.6em; }
+}
+
+/* ---- PRINT ---- */
+
+@media print {
+ body { font-size: 11pt; line-height: 1.3; }
+ main { max-width: none; }
+ h1, h2, h3 { page-break-after: avoid; }
+ p { orphans: 2; widows: 2; }
+}
+```
+
+---
+
+## Responsive Typography Patterns
+
+### Fluid Typography with Clamp
+
+```css
+body {
+ font-size: clamp(16px, 2.5vw, 20px);
+}
+main {
+ max-width: min(65ch, 90vw);
+ margin: 0 auto;
+ padding: 0 clamp(1rem, 4vw, 2rem);
+}
+h1 { font-size: clamp(1.5rem, 4vw, 2.5rem); }
+h2 { font-size: clamp(1.25rem, 3vw, 1.75rem); }
+```
+
+### Breakpoint-Based Alternative
+
+```css
+body { font-size: 16px; }
+@media (min-width: 600px) { body { font-size: 17px; } }
+@media (min-width: 900px) { body { font-size: 18px; } }
+@media (min-width: 1200px) { body { font-size: 19px; } }
+```
+
+### Key Principles
+
+1. Scale `font-size` and container `width` together
+2. Always `max-width` on text containers — never edge-to-edge
+3. Don't use `ch` unit for exact line length (only measures zero width)
+4. Use `vw` units with `clamp()` for bounds
+5. Mobile minimum: `padding: 0 1rem` on text containers
+
+---
+
+## OpenType Features Reference
+
+```css
+/* Body text */
+.body {
+ font-feature-settings:
+ "kern" 1, /* kerning pairs — always on */
+ "liga" 1, /* standard ligatures */
+ "calt" 1; /* contextual alternates */
+}
+
+/* Body text with oldstyle figures */
+.prose {
+ font-feature-settings:
+ "kern" 1, "liga" 1, "calt" 1,
+ "onum" 1; /* oldstyle (lowercase-height) numbers */
+}
+
+/* Data tables */
+.data-table td {
+ font-feature-settings:
+ "kern" 1,
+ "tnum" 1, /* tabular (fixed-width) numbers */
+ "lnum" 1; /* lining (capital-height) numbers */
+}
+
+/* Small caps */
+.small-caps {
+ font-feature-settings:
+ "kern" 1,
+ "smcp" 1; /* real small caps */
+ letter-spacing: 0.05em;
+}
+
+/* All caps with capital spacing */
+.all-caps {
+ text-transform: uppercase;
+ letter-spacing: 0.06em;
+ font-feature-settings:
+ "kern" 1,
+ "cpsp" 1; /* capital spacing (if font supports) */
+}
+```
+
+---
+
+## Dark Mode Considerations
+
+```css
+@media (prefers-color-scheme: dark) {
+ body {
+ color: #e0e0e0;
+ background: #1a1a1a;
+ font-weight: 350; /* slightly lighter — dark bg makes text appear heavier */
+ -webkit-font-smoothing: auto; /* let system decide in dark mode */
+ }
+}
+```
+
+---
+
+## React/JSX Inline Pattern
+
+When generating React components with text, apply entities directly:
+
+```jsx
+// WRONG
+IMPORTANT NOTICE
+"Hello," she said. "It's a beautiful day..."
+Price: $12 x 4 = $48
+Pages 1-10
+
+// RIGHT
+IMPORTANT NOTICE
+“Hello,” she said. “It’s a beautiful day…”
+Price: $12 × 4 = $48
+Pages 1–10
+```
diff --git a/.agents/skills/typography/html-entities.md b/.agents/skills/typography/html-entities.md
new file mode 100644
index 0000000..884986f
--- /dev/null
+++ b/.agents/skills/typography/html-entities.md
@@ -0,0 +1,171 @@
+# HTML Entity & Character Reference
+
+Read this file when you need to look up the correct HTML entity for a character, or when auditing
+existing HTML for incorrect character usage.
+
+---
+
+## Quick Substitution Table
+
+When generating HTML/JSX, substitute these characters automatically:
+
+| If you see | Replace with | Entity | Rule |
+|------------|-------------|--------|------|
+| "straight double" | "curly double" | `“` `”` | Always curly quotes |
+| 'straight single' | 'curly single' | `‘` `’` | Always curly quotes |
+| it's (straight) | it's (curly) | `’` | Apostrophe = closing single quote |
+| -- | – | `–` | En dash for ranges |
+| --- | — | `—` | Em dash for breaks |
+| ... | … | `…` | Single ellipsis character |
+| (c) | © | `©` | Real copyright symbol |
+| (TM) | ™ | `™` | Real trademark symbol |
+| (R) | ® | `®` | Real registered symbol |
+| 12 x 34 | 12 × 34 | `×` | Real multiplication sign |
+| 56 - 12 (math) | 56 − 12 | `−` | Real minus sign |
+| 6' 10" (curly, in measurements) | 6' 10" (straight) | `'` `"` | Foot/inch must be straight |
+
+---
+
+## Complete Entity Table
+
+### Quotes and Apostrophes
+
+```
+“ " U+201C opening double quote
+” " U+201D closing double quote
+‘ ' U+2018 opening single quote
+’ ' U+2019 closing single quote / apostrophe
+" " U+0022 straight double quote (inch mark only)
+' ' U+0027 straight single quote (foot mark only)
+```
+
+### Dashes
+
+```
+- U+002D hyphen (compound words, line breaks)
+– – U+2013 en dash (ranges: 1–10, connections: Sarbanes–Oxley)
+— — U+2014 em dash (sentence breaks—like this)
+ U+00AD soft/optional hyphen (invisible break suggestion)
+```
+
+### Symbols
+
+```
+… … U+2026 ellipsis
+× × U+00D7 multiplication sign
+− − U+2212 minus sign
+÷ ÷ U+00F7 division sign
+± ± U+00B1 plus-minus sign
+© © U+00A9 copyright
+™ ™ U+2122 trademark
+® ® U+00AE registered trademark
+¶ ¶ U+00B6 paragraph mark (pilcrow)
+§ § U+00A7 section mark
+& & U+0026 ampersand
+° ° U+00B0 degree sign
+```
+
+### Spaces
+
+```
+ U+00A0 nonbreaking space (prevents line break)
+ U+2009 thin space (half word-space width)
+ U+2002 en space (half em width)
+ U+2003 em space (full em width)
+  U+200A hair space (thinnest space)
+```
+
+### Primes (Foot/Inch/Minute/Second)
+
+```
+' ' U+0027 foot mark / minute mark (straight single)
+" " U+0022 inch mark / second mark (straight double)
+′ ′ U+2032 true prime (if font supports — sloped)
+″ ″ U+2033 true double prime (if font supports — sloped)
+```
+
+### Arrows and Misc
+
+```
+← ← U+2190 left arrow
+→ → U+2192 right arrow
+↑ ↑ U+2191 up arrow
+↓ ↓ U+2193 down arrow
+• • U+2022 bullet
+· · U+00B7 middle dot
+« « U+00AB left guillemet
+» » U+00BB right guillemet
+```
+
+---
+
+## Common Accented Characters
+
+Always preserve accents in proper names. These are the most frequently needed:
+
+```
+é é É É
+è è È È
+á á Á Á
+à à À À
+í í Í Í
+ó ó Ó Ó
+ú ú Ú Ú
+ü ü Ü Ü
+ö ö Ö Ö
+ç ç Ç Ç
+ñ ñ Ñ Ñ
+ß ß (Eszett — or just use ss)
+```
+
+---
+
+## Contextual Usage Patterns
+
+### Quoted Text
+```html
+“She said ‘hello’ to me,” he reported.
+```
+
+### Decade Abbreviations (apostrophe pointing down)
+```html
+In the ’70s, rock ’n’ roll dominated.
+```
+
+### Ranges and Connections
+```html
+Pages 4–8
+The Sarbanes–Oxley Act
+The 2020–2025 period
+```
+
+### Sentence Breaks
+```html
+The em dash puts a nice pause in text—and is underused.
+```
+
+### Legal/Academic References
+```html
+Under § 1782, the seller may offer a refund.
+See ¶ 49 of the contract.
+```
+
+### Copyright and Trademark
+```html
+
+```
+
+### Measurements
+```html
+The room is 12' 6" × 8' 10".
+```
+
+### Math
+```html
+12 × 34 − 56 = 352
+```
+
+### Ellipsis with Nonbreaking Space
+```html
+From A … to Z
+```
diff --git a/.codex/skills/bencium-controlled-ux-designer b/.codex/skills/bencium-controlled-ux-designer
new file mode 120000
index 0000000..8f4a17b
--- /dev/null
+++ b/.codex/skills/bencium-controlled-ux-designer
@@ -0,0 +1 @@
+../../.agents/skills/bencium-controlled-ux-designer
\ No newline at end of file
diff --git a/.codex/skills/bencium-impact-designer b/.codex/skills/bencium-impact-designer
new file mode 120000
index 0000000..5d2a01e
--- /dev/null
+++ b/.codex/skills/bencium-impact-designer
@@ -0,0 +1 @@
+../../.agents/skills/bencium-impact-designer
\ No newline at end of file
diff --git a/.codex/skills/bencium-innovative-ux-designer b/.codex/skills/bencium-innovative-ux-designer
new file mode 120000
index 0000000..9df96a9
--- /dev/null
+++ b/.codex/skills/bencium-innovative-ux-designer
@@ -0,0 +1 @@
+../../.agents/skills/bencium-innovative-ux-designer
\ No newline at end of file
diff --git a/.codex/skills/design-audit b/.codex/skills/design-audit
new file mode 120000
index 0000000..fe44fad
--- /dev/null
+++ b/.codex/skills/design-audit
@@ -0,0 +1 @@
+../../.agents/skills/design-audit
\ No newline at end of file
diff --git a/.codex/skills/frontend-design b/.codex/skills/frontend-design
new file mode 120000
index 0000000..712f694
--- /dev/null
+++ b/.codex/skills/frontend-design
@@ -0,0 +1 @@
+../../.agents/skills/frontend-design
\ No newline at end of file
diff --git a/.codex/skills/relationship-design b/.codex/skills/relationship-design
new file mode 120000
index 0000000..5463f90
--- /dev/null
+++ b/.codex/skills/relationship-design
@@ -0,0 +1 @@
+../../.agents/skills/relationship-design
\ No newline at end of file
diff --git a/.codex/skills/typography b/.codex/skills/typography
new file mode 120000
index 0000000..770e5cc
--- /dev/null
+++ b/.codex/skills/typography
@@ -0,0 +1 @@
+../../.agents/skills/typography
\ No newline at end of file
diff --git a/.config/opencode/skills/bencium-controlled-ux-designer b/.config/opencode/skills/bencium-controlled-ux-designer
new file mode 120000
index 0000000..f786c60
--- /dev/null
+++ b/.config/opencode/skills/bencium-controlled-ux-designer
@@ -0,0 +1 @@
+../../../.agents/skills/bencium-controlled-ux-designer
\ No newline at end of file
diff --git a/.config/opencode/skills/bencium-impact-designer b/.config/opencode/skills/bencium-impact-designer
new file mode 120000
index 0000000..3cfe714
--- /dev/null
+++ b/.config/opencode/skills/bencium-impact-designer
@@ -0,0 +1 @@
+../../../.agents/skills/bencium-impact-designer
\ No newline at end of file
diff --git a/.config/opencode/skills/bencium-innovative-ux-designer b/.config/opencode/skills/bencium-innovative-ux-designer
new file mode 120000
index 0000000..0d55fc5
--- /dev/null
+++ b/.config/opencode/skills/bencium-innovative-ux-designer
@@ -0,0 +1 @@
+../../../.agents/skills/bencium-innovative-ux-designer
\ No newline at end of file
diff --git a/.config/opencode/skills/design-audit b/.config/opencode/skills/design-audit
new file mode 120000
index 0000000..b688ee2
--- /dev/null
+++ b/.config/opencode/skills/design-audit
@@ -0,0 +1 @@
+../../../.agents/skills/design-audit
\ No newline at end of file
diff --git a/.config/opencode/skills/frontend-design b/.config/opencode/skills/frontend-design
new file mode 120000
index 0000000..e559f4d
--- /dev/null
+++ b/.config/opencode/skills/frontend-design
@@ -0,0 +1 @@
+../../../.agents/skills/frontend-design
\ No newline at end of file
diff --git a/.config/opencode/skills/relationship-design b/.config/opencode/skills/relationship-design
new file mode 120000
index 0000000..fc7e028
--- /dev/null
+++ b/.config/opencode/skills/relationship-design
@@ -0,0 +1 @@
+../../../.agents/skills/relationship-design
\ No newline at end of file
diff --git a/.config/opencode/skills/typography b/.config/opencode/skills/typography
new file mode 120000
index 0000000..212f64f
--- /dev/null
+++ b/.config/opencode/skills/typography
@@ -0,0 +1 @@
+../../../.agents/skills/typography
\ No newline at end of file