## Context

Recent usability enhancements introduced regressions in modal consistency, footer/header behavior, and share/contact visibility. The issues are cross-cutting: SPA URL state, modal lifecycle handling, theme contrast, sticky surface behavior, and image relevance heuristics. The fixes must remain incremental and avoid feature re-architecture.

## Goals / Non-Goals

**Goals:**
- Restore modal parity for hero and feed deep links, including image loading and Escape-close behavior.
- Ensure contact email is rendered when configured and share controls are visible in light mode.
- Introduce copy-to-clipboard sharing and remove redundant card permalink affordance.
- Implement floating Back-to-Top and compact sticky footer.
- Implement sticky, shrinking, elevated glass header behavior on scroll.
- Tighten image relevance fallback behavior for finance/market stories.

**Non-Goals:**
- Full UI redesign.
- New backend image provider integrations.
- New analytics taxonomy.

## Decisions

### Decision 1: Normalize deep-link modal resolution path
Use one resolver for both hero and feed items, and open modal only after item context is guaranteed.

### Decision 2: Decouple modal close from item existence
Escape and backdrop close should dismiss the modal even if modal item resolution is partially failed.

### Decision 3: Theme-safe icon tokens
Share icon foreground/background tokens are split per theme to guarantee visibility in light mode.

### Decision 4: Sticky surfaces with conservative footprint
Header remains sticky and shrinks slightly with blur/elevation on scroll; footer remains sticky with minimal height and readable contrast.

### Decision 5: Finance-aware image fallback guard
If query contains market/finance intent, reject obviously unrelated animal/person close-up imagery via keyword guards and force finance-safe fallback query.

## Risks / Trade-offs

- **[Risk] Sticky footer could occlude content** -> Mitigation: add bottom spacing to main content and reduce footer height.
- **[Risk] Header animation jank on low-end devices** -> Mitigation: simple transform/opacity transitions only.
- **[Risk] Stricter image relevance may reduce variety** -> Mitigation: constrain guardrails to high-confidence finance terms only.

## Migration Plan

1. Patch modal/deep-link lifecycle and close semantics in frontend state handlers.
2. Patch share/contact visibility and add copy-link control.
3. Implement sticky header/footer visual behavior.
4. Patch image-query relevance guard in backend image selection.
5. Validate with manual regression checklist.

Rollback:
- Revert header/footer sticky behavior.
- Revert modal resolver and share changes.
- Revert image guardrails to prior fallback logic.

## Open Questions

- Should copy-link action include transient toast feedback in this change or next UX pass?
