diff --git a/doc/HYPERSCRIPT-RULES.md b/doc/HYPERSCRIPT-RULES.md
new file mode 100644
index 0000000..6d34280
--- /dev/null
+++ b/doc/HYPERSCRIPT-RULES.md
@@ -0,0 +1,134 @@
+# Hyperscript Development Rules
+
+## MANDATORY RULES - ALWAYS FOLLOW
+
+### Rule 1: Code Cleanliness
+**More than 3 lines of hyperscript → Move to function in file**
+
+- Inline hyperscript in HTML should be kept minimal (≤3 lines)
+- Longer logic MUST be extracted to named functions in .\_hs files
+- HTML templates should be clean and readable
+
+### Rule 2: File Structure - Hyperscript 0.9.12 Limitation
+**Maximum 3 `def` statements TOTAL across ALL files**
+
+⚠️ **CRITICAL**: Hyperscript 0.9.12 has a parser limitation - more than 3 `def` statements **across ALL loaded .\_hs files** causes:
+```
+Error: Expected 'end' but found 'def'
+```
+
+**Solution for Global Reusable Functions**: Use regular JavaScript instead
+- `static/js/cv-functions.js` - Global toggle and utility functions
+ - toggleCVLength(), toggleIcons(), toggleTheme()
+ - syncPdfHover(), syncPrintHover(), highlightZoomControl()
+
+**Solution for Hyperscript-Specific Logic**: Keep max 3 defs
+- `static/hyperscript/functions._hs` - ONLY hyperscript-specific utilities (printFriendly, initScrollBehavior, handleScroll)
+
+**Why JavaScript for Global Functions:**
+- ✅ No artificial limits
+- ✅ Better performance (native JS)
+- ✅ Better debugging
+- ✅ Can still be called from hyperscript using `call toggleIcons(my.checked)`
+
+### Rule 3: HTML Structure Cleanliness
+**HTML must be as clean as possible regarding hyperscript**
+
+✅ **GOOD** - Clean, readable:
+```html
+
+```
+
+❌ **BAD** - Inline logic nightmare:
+```html
+
+```
+
+## File Organization
+
+```
+static/hyperscript/
+├── functions._hs → Core utilities (3 defs max)
+├── toggles._hs → Toggle functions (3 defs max)
+└── hover._hs → Hover sync functions (3 defs max)
+```
+
+### Load Order in templates/index.html:
+```html
+
+
+
+
+```
+
+## Required Functions
+
+### Core Functions (functions._hs)
+1. `printFriendly()` - Handle print-friendly view
+2. `initScrollBehavior()` - Initialize scroll variables
+3. `handleScroll()` - Manage scroll behavior and fixed button positioning
+
+### Toggle Functions (toggles._hs)
+1. `toggleCVLength(isLong)` - Switch between short/long CV
+2. `toggleIcons(showIcons)` - Show/hide icons
+3. `toggleTheme(isClean)` - Switch between default/clean theme
+
+### Hover Sync Functions (hover._hs)
+1. `syncPdfHover(show)` - Sync hover state across PDF buttons
+2. `syncPrintHover(show)` - Sync hover state across print buttons
+3. `highlightZoomControl(show)` - Highlight zoom control on hover
+
+## Why These Rules Exist
+
+### Maintainability
+- Functions with descriptive names are self-documenting
+- Easier to test and debug
+- Changes in one place instead of scattered across templates
+
+### Performance
+- Browser caches .\_hs files
+- Reduces HTML payload size
+- Cleaner separation of concerns
+
+### Hyperscript 0.9.12 Limitation
+- Parser breaks with >3 `def` in single file
+- MUST split into multiple files
+- Each file: ≤3 `def` statements
+
+## Common Mistakes to Avoid
+
+❌ **DON'T**: Put all functions in one file if you have >3 defs
+❌ **DON'T**: Write long inline hyperscript in HTML
+❌ **DON'T**: Delete functions to work around the 3-def limit
+
+✅ **DO**: Split functions across multiple .\_hs files
+✅ **DO**: Keep HTML clean with function calls
+✅ **DO**: Maintain all required functions for clean architecture
+
+## Testing After Changes
+
+1. Check browser console for parse errors
+2. Verify all functions are defined (no "X is null" errors)
+3. Test all toggles work correctly
+4. Hard refresh browser (Ctrl+Shift+R) to clear cache
+
+---
+
+**Last Updated**: 2025-01-17
+**Hyperscript Version**: 0.9.12
+**Status**: MANDATORY - ALWAYS FOLLOW
diff --git a/doc/MODERN-WEB-TECHNIQUES.md b/doc/MODERN-WEB-TECHNIQUES.md
new file mode 100644
index 0000000..61abae7
--- /dev/null
+++ b/doc/MODERN-WEB-TECHNIQUES.md
@@ -0,0 +1,1621 @@
+# Modern Web Development Techniques - JavaScript Reduction Guide
+
+**Project:** CV Interactive Website
+**Objective:** Achieve "almost 0 JavaScript" while maintaining modern features
+**Philosophy:** Progressive enhancement, native browser APIs, and hypermedia-driven architecture
+
+---
+
+## 📊 Progress Metrics
+
+| Phase | Lines of JS | Reduction | Percentage |
+|-------|-------------|-----------|------------|
+| **Original (Baseline)** | 954 | - | 100% |
+| **Phase 4A Complete** | 669 | -285 | -29.9% |
+| **Phase 5 Complete** | 326 | -343 | -51.3% |
+| **Phase 6 Complete** | **239** | **-87** | **-26.7%** |
+| **Cumulative Progress** | **239** | **-715** | **-74.9%** |
+
+---
+
+## 🎯 Core Philosophy
+
+**Modern web development doesn't require mountains of JavaScript.** By leveraging:
+- Native HTML5 APIs (`