## Purpose

Canonical specification for policy-disclosure-modals requirements synced from OpenSpec change deltas.

## Requirements

### Requirement: Policy disclosures are available as in-page modals
The system SHALL present Terms of Use and Attribution content in in-page modal dialogs without requiring full-page navigation from the landing experience.

#### Scenario: Open Terms modal from footer
- **WHEN** a user activates the "Terms of Use" footer control
- **THEN** a Terms modal opens in place on the current page
- **AND** the underlying page context remains intact

#### Scenario: Open Attribution modal from footer
- **WHEN** a user activates the "Attribution" footer control
- **THEN** an Attribution modal opens in place on the current page
- **AND** disclosure content is readable in the modal body

### Requirement: Policy modals are keyboard-safe and dismissible
Policy disclosure modals SHALL provide deterministic keyboard and pointer dismissal behavior.

#### Scenario: Escape closes active policy modal
- **WHEN** a policy modal is open and the user presses `Escape`
- **THEN** the modal closes
- **AND** focus returns to the triggering control

#### Scenario: Modal focus remains trapped while open
- **WHEN** a keyboard-only user tabs while a policy modal is open
- **THEN** focus cycles within modal interactive controls
- **AND** focus does not escape to background content
