# CURSOR_INTERACTIONS.md

## Verdict: near-zero custom cursor work — by design

Custom cursors (dot followers, magnetic buttons, cursor-morphing) were evaluated and **rejected** for this site. Reasons, documented so the decision survives future redesign itch:

1. **Audience mismatch.** P1 recruiters on trackpads/mobile never see it; P2 engineering managers disproportionately *dislike* cursor gimmicks (input latency, hijacked expectations).
2. **Brand mismatch.** "Kontrollrom" promises precision and restraint; a floating blob promises an agency reel.
3. **Cost.** Pointer-following JS is the classic source of main-thread jank — the exact failure mode this site must never exhibit.

## What ships instead (native cursor semantics, used *correctly*)

| Context | Cursor | Note |
|---|---|---|
| Links, buttons, cards, TOC | `pointer` | Whole project card = pointer (it's one link) |
| Fact chips (non-interactive) | `default` | Honest affordance — no fake clickability |
| Text/prose | `text` | Never suppressed |
| Screenshot in lightbox (zoomable) | `zoom-in` / `zoom-out` | The one "delight" allowed |
| Click-to-copy e-mail | `copy` | Native, semantically perfect, zero JS cost |
| Diagram nodes with hover-highlight | `default` + visual highlight | Hover is enhancement, not interaction — pointer would over-promise |
| Disabled controls | `not-allowed` | |

## The single permitted flourish

On the hero, the status dot at the end of the trace shows a `crosshair`-style precision hover halo (pure CSS, 160ms) revealing a mono tooltip: `status: open to work` / `status: åpen for muligheter`. Desktop-only easter egg; invisible to touch, absent under reduced motion, no positional JS. If it ever measures as jank — cut it without debate.
