prompt:
# Task: Constellation Hover Focus Mode With Global Dimming

Implement a focused hover mode so that when a user hovers a skill or node in the constellation area, non-related UI darkens and only the relevant relationship remains emphasized.

## Requirements

- Support hover-triggered focus mode from:
  - constellation node hover
  - skill pill hover
- In focus mode, darken non-related UI across the page, including:
  - graph axis/background
  - unrelated graph nodes/labels/links
  - unrelated timeline and dashboard elements
- Keep the following elements visually emphasized (not darkened):
  - hovered skill pill
  - hovered/active constellation node
  - connection lines between related node/skill items
  - timeline series item related to that skill/node
- On hover exit, restore default appearance cleanly with no stuck state.
- Preserve existing click behavior, keyboard behavior, and detail panel opening logic.
- Respect reduced-motion preferences and existing accessibility patterns.

## Likely Files To Update

- `src/components/DashboardLayout.tsx`
- `src/hooks/useConstellationInteraction.ts`
- `src/hooks/useConstellationHighlight.ts`
- `src/components/TimelineInterventionsSubsection.tsx`
- `src/components/RepeatMedicationsSubsection.tsx`
- `src/components/ExpandableCardShell.tsx`
- `src/index.css`

Update additional files only if necessary.

## Success Criteria

All of the following must be true:

- [ ] Hovering a constellation node enters focus mode with global dimming.
- [ ] Hovering a skill pill enters focus mode with global dimming.
- [ ] In focus mode, only the relevant node + relationship links + related timeline series item + active skill pill remain visually highlighted.
- [ ] Graph axis/background visibly darken during focus mode.
- [ ] Focus mode exits correctly on mouse leave with no lingering darkened state.
- [ ] Existing interactions (role click, skill click, panel open, timeline expand/collapse) still work.
- [ ] `npm run lint` passes.
- [ ] `npm run typecheck` passes.
- [ ] `npm run build` passes.
- [ ] Playwright MCP evidence confirms behavior for both node-hover and skill-pill-hover scenarios.

## Playwright MCP Verification

Reviewer must validate with Playwright MCP and record evidence in `.ralph/review.md`:

- Run or confirm dev server at `http://localhost:5173`
- Capture baseline screenshot before hover
- Hover a constellation node and capture screenshot
- Hover a skill pill and capture screenshot
- In both hover screenshots, verify:
  - unrelated areas are darkened
  - related graph + timeline + skill elements remain emphasized

## Constraints

- Do not add new dependencies.
- Follow existing TypeScript/React conventions and current styling system.
- Keep changes focused to this feature only.
- If a blocker repeats with identical evidence across 3 cycles, escalate in `.ralph/review.md` instead of forcing completion.

## Status

Track progress in `.ralph/plan.md`, `.ralph/build.md`, and `.ralph/review.md`.
When all success criteria are met, print `LOOP_COMPLETE`.


prompt:
# Task: Constellation Hover Focus Mode With Global Dimming

Implement a focused hover mode so that when a user hovers a skill or node in the constellation area, non-related UI darkens and only the relevant relationship remains emphasized.

## Requirements

- Support hover-triggered focus mode from:
  - constellation node hover
  - skill pill hover
- In focus mode, darken non-related UI across the page, including:
  - graph axis/background
  - unrelated graph nodes/labels/links
  - unrelated timeline and dashboard elements
- Keep the following elements visually emphasized (not darkened):
  - hovered skill pill
  - hovered/active constellation node
  - connection lines between related node/skill items
  - timeline series item related to that skill/node
- On hover exit, restore default appearance cleanly with no stuck state.
- Preserve existing click behavior, keyboard behavior, and detail panel opening logic.
- Respect reduced-motion preferences and existing accessibility patterns.

## Likely Files To Update

- `src/components/DashboardLayout.tsx`
- `src/hooks/useConstellationInteraction.ts`
- `src/hooks/useConstellationHighlight.ts`
- `src/components/TimelineInterventionsSubsection.tsx`
- `src/components/RepeatMedicationsSubsection.tsx`
- `src/components/ExpandableCardShell.tsx`
- `src/index.css`

Update additional files only if necessary.

## Success Criteria

All of the following must be true:

- [ ] Hovering a constellation node enters focus mode with global dimming.
- [ ] Hovering a skill pill enters focus mode with global dimming.
- [ ] In focus mode, only the relevant node + relationship links + related timeline series item + active skill pill remain visually highlighted.
- [ ] Graph axis/background visibly darken during focus mode.
- [ ] Focus mode exits correctly on mouse leave with no lingering darkened state.
- [ ] Existing interactions (role click, skill click, panel open, timeline expand/collapse) still work.
- [ ] `npm run lint` passes.
- [ ] `npm run typecheck` passes.
- [ ] `npm run build` passes.
- [ ] Playwright MCP evidence confirms behavior for both node-hover and skill-pill-hover scenarios.

## Playwright MCP Verification

Reviewer must validate with Playwright MCP and record evidence in `.ralph/review.md`:

- Run or confirm dev server at `http://localhost:5173`
- Capture baseline screenshot before hover
- Hover a constellation node and capture screenshot
- Hover a skill pill and capture screenshot
- In both hover screenshots, verify:
  - unrelated areas are darkened
  - related graph + timeline + skill elements remain emphasized

## Constraints

- Do not add new dependencies.
- Follow existing TypeScript/React conventions and current styling system.
- Keep changes focused to this feature only.
- If a blocker repeats with identical evidence across 3 cycles, escalate in `.ralph/review.md` instead of forcing completion.

## Status

Track progress in `.ralph/plan.md`, `.ralph/build.md`, and `.ralph/review.md`.
When all success criteria are met, print `LOOP_COMPLETE`.