# ANIMATION_CONCEPTS.md
Named animation concepts, each mapped to the question it answers. All obey MOTION_GUIDELINES tokens & reduced-motion variants.

---

## A1 · "Trace draw" — hero identity moment
On first paint: a 1.5px accent line draws left→right under the role line (700ms `signature`), steps down 8px mid-way (PCB-trace corner), and terminates in a 4px status dot that blinks once, then stays lit next to `Open to work`.
*Question answered:* "the page is ready — and he's available."
Reduced motion: line + lit dot render complete, static. Repeat visits: draws once per session only.

## A2 · "Section arrive"
Each homepage section reveals on 20% viewport entry: opacity 0→1 + 12px rise (400ms), heading first, content children staggered 60ms (max 3 groups). Fires once per page load.
*Question:* "what's new in view?" — creates reading rhythm without withholding content (text is present for search/reader modes regardless).

## A3 · "Card focus"
Project cards on hover/focus-visible: border → `border-strong`, screenshot shifts up 4px (240ms), title gains accent underline draw (160ms), `Read case study →` arrow nudges 4px right.
*Question:* "is this clickable, and what happens?"

## A4 · "Chip pulse"
The `ACTIVE` status dot pulses twice (scale 1→1.4 opacity fade) when its chip first enters viewport, then rests lit. Amber `IN DEVELOPMENT` dots never pulse (calm hierarchy: live > in-progress).
*Question:* "which of these is running right now?"

## A5 · "Diagram flow" (case-study architecture, desktop only)
Architecture diagrams are static SVGs; hovering a node highlights its connected edges in accent (160ms) and dims unrelated nodes to 60%. No autoplay, no looping data-packet animations.
*Question:* "what talks to what?"
Mobile/touch + reduced motion: full static diagram, always fully legible without interaction.

## A6 · "Theme morph"
Sun⇄moon icon path-morph (160ms) + global 240ms token cross-fade. The hero trace re-tints without redrawing.

## A7 · "Language cross-fade"
On EN⇄NO switch: text nodes fade out 80ms / in 160ms; layout containers keep dimensions during swap (pre-measured against longer NO strings) so nothing jumps. The switch control itself slides its active-segment thumb (160ms).
*Question:* "same page, other language — nothing lost."

## A8 · "Timeline grow"
Experience timeline's vertical hairline draws downward as the section enters (400ms); period dots fade in with their rows.
*Question:* "read this top-down, newest first."

## A9 · "Form confirm"
On successful submit, the form panel cross-fades to a confirmation card: accent check icon draws (240ms stroke), message + "I usually reply within a day" (`Jeg svarer vanligvis innen en dag`).
*Question:* "did it actually send?" — the current site's broken-looking send feedback (raw � glyphs) is exactly what this replaces.

## A10 · "404 fray"
The trace motif runs, stutters, and frays into dots at the break point; mono caption `route not found — no such page` / `fant ikke siden`. Static in reduced motion.
*Purpose:* the one place allowed personality-forward motion — errors are where craft shows.

---

### Explicitly rejected concepts (documented so Phase 3 doesn't re-invent them)
Typewriter hero text (junior tell) · particle backgrounds · 3D tilt cards · scroll-pinned storytelling · animated skill counters · magnetic buttons (see CURSOR_INTERACTIONS) · autoplaying screenshot carousels.
