Retro interfaces fail when they copy noise. They work when constraints become hierarchy, rhythm, and feedback. The LookADev visual language — CRT scanlines, terminal windows, amber-on-dark typography — exists because constraints create clarity, not because nostalgia is trendy.
The design started with a problem: how do you make a 23-project portfolio navigable without feeling like an endless scroll of cards? The answer was a retro OS metaphor. Projects are 'cartridges' in a grid. The devlog is a terminal directory listing. The stack section is a system diagnostic readout. Each metaphor creates its own navigation affordance.
The scanline overlay is a single CSS pseudo-element with a repeating-linear-gradient of 2px transparent / 2px rgba(0,0,0,0.03). It sits above the entire viewport with pointer-events: none. The performance cost is negligible because it's a single composited layer, but it transforms every screen into something that feels like a CRT monitor without actually degrading readability.
Typography follows broadcast design rules. Headlines use a condensed sans-serif at high weight. Body text uses a monospace font at comfortable sizing (16-18px). Eyebrow labels (category tags, status indicators) use a small mono font in uppercase with generous letter-spacing. This three-tier system creates immediate visual hierarchy without relying on color alone.
The color palette is intentionally restricted: a dark background (#0a0a0a), a warm amber for primary accent (#f59e0b), cyan for secondary (#06b6d4), and muted grays for secondary text. Every color has a specific role — amber means 'action or emphasis,' cyan means 'system or status,' gray means 'supporting information.' This constraint prevents the visual chaos that happens when retro themes use too many neon colors.
The boot sequence animation on the homepage is a carefully timed CSS animation sequence. Lines appear one by one with a typewriter delay, system 'checks' show loading bars that fill, and the final 'SYSTEM READY' line triggers the fade-in of the main content. Total duration: 3.2 seconds. It sets the tone without making users wait — the content is already loaded underneath, and users can scroll past it immediately.