kidlisp: performance optimizations + layout fixes + CDP test harness
- Self-host Split.js (async load, no CDN dependency)
- Lazy-load fonts (Berkeley Mono, Google Fonts) via media="print" trick
- Debounce console scroll-to-bottom with rAF to avoid reflow per log line
- Debounce localStorage writes (250ms) and syntax highlighting (250ms)
- Remove duplicate onDidChangeModelContent handlers
- Yield to browser after Monaco DOM insert (rAF+setTimeout) for smooth splash
- Throttle tree visualization mousemove renders with rAF
- Skip already-processed tickers to avoid redundant layout thrashing
- Disable unused SVG card loading (5s bottleneck in load waterfall)
- Fix 4x4 mode: disable panel drag on desktop, clean up mobile header artifacts
- Fix settings gear position in 4x4 mode (no collapse arrow offset)
- Add will-change:transform to splash letters for GPU compositing
- Add console.clear() on live reload for cleaner dev experience
- Add layout test suite to test-kidlisp.mjs (Split.js, panels, gutters, nob)
- vscode: add CDP command server (port 19998) for test automation
- vscode: bump to v1.269.0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>