Goal
When the cursor hovers over the pet, the pupils track the cursor position with a small offset.
Why
Deferred from the v0.1 spec (docs/specs/2026-05-15-pet-overlay-ui-design.md section "Hover"). Small detail but it makes the pet feel alive.
Acceptance
Hints
- Add
id="left-eye-pupil" / id="right-eye-pupil" (or similar) to each phase[N].svg.
- In
renderer/components/Pet.tsx, on pointermove, compute cursor offset relative to pet center and apply transform: translate(...) to the pupil elements via inline style or a separate React effect.
- Cap the offset (e.g. ±2px) so eyes don't fly off the face.
- Use
requestAnimationFrame throttle if it feels jittery.
Out of scope
- Eyes blinking, eyes squinting on click, etc — those would be neat but separate.
Goal
When the cursor hovers over the pet, the pupils track the cursor position with a small offset.
Why
Deferred from the v0.1 spec (
docs/specs/2026-05-15-pet-overlay-ui-design.mdsection "Hover"). Small detail but it makes the pet feel alive.Acceptance
Hints
id="left-eye-pupil"/id="right-eye-pupil"(or similar) to eachphase[N].svg.renderer/components/Pet.tsx, onpointermove, compute cursor offset relative to pet center and applytransform: translate(...)to the pupil elements via inline style or a separate React effect.requestAnimationFramethrottle if it feels jittery.Out of scope