OMEGA plan, re-read
Per-layer filter_mode works. App runs smooth at 1440×900.
Phase 1 cleared to start: canvas + selectable element, hit testing,
text layout.
phase-1engine2026-04-17 · 14:02
Friction, yesterday. Mode hierarchy still ambiguous — where does canvas/edit sit next to vim normal/insert/visual? Flag before touching Lua.
visual_identity — decisions
bg #24273a // Macchiato base, slightly bluer than blog
text #dadada // primary — matches blog exactly
ui IBM Plex Sans // blog
code Cascadia Code // NeoVim
pad 4–8px // mid-dense; tiny text normal
rad 0–2px // no rounded cards
border 1px // never 2px
shadow none // depth via bg-tint
Triple use
▸ dev environment (daily driver)
▸ a327ex.com (engine → WASM)
▸ interactive essays (inline views)
Same engine. Same textures. Same layout primitives. Nothing in here is throwaway.
+ Layer filter_mode per-instance
+ Font atlas carries own filter
~ Sprite UV snap gated on aa
− Global u_aa_width set per-frame