I built a first-person 3D portfolio with collision detection using only HTML and CSS
I’ve rebuilt my personal portfolio as a first-person 3D world you can walk around, with no JavaScript.
You can explore rooms containing my research, tools and talks, open doors, teleport between areas, play HTML/CSS-only games and solve a lockbox puzzle.
Movement and state are handled using CSS animations, custom properties, radio buttons, checkboxes and selectors such as `:has()`. The collision detection uses CSS maths including `sign()`, `abs()` and `clamp()`.